@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,6 +1,6 @@
1
1
  import {
2
2
  classifyNpmFailure
3
- } from "./chunk-ZG7E72VI.js";
3
+ } from "./chunk-YYC2DZMG.js";
4
4
  import {
5
5
  condenseNpmError,
6
6
  runNpmQuiet,
@@ -8,17 +8,18 @@ import {
8
8
  } from "./chunk-ZFDZKNGG.js";
9
9
  import {
10
10
  detectInstallRoot
11
- } from "./chunk-WRBKLYSJ.js";
11
+ } from "./chunk-DNBP4GJN.js";
12
12
  import {
13
13
  decodeDigest,
14
14
  reactPreset
15
- } from "./chunk-UCQ2VUTG.js";
15
+ } from "./chunk-M6ZFSTIZ.js";
16
16
  import {
17
17
  blockVersion,
18
18
  composeBlock,
19
19
  findBlock,
20
+ htmlDialect,
20
21
  upsertBlock
21
- } from "./chunk-DGWHAVRG.js";
22
+ } from "./chunk-3EDSPMXN.js";
22
23
  import {
23
24
  detail,
24
25
  projectFileCli,
@@ -28,7 +29,7 @@ import {
28
29
  success,
29
30
  warn,
30
31
  withSpinner
31
- } from "./chunk-SBR2WZXG.js";
32
+ } from "./chunk-D7BUMOKU.js";
32
33
  import {
33
34
  defaultThemeChoice,
34
35
  themeGuidanceSection
@@ -58,6 +59,8 @@ The published types and JSDoc (\`node_modules/@xano/sdk/**/*.d.ts\`) are that
58
59
  same surface with the compiler attached. Author against those signatures. Do
59
60
  **not** invent an API that isn't there \u2014 if the types don't offer something,
60
61
  make your best typed guess from the exported signatures and note the gap.`;
62
+ var README_GUIDANCE = `- \`README.md\` \u2014 for a visitor to the repository: what the app does, how to run it, and
63
+ what it is built on. Its \`## Built with\` footer is a managed block this SDK refreshes.`;
61
64
  var LOCK_GUIDANCE = `Object identity derives from \`(type, name)\`, so a rename
62
65
  changes an object's guid and the engine DELETES and recreates it rather than
63
66
  renaming in place. \`xano/xano.lock\` freezes each guid and each API group's
@@ -98,14 +101,14 @@ backend reads with \`env("NAME")\`; the VALUES live in \`xano/.env\`, which is g
98
101
  - On Windows there is no ACL equivalent to the 0600 the file is created with, the
99
102
  same exposure \`.xano/auth.json\` already carries.`;
100
103
  var BACKENDS_GUIDANCE = `- A bare command (\`npm run xano:test\`, \`npx xanosdk env set\`, \`npx xanosdk tables\`,
101
- \`npx xanosdk impersonate\`) reaches the ephemeral or local engine this project last
104
+ \`npx xanosdk impersonate\`) reaches the ephemeral or Xano Engine this project last
102
105
  deployed to, never the workspace; the grammar that names another is **Backends**
103
- in \`node_modules/@xano/sdk/llms.txt\`. After a local-engine deploy, which
104
- \`publish\` does not reach and which cannot be released from, publish with
105
- \`npm run xano:deploy:frontend -- --to ephemeral\` (or add \`--static <dir>\` to the
106
- local deploy to have the engine serve the build) and cut with
106
+ in \`node_modules/@xano/sdk/llms.txt\`. After a local deploy,
107
+ \`npm run xano:deploy:frontend\` publishes the build to the engine. A Xano Engine
108
+ cannot be released from, so stand the code up with \`npm run xano:deploy:ephemeral\`
109
+ and cut with
107
110
  \`npx xanosdk release create <name> --from ephemeral\`.
108
- - \`npm run xano:deploy:local-engine\` and every bare command after it need no Xano
111
+ - \`npm run xano:deploy\` and every bare command after it need no Xano
109
112
  account \u2014 the local loop runs without \`npx xanosdk login\`.
110
113
  - \`npx xanosdk impersonate\` prints a session URL: treat it as a credential. \`--guest\`
111
114
  opens a read-only look.`;
@@ -149,9 +152,10 @@ ${LEARN_FROM_THE_LIBRARY}
149
152
 
150
153
  \`frontend/src/lib/api.ts\` takes request paths from \`xano/routes.gen.ts\`
151
154
  (\`routePath("GET notes/{id}", { id })\`), generated from the query defs by
152
- \`npm run xano:routes\` and regenerated by dev, build and typecheck, and takes
153
- request/response types from the defs with \`import type\` (\`InferInput\` /
154
- \`InferResponse\`). Never hand-type a URL or a request body, and never import a
155
+ \`npm run xano:routes\` and regenerated by dev, build and typecheck. Request types
156
+ come from the same file (\`RouteInputs["POST create_note"]\`, \`MessageInputs\` for
157
+ realtime); response types from the defs with \`import type\` (\`InferResponse\`).
158
+ Never hand-type a URL or a request body, and never import a
155
159
  def as a value in the frontend: its \`getPath()\` drags the backend into the bundle.
156
160
 
157
161
  ### Layout
@@ -160,6 +164,7 @@ def as a value in the frontend: its \`getPath()\` drags the backend into the bun
160
164
  groups, and endpoints. Pin each API group's canonical slug so public paths are
161
165
  stable and \`xano:routes\` resolves without a lock file.
162
166
  - \`xano/EXAMPLE.md\` \u2014 the walkthrough for adding your first table + endpoint.
167
+ ${README_GUIDANCE}
163
168
  ${frontendSection(frontend)}
164
169
 
165
170
  ### Workflow
@@ -167,8 +172,10 @@ ${frontendSection(frontend)}
167
172
  - \`npm run dev\` \u2014 run the frontend.
168
173
  - \`npm run typecheck\` / \`npm run build\` \u2014 must stay green.
169
174
  - \`npm run xano:export\` \u2014 compile the backend to \`workspace.json\` (never commit it).
170
- - \`npx xanosdk login\` then \`npm run xano:deploy\` \u2014 ship the backend + static
171
- frontend to a disposable **ephemeral** environment.
175
+ - \`npm run xano:deploy\` \u2014 deploy the backend to the Xano Engine on this machine
176
+ (no account needed; redeploys keep the rows). Run it after every backend change.
177
+ - \`npx xanosdk login\` then \`npm run xano:deploy:ephemeral\` \u2014 ship the backend +
178
+ static frontend to a disposable **ephemeral** environment on Xano's cloud.
172
179
  - \`npm run xano:test\` \u2014 run the DEPLOYED environment's unit + workflow tests
173
180
  (exits 5 on a failure). See "Testing" below.
174
181
  ${BACKENDS_GUIDANCE}
@@ -182,7 +189,7 @@ ${ENV_GUIDANCE}
182
189
  A deploy targets a throwaway environment. Reaching a real one goes through a
183
190
  **release** \u2014 the stored record that code came up and answered:
184
191
 
185
- 1. \`npm run xano:deploy\` \u2014 stand the current code up on an ephemeral.
192
+ 1. \`npm run xano:deploy:ephemeral\` \u2014 stand the current code up on an ephemeral.
186
193
  2. \`npx xanosdk release create <name>\` \u2014 cut a release from it. An existing name is
187
194
  refused; cut a new one.
188
195
  3. \`npx xanosdk promote <name>\` \u2014 land it in the workspace, or
@@ -247,9 +254,10 @@ drive a Xano workspace from code.
247
254
  re-running \`init --from\`) refreshes it from a backend: it lists what will change
248
255
  and asks first, keeps files you added, and overwrites the files it decodes. Commit
249
256
  before refreshing, so an overwritten edit is still in git.
250
- - **\`npx xanosdk deploy\` is a full replace** of a disposable **ephemeral** environment
251
- (\`npm run xano:deploy\`), unless \`--keep-data\` merges into the one an earlier
252
- deploy filled. A real workspace is reached with \`npx xanosdk promote <release>\` or
257
+ - **\`npx xanosdk deploy\` is a full replace** of a Xano Engine or a disposable
258
+ **ephemeral** environment (\`npm run xano:deploy:ephemeral\`), unless \`--keep-data\`
259
+ merges into the one an earlier deploy filled (\`npm run xano:deploy\` passes it). A
260
+ real workspace is reached with \`npx xanosdk promote <release>\` or
253
261
  \`deploy --to workspace\`, which merge and leave table rows alone.
254
262
 
255
263
  Read \`xano/README.md\` first: it is the generated record of what did and did not
@@ -261,8 +269,9 @@ ${LEARN_FROM_THE_LIBRARY}
261
269
 
262
270
  \`frontend/src/lib/api.ts\` takes request paths from \`xano/routes.gen.ts\`
263
271
  (\`routePath("GET notes/{id}", { id })\`), generated from the query defs in
264
- \`xano/\` by \`npm run xano:routes\`, and request/response types from the defs with
265
- \`import type\` (\`InferInput\` / \`InferResponse\`). Never hand-type a URL or a
272
+ \`xano/\` by \`npm run xano:routes\`. Request types come from the same file
273
+ (\`RouteInputs["<VERB> <name>"]\`, \`MessageInputs\` for realtime); response types
274
+ from the defs with \`import type\` (\`InferResponse\`). Never hand-type a URL or a
266
275
  request body, and never import a def as a value in the frontend.
267
276
 
268
277
  ### Layout
@@ -270,6 +279,7 @@ request body, and never import a def as a value in the frontend.
270
279
  - \`xano/index.ts\` \u2014 the barrel: default-exports the \`workspace()\` with every pulled object registered.
271
280
  - \`xano/<kind>/<name>.ts\` \u2014 one file per object (tables in \`xano/table/\`); \`xano/_shared.ts\` \u2014 anything else referenced from more than one file.
272
281
  - \`xano/README.md\` \u2014 the decode report for this pull.
282
+ ${README_GUIDANCE}
273
283
  ${frontendSection(frontend)}
274
284
 
275
285
  ### Workflow
@@ -277,7 +287,8 @@ ${frontendSection(frontend)}
277
287
  - \`npm run dev\` \u2014 run the frontend.
278
288
  - \`npm run typecheck\` / \`npm run build\` \u2014 must stay green.
279
289
  - \`npm run xano:export\` \u2014 compile the backend to \`workspace.json\` (never commit it).
280
- - \`npx xanosdk login\` then \`npm run xano:deploy\` \u2014 ship the backend + static frontend to an ephemeral env.
290
+ - \`npm run xano:deploy\` \u2014 deploy the backend to the Xano Engine on this machine (no account needed).
291
+ - \`npx xanosdk login\` then \`npm run xano:deploy:ephemeral\` \u2014 ship the backend + static frontend to an ephemeral env.
281
292
  - \`npx xanosdk release create <name>\` then \`npx xanosdk promote <name>\` \u2014 the path to a real workspace.
282
293
  - \`npx xanosdk pull [source]\` \u2014 refresh \`xano/\` from a live backend; it REPLACES the directory.
283
294
  - \`npm run xano:test\` \u2014 run the DEPLOYED environment's unit + workflow tests (exits 5 on a failure). See "Testing" below.
@@ -302,15 +313,7 @@ Other \`@xano-sdk/*\` packages register onto the same workspace \u2014 but a
302
313
  composing them from a module outside \`xano/\`.
303
314
  `;
304
315
  }
305
- var BLOCK_BEGIN = "<!-- BEGIN:xanosdk-agent-rules -->";
306
- var BLOCK_END = "<!-- END:xanosdk-agent-rules -->";
307
- var AGENT_DIALECT = {
308
- begin: () => BLOCK_BEGIN,
309
- end: () => BLOCK_END,
310
- stamp: (version) => `<!-- xanosdk ${version} \u2014 generated; edits inside this block are overwritten -->`,
311
- parseStamp: (block) => /<!-- xanosdk ([^\s]+) — generated/.exec(block)?.[1] ?? null
312
- };
313
- var AGENT_BLOCK = { dialect: AGENT_DIALECT, pkg: "xanosdk-agent-rules" };
316
+ var AGENT_BLOCK = { dialect: htmlDialect("xanosdk-agent-rules"), pkg: "xanosdk-agent-rules" };
314
317
  function managedBlock(body, version) {
315
318
  return composeBlock(AGENT_BLOCK, [body], version);
316
319
  }
@@ -657,4 +660,4 @@ export {
657
660
  changedOnDisk,
658
661
  scaffoldProject
659
662
  };
660
- //# sourceMappingURL=chunk-HUSH7LRI.js.map
663
+ //# sourceMappingURL=chunk-LL7SGTRC.js.map
@@ -12,11 +12,11 @@ import {
12
12
  httpFailure,
13
13
  isTimeoutError,
14
14
  statusLabel
15
- } from "./chunk-MN2PB6WB.js";
15
+ } from "./chunk-YR2I5HGE.js";
16
16
  import {
17
17
  pointerRootFor,
18
18
  resolveProjectProfile
19
- } from "./chunk-FPBGAT5D.js";
19
+ } from "./chunk-26MOFAJT.js";
20
20
  import {
21
21
  atomicWrite,
22
22
  linkTarget
@@ -24,13 +24,13 @@ import {
24
24
  import {
25
25
  DEFAULT_PROFILE,
26
26
  resolveActiveProfile
27
- } from "./chunk-QXTKSOFI.js";
27
+ } from "./chunk-MF4W6FHU.js";
28
28
  import {
29
29
  readEnvVar
30
30
  } from "./chunk-X2NL4KUO.js";
31
31
  import {
32
32
  UsageError
33
- } from "./chunk-SBR2WZXG.js";
33
+ } from "./chunk-D7BUMOKU.js";
34
34
  import {
35
35
  shellQuote
36
36
  } from "./chunk-5ZSO4T2G.js";
@@ -450,7 +450,7 @@ function resolveAuthFilePath(args, mode = "read") {
450
450
  if (explicit !== void 0 && args.local && resolve(explicit) !== localAuthFilePath()) {
451
451
  const named = args.authFile !== void 0 ? `\`--config ${explicit}\`` : `XANO_CONFIG=${explicit}`;
452
452
  throw new UsageError(
453
- `\`--local\` selects the project-local .xano/auth.json and ${named} names another credential file \u2014 they cannot both be the one this command uses. Drop \`--local\`` + (args.authFile !== void 0 ? `, or drop \`--config\`.` : `, or unset XANO_CONFIG.`)
453
+ `\`--local-auth\` selects the project-local .xano/auth.json and ${named} names another credential file \u2014 they cannot both be the one this command uses. Drop \`--local-auth\`` + (args.authFile !== void 0 ? `, or drop \`--config\`.` : `, or unset XANO_CONFIG.`)
454
454
  );
455
455
  }
456
456
  if (explicit !== void 0) {
@@ -698,7 +698,7 @@ function credentialFileFlag(path) {
698
698
  return abs === resolve(byEnv) ? "" : ` --config ${shellQuote(abs)}`;
699
699
  }
700
700
  if (abs === resolve(globalAuthFilePath())) return "";
701
- if (abs === localAuthFilePath()) return " --local";
701
+ if (abs === localAuthFilePath()) return " --local-auth";
702
702
  return ` --config ${shellQuote(abs)}`;
703
703
  }
704
704
  function loginCommand(profile, target = {}, extra = []) {
@@ -1189,4 +1189,4 @@ export {
1189
1189
  addGitignoreRule,
1190
1190
  gitSaysIgnored
1191
1191
  };
1192
- //# sourceMappingURL=chunk-I2BGYNHD.js.map
1192
+ //# sourceMappingURL=chunk-M5CSVB23.js.map
@@ -160,7 +160,7 @@ function decodeMarkerWith(previous, files) {
160
160
  digests: Object.fromEntries(sorted.map((f) => [f.path, decodeDigest(f.content)]))
161
161
  };
162
162
  }
163
- var SOURCE_KINDS = /* @__PURE__ */ new Set(["workspace", "ephemeral", "local-engine", "tenant", "release"]);
163
+ var SOURCE_KINDS = /* @__PURE__ */ new Set(["workspace", "ephemeral", "local", "tenant", "release"]);
164
164
  function decodeMarkerHead(previous, command, provenance, sdkVersion, report) {
165
165
  const colon = provenance.indexOf(":");
166
166
  const kind = colon === -1 ? provenance : provenance.slice(0, colon);
@@ -627,4 +627,4 @@ export {
627
627
  decodeMarkerWith,
628
628
  decodeMarkerHead
629
629
  };
630
- //# sourceMappingURL=chunk-UCQ2VUTG.js.map
630
+ //# sourceMappingURL=chunk-M6ZFSTIZ.js.map
@@ -3,17 +3,17 @@ import {
3
3
  listAnswer,
4
4
  notTheAnswer,
5
5
  writeTransportFailure
6
- } from "./chunk-CFSFBKHP.js";
6
+ } from "./chunk-7GAIJW62.js";
7
7
  import {
8
8
  SENT_AFTERMATH,
9
9
  fetchOrExplain,
10
10
  readBodyText,
11
11
  safeHttpFailure,
12
12
  withWriteStatusAftermath
13
- } from "./chunk-MN2PB6WB.js";
13
+ } from "./chunk-YR2I5HGE.js";
14
14
  import {
15
15
  isNonPublicColumn
16
- } from "./chunk-4PQHO74B.js";
16
+ } from "./chunk-SLGJIWCY.js";
17
17
 
18
18
  // src/deploy/table.ts
19
19
  var TIMEOUT_MS = 3e4;
@@ -184,4 +184,4 @@ export {
184
184
  truncateTable,
185
185
  insertTableRows
186
186
  };
187
- //# sourceMappingURL=chunk-MNVDVR3M.js.map
187
+ //# sourceMappingURL=chunk-MBDFH7XB.js.map
@@ -73,4 +73,4 @@ export {
73
73
  assertValidProfileName,
74
74
  selectionDocument
75
75
  };
76
- //# sourceMappingURL=chunk-QXTKSOFI.js.map
76
+ //# sourceMappingURL=chunk-MF4W6FHU.js.map
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  LOCK_PAYLOAD_KEYS,
3
- lockKey
4
- } from "./chunk-OOGXZL7Z.js";
3
+ lockKey,
4
+ withSyncedOf
5
+ } from "./chunk-5KJBWIDZ.js";
5
6
 
6
7
  // src/lock/landed.ts
7
8
  function destinationKey(instance, dest) {
@@ -82,7 +83,10 @@ function applyLanding(lock, destKey, update) {
82
83
  if (Object.keys(next).length > 0) landed[destKey] = next;
83
84
  else delete landed[destKey];
84
85
  const objects = withoutPrunedObjects(lock.objects, update);
85
- return Object.keys(landed).length > 0 ? { version: lock.version, objects, landed } : { version: lock.version, objects };
86
+ return withSyncedOf(
87
+ Object.keys(landed).length > 0 ? { version: lock.version, objects, landed } : { version: lock.version, objects },
88
+ lock
89
+ );
86
90
  }
87
91
  function withoutPrunedObjects(objects, update) {
88
92
  const drop = Object.entries(update.removed ?? {}).filter(
@@ -131,7 +135,10 @@ function withStoredColumns(identities, stored) {
131
135
  function withoutLanding(lock, destKey) {
132
136
  if (lock.landed?.[destKey] === void 0) return lock;
133
137
  const { [destKey]: _dropped, ...landed } = lock.landed;
134
- return Object.keys(landed).length > 0 ? { version: lock.version, objects: lock.objects, landed } : { version: lock.version, objects: lock.objects };
138
+ return withSyncedOf(
139
+ Object.keys(landed).length > 0 ? { version: lock.version, objects: lock.objects, landed } : { version: lock.version, objects: lock.objects },
140
+ lock
141
+ );
135
142
  }
136
143
  function landedOn(lock, destKey) {
137
144
  const record = lock.landed?.[destKey];
@@ -153,4 +160,4 @@ export {
153
160
  withoutLanding,
154
161
  landedOn
155
162
  };
156
- //# sourceMappingURL=chunk-RX3EMQGN.js.map
163
+ //# sourceMappingURL=chunk-MFWF2NZJ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  recordedCredentialFile,
4
4
  recordedCredentialPath,
5
5
  resolveAuthFilePath
6
- } from "./chunk-I2BGYNHD.js";
6
+ } from "./chunk-M5CSVB23.js";
7
7
  import {
8
8
  readEnvVar
9
9
  } from "./chunk-X2NL4KUO.js";
@@ -43,7 +43,7 @@ function contextFlags(args = ambient, opts = {}) {
43
43
  try {
44
44
  file = credentialFileFlag(resolveAuthFilePath(args));
45
45
  } catch {
46
- file = args.local ? " --local" : args.authFile !== void 0 ? ` --config ${shellQuote(args.authFile)}` : "";
46
+ file = args.local ? " --local-auth" : args.authFile !== void 0 ? ` --config ${shellQuote(args.authFile)}` : "";
47
47
  }
48
48
  const profile = args.profile !== void 0 && args.profile !== "" ? ` --profile ${shellQuote(args.profile)}` : "";
49
49
  return `${profile}${file}`;
@@ -73,4 +73,4 @@ export {
73
73
  ENV_CREDENTIAL_VARS,
74
74
  recordedByEnvCredential
75
75
  };
76
- //# sourceMappingURL=chunk-SEUCZZCP.js.map
76
+ //# sourceMappingURL=chunk-N5I37JFB.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-X4DVXBFY.js";
7
7
  import {
8
8
  ImportHttpError
9
- } from "./chunk-MEE5RZ6G.js";
9
+ } from "./chunk-BL3AZ3AP.js";
10
10
  import {
11
11
  describeWrite
12
12
  } from "./chunk-4KHEMC32.js";
@@ -26,16 +26,16 @@ import {
26
26
  statusLabel,
27
27
  transportTarget,
28
28
  writeStatusAftermath
29
- } from "./chunk-MN2PB6WB.js";
29
+ } from "./chunk-YR2I5HGE.js";
30
30
  import {
31
31
  calcSignatureJson,
32
32
  signatureHolds
33
- } from "./chunk-EESV6NU2.js";
33
+ } from "./chunk-7FIMUFBP.js";
34
34
  import {
35
35
  HOSTED_FILE_SCHEME,
36
36
  HOSTED_ICON_KINDS,
37
37
  HOSTED_ROW_PATH_PREFIX
38
- } from "./chunk-XNCP4KYO.js";
38
+ } from "./chunk-VQPDATQT.js";
39
39
 
40
40
  // src/deploy/xanosdk-import.ts
41
41
  var IMPORT_TIMEOUT_MS = 12e4;
@@ -461,7 +461,7 @@ async function post(auth, url, opts, action) {
461
461
  const aftermath = !writes ? `A dry run writes nothing, so ${target} is untouched. Retry when the instance is reachable.` : opts.mode === "replace" ? `The request did not complete, so the import may or may not have landed, in whole or in part. A replace rewrites all of ${target}, so it is safe to run again once the instance is reachable.` : `The request did not complete, so the import may or may not have landed, in whole or in part.` + (opts.stateCheck !== void 0 ? ` ${opts.stateCheck}` : "");
462
462
  const where = `${transportTarget(url)}${opts.label !== void 0 ? ` (${opts.label})` : ""}`;
463
463
  if (res === void 0) {
464
- const { classifyFailure } = await import("./operation-outcome-2P4BVSEV.js");
464
+ const { classifyFailure } = await import("./operation-outcome-RN62735X.js");
465
465
  if (writes && !isTimeoutError(failure) && classifyFailure(failure, { writeSent: true }) === "no") {
466
466
  const untrusted = certificateFailureCode(failure) !== void 0;
467
467
  throw new ImportNotSentError(
@@ -557,4 +557,4 @@ export {
557
557
  withDefaultBranchPointer,
558
558
  xanosdkImport
559
559
  };
560
- //# sourceMappingURL=chunk-IJ3SXSZM.js.map
560
+ //# sourceMappingURL=chunk-ND43ZOS3.js.map
@@ -0,0 +1,67 @@
1
+ import {
2
+ findBranch,
3
+ listBranches,
4
+ liveBranchLabel
5
+ } from "./chunk-NPODGBVJ.js";
6
+ import {
7
+ readLockFile,
8
+ recordSyncInLockFile,
9
+ syncedOn
10
+ } from "./chunk-CJDPSCMX.js";
11
+ import {
12
+ destinationKey
13
+ } from "./chunk-MFWF2NZJ.js";
14
+ import {
15
+ displayPath,
16
+ info,
17
+ warn
18
+ } from "./chunk-D7BUMOKU.js";
19
+
20
+ // src/emit/sync-record.ts
21
+ import { existsSync } from "fs";
22
+ function readSyncBaseline(lockPath, target) {
23
+ if (lockPath === void 0 || !existsSync(lockPath)) return void 0;
24
+ try {
25
+ const key = destinationKey(target.instance, { kind: "workspace", workspaceId: target.workspaceId });
26
+ return syncedOn(readLockFile(lockPath), key, target.branch);
27
+ } catch {
28
+ return void 0;
29
+ }
30
+ }
31
+ function recordSync(opts) {
32
+ if (opts.lockPath === void 0) return null;
33
+ const destination = destinationKey(opts.target.instance, { kind: "workspace", workspaceId: opts.target.workspaceId });
34
+ const shown = displayPath(opts.lockPath);
35
+ let result;
36
+ try {
37
+ result = recordSyncInLockFile(opts.lockPath, destination, opts.target.branch, { digests: opts.digests, by: opts.by, complete: opts.complete });
38
+ } catch (err) {
39
+ warn(
40
+ `The ${opts.by} succeeded, but its sync baseline could not be recorded in ${shown}: ${err instanceof Error ? err.message : String(err)}`,
41
+ "sync.record-failed",
42
+ ["`xanosdk workspace diff` reads the older baseline, so it may say the wrong side changed until the next deploy or pull records one."]
43
+ );
44
+ return null;
45
+ }
46
+ if (result === void 0) return null;
47
+ if (result.changed) {
48
+ info(`Recorded the sync baseline for branch "${opts.target.branch}" in ${shown}. Commit it: \`workspace diff\` reads it to say which side changed.`);
49
+ }
50
+ return { destination, branch: opts.target.branch, file: shown, objects: Object.keys(opts.digests.objects).length, changed: result.changed };
51
+ }
52
+ function storedBranchLabel(branches, typed) {
53
+ if (typed !== void 0) return (branches === void 0 ? void 0 : findBranch(branches, typed)?.label) ?? typed.trim();
54
+ return branches === void 0 ? void 0 : liveBranchLabel(branches);
55
+ }
56
+ async function syncBranchLabel(auth, typed) {
57
+ const branches = await listBranches(auth, { baseUrl: auth.instance, workspaceId: auth.workspaceId }).catch(() => void 0);
58
+ return storedBranchLabel(branches, typed);
59
+ }
60
+
61
+ export {
62
+ readSyncBaseline,
63
+ recordSync,
64
+ storedBranchLabel,
65
+ syncBranchLabel
66
+ };
67
+ //# sourceMappingURL=chunk-NDWVJ2QZ.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-2MNLRIOX.js";
4
4
  import {
5
5
  pipedYes
6
- } from "./chunk-FMOEVAGT.js";
6
+ } from "./chunk-6X3MY2JP.js";
7
7
  import {
8
8
  contextFlags
9
- } from "./chunk-SEUCZZCP.js";
9
+ } from "./chunk-N5I37JFB.js";
10
10
  import {
11
11
  shellWord
12
12
  } from "./chunk-FWD7AL6N.js";
@@ -18,7 +18,7 @@ import {
18
18
  retryingFetch,
19
19
  transportTarget,
20
20
  withWriteStatusAftermath
21
- } from "./chunk-MN2PB6WB.js";
21
+ } from "./chunk-YR2I5HGE.js";
22
22
  import {
23
23
  suggestAll
24
24
  } from "./chunk-UTI5G6OJ.js";
@@ -288,4 +288,4 @@ export {
288
288
  freeBranchLabel,
289
289
  requireBranch
290
290
  };
291
- //# sourceMappingURL=chunk-E65QIWOO.js.map
291
+ //# sourceMappingURL=chunk-NPODGBVJ.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  LOOPBACK_HOSTS
3
- } from "./chunk-AM4FKL4J.js";
3
+ } from "./chunk-PL7AIAWS.js";
4
4
  import {
5
5
  TransportError,
6
6
  describeTransportFailure,
7
7
  fetchOrExplain
8
- } from "./chunk-MN2PB6WB.js";
8
+ } from "./chunk-YR2I5HGE.js";
9
9
  import {
10
10
  readEnvVar
11
11
  } from "./chunk-X2NL4KUO.js";
@@ -137,7 +137,7 @@ async function resolveEngineRelease(opts) {
137
137
  if (status === 404) {
138
138
  throw new EngineReleaseNotFoundError(
139
139
  `There is no published engine release ${wanted}.
140
- Check the version, or run \`xanosdk local-engine update\` to move to the latest one.`
140
+ Check the version, or run \`xanosdk local update\` to move to the latest one.`
141
141
  );
142
142
  }
143
143
  if (body === void 0) throw failed(status, display);
@@ -145,7 +145,7 @@ Check the version, or run \`xanosdk local-engine update\` to move to the latest
145
145
  if (asset === void 0) {
146
146
  throw new Error(
147
147
  `Engine release ${wanted} has no archive for ${platform}, so nothing was downloaded.
148
- Run \`xanosdk local-engine update\` to move to a release built for ${platform}.`
148
+ Run \`xanosdk local update\` to move to a release built for ${platform}.`
149
149
  );
150
150
  }
151
151
  return asset;
@@ -179,4 +179,4 @@ export {
179
179
  EngineReleaseNotFoundError,
180
180
  resolveEngineRelease
181
181
  };
182
- //# sourceMappingURL=chunk-CYB7UQA2.js.map
182
+ //# sourceMappingURL=chunk-OIKLDDYC.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  contextFlags
3
- } from "./chunk-SEUCZZCP.js";
3
+ } from "./chunk-N5I37JFB.js";
4
4
  import {
5
5
  backendDirFor,
6
6
  backendDirIn
7
- } from "./chunk-E6H5ZEV3.js";
7
+ } from "./chunk-TTEIDD5Q.js";
8
8
  import {
9
9
  projectRootFrom
10
10
  } from "./chunk-ROY4YAEQ.js";
@@ -15,7 +15,7 @@ import {
15
15
  LocalFileNotFoundError,
16
16
  displayPath,
17
17
  relForwardSlash
18
- } from "./chunk-SBR2WZXG.js";
18
+ } from "./chunk-D7BUMOKU.js";
19
19
  import {
20
20
  normalizeDocumentationScopeKey
21
21
  } from "./chunk-3JDU4VRL.js";
@@ -127,4 +127,4 @@ export {
127
127
  entryWordOf,
128
128
  readSecretsFile
129
129
  };
130
- //# sourceMappingURL=chunk-MLGI2SRQ.js.map
130
+ //# sourceMappingURL=chunk-PFBXSVZF.js.map
@@ -26,7 +26,7 @@ function assertLoopbackUrl(url, what) {
26
26
  if (isLoopbackUrl(url)) return;
27
27
  throw new Error(
28
28
  `${what} reports a url this SDK will not send a token to: ${url}
29
- A local engine has to serve loopback over http on a port of its own \u2014 ${LOOPBACK_HOSTS.join(", ")} \u2014 and anything else is reachable from off this machine. Stop that engine and start a fresh one without binding it to all interfaces.`
29
+ A Xano Engine has to serve loopback over http on a port of its own \u2014 ${LOOPBACK_HOSTS.join(", ")} \u2014 and anything else is reachable from off this machine. Stop that engine and start a fresh one without binding it to all interfaces.`
30
30
  );
31
31
  }
32
32
  function requireString(raw, key, source) {
@@ -34,7 +34,7 @@ function requireString(raw, key, source) {
34
34
  if (typeof value !== "string" || value === "") {
35
35
  throw new Error(
36
36
  `${source} is missing \`${key}\`, or gave it as something other than text.
37
- That is not an engine this SDK knows how to drive \u2014 the engine on this machine is older or newer than the one it was built against. Move to a current one with \`xanosdk local-engine update\`.`
37
+ That is not an engine this SDK knows how to drive \u2014 the engine on this machine is older or newer than the one it was built against. Move to a current one with \`xanosdk local update\`.`
38
38
  );
39
39
  }
40
40
  return value;
@@ -44,7 +44,7 @@ function requireNumber(raw, key, source) {
44
44
  if (typeof value !== "number" || !Number.isFinite(value)) {
45
45
  throw new Error(
46
46
  `${source} is missing \`${key}\`, or gave it as something other than a number.
47
- That is not an engine this SDK knows how to drive \u2014 the engine on this machine is older or newer than the one it was built against. Move to a current one with \`xanosdk local-engine update\`.`
47
+ That is not an engine this SDK knows how to drive \u2014 the engine on this machine is older or newer than the one it was built against. Move to a current one with \`xanosdk local update\`.`
48
48
  );
49
49
  }
50
50
  return value;
@@ -53,7 +53,7 @@ function readEngine(value, source) {
53
53
  if (value === null || typeof value !== "object" || Array.isArray(value)) {
54
54
  throw new Error(
55
55
  `${source} did not print an engine description.
56
- Re-run, and if it happens again fetch a fresh copy with \`xanosdk local-engine cache clear\`, then \`xanosdk deploy --local-engine\`.`
56
+ Re-run, and if it happens again fetch a fresh copy with \`xanosdk local cache clear\`, then \`xanosdk deploy --local\`.`
57
57
  );
58
58
  }
59
59
  const raw = value;
@@ -77,7 +77,7 @@ function parseEngineHandshake(stdout) {
77
77
  } catch {
78
78
  throw new Error(
79
79
  `${HANDSHAKE_SOURCE} did not print an engine description.
80
- Re-run, and if it happens again fetch a fresh copy with \`xanosdk local-engine cache clear\`, then \`xanosdk deploy --local-engine\`.`
80
+ Re-run, and if it happens again fetch a fresh copy with \`xanosdk local cache clear\`, then \`xanosdk deploy --local\`.`
81
81
  );
82
82
  }
83
83
  const engine = readEngine(value, HANDSHAKE_SOURCE);
@@ -93,13 +93,13 @@ function parseEngineListing(stdout) {
93
93
  } catch {
94
94
  throw new Error(
95
95
  `${LISTING_SOURCE} was not readable.
96
- Re-run, and if it happens again fetch a fresh copy with \`xanosdk local-engine cache clear\`, then \`xanosdk deploy --local-engine\`.`
96
+ Re-run, and if it happens again fetch a fresh copy with \`xanosdk local cache clear\`, then \`xanosdk deploy --local\`.`
97
97
  );
98
98
  }
99
99
  if (!Array.isArray(value)) {
100
100
  throw new Error(
101
101
  `${LISTING_SOURCE} was not a list.
102
- Re-run, and if it happens again fetch a fresh copy with \`xanosdk local-engine cache clear\`, then \`xanosdk deploy --local-engine\`.`
102
+ Re-run, and if it happens again fetch a fresh copy with \`xanosdk local cache clear\`, then \`xanosdk deploy --local\`.`
103
103
  );
104
104
  }
105
105
  return value.filter((entry) => !isForeignEngine(entry)).map((entry) => readEngine(entry, LISTING_SOURCE));
@@ -120,7 +120,7 @@ function resolveEnginePlatform(platform = process.platform, arch = process.arch)
120
120
  const pair = `${platform}-${arch}`;
121
121
  return SUPPORTED_PLATFORMS.find((p) => p === pair);
122
122
  }
123
- var LOCAL_ENGINE_HOME_ENV = "XANOSDK_LOCAL_ENGINE_HOME";
123
+ var LOCAL_ENGINE_HOME_ENV = "XANOSDK_ENGINE_HOME";
124
124
  function localEngineHome(env = process.env) {
125
125
  return readEnvVar(LOCAL_ENGINE_HOME_ENV, env) ?? join(homedir(), ".xanosdk", "local-engine");
126
126
  }
@@ -145,7 +145,7 @@ function legacyRuntimeDirs(env = process.env, platform = process.platform) {
145
145
  function localEngineBinDir(env = process.env) {
146
146
  return join(localEngineHome(env), "bin");
147
147
  }
148
- var LOCAL_ENGINE_OVERRIDE_ENV = "XANOSDK_LOCAL_ENGINE_OVERRIDE";
148
+ var LOCAL_ENGINE_OVERRIDE_ENV = "XANOSDK_ENGINE_OVERRIDE";
149
149
  var OVERRIDE_VERSION = /^v?\d+\.\d+\.\d+$/;
150
150
  function overrideSpec(value) {
151
151
  if (OVERRIDE_VERSION.test(value)) {
@@ -172,7 +172,7 @@ var ARCHIVE_SUFFIX = /\.(tar\.gz|tgz|gz|tar|zip)$/i;
172
172
  function engineOverrideRefusal(value, where, env = process.env) {
173
173
  if (/^https?:\/\//i.test(value)) {
174
174
  if (isTrustedEngineUrl(value)) return void 0;
175
- return `${where} names an engine over plain http on a host that is not this machine. An engine is a program this command runs, so fetched that way anyone on the network path could swap it (and read XANOSDK_LOCAL_ENGINE_TOKEN if it is set). Nothing was requested.
175
+ return `${where} names an engine over plain http on a host that is not this machine. An engine is a program this command runs, so fetched that way anyone on the network path could swap it (and read XANOSDK_ENGINE_TOKEN if it is set). Nothing was requested.
176
176
  Serve the archive over https://, or over http:// from 127.0.0.1, ::1 or localhost.`;
177
177
  }
178
178
  const scheme = /^([a-z][a-z0-9+.-]*):\/\//i.exec(value);
@@ -195,7 +195,7 @@ Check the path \u2014 ${where} is read exactly as passed, with \`~\` and relativ
195
195
  }
196
196
  var MISSING_ARCHIVE = "There is no engine archive to read at";
197
197
  function engineSourceRefusal(flagValue, env = process.env) {
198
- if (flagValue !== void 0 && flagValue !== "") return engineOverrideRefusal(flagValue, "`--local-engine`", env);
198
+ if (flagValue !== void 0 && flagValue !== "") return engineOverrideRefusal(flagValue, "`--local`", env);
199
199
  const fromEnv = readEnvVar(LOCAL_ENGINE_OVERRIDE_ENV, env)?.trim();
200
200
  if (fromEnv === void 0) return void 0;
201
201
  return engineOverrideRefusal(fromEnv, LOCAL_ENGINE_OVERRIDE_ENV, env);
@@ -234,4 +234,4 @@ export {
234
234
  engineOverrideFromEnv,
235
235
  resolveEngineSource
236
236
  };
237
- //# sourceMappingURL=chunk-AM4FKL4J.js.map
237
+ //# sourceMappingURL=chunk-PL7AIAWS.js.map