@xano/sdk 1.0.4 → 1.0.5

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 (239) hide show
  1. package/CHANGELOG.md +17 -5
  2. package/README.md +232 -334
  3. package/dist/.build-fingerprint +1 -1
  4. package/dist/{agent-file-refresh-LB6KIMFY.js → agent-file-refresh-KVLR7M5Y.js} +13 -13
  5. package/dist/{answer-shape-LVV2SVBK.js → answer-shape-XGR2DGWY.js} +5 -5
  6. package/dist/{backend-dir-WZADOK3L.js → backend-dir-IE4RMUFH.js} +12 -12
  7. package/dist/{backend-slot-NSCTWCUX.js → backend-slot-6HBWG5FN.js} +3 -3
  8. package/dist/bin.js +52 -52
  9. package/dist/{branch-ONWPJ4V6.js → branch-T2APKPVG.js} +9 -9
  10. package/dist/{branch-commands-ZT2MJIRS.js → branch-commands-HXXTCSOO.js} +26 -26
  11. package/dist/{capture-3JNUA6C2.js → capture-HBXFXZEW.js} +4 -4
  12. package/dist/{chunk-A6QTTJUI.js → chunk-3BJYQGAZ.js} +2 -2
  13. package/dist/{chunk-5W7DOMIU.js → chunk-3IYVHVM6.js} +2 -2
  14. package/dist/{chunk-S7E2AHV3.js → chunk-3VX7VAQT.js} +4 -4
  15. package/dist/{chunk-Y2ZLKBM6.js → chunk-3WHWOKU4.js} +4 -4
  16. package/dist/{chunk-LXNQWHZM.js → chunk-44CWK6YC.js} +3 -3
  17. package/dist/{chunk-KCAL4QYP.js → chunk-4GDEEY2U.js} +4 -4
  18. package/dist/{chunk-KTGRGWZW.js → chunk-4NEBBKOP.js} +7 -7
  19. package/dist/{chunk-UKUIUS3E.js → chunk-4QBGE3EO.js} +5 -5
  20. package/dist/{chunk-IVKRT476.js → chunk-4QFBEKXI.js} +2 -2
  21. package/dist/{chunk-OOXWYAA4.js → chunk-57A5ZKPO.js} +1 -1
  22. package/dist/{chunk-2B22WWKL.js → chunk-57B56I4B.js} +29 -29
  23. package/dist/{chunk-OPHB5ORL.js → chunk-57HMNJGB.js} +120 -76
  24. package/dist/{chunk-O5V3YH5P.js → chunk-5D6DGF3W.js} +8 -8
  25. package/dist/{chunk-E65QIWOO.js → chunk-5RLAF6RL.js} +4 -4
  26. package/dist/{chunk-MEE5RZ6G.js → chunk-5XVBT6CQ.js} +2 -2
  27. package/dist/{chunk-RX3EMQGN.js → chunk-5YBNXNKU.js} +2 -2
  28. package/dist/{chunk-NA3PXMEF.js → chunk-64WWE3EF.js} +1 -1
  29. package/dist/{chunk-2LVTBPW2.js → chunk-65SW2BA5.js} +3 -3
  30. package/dist/{chunk-ET5DSBAC.js → chunk-7DBM6XHR.js} +8 -8
  31. package/dist/{chunk-DIG3NITC.js → chunk-A4NNCI4O.js} +3 -3
  32. package/dist/{chunk-4APOHK7Y.js → chunk-AESE434J.js} +2 -2
  33. package/dist/{chunk-E6H5ZEV3.js → chunk-AGD7F7YI.js} +3 -3
  34. package/dist/{chunk-44B4V2LR.js → chunk-AGSCOISO.js} +139 -139
  35. package/dist/{chunk-MLGI2SRQ.js → chunk-AMBEITWL.js} +4 -4
  36. package/dist/{chunk-5T2CTWTB.js → chunk-BBPAXOU6.js} +5 -5
  37. package/dist/{chunk-5WGVIXMD.js → chunk-BMCZQZMI.js} +4 -4
  38. package/dist/{chunk-LUTMOHOW.js → chunk-CJ76PSJT.js} +9 -9
  39. package/dist/{chunk-D5ZEAF4G.js → chunk-CV54PASI.js} +53 -50
  40. package/dist/{chunk-MLPDSGJQ.js → chunk-DEVGLLNZ.js} +5 -5
  41. package/dist/{chunk-JTUKLCXS.js → chunk-DXUICABI.js} +1 -1
  42. package/dist/{chunk-C4FHQA7R.js → chunk-ES5A66IH.js} +8 -8
  43. package/dist/{chunk-UDE5C2XN.js → chunk-F3557PVM.js} +3 -3
  44. package/dist/{chunk-HUSH7LRI.js → chunk-F6IKWAIU.js} +21 -17
  45. package/dist/{chunk-II747OWE.js → chunk-FV55SRQU.js} +7 -7
  46. package/dist/{chunk-SEUCZZCP.js → chunk-G57RYMKB.js} +3 -3
  47. package/dist/{chunk-MNVDVR3M.js → chunk-GMVW6ZZK.js} +4 -4
  48. package/dist/{chunk-MN2PB6WB.js → chunk-HLQH3AXB.js} +3 -3
  49. package/dist/{chunk-HSEQYBDO.js → chunk-HOOOOJJP.js} +3 -3
  50. package/dist/{chunk-IXUPUFCG.js → chunk-I5VEROXW.js} +2 -2
  51. package/dist/{chunk-UI4OPTYR.js → chunk-IV446ZLJ.js} +2 -2
  52. package/dist/{chunk-CYB7UQA2.js → chunk-JQOX6HW4.js} +5 -5
  53. package/dist/{chunk-OPG4DYX2.js → chunk-JSEVKRVJ.js} +3 -3
  54. package/dist/{chunk-2AUV6NXK.js → chunk-JXKO6JT7.js} +36 -36
  55. package/dist/{chunk-FPBGAT5D.js → chunk-JZWUAEMO.js} +3 -3
  56. package/dist/{chunk-6R7S775T.js → chunk-K6CB5TKM.js} +2 -2
  57. package/dist/{chunk-MCTIKRMN.js → chunk-K6PRKPFX.js} +8 -8
  58. package/dist/{chunk-W5ONYLOP.js → chunk-KQLACS4Q.js} +4 -4
  59. package/dist/{chunk-LIVN53UV.js → chunk-KUU7T4ZE.js} +31 -31
  60. package/dist/{chunk-WFMVKY7I.js → chunk-L3BDO2BI.js} +9 -9
  61. package/dist/{chunk-664LSWE5.js → chunk-LLS2WO2K.js} +4 -4
  62. package/dist/{chunk-ESZ2FF57.js → chunk-LZDA6SVD.js} +46 -45
  63. package/dist/{chunk-UCQ2VUTG.js → chunk-M6ZFSTIZ.js} +2 -2
  64. package/dist/{chunk-DYG5D3FD.js → chunk-M7GJ6YUF.js} +2 -2
  65. package/dist/{chunk-XXZZGXW2.js → chunk-MEIJDRHU.js} +2 -2
  66. package/dist/{chunk-QXTKSOFI.js → chunk-MF4W6FHU.js} +1 -1
  67. package/dist/{chunk-3FN2BIGB.js → chunk-MYLPOVX6.js} +6 -6
  68. package/dist/{chunk-FJWZ5OVV.js → chunk-N6BWB35H.js} +3 -3
  69. package/dist/{chunk-T4DUFQ2S.js → chunk-NGAODDLX.js} +5 -5
  70. package/dist/{chunk-7PMVIHB3.js → chunk-NNB7VUCH.js} +23 -23
  71. package/dist/{chunk-6VBTPV2Y.js → chunk-NUU76247.js} +3 -3
  72. package/dist/{chunk-ZG7E72VI.js → chunk-OGUMHW2X.js} +6 -6
  73. package/dist/{chunk-I2BGYNHD.js → chunk-OJPZEUPH.js} +7 -7
  74. package/dist/{chunk-OOGXZL7Z.js → chunk-OKNE3TWU.js} +2 -2
  75. package/dist/{chunk-KUTFFHUM.js → chunk-OVV2HXJ6.js} +2 -2
  76. package/dist/{chunk-VRVKNY4A.js → chunk-PIPIA7K7.js} +8 -8
  77. package/dist/{chunk-AM4FKL4J.js → chunk-PL7AIAWS.js} +12 -12
  78. package/dist/{chunk-WL2DSNJV.js → chunk-Q22BMRPF.js} +2 -2
  79. package/dist/{chunk-IJ3SXSZM.js → chunk-QOLOQ35F.js} +6 -6
  80. package/dist/{chunk-BUECLQXK.js → chunk-QZTJ2556.js} +4 -4
  81. package/dist/{chunk-O7QOWS6M.js → chunk-RXCT3OCU.js} +12 -12
  82. package/dist/{chunk-WYEQFD6A.js → chunk-S5KQIFKJ.js} +122 -98
  83. package/dist/{chunk-CBYQ2ZN3.js → chunk-S5TEJIGP.js} +2 -2
  84. package/dist/{chunk-HMLGM2MW.js → chunk-SF2B7MZK.js} +3 -3
  85. package/dist/{chunk-PML67X22.js → chunk-SNGFEESM.js} +3 -3
  86. package/dist/{chunk-VD32O6KZ.js → chunk-SQPIECXD.js} +3 -3
  87. package/dist/{chunk-5YL5OC2G.js → chunk-SRX6B544.js} +5 -5
  88. package/dist/{chunk-CFSFBKHP.js → chunk-TEBS7FE6.js} +2 -2
  89. package/dist/{chunk-TTVAHCWP.js → chunk-TM5LRSBB.js} +2 -2
  90. package/dist/{chunk-JP7M7OU7.js → chunk-TUEFTRC2.js} +5 -5
  91. package/dist/{chunk-EWCDPFW5.js → chunk-U6DR6464.js} +4 -4
  92. package/dist/{chunk-QAEQGT5I.js → chunk-UIEFE6FU.js} +7 -7
  93. package/dist/{chunk-3H3EPMFY.js → chunk-UJ6ZZJDD.js} +2 -2
  94. package/dist/{chunk-3P3HXN76.js → chunk-V4IBHDIY.js} +11 -11
  95. package/dist/{chunk-XNCP4KYO.js → chunk-VQPDATQT.js} +1 -1
  96. package/dist/{chunk-4PQHO74B.js → chunk-VZ22VUAS.js} +2 -2
  97. package/dist/{chunk-BUJRS7XB.js → chunk-WYS6XVZ3.js} +2 -2
  98. package/dist/{chunk-QV3GXQRE.js → chunk-XIABDKFQ.js} +2 -2
  99. package/dist/{chunk-EESV6NU2.js → chunk-XJU6UAFV.js} +2 -2
  100. package/dist/{chunk-SBR2WZXG.js → chunk-XNZURZ7T.js} +59 -52
  101. package/dist/{chunk-WFG67AYS.js → chunk-Y6NO3DLQ.js} +3 -3
  102. package/dist/{chunk-37AHZ7JX.js → chunk-Y76ERHLK.js} +5 -5
  103. package/dist/{chunk-HHW5AWVD.js → chunk-YI76TURL.js} +30 -30
  104. package/dist/{chunk-OGBMUST4.js → chunk-YSLMMR2U.js} +14 -14
  105. package/dist/{chunk-45YPFB7B.js → chunk-Z2BRSQ6M.js} +49 -49
  106. package/dist/{chunk-D64XUF5Q.js → chunk-Z3SNX45M.js} +16 -16
  107. package/dist/{chunk-FMOEVAGT.js → chunk-Z4VN347O.js} +3 -3
  108. package/dist/{chunk-L2GLOJAO.js → chunk-ZHGWR45B.js} +22 -22
  109. package/dist/cli.d.ts +20 -18
  110. package/dist/cli.js +50 -50
  111. package/dist/{codegen-command-HTWIW56U.js → codegen-command-L2OO6OTE.js} +63 -63
  112. package/dist/{commands-CVFYC4GK.js → commands-2E4JB3DB.js} +2 -2
  113. package/dist/{completion-AUEQC4XJ.js → completion-LPJIH5VQ.js} +11 -11
  114. package/dist/{config-JU6OQC77.js → config-QDCRKEWD.js} +4 -4
  115. package/dist/{deploy-command-5WTFHMBT.js → deploy-command-HJZNYCUY.js} +57 -57
  116. package/dist/{deploy-source-5CET3A5D.js → deploy-source-5COWTBOC.js} +34 -34
  117. package/dist/{dev-env-sync-X636HLMK.js → dev-env-sync-GZ4QQJGV.js} +51 -51
  118. package/dist/{display-name-hint-DMORHANO.js → display-name-hint-AHCNH6TF.js} +11 -11
  119. package/dist/{emit-hOFbgzde.d.ts → emit-DqG6qddr.d.ts} +2 -2
  120. package/dist/env-example-refresh-DWQIOQYR.js +127 -0
  121. package/dist/{env-pull-command-WZZ7RL2E.js → env-pull-command-Z4RLVEGJ.js} +46 -46
  122. package/dist/{env-target-PO3MOLH5.js → env-target-ZHQUS5BO.js} +13 -13
  123. package/dist/{env-var-command-YKTJZFJN.js → env-var-command-FKQ4VVQ6.js} +47 -47
  124. package/dist/{ephemeral-BMFY55BQ.js → ephemeral-L4KUOGEU.js} +9 -9
  125. package/dist/{ephemeral-command-VDSQCOYL.js → ephemeral-command-GRPFI3TD.js} +47 -47
  126. package/dist/{ephemeral-state-6TY4JIPA.js → ephemeral-state-VLYU2BXR.js} +11 -11
  127. package/dist/{generate-command-3NTNRQRS.js → generate-command-XNODJFDQ.js} +68 -68
  128. package/dist/{gitignore-FWPEDX6C.js → gitignore-VWRSZX5F.js} +16 -16
  129. package/dist/{guards-EJU2ONAX.js → guards-OPSGB6LG.js} +5 -5
  130. package/dist/{hosted-file-PSHJB3HX.js → hosted-file-S7YUQAH6.js} +2 -2
  131. package/dist/{impersonate-command-QEJA72Q2.js → impersonate-command-AEKIZHHK.js} +40 -40
  132. package/dist/{import-TBTOTU52.js → import-PHSSFFLA.js} +5 -5
  133. package/dist/index.d.ts +4 -4
  134. package/dist/index.js +10 -10
  135. package/dist/{init-command-27SFBW2F.js → init-command-TI3HCKXZ.js} +55 -55
  136. package/dist/{init-modules-HZRQFRLE.js → init-modules-SGSX7XEY.js} +9 -9
  137. package/dist/{init-web-Y2PBNJTQ.js → init-web-6HX3YLQP.js} +2 -2
  138. package/dist/internal.d.ts +4 -4
  139. package/dist/internal.js +24 -25
  140. package/dist/{io-ZUKAGFVE.js → io-TAF4WXYQ.js} +5 -5
  141. package/dist/{keep-data-merge-X5LDDCI3.js → keep-data-merge-GUGF7MVZ.js} +28 -28
  142. package/dist/{lambda-config-reconcile-OUZ4OYAB.js → lambda-config-reconcile-65U6I4KU.js} +3 -3
  143. package/dist/{landed-6VO7CX5P.js → landed-QA6PRTV2.js} +4 -4
  144. package/dist/{landing-record-QYECWLQ5.js → landing-record-FCAWLCZU.js} +22 -22
  145. package/dist/{live-diff-2S7E3SBZ.js → live-diff-IM4W3ELT.js} +5 -5
  146. package/dist/local-engine-choice-FPJAZSSD.js +79 -0
  147. package/dist/{local-engine-command-HMTQK7MN.js → local-engine-command-73NHWD6V.js} +92 -92
  148. package/dist/{local-engine-config-5U3SC434.js → local-engine-config-W3KB7RWM.js} +2 -2
  149. package/dist/{local-engine-deploy-TXAOYRGF.js → local-engine-deploy-Y4OAWL7K.js} +16 -16
  150. package/dist/{local-engine-process-6VZ7JJBP.js → local-engine-process-6YPJHKYM.js} +11 -11
  151. package/dist/{local-engine-state-TJWPWCC4.js → local-engine-state-OCW5YDD7.js} +3 -3
  152. package/dist/{local-engine-update-check-R5SPDVEJ.js → local-engine-update-check-X7TZGRFL.js} +7 -7
  153. package/dist/{lock-TS465GVY.js → lock-WXXC3QHL.js} +3 -3
  154. package/dist/{lock-commands-4VT3L5W5.js → lock-commands-PKDBNRSD.js} +55 -55
  155. package/dist/{login-command-O6WA4FYL.js → login-command-V4U4FA5G.js} +27 -27
  156. package/dist/{logout-command-6CPWGFY2.js → logout-command-TV3P545Z.js} +16 -16
  157. package/dist/{loop-UFHKSOQ4.js → loop-VKHGQ6MP.js} +6 -6
  158. package/dist/{marketplace-command-HKACSYKS.js → marketplace-command-LEFOAEAV.js} +30 -30
  159. package/dist/{marketplace-resolve-KLFYVRWS.js → marketplace-resolve-ME7O7JBJ.js} +7 -7
  160. package/dist/{meta-client-73PX6UGJ.js → meta-client-TEEECA5W.js} +14 -14
  161. package/dist/{module-manifest-GIKFNXPE.js → module-manifest-7YLGIRCY.js} +3 -3
  162. package/dist/node.d.ts +4 -4
  163. package/dist/node.js +56 -56
  164. package/dist/operation-outcome-GNDD35WL.js +51 -0
  165. package/dist/{output-target-SZMBNYF4.js → output-target-5FWX3NGZ.js} +17 -17
  166. package/dist/{plan-disclosure-BHYG7TZ7.js → plan-disclosure-QGL5UYQR.js} +16 -16
  167. package/dist/{plugin-contributions-X4V22PJQ.js → plugin-contributions-GNFTWDEB.js} +4 -4
  168. package/dist/{plugin-prompt-DKNQHW6Y.js → plugin-prompt-VEQGMZ4T.js} +4 -4
  169. package/dist/{plugin-questions-CQRVOWFK.js → plugin-questions-BGRL23GO.js} +3 -3
  170. package/dist/{preflight-command-EBQ6XQF3.js → preflight-command-VKJKXRRI.js} +63 -63
  171. package/dist/{profile-command-NPKBJYPM.js → profile-command-P7A3BH26.js} +29 -29
  172. package/dist/{profile-pointer-UOO7JNFG.js → profile-pointer-HG7IXE4I.js} +4 -4
  173. package/dist/{profile-select-74TRDEPD.js → profile-select-45G5VPJK.js} +2 -2
  174. package/dist/{project-dependency-RRMTWOPC.js → project-dependency-Z4CKOCJI.js} +8 -8
  175. package/dist/{project-sdk-FOR4IOXL.js → project-sdk-JWZWGXXR.js} +3 -3
  176. package/dist/promote-command-KHTIK44I.js +141 -0
  177. package/dist/{prompt-5GUQTCSP.js → prompt-SURZOUUW.js} +3 -3
  178. package/dist/{publish-command-LGLZBOCB.js → publish-command-HGAB3H4A.js} +131 -60
  179. package/dist/{pull-command-WQFPLITW.js → pull-command-EUEWBRXZ.js} +66 -66
  180. package/dist/{pull-superseded-GGURV5J3.js → pull-superseded-TOT5S4QU.js} +3 -3
  181. package/dist/{release-command-2OTNVMIL.js → release-command-WOVQAMUY.js} +64 -64
  182. package/dist/{release-ns-command-EIBN3JVM.js → release-ns-command-WOQE2BDQ.js} +87 -87
  183. package/dist/{retry-command-Y5YJGOH3.js → retry-command-JRGMZZAC.js} +8 -8
  184. package/dist/{routes-manifest-3BNZIVST.js → routes-manifest-URFMAWJE.js} +5 -5
  185. package/dist/scaffold.js +2 -2
  186. package/dist/{secrets-file-FUG7WCES.js → secrets-file-YWZWVJ52.js} +16 -16
  187. package/dist/{secrets-fill-command-QEOCUOAY.js → secrets-fill-command-HIHK3VH2.js} +54 -54
  188. package/dist/{seed-GJHJSEUE.js → seed-24DTEY5S.js} +7 -7
  189. package/dist/{source-resolve-DMDZVPMM.js → source-resolve-OWD3MIEO.js} +23 -23
  190. package/dist/{static-host-WM24RG25.js → static-host-UIR2OLPQ.js} +9 -9
  191. package/dist/{status-command-XUH5OGQX.js → status-command-JKTHH5QE.js} +53 -53
  192. package/dist/{store-MR7IKXKK.js → store-5YAQS6KU.js} +6 -6
  193. package/dist/{store-CfgPaVPO.d.ts → store-zxw2go0f.d.ts} +3 -3
  194. package/dist/sveltekit.d.ts +5 -5
  195. package/dist/sveltekit.js +1 -1
  196. package/dist/{sync-contributions-DHP7XSTX.js → sync-contributions-RBB6JVOL.js} +9 -9
  197. package/dist/{table-ZBDPKMNH.js → table-MQFVYA4K.js} +8 -8
  198. package/dist/{tables-command-X3JK7VSK.js → tables-command-5Q4BSUNO.js} +39 -39
  199. package/dist/{tenant-GKXMOYLK.js → tenant-Q3LPVSSM.js} +10 -10
  200. package/dist/{tenant-command-P27EQHBU.js → tenant-command-BFVU2PEX.js} +84 -84
  201. package/dist/{test-command-A4G2FP7G.js → test-command-F4VUU4QR.js} +40 -40
  202. package/dist/{tests-C55M5EQS.js → tests-5ZSDFVIJ.js} +6 -6
  203. package/dist/{token-CMAB35GD.js → token-TERSTNU4.js} +12 -12
  204. package/dist/{toolchain-hooks-BGZBDFAT.js → toolchain-hooks-QVUZ6HZ4.js} +2 -2
  205. package/dist/{toolchain-modules-3M7QDJBV.js → toolchain-modules-FD5ANV2U.js} +5 -5
  206. package/dist/tracked-backend-B4HTME4S.js +80 -0
  207. package/dist/{update-check-LNNKIMML.js → update-check-O4C2LCZH.js} +53 -53
  208. package/dist/{upgrade-command-7EUXML3P.js → upgrade-command-NVFWLMTA.js} +56 -56
  209. package/dist/{whoami-command-KNWFWAX6.js → whoami-command-YKNTISIV.js} +15 -15
  210. package/dist/{workspace-TGPYOODG.js → workspace-GGVGE2S5.js} +5 -5
  211. package/dist/{workspace-binding-2TWZBHQY.js → workspace-binding-OS4ZOX4S.js} +14 -14
  212. package/dist/{workspace-command-T7Z2BDHD.js → workspace-command-GTUNVN7K.js} +77 -77
  213. package/dist/{workspace-env-VA7XN3UX.js → workspace-env-467C5KHM.js} +13 -13
  214. package/dist/{workspace-export-AIGM6LC7.js → workspace-export-3XTVGQVM.js} +5 -5
  215. package/dist/{writable-FYJBTJOU.js → writable-7SSWUQJ3.js} +3 -3
  216. package/dist/{xano-BSHYVFSE.js → xano-6RS5XQZE.js} +7 -7
  217. package/dist/{xanosdk-import-J6SRBZHW.js → xanosdk-import-E3WSIYUE.js} +9 -9
  218. package/dist/{xanosdk-project-6KTCO47O.js → xanosdk-project-KH5TZ2KI.js} +14 -14
  219. package/guides/README.md +1 -0
  220. package/guides/authoring.md +3 -5
  221. package/guides/bundle.md +45 -0
  222. package/guides/cli.md +32 -30
  223. package/guides/codegen.md +5 -4
  224. package/guides/codes.md +9 -9
  225. package/guides/deploying.md +63 -58
  226. package/guides/environment.md +13 -13
  227. package/guides/project-structure.md +14 -0
  228. package/llms/client.md +3 -4
  229. package/llms/errors.md +1 -1
  230. package/llms/tests.md +2 -2
  231. package/llms-full.txt +14 -15
  232. package/llms.txt +8 -8
  233. package/manifest.json +110 -107
  234. package/package.json +4 -4
  235. package/dist/env-example-refresh-ZO6XAV44.js +0 -127
  236. package/dist/local-engine-choice-6BSPEG3E.js +0 -79
  237. package/dist/operation-outcome-2P4BVSEV.js +0 -51
  238. package/dist/promote-command-4F2NAE6P.js +0 -141
  239. package/dist/tracked-backend-PZGUWD5J.js +0 -80
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  pastePath,
7
7
  warn
8
- } from "./chunk-SBR2WZXG.js";
8
+ } from "./chunk-XNZURZ7T.js";
9
9
  import {
10
10
  shellQuote
11
11
  } from "./chunk-5ZSO4T2G.js";
@@ -103,4 +103,4 @@ export {
103
103
  replacedRegistrations,
104
104
  reportSuperseded
105
105
  };
106
- //# sourceMappingURL=chunk-IVKRT476.js.map
106
+ //# sourceMappingURL=chunk-4QFBEKXI.js.map
@@ -12,4 +12,4 @@ export {
12
12
  SERVER_ENV,
13
13
  isServerPath
14
14
  };
15
- //# sourceMappingURL=chunk-OOXWYAA4.js.map
15
+ //# sourceMappingURL=chunk-57A5ZKPO.js.map
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  createOperation,
3
3
  runOperation
4
- } from "./chunk-PML67X22.js";
4
+ } from "./chunk-SNGFEESM.js";
5
5
  import {
6
6
  fetchWorkspaceBundle
7
- } from "./chunk-ESZ2FF57.js";
7
+ } from "./chunk-LZDA6SVD.js";
8
8
  import {
9
9
  assertReleaseIdentitiesFree,
10
10
  pinnedCanonicalGuids,
11
11
  setLiveRollback
12
- } from "./chunk-45YPFB7B.js";
12
+ } from "./chunk-Z2BRSQ6M.js";
13
13
  import {
14
14
  liveBranchMismatch,
15
15
  liveMismatch
16
- } from "./chunk-OGBMUST4.js";
16
+ } from "./chunk-YSLMMR2U.js";
17
17
  import {
18
18
  confirm
19
- } from "./chunk-4APOHK7Y.js";
19
+ } from "./chunk-AESE434J.js";
20
20
  import {
21
21
  landingLockPath,
22
22
  recordForeignLanding
23
- } from "./chunk-C4FHQA7R.js";
23
+ } from "./chunk-ES5A66IH.js";
24
24
  import {
25
25
  CONSTRAINT_FIX,
26
26
  CONSTRAINT_PHRASE,
@@ -39,24 +39,24 @@ import {
39
39
  releaseTableEffects,
40
40
  renameHint,
41
41
  tableEffectsPayload
42
- } from "./chunk-5T2CTWTB.js";
42
+ } from "./chunk-BBPAXOU6.js";
43
43
  import {
44
44
  tableRowCounter
45
- } from "./chunk-MNVDVR3M.js";
45
+ } from "./chunk-GMVW6ZZK.js";
46
46
  import {
47
47
  asWorkspaceArchive,
48
48
  resolveProjectEntry
49
- } from "./chunk-VRVKNY4A.js";
49
+ } from "./chunk-PIPIA7K7.js";
50
50
  import {
51
51
  exportWorkspaceBundle
52
- } from "./chunk-QV3GXQRE.js";
52
+ } from "./chunk-XIABDKFQ.js";
53
53
  import {
54
54
  decodeWorkspaceArchive
55
55
  } from "./chunk-3DRXWLJ5.js";
56
56
  import {
57
57
  SettledWriteFailure,
58
58
  classifyFailure
59
- } from "./chunk-O5V3YH5P.js";
59
+ } from "./chunk-5D6DGF3W.js";
60
60
  import {
61
61
  BranchTakenError,
62
62
  assertBranchAbsent,
@@ -67,16 +67,16 @@ import {
67
67
  listBranchListing,
68
68
  liveBranchLabel,
69
69
  setLiveBranch
70
- } from "./chunk-E65QIWOO.js";
70
+ } from "./chunk-5RLAF6RL.js";
71
71
  import {
72
72
  envValuesOf
73
- } from "./chunk-HMLGM2MW.js";
73
+ } from "./chunk-SF2B7MZK.js";
74
74
  import {
75
75
  assertOneName
76
- } from "./chunk-DIG3NITC.js";
76
+ } from "./chunk-A4NNCI4O.js";
77
77
  import {
78
78
  resolveSource
79
- } from "./chunk-2AUV6NXK.js";
79
+ } from "./chunk-JXKO6JT7.js";
80
80
  import {
81
81
  ReleaseHttpError,
82
82
  UNPROMOTABLE_RELEASE_PARTS,
@@ -85,27 +85,27 @@ import {
85
85
  promotableReleaseName,
86
86
  unpromotableReleasePart,
87
87
  untenantDeployableReleasePart
88
- } from "./chunk-A6QTTJUI.js";
88
+ } from "./chunk-3BJYQGAZ.js";
89
89
  import {
90
90
  getAccessToken
91
- } from "./chunk-LUTMOHOW.js";
91
+ } from "./chunk-CJ76PSJT.js";
92
92
  import {
93
93
  pipedYes,
94
94
  retryCommand,
95
95
  withheldNote
96
- } from "./chunk-FMOEVAGT.js";
96
+ } from "./chunk-Z4VN347O.js";
97
97
  import {
98
98
  contextFlags
99
- } from "./chunk-SEUCZZCP.js";
99
+ } from "./chunk-G57RYMKB.js";
100
100
  import {
101
101
  shellWord
102
102
  } from "./chunk-FWD7AL6N.js";
103
103
  import {
104
104
  readLockFile
105
- } from "./chunk-VD32O6KZ.js";
105
+ } from "./chunk-SQPIECXD.js";
106
106
  import {
107
107
  withoutReadAftermath
108
- } from "./chunk-MN2PB6WB.js";
108
+ } from "./chunk-HLQH3AXB.js";
109
109
  import {
110
110
  CliError,
111
111
  LocalFileNotFoundError,
@@ -123,10 +123,10 @@ import {
123
123
  success,
124
124
  warn,
125
125
  withoutUrls
126
- } from "./chunk-SBR2WZXG.js";
126
+ } from "./chunk-XNZURZ7T.js";
127
127
  import {
128
128
  envNamesRead
129
- } from "./chunk-OPG4DYX2.js";
129
+ } from "./chunk-JSEVKRVJ.js";
130
130
  import {
131
131
  safeNames
132
132
  } from "./chunk-GSGDWJB5.js";
@@ -135,7 +135,7 @@ import {
135
135
  } from "./chunk-GPI3OWRE.js";
136
136
  import {
137
137
  sdkKindName2 as sdkKindName
138
- } from "./chunk-OOGXZL7Z.js";
138
+ } from "./chunk-OKNE3TWU.js";
139
139
  import {
140
140
  shellQuote
141
141
  } from "./chunk-5ZSO4T2G.js";
@@ -292,7 +292,7 @@ async function verifyLanding(auth, opts) {
292
292
  } catch (err) {
293
293
  return unverified(shortReason(err));
294
294
  }
295
- const { compareToLive, declaredLabels } = await import("./live-diff-2S7E3SBZ.js");
295
+ const { compareToLive, declaredLabels } = await import("./live-diff-IM4W3ELT.js");
296
296
  let result;
297
297
  try {
298
298
  result = compareToLive(declared, landedBundle, void 0, { sample: "all" });
@@ -407,7 +407,7 @@ async function seedRowRemedies(release, tables, flags, named) {
407
407
  const resettable = seededHere === void 0 ? [] : tables.filter((t) => seededHere.has(t.name) && t.guid !== void 0);
408
408
  const r = shellWord(release.name);
409
409
  const before = [
410
- `The release's rows land with a deploy of the release: \`xanosdk deploy release:${r}${flags}\` on this project's ephemeral, or \`xanosdk tenant deploy <tenant> ${r}${flags}\` on a tenant.`
410
+ `The release's rows land with a deploy of the release: \`xanosdk deploy release:${r} --ephemeral${flags}\` on this project's ephemeral, or \`xanosdk tenant deploy <tenant> ${r}${flags}\` on a tenant.`
411
411
  ];
412
412
  if (resettable.length === 0) return { before };
413
413
  const one = resettable.length === 1;
@@ -464,7 +464,7 @@ async function runPromoteCommand(args) {
464
464
  discloseWriteTarget(destination);
465
465
  const lockPath = landingLockPath(args, args.entryPath === void 0 ? {} : { entryFile: args.entryPath });
466
466
  if (lockPath === void 0 && args.noLock !== true) {
467
- const { nestedBackendEntries } = await import("./tracked-backend-PZGUWD5J.js");
467
+ const { nestedBackendEntries } = await import("./tracked-backend-B4HTME4S.js");
468
468
  const nested = nestedBackendEntries(process.cwd());
469
469
  if (nested.length > 0) {
470
470
  warn(
@@ -911,7 +911,7 @@ Nothing was switched. Serve it deliberately with \`xanosdk workspace branch set-
911
911
  }
912
912
  }
913
913
  async function unansweredBranchRead(err, args, what) {
914
- const { LookupFailedError, isServerError, isTransportFailure, unansweredCause } = await import("./source-resolve-DMDZVPMM.js");
914
+ const { LookupFailedError, isServerError, isTransportFailure, unansweredCause } = await import("./source-resolve-OWD3MIEO.js");
915
915
  const transport = isTransportFailure(err);
916
916
  if (!transport && !isServerError(err)) return err;
917
917
  const first = what !== void 0 ? `could not read ${what}` : ((err instanceof Error ? err.message : String(err)).trim().split("\n")[0] ?? "").replace(/[.:]$/, "");
@@ -937,4 +937,4 @@ export {
937
937
  reportNotRun,
938
938
  runPromoteCommand
939
939
  };
940
- //# sourceMappingURL=chunk-2B22WWKL.js.map
940
+ //# sourceMappingURL=chunk-57B56I4B.js.map
@@ -2,7 +2,7 @@ import {
2
2
  decodeMarkerWith,
3
3
  iconLibraryOf,
4
4
  reactPreset
5
- } from "./chunk-UCQ2VUTG.js";
5
+ } from "./chunk-M6ZFSTIZ.js";
6
6
  import {
7
7
  composeBlock,
8
8
  gitattributesSpec,
@@ -56,32 +56,36 @@ function renderPackageJson({ appName, sdkVersion }, preset, choice = defaultThem
56
56
  // Scaffolds written before the default flipped still pass `--lock`, and
57
57
  // it stays accepted for exactly that reason.
58
58
  "xano:export": `npm run xano:routes && ${check} && xanosdk export ./xano/index.ts --out workspace.json`,
59
- // Runs `build` rather than `check` directly: `--static ./frontend/dist`
60
- // needs that directory to EXIST, and only `vite build` writes it. Pointing
61
- // the flag at a directory the script never produced meant a fresh clone
62
- // running the one documented command had no `dist` to ship.
63
- // `build` already prefixes the same typecheck, so this is one check, not
64
- // two.
65
- "xano:deploy": `npm run build && xanosdk deploy ./xano/index.ts --static ./frontend/dist`,
66
- // The tight loop: redeploy the backend to an engine on this machine.
59
+ // The default deploy, and the tight loop: redeploy the backend to the
60
+ // Xano Engine on this machine. It needs no Xano account, so a fresh
61
+ // scaffold runs it before anyone signs in.
67
62
  //
68
63
  // No `--static` and no `npm run build`, and both omissions are the point
69
64
  // rather than an economy: there is no frontend to ship here. The dev
70
65
  // server is still serving it, and the deploy points that server at the
71
66
  // engine on its way past, so the loop is backend-only by design.
72
- // (`--static` does work on a local engine, for a built frontend the
67
+ // (`--static` does work on a Xano Engine, for a built frontend the
73
68
  // engine itself should serve; this loop has none.)
74
69
  //
75
- // The flag is bare deliberately. The engine's download URL is passed by
76
- // hand once and cached for every run after; baking one into a scaffolded
77
- // project would ship a coordinate that is not this project's to carry.
70
+ // No `--local`: the Xano Engine is where a bare deploy goes, and the
71
+ // project's pinned version is what it runs. Baking an engine version or
72
+ // URL into a scaffolded project would ship a coordinate that is not this
73
+ // project's to carry.
78
74
  //
79
75
  // `--keep-data`, because the engine is the developer's own backend and
80
76
  // this loop runs once per code change: each run merges into what the last
81
77
  // one left, so rows entered through the app survive the edit. The first
82
78
  // run, and the first after the engine restarts, replaces and seeds.
83
79
  // `--reset` on the command line still gives a clean slate.
84
- "xano:deploy:local-engine": `npm run xano:routes && ${check} && xanosdk deploy ./xano/index.ts --local-engine --keep-data`,
80
+ "xano:deploy": `npm run xano:routes && ${check} && xanosdk deploy ./xano/index.ts --keep-data`,
81
+ // The cloud deploy: backend and built frontend to an ephemeral.
82
+ // Runs `build` rather than `check` directly: `--static ./frontend/dist`
83
+ // needs that directory to EXIST, and only `vite build` writes it. Pointing
84
+ // the flag at a directory the script never produced meant a fresh clone
85
+ // running the documented command had no `dist` to ship.
86
+ // `build` already prefixes the same typecheck, so this is one check, not
87
+ // two.
88
+ "xano:deploy:ephemeral": `npm run build && xanosdk deploy ./xano/index.ts --ephemeral --static ./frontend/dist`,
85
89
  // The frontend-only loop: rebuild and republish to the environment this
86
90
  // project last deployed to, without recompiling or re-importing the
87
91
  // backend. `build` runs first because publish ships only what is on disk.
@@ -190,9 +194,9 @@ function renderViteConfig(preset) {
190
194
  const header = root === null ? `// Vite's root is the project root. The framework resolves its own file
191
195
  // locations from the plugin config below \u2014 this file is the ONLY place that
192
196
  // config lives \u2014 and routes the build through its adapter, which writes
193
- // frontend/dist, the directory \`npm run xano:deploy\` ships as the frontend.` : `// Vite's root is the ${root}/ folder, so index.html and the app live there
197
+ // frontend/dist, the directory \`npm run xano:deploy:ephemeral\` ships as the frontend.` : `// Vite's root is the ${root}/ folder, so index.html and the app live there
194
198
  // while the Xano SDK backend sits in xano/ as a peer. The build lands in
195
- // ${root}/dist, which \`npm run xano:deploy\` ships as the static frontend.`;
199
+ // ${root}/dist, which \`npm run xano:deploy:ephemeral\` ships as the static frontend.`;
196
200
  const rootBlock = root === null ? "" : ` root: ${JSON.stringify(root)},
197
201
  // Vite resolves \`.env\` files against \`root\`, which is ${root}/ here \u2014 but
198
202
  // \`.env.example\` sits at the project root, so that is where anyone will
@@ -401,69 +405,99 @@ ${version === void 0 ? "" : ` with:
401
405
  }
402
406
  function renderEnvExample() {
403
407
  return `# Point the frontend at a deployed Xano backend. Leave unset to run the UI
404
- # with no backend. When you \`npm run xano:deploy\`, the backend URL is injected
405
- # as window.XANO_HOST at runtime instead \u2014 no rebuild needed.
408
+ # with no backend. \`npm run xano:deploy\` writes the Xano Engine's URL to
409
+ # .env.local for you. After \`npm run xano:deploy:ephemeral\`, the backend URL is
410
+ # injected as window.XANO_HOST at runtime instead \u2014 no rebuild needed.
406
411
  VITE_XANO_HOST=https://your-instance.xano.io
407
412
  `;
408
413
  }
414
+ var XANO_BADGE = "[![Built on Xano](https://img.shields.io/badge/built_on-Xano-0055FF)](https://xano.com)";
415
+ function renderReadmeLearnMore() {
416
+ return `## Learn more
417
+
418
+ - [Xano SDK guides](https://github.com/xano-sdk/sdk/blob/main/guides/README.md) \u2014 signing in
419
+ and deploying, releasing to production, the typed frontend, every CLI command.
420
+ - [Xano](https://xano.com) is the platform this app deploys to: the database, APIs, auth,
421
+ background tasks, realtime, file storage and AI agents behind \`xano/\`, with
422
+ [docs](https://docs.xano.com) and a [community](https://community.xano.com).`;
423
+ }
409
424
  function renderReadme({ appName, install }, preset, choice = defaultThemeChoice()) {
410
425
  return `# ${appName}
411
426
 
412
- A [Xano SDK](https://www.npmjs.com/package/@xano/sdk) project: a Xano
413
- backend authored in TypeScript under [\`xano/\`](xano/), and a ${preset.label}
414
- frontend under [\`frontend/\`](frontend/) that derives its request paths and
415
- types from the backend defs \u2014 so the two can't drift.
427
+ ${XANO_BADGE}
428
+
429
+ A full-stack app on [Xano](https://xano.com). The backend is TypeScript under
430
+ [\`xano/\`](xano/), authored with the [Xano SDK](https://github.com/xano-sdk/sdk). It runs on
431
+ your machine on the **Xano Engine**, and one command deploys it to Xano's cloud. The
432
+ ${preset.label} frontend under [\`frontend/\`](frontend/) takes its request paths and types
433
+ from the backend defs, so the two can't drift.
416
434
 
417
435
  ## Quick start
418
436
 
419
437
  \`\`\`bash
420
438
  ${install?.manager ?? "npm"} install${install?.ignoreWorkspace === true ? " --ignore-workspace" : ""}
421
- npm run dev # run the frontend (no backend needed yet)
439
+ npm run xano:deploy # run the backend on the Xano Engine, on this machine
440
+ npm run dev # run the frontend, already pointed at it
422
441
  \`\`\`
423
442
 
424
- Then author your backend in [\`xano/index.ts\`](xano/index.ts) \u2014 start with the
425
- walkthrough in [\`xano/EXAMPLE.md\`](xano/EXAMPLE.md).
426
-
427
- ## Deploy
443
+ No Xano account needed. Then author your backend in [\`xano/index.ts\`](xano/index.ts),
444
+ starting with the walkthrough in [\`xano/EXAMPLE.md\`](xano/EXAMPLE.md), and rerun
445
+ \`npm run xano:deploy\` after each change.
446
+
447
+ ## Run it on your machine
448
+
449
+ The Xano Engine is Xano running on your machine. \`npm run xano:deploy\` typechecks the
450
+ backend and deploys it to the engine: no sign-in, and no network round-trip.
451
+ It prints the backend URL, a link that opens Xano's visual builder on the engine, and
452
+ points \`npm run dev\` at it through \`.env.local\` (restart the dev server if it was already
453
+ running).
454
+
455
+ - **It works on a fresh machine with nothing set.** The first run downloads the latest
456
+ engine once per machine and pins its version in \`package.json\`. Commit that change, so
457
+ everyone on the project runs the same engine.
458
+ - **It keeps your table rows across redeploys** (\`--keep-data\`). The first run seeds and
459
+ later runs merge your changes in without re-seeding. Rows survive only in tables and columns that keep
460
+ their names (a rename drops the old one with its rows), and only while the engine runs. An
461
+ engine update or restart starts it empty and the next run seeds again.
462
+ \`npm run xano:deploy -- --reset\` gives a clean, re-seeded slate.
463
+ - **Updates are yours to take.** When a newer engine ships, a deploy offers it and never
464
+ applies it without a yes. \`npx xanosdk local update\` moves the pin on purpose,
465
+ and \`npx xanosdk local cache clear\` reclaims the disk space. To try another engine
466
+ without moving the pin, export \`XANOSDK_ENGINE_OVERRIDE\` with a version (\`v0.1.5\`)
467
+ or an engine archive path.
468
+ - **The rest of the CLI follows.** After a local deploy, \`npm run xano:test\`,
469
+ \`npx xanosdk tables\` and \`npx xanosdk status\` reach the engine with no flag.
470
+ \`npx xanosdk local stop <name>\` shuts it down.
471
+
472
+ ## Deploy to Xano's cloud
428
473
 
429
474
  \`\`\`bash
430
- npx xanosdk login # once, to authenticate against your Xano account
431
- npm run xano:deploy # build the frontend, then ship it with the backend
475
+ npx xanosdk login # once, to authenticate against your Xano account
476
+ npm run xano:deploy:ephemeral # build the frontend, then ship it with the backend
432
477
  \`\`\`
433
478
 
434
- - \`npm run xano:deploy:local-engine\` redeploys just the backend to a local engine,
435
- for a tight loop with no network round-trip. Keep \`npm run dev\` running \u2014 the
436
- deploy points it at the engine. It works on a fresh machine with nothing set: the
437
- first run downloads the latest engine once per machine and pins its version in
438
- \`package.json\` (commit that change, so everyone on the project runs the same
439
- engine). When a newer engine ships, a deploy offers it and never applies it without
440
- a yes; \`npx xanosdk local-engine update\` moves the pin on purpose, and
441
- \`npx xanosdk local-engine cache clear\` reclaims the disk space. To try another engine
442
- without moving the pin, export \`XANOSDK_LOCAL_ENGINE_OVERRIDE\` with a version
443
- (\`v0.1.5\`) or an engine archive path. It keeps the engine's
444
- table rows across redeploys (\`--keep-data\`): the first run seeds, later runs merge
445
- your changes in without re-seeding. Rows survive only in tables and columns that
446
- keep their names \u2014 a rename drops the old one with its rows \u2014 and only while the
447
- engine runs; an engine update or restart starts it empty and the next run seeds
448
- again. \`npm run xano:deploy:local-engine -- --reset\` gives a clean, re-seeded slate.
479
+ That deploys the backend and the built frontend to a live **ephemeral** environment on
480
+ Xano and prints its URL. Run it again to refresh the same environment; if it expired, a
481
+ fresh one is created and the new URL is called out. \`npx xanosdk status\` says who you
482
+ are signed in as, which workspace you are bound to, and which environment this project
483
+ last deployed to \u2014 its URL, and when it expires \u2014 so you never have to remember the
484
+ environment's name. Your **workspace** is reached through a release (\`deploy --ephemeral --test\`,
485
+ \`release create\`, \`promote\`); see the
486
+ [deploying guide](https://github.com/xano-sdk/sdk/blob/main/guides/deploying.md).
487
+
488
+ The other scripts:
489
+
449
490
  - \`npm run xano:deploy:frontend\` rebuilds the frontend and republishes it to the
450
491
  environment this project last deployed to \u2014 no backend compile or import, so it
451
- is the quick loop for UI-only changes. \`publish\` does not reach a local engine, so after
452
- a local-engine deploy run it as \`npm run xano:deploy:frontend -- --to ephemeral\`, or
453
- have the engine serve a build with \`--static ./frontend/dist\` on the local deploy.
454
- \`npx xanosdk publish ./frontend/dist --to workspace\` puts the same build in front of
455
- your real workspace instead.
456
- - \`npm run xano:export\` compiles the backend to \`workspace.json\` (don't commit it).
457
- - \`npm run xano:deploy\` deploys the backend and the built frontend to a live
458
- **ephemeral** environment and prints its URL. Run it again to refresh the same
459
- environment; if it expired, a fresh one is created and the new URL is called out.
460
- - \`npx xanosdk status\` says who you are signed in as, which workspace you are bound to, and
461
- which environment this project last deployed to \u2014 its URL, and when it expires. You
462
- never have to remember the environment's name.
492
+ is the quick loop for UI-only changes. After \`npm run xano:deploy\` the engine serves
493
+ it; \`npm run xano:deploy:frontend -- --to ephemeral\` sends it to an ephemeral instead,
494
+ and \`npx xanosdk publish ./frontend/dist --to workspace\` puts the same build in front
495
+ of your real workspace.
463
496
  - \`npm run xano:test\` runs the tests the DEPLOYED environment carries \u2014 the \`tests\`
464
497
  on a query/function/middleware and any \`workflowTest()\`. It compiles nothing, so
465
498
  deploy first. A failing suite exits 5, distinct from a crash. \`npx xanosdk deploy
466
499
  ./xano/index.ts --test\` does both in one step.
500
+ - \`npm run xano:export\` compiles the backend to \`workspace.json\` (don't commit it).
467
501
 
468
502
  ## \`xano.lock\` \u2014 commit it
469
503
 
@@ -537,6 +571,8 @@ Xano SDK is composable with other \`@xano-sdk/*\` packages:
537
571
 
538
572
  None of these ship with the scaffold. Install one only when you need it \u2014 an
539
573
  add-on you never register is weight in \`package.json\` for nothing.
574
+
575
+ ${renderReadmeLearnMore()}
540
576
  `;
541
577
  }
542
578
  function renderXanoIndex({ appName }) {
@@ -659,7 +695,7 @@ xano/
659
695
  \`workflowTest({ name, stack })\` when the behavior spans several objects.
660
696
  They live beside the code they cover and ship with it. See "Testing" below.
661
697
  6. **Compile** with \`npm run xano:export\`, and **deploy** with
662
- \`npm run xano:deploy\` (after \`npx xanosdk login\`). The first of either writes
698
+ \`npm run xano:deploy\` (it runs on the Xano Engine; no account needed). The first of either writes
663
699
  \`xano/xano.lock\` \u2014 **commit it**. It pins every object's identity, so a later
664
700
  rename renames the object instead of deleting and recreating it. See
665
701
  "\`xano.lock\` \u2014 commit it" in the project README.
@@ -720,8 +756,8 @@ function describeOrigin(o) {
720
756
  return `workspace ${o.origin}`;
721
757
  case "ephemeral":
722
758
  return `ephemeral "${o.origin}"`;
723
- case "local-engine":
724
- return `local engine "${o.origin}"`;
759
+ case "local":
760
+ return `Xano Engine "${o.origin}"`;
725
761
  case "tenant":
726
762
  return `tenant "${o.origin}"`;
727
763
  case "release":
@@ -776,16 +812,21 @@ cleartext, which is why it is gitignored too.
776
812
  `;
777
813
  return `# ${appName}
778
814
 
779
- A [Xano SDK](https://www.npmjs.com/package/@xano/sdk) project pulled from
780
- ${describeCommittedOrigin(origin)}. The Xano backend lives in [\`xano/\`](xano/) as readable
781
- TypeScript; the ${preset.label} frontend under [\`frontend/\`](frontend/) is a starter \u2014
782
- the pull carries a backend, not a UI.
815
+ ${XANO_BADGE}
816
+
817
+ A full-stack app on [Xano](https://xano.com), pulled from
818
+ ${describeCommittedOrigin(origin)} with the [Xano SDK](https://github.com/xano-sdk/sdk). The Xano
819
+ backend lives in [\`xano/\`](xano/) as readable TypeScript; the ${preset.label} frontend
820
+ under [\`frontend/\`](frontend/) is a starter \u2014 the pull carries a backend, not a UI.
783
821
 
784
- ## Deploy it
822
+ ## Run it
785
823
 
786
824
  \`\`\`bash
787
- npx xanosdk login # once, to authenticate against your Xano account
788
- npm run xano:deploy # typecheck, build the frontend, ship both
825
+ npm run xano:deploy # on the Xano Engine, on this machine (no account needed)
826
+ npm run dev # the starter frontend, pointed at it
827
+
828
+ npx xanosdk login # once, to authenticate against your Xano account
829
+ npm run xano:deploy:ephemeral # typecheck, build the frontend, ship both to an ephemeral
789
830
  \`\`\`
790
831
 
791
832
  ## Read this before deploying
@@ -793,10 +834,11 @@ npm run xano:deploy # typecheck, build the frontend, ship both
793
834
  - **\`xano/\` is your source now** \u2014 edit it and commit it. \`npx xanosdk pull\` (or re-running
794
835
  \`npx xanosdk init --from\`) refreshes it from a backend: it lists what will change and asks
795
836
  first, keeps files you added, and overwrites the files it decodes \u2014 commit first.
796
- - **\`npx xanosdk deploy\` is a full replace** of an **ephemeral** environment or a local engine
797
- (\`npm run xano:deploy\`), unless \`--keep-data\` merges into the one an earlier deploy
798
- filled. A real workspace is reached with \`npx xanosdk promote <release>\` or
799
- \`npx xanosdk deploy --to workspace\`, which merge and leave table rows alone.
837
+ - **\`npx xanosdk deploy\` is a full replace** of a Xano Engine or an **ephemeral** environment
838
+ (\`npm run xano:deploy:ephemeral\`), unless \`--keep-data\` merges into the one an earlier deploy
839
+ filled (\`npm run xano:deploy\` passes it). A real workspace is reached with
840
+ \`npx xanosdk promote <release>\` or \`npx xanosdk deploy --to workspace\`, which merge
841
+ and leave table rows alone.
800
842
  - **This is schema only.** Table rows are not carried, and neither are payload sections
801
843
  this SDK models no kind for. A deploy recreates the structure, not the data.
802
844
 
@@ -814,6 +856,8 @@ npm run xano:routes # regenerate xano/routes.gen.ts, the frontend's paths
814
856
 
815
857
  [\`frontend/src/lib/api.ts\`](frontend/src/lib/api.ts) shows the one contract: paths
816
858
  from \`routePath()\` in \`xano/routes.gen.ts\`, types from the query defs in \`xano/\`.
859
+
860
+ ${renderReadmeLearnMore()}
817
861
  `;
818
862
  }
819
863
  function renderReadmeThemingSection(choice) {
@@ -877,7 +921,7 @@ function initLanding({ appName }) {
877
921
  { text: ")." }
878
922
  ],
879
923
  [{ text: "Wire it into the UI from " }, { code: "frontend/src/lib/api.ts" }, { text: "." }],
880
- [{ text: "Ship it: " }, { code: "npm run xano:deploy" }, { text: "." }]
924
+ [{ text: "Run it on the Xano Engine: " }, { code: "npm run xano:deploy" }, { text: "." }]
881
925
  ],
882
926
  cta: UI_DOCS_CTA
883
927
  };
@@ -904,9 +948,9 @@ function codegenLanding({ appName }, origin) {
904
948
  { text: "." }
905
949
  ],
906
950
  [
907
- { text: "Ship it: " },
951
+ { text: "Run it on the Xano Engine: " },
908
952
  { code: "npm run xano:deploy" },
909
- { text: " (a full replace of an ephemeral env)." }
953
+ { text: " (a full replace of the Xano Engine)." }
910
954
  ]
911
955
  ],
912
956
  cta: UI_DOCS_CTA
@@ -1328,7 +1372,7 @@ export {};
1328
1372
  }
1329
1373
  function renderLayoutTs() {
1330
1374
  return `// There is no server. The backend is Xano, reached through $lib/api.ts,
1331
- // and \`npm run xano:deploy\` ships this app to a static host with no runtime.
1375
+ // and \`npm run xano:deploy:ephemeral\` ships this app to a static host with no runtime.
1332
1376
  //
1333
1377
  // prerender: true \u2014 every route is rendered to its own HTML file AT BUILD TIME
1334
1378
  // and served as a real document. That is what makes each page load as itself
@@ -1788,7 +1832,7 @@ becomes its own HTML document at build time, so a page loads as itself rather
1788
1832
  than as a shell that fills in afterwards, and an unmatched path returns a real
1789
1833
  404 from [\`+error.svelte\`](frontend/src/routes/+error.svelte).
1790
1834
 
1791
- > **There is no server.** \`npm run xano:deploy\` ships this app to a static host
1835
+ > **There is no server.** \`npm run xano:deploy:ephemeral\` ships this app to a static host
1792
1836
  > with no runtime of its own; Xano is the backend, reached through
1793
1837
  > [\`frontend/src/lib/api.ts\`](frontend/src/lib/api.ts). So \`+page.server.ts\`,
1794
1838
  > form actions, and server \`load\` have nothing to run on \u2014 and **nothing warns
@@ -1987,4 +2031,4 @@ export {
1987
2031
  allFrontendPresets,
1988
2032
  resolveFrameworkFlag
1989
2033
  };
1990
- //# sourceMappingURL=chunk-OPHB5ORL.js.map
2034
+ //# sourceMappingURL=chunk-57HMNJGB.js.map
@@ -1,27 +1,27 @@
1
1
  import {
2
2
  BranchHttpError,
3
3
  BranchTakenError
4
- } from "./chunk-E65QIWOO.js";
4
+ } from "./chunk-5RLAF6RL.js";
5
5
  import {
6
6
  SourceError
7
- } from "./chunk-2AUV6NXK.js";
7
+ } from "./chunk-JXKO6JT7.js";
8
8
  import {
9
9
  ReleaseHttpError
10
- } from "./chunk-A6QTTJUI.js";
10
+ } from "./chunk-3BJYQGAZ.js";
11
11
  import {
12
12
  ImportHttpError
13
- } from "./chunk-MEE5RZ6G.js";
13
+ } from "./chunk-5XVBT6CQ.js";
14
14
  import {
15
15
  TenantHttpError
16
- } from "./chunk-KCAL4QYP.js";
16
+ } from "./chunk-4GDEEY2U.js";
17
17
  import {
18
18
  TLS_CERTIFICATE_CODES,
19
19
  isTimeoutError,
20
20
  writeRefusedBy
21
- } from "./chunk-MN2PB6WB.js";
21
+ } from "./chunk-HLQH3AXB.js";
22
22
  import {
23
23
  UsageError
24
- } from "./chunk-SBR2WZXG.js";
24
+ } from "./chunk-XNZURZ7T.js";
25
25
 
26
26
  // src/emit/operation-outcome.ts
27
27
  var SettledWriteFailure = class extends Error {
@@ -82,4 +82,4 @@ export {
82
82
  SettledWriteFailure,
83
83
  classifyFailure
84
84
  };
85
- //# sourceMappingURL=chunk-O5V3YH5P.js.map
85
+ //# sourceMappingURL=chunk-5D6DGF3W.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-Z4VN347O.js";
7
7
  import {
8
8
  contextFlags
9
- } from "./chunk-SEUCZZCP.js";
9
+ } from "./chunk-G57RYMKB.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-HLQH3AXB.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-5RLAF6RL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  httpFailure
3
- } from "./chunk-MN2PB6WB.js";
3
+ } from "./chunk-HLQH3AXB.js";
4
4
 
5
5
  // src/deploy/import.ts
6
6
  var ImportHttpError = class extends Error {
@@ -23,4 +23,4 @@ export {
23
23
  ImportHttpError,
24
24
  isSignatureRefusal
25
25
  };
26
- //# sourceMappingURL=chunk-MEE5RZ6G.js.map
26
+ //# sourceMappingURL=chunk-5XVBT6CQ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  LOCK_PAYLOAD_KEYS,
3
3
  lockKey
4
- } from "./chunk-OOGXZL7Z.js";
4
+ } from "./chunk-OKNE3TWU.js";
5
5
 
6
6
  // src/lock/landed.ts
7
7
  function destinationKey(instance, dest) {
@@ -153,4 +153,4 @@ export {
153
153
  withoutLanding,
154
154
  landedOn
155
155
  };
156
- //# sourceMappingURL=chunk-RX3EMQGN.js.map
156
+ //# sourceMappingURL=chunk-5YBNXNKU.js.map
@@ -7,4 +7,4 @@ function sha256Hex(bytes) {
7
7
  export {
8
8
  sha256Hex
9
9
  };
10
- //# sourceMappingURL=chunk-NA3PXMEF.js.map
10
+ //# sourceMappingURL=chunk-64WWE3EF.js.map