@xano/sdk 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/CHANGELOG.md +32 -5
  2. package/README.md +250 -342
  3. package/dist/.build-fingerprint +1 -1
  4. package/dist/agent-file-refresh-67QIX45H.js +39 -0
  5. package/dist/{answer-shape-LVV2SVBK.js → answer-shape-UCDUKPAN.js} +6 -6
  6. package/dist/{backend-dir-WZADOK3L.js → backend-dir-3LIL6SCT.js} +16 -15
  7. package/dist/{backend-slot-NSCTWCUX.js → backend-slot-JREP27UD.js} +4 -4
  8. package/dist/bin.js +59 -58
  9. package/dist/{branch-ONWPJ4V6.js → branch-2IPHOAYS.js} +10 -10
  10. package/dist/{branch-commands-ZT2MJIRS.js → branch-commands-KTKAXBAN.js} +31 -32
  11. package/dist/bundle.js +9 -39
  12. package/dist/{capture-3JNUA6C2.js → capture-GW5KNKMB.js} +4 -4
  13. package/dist/{chunk-FPBGAT5D.js → chunk-26MOFAJT.js} +3 -3
  14. package/dist/{chunk-O7QOWS6M.js → chunk-2FLIJGBZ.js} +12 -12
  15. package/dist/{chunk-QAEQGT5I.js → chunk-2WBH5HUY.js} +7 -7
  16. package/dist/{chunk-37AHZ7JX.js → chunk-3BBIDW3Y.js} +6 -6
  17. package/dist/{chunk-DGWHAVRG.js → chunk-3EDSPMXN.js} +12 -1
  18. package/dist/{chunk-2AUV6NXK.js → chunk-3II44CUJ.js} +36 -36
  19. package/dist/{chunk-7GX445AE.js → chunk-4XHAT7C5.js} +2 -2
  20. package/dist/{chunk-OOXWYAA4.js → chunk-57A5ZKPO.js} +1 -1
  21. package/dist/{chunk-OOGXZL7Z.js → chunk-5KJBWIDZ.js} +84 -6
  22. package/dist/{chunk-5YL5OC2G.js → chunk-5QMJOE2K.js} +6 -6
  23. package/dist/{chunk-3H3EPMFY.js → chunk-5TVFLG3C.js} +2 -2
  24. package/dist/{chunk-WFMVKY7I.js → chunk-5YQV35C2.js} +9 -9
  25. package/dist/{chunk-NA3PXMEF.js → chunk-64WWE3EF.js} +1 -1
  26. package/dist/{chunk-FMOEVAGT.js → chunk-6X3MY2JP.js} +3 -3
  27. package/dist/{chunk-2LVTBPW2.js → chunk-6X6BJN6Y.js} +3 -3
  28. package/dist/{chunk-DYG5D3FD.js → chunk-763M6LX3.js} +16 -2
  29. package/dist/{chunk-EESV6NU2.js → chunk-7FIMUFBP.js} +2 -2
  30. package/dist/{chunk-CFSFBKHP.js → chunk-7GAIJW62.js} +2 -2
  31. package/dist/{chunk-6R7S775T.js → chunk-7REDHC4N.js} +2 -2
  32. package/dist/chunk-7VR4IO5B.js +44 -0
  33. package/dist/chunk-A7MRZ4GF.js +78 -0
  34. package/dist/{chunk-D5ZEAF4G.js → chunk-ATJ2W7DC.js} +81 -58
  35. package/dist/{chunk-BUJRS7XB.js → chunk-AVS4WPPY.js} +2 -2
  36. package/dist/{chunk-MEE5RZ6G.js → chunk-BL3AZ3AP.js} +2 -2
  37. package/dist/chunk-BTVUYHWV.js +111 -0
  38. package/dist/{chunk-T4DUFQ2S.js → chunk-CCU5CCRX.js} +5 -5
  39. package/dist/{chunk-5T2CTWTB.js → chunk-CHINR7WD.js} +6 -6
  40. package/dist/{chunk-VD32O6KZ.js → chunk-CJDPSCMX.js} +45 -5
  41. package/dist/{chunk-3HOGFGKG.js → chunk-D3KEPRRN.js} +2 -2
  42. package/dist/{chunk-SBR2WZXG.js → chunk-D7BUMOKU.js} +60 -53
  43. package/dist/{chunk-WRBKLYSJ.js → chunk-DNBP4GJN.js} +4 -3
  44. package/dist/{chunk-JTUKLCXS.js → chunk-DXUICABI.js} +1 -1
  45. package/dist/{chunk-XMDDBEEM.js → chunk-E763QI3G.js} +2 -2
  46. package/dist/{chunk-KTGRGWZW.js → chunk-EADVVTDK.js} +7 -7
  47. package/dist/{chunk-FJWZ5OVV.js → chunk-ENMBEXOP.js} +3 -3
  48. package/dist/{chunk-OPHB5ORL.js → chunk-EQFYOOO6.js} +171 -92
  49. package/dist/{chunk-WOGJB2F6.js → chunk-FNLTFOUD.js} +4 -9
  50. package/dist/{chunk-II747OWE.js → chunk-FQ53GTII.js} +10 -10
  51. package/dist/{chunk-JP7M7OU7.js → chunk-FU3VCE5A.js} +46 -27
  52. package/dist/{chunk-OGBMUST4.js → chunk-GHQ4BVI4.js} +14 -14
  53. package/dist/{chunk-45YPFB7B.js → chunk-GLY552SI.js} +84 -57
  54. package/dist/{chunk-QV3GXQRE.js → chunk-GOLFAEUV.js} +2 -2
  55. package/dist/{chunk-L2GLOJAO.js → chunk-GW5RHGOB.js} +22 -22
  56. package/dist/{chunk-A6QTTJUI.js → chunk-GWTFI3GA.js} +2 -2
  57. package/dist/{chunk-MCTIKRMN.js → chunk-GZHLCUZ6.js} +8 -8
  58. package/dist/{chunk-664LSWE5.js → chunk-HCG7NDIL.js} +4 -4
  59. package/dist/{chunk-7PMVIHB3.js → chunk-I3H3HCPY.js} +50 -29
  60. package/dist/{chunk-LIVN53UV.js → chunk-I3VHW6XM.js} +31 -31
  61. package/dist/{chunk-C4FHQA7R.js → chunk-IF4PEGVD.js} +8 -8
  62. package/dist/{chunk-WFG67AYS.js → chunk-IMELQ2I6.js} +3 -3
  63. package/dist/{chunk-3P3HXN76.js → chunk-ITC2R2OT.js} +11 -11
  64. package/dist/{chunk-W5ONYLOP.js → chunk-IXFJORNH.js} +4 -4
  65. package/dist/{chunk-HMLGM2MW.js → chunk-IYXL5NYU.js} +260 -32
  66. package/dist/{chunk-2B22WWKL.js → chunk-JFBRXRJD.js} +59 -35
  67. package/dist/chunk-JI3BLXWQ.js +107 -0
  68. package/dist/{chunk-4DJTQ6W4.js → chunk-JIKGT7DO.js} +2 -1
  69. package/dist/{chunk-O5V3YH5P.js → chunk-JRVQ7M7W.js} +8 -8
  70. package/dist/{chunk-4APOHK7Y.js → chunk-JXVJGF3Y.js} +2 -2
  71. package/dist/chunk-KPFS3RGM.js +257 -0
  72. package/dist/{chunk-PML67X22.js → chunk-LAOMN6QQ.js} +3 -3
  73. package/dist/{chunk-TTVAHCWP.js → chunk-LBJA7IEM.js} +370 -45
  74. package/dist/{chunk-KUTFFHUM.js → chunk-LD6ARK3A.js} +2 -2
  75. package/dist/{chunk-HUSH7LRI.js → chunk-LL7SGTRC.js} +36 -33
  76. package/dist/{chunk-I2BGYNHD.js → chunk-M5CSVB23.js} +7 -7
  77. package/dist/{chunk-UCQ2VUTG.js → chunk-M6ZFSTIZ.js} +2 -2
  78. package/dist/{chunk-MNVDVR3M.js → chunk-MBDFH7XB.js} +4 -4
  79. package/dist/{chunk-QXTKSOFI.js → chunk-MF4W6FHU.js} +1 -1
  80. package/dist/{chunk-RX3EMQGN.js → chunk-MFWF2NZJ.js} +12 -5
  81. package/dist/{chunk-SEUCZZCP.js → chunk-N5I37JFB.js} +3 -3
  82. package/dist/{chunk-IJ3SXSZM.js → chunk-ND43ZOS3.js} +6 -6
  83. package/dist/chunk-NDWVJ2QZ.js +67 -0
  84. package/dist/{chunk-E65QIWOO.js → chunk-NPODGBVJ.js} +4 -4
  85. package/dist/{chunk-CYB7UQA2.js → chunk-OIKLDDYC.js} +5 -5
  86. package/dist/{chunk-MLGI2SRQ.js → chunk-PFBXSVZF.js} +4 -4
  87. package/dist/{chunk-AM4FKL4J.js → chunk-PL7AIAWS.js} +12 -12
  88. package/dist/{chunk-S7E2AHV3.js → chunk-PMMHSX4H.js} +26 -9
  89. package/dist/{chunk-WL2DSNJV.js → chunk-Q22BMRPF.js} +2 -2
  90. package/dist/{chunk-3FN2BIGB.js → chunk-QJM5XZ4K.js} +6 -6
  91. package/dist/{chunk-EWCDPFW5.js → chunk-QXYMDARD.js} +4 -4
  92. package/dist/{chunk-MLPDSGJQ.js → chunk-QZEAANWP.js} +5 -5
  93. package/dist/{chunk-ESZ2FF57.js → chunk-RIN4YY34.js} +88 -74
  94. package/dist/{chunk-37FBPMNE.js → chunk-S56YBYMN.js} +5 -2
  95. package/dist/{chunk-CBYQ2ZN3.js → chunk-SKEG3V2V.js} +2 -2
  96. package/dist/{chunk-4PQHO74B.js → chunk-SLGJIWCY.js} +4 -4
  97. package/dist/{chunk-IVKRT476.js → chunk-SPITRSOF.js} +2 -2
  98. package/dist/{chunk-BUECLQXK.js → chunk-SPKA2LV6.js} +4 -4
  99. package/dist/{chunk-HHW5AWVD.js → chunk-SSITMX7I.js} +30 -30
  100. package/dist/{chunk-OPG4DYX2.js → chunk-T4LJ5UR2.js} +29 -7
  101. package/dist/{chunk-LXNQWHZM.js → chunk-TECTL2NU.js} +4 -4
  102. package/dist/{chunk-E6H5ZEV3.js → chunk-TTEIDD5Q.js} +3 -3
  103. package/dist/{chunk-6VBTPV2Y.js → chunk-U35MTOXQ.js} +3 -3
  104. package/dist/{chunk-UKUIUS3E.js → chunk-U6MTGB46.js} +5 -5
  105. package/dist/{chunk-Y2ZLKBM6.js → chunk-UD2Z7K6W.js} +4 -4
  106. package/dist/{chunk-IXUPUFCG.js → chunk-UIVMR7UK.js} +2 -2
  107. package/dist/{chunk-UDE5C2XN.js → chunk-VDHA5SSQ.js} +3 -3
  108. package/dist/{chunk-5W7DOMIU.js → chunk-VJFMUJWZ.js} +4 -4
  109. package/dist/{chunk-XNCP4KYO.js → chunk-VQPDATQT.js} +1 -1
  110. package/dist/{chunk-KCAL4QYP.js → chunk-VW4CWVYX.js} +4 -4
  111. package/dist/chunk-WAVNUTMT.js +9 -0
  112. package/dist/{chunk-DIG3NITC.js → chunk-WBH4KJWM.js} +3 -3
  113. package/dist/{chunk-HSEQYBDO.js → chunk-WZHLMU6T.js} +3 -3
  114. package/dist/{chunk-WYEQFD6A.js → chunk-XFBGXB7X.js} +173 -105
  115. package/dist/{chunk-UI4OPTYR.js → chunk-Y453TW6J.js} +2 -2
  116. package/dist/{chunk-LUTMOHOW.js → chunk-YGLMRH5U.js} +9 -9
  117. package/dist/{chunk-GPI3OWRE.js → chunk-YHB34BN6.js} +2 -1
  118. package/dist/{chunk-5WGVIXMD.js → chunk-YKP4ZKVO.js} +14 -10
  119. package/dist/{chunk-MN2PB6WB.js → chunk-YR2I5HGE.js} +3 -3
  120. package/dist/{chunk-ZG7E72VI.js → chunk-YYC2DZMG.js} +7 -7
  121. package/dist/{chunk-D64XUF5Q.js → chunk-YYLUBYXM.js} +16 -16
  122. package/dist/{chunk-VRVKNY4A.js → chunk-Z4ZGTCCD.js} +8 -8
  123. package/dist/{chunk-44B4V2LR.js → chunk-ZDP6GDAB.js} +142 -142
  124. package/dist/{chunk-ET5DSBAC.js → chunk-ZJSTUD6D.js} +8 -8
  125. package/dist/cli.d.ts +36 -26
  126. package/dist/cli.js +57 -56
  127. package/dist/{codegen-command-HTWIW56U.js → codegen-command-R5IASBFC.js} +78 -72
  128. package/dist/codegen.d.ts +2 -2
  129. package/dist/codegen.js +2 -2
  130. package/dist/{commands-CVFYC4GK.js → commands-H7CPMMHH.js} +3 -3
  131. package/dist/{completion-AUEQC4XJ.js → completion-W5ZAI6TN.js} +12 -12
  132. package/dist/{config-JU6OQC77.js → config-MZ5KG4EP.js} +5 -5
  133. package/dist/{deploy-command-5WTFHMBT.js → deploy-command-34T2LKQ5.js} +64 -63
  134. package/dist/deploy-source-YLQ7WMYR.js +82 -0
  135. package/dist/{dev-env-sync-X636HLMK.js → dev-env-sync-TMJTNU3U.js} +58 -57
  136. package/dist/{diagnostics-LSMGB4TY.js → diagnostics-OMN5Y2AH.js} +2 -2
  137. package/dist/{display-name-hint-DMORHANO.js → display-name-hint-ZJGFNJKQ.js} +12 -12
  138. package/dist/{emit-hOFbgzde.d.ts → emit-D125xxty.d.ts} +67 -21
  139. package/dist/env-example-refresh-CQP3ZMKM.js +133 -0
  140. package/dist/{env-pull-command-WZZ7RL2E.js → env-pull-command-UTG6IC2K.js} +53 -53
  141. package/dist/{env-target-PO3MOLH5.js → env-target-FZROWYFS.js} +14 -14
  142. package/dist/{env-var-command-YKTJZFJN.js → env-var-command-VYDBQJJW.js} +51 -50
  143. package/dist/{ephemeral-BMFY55BQ.js → ephemeral-BIE6FMJV.js} +10 -10
  144. package/dist/{ephemeral-command-VDSQCOYL.js → ephemeral-command-OZ26RGXF.js} +54 -54
  145. package/dist/{ephemeral-state-6TY4JIPA.js → ephemeral-state-SNZOX2YK.js} +12 -12
  146. package/dist/{generate-command-3NTNRQRS.js → generate-command-4HR7MR36.js} +87 -79
  147. package/dist/{gitignore-FWPEDX6C.js → gitignore-EWQBXNX2.js} +20 -19
  148. package/dist/{guards-EJU2ONAX.js → guards-KYEOCVHN.js} +7 -7
  149. package/dist/{hosted-file-PSHJB3HX.js → hosted-file-S7YUQAH6.js} +2 -2
  150. package/dist/{impersonate-command-QEJA72Q2.js → impersonate-command-WC7OGKUM.js} +44 -43
  151. package/dist/{import-TBTOTU52.js → import-7Z4GCCPO.js} +6 -6
  152. package/dist/index.d.ts +14 -20
  153. package/dist/index.js +14 -14
  154. package/dist/init-command-HAO3WXH3.js +128 -0
  155. package/dist/{init-modules-HZRQFRLE.js → init-modules-NSKD4ASY.js} +12 -11
  156. package/dist/{init-web-Y2PBNJTQ.js → init-web-MKFFOQUU.js} +3 -3
  157. package/dist/internal.d.ts +5 -5
  158. package/dist/internal.js +61 -35
  159. package/dist/{io-ZUKAGFVE.js → io-PGTCBSIQ.js} +7 -5
  160. package/dist/{keep-data-merge-X5LDDCI3.js → keep-data-merge-QR2TMKEO.js} +33 -34
  161. package/dist/{lambda-config-reconcile-OUZ4OYAB.js → lambda-config-reconcile-7FJXXV6V.js} +4 -4
  162. package/dist/{landed-6VO7CX5P.js → landed-F7PCHGCK.js} +4 -4
  163. package/dist/{landing-record-QYECWLQ5.js → landing-record-MWXFIRCP.js} +26 -25
  164. package/dist/{live-diff-2S7E3SBZ.js → live-diff-5E2BQWQ7.js} +10 -9
  165. package/dist/local-engine-choice-VD5LNXJU.js +80 -0
  166. package/dist/{local-engine-command-HMTQK7MN.js → local-engine-command-RYLGMQ2O.js} +96 -95
  167. package/dist/{local-engine-config-5U3SC434.js → local-engine-config-W3KB7RWM.js} +2 -2
  168. package/dist/{local-engine-deploy-TXAOYRGF.js → local-engine-deploy-6O7NKZCA.js} +17 -17
  169. package/dist/{local-engine-process-6VZ7JJBP.js → local-engine-process-ZLLZEIRF.js} +12 -12
  170. package/dist/{local-engine-state-TJWPWCC4.js → local-engine-state-OCW5YDD7.js} +3 -3
  171. package/dist/{local-engine-update-check-R5SPDVEJ.js → local-engine-update-check-LVX4HBBI.js} +8 -8
  172. package/dist/{lock-TS465GVY.js → lock-HDCHD2ON.js} +5 -3
  173. package/dist/{lock-commands-4VT3L5W5.js → lock-commands-X2OECR4R.js} +62 -61
  174. package/dist/{login-command-O6WA4FYL.js → login-command-RLLKD565.js} +31 -30
  175. package/dist/{logout-command-6CPWGFY2.js → logout-command-XDMSXCDO.js} +17 -17
  176. package/dist/{loop-UFHKSOQ4.js → loop-SUB6C2LK.js} +9 -10
  177. package/dist/{marketplace-command-HKACSYKS.js → marketplace-command-2NHHY2X3.js} +89 -53
  178. package/dist/{marketplace-resolve-KLFYVRWS.js → marketplace-resolve-OTZYT4FG.js} +9 -8
  179. package/dist/{meta-client-73PX6UGJ.js → meta-client-TMHVBZFY.js} +15 -15
  180. package/dist/{module-manifest-GIKFNXPE.js → module-manifest-FNMW23IX.js} +7 -4
  181. package/dist/node.d.ts +5 -5
  182. package/dist/node.js +63 -63
  183. package/dist/operation-outcome-RN62735X.js +51 -0
  184. package/dist/{output-target-SZMBNYF4.js → output-target-MOLCTPBP.js} +21 -20
  185. package/dist/{package-manager-PRAHUSCN.js → package-manager-K762W7XT.js} +2 -2
  186. package/dist/{plan-disclosure-BHYG7TZ7.js → plan-disclosure-CY7AF6KP.js} +21 -22
  187. package/dist/{plugin-contributions-X4V22PJQ.js → plugin-contributions-WR26U7NT.js} +6 -6
  188. package/dist/{plugin-prompt-DKNQHW6Y.js → plugin-prompt-ZUYQQIX4.js} +5 -5
  189. package/dist/{plugin-questions-CQRVOWFK.js → plugin-questions-HAZOQ67R.js} +4 -4
  190. package/dist/plugin.d.ts +254 -10
  191. package/dist/{preflight-command-EBQ6XQF3.js → preflight-command-OHJXYND3.js} +70 -70
  192. package/dist/{profile-command-NPKBJYPM.js → profile-command-6JWT2BTL.js} +33 -32
  193. package/dist/{profile-pointer-UOO7JNFG.js → profile-pointer-PDA5XBIB.js} +5 -5
  194. package/dist/{profile-select-74TRDEPD.js → profile-select-45G5VPJK.js} +2 -2
  195. package/dist/{project-dependency-RRMTWOPC.js → project-dependency-GZWWGWEW.js} +13 -10
  196. package/dist/{project-sdk-FOR4IOXL.js → project-sdk-3W72H5QO.js} +4 -4
  197. package/dist/promote-command-UYAMUXKB.js +146 -0
  198. package/dist/{prompt-5GUQTCSP.js → prompt-U37K5RPQ.js} +4 -4
  199. package/dist/{publish-command-LGLZBOCB.js → publish-command-BUS27HGB.js} +138 -66
  200. package/dist/pull-command-ZGUNP27P.js +168 -0
  201. package/dist/{pull-superseded-GGURV5J3.js → pull-superseded-EZBGYRZF.js} +4 -4
  202. package/dist/{raw-where-EoWl5fqY.d.ts → raw-where-ZMLND6AG.d.ts} +20 -3
  203. package/dist/release-command-BQ6OHS3P.js +150 -0
  204. package/dist/{release-ns-command-EIBN3JVM.js → release-ns-command-ATGVBVIU.js} +94 -94
  205. package/dist/{retry-command-Y5YJGOH3.js → retry-command-QJ57WVW7.js} +9 -9
  206. package/dist/{routes-manifest-3BNZIVST.js → routes-manifest-YR4ZIMLM.js} +16 -8
  207. package/dist/routes-manifest-file-UALYSZLY.js +41 -0
  208. package/dist/scaffold.js +3 -3
  209. package/dist/{secrets-file-FUG7WCES.js → secrets-file-LMS7KX3E.js} +20 -19
  210. package/dist/{secrets-fill-command-QEOCUOAY.js → secrets-fill-command-QNBDGCGM.js} +61 -60
  211. package/dist/{seed-GJHJSEUE.js → seed-SZ6OS5DQ.js} +9 -9
  212. package/dist/{source-resolve-DMDZVPMM.js → source-resolve-MKLNYFWG.js} +24 -24
  213. package/dist/{static-host-WM24RG25.js → static-host-ONEHA4LI.js} +10 -10
  214. package/dist/{status-command-XUH5OGQX.js → status-command-XKIFKBGM.js} +57 -56
  215. package/dist/{store-CfgPaVPO.d.ts → store-Bg4Na6Sm.d.ts} +4 -4
  216. package/dist/{store-MR7IKXKK.js → store-X6ZH7EC3.js} +7 -7
  217. package/dist/sveltekit.d.ts +5 -5
  218. package/dist/sveltekit.js +1 -1
  219. package/dist/sync-baseline-DOV5AGIO.js +36 -0
  220. package/dist/{sync-contributions-DHP7XSTX.js → sync-contributions-HNVHDIQW.js} +21 -13
  221. package/dist/sync-record-PRXHLK4S.js +42 -0
  222. package/dist/{table-ZBDPKMNH.js → table-DC36QA4Y.js} +10 -10
  223. package/dist/{tables-command-X3JK7VSK.js → tables-command-UQLKTELN.js} +44 -43
  224. package/dist/{tenant-GKXMOYLK.js → tenant-EKNQGG5A.js} +11 -11
  225. package/dist/{tenant-command-P27EQHBU.js → tenant-command-2LWP2MPB.js} +105 -100
  226. package/dist/{test-command-A4G2FP7G.js → test-command-IU5MBBXY.js} +44 -43
  227. package/dist/{tests-C55M5EQS.js → tests-RG2Y5EQ4.js} +7 -7
  228. package/dist/{token-CMAB35GD.js → token-7AWSJLKO.js} +13 -13
  229. package/dist/toolchain-hooks-4ZMQLBPQ.js +46 -0
  230. package/dist/{toolchain-modules-3M7QDJBV.js → toolchain-modules-VU7SURVJ.js} +9 -6
  231. package/dist/toolchain-peers-CIDNEEQV.js +28 -0
  232. package/dist/tracked-backend-4BHSV7NC.js +81 -0
  233. package/dist/{update-check-LNNKIMML.js → update-check-A7FXIINW.js} +60 -59
  234. package/dist/{upgrade-command-7EUXML3P.js → upgrade-command-C5KBITFI.js} +64 -63
  235. package/dist/{whoami-command-KNWFWAX6.js → whoami-command-7WQII2H4.js} +16 -16
  236. package/dist/{workspace-TGPYOODG.js → workspace-Z46PUZNI.js} +6 -6
  237. package/dist/{workspace-binding-2TWZBHQY.js → workspace-binding-JE6YNDZJ.js} +15 -15
  238. package/dist/{workspace-command-T7Z2BDHD.js → workspace-command-FC4IMLAE.js} +119 -88
  239. package/dist/{workspace-env-VA7XN3UX.js → workspace-env-N4ZPFT6A.js} +17 -16
  240. package/dist/{workspace-export-AIGM6LC7.js → workspace-export-3A5BZTPS.js} +6 -6
  241. package/dist/{writable-FYJBTJOU.js → writable-D7KCZI5N.js} +4 -4
  242. package/dist/{xano-BSHYVFSE.js → xano-LCI7VWPS.js} +9 -9
  243. package/dist/{xanosdk-import-J6SRBZHW.js → xanosdk-import-P2A2KSXM.js} +10 -10
  244. package/dist/xanosdk-project-6AGMW2SL.js +42 -0
  245. package/guides/README.md +1 -0
  246. package/guides/authoring.md +3 -5
  247. package/guides/bundle.md +45 -0
  248. package/guides/cli.md +36 -34
  249. package/guides/codegen.md +5 -4
  250. package/guides/codes.md +16 -11
  251. package/guides/deploying.md +115 -58
  252. package/guides/environment.md +13 -13
  253. package/guides/marketplace.md +21 -0
  254. package/guides/module-contract.md +80 -4
  255. package/guides/project-structure.md +14 -0
  256. package/guides/typed-frontend.md +37 -0
  257. package/llms/client.md +14 -5
  258. package/llms/errors.md +1 -1
  259. package/llms/filters.md +4 -0
  260. package/llms/kinds-core.md +1 -1
  261. package/llms/statements-data.md +3 -2
  262. package/llms/tests.md +2 -2
  263. package/llms/toolchain.md +12 -0
  264. package/llms-full.txt +47 -21
  265. package/llms.txt +10 -10
  266. package/manifest.json +110 -107
  267. package/package.json +4 -4
  268. package/dist/agent-file-refresh-LB6KIMFY.js +0 -38
  269. package/dist/chunk-XXZZGXW2.js +0 -243
  270. package/dist/deploy-source-5CET3A5D.js +0 -81
  271. package/dist/env-example-refresh-ZO6XAV44.js +0 -127
  272. package/dist/init-command-27SFBW2F.js +0 -126
  273. package/dist/local-engine-choice-6BSPEG3E.js +0 -79
  274. package/dist/operation-outcome-2P4BVSEV.js +0 -51
  275. package/dist/promote-command-4F2NAE6P.js +0 -141
  276. package/dist/pull-command-WQFPLITW.js +0 -162
  277. package/dist/release-command-2OTNVMIL.js +0 -147
  278. package/dist/toolchain-hooks-BGZBDFAT.js +0 -96
  279. package/dist/tracked-backend-PZGUWD5J.js +0 -80
  280. package/dist/xanosdk-project-6KTCO47O.js +0 -41
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ENV_WORKSPACE
3
- } from "./chunk-LUTMOHOW.js";
3
+ } from "./chunk-YGLMRH5U.js";
4
4
  import {
5
5
  credentialFileOf
6
- } from "./chunk-SEUCZZCP.js";
6
+ } from "./chunk-N5I37JFB.js";
7
7
  import {
8
8
  credentialFileFlag,
9
9
  globalAuthFilePath,
@@ -12,14 +12,14 @@ import {
12
12
  readProfile,
13
13
  recordedCredentialPath,
14
14
  sameOriginAs
15
- } from "./chunk-I2BGYNHD.js";
15
+ } from "./chunk-M5CSVB23.js";
16
16
  import {
17
17
  readEnvVar
18
18
  } from "./chunk-X2NL4KUO.js";
19
19
  import {
20
20
  CliError,
21
21
  UsageError
22
- } from "./chunk-SBR2WZXG.js";
22
+ } from "./chunk-D7BUMOKU.js";
23
23
  import {
24
24
  shellQuote
25
25
  } from "./chunk-5ZSO4T2G.js";
@@ -65,7 +65,7 @@ async function readReachableWorkspaces(auth, timeoutMs = 3e4) {
65
65
  }
66
66
  }
67
67
  async function whereaboutsOf(auth, name, kinds) {
68
- const { listAllEphemeral } = await import("./ephemeral-BMFY55BQ.js");
68
+ const { listAllEphemeral } = await import("./ephemeral-BIE6FMJV.js");
69
69
  const failures = [];
70
70
  const reason = (err) => (err instanceof Error ? err.message : String(err)).split("\n")[0].replace(/[.:]$/, "");
71
71
  const [all, ephemerals] = await Promise.all([
@@ -78,7 +78,7 @@ async function whereaboutsOf(auth, name, kinds) {
78
78
  const listed = ephemerals?.some((r) => r.name === name) === true;
79
79
  if (kinds === "ephemeral" && ephemerals !== void 0 && !listed) return { at: "nowhere" };
80
80
  if (all === void 0) failures.push("the workspace list could not be read");
81
- const { getTenant } = await import("./tenant-GKXMOYLK.js");
81
+ const { getTenant } = await import("./tenant-EKNQGG5A.js");
82
82
  const others = (all ?? []).filter((w) => w.id !== auth.workspaceId);
83
83
  const found = await Promise.all(
84
84
  others.map(
@@ -162,4 +162,4 @@ export {
162
162
  rerunInWorkspace,
163
163
  heldElsewhereError
164
164
  };
165
- //# sourceMappingURL=chunk-QAEQGT5I.js.map
165
+ //# sourceMappingURL=chunk-2WBH5HUY.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-ROY4YAEQ.js";
4
4
  import {
5
5
  LocalFileNotFoundError
6
- } from "./chunk-SBR2WZXG.js";
6
+ } from "./chunk-D7BUMOKU.js";
7
7
  import {
8
8
  buildContentEnvelope
9
- } from "./chunk-EESV6NU2.js";
9
+ } from "./chunk-7FIMUFBP.js";
10
10
  import {
11
11
  SEED_FILE,
12
12
  assertSeedIds,
@@ -17,16 +17,16 @@ import {
17
17
  seedFailure,
18
18
  tableColumns,
19
19
  tableIndexes
20
- } from "./chunk-4PQHO74B.js";
20
+ } from "./chunk-SLGJIWCY.js";
21
21
  import {
22
22
  DiagnosticError
23
- } from "./chunk-GPI3OWRE.js";
23
+ } from "./chunk-YHB34BN6.js";
24
24
  import {
25
25
  HOSTED_FILE,
26
26
  HOSTED_FILE_SCHEME,
27
27
  HOSTED_ROW_PATH_PREFIX,
28
28
  isHostedFile
29
- } from "./chunk-XNCP4KYO.js";
29
+ } from "./chunk-VQPDATQT.js";
30
30
  import {
31
31
  resolveRef
32
32
  } from "./chunk-LL6ED5IB.js";
@@ -404,4 +404,4 @@ export {
404
404
  collectNonPublicSeedValues,
405
405
  seedRowsByTableGuid
406
406
  };
407
- //# sourceMappingURL=chunk-37AHZ7JX.js.map
407
+ //# sourceMappingURL=chunk-3BBIDW3Y.js.map
@@ -5,6 +5,16 @@ var HASH_DIALECT = {
5
5
  stamp: (version) => `# xanosdk ${version} \u2014 generated; edits inside this block are overwritten`,
6
6
  parseStamp: (block) => /^# xanosdk (\S+) — generated/m.exec(block)?.[1] ?? null
7
7
  };
8
+ function htmlDialect(name) {
9
+ const begin = `<!-- BEGIN:${name} -->`;
10
+ const end = `<!-- END:${name} -->`;
11
+ return {
12
+ begin: () => begin,
13
+ end: () => end,
14
+ stamp: (version) => `<!-- xanosdk ${version} \u2014 generated; edits inside this block are overwritten -->`,
15
+ parseStamp: (block) => /<!-- xanosdk (\S+) — generated/.exec(block)?.[1] ?? null
16
+ };
17
+ }
8
18
  var CONFLICT_MARKERS = ["<<<<<<<", ">>>>>>>"];
9
19
  function composeBlock(spec, lines, version) {
10
20
  const body = trimBlankEdges(lines.flatMap((line) => line.split(/\r?\n/)));
@@ -150,6 +160,7 @@ function settle(before, after) {
150
160
 
151
161
  export {
152
162
  HASH_DIALECT,
163
+ htmlDialect,
153
164
  composeBlock,
154
165
  gitattributesSpec,
155
166
  linesOutsideBlocks,
@@ -159,4 +170,4 @@ export {
159
170
  upsertBlock,
160
171
  removeBlock
161
172
  };
162
- //# sourceMappingURL=chunk-DGWHAVRG.js.map
173
+ //# sourceMappingURL=chunk-3EDSPMXN.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  findRelease,
3
3
  listReleases
4
- } from "./chunk-A6QTTJUI.js";
4
+ } from "./chunk-GWTFI3GA.js";
5
5
  import {
6
6
  isSignatureRefusal
7
- } from "./chunk-MEE5RZ6G.js";
7
+ } from "./chunk-BL3AZ3AP.js";
8
8
  import {
9
9
  resolveEphemeralName
10
- } from "./chunk-3P3HXN76.js";
10
+ } from "./chunk-ITC2R2OT.js";
11
11
  import {
12
12
  displayNameHint,
13
13
  displayNameOwner,
@@ -17,34 +17,34 @@ import {
17
17
  selectorFix,
18
18
  sentenceCase,
19
19
  sharedDisplayHint
20
- } from "./chunk-W5ONYLOP.js";
20
+ } from "./chunk-IXFJORNH.js";
21
21
  import {
22
22
  getTenant,
23
23
  tenantHasWorkspace
24
- } from "./chunk-KCAL4QYP.js";
24
+ } from "./chunk-VW4CWVYX.js";
25
25
  import {
26
26
  clearEngineRecordsNamed,
27
27
  getEngineRecord,
28
28
  listEngineRecords
29
- } from "./chunk-WL2DSNJV.js";
29
+ } from "./chunk-Q22BMRPF.js";
30
30
  import {
31
31
  assertLoopbackUrl
32
- } from "./chunk-AM4FKL4J.js";
32
+ } from "./chunk-PL7AIAWS.js";
33
33
  import {
34
34
  clearEnvironment,
35
35
  getEnvironment,
36
36
  readEphemeralState
37
- } from "./chunk-UKUIUS3E.js";
37
+ } from "./chunk-U6MTGB46.js";
38
38
  import {
39
39
  getEphemeral,
40
40
  isExpired
41
- } from "./chunk-BUECLQXK.js";
41
+ } from "./chunk-SPKA2LV6.js";
42
42
  import {
43
43
  pipedYes
44
- } from "./chunk-FMOEVAGT.js";
44
+ } from "./chunk-6X3MY2JP.js";
45
45
  import {
46
46
  contextFlags
47
- } from "./chunk-SEUCZZCP.js";
47
+ } from "./chunk-N5I37JFB.js";
48
48
  import {
49
49
  TransportError,
50
50
  UNTRUSTED_CERTIFICATE,
@@ -52,12 +52,12 @@ import {
52
52
  certificateFailureCode,
53
53
  isTimeoutError,
54
54
  lastRateLimitRetryAfter
55
- } from "./chunk-MN2PB6WB.js";
55
+ } from "./chunk-YR2I5HGE.js";
56
56
  import {
57
57
  CliError,
58
58
  EXIT_SOURCE_UNRESOLVABLE,
59
59
  safeText
60
- } from "./chunk-SBR2WZXG.js";
60
+ } from "./chunk-D7BUMOKU.js";
61
61
  import {
62
62
  suggest,
63
63
  suggestAll
@@ -120,8 +120,8 @@ function describeBackend(resolved) {
120
120
  return `${kind} ${JSON.stringify(label)}${shown}`;
121
121
  case "workspace":
122
122
  return "your workspace";
123
- case "local-engine":
124
- return resolved.provenance === "local-engine" ? "your local engine" : `local engine ${JSON.stringify(label)}`;
123
+ case "local":
124
+ return resolved.provenance === "local" ? "your Xano Engine" : `Xano Engine ${JSON.stringify(label)}`;
125
125
  default:
126
126
  return label;
127
127
  }
@@ -208,8 +208,8 @@ function listHint(kind) {
208
208
  return `\`xanosdk tenant list${contextFlags()}\` and \`xanosdk ephemeral list${contextFlags()}\` show the ones that exist`;
209
209
  case "release":
210
210
  return `\`xanosdk release list${contextFlags()}\` shows the ones that exist`;
211
- case "local-engine":
212
- return "`xanosdk local-engine list` shows the ones that are running";
211
+ case "local":
212
+ return "`xanosdk local list` shows the ones that are running";
213
213
  default:
214
214
  return "";
215
215
  }
@@ -331,7 +331,7 @@ async function releaseNames(auth) {
331
331
  }
332
332
  async function resolveSource(source, credential, deps = {}) {
333
333
  const cwd = deps.cwd ?? process.cwd();
334
- if (source.kind === "local-engine") return resolveLocalEngine(source.name, cwd, deps);
334
+ if (source.kind === "local") return resolveLocalEngine(source.name, cwd, deps);
335
335
  const auth = await credential();
336
336
  const hosted = await resolveHosted(auth, source, cwd, deps);
337
337
  return {
@@ -377,7 +377,7 @@ async function resolveHosted(auth, source, cwd, deps) {
377
377
  const cleared = clearStale(auth, name, cwd);
378
378
  if (cleared) {
379
379
  throw new SourceError(
380
- `No ephemeral named "${name}" \u2014 this project's ephemeral was deleted (cleared this project's record of it). Run \`xanosdk deploy${contextFlags()}\` to create a fresh one.`,
380
+ `No ephemeral named "${name}" \u2014 this project's ephemeral was deleted (cleared this project's record of it). Run \`xanosdk deploy --ephemeral${contextFlags()}\` to create a fresh one.`,
381
381
  "gone",
382
382
  "ephemeral"
383
383
  );
@@ -397,7 +397,7 @@ async function resolveHosted(auth, source, cwd, deps) {
397
397
  if (isExpired(summary.expiresAt)) {
398
398
  const cleared = clearStale(auth, name, cwd);
399
399
  throw new SourceError(
400
- `Ephemeral "${name}" has expired. Run \`xanosdk deploy${contextFlags()}\` to create a fresh one${cleared ? " (cleared this project's record of it)" : ""}.`,
400
+ `Ephemeral "${name}" has expired. Run \`xanosdk deploy --ephemeral${contextFlags()}\` to create a fresh one${cleared ? " (cleared this project's record of it)" : ""}.`,
401
401
  "expired",
402
402
  "ephemeral"
403
403
  );
@@ -487,19 +487,19 @@ async function resolveLocalEngine(named, cwd, deps) {
487
487
  const name = named !== void 0 && named !== "" ? named : getEngineRecord(cwd, env)?.name;
488
488
  if (name === void 0) {
489
489
  throw new SourceError(
490
- `No local engine is recorded for this project, and no name was given.
491
- Run \`xanosdk deploy --local-engine\` to stand one up, or name one from \`xanosdk local-engine list\`.` + (deps.deployFallback !== false ? ` Meanwhile \`xanosdk deploy${contextFlags()}\` still deploys to an ephemeral.` : ""),
490
+ `No Xano Engine is recorded for this project, and no name was given.
491
+ Run \`xanosdk deploy --local\` to stand one up, or name one from \`xanosdk local list\`.` + (deps.deployFallback !== false ? ` Meanwhile \`xanosdk deploy --ephemeral${contextFlags()}\` still deploys to an ephemeral.` : ""),
492
492
  "gone",
493
- "local-engine"
493
+ "local"
494
494
  );
495
495
  }
496
496
  const running = await (deps.listEngines ?? defaultEnumeration(env, cwd))();
497
497
  if (running === void 0) {
498
498
  throw new SourceError(
499
499
  `No engine is cached on this machine, so nothing here can find "${name}".
500
- Run \`xanosdk deploy --local-engine\` to fetch one.` + (deps.deployFallback !== false ? ` Meanwhile \`xanosdk deploy${contextFlags()}\` still deploys to an ephemeral.` : ""),
500
+ Run \`xanosdk deploy --local\` to fetch one.` + (deps.deployFallback !== false ? ` Meanwhile \`xanosdk deploy --ephemeral${contextFlags()}\` still deploys to an ephemeral.` : ""),
501
501
  "gone",
502
- "local-engine"
502
+ "local"
503
503
  );
504
504
  }
505
505
  const stale = !running.some((e) => e.name === name) && listEngineRecords(env).some((r) => r.name === name);
@@ -507,12 +507,12 @@ Run \`xanosdk deploy --local-engine\` to fetch one.` + (deps.deployFallback !==
507
507
  const swept = stale && sweep !== void 0 ? await sweep() : [];
508
508
  const engine = liveEngine(name, running, env, deps.deployFallback !== false, swept, deps.bareName === true);
509
509
  return {
510
- kind: "local-engine",
511
- provenance: named !== void 0 && named !== "" ? `local-engine:${name}` : "local-engine",
510
+ kind: "local",
511
+ provenance: named !== void 0 && named !== "" ? `local:${name}` : "local",
512
512
  target: {
513
513
  base: engine.url.replace(/\/$/, ""),
514
514
  workspaceId: engine.workspaceId,
515
- label: named !== void 0 && named !== "" ? name : "your local engine"
515
+ label: named !== void 0 && named !== "" ? name : "your Xano Engine"
516
516
  },
517
517
  backend: { kind: "local", engine },
518
518
  // The ENUMERATION's url and token, never a record's: a restarted engine
@@ -529,7 +529,7 @@ function liveEngine(name, running, env, deployFallback, swept = [], bareName = f
529
529
  name,
530
530
  recorded ? clearEngineRecordsNamed(name, env).length : 0,
531
531
  deployFallback,
532
- near === void 0 || bareName ? near : `local-engine:${near}`,
532
+ near === void 0 || bareName ? near : `local:${near}`,
533
533
  swept
534
534
  );
535
535
  }
@@ -539,7 +539,7 @@ function liveEngine(name, running, env, deployFallback, swept = [], bareName = f
539
539
  recorded ? "The engine recorded for this project" : `The engine named "${name}"`
540
540
  );
541
541
  } catch (err) {
542
- throw new SourceError(err.message, "unreachable", "local-engine");
542
+ throw new SourceError(err.message, "unreachable", "local");
543
543
  }
544
544
  return engine;
545
545
  }
@@ -550,24 +550,24 @@ function engineNotRunning(name, clearedProjects, deployFallback = true, nearest,
550
550
  ];
551
551
  const tail = said.length === 0 ? "" : ` (${said.join("; ")})`;
552
552
  return new SourceError(
553
- `Local engine "${name}" is not running${tail}.
553
+ `Xano Engine "${name}" is not running${tail}.
554
554
  ` + // A one-letter slip on a name nobody types by hand — say which one runs.
555
555
  (nearest !== void 0 ? `Did you mean \`${nearest}\`? It is running.
556
- ` : "") + `${listHint("local-engine")}, and \`xanosdk deploy --local-engine\` stands one up.` + (deployFallback ? ` Meanwhile \`xanosdk deploy${contextFlags()}\` still deploys to an ephemeral.` : ""),
556
+ ` : "") + `${listHint("local")}, and \`xanosdk deploy --local\` stands one up.` + (deployFallback ? ` Meanwhile \`xanosdk deploy --ephemeral${contextFlags()}\` still deploys to an ephemeral.` : ""),
557
557
  "gone",
558
- "local-engine",
558
+ "local",
559
559
  nearest
560
560
  );
561
561
  }
562
562
  function defaultSweep(env) {
563
563
  return async () => {
564
- const { stopOrphanedEngineProcesses } = await import("./local-engine-process-6VZ7JJBP.js");
564
+ const { stopOrphanedEngineProcesses } = await import("./local-engine-process-ZLLZEIRF.js");
565
565
  return stopOrphanedEngineProcesses({ env }).stopped;
566
566
  };
567
567
  }
568
568
  function defaultEnumeration(env, cwd) {
569
569
  return async () => {
570
- const { cachedEngineEntry, listEngines } = await import("./local-engine-process-6VZ7JJBP.js");
570
+ const { cachedEngineEntry, listEngines } = await import("./local-engine-process-ZLLZEIRF.js");
571
571
  const entry = cachedEngineEntry(env, cwd);
572
572
  return entry === void 0 ? void 0 : listEngines({ entry, env });
573
573
  };
@@ -598,4 +598,4 @@ export {
598
598
  releaseNames,
599
599
  resolveSource
600
600
  };
601
- //# sourceMappingURL=chunk-2AUV6NXK.js.map
601
+ //# sourceMappingURL=chunk-3II44CUJ.js.map
@@ -2,7 +2,7 @@ import {
2
2
  encodeInput,
3
3
  f,
4
4
  input
5
- } from "./chunk-37FBPMNE.js";
5
+ } from "./chunk-S56YBYMN.js";
6
6
 
7
7
  // src/kinds/trigger-inputs.ts
8
8
  var ERROR_EVENT_DESCRIPTION = `Which event fired the trigger. "new" fires on first capture and on every snapshot re-capture for non-ignored signatures (rate-limited by the ~5min snapshot dedup window). "regression" fires when a previously-fixed signature re-occurs (the fix didn't hold, or the same bug regressed back). "fixed" fires when a user marks a signature as fixed.`;
@@ -207,4 +207,4 @@ export {
207
207
  impliedInputs,
208
208
  isTriggerObjType
209
209
  };
210
- //# sourceMappingURL=chunk-7GX445AE.js.map
210
+ //# sourceMappingURL=chunk-4XHAT7C5.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
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5ZSO4T2G.js";
4
4
  import {
5
5
  isPrivateLibraryRow
6
- } from "./chunk-XNCP4KYO.js";
6
+ } from "./chunk-VQPDATQT.js";
7
7
  import {
8
8
  REFERENCEABLE_KIND_PAYLOAD_KEYS,
9
9
  rawDeriveGuid
@@ -230,13 +230,20 @@ function appNamesByGuid(appSection) {
230
230
  return map;
231
231
  }
232
232
  var CANONICAL_SOURCES = /* @__PURE__ */ new Set(["code", "minted", "adopted"]);
233
+ var SYNC_SOURCES = /* @__PURE__ */ new Set(["deploy", "promote", "pull", "init"]);
234
+ function withSyncedOf(base, lock) {
235
+ return lock.synced !== void 0 && Object.keys(lock.synced).length > 0 ? { ...base, synced: lock.synced } : base;
236
+ }
233
237
  var DESTINATION_KEY = /^[^/\s]+\/(?:workspace\/[1-9]\d*|tenant\/[^/\s]+)$/;
234
238
  var EPHEMERAL_DESTINATION_KEY = /^[^/\s]+\/ephemeral\/[^/\s]+$/;
235
239
  function emptyLock() {
236
240
  return { version: LOCK_VERSION, objects: {} };
237
241
  }
238
242
  function withObjects(lock, objects) {
239
- return lock.landed !== void 0 && Object.keys(lock.landed).length > 0 ? { version: lock.version, objects, landed: lock.landed } : { version: lock.version, objects };
243
+ return withSyncedOf(
244
+ lock.landed !== void 0 && Object.keys(lock.landed).length > 0 ? { version: lock.version, objects, landed: lock.landed } : { version: lock.version, objects },
245
+ lock
246
+ );
240
247
  }
241
248
  function findDuplicateRawKey(text) {
242
249
  const stack = [];
@@ -297,7 +304,7 @@ function parseLockReport(text, path = "xano.lock", opts = {}) {
297
304
  if (/^(?:<{7}|>{7})(?: |$)|^={7}$/m.test(text)) {
298
305
  fail(
299
306
  path,
300
- `it holds unresolved merge-conflict markers (\`<<<<<<<\`, \`=======\`, \`>>>>>>>\`). Resolve it as the union of both sides: keep every entry under \`objects\` (and \`landed\`) from each, delete the markers, and fix the commas. Where both sides renamed one object, two keys then share a guid \u2014 keep the one your code exports and remove the other with \`xanosdk lock prune --identity-only --yes <key>\`.`
307
+ `it holds unresolved merge-conflict markers (\`<<<<<<<\`, \`=======\`, \`>>>>>>>\`). Resolve it as the union of both sides: keep every entry under \`objects\` (and \`landed\`) from each, delete the markers, and fix the commas. Under \`synced\`, keep either side's baseline for a branch, or delete it: a missing baseline only means \`workspace diff\` cannot say which side changed until the next deploy or pull. Where both sides renamed one object, two keys then share a guid \u2014 keep the one your code exports and remove the other with \`xanosdk lock prune --identity-only --yes <key>\`.`
301
308
  );
302
309
  }
303
310
  const dup = findDuplicateRawKey(text);
@@ -328,8 +335,14 @@ function parseLockReport(text, path = "xano.lock", opts = {}) {
328
335
  }
329
336
  const objects = validateLockObjects(obj.objects, path, opts);
330
337
  const landed = obj.landed === void 0 ? void 0 : validateLanded(obj.landed, path, droppedLandings);
338
+ const synced = obj.synced === void 0 ? void 0 : validateSynced(obj.synced);
331
339
  return {
332
- lock: { version: LOCK_VERSION, objects, ...landed !== void 0 && Object.keys(landed).length > 0 ? { landed } : {} },
340
+ lock: {
341
+ version: LOCK_VERSION,
342
+ objects,
343
+ ...landed !== void 0 && Object.keys(landed).length > 0 ? { landed } : {},
344
+ ...synced !== void 0 && Object.keys(synced).length > 0 ? { synced } : {}
345
+ },
333
346
  droppedLandings
334
347
  };
335
348
  }
@@ -369,6 +382,47 @@ function validateLanded(raw, path, dropped) {
369
382
  }
370
383
  return out;
371
384
  }
385
+ function sortedDigests(digests) {
386
+ return Object.fromEntries(Object.entries(digests).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0));
387
+ }
388
+ var WORKSPACE_DESTINATION_KEY = /^[^/\s]+\/workspace\/[1-9]\d*$/;
389
+ function validateSynced(raw) {
390
+ const out = {};
391
+ if (!isPlainRecord(raw)) return out;
392
+ for (const [dest, branches] of Object.entries(raw)) {
393
+ if (!WORKSPACE_DESTINATION_KEY.test(dest) || !isPlainRecord(branches)) continue;
394
+ const record = {};
395
+ for (const [branch, entry] of Object.entries(branches)) {
396
+ const baseline = readBaseline(entry);
397
+ if (branch.trim() !== "" && baseline !== void 0) record[branch] = baseline;
398
+ }
399
+ if (Object.keys(record).length > 0) out[dest] = record;
400
+ }
401
+ return out;
402
+ }
403
+ function isPlainRecord(v) {
404
+ return v !== null && typeof v === "object" && !Array.isArray(v);
405
+ }
406
+ function readDigests(raw) {
407
+ if (!isPlainRecord(raw)) return void 0;
408
+ const out = {};
409
+ for (const [label, digest] of Object.entries(raw)) {
410
+ if (typeof digest !== "string" || digest === "") return void 0;
411
+ out[label] = digest;
412
+ }
413
+ return out;
414
+ }
415
+ function readBaseline(raw) {
416
+ if (!isPlainRecord(raw)) return void 0;
417
+ const { at, by, complete, scheme } = raw;
418
+ const objects = readDigests(raw.objects);
419
+ const others = raw.others === void 0 ? {} : readDigests(raw.others);
420
+ if (typeof at !== "string" || Number.isNaN(Date.parse(at))) return void 0;
421
+ if (typeof by !== "string" || !SYNC_SOURCES.has(by) || typeof complete !== "boolean") return void 0;
422
+ if (typeof scheme !== "number" || !Number.isInteger(scheme) || scheme < 1) return void 0;
423
+ if (objects === void 0 || others === void 0) return void 0;
424
+ return { at, by, scheme, complete, objects, ...Object.keys(others).length > 0 ? { others } : {} };
425
+ }
372
426
  function validateLockModel(lock, label, observed) {
373
427
  if (observed !== void 0) {
374
428
  assertEmittedCanonicalsUnique(observed, label);
@@ -593,8 +647,31 @@ function serializeLock(lock) {
593
647
  }
594
648
  landed[dest] = record;
595
649
  }
650
+ const synced = {};
651
+ for (const dest of Object.keys(lock.synced ?? {}).sort()) {
652
+ const src = lock.synced[dest];
653
+ const record = {};
654
+ for (const branch of Object.keys(src).sort()) {
655
+ const b = src[branch];
656
+ const others = b.others === void 0 ? {} : sortedDigests(b.others);
657
+ record[branch] = {
658
+ at: b.at,
659
+ by: b.by,
660
+ scheme: b.scheme,
661
+ complete: b.complete,
662
+ objects: sortedDigests(b.objects),
663
+ ...Object.keys(others).length > 0 ? { others } : {}
664
+ };
665
+ }
666
+ if (Object.keys(record).length > 0) synced[dest] = record;
667
+ }
596
668
  return JSON.stringify(
597
- Object.keys(landed).length > 0 ? { version: lock.version, objects, landed } : { version: lock.version, objects },
669
+ {
670
+ version: lock.version,
671
+ objects,
672
+ ...Object.keys(landed).length > 0 ? { landed } : {},
673
+ ...Object.keys(synced).length > 0 ? { synced } : {}
674
+ },
598
675
  null,
599
676
  2
600
677
  ) + "\n";
@@ -967,6 +1044,7 @@ export {
967
1044
  lockNameForObject,
968
1045
  identityNamesByGuid,
969
1046
  appNamesByGuid,
1047
+ withSyncedOf,
970
1048
  DESTINATION_KEY,
971
1049
  emptyLock,
972
1050
  withObjects,
@@ -984,4 +1062,4 @@ export {
984
1062
  withoutGuidSources,
985
1063
  mergeObserved
986
1064
  };
987
- //# sourceMappingURL=chunk-OOGXZL7Z.js.map
1065
+ //# sourceMappingURL=chunk-5KJBWIDZ.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-7KPKDHHI.js";
7
7
  import {
8
8
  buildBundle
9
- } from "./chunk-EESV6NU2.js";
9
+ } from "./chunk-7FIMUFBP.js";
10
10
  import {
11
11
  checkAddonAttachments,
12
12
  checkAddonOutput,
@@ -71,7 +71,7 @@ import {
71
71
  postEnvelopeMisreads,
72
72
  unnestedEnvelopeReads,
73
73
  walkNodes
74
- } from "./chunk-OPG4DYX2.js";
74
+ } from "./chunk-T4LJ5UR2.js";
75
75
  import {
76
76
  WORKSPACE_HISTORY_TYPES,
77
77
  assertNameAsStored,
@@ -101,7 +101,7 @@ import {
101
101
  DiagnosticBag,
102
102
  allowableWarnings,
103
103
  setDiagnosticSink
104
- } from "./chunk-GPI3OWRE.js";
104
+ } from "./chunk-YHB34BN6.js";
105
105
  import {
106
106
  CANONICAL_PAYLOAD_KEYS,
107
107
  LOCK_PAYLOAD_KEYS,
@@ -112,11 +112,11 @@ import {
112
112
  mintCanonical,
113
113
  recordObserved,
114
114
  sdkKindName
115
- } from "./chunk-OOGXZL7Z.js";
115
+ } from "./chunk-5KJBWIDZ.js";
116
116
  import {
117
117
  HOSTED_ICON_KINDS,
118
118
  pendingHostedFile
119
- } from "./chunk-XNCP4KYO.js";
119
+ } from "./chunk-VQPDATQT.js";
120
120
  import {
121
121
  isTaggedValue
122
122
  } from "./chunk-UVF45BVU.js";
@@ -1894,4 +1894,4 @@ export {
1894
1894
  Xano,
1895
1895
  workspace
1896
1896
  };
1897
- //# sourceMappingURL=chunk-5YL5OC2G.js.map
1897
+ //# sourceMappingURL=chunk-5QMJOE2K.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  UsageError,
6
6
  displayPath
7
- } from "./chunk-SBR2WZXG.js";
7
+ } from "./chunk-D7BUMOKU.js";
8
8
 
9
9
  // src/emit/writable.ts
10
10
  import { accessSync, constants, existsSync, statSync } from "fs";
@@ -63,4 +63,4 @@ export {
63
63
  unreadableError,
64
64
  assertReadWritable
65
65
  };
66
- //# sourceMappingURL=chunk-3H3EPMFY.js.map
66
+ //# sourceMappingURL=chunk-5TVFLG3C.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  confirm
3
- } from "./chunk-4APOHK7Y.js";
3
+ } from "./chunk-JXVJGF3Y.js";
4
4
  import {
5
5
  ProfileNotFoundError,
6
6
  describeRefreshAnswer,
7
7
  environmentCredentialVars
8
- } from "./chunk-LUTMOHOW.js";
8
+ } from "./chunk-YGLMRH5U.js";
9
9
  import {
10
10
  yesRerun
11
- } from "./chunk-FMOEVAGT.js";
11
+ } from "./chunk-6X3MY2JP.js";
12
12
  import {
13
13
  OpenIdProvider,
14
14
  assertCredentialFileRemovable,
@@ -31,14 +31,14 @@ import {
31
31
  resolveScope,
32
32
  withCredentialLock,
33
33
  writeOrRemoveCredentialFile
34
- } from "./chunk-I2BGYNHD.js";
34
+ } from "./chunk-M5CSVB23.js";
35
35
  import {
36
36
  findProjectPointer,
37
37
  resolveProjectProfile
38
- } from "./chunk-FPBGAT5D.js";
38
+ } from "./chunk-26MOFAJT.js";
39
39
  import {
40
40
  resolveActiveProfile
41
- } from "./chunk-QXTKSOFI.js";
41
+ } from "./chunk-MF4W6FHU.js";
42
42
  import {
43
43
  UsageError,
44
44
  detail,
@@ -50,7 +50,7 @@ import {
50
50
  success,
51
51
  warn,
52
52
  writeJson
53
- } from "./chunk-SBR2WZXG.js";
53
+ } from "./chunk-D7BUMOKU.js";
54
54
  import {
55
55
  suggestAll
56
56
  } from "./chunk-UTI5G6OJ.js";
@@ -288,7 +288,7 @@ function refuseIfOnlyInProjectFile(args, authFilePath, selection, names) {
288
288
  }
289
289
  if (held === null || !Object.prototype.hasOwnProperty.call(held.profiles, selection.name)) return;
290
290
  throw new ProfileNotFoundError(
291
- `Profile "${selection.name}" is not in ${authFilePath}, the file \`logout\` clears by default \u2014 it is stored in this project's ${local}. Run \`xanosdk logout --local -p ${selection.name}\` to sign out of it there.`,
291
+ `Profile "${selection.name}" is not in ${authFilePath}, the file \`logout\` clears by default \u2014 it is stored in this project's ${local}. Run \`xanosdk logout --local-auth -p ${selection.name}\` to sign out of it there.`,
292
292
  selection,
293
293
  names
294
294
  );
@@ -429,4 +429,4 @@ export {
429
429
  salvageRevocable,
430
430
  signInAgain
431
431
  };
432
- //# sourceMappingURL=chunk-WFMVKY7I.js.map
432
+ //# sourceMappingURL=chunk-5YQV35C2.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
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  contextFlags,
6
6
  isCredentialStoreCommand
7
- } from "./chunk-SEUCZZCP.js";
7
+ } from "./chunk-N5I37JFB.js";
8
8
  import {
9
9
  shellQuote
10
10
  } from "./chunk-5ZSO4T2G.js";
@@ -77,7 +77,7 @@ function retryCommand(args, opts = {}) {
77
77
  if (!attached && (CREDENTIAL_VALUE_FLAGS.has(spelling) || createOnly.has(spelling))) i += 1;
78
78
  continue;
79
79
  }
80
- if (token === "--local") continue;
80
+ if (token === "--local-auth") continue;
81
81
  kept.push(shellQuote(token));
82
82
  }
83
83
  const stdin = secretAt === void 0 ? "" : `printf %s "${STDIN_VALUE}" | `;
@@ -106,4 +106,4 @@ export {
106
106
  pipedYes,
107
107
  withheldNote
108
108
  };
109
- //# sourceMappingURL=chunk-FMOEVAGT.js.map
109
+ //# sourceMappingURL=chunk-6X3MY2JP.js.map