@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
@@ -1,35 +1,35 @@
1
1
  import {
2
2
  resolveProjectEntry
3
- } from "./chunk-VRVKNY4A.js";
3
+ } from "./chunk-Z4ZGTCCD.js";
4
4
  import {
5
5
  isUnusablePin,
6
6
  readPin,
7
7
  writePin
8
- } from "./chunk-D64XUF5Q.js";
8
+ } from "./chunk-YYLUBYXM.js";
9
9
  import {
10
10
  ENGINE_RELEASES_URL_ENV,
11
11
  EngineReleaseNotFoundError,
12
12
  usesCustomReleaseManager
13
- } from "./chunk-CYB7UQA2.js";
13
+ } from "./chunk-OIKLDDYC.js";
14
14
  import {
15
15
  LOCAL_ENGINE_OVERRIDE_ENV,
16
16
  engineOverrideFromEnv,
17
17
  resolveEnginePlatform,
18
18
  resolveEngineSource
19
- } from "./chunk-AM4FKL4J.js";
19
+ } from "./chunk-PL7AIAWS.js";
20
20
  import {
21
21
  ORIGIN_READ_ONLY_BY_REFRESH
22
- } from "./chunk-SEUCZZCP.js";
22
+ } from "./chunk-N5I37JFB.js";
23
23
  import {
24
24
  UsageError,
25
25
  info,
26
26
  warn
27
- } from "./chunk-SBR2WZXG.js";
27
+ } from "./chunk-D7BUMOKU.js";
28
28
 
29
29
  // src/emit/local-engine-choice.ts
30
30
  function refuseCredentialFlagsForLocal(args, kinds) {
31
- if (kinds.some((k) => k !== "local-engine")) return;
32
- const why = "and a local engine takes none \u2014 it is reached with the engine's own bearer.";
31
+ if (kinds.some((k) => k !== "local")) return;
32
+ const why = "and a Xano Engine takes none \u2014 it is reached with the engine's own bearer.";
33
33
  const or = "or deploy from a hosted backend that reads it.";
34
34
  const refuse = (message) => {
35
35
  throw new UsageError(message, { hintFor: { command: "deploy" } });
@@ -38,7 +38,7 @@ function refuseCredentialFlagsForLocal(args, kinds) {
38
38
  refuse(`\`--config ${args.authFile}\` names a Xano credential file, ${why} Drop \`--config\`, ${or}`);
39
39
  }
40
40
  if (args.local === true) {
41
- refuse(`\`--local\` selects the project-local Xano credential file, ${why} Drop \`--local\`, ${or}`);
41
+ refuse(`\`--local-auth\` selects the project-local Xano credential file, ${why} Drop \`--local-auth\`, ${or}`);
42
42
  }
43
43
  if (args.authHost !== void 0) {
44
44
  refuse(`\`--origin\` names a Xano sign-in server, ${why} ${ORIGIN_READ_ONLY_BY_REFRESH}`);
@@ -47,7 +47,7 @@ function refuseCredentialFlagsForLocal(args, kinds) {
47
47
  async function chooseLocalEngine(flagValue, dir, machineOutput) {
48
48
  if (flagValue !== void 0 && flagValue !== "") {
49
49
  const source = resolveEngineSource(flagValue);
50
- announceOverride(source, "--local-engine", "run `--local-engine` bare to go back to it");
50
+ announceOverride(source, "--local", "run `--local` bare to go back to it");
51
51
  return { source, pinWrite: void 0, pin: "none", override: "flag" };
52
52
  }
53
53
  const fromEnv = engineOverrideFromEnv();
@@ -63,8 +63,8 @@ async function chooseLocalEngine(flagValue, dir, machineOutput) {
63
63
  }
64
64
  const pin = readPin(dir, {
65
65
  warn: (message) => warn(
66
- `${message} This deploy runs the latest local engine and the field is left as written \u2014 set it to a version like "v0.1.5", or run \`xanosdk local-engine update\` to pin one.`,
67
- "local-engine.version-invalid"
66
+ `${message} This deploy runs the latest Xano Engine and the field is left as written \u2014 set it to a version like "v0.1.5", or run \`xanosdk local update\` to pin one.`,
67
+ "local.version-invalid"
68
68
  )
69
69
  });
70
70
  if (isUnusablePin(pin)) {
@@ -72,8 +72,8 @@ async function chooseLocalEngine(flagValue, dir, machineOutput) {
72
72
  }
73
73
  if (pin === void 0 && resolveProjectEntry(dir) === void 0) {
74
74
  warn(
75
- `No package.json in ${dir}, and it is not a Xano SDK project, so the local engine was not pinned \u2014 this deploy runs the latest engine.`,
76
- "local-engine.not-pinned"
75
+ `No package.json in ${dir}, and it is not a Xano SDK project, so the Xano Engine was not pinned \u2014 this deploy runs the latest engine.`,
76
+ "local.not-pinned"
77
77
  );
78
78
  return { source: resolveEngineSource(void 0), pinWrite: void 0, pin: "none" };
79
79
  }
@@ -87,7 +87,7 @@ async function chooseLocalEngine(flagValue, dir, machineOutput) {
87
87
  };
88
88
  const platform = resolveEnginePlatform();
89
89
  if (platform === void 0) return keep;
90
- const check = await import("./local-engine-update-check-R5SPDVEJ.js");
90
+ const check = await import("./local-engine-update-check-LVX4HBBI.js");
91
91
  const latest = await check.latestKnownVersion({ platform });
92
92
  if (latest === void 0) return keep;
93
93
  const decision = check.decideUpdate({
@@ -101,10 +101,10 @@ async function chooseLocalEngine(flagValue, dir, machineOutput) {
101
101
  info(check.updateNoticeText(pin, latest));
102
102
  return keep;
103
103
  }
104
- const { confirm } = await import("./prompt-5GUQTCSP.js");
104
+ const { confirm } = await import("./prompt-U37K5RPQ.js");
105
105
  const yes = await confirm(check.updatePromptText(pin, latest), {
106
- flag: "`xanosdk local-engine update`",
107
- refusal: { details: { updated: false }, rerun: "xanosdk local-engine update" }
106
+ flag: "`xanosdk local update`",
107
+ refusal: { details: { updated: false }, rerun: "xanosdk local update" }
108
108
  });
109
109
  if (!yes) {
110
110
  check.recordDeclined(dir, latest);
@@ -126,7 +126,7 @@ function explainOverrideFailure(choice, err) {
126
126
  const missing = err instanceof EngineReleaseNotFoundError || (message?.includes("has no archive for") ?? false);
127
127
  if (override !== "flag" && override !== "env" || message === void 0 || !missing) throw err;
128
128
  const what = message.split("\n")[0];
129
- const remedy = override === "flag" ? "Check the version, or drop it: `xanosdk deploy --local-engine` (bare) runs this project's pinned engine, and `xanosdk local-engine update` moves that pin to the latest release." : `Check ${LOCAL_ENGINE_OVERRIDE_ENV}, or unset it to run this project's pinned engine.`;
129
+ const remedy = override === "flag" ? "Check the version, or drop it: `xanosdk deploy --local` (bare) runs this project's pinned engine, and `xanosdk local update` moves that pin to the latest release." : `Check ${LOCAL_ENGINE_OVERRIDE_ENV}, or unset it to run this project's pinned engine.`;
130
130
  const text = `${what}
131
131
  ${remedy}`;
132
132
  throw err instanceof EngineReleaseNotFoundError ? new EngineReleaseNotFoundError(text, { cause: err }) : new Error(text, { cause: err });
@@ -156,10 +156,10 @@ function announceLocalEnginePin(ctx) {
156
156
  info(pinWrittenText({ ...written, moved: choice.pinWrite === "move" }));
157
157
  return;
158
158
  }
159
- if (failure !== void 0) warn(`The local engine version was not pinned: ${failure}`, "local-engine.not-pinned");
159
+ if (failure !== void 0) warn(`The Xano Engine version was not pinned: ${failure}`, "local.not-pinned");
160
160
  }
161
161
  function pinWrittenText(written) {
162
- const what = written.created ? `Created ${written.path} to pin local engine ${written.version}` : `${written.moved ? "Moved the local engine pin to" : "Pinned local engine"} ${written.version} in ${written.path}`;
162
+ const what = written.created ? `Created ${written.path} to pin Xano Engine ${written.version}` : `${written.moved ? "Moved the Xano Engine pin to" : "Pinned Xano Engine"} ${written.version} in ${written.path}`;
163
163
  return `${what} \u2014 commit it so everyone on this project runs the same engine.`;
164
164
  }
165
165
 
@@ -170,4 +170,4 @@ export {
170
170
  pinAfterAcquire,
171
171
  pinWrittenText
172
172
  };
173
- //# sourceMappingURL=chunk-L2GLOJAO.js.map
173
+ //# sourceMappingURL=chunk-GW5RHGOB.js.map
@@ -10,7 +10,7 @@ import {
10
10
  safeHttpFailure,
11
11
  statusLabel,
12
12
  writeStatusAftermath
13
- } from "./chunk-MN2PB6WB.js";
13
+ } from "./chunk-YR2I5HGE.js";
14
14
 
15
15
  // src/deploy/release.ts
16
16
  var TIMEOUT_MS = 3e4;
@@ -405,4 +405,4 @@ export {
405
405
  exportRelease,
406
406
  deleteRelease
407
407
  };
408
- //# sourceMappingURL=chunk-A6QTTJUI.js.map
408
+ //# sourceMappingURL=chunk-GWTFI3GA.js.map
@@ -3,11 +3,11 @@ import {
3
3
  reachableLines,
4
4
  readReachableWorkspaces,
5
5
  workspaceIdFix
6
- } from "./chunk-QAEQGT5I.js";
6
+ } from "./chunk-2WBH5HUY.js";
7
7
  import {
8
8
  credentialRejected,
9
9
  getAccessToken
10
- } from "./chunk-LUTMOHOW.js";
10
+ } from "./chunk-YGLMRH5U.js";
11
11
  import {
12
12
  CREDENTIAL_FILE_VERSION,
13
13
  UPGRADE_REMEDY,
@@ -15,16 +15,16 @@ import {
15
15
  loginCommand,
16
16
  readCredentialFile,
17
17
  resolveAuthFilePath
18
- } from "./chunk-I2BGYNHD.js";
18
+ } from "./chunk-M5CSVB23.js";
19
19
  import {
20
20
  fetchOrExplain,
21
21
  httpFailure,
22
22
  parseJsonAnswer
23
- } from "./chunk-MN2PB6WB.js";
23
+ } from "./chunk-YR2I5HGE.js";
24
24
  import {
25
25
  profileSourceLabel,
26
26
  selectionDocument
27
- } from "./chunk-QXTKSOFI.js";
27
+ } from "./chunk-MF4W6FHU.js";
28
28
  import {
29
29
  formatFields,
30
30
  isMachineOutput,
@@ -32,7 +32,7 @@ import {
32
32
  stdoutStyle,
33
33
  warn,
34
34
  writeJson
35
- } from "./chunk-SBR2WZXG.js";
35
+ } from "./chunk-D7BUMOKU.js";
36
36
  import {
37
37
  shellQuote
38
38
  } from "./chunk-5ZSO4T2G.js";
@@ -165,7 +165,7 @@ function prettyProfile(p) {
165
165
  }
166
166
  async function runWhoamiCommand(args) {
167
167
  const profile = await fetchProfile(args).catch(async (err) => {
168
- const { unansweredRead } = await import("./source-resolve-DMDZVPMM.js");
168
+ const { unansweredRead } = await import("./source-resolve-MKLNYFWG.js");
169
169
  throw unansweredRead(err, "read the signed-in user", "workspace");
170
170
  });
171
171
  if (isMachineOutput(args)) {
@@ -185,4 +185,4 @@ export {
185
185
  profileValue,
186
186
  runWhoamiCommand
187
187
  };
188
- //# sourceMappingURL=chunk-MCTIKRMN.js.map
188
+ //# sourceMappingURL=chunk-GZHLCUZ6.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  backendDirFor,
3
3
  backendDirIn
4
- } from "./chunk-E6H5ZEV3.js";
4
+ } from "./chunk-TTEIDD5Q.js";
5
5
  import {
6
6
  XANO_DIR
7
- } from "./chunk-HUSH7LRI.js";
7
+ } from "./chunk-LL7SGTRC.js";
8
8
  import {
9
9
  projectRootFrom
10
10
  } from "./chunk-ROY4YAEQ.js";
@@ -12,7 +12,7 @@ import {
12
12
  LocalFileNotFoundError,
13
13
  UsageError,
14
14
  displayPath
15
- } from "./chunk-SBR2WZXG.js";
15
+ } from "./chunk-D7BUMOKU.js";
16
16
  import {
17
17
  isRepresentableName
18
18
  } from "./chunk-GSGDWJB5.js";
@@ -242,4 +242,4 @@ export {
242
242
  namesInEnvExample,
243
243
  renderWorkspaceEnvFile
244
244
  };
245
- //# sourceMappingURL=chunk-664LSWE5.js.map
245
+ //# sourceMappingURL=chunk-HCG7NDIL.js.map
@@ -2,10 +2,10 @@ import {
2
2
  keptDuplicates,
3
3
  replacedRegistrations,
4
4
  reportSuperseded
5
- } from "./chunk-IVKRT476.js";
5
+ } from "./chunk-SPITRSOF.js";
6
6
  import {
7
7
  rerenderEnvExample
8
- } from "./chunk-6VBTPV2Y.js";
8
+ } from "./chunk-U35MTOXQ.js";
9
9
  import {
10
10
  carriedSeedRows,
11
11
  decodeBundle,
@@ -17,48 +17,58 @@ import {
17
17
  verifyPulledTree,
18
18
  withSourceIdentities,
19
19
  writeDocumentationTokens
20
- } from "./chunk-ESZ2FF57.js";
20
+ } from "./chunk-RIN4YY34.js";
21
+ import {
22
+ ROUTES_MANIFEST_BASENAME
23
+ } from "./chunk-LBJA7IEM.js";
21
24
  import {
22
25
  confirm
23
- } from "./chunk-4APOHK7Y.js";
26
+ } from "./chunk-JXVJGF3Y.js";
27
+ import {
28
+ recordSync,
29
+ syncBranchLabel
30
+ } from "./chunk-NDWVJ2QZ.js";
31
+ import {
32
+ syncDigests
33
+ } from "./chunk-JI3BLXWQ.js";
24
34
  import {
25
35
  fetchSourceArchive
26
- } from "./chunk-VRVKNY4A.js";
36
+ } from "./chunk-Z4ZGTCCD.js";
27
37
  import {
28
38
  decodeWorkspaceArchive,
29
39
  encodeWorkspaceArchive
30
40
  } from "./chunk-3DRXWLJ5.js";
31
41
  import {
32
42
  ensureSecretPathGitignored
33
- } from "./chunk-Y2ZLKBM6.js";
43
+ } from "./chunk-UD2Z7K6W.js";
34
44
  import {
35
45
  readVersion,
36
46
  refreshAgentGuidance
37
- } from "./chunk-WYEQFD6A.js";
47
+ } from "./chunk-XFBGXB7X.js";
38
48
  import {
39
49
  WORKSPACE_ENV_BASENAME,
40
50
  WORKSPACE_ENV_EXAMPLE_BASENAME,
41
51
  namesInEnvExample,
42
52
  readWorkspaceEnvFile
43
- } from "./chunk-664LSWE5.js";
53
+ } from "./chunk-HCG7NDIL.js";
44
54
  import {
45
55
  memoCredential,
46
56
  refuseProfileForLocal,
47
57
  selectBackend
48
- } from "./chunk-LIVN53UV.js";
58
+ } from "./chunk-I3VHW6XM.js";
49
59
  import {
50
60
  getAccessToken
51
- } from "./chunk-LUTMOHOW.js";
61
+ } from "./chunk-YGLMRH5U.js";
52
62
  import {
53
63
  requireBackendSlot
54
- } from "./chunk-UDE5C2XN.js";
64
+ } from "./chunk-VDHA5SSQ.js";
55
65
  import {
56
66
  contextFlags
57
- } from "./chunk-SEUCZZCP.js";
67
+ } from "./chunk-N5I37JFB.js";
58
68
  import {
59
69
  backendDirIn,
60
70
  resolveBackendDir
61
- } from "./chunk-E6H5ZEV3.js";
71
+ } from "./chunk-TTEIDD5Q.js";
62
72
  import {
63
73
  CODEGEN_MARKER,
64
74
  DECODE_MARKER,
@@ -73,15 +83,15 @@ import {
73
83
  readDecodeRecord,
74
84
  removeEmptiedDirs,
75
85
  removeFiles
76
- } from "./chunk-HUSH7LRI.js";
86
+ } from "./chunk-LL7SGTRC.js";
77
87
  import {
78
88
  readLockFile,
79
89
  writeLockFile
80
- } from "./chunk-VD32O6KZ.js";
90
+ } from "./chunk-CJDPSCMX.js";
81
91
  import {
82
92
  decodeMarkerHead,
83
93
  decodeMarkerWith
84
- } from "./chunk-UCQ2VUTG.js";
94
+ } from "./chunk-M6ZFSTIZ.js";
85
95
  import {
86
96
  CliError,
87
97
  UsageError,
@@ -94,7 +104,7 @@ import {
94
104
  terminalText,
95
105
  warn,
96
106
  writeJson
97
- } from "./chunk-SBR2WZXG.js";
107
+ } from "./chunk-D7BUMOKU.js";
98
108
  import {
99
109
  WORKSPACE_SECRETS_BASENAME
100
110
  } from "./chunk-3JDU4VRL.js";
@@ -104,7 +114,7 @@ import {
104
114
  lockKey,
105
115
  lockNameForObject,
106
116
  withObjects
107
- } from "./chunk-OOGXZL7Z.js";
117
+ } from "./chunk-5KJBWIDZ.js";
108
118
  import {
109
119
  shellQuote
110
120
  } from "./chunk-5ZSO4T2G.js";
@@ -299,15 +309,16 @@ async function runPullCommand(args) {
299
309
  step(`Reading ${raw}`);
300
310
  const fetched = args.branch !== void 0 ? { archive: encodeWorkspaceArchive(JSON.stringify(await fetchWorkspaceBundle(await credential(), args.branch))), provenance: "workspace", label: `workspace branch "${args.branch.trim()}"` } : await fetchSourceArchive(credential, raw, cwd);
301
311
  const bundle = decodeWorkspaceArchive(fetched.archive);
302
- const keptName = source.kind === "workspace" || source.kind === "local-engine" ? void 0 : projectWorkspaceName(join(cwd, backendDir, "index.ts"));
312
+ const keptName = source.kind === "workspace" || source.kind === "local" ? void 0 : projectWorkspaceName(join(cwd, backendDir, "index.ts"));
303
313
  const project = decodeBundle(bundle, {
304
314
  secretsFile: `${backendDir}/${WORKSPACE_SECRETS_BASENAME}`,
305
- writesSecrets: args.noSecrets !== true,
306
315
  ...keptName !== void 0 ? { workspaceName: keptName } : {}
307
316
  });
308
317
  refuseDuplicateSourceGuids(project);
309
318
  const seedRows = carriedSeedRows(fetched.archive, bundle.payload);
310
- const placed = placeGeneratedFiles(project, backendDir);
319
+ const { discoverManifestModules } = await import("./routes-manifest-file-UALYSZLY.js");
320
+ const modules = await discoverManifestModules(cwd, join(cwd, backendDir, ROUTES_MANIFEST_BASENAME), readVersion());
321
+ const placed = placeGeneratedFiles(project, backendDir, void 0, void 0, modules);
311
322
  const settings = source.kind === "release" ? keepProjectSettings(placed, backendDir, join(cwd, backendDir)) : { files: placed, kept: false, lost: [], from: WORKSPACE_SETTINGS_FILE };
312
323
  const files = settings.files;
313
324
  const dirAbs = join(cwd, backendDir);
@@ -320,6 +331,12 @@ async function runPullCommand(args) {
320
331
  const lockPath = join(cwd, backendDir, "xano.lock");
321
332
  const lock = existsSync(lockPath) ? readLockFile(lockPath) : void 0;
322
333
  const reconciliation = lock === void 0 ? void 0 : reconcileLock(lock, pulledIdentities(bundle.payload));
334
+ const syncTarget = source.kind === "workspace" && lock !== void 0 ? await (async () => {
335
+ const auth = await credential();
336
+ const branch = await syncBranchLabel(auth, args.branch);
337
+ return branch === void 0 ? void 0 : { instance: auth.instance, workspaceId: auth.workspaceId, branch };
338
+ })() : void 0;
339
+ const recordPullSync = () => syncTarget === void 0 ? null : recordSync({ lockPath, target: syncTarget, digests: syncDigests({ held: [bundle] }), by: "pull", complete: true });
323
340
  if (reconciliation?.disjoint === true && args.yes !== true) {
324
341
  throw await needsYes(
325
342
  args,
@@ -333,7 +350,7 @@ async function runPullCommand(args) {
333
350
  const duplicates = keptDuplicates(dirAbs, incoming, plan.kept, backendDir);
334
351
  if (upToDate) {
335
352
  await refreshAgentGuidance({ ...args, file: join(cwd, backendDir, "index.ts") });
336
- finishUpToDate(cwd, backendDir, project, args, fetched, lock, lockPath, reconciliation, bundle.payload, files.length, plan.kept, settingsReport(settings, backendDir), seedRows, duplicates);
353
+ finishUpToDate(cwd, backendDir, project, args, fetched, lock, lockPath, reconciliation, bundle.payload, files.length, plan.kept, settingsReport(settings, backendDir), seedRows, duplicates, recordPullSync);
337
354
  return;
338
355
  }
339
356
  const cleanliness = backendDirCleanliness(cwd, backendDir);
@@ -420,7 +437,7 @@ async function runPullCommand(args) {
420
437
  );
421
438
  }
422
439
  if (args.yes !== true) {
423
- const { yesRerun } = await import("./retry-command-Y5YJGOH3.js");
440
+ const { yesRerun } = await import("./retry-command-QJ57WVW7.js");
424
441
  const { rerun, note } = yesRerun(args, "pull");
425
442
  const ok = await confirm(`Replace ${backendDir}/ from ${fetched.label}?`, {
426
443
  flag: "--yes",
@@ -498,6 +515,7 @@ async function runPullCommand(args) {
498
515
  );
499
516
  }
500
517
  }
518
+ const syncBaseline = verified === false ? null : recordPullSync();
501
519
  if (isMachineOutput(args)) {
502
520
  writeJson({
503
521
  source: fetched.provenance,
@@ -517,7 +535,8 @@ async function runPullCommand(args) {
517
535
  droppedSeeds,
518
536
  keptDuplicates: duplicates,
519
537
  modulesReplaced,
520
- verified
538
+ verified,
539
+ syncBaseline
521
540
  });
522
541
  if (verified === false) throw pullVerifyFailed(cwd, backendDir);
523
542
  success(`Pulled ${fetched.label}`);
@@ -552,11 +571,12 @@ function warnTsxNeeded(entry, written, backendDir, resolvable = tsxResolvable) {
552
571
  "pull.tsx-needed"
553
572
  );
554
573
  }
555
- function finishUpToDate(cwd, backendDir, project, args, fetched, lock, lockPath, reconciliation, payload, fileCount, kept, workspaceSettings, seedRows, duplicates) {
574
+ function finishUpToDate(cwd, backendDir, project, args, fetched, lock, lockPath, reconciliation, payload, fileCount, kept, workspaceSettings, seedRows, duplicates, recordPullSync) {
556
575
  reportSeedRows(seedRows, fetched.label, fetched.provenance, backendDir, contextFlags(args));
557
576
  ensureSecretPathGitignored(join(cwd, backendDir, WORKSPACE_ENV_BASENAME));
558
577
  writeDocumentationTokens(cwd, project.documentationTokens, args, fetched.label, join(cwd, backendDir, WORKSPACE_SECRETS_BASENAME));
559
578
  if (lock !== void 0 && reconciliation !== void 0) writeLockFile(lockPath, pulledLock(lock, reconciliation, payload));
579
+ const syncBaseline = recordPullSync();
560
580
  if (isMachineOutput(args)) {
561
581
  writeJson({
562
582
  source: fetched.provenance,
@@ -579,7 +599,8 @@ function finishUpToDate(cwd, backendDir, project, args, fetched, lock, lockPath,
579
599
  keptDuplicates: duplicates,
580
600
  modulesReplaced: [],
581
601
  // Nothing was written, so there is nothing new to check.
582
- verified: null
602
+ verified: null,
603
+ syncBaseline
583
604
  });
584
605
  }
585
606
  success(`${backendDir}/ is already up to date with ${fetched.label} \u2014 nothing to replace.`);
@@ -887,11 +908,11 @@ function envFillRemedy(kind, args, one = false) {
887
908
  return `a release carries no env values, so fill ${them} in by hand, or read ${them} from a running backend with \`xanosdk env pull --from <backend>\`.`;
888
909
  }
889
910
  const from = raw === void 0 ? "" : ` --from ${shellQuote(raw)}`;
890
- const flags = kind === "local-engine" ? "" : contextFlags(args);
911
+ const flags = kind === "local" ? "" : contextFlags(args);
891
912
  return `fill ${them} in, or run \`xanosdk env pull${from}${flags}\`.`;
892
913
  }
893
914
  async function needsYes(args, head, why, details) {
894
- const { yesRerun } = await import("./retry-command-Y5YJGOH3.js");
915
+ const { yesRerun } = await import("./retry-command-QJ57WVW7.js");
895
916
  const { rerun, note } = yesRerun(args, "pull");
896
917
  return new CliError("SDK_USAGE", `${head} Re-run as \`${rerun}\` ${why}.${note}`, {
897
918
  exitCode: 1,
@@ -920,4 +941,4 @@ export {
920
941
  projectWorkspaceName,
921
942
  envFillRemedy
922
943
  };
923
- //# sourceMappingURL=chunk-7PMVIHB3.js.map
944
+ //# sourceMappingURL=chunk-I3H3HCPY.js.map
@@ -1,34 +1,34 @@
1
1
  import {
2
2
  readDeployed
3
- } from "./chunk-HSEQYBDO.js";
3
+ } from "./chunk-WZHLMU6T.js";
4
4
  import {
5
5
  isProjectDir
6
- } from "./chunk-T4DUFQ2S.js";
6
+ } from "./chunk-CCU5CCRX.js";
7
7
  import {
8
8
  LookupFailedError,
9
9
  SourceError,
10
10
  resolveSource
11
- } from "./chunk-2AUV6NXK.js";
11
+ } from "./chunk-3II44CUJ.js";
12
12
  import {
13
13
  NotSignedInError
14
- } from "./chunk-LUTMOHOW.js";
14
+ } from "./chunk-YGLMRH5U.js";
15
15
  import {
16
16
  otherCredentialRefusal
17
- } from "./chunk-3P3HXN76.js";
17
+ } from "./chunk-ITC2R2OT.js";
18
18
  import {
19
19
  getEngineRecord
20
- } from "./chunk-WL2DSNJV.js";
20
+ } from "./chunk-Q22BMRPF.js";
21
21
  import {
22
22
  commandPath,
23
23
  parseSlot,
24
24
  refusedKind,
25
25
  slotValueMissing
26
- } from "./chunk-UDE5C2XN.js";
26
+ } from "./chunk-VDHA5SSQ.js";
27
27
  import {
28
28
  getEnvironment,
29
29
  readEphemeralState,
30
30
  unreadableEphemeralState
31
- } from "./chunk-UKUIUS3E.js";
31
+ } from "./chunk-U6MTGB46.js";
32
32
  import {
33
33
  ENV_CREDENTIAL_VARS,
34
34
  ORIGIN_READ_ONLY_BY_REFRESH,
@@ -36,10 +36,10 @@ import {
36
36
  credentialFileFlagFor,
37
37
  recordedByEnvCredential,
38
38
  typedCredentialFlags
39
- } from "./chunk-SEUCZZCP.js";
39
+ } from "./chunk-N5I37JFB.js";
40
40
  import {
41
41
  backendDirIn
42
- } from "./chunk-E6H5ZEV3.js";
42
+ } from "./chunk-TTEIDD5Q.js";
43
43
  import {
44
44
  globalAuthFilePath,
45
45
  localAuthFilePath,
@@ -47,13 +47,13 @@ import {
47
47
  profileAddCommand,
48
48
  readCredentialFile,
49
49
  recordedCredentialPath
50
- } from "./chunk-I2BGYNHD.js";
50
+ } from "./chunk-M5CSVB23.js";
51
51
  import {
52
52
  UsageError,
53
53
  displayPath,
54
54
  pastePath,
55
55
  sourceSpellings
56
- } from "./chunk-SBR2WZXG.js";
56
+ } from "./chunk-D7BUMOKU.js";
57
57
  import {
58
58
  shellQuote
59
59
  } from "./chunk-5ZSO4T2G.js";
@@ -86,7 +86,7 @@ async function selectBackend(slot, raw, ctx) {
86
86
  }
87
87
  const decided = decide({ cwd, pointer, state, scope, engineRecorded: getEngineRecord(cwd, env) !== void 0 }, slot);
88
88
  if ("refusal" in decided) {
89
- const { reachableFirst } = await import("./env-target-PO3MOLH5.js");
89
+ const { reachableFirst } = await import("./env-target-FZROWYFS.js");
90
90
  throw await reachableFirst(decided.refusal, scope);
91
91
  }
92
92
  refuseUnservable(slot, decided.kind);
@@ -98,7 +98,7 @@ async function resolveBackend(slot, raw, ctx) {
98
98
  if (source.kind === "file") {
99
99
  throw new Error(`Internal: \`${commandPath(slot.command, slot.subcommand)}\` resolved a bundle file; read it before resolving a backend.`);
100
100
  }
101
- if (source.kind === "local-engine") refuseProfileForLocal(ctx.profile, [source.kind], slot);
101
+ if (source.kind === "local") refuseProfileForLocal(ctx.profile, [source.kind], slot);
102
102
  return resolveSource(source, credential, { ...ctx.deps, cwd: ctx.deps?.cwd ?? process.cwd() }).catch((err) => {
103
103
  throw lookupRetry(err, slot);
104
104
  });
@@ -108,9 +108,9 @@ function lookupRetry(err, slot) {
108
108
  return err.withRerun(`xanosdk ${commandPath(slot.command, slot.subcommand)} \u2026`, " as you ran it");
109
109
  }
110
110
  function refuseProfileForLocal(profile, kinds, slot, flags = typedCredentialFlags()) {
111
- if (kinds.some((k) => k !== "local-engine")) return;
112
- const why = "and a local engine takes none \u2014 it is reached with the engine's own bearer.";
113
- const or = slot === void 0 ? "or drop `--local-engine` to deploy to a hosted backend." : `or ${nameOne(slot, "a hosted backend", true)}.`;
111
+ if (kinds.some((k) => k !== "local")) return;
112
+ const why = "and a Xano Engine takes none \u2014 it is reached with the engine's own bearer.";
113
+ const or = slot === void 0 ? "or add `--ephemeral` to deploy to a hosted backend." : `or ${nameOne(slot, "a hosted backend", true)}.`;
114
114
  if (profile !== void 0) {
115
115
  throw new UsageError(`\`--profile ${profile}\` selects a Xano credential, ${why} Drop \`--profile\`, ${or}`, hintOpts(slot));
116
116
  }
@@ -118,7 +118,7 @@ function refuseProfileForLocal(profile, kinds, slot, flags = typedCredentialFlag
118
118
  throw new UsageError(`\`--config ${flags.authFile}\` names a Xano credential file, ${why} Drop \`--config\`, ${or}`, hintOpts(slot));
119
119
  }
120
120
  if (flags.local === true) {
121
- throw new UsageError(`\`--local\` selects the project-local Xano credential file, ${why} Drop \`--local\`, ${or}`, hintOpts(slot));
121
+ throw new UsageError(`\`--local-auth\` selects the project-local Xano credential file, ${why} Drop \`--local-auth\`, ${or}`, hintOpts(slot));
122
122
  }
123
123
  if (flags.authHost !== void 0) {
124
124
  throw new UsageError(`\`--origin\` names a Xano sign-in server, ${why} ${ORIGIN_READ_ONLY_BY_REFRESH}`, hintOpts(slot));
@@ -141,15 +141,15 @@ function readTrackedBackend(opts) {
141
141
  function decide(facts, slot) {
142
142
  const { cwd, pointer, state, scope, engineRecorded } = facts;
143
143
  const ephemeralHere = scope !== void 0 && getEnvironment(state, scope) !== void 0;
144
- if (pointer === "local-engine") {
145
- return engineRecorded ? { kind: "local-engine", via: "pointer" } : { refusal: noEngineRecorded(slot) };
144
+ if (pointer === "local") {
145
+ return engineRecorded ? { kind: "local", via: "pointer" } : { refusal: noEngineRecorded(slot) };
146
146
  }
147
147
  if (pointer === "ephemeral") {
148
148
  if (scope === void 0) return { refusal: signedOut(slot, state) };
149
149
  return ephemeralHere ? { kind: "ephemeral", via: "pointer" } : { refusal: untracked(cwd, state, scope, slot, true) };
150
150
  }
151
151
  if (ephemeralHere) return { kind: "ephemeral", via: "fallback" };
152
- if (engineRecorded) return { kind: "local-engine", via: "fallback" };
152
+ if (engineRecorded) return { kind: "local", via: "fallback" };
153
153
  if (scope !== void 0) return { refusal: untracked(cwd, state, scope, slot, false) };
154
154
  return { refusal: nothingTracked(cwd, slot, Object.keys(state.environments).length > 0, state) };
155
155
  }
@@ -173,7 +173,7 @@ function refuseUnservable(slot, kind) {
173
173
  }
174
174
  var KIND_PHRASE = {
175
175
  ephemeral: "an ephemeral",
176
- "local-engine": "a local engine"
176
+ "local": "a Xano Engine"
177
177
  };
178
178
  function hintOpts(slot) {
179
179
  if (slot === void 0) return {};
@@ -184,7 +184,7 @@ function hintOpts(slot) {
184
184
  function nameOne(slot, what = "a backend", hostedOnly = false) {
185
185
  if (slot === void 0) return `name ${what} on the command explicitly`;
186
186
  const spellings = sourceSpellings(
187
- hostedOnly ? slot.selector.accepted.filter((k) => k !== "local-engine" && k !== "file") : slot.selector.accepted
187
+ hostedOnly ? slot.selector.accepted.filter((k) => k !== "local" && k !== "file") : slot.selector.accepted
188
188
  );
189
189
  if (!slot.spelling.startsWith("--")) {
190
190
  const verb = slot.subcommand === void 0 ? slot.command : `${slot.command} ${slot.subcommand}`;
@@ -195,8 +195,8 @@ function nameOne(slot, what = "a backend", hostedOnly = false) {
195
195
  function bothDeploys(cwd) {
196
196
  const flags = contextFlags();
197
197
  const entry = cwd === void 0 ? "" : soleNestedEntry(cwd);
198
- const hosted = /(^| )--local( |$)/.test(flags) ? "an ephemeral, with the project-local credential" : "an ephemeral";
199
- return `\`xanosdk deploy${entry}${flags}\` (${hosted}) or \`xanosdk deploy${entry} --local-engine\` (a local engine on this machine)`;
198
+ const hosted = /(^| )--local-auth( |$)/.test(flags) ? "an ephemeral, with the project-local credential" : "an ephemeral";
199
+ return `\`xanosdk deploy${entry} --local\` (a Xano Engine on this machine) or \`xanosdk deploy${entry} --ephemeral${flags}\` (${hosted})`;
200
200
  }
201
201
  function untracked(cwd, state, scope, slot, pointer) {
202
202
  const other = otherCredentialRefusal(state, scope, `or ${nameOne(slot)}`, hintOpts(slot));
@@ -211,7 +211,7 @@ function untracked(cwd, state, scope, slot, pointer) {
211
211
  );
212
212
  }
213
213
  return new SourceError(
214
- `This project last deployed to an ephemeral, but the last one is gone (deleted or expired). Run \`xanosdk deploy${contextFlags()}\` to create one \u2014 or \`xanosdk deploy --local-engine\` for a local engine \u2014 or ${nameOne(slot)}.`,
214
+ `This project last deployed to an ephemeral, but the last one is gone (deleted or expired). Run \`xanosdk deploy --ephemeral${contextFlags()}\` to create one \u2014 or \`xanosdk deploy --local\` for a Xano Engine \u2014 or ${nameOne(slot)}.`,
215
215
  "gone",
216
216
  "ephemeral"
217
217
  );
@@ -234,7 +234,7 @@ function nothingTracked(cwd, slot, ephemeralRecordedElsewhere, state) {
234
234
  const flags = state === void 0 ? void 0 : recordedCredentialFlags(state);
235
235
  const signIn = !ephemeralRecordedElsewhere ? "" : flags !== void 0 ? flags.env ? ` An ephemeral is recorded under ${flags.who} \u2014 set ${ENV_CREDENTIAL_VARS} for that workspace again to reach it.` : flags.signIn ? ` An ephemeral is recorded under ${flags.who}, which no credential file holds \u2014 add it again with ${flags.flags} to reach it.` : ` An ephemeral is recorded under ${flags.who}, and no credential is signed in \u2014 re-run with \`${flags.flags}\` to reach it.` : ` An ephemeral is recorded, but no credential is signed in to look it up \u2014 \`${runLogin()}\` reaches it.`;
236
236
  return new NothingTrackedError(
237
- `This project has no backend to default to: it has not deployed to an ephemeral under this credential or to a local engine from this directory.${signIn} Deploy first with ${bothDeploys(cwd)}, or ${nameOne(slot)}.`,
237
+ `This project has no backend to default to: it has not deployed to an ephemeral under this credential or to a Xano Engine from this directory.${signIn} Deploy first with ${bothDeploys(cwd)}, or ${nameOne(slot)}.`,
238
238
  hintOpts(slot)
239
239
  );
240
240
  }
@@ -295,11 +295,11 @@ function nestedTrackedBackends(cwd) {
295
295
  return found;
296
296
  }
297
297
  function noEngineRecorded(slot) {
298
- const named = slot === void 0 ? "name one on the command" : slot.spelling.startsWith("--") ? `name one with \`${slot.spelling} local-engine:<name>\`` : `name one: \`xanosdk ${slot.subcommand === void 0 ? slot.command : `${slot.command} ${slot.subcommand}`} local-engine:<name>\``;
298
+ const named = slot === void 0 ? "name one on the command" : slot.spelling.startsWith("--") ? `name one with \`${slot.spelling} local:<name>\`` : `name one: \`xanosdk ${slot.subcommand === void 0 ? slot.command : `${slot.command} ${slot.subcommand}`} local:<name>\``;
299
299
  return new SourceError(
300
- `This project last deployed to a local engine, but no engine is recorded for this directory. Run \`xanosdk deploy --local-engine\` to stand one up, or \`xanosdk local-engine list\` to see what is running and ${named}. \`xanosdk deploy${contextFlags()}\` still deploys to an ephemeral.`,
300
+ `This project last deployed to a Xano Engine, but no engine is recorded for this directory. Run \`xanosdk deploy --local\` to stand one up, or \`xanosdk local list\` to see what is running and ${named}. \`xanosdk deploy --ephemeral${contextFlags()}\` still deploys to an ephemeral.`,
301
301
  "gone",
302
- "local-engine"
302
+ "local"
303
303
  );
304
304
  }
305
305
  function signedOut(slot, state) {
@@ -368,4 +368,4 @@ export {
368
368
  NothingTrackedError,
369
369
  nestedBackendEntries
370
370
  };
371
- //# sourceMappingURL=chunk-LIVN53UV.js.map
371
+ //# sourceMappingURL=chunk-I3VHW6XM.js.map