@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,18 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializePikkuTypesHub } from './serialize-pikku-types-hub.js';
6
+ export const pikkuFunctionTypes = pikkuSessionlessFunc({
7
+ func: async ({ logger, config }) => {
8
+ const { typesDeclarationFile: typesFile, packageMappings, functionTypesFile, httpTypesFile, channelsTypesFile, schedulersTypesFile, queueTypesFile, mcpTypesFile, cliTypesFile, } = config;
9
+ const content = serializePikkuTypesHub(getFileImportRelativePath(typesFile, functionTypesFile, packageMappings), getFileImportRelativePath(typesFile, httpTypesFile, packageMappings), getFileImportRelativePath(typesFile, channelsTypesFile, packageMappings), getFileImportRelativePath(typesFile, schedulersTypesFile, packageMappings), getFileImportRelativePath(typesFile, queueTypesFile, packageMappings), getFileImportRelativePath(typesFile, mcpTypesFile, packageMappings), getFileImportRelativePath(typesFile, cliTypesFile, packageMappings));
10
+ await writeFileInDir(logger, typesFile, content);
11
+ },
12
+ middleware: [
13
+ logCommandInfoAndTime({
14
+ commandStart: 'Creating api types hub',
15
+ commandEnd: 'Created api types hub',
16
+ }),
17
+ ],
18
+ });
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generate JSON schemas from TypeScript types
3
+ */
4
+ export declare const pikkuSchemas: any;
@@ -0,0 +1,20 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { saveSchemas, generateSchemas, } from '../../../utils/schema-generator.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ /**
5
+ * Generate JSON schemas from TypeScript types
6
+ */
7
+ export const pikkuSchemas = pikkuSessionlessFunc({
8
+ func: async ({ logger, config, getInspectorState }) => {
9
+ const visitState = await getInspectorState();
10
+ const schemas = await generateSchemas(logger, config.tsconfig, visitState.functions.typesMap, visitState.functions.meta, visitState.http.meta, config.schemasFromTypes);
11
+ await saveSchemas(logger, config.schemaDirectory, schemas, visitState.functions.typesMap, visitState.functions.meta, config.supportsImportAttributes, config.schemasFromTypes);
12
+ return true;
13
+ },
14
+ middleware: [
15
+ logCommandInfoAndTime({
16
+ commandStart: 'Generating schemas',
17
+ commandEnd: 'Generated schemas',
18
+ }),
19
+ ],
20
+ });
@@ -1,4 +1,4 @@
1
- import { getFileImportRelativePath } from '../../utils.js';
1
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
2
2
  export const serializeFunctionImports = (outputPath, functionsMap, functionsMeta, packageMappings = {}) => {
3
3
  const serializedImports = [
4
4
  `/* Import and register functions used by RPCs */`,
@@ -9,33 +9,16 @@ export const serializeFunctionImports = (outputPath, functionsMap, functionsMeta
9
9
  const sortedEntries = Array.from(functionsMap.entries()).sort((a, b) => a[0].localeCompare(b[0]));
10
10
  for (const [name, { path, exportedName }] of sortedEntries) {
11
11
  const filePath = getFileImportRelativePath(outputPath, path, packageMappings);
12
- // Find the function metadata to check if it's a direct function
13
- // The functionsMeta is keyed by the function name (exported name)
14
- const funcMeta = functionsMeta[name];
15
- const isDirectFunction = funcMeta?.isDirectFunction ?? false;
12
+ // pikkuFunc/pikkuSessionlessFunc/pikkuVoidFunc always return config objects
16
13
  // For directly exported functions, we can just import and register them
17
14
  if (name === exportedName) {
18
15
  serializedImports.push(`import { ${exportedName} } from '${filePath}'`);
19
- if (isDirectFunction) {
20
- // Direct function: pikkuFunc(fn) - needs to be wrapped
21
- serializedRegistrations.push(`addFunction('${name}', { func: ${exportedName} })`);
22
- }
23
- else {
24
- // Object format: pikkuFunc({ func: fn }) - can be used directly
25
- serializedRegistrations.push(`addFunction('${name}', ${exportedName} as any) // TODO`);
26
- }
16
+ serializedRegistrations.push(`addFunction('${name}', ${exportedName})`);
27
17
  }
28
18
  // For renamed functions, we need to import and alias them
29
19
  else {
30
20
  serializedImports.push(`import { ${exportedName} as ${name} } from '${filePath}'`);
31
- if (isDirectFunction) {
32
- // Direct function: pikkuFunc(fn) - needs to be wrapped
33
- serializedRegistrations.push(`addFunction('${name}', { func: ${name} })`);
34
- }
35
- else {
36
- // Object format: pikkuFunc({ func: fn }) - can be used directly
37
- serializedRegistrations.push(`addFunction('${name}', ${name} as any) // TODO`);
38
- }
21
+ serializedRegistrations.push(`addFunction('${name}', ${name})`);
39
22
  }
40
23
  }
41
24
  // Add a blank line between imports and registrations
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generates core function, middleware, and permission type definitions
3
+ */
4
+ export declare const serializeFunctionTypes: (userSessionTypeImport: string, userSessionTypeName: string, singletonServicesTypeImport: string, singletonServicesTypeName: string, sessionServicesTypeImport: string, sessionServicesTypeName: string, rpcMapTypeImport: string, requiredServicesTypeImport: string, configTypeImport: string) => string;
@@ -0,0 +1,443 @@
1
+ /**
2
+ * Generates core function, middleware, and permission type definitions
3
+ */
4
+ export const serializeFunctionTypes = (userSessionTypeImport, userSessionTypeName, singletonServicesTypeImport, singletonServicesTypeName, sessionServicesTypeImport, sessionServicesTypeName, rpcMapTypeImport, requiredServicesTypeImport, configTypeImport) => {
5
+ return `/**
6
+ * Core function, middleware, and permission types for all wirings
7
+ */
8
+
9
+ import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, addMiddleware as addMiddlewareCore, addPermission as addPermissionCore } from '@pikku/core'
10
+ import { CorePikkuFunction, CorePikkuFunctionSessionless } from '@pikku/core/function'
11
+ import { PikkuChannel } from '@pikku/core/channel'
12
+ import { PikkuMCP } from '@pikku/core/mcp'
13
+
14
+ ${userSessionTypeImport}
15
+ ${singletonServicesTypeImport}
16
+ ${sessionServicesTypeImport}
17
+ ${configTypeImport}
18
+ ${rpcMapTypeImport}
19
+ ${requiredServicesTypeImport}
20
+
21
+ ${singletonServicesTypeName !== 'SingletonServices' ? `type SingletonServices = ${singletonServicesTypeName}` : ''}
22
+ ${sessionServicesTypeName !== 'Services' ? `type Services = ${sessionServicesTypeName}` : ''}
23
+ ${userSessionTypeName !== 'Session' ? `type Session = ${userSessionTypeName}` : ''}
24
+ ${configTypeImport.includes('Config type not found') ? 'type Config = any' : ''}
25
+
26
+ /**
27
+ * Type-safe API permission definition that integrates with your application's session type.
28
+ * Use this to define authorization logic for your API endpoints.
29
+ *
30
+ * @template In - The input type that the permission check will receive
31
+ * @template RequiredServices - The services required for this permission check
32
+ */
33
+ export type PikkuPermission<In = unknown, RequiredServices extends Services = Services> = CorePikkuPermission<In, RequiredServices, Session>
34
+
35
+ /**
36
+ * Type-safe middleware definition that can access your application's services and session.
37
+ * Use this to define reusable middleware that can be applied to multiple wirings.
38
+ *
39
+ * @template RequiredServices - The services required for this middleware
40
+ */
41
+ export type PikkuMiddleware<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuMiddleware<RequiredServices, Session>
42
+
43
+ /**
44
+ * Configuration object for creating a permission with metadata
45
+ */
46
+ export type PikkuPermissionConfig<In = unknown, RequiredServices extends Services = Services> = {
47
+ /** The permission function */
48
+ func: PikkuPermission<In, RequiredServices>
49
+ /** Optional human-readable name for the permission */
50
+ name?: string
51
+ /** Optional description of what the permission checks */
52
+ description?: string
53
+ }
54
+
55
+ /**
56
+ * Factory function for creating permissions with tree-shaking support.
57
+ * Supports both direct function and configuration object syntax.
58
+ *
59
+ * @example
60
+ * \`\`\`typescript
61
+ * // Direct function syntax
62
+ * const permission = pikkuPermission(({ logger }, data, session) => {
63
+ * return session?.role === 'admin'
64
+ * })
65
+ *
66
+ * // Configuration object syntax with metadata
67
+ * const adminPermission = pikkuPermission({
68
+ * name: 'Admin Permission',
69
+ * description: 'Checks if user has admin role',
70
+ * func: async ({ logger }, data, session) => {
71
+ * return session?.role === 'admin'
72
+ * }
73
+ * })
74
+ * \`\`\`
75
+ */
76
+ export const pikkuPermission = <In>(
77
+ permission: PikkuPermission<In> | PikkuPermissionConfig<In>
78
+ ): PikkuPermission<In> => {
79
+ return typeof permission === 'function' ? permission : permission.func
80
+ }
81
+
82
+ /**
83
+ * Configuration object for creating middleware with metadata
84
+ */
85
+ export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = SingletonServices> = {
86
+ /** The middleware function */
87
+ func: PikkuMiddleware<RequiredServices>
88
+ /** Optional human-readable name for the middleware */
89
+ name?: string
90
+ /** Optional description of what the middleware does */
91
+ description?: string
92
+ }
93
+
94
+ /**
95
+ * Factory function for creating middleware with tree-shaking support.
96
+ * Supports both direct function and configuration object syntax.
97
+ *
98
+ * @example
99
+ * \`\`\`typescript
100
+ * // Direct function syntax
101
+ * const middleware = pikkuMiddleware(({ logger }, interactions, next) => {
102
+ * logger.info('Middleware executed')
103
+ * await next()
104
+ * })
105
+ *
106
+ * // Configuration object syntax with metadata
107
+ * const logMiddleware = pikkuMiddleware({
108
+ * name: 'Request Logger',
109
+ * description: 'Logs all incoming requests',
110
+ * func: async ({ logger }, interactions, next) => {
111
+ * logger.info('Request started')
112
+ * await next()
113
+ * }
114
+ * })
115
+ * \`\`\`
116
+ */
117
+ export const pikkuMiddleware = <RequiredServices extends SingletonServices = SingletonServices>(
118
+ middleware: PikkuMiddleware<RequiredServices> | PikkuMiddlewareConfig<RequiredServices>
119
+ ): PikkuMiddleware<RequiredServices> => {
120
+ return typeof middleware === 'function' ? middleware : middleware.func
121
+ }
122
+
123
+ /**
124
+ * Factory function for creating middleware factories
125
+ * Use this when your middleware needs configuration/input parameters
126
+ *
127
+ * @example
128
+ * \`\`\`typescript
129
+ * export const logMiddleware = pikkuMiddlewareFactory<LogOptions>(({
130
+ * message,
131
+ * level = 'info'
132
+ * }) => {
133
+ * return pikkuMiddleware(async ({ logger }, _interaction, next) => {
134
+ * logger[level](message)
135
+ * await next()
136
+ * })
137
+ * })
138
+ * \`\`\`
139
+ */
140
+ export const pikkuMiddlewareFactory = <In = any>(
141
+ factory: (input: In) => PikkuMiddleware
142
+ ): ((input: In) => PikkuMiddleware) => {
143
+ return factory
144
+ }
145
+
146
+ /**
147
+ * Factory function for creating permission factories
148
+ * Use this when your permission needs configuration/input parameters
149
+ *
150
+ * @example
151
+ * \`\`\`typescript
152
+ * export const requireRole = pikkuPermissionFactory<{ role: string }>(({
153
+ * role
154
+ * }) => {
155
+ * return pikkuPermission(async ({ logger }, data, session) => {
156
+ * if (!session || session.role !== role) {
157
+ * logger.warn(\`Permission denied: required role '\${role}'\`)
158
+ * return false
159
+ * }
160
+ * return true
161
+ * })
162
+ * })
163
+ * \`\`\`
164
+ */
165
+ export const pikkuPermissionFactory = <In = any>(
166
+ factory: (input: In) => PikkuPermission<any>
167
+ ): ((input: In) => PikkuPermission<any>) => {
168
+ return factory
169
+ }
170
+
171
+ /**
172
+ * A sessionless API function that doesn't require user authentication.
173
+ * Use this for public endpoints, health checks, or operations that don't need user context.
174
+ *
175
+ * @template In - The input type
176
+ * @template Out - The output type that the function returns
177
+ * @template ChannelData - Channel data type (null = optional channel)
178
+ * @template MCPData - MCP data type (null = optional MCP)
179
+ * @template RequiredServices - Services required by this function
180
+ */
181
+ export type PikkuFunctionSessionless<
182
+ In = unknown,
183
+ Out = never,
184
+ ChannelData = null, // null means optional channel
185
+ MCPData = null, // null means optional MCP
186
+ RequiredServices extends Services = Omit<Services, 'rpc' | 'channel' | 'mcp'> &
187
+ { rpc: TypedPikkuRPC } & (
188
+ [ChannelData] extends [null]
189
+ ? { channel?: PikkuChannel<unknown, Out> } // Optional channel
190
+ : { channel: PikkuChannel<ChannelData, Out> } // Required channel with any data type
191
+ ) & ([MCPData] extends [null]
192
+ ? { mcp?: PikkuMCP } // Optional MCP
193
+ : { mcp: PikkuMCP } // Required MCP
194
+ )
195
+ > = CorePikkuFunctionSessionless<In, Out, ChannelData, RequiredServices, Session>
196
+
197
+ /**
198
+ * A session-aware API function that requires user authentication.
199
+ * Use this for protected endpoints that need access to user session data.
200
+ *
201
+ * @template In - The input type
202
+ * @template Out - The output type that the function returns
203
+ * @template ChannelData - Channel data type (null = optional channel)
204
+ * @template MCPData - MCP data type (null = optional MCP)
205
+ * @template RequiredServices - Services required by this function
206
+ */
207
+ export type PikkuFunction<
208
+ In = unknown,
209
+ Out = never,
210
+ ChannelData = null, // null means optional channel
211
+ MCPData = null, // null means optional MCP
212
+ RequiredServices extends Services = Omit<Services, 'rpc' | 'channel' | 'mcp'> &
213
+ { rpc: TypedPikkuRPC } & (
214
+ [ChannelData] extends [null]
215
+ ? { channel?: PikkuChannel<unknown, Out> } // Optional channel
216
+ : { channel: PikkuChannel<ChannelData, Out> } // Required channel with any data type
217
+ ) & ([MCPData] extends [null]
218
+ ? { mcp?: PikkuMCP } // Optional MCP
219
+ : { mcp: PikkuMCP } // Required MCP
220
+ )
221
+ > = CorePikkuFunction<In, Out, ChannelData, RequiredServices, Session>
222
+
223
+ /**
224
+ * Configuration object for Pikku functions with optional middleware, permissions, tags, and documentation.
225
+ * This type wraps CorePikkuFunctionConfig with the user's custom types.
226
+ *
227
+ * @template In - The input type
228
+ * @template Out - The output type
229
+ * @template ChannelData - Channel data type
230
+ * @template MCPData - MCP data type
231
+ * @template PikkuFunc - The function type (can be narrowed to PikkuFunction or PikkuFunctionSessionless)
232
+ */
233
+ export type PikkuFunctionConfig<
234
+ In = unknown,
235
+ Out = unknown,
236
+ ChannelData = unknown,
237
+ MCPData = unknown,
238
+ PikkuFunc extends PikkuFunction<In, Out, ChannelData, MCPData> | PikkuFunctionSessionless<In, Out, ChannelData, MCPData> = PikkuFunction<In, Out, ChannelData, MCPData> | PikkuFunctionSessionless<In, Out, ChannelData, MCPData>
239
+ > = CorePikkuFunctionConfig<PikkuFunc, PikkuPermission<In>, PikkuMiddleware>
240
+
241
+ /**
242
+ * Creates a Pikku function that can be either session-aware or sessionless.
243
+ * This is the main function wrapper for creating API endpoints.
244
+ *
245
+ * @template In - Input type for the function
246
+ * @template Out - Output type for the function
247
+ * @param func - Function definition, either direct function or configuration object
248
+ * @returns The normalized configuration object
249
+ *
250
+ * @example
251
+ * \\\`\\\`\\\`typescript
252
+ * const createUser = pikkuFunc<{name: string, email: string}, {id: number, message: string}>({
253
+ * func: async ({db, logger}, input) => {
254
+ * logger.info('Creating user', input.name)
255
+ * const user = await db.users.create(input)
256
+ * return {id: user.id, message: \\\`User \\\${input.name} created successfully\\\`}
257
+ * },
258
+ * auth: true
259
+ * })
260
+ * \\\`\\\`\\\`
261
+ */
262
+ export const pikkuFunc = <In, Out = unknown>(
263
+ func:
264
+ | PikkuFunction<In, Out>
265
+ | CorePikkuFunctionConfig<PikkuFunction<In, Out>, PikkuPermission<In>, PikkuMiddleware>
266
+ ) => {
267
+ return typeof func === 'function' ? { func } : func
268
+ }
269
+
270
+ /**
271
+ * Creates a sessionless Pikku function that doesn't require user authentication.
272
+ * Use this for public endpoints, webhooks, or background tasks.
273
+ *
274
+ * @template In - Input type for the function
275
+ * @template Out - Output type for the function
276
+ * @param func - Function definition, either direct function or configuration object
277
+ * @returns The normalized configuration object
278
+ *
279
+ * @example
280
+ * \\\`\\\`\\\`typescript
281
+ * const healthCheck = pikkuSessionlessFunc<void, {status: string, timestamp: string}>({
282
+ * func: async ({logger}) => {
283
+ * logger.info('Health check requested')
284
+ * return {status: 'healthy', timestamp: new Date().toISOString()}
285
+ * },
286
+ * name: 'healthCheck'
287
+ * })
288
+ * \\\`\\\`\\\`
289
+ */
290
+ export const pikkuSessionlessFunc = <In, Out = unknown>(
291
+ func:
292
+ | PikkuFunctionSessionless<In, Out>
293
+ | CorePikkuFunctionConfig<PikkuFunctionSessionless<In, Out>, PikkuPermission<In>, PikkuMiddleware>
294
+ ) => {
295
+ return typeof func === 'function' ? { func } : func
296
+ }
297
+
298
+ /**
299
+ * Creates a function that takes no input and returns no output.
300
+ * Useful for health checks, triggers, or cleanup operations.
301
+ *
302
+ * @param func - Function definition, either direct function or configuration object
303
+ * @returns The normalized configuration object
304
+ *
305
+ * @example
306
+ * \\\`\\\`\\\`typescript
307
+ * const cleanupTempFiles = pikkuVoidFunc(async ({fileSystem, logger}) => {
308
+ * logger.info('Starting cleanup of temporary files')
309
+ * await fileSystem.deleteDirectory('/tmp/uploads')
310
+ * logger.info('Cleanup completed')
311
+ * })
312
+ * \\\`\\\`\\\`
313
+ */
314
+ export const pikkuVoidFunc = (
315
+ func:
316
+ | PikkuFunctionSessionless<void, void>
317
+ | CorePikkuFunctionConfig<PikkuFunctionSessionless<void, void>, PikkuPermission<void>>
318
+ ) => {
319
+ return typeof func === 'function' ? { func } : func
320
+ }
321
+
322
+ /**
323
+ * Creates a Pikku config factory.
324
+ * Use this to define your application's configuration factory.
325
+ *
326
+ * @param func - Config factory function that returns your application's config
327
+ * @returns The config factory function
328
+ *
329
+ * @example
330
+ * \`\`\`typescript
331
+ * export const createConfig = pikkuConfig(async () => {
332
+ * return {
333
+ * apiUrl: process.env.API_URL || 'http://localhost:3000',
334
+ * dbUrl: process.env.DATABASE_URL
335
+ * }
336
+ * })
337
+ * \`\`\`
338
+ */
339
+ export const pikkuConfig = (
340
+ func: (variables?: any, ...args: any[]) => Promise<Config>
341
+ ) => func
342
+
343
+ /**
344
+ * Creates a Pikku singleton services factory.
345
+ * Use this to define services that are created once and shared across all requests.
346
+ *
347
+ * @param func - Singleton services factory function
348
+ * @returns The singleton services factory function
349
+ *
350
+ * @example
351
+ * \`\`\`typescript
352
+ * export const createSingletonServices = pikkuServices(async (config, existingServices) => {
353
+ * return {
354
+ * config,
355
+ * logger: new CustomLogger(),
356
+ * db: await createDatabaseConnection(config.dbUrl)
357
+ * }
358
+ * })
359
+ * \`\`\`
360
+ */
361
+ export const pikkuServices = (
362
+ func: (config: Config, existingServices?: Partial<SingletonServices>) => Promise<RequiredSingletonServices>
363
+ ) => func
364
+
365
+ /**
366
+ * Creates a Pikku session services factory.
367
+ * Use this to define services that are created per-request/session.
368
+ *
369
+ * @param func - Session services factory function
370
+ * @returns The session services factory function
371
+ *
372
+ * @example
373
+ * \`\`\`typescript
374
+ * export const createSessionServices = pikkuSessionServices(async (services, interaction, session) => {
375
+ * return {
376
+ * userCache: new UserCache(session?.userId)
377
+ * }
378
+ * })
379
+ * \`\`\`
380
+ */
381
+ export const pikkuSessionServices = (
382
+ func: (
383
+ services: SingletonServices,
384
+ interaction: any,
385
+ session: Session | undefined
386
+ ) => Promise<RequiredSessionServices>
387
+ ) => func
388
+
389
+ /**
390
+ * Adds global middleware for a specific tag.
391
+ *
392
+ * This function allows you to register middleware that will be applied to
393
+ * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
394
+ *
395
+ * @param tag - The tag that the middleware should apply to.
396
+ * @param middleware - The middleware array to apply for the specified tag.
397
+ *
398
+ * @throws Error if middleware for the tag already exists.
399
+ *
400
+ * @example
401
+ * \`\`\`typescript
402
+ * // Add admin middleware for admin endpoints
403
+ * addMiddleware('admin', [adminMiddleware])
404
+ *
405
+ * // Add authentication middleware for auth endpoints
406
+ * addMiddleware('auth', [authMiddleware])
407
+ *
408
+ * // Add logging middleware for all API endpoints
409
+ * addMiddleware('api', [loggingMiddleware])
410
+ * \`\`\`
411
+ */
412
+ export const addMiddleware = (tag: string, middleware: PikkuMiddleware[]) => {
413
+ addMiddlewareCore(tag, middleware as any)
414
+ }
415
+
416
+ /**
417
+ * Adds global permissions for a specific tag.
418
+ *
419
+ * This function allows you to register permissions that will be applied to
420
+ * any wiring (HTTP, Channel, Queue, Scheduler, MCP) that includes the matching tag.
421
+ *
422
+ * @param tag - The tag that the permissions should apply to.
423
+ * @param permissions - The permissions array or object to apply for the specified tag.
424
+ *
425
+ * @throws Error if permissions for the tag already exist.
426
+ *
427
+ * @example
428
+ * \`\`\`typescript
429
+ * // Add admin permissions for admin endpoints
430
+ * addPermission('admin', [adminPermission])
431
+ *
432
+ * // Add authentication permissions for auth endpoints
433
+ * addPermission('auth', [authPermission])
434
+ *
435
+ * // Add read permissions for all API endpoints (as object)
436
+ * addPermission('api', { read: readPermission })
437
+ * \`\`\`
438
+ */
439
+ export const addPermission = <In = unknown>(tag: string, permissions: CorePermissionGroup<PikkuPermission<In>> | PikkuPermission<In>[]) => {
440
+ addPermissionCore(tag, permissions as any)
441
+ }
442
+ `;
443
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generates the main pikku-types.gen.ts file as a re-export hub
3
+ */
4
+ export declare const serializePikkuTypesHub: (functionTypesImportPath: string, httpTypesImportPath: string, channelTypesImportPath: string, schedulerTypesImportPath: string, queueTypesImportPath: string, mcpTypesImportPath: string, cliTypesImportPath: string) => string;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Generates the main pikku-types.gen.ts file as a re-export hub
3
+ */
4
+ export const serializePikkuTypesHub = (functionTypesImportPath, httpTypesImportPath, channelTypesImportPath, schedulerTypesImportPath, queueTypesImportPath, mcpTypesImportPath, cliTypesImportPath) => {
5
+ return `/**
6
+ * Main type export hub - re-exports all wiring-specific types
7
+ */
8
+
9
+ // Core function, middleware, and permission types
10
+ export * from '${functionTypesImportPath}'
11
+
12
+ // HTTP wiring types
13
+ export * from '${httpTypesImportPath}'
14
+
15
+ // Channel wiring types
16
+ export * from '${channelTypesImportPath}'
17
+
18
+ // Scheduler wiring types
19
+ export * from '${schedulerTypesImportPath}'
20
+
21
+ // Queue wiring types
22
+ export * from '${queueTypesImportPath}'
23
+
24
+ // MCP wiring types
25
+ export * from '${mcpTypesImportPath}'
26
+
27
+ // CLI wiring types
28
+ export * from '${cliTypesImportPath}'
29
+ `;
30
+ };
@@ -1,4 +1,6 @@
1
- import { FunctionsMeta, HTTPWiringsMeta } from '@pikku/core';
1
+ import { FunctionsMeta } from '@pikku/core';
2
+ import { HTTPWiringsMeta } from '@pikku/core/http';
3
+ import { CLILogger } from '../../../services/cli-logger.service.js';
2
4
  interface OpenAPISpec {
3
5
  openapi: string;
4
6
  info: {
@@ -75,5 +77,5 @@ export interface OpenAPISpecInfo {
75
77
  [key: string]: any[];
76
78
  }[];
77
79
  }
78
- export declare function generateOpenAPISpec(functionsMeta: FunctionsMeta, httpMeta: HTTPWiringsMeta, schemas: Record<string, any>, additionalInfo: OpenAPISpecInfo): Promise<OpenAPISpec>;
80
+ export declare function generateOpenAPISpec(logger: CLILogger, functionsMeta: FunctionsMeta, httpMeta: HTTPWiringsMeta, schemas: Record<string, any>, additionalInfo: OpenAPISpecInfo): Promise<OpenAPISpec>;
79
81
  export {};
@@ -34,14 +34,14 @@ const convertSchemasToBodyPayloads = async (functionsMeta, routesMeta, schemas)
34
34
  }));
35
35
  return Object.fromEntries(convertedEntries.filter((s) => !!s));
36
36
  };
37
- export async function generateOpenAPISpec(functionsMeta, httpMeta, schemas, additionalInfo) {
37
+ export async function generateOpenAPISpec(logger, functionsMeta, httpMeta, schemas, additionalInfo) {
38
38
  const paths = {};
39
39
  for (const routeMeta of Object.values(httpMeta)) {
40
40
  for (const meta of Object.values(routeMeta)) {
41
41
  const { route, method, inputTypes, pikkuFuncName, params, query, docs } = meta;
42
42
  const functionMeta = functionsMeta[pikkuFuncName];
43
43
  if (!functionMeta) {
44
- console.error(`• No function metadata found for '${pikkuFuncName}' in route '${route}'.`);
44
+ logger.error(`• No function metadata found for '${pikkuFuncName}' in route '${route}'.`);
45
45
  continue;
46
46
  }
47
47
  const output = functionMeta.outputs ? functionMeta.outputs[0] : undefined;
@@ -0,0 +1 @@
1
+ export declare const pikkuHTTPMap: any;
@@ -0,0 +1,18 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ import { serializeTypedHTTPWiringsMap } from './serialize-typed-http-map.js';
5
+ export const pikkuHTTPMap = pikkuSessionlessFunc({
6
+ func: async ({ logger, config, getInspectorState }) => {
7
+ const { http, functions } = await getInspectorState();
8
+ const { httpMapDeclarationFile, packageMappings } = config;
9
+ const content = serializeTypedHTTPWiringsMap(httpMapDeclarationFile, packageMappings, functions.typesMap, functions.meta, http.meta, http.metaInputTypes);
10
+ await writeFileInDir(logger, httpMapDeclarationFile, content);
11
+ },
12
+ middleware: [
13
+ logCommandInfoAndTime({
14
+ commandStart: 'Creating HTTP map',
15
+ commandEnd: 'Created HTTP map',
16
+ }),
17
+ ],
18
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuHTTP: any;
@@ -0,0 +1,20 @@
1
+ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
2
+ import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ export const pikkuHTTP = pikkuSessionlessFunc({
6
+ func: async ({ logger, config, getInspectorState }) => {
7
+ const visitState = await getInspectorState();
8
+ const { httpWiringsFile, httpWiringMetaFile, packageMappings } = config;
9
+ const { http } = visitState;
10
+ await writeFileInDir(logger, httpWiringsFile, serializeFileImports('wireHTTP', httpWiringsFile, http.files, packageMappings));
11
+ await writeFileInDir(logger, httpWiringMetaFile, `import { pikkuState } from '@pikku/core'\npikkuState('http', 'meta', ${JSON.stringify(http.meta, null, 2)})`);
12
+ return true;
13
+ },
14
+ middleware: [
15
+ logCommandInfoAndTime({
16
+ commandStart: 'Finding HTTP routes',
17
+ commandEnd: 'Found HTTP routes',
18
+ }),
19
+ ],
20
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuHTTPTypes: any;