@xano/sdk 1.0.4 → 1.0.6

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 (280) hide show
  1. package/CHANGELOG.md +32 -5
  2. package/README.md +250 -342
  3. package/dist/.build-fingerprint +1 -1
  4. package/dist/agent-file-refresh-67QIX45H.js +39 -0
  5. package/dist/{answer-shape-LVV2SVBK.js → answer-shape-UCDUKPAN.js} +6 -6
  6. package/dist/{backend-dir-WZADOK3L.js → backend-dir-3LIL6SCT.js} +16 -15
  7. package/dist/{backend-slot-NSCTWCUX.js → backend-slot-JREP27UD.js} +4 -4
  8. package/dist/bin.js +59 -58
  9. package/dist/{branch-ONWPJ4V6.js → branch-2IPHOAYS.js} +10 -10
  10. package/dist/{branch-commands-ZT2MJIRS.js → branch-commands-KTKAXBAN.js} +31 -32
  11. package/dist/bundle.js +9 -39
  12. package/dist/{capture-3JNUA6C2.js → capture-GW5KNKMB.js} +4 -4
  13. package/dist/{chunk-FPBGAT5D.js → chunk-26MOFAJT.js} +3 -3
  14. package/dist/{chunk-O7QOWS6M.js → chunk-2FLIJGBZ.js} +12 -12
  15. package/dist/{chunk-QAEQGT5I.js → chunk-2WBH5HUY.js} +7 -7
  16. package/dist/{chunk-37AHZ7JX.js → chunk-3BBIDW3Y.js} +6 -6
  17. package/dist/{chunk-DGWHAVRG.js → chunk-3EDSPMXN.js} +12 -1
  18. package/dist/{chunk-2AUV6NXK.js → chunk-3II44CUJ.js} +36 -36
  19. package/dist/{chunk-7GX445AE.js → chunk-4XHAT7C5.js} +2 -2
  20. package/dist/{chunk-OOXWYAA4.js → chunk-57A5ZKPO.js} +1 -1
  21. package/dist/{chunk-OOGXZL7Z.js → chunk-5KJBWIDZ.js} +84 -6
  22. package/dist/{chunk-5YL5OC2G.js → chunk-5QMJOE2K.js} +6 -6
  23. package/dist/{chunk-3H3EPMFY.js → chunk-5TVFLG3C.js} +2 -2
  24. package/dist/{chunk-WFMVKY7I.js → chunk-5YQV35C2.js} +9 -9
  25. package/dist/{chunk-NA3PXMEF.js → chunk-64WWE3EF.js} +1 -1
  26. package/dist/{chunk-FMOEVAGT.js → chunk-6X3MY2JP.js} +3 -3
  27. package/dist/{chunk-2LVTBPW2.js → chunk-6X6BJN6Y.js} +3 -3
  28. package/dist/{chunk-DYG5D3FD.js → chunk-763M6LX3.js} +16 -2
  29. package/dist/{chunk-EESV6NU2.js → chunk-7FIMUFBP.js} +2 -2
  30. package/dist/{chunk-CFSFBKHP.js → chunk-7GAIJW62.js} +2 -2
  31. package/dist/{chunk-6R7S775T.js → chunk-7REDHC4N.js} +2 -2
  32. package/dist/chunk-7VR4IO5B.js +44 -0
  33. package/dist/chunk-A7MRZ4GF.js +78 -0
  34. package/dist/{chunk-D5ZEAF4G.js → chunk-ATJ2W7DC.js} +81 -58
  35. package/dist/{chunk-BUJRS7XB.js → chunk-AVS4WPPY.js} +2 -2
  36. package/dist/{chunk-MEE5RZ6G.js → chunk-BL3AZ3AP.js} +2 -2
  37. package/dist/chunk-BTVUYHWV.js +111 -0
  38. package/dist/{chunk-T4DUFQ2S.js → chunk-CCU5CCRX.js} +5 -5
  39. package/dist/{chunk-5T2CTWTB.js → chunk-CHINR7WD.js} +6 -6
  40. package/dist/{chunk-VD32O6KZ.js → chunk-CJDPSCMX.js} +45 -5
  41. package/dist/{chunk-3HOGFGKG.js → chunk-D3KEPRRN.js} +2 -2
  42. package/dist/{chunk-SBR2WZXG.js → chunk-D7BUMOKU.js} +60 -53
  43. package/dist/{chunk-WRBKLYSJ.js → chunk-DNBP4GJN.js} +4 -3
  44. package/dist/{chunk-JTUKLCXS.js → chunk-DXUICABI.js} +1 -1
  45. package/dist/{chunk-XMDDBEEM.js → chunk-E763QI3G.js} +2 -2
  46. package/dist/{chunk-KTGRGWZW.js → chunk-EADVVTDK.js} +7 -7
  47. package/dist/{chunk-FJWZ5OVV.js → chunk-ENMBEXOP.js} +3 -3
  48. package/dist/{chunk-OPHB5ORL.js → chunk-EQFYOOO6.js} +171 -92
  49. package/dist/{chunk-WOGJB2F6.js → chunk-FNLTFOUD.js} +4 -9
  50. package/dist/{chunk-II747OWE.js → chunk-FQ53GTII.js} +10 -10
  51. package/dist/{chunk-JP7M7OU7.js → chunk-FU3VCE5A.js} +46 -27
  52. package/dist/{chunk-OGBMUST4.js → chunk-GHQ4BVI4.js} +14 -14
  53. package/dist/{chunk-45YPFB7B.js → chunk-GLY552SI.js} +84 -57
  54. package/dist/{chunk-QV3GXQRE.js → chunk-GOLFAEUV.js} +2 -2
  55. package/dist/{chunk-L2GLOJAO.js → chunk-GW5RHGOB.js} +22 -22
  56. package/dist/{chunk-A6QTTJUI.js → chunk-GWTFI3GA.js} +2 -2
  57. package/dist/{chunk-MCTIKRMN.js → chunk-GZHLCUZ6.js} +8 -8
  58. package/dist/{chunk-664LSWE5.js → chunk-HCG7NDIL.js} +4 -4
  59. package/dist/{chunk-7PMVIHB3.js → chunk-I3H3HCPY.js} +50 -29
  60. package/dist/{chunk-LIVN53UV.js → chunk-I3VHW6XM.js} +31 -31
  61. package/dist/{chunk-C4FHQA7R.js → chunk-IF4PEGVD.js} +8 -8
  62. package/dist/{chunk-WFG67AYS.js → chunk-IMELQ2I6.js} +3 -3
  63. package/dist/{chunk-3P3HXN76.js → chunk-ITC2R2OT.js} +11 -11
  64. package/dist/{chunk-W5ONYLOP.js → chunk-IXFJORNH.js} +4 -4
  65. package/dist/{chunk-HMLGM2MW.js → chunk-IYXL5NYU.js} +260 -32
  66. package/dist/{chunk-2B22WWKL.js → chunk-JFBRXRJD.js} +59 -35
  67. package/dist/chunk-JI3BLXWQ.js +107 -0
  68. package/dist/{chunk-4DJTQ6W4.js → chunk-JIKGT7DO.js} +2 -1
  69. package/dist/{chunk-O5V3YH5P.js → chunk-JRVQ7M7W.js} +8 -8
  70. package/dist/{chunk-4APOHK7Y.js → chunk-JXVJGF3Y.js} +2 -2
  71. package/dist/chunk-KPFS3RGM.js +257 -0
  72. package/dist/{chunk-PML67X22.js → chunk-LAOMN6QQ.js} +3 -3
  73. package/dist/{chunk-TTVAHCWP.js → chunk-LBJA7IEM.js} +370 -45
  74. package/dist/{chunk-KUTFFHUM.js → chunk-LD6ARK3A.js} +2 -2
  75. package/dist/{chunk-HUSH7LRI.js → chunk-LL7SGTRC.js} +36 -33
  76. package/dist/{chunk-I2BGYNHD.js → chunk-M5CSVB23.js} +7 -7
  77. package/dist/{chunk-UCQ2VUTG.js → chunk-M6ZFSTIZ.js} +2 -2
  78. package/dist/{chunk-MNVDVR3M.js → chunk-MBDFH7XB.js} +4 -4
  79. package/dist/{chunk-QXTKSOFI.js → chunk-MF4W6FHU.js} +1 -1
  80. package/dist/{chunk-RX3EMQGN.js → chunk-MFWF2NZJ.js} +12 -5
  81. package/dist/{chunk-SEUCZZCP.js → chunk-N5I37JFB.js} +3 -3
  82. package/dist/{chunk-IJ3SXSZM.js → chunk-ND43ZOS3.js} +6 -6
  83. package/dist/chunk-NDWVJ2QZ.js +67 -0
  84. package/dist/{chunk-E65QIWOO.js → chunk-NPODGBVJ.js} +4 -4
  85. package/dist/{chunk-CYB7UQA2.js → chunk-OIKLDDYC.js} +5 -5
  86. package/dist/{chunk-MLGI2SRQ.js → chunk-PFBXSVZF.js} +4 -4
  87. package/dist/{chunk-AM4FKL4J.js → chunk-PL7AIAWS.js} +12 -12
  88. package/dist/{chunk-S7E2AHV3.js → chunk-PMMHSX4H.js} +26 -9
  89. package/dist/{chunk-WL2DSNJV.js → chunk-Q22BMRPF.js} +2 -2
  90. package/dist/{chunk-3FN2BIGB.js → chunk-QJM5XZ4K.js} +6 -6
  91. package/dist/{chunk-EWCDPFW5.js → chunk-QXYMDARD.js} +4 -4
  92. package/dist/{chunk-MLPDSGJQ.js → chunk-QZEAANWP.js} +5 -5
  93. package/dist/{chunk-ESZ2FF57.js → chunk-RIN4YY34.js} +88 -74
  94. package/dist/{chunk-37FBPMNE.js → chunk-S56YBYMN.js} +5 -2
  95. package/dist/{chunk-CBYQ2ZN3.js → chunk-SKEG3V2V.js} +2 -2
  96. package/dist/{chunk-4PQHO74B.js → chunk-SLGJIWCY.js} +4 -4
  97. package/dist/{chunk-IVKRT476.js → chunk-SPITRSOF.js} +2 -2
  98. package/dist/{chunk-BUECLQXK.js → chunk-SPKA2LV6.js} +4 -4
  99. package/dist/{chunk-HHW5AWVD.js → chunk-SSITMX7I.js} +30 -30
  100. package/dist/{chunk-OPG4DYX2.js → chunk-T4LJ5UR2.js} +29 -7
  101. package/dist/{chunk-LXNQWHZM.js → chunk-TECTL2NU.js} +4 -4
  102. package/dist/{chunk-E6H5ZEV3.js → chunk-TTEIDD5Q.js} +3 -3
  103. package/dist/{chunk-6VBTPV2Y.js → chunk-U35MTOXQ.js} +3 -3
  104. package/dist/{chunk-UKUIUS3E.js → chunk-U6MTGB46.js} +5 -5
  105. package/dist/{chunk-Y2ZLKBM6.js → chunk-UD2Z7K6W.js} +4 -4
  106. package/dist/{chunk-IXUPUFCG.js → chunk-UIVMR7UK.js} +2 -2
  107. package/dist/{chunk-UDE5C2XN.js → chunk-VDHA5SSQ.js} +3 -3
  108. package/dist/{chunk-5W7DOMIU.js → chunk-VJFMUJWZ.js} +4 -4
  109. package/dist/{chunk-XNCP4KYO.js → chunk-VQPDATQT.js} +1 -1
  110. package/dist/{chunk-KCAL4QYP.js → chunk-VW4CWVYX.js} +4 -4
  111. package/dist/chunk-WAVNUTMT.js +9 -0
  112. package/dist/{chunk-DIG3NITC.js → chunk-WBH4KJWM.js} +3 -3
  113. package/dist/{chunk-HSEQYBDO.js → chunk-WZHLMU6T.js} +3 -3
  114. package/dist/{chunk-WYEQFD6A.js → chunk-XFBGXB7X.js} +173 -105
  115. package/dist/{chunk-UI4OPTYR.js → chunk-Y453TW6J.js} +2 -2
  116. package/dist/{chunk-LUTMOHOW.js → chunk-YGLMRH5U.js} +9 -9
  117. package/dist/{chunk-GPI3OWRE.js → chunk-YHB34BN6.js} +2 -1
  118. package/dist/{chunk-5WGVIXMD.js → chunk-YKP4ZKVO.js} +14 -10
  119. package/dist/{chunk-MN2PB6WB.js → chunk-YR2I5HGE.js} +3 -3
  120. package/dist/{chunk-ZG7E72VI.js → chunk-YYC2DZMG.js} +7 -7
  121. package/dist/{chunk-D64XUF5Q.js → chunk-YYLUBYXM.js} +16 -16
  122. package/dist/{chunk-VRVKNY4A.js → chunk-Z4ZGTCCD.js} +8 -8
  123. package/dist/{chunk-44B4V2LR.js → chunk-ZDP6GDAB.js} +142 -142
  124. package/dist/{chunk-ET5DSBAC.js → chunk-ZJSTUD6D.js} +8 -8
  125. package/dist/cli.d.ts +36 -26
  126. package/dist/cli.js +57 -56
  127. package/dist/{codegen-command-HTWIW56U.js → codegen-command-R5IASBFC.js} +78 -72
  128. package/dist/codegen.d.ts +2 -2
  129. package/dist/codegen.js +2 -2
  130. package/dist/{commands-CVFYC4GK.js → commands-H7CPMMHH.js} +3 -3
  131. package/dist/{completion-AUEQC4XJ.js → completion-W5ZAI6TN.js} +12 -12
  132. package/dist/{config-JU6OQC77.js → config-MZ5KG4EP.js} +5 -5
  133. package/dist/{deploy-command-5WTFHMBT.js → deploy-command-34T2LKQ5.js} +64 -63
  134. package/dist/deploy-source-YLQ7WMYR.js +82 -0
  135. package/dist/{dev-env-sync-X636HLMK.js → dev-env-sync-TMJTNU3U.js} +58 -57
  136. package/dist/{diagnostics-LSMGB4TY.js → diagnostics-OMN5Y2AH.js} +2 -2
  137. package/dist/{display-name-hint-DMORHANO.js → display-name-hint-ZJGFNJKQ.js} +12 -12
  138. package/dist/{emit-hOFbgzde.d.ts → emit-D125xxty.d.ts} +67 -21
  139. package/dist/env-example-refresh-CQP3ZMKM.js +133 -0
  140. package/dist/{env-pull-command-WZZ7RL2E.js → env-pull-command-UTG6IC2K.js} +53 -53
  141. package/dist/{env-target-PO3MOLH5.js → env-target-FZROWYFS.js} +14 -14
  142. package/dist/{env-var-command-YKTJZFJN.js → env-var-command-VYDBQJJW.js} +51 -50
  143. package/dist/{ephemeral-BMFY55BQ.js → ephemeral-BIE6FMJV.js} +10 -10
  144. package/dist/{ephemeral-command-VDSQCOYL.js → ephemeral-command-OZ26RGXF.js} +54 -54
  145. package/dist/{ephemeral-state-6TY4JIPA.js → ephemeral-state-SNZOX2YK.js} +12 -12
  146. package/dist/{generate-command-3NTNRQRS.js → generate-command-4HR7MR36.js} +87 -79
  147. package/dist/{gitignore-FWPEDX6C.js → gitignore-EWQBXNX2.js} +20 -19
  148. package/dist/{guards-EJU2ONAX.js → guards-KYEOCVHN.js} +7 -7
  149. package/dist/{hosted-file-PSHJB3HX.js → hosted-file-S7YUQAH6.js} +2 -2
  150. package/dist/{impersonate-command-QEJA72Q2.js → impersonate-command-WC7OGKUM.js} +44 -43
  151. package/dist/{import-TBTOTU52.js → import-7Z4GCCPO.js} +6 -6
  152. package/dist/index.d.ts +14 -20
  153. package/dist/index.js +14 -14
  154. package/dist/init-command-HAO3WXH3.js +128 -0
  155. package/dist/{init-modules-HZRQFRLE.js → init-modules-NSKD4ASY.js} +12 -11
  156. package/dist/{init-web-Y2PBNJTQ.js → init-web-MKFFOQUU.js} +3 -3
  157. package/dist/internal.d.ts +5 -5
  158. package/dist/internal.js +61 -35
  159. package/dist/{io-ZUKAGFVE.js → io-PGTCBSIQ.js} +7 -5
  160. package/dist/{keep-data-merge-X5LDDCI3.js → keep-data-merge-QR2TMKEO.js} +33 -34
  161. package/dist/{lambda-config-reconcile-OUZ4OYAB.js → lambda-config-reconcile-7FJXXV6V.js} +4 -4
  162. package/dist/{landed-6VO7CX5P.js → landed-F7PCHGCK.js} +4 -4
  163. package/dist/{landing-record-QYECWLQ5.js → landing-record-MWXFIRCP.js} +26 -25
  164. package/dist/{live-diff-2S7E3SBZ.js → live-diff-5E2BQWQ7.js} +10 -9
  165. package/dist/local-engine-choice-VD5LNXJU.js +80 -0
  166. package/dist/{local-engine-command-HMTQK7MN.js → local-engine-command-RYLGMQ2O.js} +96 -95
  167. package/dist/{local-engine-config-5U3SC434.js → local-engine-config-W3KB7RWM.js} +2 -2
  168. package/dist/{local-engine-deploy-TXAOYRGF.js → local-engine-deploy-6O7NKZCA.js} +17 -17
  169. package/dist/{local-engine-process-6VZ7JJBP.js → local-engine-process-ZLLZEIRF.js} +12 -12
  170. package/dist/{local-engine-state-TJWPWCC4.js → local-engine-state-OCW5YDD7.js} +3 -3
  171. package/dist/{local-engine-update-check-R5SPDVEJ.js → local-engine-update-check-LVX4HBBI.js} +8 -8
  172. package/dist/{lock-TS465GVY.js → lock-HDCHD2ON.js} +5 -3
  173. package/dist/{lock-commands-4VT3L5W5.js → lock-commands-X2OECR4R.js} +62 -61
  174. package/dist/{login-command-O6WA4FYL.js → login-command-RLLKD565.js} +31 -30
  175. package/dist/{logout-command-6CPWGFY2.js → logout-command-XDMSXCDO.js} +17 -17
  176. package/dist/{loop-UFHKSOQ4.js → loop-SUB6C2LK.js} +9 -10
  177. package/dist/{marketplace-command-HKACSYKS.js → marketplace-command-2NHHY2X3.js} +89 -53
  178. package/dist/{marketplace-resolve-KLFYVRWS.js → marketplace-resolve-OTZYT4FG.js} +9 -8
  179. package/dist/{meta-client-73PX6UGJ.js → meta-client-TMHVBZFY.js} +15 -15
  180. package/dist/{module-manifest-GIKFNXPE.js → module-manifest-FNMW23IX.js} +7 -4
  181. package/dist/node.d.ts +5 -5
  182. package/dist/node.js +63 -63
  183. package/dist/operation-outcome-RN62735X.js +51 -0
  184. package/dist/{output-target-SZMBNYF4.js → output-target-MOLCTPBP.js} +21 -20
  185. package/dist/{package-manager-PRAHUSCN.js → package-manager-K762W7XT.js} +2 -2
  186. package/dist/{plan-disclosure-BHYG7TZ7.js → plan-disclosure-CY7AF6KP.js} +21 -22
  187. package/dist/{plugin-contributions-X4V22PJQ.js → plugin-contributions-WR26U7NT.js} +6 -6
  188. package/dist/{plugin-prompt-DKNQHW6Y.js → plugin-prompt-ZUYQQIX4.js} +5 -5
  189. package/dist/{plugin-questions-CQRVOWFK.js → plugin-questions-HAZOQ67R.js} +4 -4
  190. package/dist/plugin.d.ts +254 -10
  191. package/dist/{preflight-command-EBQ6XQF3.js → preflight-command-OHJXYND3.js} +70 -70
  192. package/dist/{profile-command-NPKBJYPM.js → profile-command-6JWT2BTL.js} +33 -32
  193. package/dist/{profile-pointer-UOO7JNFG.js → profile-pointer-PDA5XBIB.js} +5 -5
  194. package/dist/{profile-select-74TRDEPD.js → profile-select-45G5VPJK.js} +2 -2
  195. package/dist/{project-dependency-RRMTWOPC.js → project-dependency-GZWWGWEW.js} +13 -10
  196. package/dist/{project-sdk-FOR4IOXL.js → project-sdk-3W72H5QO.js} +4 -4
  197. package/dist/promote-command-UYAMUXKB.js +146 -0
  198. package/dist/{prompt-5GUQTCSP.js → prompt-U37K5RPQ.js} +4 -4
  199. package/dist/{publish-command-LGLZBOCB.js → publish-command-BUS27HGB.js} +138 -66
  200. package/dist/pull-command-ZGUNP27P.js +168 -0
  201. package/dist/{pull-superseded-GGURV5J3.js → pull-superseded-EZBGYRZF.js} +4 -4
  202. package/dist/{raw-where-EoWl5fqY.d.ts → raw-where-ZMLND6AG.d.ts} +20 -3
  203. package/dist/release-command-BQ6OHS3P.js +150 -0
  204. package/dist/{release-ns-command-EIBN3JVM.js → release-ns-command-ATGVBVIU.js} +94 -94
  205. package/dist/{retry-command-Y5YJGOH3.js → retry-command-QJ57WVW7.js} +9 -9
  206. package/dist/{routes-manifest-3BNZIVST.js → routes-manifest-YR4ZIMLM.js} +16 -8
  207. package/dist/routes-manifest-file-UALYSZLY.js +41 -0
  208. package/dist/scaffold.js +3 -3
  209. package/dist/{secrets-file-FUG7WCES.js → secrets-file-LMS7KX3E.js} +20 -19
  210. package/dist/{secrets-fill-command-QEOCUOAY.js → secrets-fill-command-QNBDGCGM.js} +61 -60
  211. package/dist/{seed-GJHJSEUE.js → seed-SZ6OS5DQ.js} +9 -9
  212. package/dist/{source-resolve-DMDZVPMM.js → source-resolve-MKLNYFWG.js} +24 -24
  213. package/dist/{static-host-WM24RG25.js → static-host-ONEHA4LI.js} +10 -10
  214. package/dist/{status-command-XUH5OGQX.js → status-command-XKIFKBGM.js} +57 -56
  215. package/dist/{store-CfgPaVPO.d.ts → store-Bg4Na6Sm.d.ts} +4 -4
  216. package/dist/{store-MR7IKXKK.js → store-X6ZH7EC3.js} +7 -7
  217. package/dist/sveltekit.d.ts +5 -5
  218. package/dist/sveltekit.js +1 -1
  219. package/dist/sync-baseline-DOV5AGIO.js +36 -0
  220. package/dist/{sync-contributions-DHP7XSTX.js → sync-contributions-HNVHDIQW.js} +21 -13
  221. package/dist/sync-record-PRXHLK4S.js +42 -0
  222. package/dist/{table-ZBDPKMNH.js → table-DC36QA4Y.js} +10 -10
  223. package/dist/{tables-command-X3JK7VSK.js → tables-command-UQLKTELN.js} +44 -43
  224. package/dist/{tenant-GKXMOYLK.js → tenant-EKNQGG5A.js} +11 -11
  225. package/dist/{tenant-command-P27EQHBU.js → tenant-command-2LWP2MPB.js} +105 -100
  226. package/dist/{test-command-A4G2FP7G.js → test-command-IU5MBBXY.js} +44 -43
  227. package/dist/{tests-C55M5EQS.js → tests-RG2Y5EQ4.js} +7 -7
  228. package/dist/{token-CMAB35GD.js → token-7AWSJLKO.js} +13 -13
  229. package/dist/toolchain-hooks-4ZMQLBPQ.js +46 -0
  230. package/dist/{toolchain-modules-3M7QDJBV.js → toolchain-modules-VU7SURVJ.js} +9 -6
  231. package/dist/toolchain-peers-CIDNEEQV.js +28 -0
  232. package/dist/tracked-backend-4BHSV7NC.js +81 -0
  233. package/dist/{update-check-LNNKIMML.js → update-check-A7FXIINW.js} +60 -59
  234. package/dist/{upgrade-command-7EUXML3P.js → upgrade-command-C5KBITFI.js} +64 -63
  235. package/dist/{whoami-command-KNWFWAX6.js → whoami-command-7WQII2H4.js} +16 -16
  236. package/dist/{workspace-TGPYOODG.js → workspace-Z46PUZNI.js} +6 -6
  237. package/dist/{workspace-binding-2TWZBHQY.js → workspace-binding-JE6YNDZJ.js} +15 -15
  238. package/dist/{workspace-command-T7Z2BDHD.js → workspace-command-FC4IMLAE.js} +119 -88
  239. package/dist/{workspace-env-VA7XN3UX.js → workspace-env-N4ZPFT6A.js} +17 -16
  240. package/dist/{workspace-export-AIGM6LC7.js → workspace-export-3A5BZTPS.js} +6 -6
  241. package/dist/{writable-FYJBTJOU.js → writable-D7KCZI5N.js} +4 -4
  242. package/dist/{xano-BSHYVFSE.js → xano-LCI7VWPS.js} +9 -9
  243. package/dist/{xanosdk-import-J6SRBZHW.js → xanosdk-import-P2A2KSXM.js} +10 -10
  244. package/dist/xanosdk-project-6AGMW2SL.js +42 -0
  245. package/guides/README.md +1 -0
  246. package/guides/authoring.md +3 -5
  247. package/guides/bundle.md +45 -0
  248. package/guides/cli.md +36 -34
  249. package/guides/codegen.md +5 -4
  250. package/guides/codes.md +16 -11
  251. package/guides/deploying.md +115 -58
  252. package/guides/environment.md +13 -13
  253. package/guides/marketplace.md +21 -0
  254. package/guides/module-contract.md +80 -4
  255. package/guides/project-structure.md +14 -0
  256. package/guides/typed-frontend.md +37 -0
  257. package/llms/client.md +14 -5
  258. package/llms/errors.md +1 -1
  259. package/llms/filters.md +4 -0
  260. package/llms/kinds-core.md +1 -1
  261. package/llms/statements-data.md +3 -2
  262. package/llms/tests.md +2 -2
  263. package/llms/toolchain.md +12 -0
  264. package/llms-full.txt +47 -21
  265. package/llms.txt +10 -10
  266. package/manifest.json +110 -107
  267. package/package.json +4 -4
  268. package/dist/agent-file-refresh-LB6KIMFY.js +0 -38
  269. package/dist/chunk-XXZZGXW2.js +0 -243
  270. package/dist/deploy-source-5CET3A5D.js +0 -81
  271. package/dist/env-example-refresh-ZO6XAV44.js +0 -127
  272. package/dist/init-command-27SFBW2F.js +0 -126
  273. package/dist/local-engine-choice-6BSPEG3E.js +0 -79
  274. package/dist/operation-outcome-2P4BVSEV.js +0 -51
  275. package/dist/promote-command-4F2NAE6P.js +0 -141
  276. package/dist/pull-command-WQFPLITW.js +0 -162
  277. package/dist/release-command-2OTNVMIL.js +0 -147
  278. package/dist/toolchain-hooks-BGZBDFAT.js +0 -96
  279. package/dist/tracked-backend-PZGUWD5J.js +0 -80
  280. package/dist/xanosdk-project-6KTCO47O.js +0 -41
@@ -0,0 +1,111 @@
1
+ import {
2
+ satisfiesRange
3
+ } from "./chunk-2TFRR6JV.js";
4
+ import {
5
+ addDependencies
6
+ } from "./chunk-PMMHSX4H.js";
7
+ import {
8
+ condenseNpmError
9
+ } from "./chunk-ZFDZKNGG.js";
10
+ import {
11
+ shellWord
12
+ } from "./chunk-FWD7AL6N.js";
13
+ import {
14
+ readProjectManifest
15
+ } from "./chunk-DXUICABI.js";
16
+ import {
17
+ addCommandFor
18
+ } from "./chunk-DNBP4GJN.js";
19
+ import {
20
+ moduleKind,
21
+ packageNameOf,
22
+ readInstalledManifest,
23
+ readInstalledManifestState,
24
+ requiredPeersOf
25
+ } from "./chunk-763M6LX3.js";
26
+ import {
27
+ spinner,
28
+ style,
29
+ success,
30
+ terminalText,
31
+ warn
32
+ } from "./chunk-D7BUMOKU.js";
33
+
34
+ // src/emit/toolchain-peers.ts
35
+ async function addToolchainPeers(dir, pkg, rerun) {
36
+ const state = readInstalledManifestState(dir, pkg);
37
+ if (state.kind !== "ok" || !isToolchainModule(pkg, state.manifest)) return [];
38
+ const declared = projectDeclaredRanges(readProjectManifest(dir));
39
+ const missing = [];
40
+ for (const [peer, range] of requiredPeersOf(state.manifest)) {
41
+ const has = declared.get(peer);
42
+ if (has === void 0) {
43
+ missing.push(`${peer}@${range}`);
44
+ continue;
45
+ }
46
+ const version = readInstalledManifest(dir, peer)?.["version"];
47
+ if (typeof version === "string" && satisfiesRange(version, range) === false) {
48
+ warn(
49
+ `${pkg} needs ${peer} ${range}, and this project has ${version} (declared ${has}) \u2014 left as it is.`,
50
+ "module.peer-mismatch",
51
+ [`Move it into range with \`${addCommandFor(dir, shellWord(`${peer}@${range}`))}\`, or keep it and expect ${pkg}'s output not to compile.`]
52
+ );
53
+ }
54
+ }
55
+ if (missing.length === 0) return [];
56
+ const spin = spinner(`Adding ${missing.map((m) => style.bold(m)).join(", ")}`);
57
+ let result;
58
+ try {
59
+ result = await addDependencies(dir, missing, {
60
+ rerun,
61
+ onRetry: () => spin.update(`Adding ${missing.join(", ")} (retrying with --legacy-peer-deps)`)
62
+ });
63
+ } finally {
64
+ spin.stop();
65
+ }
66
+ const command = addCommandFor(dir, missing.map(shellWord).join(" "));
67
+ if (result.status !== 0 || result.unrecorded.length > 0) {
68
+ process.stderr.write(terminalText(result.output.trimEnd()) + "\n");
69
+ warn(
70
+ `${pkg} needs ${missing.join(", ")}, and ${result.status !== 0 ? `\`${command}\` failed (exit ${result.status})` : `\`${command}\` did not add ${result.unrecorded.join(", ")}`}.`,
71
+ "module.peer-not-added",
72
+ [`Run \`${command}\` once that is fixed \u2014 code ${pkg} generates imports ${missing.length === 1 ? "it" : "them"}.`]
73
+ );
74
+ return missing.filter((m) => !result.unrecorded.includes(packageNameOf(m)));
75
+ }
76
+ if (result.peerConflict !== null) {
77
+ const refused = condenseNpmError(result.peerConflict);
78
+ warn(
79
+ `${missing.join(", ")} ${missing.length === 1 ? "declares" : "declare"} a peer range this project does not satisfy \u2014 installed with --legacy-peer-deps.`,
80
+ "module.legacy-peer-deps",
81
+ ["npm refused the tree it would otherwise have installed:", ...refused !== "" ? [refused] : []]
82
+ );
83
+ }
84
+ success(
85
+ `Added ${missing.join(", ")}, ${missing.length === 1 ? "a peer" : "peers"} ${pkg} needs, as ${missing.length === 1 ? "a direct dependency" : "direct dependencies"}.`
86
+ );
87
+ return missing;
88
+ }
89
+ function isToolchainModule(pkg, manifest) {
90
+ try {
91
+ return moduleKind(pkg, manifest) === "toolchain";
92
+ } catch {
93
+ return false;
94
+ }
95
+ }
96
+ function projectDeclaredRanges(manifest) {
97
+ const ranges = /* @__PURE__ */ new Map();
98
+ for (const block of ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"]) {
99
+ const deps = manifest?.[block];
100
+ if (typeof deps !== "object" || deps === null) continue;
101
+ for (const [name, range] of Object.entries(deps)) {
102
+ if (!ranges.has(name)) ranges.set(name, typeof range === "string" ? range : String(range));
103
+ }
104
+ }
105
+ return ranges;
106
+ }
107
+
108
+ export {
109
+ addToolchainPeers
110
+ };
111
+ //# sourceMappingURL=chunk-BTVUYHWV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  backendDirIn
3
- } from "./chunk-E6H5ZEV3.js";
3
+ } from "./chunk-TTEIDD5Q.js";
4
4
  import {
5
5
  shellWord
6
6
  } from "./chunk-FWD7AL6N.js";
@@ -9,11 +9,11 @@ import {
9
9
  } from "./chunk-EUUUMY7J.js";
10
10
  import {
11
11
  pointerRootFor
12
- } from "./chunk-FPBGAT5D.js";
12
+ } from "./chunk-26MOFAJT.js";
13
13
  import {
14
14
  UsageError,
15
15
  setTypedCwd
16
- } from "./chunk-SBR2WZXG.js";
16
+ } from "./chunk-D7BUMOKU.js";
17
17
 
18
18
  // src/emit/xanosdk-project.ts
19
19
  import { existsSync, realpathSync, statSync } from "fs";
@@ -32,7 +32,7 @@ function projectDirFrom(start) {
32
32
  }
33
33
  }
34
34
  var RELATIVE_PATH_ARGS = ["out", "lockPath", "entryPath", "static", "bundle", "envFile", "secretsFile", "backendDir", "emit", "path"];
35
- var PATH_VARS = ["XANO_CONFIG", "XANO_GLOBAL_CONFIG", "XANO_CLIENT_FILE", "XANOSDK_UPDATE_CACHE", "XANOSDK_PROVE_DIFF", "XANOSDK_LOCAL_ENGINE_HOME", "XANOSDK_LOCAL_ENGINE_OVERRIDE"];
35
+ var PATH_VARS = ["XANO_CONFIG", "XANO_GLOBAL_CONFIG", "XANO_CLIENT_FILE", "XANOSDK_UPDATE_CACHE", "XANOSDK_PROVE_DIFF", "XANOSDK_ENGINE_HOME", "XANOSDK_ENGINE_OVERRIDE"];
36
36
  function enterProjectRoot(args, cwd = process.cwd(), positional) {
37
37
  const here = resolve(cwd);
38
38
  const at = positional === "verb-path" ? 1 : 0;
@@ -154,4 +154,4 @@ export {
154
154
  RELATIVE_PATH_ARGS,
155
155
  enterProjectRoot
156
156
  };
157
- //# sourceMappingURL=chunk-T4DUFQ2S.js.map
157
+ //# sourceMappingURL=chunk-CCU5CCRX.js.map
@@ -4,25 +4,25 @@ import {
4
4
  sectionKind,
5
5
  tableAdditions,
6
6
  vectorSize
7
- } from "./chunk-HMLGM2MW.js";
7
+ } from "./chunk-IYXL5NYU.js";
8
8
  import {
9
9
  ReleaseHttpError
10
- } from "./chunk-A6QTTJUI.js";
10
+ } from "./chunk-GWTFI3GA.js";
11
11
  import {
12
12
  TenantHttpError
13
- } from "./chunk-KCAL4QYP.js";
13
+ } from "./chunk-VW4CWVYX.js";
14
14
  import {
15
15
  CliError,
16
16
  detail,
17
17
  warn,
18
18
  withoutUrls
19
- } from "./chunk-SBR2WZXG.js";
19
+ } from "./chunk-D7BUMOKU.js";
20
20
  import {
21
21
  suggest
22
22
  } from "./chunk-UTI5G6OJ.js";
23
23
  import {
24
24
  authoredFieldType
25
- } from "./chunk-4DJTQ6W4.js";
25
+ } from "./chunk-JIKGT7DO.js";
26
26
 
27
27
  // src/emit/plan-disclosure.ts
28
28
  var NO_TABLE_EFFECTS = {
@@ -677,4 +677,4 @@ export {
677
677
  CONSTRAINT_PHRASE,
678
678
  CONSTRAINT_FIX
679
679
  };
680
- //# sourceMappingURL=chunk-5T2CTWTB.js.map
680
+ //# sourceMappingURL=chunk-CHINR7WD.js.map
@@ -1,14 +1,15 @@
1
1
  import {
2
2
  applyLanding,
3
3
  withoutPrunedObjects
4
- } from "./chunk-RX3EMQGN.js";
4
+ } from "./chunk-MFWF2NZJ.js";
5
5
  import {
6
6
  atomicWrite
7
7
  } from "./chunk-LLNZGEFK.js";
8
8
  import {
9
9
  parseLockReport,
10
- serializeLock
11
- } from "./chunk-OOGXZL7Z.js";
10
+ serializeLock,
11
+ withSyncedOf
12
+ } from "./chunk-5KJBWIDZ.js";
12
13
  import {
13
14
  tagLockSource
14
15
  } from "./chunk-4BW2SG2N.js";
@@ -16,6 +17,37 @@ import {
16
17
  // src/lock/io.ts
17
18
  import { readFileSync, existsSync } from "fs";
18
19
  import { resolve } from "path";
20
+
21
+ // src/lock/synced.ts
22
+ function syncedOn(lock, destKey, branch) {
23
+ const record = lock?.synced?.[destKey];
24
+ return record !== void 0 && Object.hasOwn(record, branch) ? record[branch] : void 0;
25
+ }
26
+ function withSyncBaseline(lock, destKey, branch, baseline) {
27
+ const synced = { ...lock.synced ?? {} };
28
+ synced[destKey] = { ...synced[destKey] ?? {}, [branch]: baseline };
29
+ const { synced: _old, ...rest } = lock;
30
+ return withSyncedOf(rest, { synced });
31
+ }
32
+ function nextBaseline(previous, digests, by, complete, now = () => /* @__PURE__ */ new Date()) {
33
+ if (previous !== void 0 && previous.complete === complete && previous.scheme === digests.scheme && sameDigests(previous.objects, digests.objects) && sameDigests(previous.others ?? {}, digests.others)) {
34
+ return previous;
35
+ }
36
+ return {
37
+ at: now().toISOString(),
38
+ by,
39
+ scheme: digests.scheme,
40
+ complete,
41
+ objects: { ...digests.objects },
42
+ ...Object.keys(digests.others).length > 0 ? { others: { ...digests.others } } : {}
43
+ };
44
+ }
45
+ function sameDigests(a, b) {
46
+ const keys = Object.keys(a);
47
+ return keys.length === Object.keys(b).length && keys.every((k) => Object.hasOwn(b, k) && a[k] === b[k]);
48
+ }
49
+
50
+ // src/lock/io.ts
19
51
  function readLockFile(path, opts = {}) {
20
52
  return readLockFileReport(path, opts).lock;
21
53
  }
@@ -62,12 +94,20 @@ function forgetPrunedInLockFile(path, update) {
62
94
  writeLockFile(path, { ...lock, objects });
63
95
  return Object.keys(lock.objects).filter((key) => !(key in objects));
64
96
  }
97
+ function recordSyncInLockFile(path, destKey, branch, sync) {
98
+ if (!existsSync(path)) return void 0;
99
+ const lock = readLockFile(path);
100
+ const baseline = nextBaseline(syncedOn(lock, destKey, branch), sync.digests, sync.by, sync.complete);
101
+ return { changed: writeLockFile(path, withSyncBaseline(lock, destKey, branch, baseline)) };
102
+ }
65
103
 
66
104
  export {
105
+ syncedOn,
67
106
  readLockFile,
68
107
  readLockFileReport,
69
108
  writeLockFile,
70
109
  recordLandingInLockFile,
71
- forgetPrunedInLockFile
110
+ forgetPrunedInLockFile,
111
+ recordSyncInLockFile
72
112
  };
73
- //# sourceMappingURL=chunk-VD32O6KZ.js.map
113
+ //# sourceMappingURL=chunk-CJDPSCMX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  impliedInputs
3
- } from "./chunk-7GX445AE.js";
3
+ } from "./chunk-4XHAT7C5.js";
4
4
 
5
5
  // src/validate/normalize.ts
6
6
  var STRIP_KEYS = /* @__PURE__ */ new Set([
@@ -1062,4 +1062,4 @@ export {
1062
1062
  filledContext,
1063
1063
  normalize
1064
1064
  };
1065
- //# sourceMappingURL=chunk-3HOGFGKG.js.map
1065
+ //# sourceMappingURL=chunk-D3KEPRRN.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  setDiagnosticSink
3
- } from "./chunk-GPI3OWRE.js";
3
+ } from "./chunk-YHB34BN6.js";
4
4
  import {
5
5
  suggest
6
6
  } from "./chunk-UTI5G6OJ.js";
@@ -21,7 +21,7 @@ import { randomBytes } from "crypto";
21
21
  import { AsyncLocalStorage } from "async_hooks";
22
22
 
23
23
  // src/emit/json-target.ts
24
- var BACKEND_KINDS = /* @__PURE__ */ new Set(["workspace", "ephemeral", "tenant", "local-engine"]);
24
+ var BACKEND_KINDS = /* @__PURE__ */ new Set(["workspace", "ephemeral", "tenant", "local"]);
25
25
  var isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
26
26
  var text = (v) => typeof v === "string" && v !== "" ? v : void 0;
27
27
  function backendSelector(kind, name) {
@@ -43,7 +43,7 @@ function derive(doc) {
43
43
  const kind = doc.deployed.kind;
44
44
  const env = isObject(doc.environment) ? doc.environment.name : void 0;
45
45
  if (kind === "ephemeral" && text(env) !== void 0) out.selector = `ephemeral:${env}`;
46
- else if (kind === "local-engine") out.selector = "local-engine";
46
+ else if (kind === "local") out.selector = "local";
47
47
  }
48
48
  if (out.workspaceId === void 0 && isObject(doc.workspace) && typeof doc.workspace.id === "number") {
49
49
  out.workspaceId = doc.workspace.id;
@@ -604,11 +604,11 @@ function formatExpiration(expiresAt) {
604
604
  return `in ${hours}h ${minutes}m`;
605
605
  }
606
606
  function isLocalEngine(target) {
607
- return "kind" in target && target.kind === "local-engine";
607
+ return "kind" in target && target.kind === "local";
608
608
  }
609
609
  function describeWriteTarget(target) {
610
610
  if (isLocalEngine(target)) {
611
- return `local engine \xB7 ${hostLabel(target.url)} \xB7 workspace ${target.workspaceId}`;
611
+ return `Xano Engine \xB7 ${hostLabel(target.url)} \xB7 workspace ${target.workspaceId}`;
612
612
  }
613
613
  const where = `${hostLabel(target.base)} \xB7 workspace ${target.workspaceId}`;
614
614
  return target.label === void 0 || target.label === "" ? where : `${target.label} \u2014 ${where}`;
@@ -621,7 +621,7 @@ function credentialWriteTarget(binding) {
621
621
  }
622
622
  function writeTargetPayload(target) {
623
623
  if (isLocalEngine(target)) {
624
- return { instance: target.url, workspaceId: target.workspaceId, kind: "local-engine", local: true };
624
+ return { instance: target.url, workspaceId: target.workspaceId, kind: "local", local: true };
625
625
  }
626
626
  return {
627
627
  instance: target.base,
@@ -1048,7 +1048,7 @@ function extraArguments(extras, target, max, attachedValueFlag) {
1048
1048
  }
1049
1049
  );
1050
1050
  }
1051
- var BACKEND_HANDLE = /^(?:workspace|ephemeral|local-engine|tenant)(?::[^\s=]+)?$/;
1051
+ var BACKEND_HANDLE = /^(?:workspace|ephemeral|local|tenant)(?::[^\s=]+)?$/;
1052
1052
  function positionalSelectorHint(extra, target) {
1053
1053
  if (!BACKEND_HANDLE.test(extra)) return void 0;
1054
1054
  const own = selectorSpellings(target.command, target.subcommand);
@@ -1176,8 +1176,8 @@ function processExitCode(err) {
1176
1176
  return err instanceof Error && statesOutcomeUnknown(err.message) ? EXIT_OUTCOME_UNKNOWN : 1;
1177
1177
  }
1178
1178
  var MOVED_TO_TOP_LEVEL = /* @__PURE__ */ new Map([
1179
- ["tables", /* @__PURE__ */ new Set(["workspace", "ephemeral", "tenant", "local-engine"])],
1180
- ["impersonate", /* @__PURE__ */ new Set(["ephemeral", "tenant", "local-engine"])]
1179
+ ["tables", /* @__PURE__ */ new Set(["workspace", "ephemeral", "tenant", "local"])],
1180
+ ["impersonate", /* @__PURE__ */ new Set(["ephemeral", "tenant", "local"])]
1181
1181
  ]);
1182
1182
  function movedVerb(command, sub, positionals) {
1183
1183
  if (command === void 0 || sub === void 0 || MOVED_TO_TOP_LEVEL.get(sub)?.has(command) !== true) {
@@ -1257,9 +1257,12 @@ var PREFIXED = {
1257
1257
  release: "required",
1258
1258
  tenant: "required",
1259
1259
  ephemeral: "optional",
1260
- "local-engine": "optional"
1260
+ "local": "optional"
1261
1261
  };
1262
- var BARE = ["workspace", "ephemeral", "local-engine"];
1262
+ var BARE = ["workspace", "ephemeral", "local"];
1263
+ function kindNoun(kind) {
1264
+ return kind === "local" ? "Xano Engine" : kind;
1265
+ }
1263
1266
  function isKindShaped(raw) {
1264
1267
  return /^[a-z][a-z-]*:/.test(raw);
1265
1268
  }
@@ -1269,8 +1272,8 @@ function spellingsOf(kind) {
1269
1272
  return ["workspace"];
1270
1273
  case "ephemeral":
1271
1274
  return ["ephemeral", "ephemeral:<name>"];
1272
- case "local-engine":
1273
- return ["local-engine", "local-engine:<name>"];
1275
+ case "local":
1276
+ return ["local", "local:<name>"];
1274
1277
  case "release":
1275
1278
  return ["release:<name>"];
1276
1279
  case "tenant":
@@ -1310,7 +1313,7 @@ function parseSource(raw, accepted, helpFor, noun = SOURCE_NOUN) {
1310
1313
  throw BARE.includes(kind) ? refuse(raw, accepted, helpFor, `takes no name \u2014 ${kind} names one thing`, noun) : refuse(raw, accepted, helpFor, `names no ${noun.singular} kind "${kind}"`, noun, keywordSuggestion(raw, accepted));
1311
1314
  }
1312
1315
  if (!accepted.includes(kind)) {
1313
- throw refuse(raw, accepted, helpFor, `names ${withArticle(kind.replace("-", " "))}, which this command does not take`, noun);
1316
+ throw refuse(raw, accepted, helpFor, `names ${withArticle(kindNoun(kind))}, which this command does not take`, noun);
1314
1317
  }
1315
1318
  if (name === "") throw refuse(raw, accepted, helpFor, `names no ${kind}`, noun);
1316
1319
  return { kind, name };
@@ -1350,7 +1353,7 @@ function verbBackendName(raw, kind, helpFor, flags = "") {
1350
1353
  const other = shared && (typed === "tenant" || typed === "ephemeral") ? `xanosdk ${typed} ${helpFor.subcommand}` : void 0;
1351
1354
  const known = Object.hasOwn(PREFIXED, typed) || BARE.includes(typed);
1352
1355
  throw new UsageError(
1353
- `"${raw}" ${known ? `names ${withArticle(typed.replace("-", " "))}` : `names no backend kind "${typed}"`}, and \`${verb}\` takes ${withArticle(kind)} name (\`${kind}:<name>\` or the bare name).` + (other !== void 0 && name !== "" ? ` For ${withArticle(typed)}, run \`${other} ${shellQuote(name)}${flags}\`.` : ""),
1356
+ `"${raw}" ${known ? `names ${withArticle(kindNoun(typed))}` : `names no backend kind "${typed}"`}, and \`${verb}\` takes ${withArticle(kind)} name (\`${kind}:<name>\` or the bare name).` + (other !== void 0 && name !== "" ? ` For ${withArticle(typed)}, run \`${other} ${shellQuote(name)}${flags}\`.` : ""),
1354
1357
  { hintFor: helpFor }
1355
1358
  );
1356
1359
  }
@@ -1414,9 +1417,13 @@ var FLAGS = {
1414
1417
  },
1415
1418
  "expires-hours": { spec: "--expires-hours <n>", summary: "Ephemeral TTL at create time, 1\u201324 (default: 1)" },
1416
1419
  static: { spec: "--static <dir>", summary: "Archive this built frontend and deploy it to the static host" },
1417
- "local-engine": {
1418
- spec: "--local-engine[=<version|url|path>]",
1419
- summary: "Deploy to an engine on this machine instead of an ephemeral. Bare: runs the project's pinned engine version (the latest on first run, then pinned in package.json \u2014 commit it); a newer engine is offered, never applied without a yes. A version, URL or archive path (or XANOSDK_LOCAL_ENGINE_OVERRIDE, for every run in a shell) runs that engine as an override and never touches the pin; a URL must be https (plain http only from this machine). Not combinable with --to or --static"
1420
+ ephemeral: {
1421
+ spec: "--ephemeral",
1422
+ summary: "Deploy to a disposable ephemeral on Xano's cloud instead of the Xano Engine on this machine"
1423
+ },
1424
+ "local": {
1425
+ spec: "--local[=<version|url|path>]",
1426
+ summary: "Deploy to the Xano Engine on this machine \u2014 the default, so the flag is needed only to name an engine. Bare: runs the project's pinned engine version (the latest on first run, then pinned in package.json \u2014 commit it); a newer engine is offered, never applied without a yes. A version, URL or archive path (or XANOSDK_ENGINE_OVERRIDE, for every run in a shell) runs that engine as an override and never touches the pin; a URL must be https (plain http only from this machine). Not combinable with --to or --ephemeral"
1420
1427
  },
1421
1428
  // Keyed apart from the global `version` row: that one is the first-argument
1422
1429
  // `xanosdk --version`, this one a value an engine verb takes after the verb.
@@ -1506,7 +1513,7 @@ var FLAGS = {
1506
1513
  summary: "Xano OAuth host for `login` and a XANO_REFRESH_TOKEN exchange (default: $XANO_ORIGIN)"
1507
1514
  },
1508
1515
  config: { spec: "--config <path>", summary: "Explicit credential file (default: $XANO_CONFIG)" },
1509
- local: { spec: "--local", summary: "Use the project-local ./.xano/auth.json instead of the shared cache" },
1516
+ "local-auth": { spec: "--local-auth", summary: "Use the project-local ./.xano/auth.json instead of the shared cache" },
1510
1517
  profile: {
1511
1518
  spec: "--profile, -p <name>",
1512
1519
  summary: "Commands that sign in: which stored credential profile to act as \u2014 the only thing that overrides this project's xano.profile.json (then $XANO_PROFILE, then the credential file default)"
@@ -1696,8 +1703,8 @@ var GLOBAL_FLAGS = [
1696
1703
  "help",
1697
1704
  "version"
1698
1705
  ];
1699
- var AUTH = ["origin", "config", "local"];
1700
- var CREDENTIAL_FILE = ["config", "local"];
1706
+ var AUTH = ["origin", "config", "local-auth"];
1707
+ var CREDENTIAL_FILE = ["config", "local-auth"];
1701
1708
  function isAuthenticatedCommand(command, subcommand) {
1702
1709
  return flagRefFor(command, subcommand, "config") !== void 0;
1703
1710
  }
@@ -1707,7 +1714,7 @@ function takesProfileFlag(command, subcommand) {
1707
1714
  return isAuthenticatedCommand(command, subcommand);
1708
1715
  }
1709
1716
  var CUT = ["workspace", "ephemeral", "tenant"];
1710
- var BACKEND = ["workspace", "ephemeral", "local-engine", "tenant"];
1717
+ var BACKEND = ["workspace", "ephemeral", "local", "tenant"];
1711
1718
  var TEST_ON = {
1712
1719
  key: "on",
1713
1720
  summary: "Run on this backend instead of the one this project last deployed to",
@@ -1958,7 +1965,7 @@ var COMMANDS = {
1958
1965
  deploy: {
1959
1966
  group: "Deploy",
1960
1967
  display: "deploy [source]",
1961
- summary: "Ship to a live ephemeral env \u2192 URL",
1968
+ summary: "Deploy to the Xano Engine on this machine (default) or an ephemeral (--ephemeral) \u2192 URL",
1962
1969
  // Optional: a bare `deploy` inside a project compiles its entry, and the
1963
1970
  // argument may name a backend to take the bytes FROM instead of a path.
1964
1971
  args: [
@@ -1978,8 +1985,8 @@ var COMMANDS = {
1978
1985
  ),
1979
1986
  {
1980
1987
  key: "to",
1981
- summary: "Merge into a real destination instead of replacing an ephemeral. The escape hatch from the release flow",
1982
- // An ephemeral and a local engine are where a deploy goes WITHOUT
1988
+ summary: "Merge into a real destination instead of replacing the Xano Engine or an ephemeral. The escape hatch from the release flow",
1989
+ // An ephemeral and a Xano Engine are where a deploy goes WITHOUT
1983
1990
  // `--to`; naming one here is the other path spelled wrong, and the
1984
1991
  // reason says which flag that path is.
1985
1992
  selector: {
@@ -1987,12 +1994,13 @@ var COMMANDS = {
1987
1994
  role: "to",
1988
1995
  default: "none",
1989
1996
  refused: {
1990
- "local-engine": "a deploy to a local engine is `--local-engine`, which also downloads, pins and starts one",
1991
- ephemeral: "a deploy with no `--to` already replaces an ephemeral. To merge into one instead, name it as the tenant it is: `--to tenant:<ephemeral name>`"
1997
+ "local": "a deploy to a Xano Engine is `--local`, which also downloads, pins and starts one",
1998
+ ephemeral: "`--ephemeral` already replaces an ephemeral. To merge into one instead, name it as the tenant it is: `--to tenant:<ephemeral name>`"
1992
1999
  }
1993
2000
  }
1994
2001
  },
1995
- "local-engine",
2002
+ "local",
2003
+ "ephemeral",
1996
2004
  withToOnly("dry-run"),
1997
2005
  withToOnly("prune"),
1998
2006
  withToOnly("reset-data"),
@@ -2101,7 +2109,7 @@ var COMMANDS = {
2101
2109
  args: [{ name: "name", required: true }],
2102
2110
  flags: [
2103
2111
  // A release is cut from something that RAN, so a path is not in the
2104
- // set, and the cut runs on the instance, so a local engine is refused
2112
+ // set, and the cut runs on the instance, so a Xano Engine is refused
2105
2113
  // with that reason rather than left unknown.
2106
2114
  {
2107
2115
  key: "from",
@@ -2111,7 +2119,7 @@ var COMMANDS = {
2111
2119
  role: "from",
2112
2120
  default: "tracked",
2113
2121
  refused: {
2114
- "local-engine": "the cut runs on the instance, which cannot reach an engine on this machine"
2122
+ "local": "the cut runs on the instance, which cannot reach an engine on this machine"
2115
2123
  }
2116
2124
  }
2117
2125
  },
@@ -2289,10 +2297,9 @@ var COMMANDS = {
2289
2297
  key: "to",
2290
2298
  summary: "Where to publish, instead of the backend this project last deployed to",
2291
2299
  selector: {
2292
- accepted: CUT,
2300
+ accepted: BACKEND,
2293
2301
  role: "to",
2294
- default: "tracked",
2295
- refused: { "local-engine": "a local engine takes a frontend only through `xanosdk deploy --local-engine --static <dir>`" }
2302
+ default: "tracked"
2296
2303
  }
2297
2304
  },
2298
2305
  "release",
@@ -2464,31 +2471,31 @@ var COMMANDS = {
2464
2471
  }
2465
2472
  }
2466
2473
  },
2467
- "local-engine": {
2474
+ "local": {
2468
2475
  group: "Environments",
2469
- display: "local-engine",
2470
- // The handles that ship with `deploy --local-engine`: a local engine has no
2476
+ display: "local",
2477
+ // The handles that ship with `deploy --local`: a Xano Engine has no
2471
2478
  // TTL and nothing reclaims it, and its binary is never on `PATH`, so these
2472
- // verbs are the only way to see or stop one (`impersonate local-engine`
2479
+ // verbs are the only way to see or stop one (`impersonate local`
2473
2480
  // opens one, like any other backend).
2474
- summary: "See, authenticate against and stop local engines on this machine; move the project's engine pin and manage cached engine versions",
2481
+ summary: "See, authenticate against and stop Xano Engines on this machine; move the project's engine pin and manage cached engine versions",
2475
2482
  subcommands: {
2476
2483
  list: {
2477
- summary: "List local engines on this machine, marking the ones xanosdk started",
2478
- example: "xanosdk local-engine list"
2484
+ summary: "List Xano Engines on this machine, marking the ones xanosdk started",
2485
+ example: "xanosdk local list"
2479
2486
  },
2480
2487
  token: {
2481
2488
  // The engine's meta API accepts only its own bearer, and no summary
2482
2489
  // carries it — so this verb is the only way a suite gets one. Bare on
2483
2490
  // stdout even when piped, because `$(…)` is the form it exists for.
2484
- summary: "Print a local engine's meta API bearer \u2014 the local XANO_META_TOKEN; `--json` adds its url and workspace id. Re-run after a restart, which re-mints it (default: the engine this project deployed to)",
2491
+ summary: "Print a Xano Engine's meta API bearer \u2014 the local XANO_META_TOKEN; `--json` adds its url and workspace id. Re-run after a restart, which re-mints it (default: the engine this project deployed to)",
2485
2492
  args: [{ name: "name", required: false }],
2486
- example: "XANO_META_TOKEN=$(xanosdk local-engine token)"
2493
+ example: "XANO_META_TOKEN=$(xanosdk local token)"
2487
2494
  },
2488
2495
  stop: {
2489
2496
  // The name is optional because `--all` stands in for it — and `--all`
2490
2497
  // is the form most runs want, since it covers every project.
2491
- summary: "Stop one local engine by name, or every one xanosdk started on this machine",
2498
+ summary: "Stop one Xano Engine by name, or every one xanosdk started on this machine",
2492
2499
  args: [{ name: "name", required: true, satisfiedBy: ["all"] }],
2493
2500
  flags: [
2494
2501
  {
@@ -2496,7 +2503,7 @@ var COMMANDS = {
2496
2503
  summary: "Every engine xanosdk started on this machine, across projects (foreign ones are reported, not stopped)"
2497
2504
  }
2498
2505
  ],
2499
- example: "xanosdk local-engine stop --all"
2506
+ example: "xanosdk local stop --all"
2500
2507
  },
2501
2508
  update: {
2502
2509
  // Running it IS the confirmation, so it never prompts — the deploy only
@@ -2508,7 +2515,7 @@ var COMMANDS = {
2508
2515
  summary: "Pin this engine version instead of the latest, like v0.1.5 \u2014 or `latest`, the default"
2509
2516
  }
2510
2517
  ],
2511
- example: "xanosdk local-engine update"
2518
+ example: "xanosdk local update"
2512
2519
  },
2513
2520
  cache: {
2514
2521
  // One verb with an action argument, not two top-level verbs: both act on
@@ -2526,7 +2533,7 @@ var COMMANDS = {
2526
2533
  },
2527
2534
  { key: "yes", summary: "Skip the `--legacy-runtime` confirmation (required when there is no terminal)" }
2528
2535
  ],
2529
- example: "xanosdk local-engine cache clear --version v0.1.5"
2536
+ example: "xanosdk local cache clear --version v0.1.5"
2530
2537
  }
2531
2538
  }
2532
2539
  },
@@ -2593,7 +2600,7 @@ var COMMANDS = {
2593
2600
  name: "backend",
2594
2601
  required: false,
2595
2602
  selector: {
2596
- accepted: ["ephemeral", "local-engine", "tenant"],
2603
+ accepted: ["ephemeral", "local", "tenant"],
2597
2604
  role: "subject",
2598
2605
  default: "tracked",
2599
2606
  refused: {
@@ -2614,9 +2621,9 @@ var COMMANDS = {
2614
2621
  login: {
2615
2622
  group: "Account",
2616
2623
  display: "login",
2617
- summary: "OAuth sign-in \u2014 shared cache, or --local per project",
2624
+ summary: "OAuth sign-in \u2014 shared cache, or --local-auth per project",
2618
2625
  flags: [
2619
- "local",
2626
+ "local-auth",
2620
2627
  "paste",
2621
2628
  "port",
2622
2629
  "scope",
@@ -2624,13 +2631,13 @@ var COMMANDS = {
2624
2631
  "config",
2625
2632
  { key: "force", summary: "Overwrite the cached credential \u2014 sign in again even when one is already there" }
2626
2633
  ],
2627
- example: "xanosdk login --local"
2634
+ example: "xanosdk login --local-auth"
2628
2635
  },
2629
2636
  logout: {
2630
2637
  group: "Account",
2631
2638
  display: "logout",
2632
2639
  summary: "Revoke the active profile and remove it from the credential file",
2633
- flags: ["all", "yes", "local", "config"],
2640
+ flags: ["all", "yes", "local-auth", "config"],
2634
2641
  example: "xanosdk logout --profile staging"
2635
2642
  },
2636
2643
  status: {
@@ -2823,7 +2830,7 @@ function flagSummary(ref) {
2823
2830
  function selectorValues(selector) {
2824
2831
  return SELECTOR_BARE.filter((k) => selector.accepted.includes(k));
2825
2832
  }
2826
- var SELECTOR_BARE = ["workspace", "ephemeral", "local-engine"];
2833
+ var SELECTOR_BARE = ["workspace", "ephemeral", "local"];
2827
2834
  function argValues(arg) {
2828
2835
  if (arg.values !== void 0) return arg.values;
2829
2836
  return arg.selector !== void 0 ? selectorValues(arg.selector) : void 0;
@@ -3033,4 +3040,4 @@ export {
3033
3040
  movedVerb,
3034
3041
  installCliDiagnosticSink
3035
3042
  };
3036
- //# sourceMappingURL=chunk-SBR2WZXG.js.map
3043
+ //# sourceMappingURL=chunk-D7BUMOKU.js.map
@@ -201,8 +201,9 @@ function removeArgs(manager, pkg) {
201
201
  return [manager === "npm" ? "uninstall" : "remove", pkg];
202
202
  }
203
203
  function addArgs(manager, spec, dev = false) {
204
- if (manager === "npm") return ["install", spec, ...dev ? ["--save-dev"] : []];
205
- return ["add", spec, ...dev ? [manager === "pnpm" ? "--save-dev" : "--dev"] : []];
204
+ const specs = typeof spec === "string" ? [spec] : [...spec];
205
+ if (manager === "npm") return ["install", ...specs, ...dev ? ["--save-dev"] : []];
206
+ return ["add", ...specs, ...dev ? [manager === "pnpm" ? "--save-dev" : "--dev"] : []];
206
207
  }
207
208
 
208
209
  export {
@@ -221,4 +222,4 @@ export {
221
222
  removeArgs,
222
223
  addArgs
223
224
  };
224
- //# sourceMappingURL=chunk-WRBKLYSJ.js.map
225
+ //# sourceMappingURL=chunk-DNBP4GJN.js.map
@@ -89,4 +89,4 @@ export {
89
89
  composeToolchainConfig,
90
90
  writeToolchainConfig
91
91
  };
92
- //# sourceMappingURL=chunk-JTUKLCXS.js.map
92
+ //# sourceMappingURL=chunk-DXUICABI.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-A2AOUBJS.js";
10
10
  import {
11
11
  RAW_FIELD
12
- } from "./chunk-4DJTQ6W4.js";
12
+ } from "./chunk-JIKGT7DO.js";
13
13
  import {
14
14
  describeEntry
15
15
  } from "./chunk-4MIV244X.js";
@@ -139,4 +139,4 @@ export {
139
139
  rawField,
140
140
  codegen_entry_exports
141
141
  };
142
- //# sourceMappingURL=chunk-XMDDBEEM.js.map
142
+ //# sourceMappingURL=chunk-E763QI3G.js.map