@xano/sdk 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/CHANGELOG.md +32 -5
  2. package/README.md +250 -342
  3. package/dist/.build-fingerprint +1 -1
  4. package/dist/agent-file-refresh-67QIX45H.js +39 -0
  5. package/dist/{answer-shape-LVV2SVBK.js → answer-shape-UCDUKPAN.js} +6 -6
  6. package/dist/{backend-dir-WZADOK3L.js → backend-dir-3LIL6SCT.js} +16 -15
  7. package/dist/{backend-slot-NSCTWCUX.js → backend-slot-JREP27UD.js} +4 -4
  8. package/dist/bin.js +59 -58
  9. package/dist/{branch-ONWPJ4V6.js → branch-2IPHOAYS.js} +10 -10
  10. package/dist/{branch-commands-ZT2MJIRS.js → branch-commands-KTKAXBAN.js} +31 -32
  11. package/dist/bundle.js +9 -39
  12. package/dist/{capture-3JNUA6C2.js → capture-GW5KNKMB.js} +4 -4
  13. package/dist/{chunk-FPBGAT5D.js → chunk-26MOFAJT.js} +3 -3
  14. package/dist/{chunk-O7QOWS6M.js → chunk-2FLIJGBZ.js} +12 -12
  15. package/dist/{chunk-QAEQGT5I.js → chunk-2WBH5HUY.js} +7 -7
  16. package/dist/{chunk-37AHZ7JX.js → chunk-3BBIDW3Y.js} +6 -6
  17. package/dist/{chunk-DGWHAVRG.js → chunk-3EDSPMXN.js} +12 -1
  18. package/dist/{chunk-2AUV6NXK.js → chunk-3II44CUJ.js} +36 -36
  19. package/dist/{chunk-7GX445AE.js → chunk-4XHAT7C5.js} +2 -2
  20. package/dist/{chunk-OOXWYAA4.js → chunk-57A5ZKPO.js} +1 -1
  21. package/dist/{chunk-OOGXZL7Z.js → chunk-5KJBWIDZ.js} +84 -6
  22. package/dist/{chunk-5YL5OC2G.js → chunk-5QMJOE2K.js} +6 -6
  23. package/dist/{chunk-3H3EPMFY.js → chunk-5TVFLG3C.js} +2 -2
  24. package/dist/{chunk-WFMVKY7I.js → chunk-5YQV35C2.js} +9 -9
  25. package/dist/{chunk-NA3PXMEF.js → chunk-64WWE3EF.js} +1 -1
  26. package/dist/{chunk-FMOEVAGT.js → chunk-6X3MY2JP.js} +3 -3
  27. package/dist/{chunk-2LVTBPW2.js → chunk-6X6BJN6Y.js} +3 -3
  28. package/dist/{chunk-DYG5D3FD.js → chunk-763M6LX3.js} +16 -2
  29. package/dist/{chunk-EESV6NU2.js → chunk-7FIMUFBP.js} +2 -2
  30. package/dist/{chunk-CFSFBKHP.js → chunk-7GAIJW62.js} +2 -2
  31. package/dist/{chunk-6R7S775T.js → chunk-7REDHC4N.js} +2 -2
  32. package/dist/chunk-7VR4IO5B.js +44 -0
  33. package/dist/chunk-A7MRZ4GF.js +78 -0
  34. package/dist/{chunk-D5ZEAF4G.js → chunk-ATJ2W7DC.js} +81 -58
  35. package/dist/{chunk-BUJRS7XB.js → chunk-AVS4WPPY.js} +2 -2
  36. package/dist/{chunk-MEE5RZ6G.js → chunk-BL3AZ3AP.js} +2 -2
  37. package/dist/chunk-BTVUYHWV.js +111 -0
  38. package/dist/{chunk-T4DUFQ2S.js → chunk-CCU5CCRX.js} +5 -5
  39. package/dist/{chunk-5T2CTWTB.js → chunk-CHINR7WD.js} +6 -6
  40. package/dist/{chunk-VD32O6KZ.js → chunk-CJDPSCMX.js} +45 -5
  41. package/dist/{chunk-3HOGFGKG.js → chunk-D3KEPRRN.js} +2 -2
  42. package/dist/{chunk-SBR2WZXG.js → chunk-D7BUMOKU.js} +60 -53
  43. package/dist/{chunk-WRBKLYSJ.js → chunk-DNBP4GJN.js} +4 -3
  44. package/dist/{chunk-JTUKLCXS.js → chunk-DXUICABI.js} +1 -1
  45. package/dist/{chunk-XMDDBEEM.js → chunk-E763QI3G.js} +2 -2
  46. package/dist/{chunk-KTGRGWZW.js → chunk-EADVVTDK.js} +7 -7
  47. package/dist/{chunk-FJWZ5OVV.js → chunk-ENMBEXOP.js} +3 -3
  48. package/dist/{chunk-OPHB5ORL.js → chunk-EQFYOOO6.js} +171 -92
  49. package/dist/{chunk-WOGJB2F6.js → chunk-FNLTFOUD.js} +4 -9
  50. package/dist/{chunk-II747OWE.js → chunk-FQ53GTII.js} +10 -10
  51. package/dist/{chunk-JP7M7OU7.js → chunk-FU3VCE5A.js} +46 -27
  52. package/dist/{chunk-OGBMUST4.js → chunk-GHQ4BVI4.js} +14 -14
  53. package/dist/{chunk-45YPFB7B.js → chunk-GLY552SI.js} +84 -57
  54. package/dist/{chunk-QV3GXQRE.js → chunk-GOLFAEUV.js} +2 -2
  55. package/dist/{chunk-L2GLOJAO.js → chunk-GW5RHGOB.js} +22 -22
  56. package/dist/{chunk-A6QTTJUI.js → chunk-GWTFI3GA.js} +2 -2
  57. package/dist/{chunk-MCTIKRMN.js → chunk-GZHLCUZ6.js} +8 -8
  58. package/dist/{chunk-664LSWE5.js → chunk-HCG7NDIL.js} +4 -4
  59. package/dist/{chunk-7PMVIHB3.js → chunk-I3H3HCPY.js} +50 -29
  60. package/dist/{chunk-LIVN53UV.js → chunk-I3VHW6XM.js} +31 -31
  61. package/dist/{chunk-C4FHQA7R.js → chunk-IF4PEGVD.js} +8 -8
  62. package/dist/{chunk-WFG67AYS.js → chunk-IMELQ2I6.js} +3 -3
  63. package/dist/{chunk-3P3HXN76.js → chunk-ITC2R2OT.js} +11 -11
  64. package/dist/{chunk-W5ONYLOP.js → chunk-IXFJORNH.js} +4 -4
  65. package/dist/{chunk-HMLGM2MW.js → chunk-IYXL5NYU.js} +260 -32
  66. package/dist/{chunk-2B22WWKL.js → chunk-JFBRXRJD.js} +59 -35
  67. package/dist/chunk-JI3BLXWQ.js +107 -0
  68. package/dist/{chunk-4DJTQ6W4.js → chunk-JIKGT7DO.js} +2 -1
  69. package/dist/{chunk-O5V3YH5P.js → chunk-JRVQ7M7W.js} +8 -8
  70. package/dist/{chunk-4APOHK7Y.js → chunk-JXVJGF3Y.js} +2 -2
  71. package/dist/chunk-KPFS3RGM.js +257 -0
  72. package/dist/{chunk-PML67X22.js → chunk-LAOMN6QQ.js} +3 -3
  73. package/dist/{chunk-TTVAHCWP.js → chunk-LBJA7IEM.js} +370 -45
  74. package/dist/{chunk-KUTFFHUM.js → chunk-LD6ARK3A.js} +2 -2
  75. package/dist/{chunk-HUSH7LRI.js → chunk-LL7SGTRC.js} +36 -33
  76. package/dist/{chunk-I2BGYNHD.js → chunk-M5CSVB23.js} +7 -7
  77. package/dist/{chunk-UCQ2VUTG.js → chunk-M6ZFSTIZ.js} +2 -2
  78. package/dist/{chunk-MNVDVR3M.js → chunk-MBDFH7XB.js} +4 -4
  79. package/dist/{chunk-QXTKSOFI.js → chunk-MF4W6FHU.js} +1 -1
  80. package/dist/{chunk-RX3EMQGN.js → chunk-MFWF2NZJ.js} +12 -5
  81. package/dist/{chunk-SEUCZZCP.js → chunk-N5I37JFB.js} +3 -3
  82. package/dist/{chunk-IJ3SXSZM.js → chunk-ND43ZOS3.js} +6 -6
  83. package/dist/chunk-NDWVJ2QZ.js +67 -0
  84. package/dist/{chunk-E65QIWOO.js → chunk-NPODGBVJ.js} +4 -4
  85. package/dist/{chunk-CYB7UQA2.js → chunk-OIKLDDYC.js} +5 -5
  86. package/dist/{chunk-MLGI2SRQ.js → chunk-PFBXSVZF.js} +4 -4
  87. package/dist/{chunk-AM4FKL4J.js → chunk-PL7AIAWS.js} +12 -12
  88. package/dist/{chunk-S7E2AHV3.js → chunk-PMMHSX4H.js} +26 -9
  89. package/dist/{chunk-WL2DSNJV.js → chunk-Q22BMRPF.js} +2 -2
  90. package/dist/{chunk-3FN2BIGB.js → chunk-QJM5XZ4K.js} +6 -6
  91. package/dist/{chunk-EWCDPFW5.js → chunk-QXYMDARD.js} +4 -4
  92. package/dist/{chunk-MLPDSGJQ.js → chunk-QZEAANWP.js} +5 -5
  93. package/dist/{chunk-ESZ2FF57.js → chunk-RIN4YY34.js} +88 -74
  94. package/dist/{chunk-37FBPMNE.js → chunk-S56YBYMN.js} +5 -2
  95. package/dist/{chunk-CBYQ2ZN3.js → chunk-SKEG3V2V.js} +2 -2
  96. package/dist/{chunk-4PQHO74B.js → chunk-SLGJIWCY.js} +4 -4
  97. package/dist/{chunk-IVKRT476.js → chunk-SPITRSOF.js} +2 -2
  98. package/dist/{chunk-BUECLQXK.js → chunk-SPKA2LV6.js} +4 -4
  99. package/dist/{chunk-HHW5AWVD.js → chunk-SSITMX7I.js} +30 -30
  100. package/dist/{chunk-OPG4DYX2.js → chunk-T4LJ5UR2.js} +29 -7
  101. package/dist/{chunk-LXNQWHZM.js → chunk-TECTL2NU.js} +4 -4
  102. package/dist/{chunk-E6H5ZEV3.js → chunk-TTEIDD5Q.js} +3 -3
  103. package/dist/{chunk-6VBTPV2Y.js → chunk-U35MTOXQ.js} +3 -3
  104. package/dist/{chunk-UKUIUS3E.js → chunk-U6MTGB46.js} +5 -5
  105. package/dist/{chunk-Y2ZLKBM6.js → chunk-UD2Z7K6W.js} +4 -4
  106. package/dist/{chunk-IXUPUFCG.js → chunk-UIVMR7UK.js} +2 -2
  107. package/dist/{chunk-UDE5C2XN.js → chunk-VDHA5SSQ.js} +3 -3
  108. package/dist/{chunk-5W7DOMIU.js → chunk-VJFMUJWZ.js} +4 -4
  109. package/dist/{chunk-XNCP4KYO.js → chunk-VQPDATQT.js} +1 -1
  110. package/dist/{chunk-KCAL4QYP.js → chunk-VW4CWVYX.js} +4 -4
  111. package/dist/chunk-WAVNUTMT.js +9 -0
  112. package/dist/{chunk-DIG3NITC.js → chunk-WBH4KJWM.js} +3 -3
  113. package/dist/{chunk-HSEQYBDO.js → chunk-WZHLMU6T.js} +3 -3
  114. package/dist/{chunk-WYEQFD6A.js → chunk-XFBGXB7X.js} +173 -105
  115. package/dist/{chunk-UI4OPTYR.js → chunk-Y453TW6J.js} +2 -2
  116. package/dist/{chunk-LUTMOHOW.js → chunk-YGLMRH5U.js} +9 -9
  117. package/dist/{chunk-GPI3OWRE.js → chunk-YHB34BN6.js} +2 -1
  118. package/dist/{chunk-5WGVIXMD.js → chunk-YKP4ZKVO.js} +14 -10
  119. package/dist/{chunk-MN2PB6WB.js → chunk-YR2I5HGE.js} +3 -3
  120. package/dist/{chunk-ZG7E72VI.js → chunk-YYC2DZMG.js} +7 -7
  121. package/dist/{chunk-D64XUF5Q.js → chunk-YYLUBYXM.js} +16 -16
  122. package/dist/{chunk-VRVKNY4A.js → chunk-Z4ZGTCCD.js} +8 -8
  123. package/dist/{chunk-44B4V2LR.js → chunk-ZDP6GDAB.js} +142 -142
  124. package/dist/{chunk-ET5DSBAC.js → chunk-ZJSTUD6D.js} +8 -8
  125. package/dist/cli.d.ts +36 -26
  126. package/dist/cli.js +57 -56
  127. package/dist/{codegen-command-HTWIW56U.js → codegen-command-R5IASBFC.js} +78 -72
  128. package/dist/codegen.d.ts +2 -2
  129. package/dist/codegen.js +2 -2
  130. package/dist/{commands-CVFYC4GK.js → commands-H7CPMMHH.js} +3 -3
  131. package/dist/{completion-AUEQC4XJ.js → completion-W5ZAI6TN.js} +12 -12
  132. package/dist/{config-JU6OQC77.js → config-MZ5KG4EP.js} +5 -5
  133. package/dist/{deploy-command-5WTFHMBT.js → deploy-command-34T2LKQ5.js} +64 -63
  134. package/dist/deploy-source-YLQ7WMYR.js +82 -0
  135. package/dist/{dev-env-sync-X636HLMK.js → dev-env-sync-TMJTNU3U.js} +58 -57
  136. package/dist/{diagnostics-LSMGB4TY.js → diagnostics-OMN5Y2AH.js} +2 -2
  137. package/dist/{display-name-hint-DMORHANO.js → display-name-hint-ZJGFNJKQ.js} +12 -12
  138. package/dist/{emit-hOFbgzde.d.ts → emit-D125xxty.d.ts} +67 -21
  139. package/dist/env-example-refresh-CQP3ZMKM.js +133 -0
  140. package/dist/{env-pull-command-WZZ7RL2E.js → env-pull-command-UTG6IC2K.js} +53 -53
  141. package/dist/{env-target-PO3MOLH5.js → env-target-FZROWYFS.js} +14 -14
  142. package/dist/{env-var-command-YKTJZFJN.js → env-var-command-VYDBQJJW.js} +51 -50
  143. package/dist/{ephemeral-BMFY55BQ.js → ephemeral-BIE6FMJV.js} +10 -10
  144. package/dist/{ephemeral-command-VDSQCOYL.js → ephemeral-command-OZ26RGXF.js} +54 -54
  145. package/dist/{ephemeral-state-6TY4JIPA.js → ephemeral-state-SNZOX2YK.js} +12 -12
  146. package/dist/{generate-command-3NTNRQRS.js → generate-command-4HR7MR36.js} +87 -79
  147. package/dist/{gitignore-FWPEDX6C.js → gitignore-EWQBXNX2.js} +20 -19
  148. package/dist/{guards-EJU2ONAX.js → guards-KYEOCVHN.js} +7 -7
  149. package/dist/{hosted-file-PSHJB3HX.js → hosted-file-S7YUQAH6.js} +2 -2
  150. package/dist/{impersonate-command-QEJA72Q2.js → impersonate-command-WC7OGKUM.js} +44 -43
  151. package/dist/{import-TBTOTU52.js → import-7Z4GCCPO.js} +6 -6
  152. package/dist/index.d.ts +14 -20
  153. package/dist/index.js +14 -14
  154. package/dist/init-command-HAO3WXH3.js +128 -0
  155. package/dist/{init-modules-HZRQFRLE.js → init-modules-NSKD4ASY.js} +12 -11
  156. package/dist/{init-web-Y2PBNJTQ.js → init-web-MKFFOQUU.js} +3 -3
  157. package/dist/internal.d.ts +5 -5
  158. package/dist/internal.js +61 -35
  159. package/dist/{io-ZUKAGFVE.js → io-PGTCBSIQ.js} +7 -5
  160. package/dist/{keep-data-merge-X5LDDCI3.js → keep-data-merge-QR2TMKEO.js} +33 -34
  161. package/dist/{lambda-config-reconcile-OUZ4OYAB.js → lambda-config-reconcile-7FJXXV6V.js} +4 -4
  162. package/dist/{landed-6VO7CX5P.js → landed-F7PCHGCK.js} +4 -4
  163. package/dist/{landing-record-QYECWLQ5.js → landing-record-MWXFIRCP.js} +26 -25
  164. package/dist/{live-diff-2S7E3SBZ.js → live-diff-5E2BQWQ7.js} +10 -9
  165. package/dist/local-engine-choice-VD5LNXJU.js +80 -0
  166. package/dist/{local-engine-command-HMTQK7MN.js → local-engine-command-RYLGMQ2O.js} +96 -95
  167. package/dist/{local-engine-config-5U3SC434.js → local-engine-config-W3KB7RWM.js} +2 -2
  168. package/dist/{local-engine-deploy-TXAOYRGF.js → local-engine-deploy-6O7NKZCA.js} +17 -17
  169. package/dist/{local-engine-process-6VZ7JJBP.js → local-engine-process-ZLLZEIRF.js} +12 -12
  170. package/dist/{local-engine-state-TJWPWCC4.js → local-engine-state-OCW5YDD7.js} +3 -3
  171. package/dist/{local-engine-update-check-R5SPDVEJ.js → local-engine-update-check-LVX4HBBI.js} +8 -8
  172. package/dist/{lock-TS465GVY.js → lock-HDCHD2ON.js} +5 -3
  173. package/dist/{lock-commands-4VT3L5W5.js → lock-commands-X2OECR4R.js} +62 -61
  174. package/dist/{login-command-O6WA4FYL.js → login-command-RLLKD565.js} +31 -30
  175. package/dist/{logout-command-6CPWGFY2.js → logout-command-XDMSXCDO.js} +17 -17
  176. package/dist/{loop-UFHKSOQ4.js → loop-SUB6C2LK.js} +9 -10
  177. package/dist/{marketplace-command-HKACSYKS.js → marketplace-command-2NHHY2X3.js} +89 -53
  178. package/dist/{marketplace-resolve-KLFYVRWS.js → marketplace-resolve-OTZYT4FG.js} +9 -8
  179. package/dist/{meta-client-73PX6UGJ.js → meta-client-TMHVBZFY.js} +15 -15
  180. package/dist/{module-manifest-GIKFNXPE.js → module-manifest-FNMW23IX.js} +7 -4
  181. package/dist/node.d.ts +5 -5
  182. package/dist/node.js +63 -63
  183. package/dist/operation-outcome-RN62735X.js +51 -0
  184. package/dist/{output-target-SZMBNYF4.js → output-target-MOLCTPBP.js} +21 -20
  185. package/dist/{package-manager-PRAHUSCN.js → package-manager-K762W7XT.js} +2 -2
  186. package/dist/{plan-disclosure-BHYG7TZ7.js → plan-disclosure-CY7AF6KP.js} +21 -22
  187. package/dist/{plugin-contributions-X4V22PJQ.js → plugin-contributions-WR26U7NT.js} +6 -6
  188. package/dist/{plugin-prompt-DKNQHW6Y.js → plugin-prompt-ZUYQQIX4.js} +5 -5
  189. package/dist/{plugin-questions-CQRVOWFK.js → plugin-questions-HAZOQ67R.js} +4 -4
  190. package/dist/plugin.d.ts +254 -10
  191. package/dist/{preflight-command-EBQ6XQF3.js → preflight-command-OHJXYND3.js} +70 -70
  192. package/dist/{profile-command-NPKBJYPM.js → profile-command-6JWT2BTL.js} +33 -32
  193. package/dist/{profile-pointer-UOO7JNFG.js → profile-pointer-PDA5XBIB.js} +5 -5
  194. package/dist/{profile-select-74TRDEPD.js → profile-select-45G5VPJK.js} +2 -2
  195. package/dist/{project-dependency-RRMTWOPC.js → project-dependency-GZWWGWEW.js} +13 -10
  196. package/dist/{project-sdk-FOR4IOXL.js → project-sdk-3W72H5QO.js} +4 -4
  197. package/dist/promote-command-UYAMUXKB.js +146 -0
  198. package/dist/{prompt-5GUQTCSP.js → prompt-U37K5RPQ.js} +4 -4
  199. package/dist/{publish-command-LGLZBOCB.js → publish-command-BUS27HGB.js} +138 -66
  200. package/dist/pull-command-ZGUNP27P.js +168 -0
  201. package/dist/{pull-superseded-GGURV5J3.js → pull-superseded-EZBGYRZF.js} +4 -4
  202. package/dist/{raw-where-EoWl5fqY.d.ts → raw-where-ZMLND6AG.d.ts} +20 -3
  203. package/dist/release-command-BQ6OHS3P.js +150 -0
  204. package/dist/{release-ns-command-EIBN3JVM.js → release-ns-command-ATGVBVIU.js} +94 -94
  205. package/dist/{retry-command-Y5YJGOH3.js → retry-command-QJ57WVW7.js} +9 -9
  206. package/dist/{routes-manifest-3BNZIVST.js → routes-manifest-YR4ZIMLM.js} +16 -8
  207. package/dist/routes-manifest-file-UALYSZLY.js +41 -0
  208. package/dist/scaffold.js +3 -3
  209. package/dist/{secrets-file-FUG7WCES.js → secrets-file-LMS7KX3E.js} +20 -19
  210. package/dist/{secrets-fill-command-QEOCUOAY.js → secrets-fill-command-QNBDGCGM.js} +61 -60
  211. package/dist/{seed-GJHJSEUE.js → seed-SZ6OS5DQ.js} +9 -9
  212. package/dist/{source-resolve-DMDZVPMM.js → source-resolve-MKLNYFWG.js} +24 -24
  213. package/dist/{static-host-WM24RG25.js → static-host-ONEHA4LI.js} +10 -10
  214. package/dist/{status-command-XUH5OGQX.js → status-command-XKIFKBGM.js} +57 -56
  215. package/dist/{store-CfgPaVPO.d.ts → store-Bg4Na6Sm.d.ts} +4 -4
  216. package/dist/{store-MR7IKXKK.js → store-X6ZH7EC3.js} +7 -7
  217. package/dist/sveltekit.d.ts +5 -5
  218. package/dist/sveltekit.js +1 -1
  219. package/dist/sync-baseline-DOV5AGIO.js +36 -0
  220. package/dist/{sync-contributions-DHP7XSTX.js → sync-contributions-HNVHDIQW.js} +21 -13
  221. package/dist/sync-record-PRXHLK4S.js +42 -0
  222. package/dist/{table-ZBDPKMNH.js → table-DC36QA4Y.js} +10 -10
  223. package/dist/{tables-command-X3JK7VSK.js → tables-command-UQLKTELN.js} +44 -43
  224. package/dist/{tenant-GKXMOYLK.js → tenant-EKNQGG5A.js} +11 -11
  225. package/dist/{tenant-command-P27EQHBU.js → tenant-command-2LWP2MPB.js} +105 -100
  226. package/dist/{test-command-A4G2FP7G.js → test-command-IU5MBBXY.js} +44 -43
  227. package/dist/{tests-C55M5EQS.js → tests-RG2Y5EQ4.js} +7 -7
  228. package/dist/{token-CMAB35GD.js → token-7AWSJLKO.js} +13 -13
  229. package/dist/toolchain-hooks-4ZMQLBPQ.js +46 -0
  230. package/dist/{toolchain-modules-3M7QDJBV.js → toolchain-modules-VU7SURVJ.js} +9 -6
  231. package/dist/toolchain-peers-CIDNEEQV.js +28 -0
  232. package/dist/tracked-backend-4BHSV7NC.js +81 -0
  233. package/dist/{update-check-LNNKIMML.js → update-check-A7FXIINW.js} +60 -59
  234. package/dist/{upgrade-command-7EUXML3P.js → upgrade-command-C5KBITFI.js} +64 -63
  235. package/dist/{whoami-command-KNWFWAX6.js → whoami-command-7WQII2H4.js} +16 -16
  236. package/dist/{workspace-TGPYOODG.js → workspace-Z46PUZNI.js} +6 -6
  237. package/dist/{workspace-binding-2TWZBHQY.js → workspace-binding-JE6YNDZJ.js} +15 -15
  238. package/dist/{workspace-command-T7Z2BDHD.js → workspace-command-FC4IMLAE.js} +119 -88
  239. package/dist/{workspace-env-VA7XN3UX.js → workspace-env-N4ZPFT6A.js} +17 -16
  240. package/dist/{workspace-export-AIGM6LC7.js → workspace-export-3A5BZTPS.js} +6 -6
  241. package/dist/{writable-FYJBTJOU.js → writable-D7KCZI5N.js} +4 -4
  242. package/dist/{xano-BSHYVFSE.js → xano-LCI7VWPS.js} +9 -9
  243. package/dist/{xanosdk-import-J6SRBZHW.js → xanosdk-import-P2A2KSXM.js} +10 -10
  244. package/dist/xanosdk-project-6AGMW2SL.js +42 -0
  245. package/guides/README.md +1 -0
  246. package/guides/authoring.md +3 -5
  247. package/guides/bundle.md +45 -0
  248. package/guides/cli.md +36 -34
  249. package/guides/codegen.md +5 -4
  250. package/guides/codes.md +16 -11
  251. package/guides/deploying.md +115 -58
  252. package/guides/environment.md +13 -13
  253. package/guides/marketplace.md +21 -0
  254. package/guides/module-contract.md +80 -4
  255. package/guides/project-structure.md +14 -0
  256. package/guides/typed-frontend.md +37 -0
  257. package/llms/client.md +14 -5
  258. package/llms/errors.md +1 -1
  259. package/llms/filters.md +4 -0
  260. package/llms/kinds-core.md +1 -1
  261. package/llms/statements-data.md +3 -2
  262. package/llms/tests.md +2 -2
  263. package/llms/toolchain.md +12 -0
  264. package/llms-full.txt +47 -21
  265. package/llms.txt +10 -10
  266. package/manifest.json +110 -107
  267. package/package.json +4 -4
  268. package/dist/agent-file-refresh-LB6KIMFY.js +0 -38
  269. package/dist/chunk-XXZZGXW2.js +0 -243
  270. package/dist/deploy-source-5CET3A5D.js +0 -81
  271. package/dist/env-example-refresh-ZO6XAV44.js +0 -127
  272. package/dist/init-command-27SFBW2F.js +0 -126
  273. package/dist/local-engine-choice-6BSPEG3E.js +0 -79
  274. package/dist/operation-outcome-2P4BVSEV.js +0 -51
  275. package/dist/promote-command-4F2NAE6P.js +0 -141
  276. package/dist/pull-command-WQFPLITW.js +0 -162
  277. package/dist/release-command-2OTNVMIL.js +0 -147
  278. package/dist/toolchain-hooks-BGZBDFAT.js +0 -96
  279. package/dist/tracked-backend-PZGUWD5J.js +0 -80
  280. package/dist/xanosdk-project-6KTCO47O.js +0 -41
@@ -0,0 +1,45 @@
1
+ # Reading a compiled bundle
2
+
3
+ `@xano/sdk` writes a bundle; `@xano/sdk/bundle` reads one back. It is the surface for
4
+ tools that take compiled JSON as input — a graph view, a diff, a linter, a docs generator —
5
+ so none of them has to reverse-engineer the storage shape and then go quietly wrong when the
6
+ engine grows a new one.
7
+
8
+ A bundle is what `export` writes:
9
+
10
+ ```bash
11
+ npx xanosdk export ./xano/index.ts --out workspace.json
12
+ ```
13
+
14
+ ```ts
15
+ import { readFile } from "node:fs/promises";
16
+ import { statementCatalog, walk } from "@xano/sdk/bundle";
17
+
18
+ const bundle = JSON.parse(await readFile("bundle.json", "utf8"));
19
+ const catalog = statementCatalog();
20
+
21
+ for (const { raw, path, depth } of walk(bundle.payload.query[0].run)) {
22
+ console.log(`${" ".repeat(depth)}${path} ${catalog.get(raw.name)?.sPath ?? raw.name}`);
23
+ }
24
+ // 0 db.query
25
+ // 1 conditional
26
+ // 1.if.0 db.add
27
+ ```
28
+
29
+ - **`walk(run)`** → every statement in the tree, each with a `path` and a `depth`. The path
30
+ format (`2.if.0`) is the shared address: a lint finding, a review comment and a runtime
31
+ error written by three different tools all name the same node.
32
+ - **`subStacks(raw)`** → the nested stacks a statement carries, keyed by where they are
33
+ stored and labelled by what they mean — a try/catch and a conditional share the same three
34
+ storage keys. Found by shape, so a nesting form added later is still walked.
35
+ - **`statementCatalog()`** → the stored `mvp:*` name to its authoring path, minus the
36
+ namespace (`mvp:dbo_view` → `db.query`, the `sPath` you write after `s.`) — which is
37
+ the point: the stored name is often not the one you'd guess.
38
+ - **`structuralHash(raw)`** → a diff key for a statement and everything under it, with
39
+ engine-filled operands excluded — so adding a column to a table leaves `db.edit` /
40
+ `db.add_or_edit` unchanged. A `db.add` writes every column, so its hash does change.
41
+ - **`tableRefOf(column)` / `linkedTableOf(column)`** → the table a column points at.
42
+ - **`normalize(value)`** → the normalizer `xanosdk preflight` compares with, for diffing a
43
+ stored workspace against a compiled one.
44
+
45
+ Everything on the entry is pure — no filesystem, network, or Node built-ins — so it runs anywhere.
package/guides/cli.md CHANGED
@@ -41,44 +41,46 @@ xanosdk login --scope "<list>" # request these OAuth scopes instead
41
41
  xanosdk login --profile staging # sign in as a second named credential, leaving the others alone
42
42
  xanosdk <command> --profile staging # act as that profile for one run (-p is the short form)
43
43
  xanosdk workspace details # which instance/workspace am I bound to, and via which credential?
44
- xanosdk deploy ./xano/index.ts # compile + import into a live ephemeral (the dev loop) → URL
45
- xanosdk deploy ./xano/index.ts --static ./frontend/dist # also deploy a static frontend (onto the ephemeral)
46
- xanosdk deploy ./xano/index.ts --static ./frontend/dist --static-env PK=pk_live_1 # + extra public config
44
+ xanosdk deploy ./xano/index.ts # compile + import into the Xano Engine on this machine (the dev loop) → URL; no account needed
45
+ xanosdk deploy ./xano/index.ts --ephemeral # …or into a live ephemeral on Xano's cloud → URL
46
+ xanosdk deploy ./xano/index.ts --ephemeral --static ./frontend/dist # also deploy a static frontend (onto the ephemeral)
47
+ xanosdk deploy ./xano/index.ts --ephemeral --static ./frontend/dist --static-env PK=pk_live_1 # + extra public config
47
48
  xanosdk deploy --bundle ws.json # deploy an already-exported bundle
48
49
  xanosdk deploy ./xano/index.ts --open # …and open the deployed URL in your browser
49
- xanosdk deploy ./xano/index.ts --expires-hours 8 # the ephemeral's TTL when this deploy creates it: 1–24 hours (default: 1)
50
- xanosdk deploy ./xano/index.ts --keep-data --static ./frontend/dist --static-host docs # publish to a named static host — merge only: a replace deletes it, and a deploy creates only `default` (create `docs` in the dashboard first)
51
- xanosdk deploy ./xano/index.ts --static ./frontend/dist --static-routing spa # override URL resolution, spa|multipage (inferred from the bundle; rarely needed)
50
+ xanosdk deploy ./xano/index.ts --ephemeral --expires-hours 8 # the ephemeral's TTL when this deploy creates it: 1–24 hours (default: 1)
51
+ xanosdk deploy ./xano/index.ts --ephemeral --keep-data --static ./frontend/dist --static-host docs # publish to a named static host — merge only: a replace deletes it, and a deploy creates only `default` (create `docs` in the dashboard first)
52
+ xanosdk deploy ./xano/index.ts --ephemeral --static ./frontend/dist --static-routing spa # override URL resolution, spa|multipage (inferred from the bundle; rarely needed)
52
53
  xanosdk deploy ./xano/index.ts --keep-data # redeploy but keep table rows (merge instead of replace; seeds aren't re-written)
53
54
  xanosdk env set STRIPE_KEY --to workspace --yes # set ONE env var on a running backend, value piped on stdin (no deploy; never printed)
54
- xanosdk env unset STRIPE_KEY --to local-engine # clear one (--to workspace|ephemeral[:<name>]|local-engine[:<name>]|tenant:<name>, default: last deployed)
55
+ xanosdk env unset STRIPE_KEY --to local # clear one (--to workspace|ephemeral[:<name>]|local[:<name>]|tenant:<name>, default: last deployed)
55
56
  xanosdk publish ./frontend/dist # publish a built frontend alone — no compile, no backend import (default: last deployed)
56
- xanosdk publish ./frontend/dist --to ephemeral # …after a local-engine deploy: publish does not reach a local engine
57
- xanosdk deploy ./xano/index.ts --local-engine --static ./frontend/dist # the engine serves the build at http://<prefix>.localhost:<port>
57
+ xanosdk publish ./frontend/dist --to ephemeral # …or onto an ephemeral instead (after a local deploy, bare publish goes to the engine)
58
+ xanosdk deploy ./xano/index.ts --static ./frontend/dist # on the Xano Engine, the engine serves the build at http://<prefix>.localhost:<port>
58
59
  xanosdk publish ./frontend/dist --to workspace --branch v2 --yes # …onto the workspace, refused unless branch v2 is live
59
- xanosdk deploy ./xano/index.ts --local-engine # deploy to a local engine on this machine instead of an ephemeral (runs the version pinned in package.json)
60
- xanosdk deploy ./xano/index.ts --local-engine=~/Downloads/engine.tar.gz # override: run this archive, URL or version (v0.1.8), never touching the pin
61
- XANOSDK_LOCAL_ENGINE_OVERRIDE=v0.1.8 npm run xano:deploy:local-engine # the same override for every deploy in the shell
62
- xanosdk local-engine list # local engines on this machine, marking the ones xanosdk started
63
- xanosdk local-engine token # print its meta API bearer: XANO_META_TOKEN=$(xanosdk local-engine token)
64
- xanosdk local-engine stop <name> # stop one (--all: every one xanosdk started, and what a crashed one left running)
65
- xanosdk local-engine update # move this project's pinned engine to the latest (--version <v>: that one) and restart it — commit package.json
66
- xanosdk local-engine cache list # each cached engine version, its size, and the engines running on it
67
- xanosdk local-engine cache clear # remove every cached engine and its unpacked runtime (--version <v>: just that one); running ones are stopped first
60
+ xanosdk deploy ./xano/index.ts --local # the default, spelled out: the Xano Engine on this machine (runs the version pinned in package.json)
61
+ xanosdk deploy ./xano/index.ts --local=~/Downloads/engine.tar.gz # override: run this archive, URL or version (v0.1.8), never touching the pin
62
+ XANOSDK_ENGINE_OVERRIDE=v0.1.8 npm run xano:deploy # the same override for every deploy in the shell
63
+ xanosdk local list # Xano Engines on this machine, marking the ones xanosdk started
64
+ xanosdk local token # print its meta API bearer: XANO_META_TOKEN=$(xanosdk local token)
65
+ xanosdk local stop <name> # stop one (--all: every one xanosdk started, and what a crashed one left running)
66
+ xanosdk local update # move this project's pinned engine to the latest (--version <v>: that one) and restart it — commit package.json
67
+ xanosdk local cache list # each cached engine version, its size, and the engines running on it
68
+ xanosdk local cache clear # remove every cached engine and its unpacked runtime (--version <v>: just that one); running ones are stopped first
68
69
  xanosdk ephemeral list # list your ephemeral environments (--all-workspaces spans every workspace; --json: { ephemerals: [...] })
69
70
  xanosdk ephemeral get <name> # base URL, state, and expiry for one (<name> = the tenant name, e.g. ewap-8wz9-9e13, NOT the display name — `ephemeral list` shows it in bold)
70
71
  xanosdk ephemeral delete <name> --yes # destroy one
71
72
  xanosdk tables # the last-deployed backend's tables: id, guid, name (for release create --seed)
72
73
  xanosdk tables tenant:acme # …or name one
73
74
  xanosdk test run-all # run the tests the last-deployed backend carries (exits 5 on a failure)
74
- xanosdk test run-all --on local-engine # …or name one (--on ephemeral:<name>|tenant:<name>|workspace)
75
+ xanosdk test run-all --on local # …or name one (--on ephemeral:<name>|tenant:<name>|workspace)
75
76
  xanosdk test list # list the tests a backend carries, without running any
77
+ xanosdk test run "<name>" # run one test by its name
76
78
  xanosdk test run-all --kind unit # only one family (unit|workflow; default: both) — also on test list
77
79
  xanosdk test run-all --concurrency 4 # run 4 at once (default: 1); tests share the backend's database, so only when yours don't share state
78
80
  xanosdk impersonate # open what this project last deployed to in the builder (--guest = read-only; --url-only prints the URL; the URL is a session — treat it as a credential)
79
- xanosdk impersonate ephemeral:<tenant> # …or name one: local-engine[:<name>] or tenant:<name> (open your workspace from the Xano dashboard)
81
+ xanosdk impersonate ephemeral:<tenant> # …or name one: local[:<name>] or tenant:<name> (open your workspace from the Xano dashboard)
80
82
  xanosdk deploy ./xano/index.ts --test # THE RELEASE FLOW, step 1: stand it up and run its tests
81
- xanosdk release create v1 # …2: cut a release from the ephemeral this project last deployed to (after a local-engine deploy: --from ephemeral)
83
+ xanosdk release create v1 # …2: cut a release from the ephemeral this project last deployed to (after a local deploy: --from ephemeral)
82
84
  xanosdk release create v1 --from ephemeral:e4f2-9ab1 --description "what shipped" # …from a named source
83
85
  xanosdk release create v1 --from workspace --branch staging # …or from a branch of your workspace (default: what it serves)
84
86
  xanosdk release list # every release in this workspace, newest first, a description cut to one line (--json: { releases: [...] }, each with the origin show names)
@@ -94,7 +96,7 @@ xanosdk tenant list # every tenant under this workspace
94
96
  xanosdk tenant get acme # base URL and state for one
95
97
  xanosdk tenant deploy acme v1 # …or 3: land it on a customer tenant instead
96
98
  xanosdk tenant delete acme --yes # destroy one (by its NAME — a display name fails with exit 8 and names the tenant it belongs to)
97
- xanosdk pull release:v1 # refresh xano/ from a release: rewrites decoded files, keeps and names files you added, lists and confirms (also workspace, ephemeral[:<name>], local-engine, tenant:<name>)
99
+ xanosdk pull release:v1 # refresh xano/ from a release: rewrites decoded files, keeps and names files you added, lists and confirms (also workspace, ephemeral[:<name>], local, tenant:<name>)
98
100
  xanosdk pull release:v1 --yes # …skip the confirmation and the dirty-tree refusal (CI)
99
101
  xanosdk pull workspace --backend-dir ./backend # …when this project keeps its backend somewhere other than xano/ and nothing on disk says so (also on env pull)
100
102
  xanosdk generate release:v1 --out ./backend # write ONLY the decoded xano/ tree, no project around it (any source above, or a bundle path; --force replaces the files an earlier generate wrote, asks first when that loses your edits (--yes answers), and keeps and lists any others)
@@ -110,7 +112,7 @@ xanosdk ephemeral export <name> --format multidoc --path - # …stream
110
112
 
111
113
  xanosdk workspace details # which workspace your token is scoped to (instance, id, name)
112
114
  xanosdk workspace export --path ws.json # your REAL workspace as a JSON bundle (`--path -` streams to stdout)
113
- xanosdk workspace diff ./xano/index.ts --branch staging # did my release land? which objects on the branch differ from your compile, are missing, or are unexpected (default: live); exits 2 when anything declared differs or is missing
115
+ xanosdk workspace diff ./xano/index.ts --branch staging # did my release land? which objects on the branch differ from your compile, are missing, or are unexpected (default: live), and which side changed each since the last sync (`changedThere`/`changedHere`/`changedBoth`); exits 2 when anything declared differs or is missing
114
116
  xanosdk workspace branch list # its branches, and which one is live
115
117
  xanosdk workspace branch set-live staging # promote a branch (also the way back after --backup-branch)
116
118
  xanosdk workspace branch delete staging --yes # remove a non-live branch (a label padded with spaces is found by the trimmed one; one not there exits 0, alreadyGone; the live branch exits 2, SDK_BRANCH_LIVE)
@@ -135,7 +137,7 @@ xanosdk help # grouped command reference (also th
135
137
  xanosdk <command> --help # that command's usage, subcommands, and flags (`xanosdk deploy --help`)
136
138
  xanosdk <noun> <verb> --help # scoped to one verb (`xanosdk workspace export --help`)
137
139
  xanosdk <command> --json # force JSON on stdout (otherwise: whenever stdout isn't a terminal)
138
- xanosdk <command> --no-refresh # don't refresh the managed block in AGENTS.md (a build that writes nothing outside its output)
140
+ xanosdk <command> --no-refresh # don't refresh the managed blocks in AGENTS.md and the README (a build that writes nothing outside its output)
139
141
  xanosdk completion zsh # shell completion script (also bash, fish) — see below
140
142
 
141
143
  xanosdk preflight ./xano/index.ts # import into a live instance, diff each object back (needs auth + a throwaway tenant)
@@ -155,7 +157,7 @@ Every command that reads, writes or opens a running backend names it with one gr
155
157
  |---|---|
156
158
  | `workspace` | Your real workspace — the one your login is scoped to |
157
159
  | `ephemeral` / `ephemeral:<name>` | The ephemeral this project deployed to, or a named one — by its name (`e4f2-9ab1`, from `xanosdk ephemeral list`), not its display name |
158
- | `local-engine` / `local-engine:<name>` | The engine this project deployed to, or a named one from `xanosdk local-engine list`. Needs no Xano account |
160
+ | `local` / `local:<name>` | The engine this project deployed to, or a named one from `xanosdk local list`. Needs no Xano account |
159
161
  | `tenant:<name>` | A tenant on your instance |
160
162
  | `release:<name>` | A stored release — where a command reads one (`deploy`, `pull`, `generate`, `init --from`) |
161
163
  | a bundle path | Where a command takes a file (`deploy`, `generate`, `init --from`) |
@@ -166,20 +168,20 @@ takes **`--on`**, and a command whose subject IS the backend takes it positional
166
168
  `pull`, `generate`, `tables`, `impersonate`).
167
169
 
168
170
  **Leave it off and a command follows the backend this project last deployed to** — recorded
169
- in `.xano/deployed.json` by an ephemeral or local-engine deploy, and never by a deploy to your
171
+ in `.xano/deployed.json` by an ephemeral or local deploy, and never by a deploy to your
170
172
  workspace or a tenant, so a bare command cannot reach something real unasked. With no record,
171
173
  it falls back to the ephemeral recorded under your current credential, then to the engine
172
174
  recorded for this directory, and otherwise refuses naming the flag, `xanosdk deploy` and
173
- `xanosdk deploy --local-engine`.
175
+ `xanosdk deploy --local`.
174
176
  `deploy` is the exception: bare, it compiles the project and stands it up on an ephemeral
175
- unless `--to` or `--local-engine` says otherwise, so it writes that record rather than
177
+ unless `--to` or `--local` says otherwise, so it writes that record rather than
176
178
  reading it. `generate` and `init --from` need a backend named.
177
179
 
178
180
  A command that cannot serve a backend refuses it, whether you typed it or it came from the
179
- record, with the reason and the spellings it does take: `publish` refuses a local engine (no
181
+ record, with the reason and the spellings it does take: `publish` refuses a Xano Engine (no
180
182
  static host — pass `--to ephemeral`), and so does `release create` (the cut runs on the
181
183
  instance — pass `--from ephemeral`). A write to your workspace or a tenant confirms first,
182
- or needs `--yes` off a terminal; an ephemeral or local engine never asks.
184
+ or needs `--yes` off a terminal; an ephemeral or Xano Engine never asks.
183
185
 
184
186
  ## Bundle key names vs. the names everything else uses
185
187
 
@@ -253,7 +255,7 @@ layer raised it — is `SDK_EXPORT_INVALID`, with its checks in `error.details.d
253
255
  `destination`, a read's `kind`/`name` (`tables`, `test`), `status`, `ephemeral get`,
254
256
  `workspace details`, `impersonate`, and each `tenant list`/`ephemeral list` row — also carries
255
257
  `selector`, the spelling the next command's backend slot takes (`"ephemeral:e4f2-9ab1"`,
256
- `"tenant:acme"`, `"local-engine:<name>"`, `"workspace"`; `ephemeral get|delete|export` and
258
+ `"tenant:acme"`, `"local:<name>"`, `"workspace"`; `ephemeral get|delete|export` and
257
259
  `tenant get|deploy|delete` take it as well as the bare name), and `workspaceId`, the numeric workspace it acts on (for an ephemeral or tenant,
258
260
  the workspace it lives under). The fields each command already had stay. `export --out --json`
259
261
  carries `written: true`, as `export --check` carries `written: false`. `help --json` lists each
@@ -264,7 +266,7 @@ string, `values` its whole closed set, `examples` a few values of a flag that ta
264
266
  ## Shell completion
265
267
 
266
268
  `xanosdk completion <bash|zsh|fish>` prints a completion script covering every command, verb, flag,
267
- and closed value set (`--on workspace|ephemeral|local-engine`, `--format json|multidoc`, `--icons lucide|tabler|phosphor`).
269
+ and closed value set (`--on workspace|ephemeral|local`, `--format json|multidoc`, `--icons lucide|tabler|phosphor`).
268
270
  A flag's value completes as what it takes: its closed set, file names for a path (`--config`,
269
271
  `--secrets-file`), directories for a directory (`--backend-dir`), stored profile names for
270
272
  `--profile`/`--to-profile`, and nothing for a free-form value (`--name`, `--expires-hours`).
@@ -312,8 +314,8 @@ as `installed`. The install matches how this CLI is installed (`npm i -g` for a
312
314
  project, `--save-prod` when `@xano/sdk` is in `dependencies`, as a scaffold puts it, else
313
315
  `--save-dev`) — and for a project-local install it
314
316
  then restores the `@xano/sdk` range your project was scaffolded with (npm rewrites it to a
315
- caret) and restamps the managed block in your
316
- agent files so the guidance matches the version you now have. Set `XANOSDK_INSTALL_MODE` to
317
+ caret) and restamps the managed blocks in your
318
+ `AGENTS.md` and README so what they say matches the version you now have. Set `XANOSDK_INSTALL_MODE` to
317
319
  `global` or `local` to override the detection. Run through `npx` (or `pnpm dlx`, `yarn dlx`, `bunx`)
318
320
  outside a project, it installs nothing (`status: "not-installed"`): that copy is temporary,
319
321
  and `npx @xano/sdk@latest` already runs the newest release.
package/guides/codegen.md CHANGED
@@ -10,12 +10,12 @@ so it is the scaffold command with one extra flag:
10
10
  ```bash
11
11
  xanosdk init my-app --from workspace # your real workspace (the one your login is scoped to)
12
12
  xanosdk init my-app --from ephemeral:my-env # a named ephemeral environment
13
- xanosdk init my-app --from local-engine:<name> # a running local engine (`local-engine list`) — no login
13
+ xanosdk init my-app --from local:<name> # a running Xano Engine (`local list`) — no login
14
14
  xanosdk init my-app --from ./ws.json # a bundle already on disk — offline, no login
15
15
  ```
16
16
 
17
17
  `--from` takes any backend in [the CLI's one grammar](cli.md#naming-a-backend) —
18
- `workspace`, `ephemeral[:<name>]`, `local-engine[:<name>]`, `tenant:<name>`, `release:<name>` —
18
+ `workspace`, `ephemeral[:<name>]`, `local[:<name>]`, `tenant:<name>`, `release:<name>` —
19
19
  or a bundle path. Unlike most commands it has no default: a pull names its source.
20
20
 
21
21
  Everything else about the project is unchanged: `--framework`, the theme flags, `--no-agents-md` and
@@ -32,7 +32,7 @@ that already has its own shell, or to read one.
32
32
  ```bash
33
33
  xanosdk generate workspace # → ./xano
34
34
  xanosdk generate release:v1 --out ./backend # a stored release
35
- xanosdk generate ephemeral:my-env # also tenant:<name>, local-engine[:<name>]
35
+ xanosdk generate ephemeral:my-env # also tenant:<name>, local[:<name>]
36
36
  xanosdk generate ./ws.json # a bundle on disk — offline, no login
37
37
  xanosdk generate workspace --branch staging # --branch applies to `workspace` only
38
38
  ```
@@ -170,7 +170,8 @@ over a `xano/` no decode wrote follows the same rules.
170
170
  > ⚠️ **`xano/` is your source once pulled — commit it.** A refresh overwrites the files it
171
171
  > decodes, so commit before one (a directory that isn't a previous pull still needs `--force`).
172
172
  > It carries schema only — no table rows or stored files.
173
- > `xanosdk deploy` sends it to a disposable ephemeral environment as a *full replace*;
173
+ > `xanosdk deploy` sends it to the Xano Engine on this machine (`--ephemeral`: a disposable
174
+ > ephemeral environment) as a *full replace*;
174
175
  > `xanosdk promote <release>` or `xanosdk deploy --to workspace` merges it into your real
175
176
  > workspace. Workspace env vars are declared by name only — their values never enter the tree.
176
177
 
package/guides/codes.md CHANGED
@@ -35,7 +35,7 @@ Printed as `! …` on stderr, and as `{ code, message }` in a `--json` document'
35
35
 
36
36
  | Code | Meaning |
37
37
  |---|---|
38
- | `agents.refresh-failed` | A managed agent file (AGENTS.md, …) could not be refreshed; the compile itself went on. |
38
+ | `agents.refresh-failed` | A managed block (AGENTS.md, the README's Built-with footer) could not be refreshed; the compile itself went on. |
39
39
  | `agents.symlink` | … is a symlink — left it and its target untouched. |
40
40
  | `branch.deletion` | … will be permanently deleted and CANNOT be recovered: |
41
41
  | `branch.inventory-unknown` | The branch inventory could not be read, so what this wipe destroys is UNKNOWN. |
@@ -97,15 +97,15 @@ Printed as `! …` on stderr, and as `{ code, message }` in a `--json` document'
97
97
  | `init.verify-failed` | Verification FAILED — the objects listed above do not re-export as they were pulled. |
98
98
  | `init.workflow-exists` | … already exists — moving the new workflow there replaces it. |
99
99
  | `landing.record-failed` | The prune landed, but … could not be updated: … |
100
- | `local-engine.foreign` | Left running, not started by xanosdk: … |
101
- | `local-engine.import-failed` | The import failed — the engine is still running, so nothing needs restarting: |
102
- | `local-engine.list-failed` | Could not list running engines, so none are shown: … |
103
- | `local-engine.not-pinned` | No package.json in …, and it is not a Xano SDK project, so the local engine was not pinned — this deploy runs the latest engine. |
104
- | `local-engine.pin-unusable` | The project's pinned engine version could not be read and was not used. |
105
- | `local-engine.runtime-kept` | Kept the unpacked runtime (…): … still running on it. |
106
- | `local-engine.stale` | … is running …, but the engine cached here is …. |
107
- | `local-engine.stop-failed` | … was listed as running but did not stop…. |
108
- | `local-engine.version-invalid` | … This deploy runs the latest local engine and the field is left as written — set it to a version like "v0.1.5", or run `xanosdk local-engine update` to pin… |
100
+ | `local.foreign` | Left running, not started by xanosdk: … |
101
+ | `local.import-failed` | The import failed — the engine is still running, so nothing needs restarting: |
102
+ | `local.list-failed` | Could not list running engines, so none are shown: … |
103
+ | `local.not-pinned` | No package.json in …, and it is not a Xano SDK project, so the Xano Engine was not pinned — this deploy runs the latest engine. |
104
+ | `local.pin-unusable` | The project's pinned engine version could not be read and was not used. |
105
+ | `local.runtime-kept` | Kept the unpacked runtime (…): … still running on it. |
106
+ | `local.stale` | … is running …, but the engine cached here is …. |
107
+ | `local.stop-failed` | … was listed as running but did not stop…. |
108
+ | `local.version-invalid` | … This deploy runs the latest Xano Engine and the field is left as written — set it to a version like "v0.1.5", or run `xanosdk local update` to pin one. |
109
109
  | `lock.ceded-canonical` | A lock entry kept its guid but ceded its canonical to a live object; a rename moves the entry so the object keeps its URL. |
110
110
  | `lock.created-in-ci` | This lock was created in CI, which means the repository does not have one. |
111
111
  | `lock.dropped-entry` | A stale lock entry was dropped because its identity reappeared under a live name (a reverted or identity-keeping rename). |
@@ -142,7 +142,9 @@ Printed as `! …` on stderr, and as `{ code, message }` in a `--json` document'
142
142
  | `module.install-failed` | … failed — the module was not added. |
143
143
  | `module.kind-unknown` | … does not declare a module kind we recognize, so it is read as an ordinary package. |
144
144
  | `module.legacy-peer-deps` | Installed with --legacy-peer-deps: …. |
145
- | `module.load-failed` | Could not load …/index.ts to update what the module left behind (…). |
145
+ | `module.load-failed` | Could not load …/index.ts to … (…). |
146
+ | `module.peer-mismatch` | The project already declares a peer a toolchain module needs, and the installed version falls outside the module's range; it was left as it is. |
147
+ | `module.peer-not-added` | A peer a toolchain module needs could not be added as a direct dependency; the line names the command that adds it. |
146
148
  | `module.peer-unresolved` | … declares a peer range this project does not satisfy; --legacy-peer-deps did not resolve it either. |
147
149
  | `module.removed-from-marketplace` | … has been removed from the marketplace. |
148
150
  | `module.sdk-skew` | … requires `@xano/sdk` … — the module was not added. |
@@ -224,6 +226,7 @@ Printed as `! …` on stderr, and as `{ code, message }` in a `--json` document'
224
226
  | `release.seed-rows-not-decoded` | … carries seed rows for …, and a decoded tree carries no rows — they are not in …/. |
225
227
  | `release.transfer-cancelled` | Transfer cancelled — nothing was imported. |
226
228
  | `routes.cli-skew` | This CLI is another version than the project's installed SDK, so it left the route table for the installed CLI to render. |
229
+ | `routes.module-failed` | A toolchain module could not generate its section of `routes.gen.ts`; the rest was refreshed and its previous block, if any, was kept. |
227
230
  | `routes.not-written` | The route table (`routes.gen.ts`) was not written this run; the line says why and what writes it. |
228
231
  | `routes.realtime-unresolved` | …: leaving out … — … — whose canonical URL token resolves nowhere, along with their channels. |
229
232
  | `secrets.cleartext-export` | … carries … in cleartext — written owner-only (0600); do not commit it. |
@@ -248,6 +251,7 @@ Printed as `! …` on stderr, and as `{ code, message }` in a `--json` document'
248
251
  | `static.teardown-unknown` | Could not read …'s static hosting, so this cannot say whether a frontend serves there — this replace takes down any that does. |
249
252
  | `static.unconfirmed-live` | Could not confirm the frontend is live within the wait window — the build uploaded and should come online shortly. |
250
253
  | `static.upload-failed` | The static-host upload failed — the backend deploy stands: |
254
+ | `sync.record-failed` | The … succeeded, but its sync baseline could not be recorded in …: … |
251
255
  | `tenant.deploy-partial` | The deploy stopped partway: … release "…" declares… — answered as a NOT NULL violation, though the release makes no field required: the value converts to nul… |
252
256
  | `tenant.deploy-unconfirmed` | Compare its `deployedAt` and `deployedReleaseId` with what they were before this deploy (deployedAt …, deployedReleaseId …). |
253
257
  | `tenant.identities-unchecked` | Whether this release's names and pinned public URL slugs are free on … was not checked — …. |
@@ -309,6 +313,7 @@ Raised while a workspace compiles (`export`, `deploy`, `release`, …). A warnin
309
313
  | `field.email-default-invalid` | The `default` at … is …, which is not an email address — every insert or request that leaves the field out is refused "Invalid email format.". |
310
314
  | `field.enum-default-not-a-value` | The `default` at … is …, which is not one of the enum's values (…) — a value no request can send back. |
311
315
  | `field.input-default-invalid` | The `default` at … is …, which … — every request that leaves the input out is refused. |
316
+ | `field.input-required-default-ignored` | The `default` at …, input "…" is …, but the input is `required: true` — the engine refuses a request that leaves a required input out ("Missing param") befor… |
312
317
  | `field.vector-not-nullable` | table "…", column "…" is a vector with `nullable: false` and no default — an empty default becomes NULL only on a nullable column, and `''` is not a vector,… |
313
318
  | `function.reserved-input-name` | function "…": the input name `…` is reserved by the engine — a call passes its arguments keyed by input name, and the engine skips a `…` key when it evaluate… |
314
319
  | `guard.role-unsatisfiable` | A guard.role on a table passed by name checks a column the table lacks, or a role its enum column cannot hold. |