@pikku/cli 0.11.1 → 0.11.2

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 (257) hide show
  1. package/.pikku/channel/pikku-channel-types.gen.ts +11 -12
  2. package/.pikku/channel/pikku-channels-map.gen.d.ts +8 -8
  3. package/.pikku/channel/pikku-channels-meta.gen.ts +1 -1
  4. package/.pikku/channel/pikku-channels.gen.ts +1 -1
  5. package/.pikku/cli/pikku-cli-channel.ts +2 -2
  6. package/.pikku/cli/pikku-cli-client.gen.ts +1 -3
  7. package/.pikku/cli/pikku-cli-types.gen.ts +3 -3
  8. package/.pikku/cli/pikku-cli-wirings-meta.gen.json +146 -0
  9. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +4 -157
  10. package/.pikku/cli/pikku-cli-wirings.gen.ts +3 -3
  11. package/.pikku/cli/pikku-cli.gen.ts +3 -3
  12. package/.pikku/function/pikku-function-types.gen.ts +49 -63
  13. package/.pikku/function/pikku-functions-meta.gen.json +988 -0
  14. package/.pikku/function/pikku-functions-meta.gen.ts +4 -970
  15. package/.pikku/function/pikku-functions-meta.min.gen.json +212 -0
  16. package/.pikku/function/pikku-functions-meta.min.gen.ts +4 -209
  17. package/.pikku/http/pikku-http-types.gen.ts +2 -2
  18. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +8 -8
  19. package/.pikku/http/pikku-http-wirings-meta.gen.ts +1 -1
  20. package/.pikku/http/pikku-http-wirings.gen.ts +1 -1
  21. package/.pikku/mcp/pikku-mcp-types.gen.ts +13 -13
  22. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
  23. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +6 -4
  24. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +1 -1
  25. package/.pikku/pikku-bootstrap.gen.ts +1 -4
  26. package/.pikku/pikku-services.gen.ts +4 -6
  27. package/.pikku/pikku-types.gen.ts +1 -1
  28. package/.pikku/pikku-websocket.gen.ts +1 -1
  29. package/.pikku/queue/pikku-queue-types.gen.ts +2 -2
  30. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +8 -8
  31. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
  32. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +5 -7
  33. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +1 -1
  34. package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +2 -2
  35. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +8 -8
  36. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +34 -33
  37. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +2 -2
  38. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
  39. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +5 -2
  40. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +1 -1
  41. package/.pikku/schemas/register.gen.ts +25 -25
  42. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  43. package/.pikku/services/config.gen.json +99 -0
  44. package/.pikku/services/getInspectorState.gen.json +10 -0
  45. package/.pikku/services/jwt.gen.json +13 -0
  46. package/.pikku/services/logger.gen.json +25 -0
  47. package/.pikku/services/queueService.gen.json +14 -0
  48. package/.pikku/services/schedulerService.gen.json +17 -0
  49. package/.pikku/services/schema.gen.json +14 -0
  50. package/.pikku/services/variables.gen.json +13 -0
  51. package/.pikku/services/workflowService.gen.json +31 -0
  52. package/.pikku/workflow/pikku-workflow-map.gen.d.ts +8 -8
  53. package/.pikku/workflow/pikku-workflow-types.gen.ts +36 -31
  54. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +1 -0
  55. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +5 -2
  56. package/.pikku/workflow/pikku-workflow-wirings.gen.ts +6 -2
  57. package/CHANGELOG.md +21 -0
  58. package/bin/pikku.ts +6 -32
  59. package/build.sh +53 -31
  60. package/cli.schema.json +1 -1
  61. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +6 -7
  62. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  63. package/dist/.pikku/channel/pikku-channels-meta.gen.js +1 -1
  64. package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
  65. package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
  66. package/dist/.pikku/cli/pikku-cli-channel.js +2 -2
  67. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  68. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -3
  69. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +3 -3
  70. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  71. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +3 -157
  72. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +146 -0
  73. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +2 -2
  74. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +2 -2
  75. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  76. package/dist/.pikku/cli/pikku-cli.gen.js +3 -3
  77. package/dist/.pikku/function/pikku-function-types.gen.d.ts +29 -79
  78. package/dist/.pikku/function/pikku-function-types.gen.js +19 -15
  79. package/dist/.pikku/function/pikku-functions-meta.gen.js +3 -969
  80. package/dist/.pikku/function/pikku-functions-meta.gen.json +988 -0
  81. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +3 -208
  82. package/dist/.pikku/function/pikku-functions-meta.min.gen.json +212 -0
  83. package/dist/.pikku/http/pikku-http-types.gen.d.ts +2 -2
  84. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  85. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
  86. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  87. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  88. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +13 -13
  89. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  90. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +5 -4
  91. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
  92. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
  93. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +1 -1
  94. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -4
  95. package/dist/.pikku/pikku-bootstrap.gen.js +1 -4
  96. package/dist/.pikku/pikku-services.gen.d.ts +3 -6
  97. package/dist/.pikku/pikku-services.gen.js +2 -5
  98. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  99. package/dist/.pikku/pikku-types.gen.js +1 -1
  100. package/dist/.pikku/pikku-websocket.gen.d.ts +1 -1
  101. package/dist/.pikku/pikku-websocket.gen.js +1 -1
  102. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +2 -2
  103. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  104. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +3 -7
  105. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
  106. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  107. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  108. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +6 -9
  109. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +2 -2
  110. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +2 -2
  111. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  112. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +3 -2
  113. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
  114. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +1 -1
  115. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +1 -1
  116. package/dist/.pikku/schemas/register.gen.js +15 -15
  117. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  118. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +29 -25
  119. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +22 -8
  120. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -2
  121. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +1 -0
  122. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +6 -2
  123. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +6 -3
  124. package/dist/bin/pikku.js +5 -26
  125. package/dist/src/cli.wiring.js +4 -4
  126. package/dist/src/functions/commands/all.js +82 -42
  127. package/dist/src/functions/commands/bootstrap.js +22 -10
  128. package/dist/src/functions/commands/watch.js +6 -3
  129. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +12 -7
  130. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
  131. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +42 -4
  132. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.d.ts +1 -1
  133. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +40 -2
  134. package/dist/src/functions/wirings/channels/pikku-channels.js +9 -2
  135. package/dist/src/functions/wirings/channels/serialize-channel-types.js +10 -11
  136. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +4 -4
  137. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
  138. package/dist/src/functions/wirings/cli/pikku-command-cli.js +9 -3
  139. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +1 -1
  140. package/dist/src/functions/wirings/cli/serialize-cli-types.js +2 -2
  141. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +1 -1
  142. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +4 -4
  143. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +4 -4
  144. package/dist/src/functions/wirings/functions/pikku-command-functions.js +15 -5
  145. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  146. package/dist/src/functions/wirings/functions/pikku-command-services.js +23 -23
  147. package/dist/src/functions/wirings/functions/schemas.js +1 -1
  148. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
  149. package/dist/src/functions/wirings/functions/serialize-function-types.js +50 -64
  150. package/dist/src/functions/wirings/http/openapi-spec-generator.js +4 -4
  151. package/dist/src/functions/wirings/http/pikku-http-routes.js +9 -2
  152. package/dist/src/functions/wirings/http/serialize-http-types.js +1 -1
  153. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +18 -4
  154. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +12 -12
  155. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +26 -2
  156. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +5 -2
  157. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +5 -13
  158. package/dist/src/functions/wirings/queue/pikku-command-queue.js +9 -3
  159. package/dist/src/functions/wirings/queue/pikku-queue.js +9 -3
  160. package/dist/src/functions/wirings/queue/serialize-queue-meta.d.ts +2 -1
  161. package/dist/src/functions/wirings/queue/serialize-queue-meta.js +10 -1
  162. package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
  163. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +9 -2
  164. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -4
  165. package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +1 -1
  166. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +3 -3
  167. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +6 -3
  168. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +2 -1
  169. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +11 -1
  170. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
  171. package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +1 -0
  172. package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +22 -0
  173. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +3 -1
  174. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +12 -8
  175. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +2 -1
  176. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +11 -1
  177. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -1
  178. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +36 -31
  179. package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.d.ts +8 -0
  180. package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.js +30 -0
  181. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +2 -2
  182. package/dist/src/middleware/log-command-info-and-time.d.ts +2 -2
  183. package/dist/src/middleware/log-command-info-and-time.js +1 -4
  184. package/dist/src/services/cli-logger-forwarder.service.js +1 -1
  185. package/dist/src/services.d.ts +2 -7
  186. package/dist/src/services.js +14 -12
  187. package/dist/src/utils/check-required-types.d.ts +2 -2
  188. package/dist/src/utils/check-required-types.js +2 -3
  189. package/dist/src/utils/pikku-cli-config.js +35 -2
  190. package/dist/src/utils/pikku-files-and-methods.d.ts +2 -2
  191. package/dist/src/utils/pikku-files-and-methods.js +4 -4
  192. package/dist/src/utils/schema-generator.d.ts +1 -1
  193. package/dist/src/utils/schema-generator.js +1 -1
  194. package/dist/tsconfig.tsbuildinfo +1 -1
  195. package/package.json +7 -8
  196. package/src/cli.wiring.ts +4 -4
  197. package/src/functions/commands/all.ts +94 -45
  198. package/src/functions/commands/bootstrap.ts +25 -10
  199. package/src/functions/commands/watch.ts +6 -3
  200. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +26 -5
  201. package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +43 -4
  202. package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +40 -1
  203. package/src/functions/wirings/channels/pikku-channels.ts +27 -3
  204. package/src/functions/wirings/channels/serialize-channel-types.ts +10 -11
  205. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +4 -4
  206. package/src/functions/wirings/cli/pikku-command-cli-types.ts +1 -1
  207. package/src/functions/wirings/cli/pikku-command-cli.ts +26 -3
  208. package/src/functions/wirings/cli/serialize-channel-cli.ts +1 -1
  209. package/src/functions/wirings/cli/serialize-cli-types.ts +2 -2
  210. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +5 -5
  211. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +6 -6
  212. package/src/functions/wirings/functions/pikku-command-functions.ts +39 -4
  213. package/src/functions/wirings/functions/pikku-command-services.ts +25 -25
  214. package/src/functions/wirings/functions/schemas.ts +2 -2
  215. package/src/functions/wirings/functions/serialize-function-types.ts +51 -65
  216. package/src/functions/wirings/http/openapi-spec-generator.ts +14 -5
  217. package/src/functions/wirings/http/pikku-http-routes.ts +28 -2
  218. package/src/functions/wirings/http/serialize-http-types.ts +1 -1
  219. package/src/functions/wirings/mcp/pikku-command-mcp.ts +30 -4
  220. package/src/functions/wirings/mcp/serialize-mcp-types.ts +12 -12
  221. package/src/functions/wirings/middleware/pikku-command-middleware.ts +35 -2
  222. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +4 -19
  223. package/src/functions/wirings/permissions/pikku-command-permissions.ts +2 -2
  224. package/src/functions/wirings/queue/pikku-command-queue.ts +27 -2
  225. package/src/functions/wirings/queue/pikku-queue.ts +27 -2
  226. package/src/functions/wirings/queue/serialize-queue-meta.ts +15 -1
  227. package/src/functions/wirings/queue/serialize-queue-types.ts +1 -1
  228. package/src/functions/wirings/rpc/pikku-command-rpc.ts +25 -2
  229. package/src/functions/wirings/rpc/serialize-public-rpc.ts +11 -4
  230. package/src/functions/wirings/rpc/serialize-remote-rpc.ts +1 -1
  231. package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +3 -3
  232. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +30 -4
  233. package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +20 -1
  234. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +1 -1
  235. package/src/functions/wirings/services/pikku-command-service-metadata.ts +25 -0
  236. package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +8 -1
  237. package/src/functions/wirings/workflow/pikku-command-workflow.ts +36 -8
  238. package/src/functions/wirings/workflow/serialize-workflow-meta.ts +18 -1
  239. package/src/functions/wirings/workflow/serialize-workflow-types.ts +39 -31
  240. package/src/functions/wirings/workflow/serialize-workflow-wirings.ts +47 -0
  241. package/src/functions/wirings/workflow/serialize-workflow-workers.ts +2 -2
  242. package/src/middleware/log-command-info-and-time.ts +3 -6
  243. package/src/services/cli-logger-forwarder.service.ts +1 -1
  244. package/src/services.ts +15 -15
  245. package/src/utils/check-required-types.ts +4 -7
  246. package/src/utils/pikku-cli-config.ts +69 -2
  247. package/src/utils/pikku-files-and-methods.ts +10 -13
  248. package/src/utils/schema-generator.ts +2 -2
  249. package/types/application-types.d.ts +1 -1
  250. package/types/config.d.ts +12 -1
  251. package/.pikku/function/pikku-functions.gen.ts +0 -84
  252. package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +0 -47
  253. package/dist/.pikku/function/pikku-functions.gen.d.ts +0 -1
  254. package/dist/.pikku/function/pikku-functions.gen.js +0 -83
  255. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +0 -1
  256. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +0 -47
  257. package/dist/.pikku/schemas/schemas/PikkuRemoteInternalRPCInput.schema.json +0 -1
@@ -8,9 +8,8 @@ export const serializeChannelTypes = (functionTypesImportPath: string) => {
8
8
  */
9
9
 
10
10
  import { CoreChannel, wireChannel as wireChannelCore } from '@pikku/core/channel'
11
- import { CorePikkuFunctionConfig } from '@pikku/core'
12
11
  import { AssertHTTPWiringParams } from '@pikku/core/http'
13
- import type { PikkuFunction, PikkuFunctionSessionless, PikkuPermission, PikkuMiddleware } from '${functionTypesImportPath}'
12
+ import type { PikkuFunctionConfig, PikkuFunctionSessionless, PikkuPermission, PikkuMiddleware } from '${functionTypesImportPath}'
14
13
 
15
14
  /**
16
15
  * Type definition for WebSocket channels with typed data exchange.
@@ -23,9 +22,9 @@ import type { PikkuFunction, PikkuFunctionSessionless, PikkuPermission, PikkuMid
23
22
  type ChannelWiring<ChannelData, Channel extends string> = CoreChannel<
24
23
  ChannelData,
25
24
  Channel,
26
- CorePikkuFunctionConfig<PikkuFunctionSessionless<void, any, ChannelData>, PikkuPermission<void>, PikkuMiddleware>,
27
- CorePikkuFunctionConfig<PikkuFunctionSessionless<void, void, ChannelData>, PikkuPermission<void>, PikkuMiddleware>,
28
- CorePikkuFunctionConfig<PikkuFunctionSessionless<any, any, ChannelData> | PikkuFunction<any, any, ChannelData>, PikkuPermission<any>, PikkuMiddleware>,
25
+ PikkuFunctionConfig<void, any, 'channel' | 'session' | 'rpc'>,
26
+ PikkuFunctionConfig<void, void, 'channel' | 'session' | 'rpc'>,
27
+ PikkuFunctionConfig<any, any, 'channel' | 'session' | 'rpc'>,
29
28
  PikkuPermission,
30
29
  PikkuMiddleware
31
30
  >
@@ -40,8 +39,8 @@ type ChannelWiring<ChannelData, Channel extends string> = CoreChannel<
40
39
  */
41
40
  export const pikkuChannelConnectionFunc = <Out = unknown>(
42
41
  func:
43
- | PikkuFunctionSessionless<void, Out, unknown>
44
- | CorePikkuFunctionConfig<PikkuFunctionSessionless<void, Out, unknown>, PikkuPermission<void>, PikkuMiddleware>
42
+ | PikkuFunctionSessionless<void, Out, 'channel' | 'session' | 'rpc'>
43
+ | PikkuFunctionConfig<void, Out, 'channel' | 'session' | 'rpc'>
45
44
  ) => {
46
45
  return typeof func === 'function' ? { func } : func
47
46
  }
@@ -55,8 +54,8 @@ export const pikkuChannelConnectionFunc = <Out = unknown>(
55
54
  */
56
55
  export const pikkuChannelDisconnectionFunc = (
57
56
  func:
58
- | PikkuFunctionSessionless<void, void, unknown>
59
- | CorePikkuFunctionConfig<PikkuFunctionSessionless<void, void, unknown>, PikkuPermission<void>, PikkuMiddleware>
57
+ | PikkuFunctionSessionless<void, void, 'channel'>
58
+ | PikkuFunctionConfig<void, void, 'channel' | 'session' | 'rpc'>
60
59
  ) => {
61
60
  return typeof func === 'function' ? { func } : func
62
61
  }
@@ -73,8 +72,8 @@ export const pikkuChannelDisconnectionFunc = (
73
72
  */
74
73
  export const pikkuChannelFunc = <In, Out = unknown>(
75
74
  func:
76
- | PikkuFunctionSessionless<In, Out, unknown>
77
- | CorePikkuFunctionConfig<PikkuFunctionSessionless<In, Out, unknown>, PikkuPermission<In>, PikkuMiddleware>
75
+ | PikkuFunctionSessionless<In, Out, 'channel' | 'session' | 'rpc'>
76
+ | PikkuFunctionConfig<In, Out, 'channel' | 'session' | 'rpc'>
78
77
  ) => {
79
78
  return typeof func === 'function' ? { func } : func
80
79
  }
@@ -173,19 +173,19 @@ export const pikkuCLIEntry: any = pikkuSessionlessFunc<void, void>({
173
173
  checkRequiredTypes(visitState.filesAndMethodsErrors, {
174
174
  config: true,
175
175
  singletonServicesFactory: true,
176
- sessionServicesFactory: true,
176
+ wireServicesFactory: true,
177
177
  })
178
178
 
179
179
  const {
180
180
  pikkuConfigFactory,
181
181
  singletonServicesFactory,
182
- sessionServicesFactory,
182
+ wireServicesFactory,
183
183
  } = visitState.filesAndMethods
184
184
 
185
185
  if (
186
186
  !pikkuConfigFactory ||
187
187
  !singletonServicesFactory ||
188
- !sessionServicesFactory
188
+ !wireServicesFactory
189
189
  ) {
190
190
  throw new Error('Required types not found')
191
191
  }
@@ -197,7 +197,7 @@ export const pikkuCLIEntry: any = pikkuSessionlessFunc<void, void>({
197
197
  config,
198
198
  pikkuConfigFactory,
199
199
  singletonServicesFactory,
200
- sessionServicesFactory
200
+ wireServicesFactory
201
201
  )
202
202
 
203
203
  await writeFileInDir(logger, bootstrapFile, bootstrapCode)
@@ -19,7 +19,7 @@ export const pikkuCLITypes: any = pikkuSessionlessFunc<void, void>({
19
19
  // Check for required types
20
20
  checkRequiredTypes(visitState.filesAndMethodsErrors, {
21
21
  userSessionType: true,
22
- sessionServiceType: true,
22
+ wireServiceType: true,
23
23
  singletonServicesType: true,
24
24
  })
25
25
 
@@ -2,11 +2,18 @@ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
2
2
  import { serializeFileImports } from '../../../utils/file-imports-serializer.js'
3
3
  import { writeFileInDir } from '../../../utils/file-writer.js'
4
4
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
5
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
5
6
 
6
7
  export const pikkuCLI: any = pikkuSessionlessFunc<void, boolean | undefined>({
7
8
  func: async ({ logger, config, getInspectorState }) => {
8
9
  const visitState = await getInspectorState()
9
- const { cliWiringsFile, cliWiringMetaFile, packageMappings } = config
10
+ const {
11
+ cliWiringsFile,
12
+ cliWiringMetaFile,
13
+ cliWiringMetaJsonFile,
14
+ packageMappings,
15
+ schema,
16
+ } = config
10
17
  const { cli } = visitState
11
18
 
12
19
  // Generate CLI wirings file
@@ -21,11 +28,27 @@ export const pikkuCLI: any = pikkuSessionlessFunc<void, boolean | undefined>({
21
28
  )
22
29
  )
23
30
 
24
- // Generate CLI metadata file
31
+ await writeFileInDir(
32
+ logger,
33
+ cliWiringMetaJsonFile,
34
+ JSON.stringify(cli.meta, null, 2)
35
+ )
36
+
37
+ const jsonImportPath = getFileImportRelativePath(
38
+ cliWiringMetaFile,
39
+ cliWiringMetaJsonFile,
40
+ packageMappings
41
+ )
42
+
43
+ const supportsImportAttributes = schema?.supportsImportAttributes ?? false
44
+ const importStatement = supportsImportAttributes
45
+ ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
46
+ : `import metaData from '${jsonImportPath}'`
47
+
25
48
  await writeFileInDir(
26
49
  logger,
27
50
  cliWiringMetaFile,
28
- `import { pikkuState } from '@pikku/core'\npikkuState('cli', 'meta', ${JSON.stringify(cli.meta, null, 2)})`
51
+ `import { pikkuState } from '@pikku/core'\nimport { CLIMeta } from '@pikku/core/cli'\n${importStatement}\npikkuState('cli', 'meta', metaData as CLIMeta)`
29
52
  )
30
53
 
31
54
  return true
@@ -89,7 +89,7 @@ import { pikkuMiddleware } from '${functionTypesPath}'
89
89
  ${imports}
90
90
 
91
91
  // Middleware to close the channel after CLI command completes
92
- const cliCloseOnComplete = pikkuMiddleware(async (services, { channel }, next) => {
92
+ const cliCloseOnComplete = pikkuMiddleware(async (_services, { channel }, next) => {
93
93
  const closeChannel = () => {
94
94
  setTimeout(async () => {
95
95
  try {
@@ -56,7 +56,7 @@ export const pikkuCLIRender = <Data, RequiredServices extends SingletonServices
56
56
  * CLI command configuration with project-specific types.
57
57
  * Uses CoreCLICommandConfig from @pikku/core with local middleware and render types.
58
58
  */
59
- type CLICommandConfig<Func extends PikkuFunctionConfig<In, Out>, In = any, Out = any, Params extends string = string> = CoreCLICommandConfig<Func, PikkuMiddleware, PikkuCLIRender<any>, Params>
59
+ type CLICommandConfig<Func extends PikkuFunctionConfig<In, Out, 'cli' | 'rpc' | 'session'>, In = any, Out = any, Params extends string = string> = CoreCLICommandConfig<Func, PikkuMiddleware, PikkuCLIRender<any>, Params>
60
60
 
61
61
  /**
62
62
  * Type definition for CLI applications with commands and global options.
@@ -90,7 +90,7 @@ export const wireCLI = <Commands extends Record<string, CoreCLICommandConfig<any
90
90
  * @returns CLI command configuration with inferred types
91
91
  */
92
92
  export const pikkuCLICommand = <
93
- FuncConfig extends PikkuFunctionConfig<any, any>,
93
+ FuncConfig extends PikkuFunctionConfig<any, any, 'cli' | 'rpc' | 'session'>,
94
94
  Params extends string
95
95
  >(
96
96
  config: CLICommandConfig<FuncConfig, any, any, Params>
@@ -11,7 +11,7 @@ export function serializeLocalCLIBootstrap(
11
11
  config: Config,
12
12
  pikkuConfigFactory: { file: string; variable: string },
13
13
  singletonServicesFactory: { file: string; variable: string },
14
- sessionServicesFactory: { file: string; variable: string }
14
+ wireServicesFactory: { file: string; variable: string }
15
15
  ): string {
16
16
  const capitalizedName =
17
17
  programName.charAt(0).toUpperCase() + programName.slice(1).replace(/-/g, '')
@@ -27,9 +27,9 @@ export function serializeLocalCLIBootstrap(
27
27
  singletonServicesFactory.file,
28
28
  config.packageMappings
29
29
  )
30
- const sessionServicesPath = getFileImportRelativePath(
30
+ const wireServicesPath = getFileImportRelativePath(
31
31
  bootstrapFile,
32
- sessionServicesFactory.file,
32
+ wireServicesFactory.file,
33
33
  config.packageMappings
34
34
  )
35
35
  const cliBootstrapPath = getFileImportRelativePath(
@@ -42,7 +42,7 @@ export function serializeLocalCLIBootstrap(
42
42
  import { executeCLI, CLIError } from '@pikku/core/cli'
43
43
  import { ${pikkuConfigFactory.variable} as createConfig } from '${pikkuConfigPath}'
44
44
  import { ${singletonServicesFactory.variable} as createSingletonServices } from '${singletonServicesPath}'
45
- import { ${sessionServicesFactory.variable} as createSessionServices } from '${sessionServicesPath}'
45
+ import { ${wireServicesFactory.variable} as createWireServices } from '${wireServicesPath}'
46
46
  import '${cliBootstrapPath}'
47
47
 
48
48
  /**
@@ -56,7 +56,7 @@ export async function ${capitalizedName}CLI(args: string[]): Promise<void> {
56
56
  args: args || process.argv.slice(2),
57
57
  createConfig,
58
58
  createSingletonServices,
59
- createSessionServices,
59
+ createWireServices,
60
60
  })
61
61
  } catch (error) {
62
62
  if (error instanceof CLIError) {
@@ -18,18 +18,18 @@ export const pikkuFunctionTypesSplit: any = pikkuSessionlessFunc<void, void>({
18
18
  // Check for required types
19
19
  checkRequiredTypes(visitState.filesAndMethodsErrors, {
20
20
  userSessionType: true,
21
- sessionServiceType: true,
21
+ wireServiceType: true,
22
22
  singletonServicesType: true,
23
23
  })
24
24
 
25
25
  const {
26
26
  userSessionType,
27
- sessionServicesType,
27
+ wireServicesType,
28
28
  singletonServicesType,
29
29
  pikkuConfigType,
30
30
  } = visitState.filesAndMethods
31
31
 
32
- if (!userSessionType || !sessionServicesType || !singletonServicesType) {
32
+ if (!userSessionType || !wireServicesType || !singletonServicesType) {
33
33
  throw new Error('Required types not found')
34
34
  }
35
35
 
@@ -42,10 +42,10 @@ export const pikkuFunctionTypesSplit: any = pikkuSessionlessFunc<void, void>({
42
42
  userSessionType.type,
43
43
  `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(functionTypesFile, singletonServicesType.typePath, packageMappings)}'`,
44
44
  singletonServicesType.type,
45
- `import type { ${sessionServicesType.type} } from '${getFileImportRelativePath(functionTypesFile, sessionServicesType.typePath, packageMappings)}'`,
46
- sessionServicesType.type,
45
+ `import type { ${wireServicesType.type} } from '${getFileImportRelativePath(functionTypesFile, wireServicesType.typePath, packageMappings)}'`,
46
+ wireServicesType.type,
47
47
  `import type { TypedPikkuRPC } from '${getFileImportRelativePath(functionTypesFile, rpcInternalMapDeclarationFile, packageMappings)}'`,
48
- `import type { RequiredSingletonServices, RequiredSessionServices } from '${getFileImportRelativePath(functionTypesFile, servicesFile, packageMappings)}'`,
48
+ `import type { RequiredSingletonServices, RequiredWireServices } from '${getFileImportRelativePath(functionTypesFile, servicesFile, packageMappings)}'`,
49
49
  configTypeImport
50
50
  )
51
51
 
@@ -5,6 +5,7 @@ import {
5
5
  generateRuntimeMeta,
6
6
  serializeFunctionImports,
7
7
  } from './serialize-function-imports.js'
8
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
8
9
 
9
10
  export const pikkuFunctions: any = pikkuSessionlessFunc<
10
11
  void,
@@ -14,24 +15,58 @@ export const pikkuFunctions: any = pikkuSessionlessFunc<
14
15
  const { functions, rpc } = await getInspectorState()
15
16
  const {
16
17
  functionsMetaFile,
18
+ functionsMetaJsonFile,
17
19
  functionsMetaMinFile,
20
+ functionsMetaMinJsonFile,
18
21
  functionsFile,
19
22
  packageMappings,
23
+ schema,
20
24
  } = config
21
25
 
22
- // Generate full metadata
26
+ await writeFileInDir(
27
+ logger,
28
+ functionsMetaJsonFile,
29
+ JSON.stringify(functions.meta, null, 2)
30
+ )
31
+
32
+ const fullJsonImportPath = getFileImportRelativePath(
33
+ functionsMetaFile,
34
+ functionsMetaJsonFile,
35
+ packageMappings
36
+ )
37
+
38
+ const supportsImportAttributes = schema?.supportsImportAttributes ?? false
39
+ const fullImportStatement = supportsImportAttributes
40
+ ? `import metaData from '${fullJsonImportPath}' with { type: 'json' }`
41
+ : `import metaData from '${fullJsonImportPath}'`
42
+
23
43
  await writeFileInDir(
24
44
  logger,
25
45
  functionsMetaFile,
26
- `import { pikkuState } from '@pikku/core'\npikkuState('function', 'meta', ${JSON.stringify(functions.meta, null, 2)})`
46
+ `import { pikkuState, FunctionsMeta } from '@pikku/core'\n${fullImportStatement}\npikkuState('function', 'meta', metaData as FunctionsMeta)`
27
47
  )
28
48
 
29
- // Generate minimal metadata (runtime)
30
49
  const runtimeMeta = generateRuntimeMeta(functions.meta)
50
+ await writeFileInDir(
51
+ logger,
52
+ functionsMetaMinJsonFile,
53
+ JSON.stringify(runtimeMeta, null, 2)
54
+ )
55
+
56
+ const minJsonImportPath = getFileImportRelativePath(
57
+ functionsMetaMinFile,
58
+ functionsMetaMinJsonFile,
59
+ packageMappings
60
+ )
61
+
62
+ const minImportStatement = supportsImportAttributes
63
+ ? `import metaData from '${minJsonImportPath}' with { type: 'json' }`
64
+ : `import metaData from '${minJsonImportPath}'`
65
+
31
66
  await writeFileInDir(
32
67
  logger,
33
68
  functionsMetaMinFile,
34
- `import { pikkuState } from '@pikku/core'\npikkuState('function', 'meta', ${JSON.stringify(runtimeMeta, null, 2)})`
69
+ `import { pikkuState, FunctionsRuntimeMeta } from '@pikku/core'\n${minImportStatement}\npikkuState('function', 'meta', metaData as FunctionsRuntimeMeta)`
35
70
  )
36
71
 
37
72
  const hasRPCs = rpc.exposedFiles.size > 0 || rpc.internalFiles.size > 0
@@ -6,11 +6,11 @@ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-
6
6
 
7
7
  export const serializeServicesMap = (
8
8
  allSingletonServices: string[],
9
- allSessionServices: string[],
9
+ allWireServices: string[],
10
10
  requiredServices: Set<string>,
11
11
  forceRequiredServices: string[] = [],
12
12
  servicesImport: string,
13
- sessionServicesImport: string
13
+ wireServicesImport: string
14
14
  ): string => {
15
15
  // Use pre-aggregated services from inspector state
16
16
  // This includes services from:
@@ -20,7 +20,7 @@ export const serializeServicesMap = (
20
20
  // - Session factories
21
21
  const usedServices = new Set(requiredServices)
22
22
 
23
- // Internal services that are created internally by the framework (PikkuInteraction)
23
+ // Internal services that are created internally by the framework (PikkuWire)
24
24
  // These should not appear in the services maps
25
25
  const internalServices = new Set([
26
26
  'rpc',
@@ -50,12 +50,12 @@ export const serializeServicesMap = (
50
50
  singletonServicesMap[service] = usedServices.has(service)
51
51
  })
52
52
 
53
- // Create session services map: all session services with true/false based on usage
54
- // Exclude internal framework services (PikkuInteraction)
55
- const sessionServicesMap: Record<string, boolean> = {}
56
- allSessionServices.forEach((service) => {
53
+ // Create wire services map: all wire services with true/false based on usage
54
+ // Exclude internal framework services (PikkuWire)
55
+ const wireServicesMap: Record<string, boolean> = {}
56
+ allWireServices.forEach((service) => {
57
57
  if (!internalServices.has(service)) {
58
- sessionServicesMap[service] = usedServices.has(service)
58
+ wireServicesMap[service] = usedServices.has(service)
59
59
  }
60
60
  })
61
61
 
@@ -63,13 +63,13 @@ export const serializeServicesMap = (
63
63
  const requiredSingletonServiceNames = Object.keys(singletonServicesMap)
64
64
  .filter((key) => singletonServicesMap[key])
65
65
  .sort()
66
- const requiredSessionServiceNames = Object.keys(sessionServicesMap)
67
- .filter((key) => sessionServicesMap[key])
66
+ const requiredWireServiceNames = Object.keys(wireServicesMap)
67
+ .filter((key) => wireServicesMap[key])
68
68
  .sort()
69
69
 
70
70
  const code = [
71
71
  servicesImport,
72
- sessionServicesImport,
72
+ wireServicesImport,
73
73
  '',
74
74
  '// Singleton services map: true if required, false if available but unused',
75
75
  'export const requiredSingletonServices = {',
@@ -78,11 +78,11 @@ export const serializeServicesMap = (
78
78
  .map((service) => ` '${service}': ${singletonServicesMap[service]},`),
79
79
  '} as const',
80
80
  '',
81
- '// Session services map: true if required, false if available but unused',
82
- 'export const requiredSessionServices = {',
83
- ...Object.keys(sessionServicesMap)
81
+ '// Wire services map: true if required, false if available but unused',
82
+ 'export const requiredWireServices = {',
83
+ ...Object.keys(wireServicesMap)
84
84
  .sort()
85
- .map((service) => ` '${service}': ${sessionServicesMap[service]},`),
85
+ .map((service) => ` '${service}': ${wireServicesMap[service]},`),
86
86
  '} as const',
87
87
  '',
88
88
  '// Type exports',
@@ -90,9 +90,9 @@ export const serializeServicesMap = (
90
90
  ? `export type RequiredSingletonServices = Pick<SingletonServices, ${requiredSingletonServiceNames.map((key) => `'${key}'`).join(' | ')}> & Partial<Omit<SingletonServices, ${requiredSingletonServiceNames.map((key) => `'${key}'`).join(' | ')}>>`
91
91
  : 'export type RequiredSingletonServices = Partial<SingletonServices>',
92
92
  '',
93
- requiredSessionServiceNames.length > 0
94
- ? `export type RequiredSessionServices = Pick<Services, ${requiredSessionServiceNames.map((key) => `'${key}'`).join(' | ')}> & Partial<Omit<Services, ${requiredSessionServiceNames.map((key) => `'${key}'`).join(' | ')}>>`
95
- : 'export type RequiredSessionServices = Partial<Services>',
93
+ requiredWireServiceNames.length > 0
94
+ ? `export type RequiredWireServices = Pick<Services, ${requiredWireServiceNames.map((key) => `'${key}'`).join(' | ')}> & Partial<Omit<Services, ${requiredWireServiceNames.map((key) => `'${key}'`).join(' | ')}>>`
95
+ : 'export type RequiredWireServices = Partial<Services>',
96
96
  '',
97
97
  ].join('\n')
98
98
 
@@ -105,29 +105,29 @@ export const pikkuServices: any = pikkuSessionlessFunc<void, void>({
105
105
 
106
106
  // Check for required types
107
107
  checkRequiredTypes(visitState.filesAndMethodsErrors, {
108
- sessionServiceType: true,
108
+ wireServiceType: true,
109
109
  singletonServicesType: true,
110
110
  })
111
111
 
112
- const { sessionServicesType, singletonServicesType } =
112
+ const { wireServicesType, singletonServicesType } =
113
113
  visitState.filesAndMethods
114
114
 
115
- if (!sessionServicesType || !singletonServicesType) {
115
+ if (!wireServicesType || !singletonServicesType) {
116
116
  throw new Error(
117
- 'Required types not found: sessionServicesType or singletonServicesType'
117
+ 'Required types not found: wireServicesType or singletonServicesType'
118
118
  )
119
119
  }
120
120
 
121
121
  const servicesImport = `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, singletonServicesType.typePath, config.packageMappings)}'`
122
- const sessionServicesImport = `import type { ${sessionServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, sessionServicesType.typePath, config.packageMappings)}'`
122
+ const wireServicesImport = `import type { ${wireServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, wireServicesType.typePath, config.packageMappings)}'`
123
123
 
124
124
  const servicesCode = serializeServicesMap(
125
125
  visitState.serviceAggregation.allSingletonServices,
126
- visitState.serviceAggregation.allSessionServices,
126
+ visitState.serviceAggregation.allWireServices,
127
127
  visitState.serviceAggregation.requiredServices,
128
128
  config.forceRequiredServices,
129
129
  servicesImport,
130
- sessionServicesImport
130
+ wireServicesImport
131
131
  )
132
132
  await writeFileInDir(logger, config.servicesFile, servicesCode)
133
133
  },
@@ -31,8 +31,8 @@ export const pikkuSchemas: any = pikkuSessionlessFunc<
31
31
  schemas,
32
32
  visitState.functions.typesMap,
33
33
  visitState.functions.meta,
34
- config.schemasFromTypes,
35
- config.schema?.supportsImportAttributes
34
+ config.schema?.supportsImportAttributes || true,
35
+ config.schemasFromTypes
36
36
  )
37
37
 
38
38
  return true