@pikku/cli 0.12.123 → 0.12.125

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 (262) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/console-app/assets/{abnfDiagram-N423BO3Z-BR5_-R36.js → abnfDiagram-N423BO3Z-B2suyn6i.js} +1 -1
  3. package/console-app/assets/architecture-TIHT7OUA-DmG0bXDT.js +1 -0
  4. package/console-app/assets/{architectureDiagram-T3A2C74G-PWMb8XVe.js → architectureDiagram-T3A2C74G-BQ5Dfvpo.js} +1 -1
  5. package/console-app/assets/{blockDiagram-VBNYF7ZC-BRFlIAtN.js → blockDiagram-VBNYF7ZC-D4pVRDiF.js} +1 -1
  6. package/console-app/assets/{c4Diagram-5PPSVZJV-DnxGac5c.js → c4Diagram-5PPSVZJV-Da04jGpq.js} +1 -1
  7. package/console-app/assets/channel-BgCT5gon.js +1 -0
  8. package/console-app/assets/{chunk-2GRJ4B5K-B09NFK9f.js → chunk-2GRJ4B5K-CwODIPP4.js} +1 -1
  9. package/console-app/assets/{chunk-4I5QYGJK-Di1FL5uh.js → chunk-4I5QYGJK-Bep4akjR.js} +1 -1
  10. package/console-app/assets/{chunk-5RXB4S5H-BkFSNR63.js → chunk-5RXB4S5H-CGyCRU9L.js} +1 -1
  11. package/console-app/assets/{chunk-6Q2QTUOP-L6D94YxI.js → chunk-6Q2QTUOP-D0IK0SMT.js} +1 -1
  12. package/console-app/assets/{chunk-7Z6QIM7H-DfzYcuKW.js → chunk-7Z6QIM7H-D12vS1jX.js} +1 -1
  13. package/console-app/assets/{chunk-GF5L2VYU-CA5m-Xs7.js → chunk-GF5L2VYU-kOLwTzIA.js} +1 -1
  14. package/console-app/assets/{chunk-I66GZJ75-Hl61byF7.js → chunk-I66GZJ75-Cb2nDoa3.js} +1 -1
  15. package/console-app/assets/{chunk-JQJVKLGR-CgLeeXhv.js → chunk-JQJVKLGR-B3a_ctfQ.js} +1 -1
  16. package/console-app/assets/{chunk-KBJHAD2P-9mRl0jD6.js → chunk-KBJHAD2P-DeP2Lqwp.js} +1 -1
  17. package/console-app/assets/{chunk-NSK5VX7P-D7NmS_w1.js → chunk-NSK5VX7P-BO8vlGrO.js} +1 -1
  18. package/console-app/assets/{chunk-QR6OTTB3-KdKTpLyy.js → chunk-QR6OTTB3-sX5V0Lok.js} +1 -1
  19. package/console-app/assets/{chunk-RYQCIY6F-DeEpMb3d.js → chunk-RYQCIY6F-DoCObEhk.js} +1 -1
  20. package/console-app/assets/{chunk-UBXNYLIW-DKYUw71c.js → chunk-UBXNYLIW-BndMXU5r.js} +1 -1
  21. package/console-app/assets/{chunk-W5SLKNZC-B2fxVl1I.js → chunk-W5SLKNZC--VrZN8EC.js} +1 -1
  22. package/console-app/assets/{chunk-WRU74C26-CHP8CDJx.js → chunk-WRU74C26-DdS0mzXO.js} +1 -1
  23. package/console-app/assets/chunk-XXDRQBXY-EP2C9tTO.js +1 -0
  24. package/console-app/assets/classDiagram-JCYQIIEL-D9wGqB4J.js +1 -0
  25. package/console-app/assets/classDiagram-v2-OCEON4UE-D9wGqB4J.js +1 -0
  26. package/console-app/assets/{cose-bilkent-JH36ORCC-Bv8nl8zW.js → cose-bilkent-JH36ORCC-C5EnHkFn.js} +1 -1
  27. package/console-app/assets/{cynefin-VYW2F7L2-CSj7rmbq.js → cynefin-VYW2F7L2-9irdkTt4.js} +1 -1
  28. package/console-app/assets/{cynefinDiagram-MW4NZA55-C3xwJ3tQ.js → cynefinDiagram-MW4NZA55-DY19660c.js} +1 -1
  29. package/console-app/assets/{dagre-VZM6K2ZE-B_2qJCCS.js → dagre-VZM6K2ZE-BYFZSaSb.js} +1 -1
  30. package/console-app/assets/{dagre-DUPxteSi.js → dagre-nXgDYqvf.js} +1 -1
  31. package/console-app/assets/{diagram-7IWD3JNH-IH1BOccH.js → diagram-7IWD3JNH-oDftiTp1.js} +1 -1
  32. package/console-app/assets/{diagram-B4RE2ZJO-BVvJvAvO.js → diagram-B4RE2ZJO-Cbj-pPbH.js} +1 -1
  33. package/console-app/assets/{diagram-LBJQPF4R-CyDL-OzR.js → diagram-LBJQPF4R-Ch53oSKw.js} +1 -1
  34. package/console-app/assets/{diagram-Q27KOJAE-BwUGm_12.js → diagram-Q27KOJAE-DA7K814v.js} +1 -1
  35. package/console-app/assets/{diagram-UB23O5K3-TPo3mAAN.js → diagram-UB23O5K3-B-_C-ctS.js} +1 -1
  36. package/console-app/assets/{ebnfDiagram-BXEA7PRR-D3zthE3L.js → ebnfDiagram-BXEA7PRR-DsOdsKXy.js} +1 -1
  37. package/console-app/assets/{erDiagram-JOGREHBK-DrJSdPyj.js → erDiagram-JOGREHBK-XB1mP5_A.js} +1 -1
  38. package/console-app/assets/eventmodeling-45OFAUF4-NKFCZ8Fj.js +1 -0
  39. package/console-app/assets/flowDiagram-UKHOOZJN-BpdPkmum.js +1 -0
  40. package/console-app/assets/{ganttDiagram-PKOTCBZU-xWWCXZUc.js → ganttDiagram-PKOTCBZU-knk0XSHi.js} +1 -1
  41. package/console-app/assets/{gitGraph-TEB2WS4Q-DqccwZ0r.js → gitGraph-TEB2WS4Q-COJnK2tM.js} +1 -1
  42. package/console-app/assets/{gitGraphDiagram-DS77QQ5N-BrQMGv-z.js → gitGraphDiagram-DS77QQ5N-sF0v605q.js} +1 -1
  43. package/console-app/assets/{index-Mq-YbqNO.css → index-C8MC-uMB.css} +1 -1
  44. package/console-app/assets/{index-BP1o9ux1.js → index-DMnbsgzs.js} +175 -175
  45. package/console-app/assets/{info-DKCQHKI2-DYYsb_ec.js → info-DKCQHKI2-Cbatr0w6.js} +1 -1
  46. package/console-app/assets/{infoDiagram-6WML65LV-B659BK5Z.js → infoDiagram-6WML65LV-93TFPCu2.js} +1 -1
  47. package/console-app/assets/{ishikawaDiagram-WSZJBQD7-nAST6NVR.js → ishikawaDiagram-WSZJBQD7-BBR8_Qms.js} +1 -1
  48. package/console-app/assets/{journeyDiagram-NVQOT4AX-DvMfDp0L.js → journeyDiagram-NVQOT4AX-zG55yDoc.js} +1 -1
  49. package/console-app/assets/{kanban-definition-27J2QSJJ-XSWRq0KN.js → kanban-definition-27J2QSJJ-DonGcEAY.js} +1 -1
  50. package/console-app/assets/{line-BhOX1huR.js → line-D1WdVm1S.js} +1 -1
  51. package/console-app/assets/{linear-DmCFkJVF.js → linear-D2GQL4Cm.js} +1 -1
  52. package/console-app/assets/{mermaid-parser.core-3dL4TN1f.js → mermaid-parser.core-b4yKyO56.js} +3 -3
  53. package/console-app/assets/{mermaid.core-DaXl8RjK.js → mermaid.core-Cwfec1gr.js} +4 -4
  54. package/console-app/assets/{mindmap-definition-FAOFIHXS-BVSaEdh8.js → mindmap-definition-FAOFIHXS-D0G4yKgw.js} +1 -1
  55. package/console-app/assets/{packet-7NZHBO7P-DmXSSPjQ.js → packet-7NZHBO7P-DDa4HL2T.js} +1 -1
  56. package/console-app/assets/{pegDiagram-VL7TDLO6-Cd94zu6b.js → pegDiagram-VL7TDLO6-fPdN5VZs.js} +1 -1
  57. package/console-app/assets/{pie-RZYD4A2V-BfIstVk8.js → pie-RZYD4A2V-DRHURUqo.js} +1 -1
  58. package/console-app/assets/{pieDiagram-7S7Q4E2Y-Jxlih0Om.js → pieDiagram-7S7Q4E2Y-DMYn8ga_.js} +1 -1
  59. package/console-app/assets/{quadrantDiagram-CIZ2JOQS-DMa-9Zmv.js → quadrantDiagram-CIZ2JOQS-C190OamC.js} +1 -1
  60. package/console-app/assets/{radar-I7S5WNFK-BhvNZ__k.js → radar-I7S5WNFK-Djvqzz9A.js} +1 -1
  61. package/console-app/assets/{railroad-3IZDKUUU-C7yHVxVy.js → railroad-3IZDKUUU-C9YvFeFq.js} +1 -1
  62. package/console-app/assets/railroad-abnf-AHOZXSZD-B3CYVW4p.js +1 -0
  63. package/console-app/assets/railroad-ebnf-EBAXGLYW-DrZ2yF62.js +1 -0
  64. package/console-app/assets/railroad-peg-LSFZ7HO6-CWAmMyxd.js +1 -0
  65. package/console-app/assets/{railroadDiagram-AXF67PYL-DsBXjXIE.js → railroadDiagram-AXF67PYL-IRFg1VrU.js} +1 -1
  66. package/console-app/assets/{requirementDiagram-LRYGKXZP-C5JX79TM.js → requirementDiagram-LRYGKXZP-L-7ubbcT.js} +1 -1
  67. package/console-app/assets/{sankeyDiagram-W5VNT64P-DFGcEBC2.js → sankeyDiagram-W5VNT64P-DBttV6Gt.js} +1 -1
  68. package/console-app/assets/{sequenceDiagram-SI44F4Z6-BUa6ak9R.js → sequenceDiagram-SI44F4Z6-Bg15oKAB.js} +1 -1
  69. package/console-app/assets/{src-BJFofs4v.js → src-DUC7tLWb.js} +1 -1
  70. package/console-app/assets/{stateDiagram-OKZ733FA-DFbCY_t8.js → stateDiagram-OKZ733FA-PWl0XGs5.js} +1 -1
  71. package/console-app/assets/stateDiagram-v2-UEYNNEHI-Celbgz4u.js +1 -0
  72. package/console-app/assets/{swimlanes-SLNWSIFB-Cl9G39FU.js → swimlanes-SLNWSIFB-CyXEtGBV.js} +1 -1
  73. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-zxpNaB4U.js +8 -0
  74. package/console-app/assets/{timeline-definition-Z64GVDOM-ClWBr3pJ.js → timeline-definition-Z64GVDOM-BLA-DhBt.js} +1 -1
  75. package/console-app/assets/{treeView-QDETBFTQ-DIQ61Y8k.js → treeView-QDETBFTQ-Bfnmn2UY.js} +1 -1
  76. package/console-app/assets/{treemap-6X3UGDF4-KbZtNSyG.js → treemap-6X3UGDF4-DTA0wveO.js} +1 -1
  77. package/console-app/assets/{vennDiagram-T6HMQDX7-BY367OUV.js → vennDiagram-T6HMQDX7-CLXYZln0.js} +1 -1
  78. package/console-app/assets/{wardley-OPB4EBWU-BZc1RNrx.js → wardley-OPB4EBWU-zwxqisG0.js} +1 -1
  79. package/console-app/assets/{wardleyDiagram-T6FBY63Y-D45un7IA.js → wardleyDiagram-T6FBY63Y-hKtKvNlv.js} +1 -1
  80. package/console-app/assets/{xychartDiagram-ELKLHX3M-Ci5YwcnQ.js → xychartDiagram-ELKLHX3M-BGf8p4bo.js} +1 -1
  81. package/console-app/index.html +2 -2
  82. package/dist/.pikku/addon/index.d.ts +1 -1
  83. package/dist/.pikku/addon/index.js +1 -1
  84. package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
  85. package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
  86. package/dist/.pikku/agent/index.d.ts +1 -1
  87. package/dist/.pikku/agent/index.js +1 -1
  88. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  89. package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
  90. package/dist/.pikku/auth/index.d.ts +1 -1
  91. package/dist/.pikku/auth/index.js +1 -1
  92. package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
  93. package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
  94. package/dist/.pikku/channel/index.d.ts +1 -1
  95. package/dist/.pikku/channel/index.js +1 -1
  96. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  97. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  98. package/dist/.pikku/cli/index.d.ts +1 -1
  99. package/dist/.pikku/cli/index.js +1 -1
  100. package/dist/.pikku/cli/pikku-cli-channel.js +6 -1
  101. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  102. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  103. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  104. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  105. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.json +7 -0
  106. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  107. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  108. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  109. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +14 -0
  110. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  111. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  112. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  113. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  114. package/dist/.pikku/error/index.d.ts +1 -1
  115. package/dist/.pikku/error/index.js +1 -1
  116. package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
  117. package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
  118. package/dist/.pikku/function/index.d.ts +1 -1
  119. package/dist/.pikku/function/index.js +1 -1
  120. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  121. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  122. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  123. package/dist/.pikku/function/pikku-functions-meta.gen.json +25 -6
  124. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  125. package/dist/.pikku/gateway/index.d.ts +1 -1
  126. package/dist/.pikku/gateway/index.js +1 -1
  127. package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
  128. package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
  129. package/dist/.pikku/http/index.d.ts +1 -1
  130. package/dist/.pikku/http/index.js +1 -1
  131. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  132. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  133. package/dist/.pikku/mcp/index.d.ts +1 -1
  134. package/dist/.pikku/mcp/index.js +1 -1
  135. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  136. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  137. package/dist/.pikku/middleware/index.d.ts +1 -1
  138. package/dist/.pikku/middleware/index.js +1 -1
  139. package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +2 -2
  140. package/dist/.pikku/middleware/pikku-middleware-types.gen.js +2 -2
  141. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  142. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  143. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  144. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  145. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  146. package/dist/.pikku/queue/index.d.ts +1 -1
  147. package/dist/.pikku/queue/index.js +1 -1
  148. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  149. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  150. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  151. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  152. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  153. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  154. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +1 -0
  155. package/dist/.pikku/scenarios/index.d.ts +1 -1
  156. package/dist/.pikku/scenarios/index.js +1 -1
  157. package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -1
  158. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  159. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  160. package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
  161. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  162. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  163. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  164. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  165. package/dist/.pikku/scheduler/index.d.ts +1 -1
  166. package/dist/.pikku/scheduler/index.js +1 -1
  167. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  168. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  169. package/dist/.pikku/schemas/register.gen.js +5 -1
  170. package/dist/.pikku/schemas/schemas/DeployApplyInput.schema.json +1 -1
  171. package/dist/.pikku/schemas/schemas/FabricProjectsListInput.schema.json +1 -0
  172. package/dist/.pikku/schemas/schemas/FabricProjectsListOutput.schema.json +1 -0
  173. package/dist/.pikku/scopes/index.d.ts +1 -1
  174. package/dist/.pikku/scopes/index.js +1 -1
  175. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  176. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  177. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  178. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  179. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  180. package/dist/.pikku/secrets/index.d.ts +1 -1
  181. package/dist/.pikku/secrets/index.js +1 -1
  182. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  183. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  184. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  185. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  186. package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
  187. package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
  188. package/dist/.pikku/setup/index.d.ts +1 -1
  189. package/dist/.pikku/setup/index.js +1 -1
  190. package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
  191. package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
  192. package/dist/.pikku/trigger/index.d.ts +1 -1
  193. package/dist/.pikku/trigger/index.js +1 -1
  194. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  195. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  196. package/dist/.pikku/variables/index.d.ts +1 -1
  197. package/dist/.pikku/variables/index.js +1 -1
  198. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  199. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  200. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  201. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  202. package/dist/.pikku/workflow/index.d.ts +1 -1
  203. package/dist/.pikku/workflow/index.js +1 -1
  204. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  205. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  206. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  207. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  208. package/dist/bin/pikku-bin.mjs +2 -2
  209. package/dist/src/cli.wiring.js +7 -0
  210. package/dist/src/deploy/build-pipeline.d.ts +10 -0
  211. package/dist/src/deploy/build-pipeline.js +16 -1
  212. package/dist/src/deploy/bundler/bundler.js +1 -15
  213. package/dist/src/deploy/bundler/service-module-map.d.ts +17 -0
  214. package/dist/src/deploy/bundler/service-module-map.js +19 -0
  215. package/dist/src/deploy/frontend-assets.d.ts +50 -0
  216. package/dist/src/deploy/frontend-assets.js +82 -0
  217. package/dist/src/fabric/fabric-commands.d.ts +40 -0
  218. package/dist/src/fabric/fabric-commands.js +6 -0
  219. package/dist/src/fabric/functions/projects-list.function.d.ts +72 -0
  220. package/dist/src/fabric/functions/projects-list.function.js +63 -0
  221. package/dist/src/fabric/functions/validate.function.js +70 -7
  222. package/dist/src/functions/commands/deploy-apply.d.ts +10 -0
  223. package/dist/src/functions/commands/deploy-apply.js +8 -0
  224. package/dist/src/functions/commands/deploy-plan.js +1 -0
  225. package/dist/src/functions/commands/dev.js +13 -2
  226. package/dist/src/functions/commands/environment.d.ts +10 -0
  227. package/dist/src/functions/commands/environment.js +24 -0
  228. package/dist/src/functions/commands/serve-frontend.d.ts +11 -0
  229. package/dist/src/functions/commands/serve-frontend.js +17 -0
  230. package/dist/src/functions/commands/serve.js +16 -3
  231. package/dist/src/functions/db/annotation-parser.d.ts +8 -0
  232. package/dist/src/functions/db/annotation-parser.js +2 -0
  233. package/dist/src/functions/db/db-codegen.js +20 -1
  234. package/dist/src/functions/validate/shared-checks.d.ts +25 -0
  235. package/dist/src/functions/validate/shared-checks.js +86 -2
  236. package/dist/src/functions/wirings/middleware/serialize-middleware-types.js +1 -1
  237. package/dist/src/functions/wirings/variables/serialize-variables-types.js +5 -1
  238. package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.js +6 -3
  239. package/dist/src/server/dev-server-runner.interface.d.ts +9 -0
  240. package/dist/src/server/node-server-runner.js +3 -0
  241. package/dist/src/server/server-ready.d.ts +6 -9
  242. package/dist/src/server/server-ready.js +6 -9
  243. package/dist/src/utils/frontend.d.ts +9 -0
  244. package/dist/src/utils/frontend.js +18 -0
  245. package/dist/src/utils/pikku-cli-config.d.ts +10 -1
  246. package/dist/src/utils/pikku-cli-config.js +27 -0
  247. package/dist/tsconfig.tsbuildinfo +1 -1
  248. package/package.json +9 -9
  249. package/snippets.json +2 -2
  250. package/surface.json +88 -7
  251. package/console-app/assets/architecture-TIHT7OUA-B-7dd9iF.js +0 -1
  252. package/console-app/assets/channel-eaKvL3e5.js +0 -1
  253. package/console-app/assets/chunk-XXDRQBXY-CJZ5XPXr.js +0 -1
  254. package/console-app/assets/classDiagram-JCYQIIEL-CSV3IvA1.js +0 -1
  255. package/console-app/assets/classDiagram-v2-OCEON4UE-CSV3IvA1.js +0 -1
  256. package/console-app/assets/eventmodeling-45OFAUF4-TV8Whj2Z.js +0 -1
  257. package/console-app/assets/flowDiagram-UKHOOZJN-C0682uBh.js +0 -1
  258. package/console-app/assets/railroad-abnf-AHOZXSZD-BbrGgpop.js +0 -1
  259. package/console-app/assets/railroad-ebnf-EBAXGLYW-BMxBKnfa.js +0 -1
  260. package/console-app/assets/railroad-peg-LSFZ7HO6-i24YvrZ1.js +0 -1
  261. package/console-app/assets/stateDiagram-v2-UEYNNEHI-Ds7kyy87.js +0 -1
  262. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-BAuvqF_W.js +0 -8
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  export { defineSecret } from '@pikku/core/secret';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  export { defineSecret } from '@pikku/core/secret';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
5
5
  import type { SecretService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { LocalMetaService } from '@pikku/core/services/local-meta';
5
5
  export declare class PikkuMetaService extends LocalMetaService {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { LocalMetaService } from '@pikku/core/services/local-meta';
5
5
  export class PikkuMetaService extends LocalMetaService {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/setup` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/setup` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Config and service factory definitions, declared once per application
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Config and service factory definitions, declared once per application
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/trigger` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/trigger` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/variables` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/variables` resolves here.
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  export { defineVariable } from '@pikku/core/variable';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  export { defineVariable } from '@pikku/core/variable';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService } from '@pikku/core/services';
5
5
  import type { VariablesService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService, } from '@pikku/core/services';
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/workflow` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/workflow` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import type { PikkuWorkflowGraphConfig, PikkuWorkflowGraphResult } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import { pikkuWorkflowGraph as corePikkuWorkflowGraph } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/state';
5
5
  import allWorkflowMeta from './meta/allWorkflow.gen.json' with { type: 'json' };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.123
2
+ * This file was generated by @pikku/cli@0.12.125
3
3
  */
4
4
  import { addWorkflow } from '@pikku/core/workflow';
5
5
  import './pikku-workflow-wirings-meta.gen.js';
@@ -11,8 +11,8 @@ async function checkForUpdate() {
11
11
  })
12
12
  if (!res.ok) return
13
13
  const { version: latest } = await res.json()
14
- if (latest !== '0.12.123') {
15
- process.stderr.write(`\n Update available 0.12.123 → ${latest}\n brew upgrade pikku or npm install -g @pikku/cli\n\n`)
14
+ if (latest !== '0.12.125') {
15
+ process.stderr.write(`\n Update available 0.12.125 → ${latest}\n brew upgrade pikku or npm install -g @pikku/cli\n\n`)
16
16
  }
17
17
  } catch {}
18
18
  }
@@ -909,6 +909,13 @@ wireCLI({
909
909
  description: 'Server runtime for the standalone provider: node (bundle.js) or bun (compiled executable)',
910
910
  default: 'node',
911
911
  },
912
+ desktop: {
913
+ description: 'Also generate a desktop shell (src-tauri/) that runs the compiled binary as a sidecar. Requires --provider standalone --runtime bun, unless --desktop-url is given.',
914
+ default: false,
915
+ },
916
+ desktopUrl: {
917
+ description: 'Point the desktop shell at an already-deployed server instead of bundling one. Implies --desktop; nothing is shipped with the app.',
918
+ },
912
919
  fromPlan: {
913
920
  description: 'Skip build pipeline, deploy from existing plan output',
914
921
  default: false,
@@ -52,6 +52,16 @@ export declare function runBuildPipeline(options: {
52
52
  defaultTarget?: 'serverless' | 'server';
53
53
  globalHTTPPrefix?: string;
54
54
  getEntryContext: (unitDir: string, pikkuDir: string, unit: DeploymentManifest['units'][0], state: InspectorState) => unknown;
55
+ /**
56
+ * A built frontend to ship with the bundle, from the project's `frontend`
57
+ * config. Single-unit builds only — a decomposed deployment has no one unit
58
+ * that owns the origin the UI would be served from.
59
+ */
60
+ frontend?: {
61
+ dir: string;
62
+ urlPrefix: string;
63
+ spaFallback: boolean;
64
+ };
55
65
  deployDir?: string;
56
66
  outDir?: string;
57
67
  /** Emit sourcemaps + per-unit `metafile.json` (debug-only). Default false. */
@@ -11,6 +11,8 @@ import { PikkuError } from '@pikku/core/errors';
11
11
  import { analyzeDeployment } from './analyzer/index.js';
12
12
  import { withoutScenarios } from '../functions/wirings/scenarios/scenario-partition.js';
13
13
  import { generatePerUnitCodegen } from './codegen/per-unit-codegen.js';
14
+ import { materializeFrontend } from './frontend-assets.js';
15
+ import { assertFrontendBuilt } from '../utils/frontend.js';
14
16
  import { generateServerEntrySource, SERVER_DOCKERFILE, SERVER_DOCKERIGNORE, } from './server-entry.js';
15
17
  /**
16
18
  * A unit that failed codegen or bundling is an expected build outcome (the
@@ -100,7 +102,20 @@ export async function runBuildPipeline(options) {
100
102
  const unitDir = join(providerDir, unitName);
101
103
  const pikkuDir = options.outDir ?? join(projectDir, '.pikku');
102
104
  await mkdir(unitDir, { recursive: true });
103
- const ctx = getEntryContext(unitDir, pikkuDir, singleUnit, inspectorState);
105
+ let frontendMount;
106
+ if (options.frontend) {
107
+ await assertFrontendBuilt(options.frontend.dir);
108
+ const keys = await materializeFrontend(options.frontend.dir, unitDir);
109
+ frontendMount = {
110
+ urlPrefix: options.frontend.urlPrefix,
111
+ spaFallback: options.frontend.spaFallback,
112
+ };
113
+ logger.info(`Frontend: ${keys.length} files from ${options.frontend.dir}`);
114
+ }
115
+ const ctx = {
116
+ ...getEntryContext(unitDir, pikkuDir, singleUnit, inspectorState),
117
+ frontend: frontendMount,
118
+ };
104
119
  const source = provider.generateEntrySource(ctx);
105
120
  const entryPath = join(unitDir, 'entry.ts');
106
121
  await writeFile(entryPath, source, 'utf-8');
@@ -16,6 +16,7 @@ import { writeFile, mkdir, stat, readFile } from 'node:fs/promises';
16
16
  import { join } from 'node:path';
17
17
  import { createHash } from 'node:crypto';
18
18
  import { resolveExternalVersions, generateMinimalPackageJson, } from './dep-extractor.js';
19
+ import { SERVICE_MODULE_MAP } from './service-module-map.js';
19
20
  /**
20
21
  * Mapping of service name -> gen file pattern that should be stubbed
21
22
  * when the service is not required by a deployment unit.
@@ -23,21 +24,6 @@ import { resolveExternalVersions, generateMinimalPackageJson, } from './dep-extr
23
24
  const SERVICE_GEN_FILE_MAP = {
24
25
  metaService: /pikku-meta-service\.gen/,
25
26
  };
26
- /**
27
- * Mapping of service name -> npm module patterns to stub when the service is
28
- * NOT required by a deployment unit. Unlike SERVICE_GEN_FILE_MAP these are
29
- * external packages, not gen files: a unit that doesn't wire the service never
30
- * executes the code path that imports them, so replacing them with `export {}`
31
- * keeps their (often large) trees out of the bundle.
32
- *
33
- * The AI SDKs (@pikku/ai-vercel + @ai-sdk/* + `ai`, ~3MB) are only constructed
34
- * when `agentRunner` is wired (agent units). Every non-agent unit stubs them.
35
- * The shared services factory must guard the runner construction behind a
36
- * defined-check on the dynamic import so a stubbed unit simply skips it.
37
- */
38
- const SERVICE_MODULE_MAP = {
39
- agentRunner: [/^@pikku\/ai-vercel/, /^@ai-sdk\//, /^ai$/],
40
- };
41
27
  /**
42
28
  * Read the per-unit pikku-services.gen.ts and return the set of gen file
43
29
  * patterns that should be stubbed (because their service is not required).
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Mapping of service name -> npm module patterns to stub when the service is
3
+ * NOT required by a deployment unit. These are external packages, not gen
4
+ * files: a unit that doesn't wire the service never executes the code path
5
+ * that imports them, so replacing them with `export {}` keeps their (often
6
+ * large) trees out of the bundle.
7
+ *
8
+ * The AI SDKs (@pikku/ai-vercel + @ai-sdk/* + `ai`, ~3MB) are only constructed
9
+ * when `agentRunner` is wired (agent units). Every non-agent unit stubs them.
10
+ * The shared services factory must guard the runner construction behind a
11
+ * defined-check on the dynamic import so a stubbed unit simply skips it.
12
+ *
13
+ * It lives in its own module so `pikku validate` can warn about a static import
14
+ * of a stubbed package without pulling the bundler in — a check that reads a
15
+ * second copy of this list would go stale the first time the list changed.
16
+ */
17
+ export declare const SERVICE_MODULE_MAP: Record<string, RegExp[]>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Mapping of service name -> npm module patterns to stub when the service is
3
+ * NOT required by a deployment unit. These are external packages, not gen
4
+ * files: a unit that doesn't wire the service never executes the code path
5
+ * that imports them, so replacing them with `export {}` keeps their (often
6
+ * large) trees out of the bundle.
7
+ *
8
+ * The AI SDKs (@pikku/ai-vercel + @ai-sdk/* + `ai`, ~3MB) are only constructed
9
+ * when `agentRunner` is wired (agent units). Every non-agent unit stubs them.
10
+ * The shared services factory must guard the runner construction behind a
11
+ * defined-check on the dynamic import so a stubbed unit simply skips it.
12
+ *
13
+ * It lives in its own module so `pikku validate` can warn about a static import
14
+ * of a stubbed package without pulling the bundler in — a check that reads a
15
+ * second copy of this list would go stale the first time the list changed.
16
+ */
17
+ export const SERVICE_MODULE_MAP = {
18
+ agentRunner: [/^@pikku\/ai-vercel/, /^@ai-sdk\//, /^ai$/],
19
+ };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Embed a built frontend into a `bun build --compile` binary.
3
+ *
4
+ * Bun embeds a file imported with `with { type: 'file' }` and hands back an
5
+ * opaque `/$bunfs/…` path at runtime. That attribute cannot be applied to a
6
+ * dynamic import, and there is no way to embed a directory, so each file needs
7
+ * its own literal `import` statement — hence a generated module rather than a
8
+ * walk at startup.
9
+ *
10
+ * esbuild rejects the attribute outright ("Importing with a type attribute of
11
+ * \"file\" is not supported"), so this module is kept out of the esbuild bundle
12
+ * as an external and is resolved by the later `bun build --compile` step, which
13
+ * follows the import from the emitted `bundle.js`.
14
+ *
15
+ * The manifest can only name files that already exist, which fixes the build
16
+ * order: frontend build → manifest generation → server bundle → compile.
17
+ */
18
+ export declare const FRONTEND_ASSET_MANIFEST_FILE = "frontend-assets.gen.js";
19
+ /** Directory name the built frontend is copied to inside a deploy unit. */
20
+ export declare const FRONTEND_DIR_NAME = "frontend";
21
+ export interface FrontendAsset {
22
+ /** Mount-relative request path, POSIX-separated (`assets/app-a1b2c3.js`). */
23
+ key: string;
24
+ /** Absolute path of the built file. */
25
+ path: string;
26
+ }
27
+ /**
28
+ * Every file under `dir`, keyed by its path relative to it.
29
+ *
30
+ * Sorted by key: directory read order is not stable across filesystems, and the
31
+ * manifest feeds a build whose output should not change run to run.
32
+ */
33
+ export declare function collectFrontendAssets(dir: string): Promise<FrontendAsset[]>;
34
+ /**
35
+ * The manifest module source, with specifiers relative to `manifestDir` — the
36
+ * directory the file itself is written to.
37
+ */
38
+ export declare function generateFrontendAssetManifest(assets: FrontendAsset[], manifestDir: string): string;
39
+ /**
40
+ * Copy a built frontend into a deploy unit and write the manifest beside it.
41
+ *
42
+ * The copy comes first and the manifest is generated from the copy, not the
43
+ * source: the unit directory is what the bundle and the compile step see, and
44
+ * the machine that compiles has no reason to still hold the frontend's build
45
+ * tree. A stale copy is removed rather than merged into, so a file dropped
46
+ * from the frontend's output cannot survive into the next binary.
47
+ *
48
+ * Returns the keys that were embedded, in manifest order.
49
+ */
50
+ export declare function materializeFrontend(frontendDir: string, unitDir: string): Promise<string[]>;
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Embed a built frontend into a `bun build --compile` binary.
3
+ *
4
+ * Bun embeds a file imported with `with { type: 'file' }` and hands back an
5
+ * opaque `/$bunfs/…` path at runtime. That attribute cannot be applied to a
6
+ * dynamic import, and there is no way to embed a directory, so each file needs
7
+ * its own literal `import` statement — hence a generated module rather than a
8
+ * walk at startup.
9
+ *
10
+ * esbuild rejects the attribute outright ("Importing with a type attribute of
11
+ * \"file\" is not supported"), so this module is kept out of the esbuild bundle
12
+ * as an external and is resolved by the later `bun build --compile` step, which
13
+ * follows the import from the emitted `bundle.js`.
14
+ *
15
+ * The manifest can only name files that already exist, which fixes the build
16
+ * order: frontend build → manifest generation → server bundle → compile.
17
+ */
18
+ import { cp, readdir, rm, writeFile } from 'node:fs/promises';
19
+ import { join, relative } from 'node:path';
20
+ export const FRONTEND_ASSET_MANIFEST_FILE = 'frontend-assets.gen.js';
21
+ /** Directory name the built frontend is copied to inside a deploy unit. */
22
+ export const FRONTEND_DIR_NAME = 'frontend';
23
+ const toPosix = (value) => value.replace(/\\/g, '/');
24
+ /**
25
+ * Every file under `dir`, keyed by its path relative to it.
26
+ *
27
+ * Sorted by key: directory read order is not stable across filesystems, and the
28
+ * manifest feeds a build whose output should not change run to run.
29
+ */
30
+ export async function collectFrontendAssets(dir) {
31
+ const assets = [];
32
+ const walk = async (current) => {
33
+ const entries = await readdir(current, { withFileTypes: true });
34
+ for (const entry of entries) {
35
+ const absolute = join(current, entry.name);
36
+ if (entry.isDirectory()) {
37
+ await walk(absolute);
38
+ }
39
+ else if (entry.isFile()) {
40
+ assets.push({ key: toPosix(relative(dir, absolute)), path: absolute });
41
+ }
42
+ }
43
+ };
44
+ await walk(dir);
45
+ return assets.sort((a, b) => (a.key < b.key ? -1 : a.key > b.key ? 1 : 0));
46
+ }
47
+ /**
48
+ * The manifest module source, with specifiers relative to `manifestDir` — the
49
+ * directory the file itself is written to.
50
+ */
51
+ export function generateFrontendAssetManifest(assets, manifestDir) {
52
+ const lines = ['// Generated by @pikku/cli — do not edit'];
53
+ assets.forEach((asset, index) => {
54
+ const specifier = toPosix(relative(manifestDir, asset.path));
55
+ lines.push(`import asset${index} from './${specifier}' with { type: 'file' }`);
56
+ });
57
+ lines.push('', 'export const frontendAssets = {');
58
+ assets.forEach((asset, index) => {
59
+ lines.push(` '${asset.key}': asset${index},`);
60
+ });
61
+ lines.push('}', '');
62
+ return lines.join('\n');
63
+ }
64
+ /**
65
+ * Copy a built frontend into a deploy unit and write the manifest beside it.
66
+ *
67
+ * The copy comes first and the manifest is generated from the copy, not the
68
+ * source: the unit directory is what the bundle and the compile step see, and
69
+ * the machine that compiles has no reason to still hold the frontend's build
70
+ * tree. A stale copy is removed rather than merged into, so a file dropped
71
+ * from the frontend's output cannot survive into the next binary.
72
+ *
73
+ * Returns the keys that were embedded, in manifest order.
74
+ */
75
+ export async function materializeFrontend(frontendDir, unitDir) {
76
+ const target = join(unitDir, FRONTEND_DIR_NAME);
77
+ await rm(target, { recursive: true, force: true });
78
+ await cp(frontendDir, target, { recursive: true });
79
+ const assets = await collectFrontendAssets(target);
80
+ await writeFile(join(unitDir, FRONTEND_ASSET_MANIFEST_FILE), generateFrontendAssetManifest(assets, unitDir), 'utf-8');
81
+ return assets.map((asset) => asset.key);
82
+ }
@@ -760,6 +760,46 @@ export declare const fabricCommands: {
760
760
  projectId: string;
761
761
  status: any;
762
762
  }, "rpc" | "session", import("../../.pikku/function/pikku-function-types.gen.js").WiredServices>, undefined, undefined>, import("../../.pikku/middleware/pikku-middleware-types.gen.js").PikkuMiddleware, (services: import("../../types/application-types.js").SingletonServices, data: any, session?: import("../../types/application-types.js").UserSession | undefined) => void | Promise<void>, string>;
763
+ projects: import("@pikku/core/cli").CoreCLICommandConfig<import("../../.pikku/function/pikku-function-types.gen.js").PikkuFunctionConfig<{
764
+ apiUrl?: string | undefined;
765
+ }, {
766
+ projects: {
767
+ projectId: string;
768
+ name: string;
769
+ slug: string;
770
+ status: string;
771
+ productionBranch: string;
772
+ gitRepoUrl: string | null;
773
+ createdAt: string;
774
+ linked: boolean;
775
+ }[];
776
+ }, "rpc" | "session", import("../../.pikku/function/pikku-function-types.gen.js").PikkuFunctionSessionless<{
777
+ apiUrl?: string | undefined;
778
+ }, {
779
+ projects: {
780
+ projectId: string;
781
+ name: string;
782
+ slug: string;
783
+ status: string;
784
+ productionBranch: string;
785
+ gitRepoUrl: string | null;
786
+ createdAt: string;
787
+ linked: boolean;
788
+ }[];
789
+ }, "rpc" | "session", import("../../.pikku/function/pikku-function-types.gen.js").WiredServices, unknown> | import("../../.pikku/function/pikku-function-types.gen.js").PikkuFunction<{
790
+ apiUrl?: string | undefined;
791
+ }, {
792
+ projects: {
793
+ projectId: string;
794
+ name: string;
795
+ slug: string;
796
+ status: string;
797
+ productionBranch: string;
798
+ gitRepoUrl: string | null;
799
+ createdAt: string;
800
+ linked: boolean;
801
+ }[];
802
+ }, "rpc" | "session", import("../../.pikku/function/pikku-function-types.gen.js").WiredServices>, undefined, undefined>, import("../../.pikku/middleware/pikku-middleware-types.gen.js").PikkuMiddleware, (services: import("../../types/application-types.js").SingletonServices, data: any, session?: import("../../types/application-types.js").UserSession | undefined) => void | Promise<void>, string>;
763
803
  errors: import("@pikku/core/cli").CoreCLICommandConfig<import("../../.pikku/function/pikku-function-types.gen.js").PikkuFunctionConfig<{
764
804
  branch: string;
765
805
  function?: string | undefined;
@@ -26,6 +26,7 @@ import { FabricDeployApply, renderDeployApply, } from './functions/deploy.functi
26
26
  import { FabricDeployList, renderDeployList, } from './functions/deploy-list.function.js';
27
27
  import { FabricDeployUnits, renderDeployUnits, } from './functions/deploy-units.function.js';
28
28
  import { FabricStatus, renderStatus } from './functions/status.function.js';
29
+ import { FabricProjectsList, renderProjectsList, } from './functions/projects-list.function.js';
29
30
  import { FabricErrors, renderErrors } from './functions/errors.function.js';
30
31
  import { FabricDbSchema, renderDbSchema, } from './functions/db-schema.function.js';
31
32
  import { FabricRollback } from './functions/rollback.function.js';
@@ -325,6 +326,11 @@ export const fabricCommands = defineCLICommands({
325
326
  render: renderStatus,
326
327
  description: 'Show the linked project status (active + in-flight deploy)',
327
328
  }),
329
+ projects: pikkuCLICommand({
330
+ func: FabricProjectsList,
331
+ render: renderProjectsList,
332
+ description: 'List the projects in your organization, with their ids (works unlinked)',
333
+ }),
328
334
  errors: pikkuCLICommand({
329
335
  func: FabricErrors,
330
336
  render: renderErrors,
@@ -0,0 +1,72 @@
1
+ import { z } from 'zod';
2
+ export declare const FabricProjectsListInput: z.ZodObject<{
3
+ apiUrl: z.ZodOptional<z.ZodString>;
4
+ }, z.core.$strip>;
5
+ export declare const FabricProjectsListOutput: z.ZodObject<{
6
+ projects: z.ZodArray<z.ZodObject<{
7
+ projectId: z.ZodString;
8
+ name: z.ZodString;
9
+ slug: z.ZodString;
10
+ status: z.ZodString;
11
+ productionBranch: z.ZodString;
12
+ gitRepoUrl: z.ZodNullable<z.ZodString>;
13
+ createdAt: z.ZodString;
14
+ linked: z.ZodBoolean;
15
+ }, z.core.$strip>>;
16
+ }, z.core.$strip>;
17
+ /**
18
+ * The only fabric command that does not need a linked project, which is the
19
+ * point of it: a checkout whose config still holds `__PROJECT_ID__` can run
20
+ * nothing else, and `fabric init` cannot recover the id either — it creates,
21
+ * so against an existing project it fails with a 409 that carries no id.
22
+ */
23
+ export declare const FabricProjectsList: import("../../../.pikku/function/pikku-function-types.gen.js").PikkuFunctionConfig<{
24
+ apiUrl?: string | undefined;
25
+ }, {
26
+ projects: {
27
+ projectId: string;
28
+ name: string;
29
+ slug: string;
30
+ status: string;
31
+ productionBranch: string;
32
+ gitRepoUrl: string | null;
33
+ createdAt: string;
34
+ linked: boolean;
35
+ }[];
36
+ }, "rpc" | "session", import("../../../.pikku/function/pikku-function-types.gen.js").PikkuFunctionSessionless<{
37
+ apiUrl?: string | undefined;
38
+ }, {
39
+ projects: {
40
+ projectId: string;
41
+ name: string;
42
+ slug: string;
43
+ status: string;
44
+ productionBranch: string;
45
+ gitRepoUrl: string | null;
46
+ createdAt: string;
47
+ linked: boolean;
48
+ }[];
49
+ }, "rpc" | "session", import("../../../.pikku/function/pikku-function-types.gen.js").WiredServices, unknown> | import("../../../.pikku/function/pikku-function-types.gen.js").PikkuFunction<{
50
+ apiUrl?: string | undefined;
51
+ }, {
52
+ projects: {
53
+ projectId: string;
54
+ name: string;
55
+ slug: string;
56
+ status: string;
57
+ productionBranch: string;
58
+ gitRepoUrl: string | null;
59
+ createdAt: string;
60
+ linked: boolean;
61
+ }[];
62
+ }, "rpc" | "session", import("../../../.pikku/function/pikku-function-types.gen.js").WiredServices>, undefined, undefined>;
63
+ type FabricProject = {
64
+ projectId: string;
65
+ name: string;
66
+ gitRepoUrl: string | null;
67
+ linked: boolean;
68
+ };
69
+ export declare const renderProjectsList: (_s: unknown, { projects }: {
70
+ projects: FabricProject[];
71
+ }) => void;
72
+ export {};