@xano/sdk 1.0.2 → 1.0.3

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 (245) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/.build-fingerprint +1 -1
  3. package/dist/{agent-file-refresh-E6VSDB2M.js → agent-file-refresh-MQKCS7QZ.js} +10 -10
  4. package/dist/{answer-shape-BOZSUUBR.js → answer-shape-LVV2SVBK.js} +5 -5
  5. package/dist/{backend-dir-5ER5P65P.js → backend-dir-DGAQL4K5.js} +10 -10
  6. package/dist/{backend-slot-7EYY7DU5.js → backend-slot-NSCTWCUX.js} +4 -4
  7. package/dist/bin.js +62 -61
  8. package/dist/{branch-2W7SCLTJ.js → branch-ONWPJ4V6.js} +9 -9
  9. package/dist/branch-commands-R4PPN3Z7.js +79 -0
  10. package/dist/bundle.js +7 -7
  11. package/dist/{capture-WAXPD7DR.js → capture-3JNUA6C2.js} +5 -5
  12. package/dist/{chunk-ZNTK4GCI.js → chunk-2CGPQ7IM.js} +6 -6
  13. package/dist/{chunk-R3X7ECBS.js → chunk-2LVTBPW2.js} +3 -3
  14. package/dist/{chunk-PCJLL36N.js → chunk-37AHZ7JX.js} +6 -6
  15. package/dist/{chunk-4PCJEHA4.js → chunk-37FBPMNE.js} +4 -4
  16. package/dist/{chunk-5JULOSEF.js → chunk-3H3EPMFY.js} +2 -2
  17. package/dist/{chunk-YP5ME5RT.js → chunk-3HOGFGKG.js} +30 -3
  18. package/dist/{chunk-ZDPP6RKB.js → chunk-45ZUMF4E.js} +2 -2
  19. package/dist/{chunk-2YH2I6RA.js → chunk-46TUUNM3.js} +14 -14
  20. package/dist/{chunk-FEQICT4D.js → chunk-4APOHK7Y.js} +2 -2
  21. package/dist/{chunk-TTEIYD5P.js → chunk-4DJTQ6W4.js} +1 -1
  22. package/dist/{chunk-CIMQZRRE.js → chunk-4MIV244X.js} +3 -3
  23. package/dist/{chunk-G5IW3EYW.js → chunk-4PQHO74B.js} +26 -15
  24. package/dist/{chunk-MPSVU34E.js → chunk-5T2CTWTB.js} +6 -6
  25. package/dist/{chunk-IWGNIWQX.js → chunk-5W7DOMIU.js} +13 -13
  26. package/dist/{chunk-7THLGPVA.js → chunk-5YL5OC2G.js} +12 -12
  27. package/dist/{chunk-6RIKXG5I.js → chunk-6JAEMMZ7.js} +5 -5
  28. package/dist/{chunk-PFFXX6YU.js → chunk-6NYLVUSZ.js} +42 -42
  29. package/dist/{chunk-JGE7CAWB.js → chunk-6R7S775T.js} +2 -2
  30. package/dist/{chunk-SZOCJRFC.js → chunk-7GX445AE.js} +2 -2
  31. package/dist/{chunk-ZH4O6RWX.js → chunk-7KGASMCE.js} +7 -7
  32. package/dist/{chunk-2DH7VTO5.js → chunk-7KLAMYMS.js} +220 -71
  33. package/dist/{chunk-DBZASBQS.js → chunk-7KPKDHHI.js} +3 -3
  34. package/dist/{chunk-27GWNP2I.js → chunk-7THDHQ4R.js} +9 -2
  35. package/dist/{chunk-CALOC47J.js → chunk-7TXBKK5G.js} +7 -7
  36. package/dist/{chunk-YU4HSQW7.js → chunk-A2AOUBJS.js} +15 -8
  37. package/dist/{chunk-PGBSDRT4.js → chunk-A4KBHTMK.js} +29 -29
  38. package/dist/{chunk-JIEZZ5QU.js → chunk-A6QTTJUI.js} +2 -2
  39. package/dist/{chunk-DPDHBJNI.js → chunk-AMTJ4G32.js} +5 -5
  40. package/dist/{chunk-5OT4QGGZ.js → chunk-ANHOEBTJ.js} +4 -4
  41. package/dist/{chunk-GGZILEUD.js → chunk-BEXZ4XRV.js} +2 -2
  42. package/dist/{chunk-SSK5OWT6.js → chunk-BUECLQXK.js} +4 -4
  43. package/dist/{chunk-VSL7ET5S.js → chunk-BUJRS7XB.js} +3 -3
  44. package/dist/{chunk-FAGYIOLE.js → chunk-CBYQ2ZN3.js} +5 -5
  45. package/dist/{chunk-L3LYWXVE.js → chunk-CFSFBKHP.js} +2 -2
  46. package/dist/{chunk-5RA4BBJL.js → chunk-CJPLBFFY.js} +8 -8
  47. package/dist/{chunk-6EJQ4EJ7.js → chunk-CYB7UQA2.js} +2 -2
  48. package/dist/{chunk-BPJIHLP2.js → chunk-D3XOH7E7.js} +8 -8
  49. package/dist/{chunk-SZCQ2HVH.js → chunk-D64XUF5Q.js} +2 -2
  50. package/dist/{chunk-36X3OZKU.js → chunk-DIG3NITC.js} +3 -3
  51. package/dist/{chunk-VIPK7FHI.js → chunk-DYG5D3FD.js} +2 -2
  52. package/dist/{chunk-FFDZFVBD.js → chunk-E65QIWOO.js} +4 -4
  53. package/dist/{chunk-LQCMKAJ7.js → chunk-EESV6NU2.js} +3 -3
  54. package/dist/{chunk-VVE3C2X6.js → chunk-EOIJ7MVW.js} +3 -3
  55. package/dist/{chunk-DMD5I36N.js → chunk-ERJNHEFV.js} +3 -3
  56. package/dist/{chunk-5WGGTU5K.js → chunk-ETAZIGNT.js} +5 -5
  57. package/dist/{chunk-6X2I2WMV.js → chunk-EWCDPFW5.js} +4 -4
  58. package/dist/{chunk-HDIISRNY.js → chunk-F5KILDDO.js} +87 -87
  59. package/dist/{chunk-JWW4KU7T.js → chunk-FMOEVAGT.js} +2 -2
  60. package/dist/{chunk-Z6LUIVLY.js → chunk-FPBGAT5D.js} +2 -2
  61. package/dist/{chunk-CNYP6X7Q.js → chunk-FSYVOCS7.js} +5 -5
  62. package/dist/{chunk-TAHRVKKZ.js → chunk-FURLOAUM.js} +3 -3
  63. package/dist/{chunk-64AYI7QR.js → chunk-FWXSTFN2.js} +4 -4
  64. package/dist/{chunk-2Y4X2VLM.js → chunk-GPI3OWRE.js} +8 -3
  65. package/dist/{chunk-XNHEGBBT.js → chunk-HHFPIJGL.js} +3 -3
  66. package/dist/{chunk-D2JAPAQL.js → chunk-HHW5AWVD.js} +8 -8
  67. package/dist/{chunk-DTZSOJ6M.js → chunk-HMLGM2MW.js} +4 -4
  68. package/dist/{chunk-5KDJCQEU.js → chunk-HSEQYBDO.js} +2 -2
  69. package/dist/{chunk-GME75QO6.js → chunk-I2BGYNHD.js} +4 -4
  70. package/dist/{chunk-XVBGLISP.js → chunk-ICK36EGF.js} +2 -2
  71. package/dist/{chunk-WT7XRC6A.js → chunk-II747OWE.js} +45 -45
  72. package/dist/{chunk-VTLE2QDY.js → chunk-IRQCV3OT.js} +4 -4
  73. package/dist/{chunk-AHPEGODA.js → chunk-IVKRT476.js} +2 -2
  74. package/dist/{chunk-P7MBT4LJ.js → chunk-IXUPUFCG.js} +2 -2
  75. package/dist/{chunk-ZP6QRKZX.js → chunk-JTM5D7CT.js} +8 -8
  76. package/dist/{chunk-NSE7BZB6.js → chunk-K3LE5B5E.js} +72 -72
  77. package/dist/{chunk-QVZYYBVY.js → chunk-KCAL4QYP.js} +4 -4
  78. package/dist/{chunk-S3SV2BE7.js → chunk-KTGRGWZW.js} +7 -7
  79. package/dist/{chunk-5G5J5YRO.js → chunk-KUTFFHUM.js} +2 -2
  80. package/dist/{chunk-CSKYCZMO.js → chunk-KXYW3DRR.js} +7 -7
  81. package/dist/{chunk-LZZ7HN4L.js → chunk-LAKHO2B7.js} +8 -8
  82. package/dist/{chunk-NZOWWHU5.js → chunk-LL6ED5IB.js} +2 -2
  83. package/dist/{chunk-G4PFESPY.js → chunk-LXNQWHZM.js} +3 -3
  84. package/dist/{chunk-VGV2RF5X.js → chunk-MEE5RZ6G.js} +2 -2
  85. package/dist/{chunk-PYT3DC4G.js → chunk-MN2PB6WB.js} +2 -2
  86. package/dist/{chunk-2UN4TGBK.js → chunk-MNVDVR3M.js} +4 -4
  87. package/dist/{chunk-GSCW6RMU.js → chunk-NPXM6ZQY.js} +4 -4
  88. package/dist/{chunk-WQCL3AV7.js → chunk-O7QOWS6M.js} +3 -3
  89. package/dist/{chunk-D3YR6AIZ.js → chunk-OO63ZU46.js} +7 -7
  90. package/dist/{chunk-6MR5TI5V.js → chunk-OOGXZL7Z.js} +2 -2
  91. package/dist/{chunk-EDCCKH7Y.js → chunk-OPG4DYX2.js} +90 -48
  92. package/dist/{chunk-VUVPZYMM.js → chunk-PWIXETG7.js} +4 -4
  93. package/dist/{chunk-GQ4PMMCQ.js → chunk-QEZL5MPJ.js} +3 -3
  94. package/dist/{chunk-OJLJA3XM.js → chunk-QV3GXQRE.js} +2 -2
  95. package/dist/{chunk-TLQE7ZN3.js → chunk-RX3EMQGN.js} +2 -2
  96. package/dist/{chunk-JZEWT7NY.js → chunk-SBR2WZXG.js} +4 -4
  97. package/dist/{chunk-MOELGXVV.js → chunk-SEATQLFB.js} +13 -13
  98. package/dist/{chunk-RJOGX6LA.js → chunk-SEUCZZCP.js} +2 -2
  99. package/dist/{chunk-IG5QQQSA.js → chunk-TTVAHCWP.js} +2 -2
  100. package/dist/{chunk-GUKT7QYA.js → chunk-UDE5C2XN.js} +2 -2
  101. package/dist/{chunk-AKNCFVKZ.js → chunk-UDZX2ZL4.js} +1 -1
  102. package/dist/{chunk-NWKXM5RD.js → chunk-UI4OPTYR.js} +2 -2
  103. package/dist/{chunk-EJ3JCML2.js → chunk-UKUIUS3E.js} +4 -4
  104. package/dist/{chunk-HYAI62TU.js → chunk-UVF45BVU.js} +14 -9
  105. package/dist/{chunk-DRRJCODW.js → chunk-UWY3R4TS.js} +8 -8
  106. package/dist/{chunk-P2HAGF6H.js → chunk-VD32O6KZ.js} +3 -3
  107. package/dist/{chunk-4POWHT2K.js → chunk-VTMTIBKP.js} +8 -7
  108. package/dist/{chunk-OY4PS6SO.js → chunk-W5ONYLOP.js} +4 -4
  109. package/dist/{chunk-BTR2EQ4T.js → chunk-WFG67AYS.js} +3 -3
  110. package/dist/{chunk-FLLBK7EH.js → chunk-WGA25EV5.js} +3 -3
  111. package/dist/{chunk-JXUBSUQY.js → chunk-WOGJB2F6.js} +66 -18
  112. package/dist/{chunk-WP4N63FZ.js → chunk-XCPF7BEJ.js} +5 -5
  113. package/dist/{chunk-FXFV3KU6.js → chunk-XMDDBEEM.js} +10 -6
  114. package/dist/{chunk-7K6A4O2T.js → chunk-XXZZGXW2.js} +3 -3
  115. package/dist/{chunk-C3YIYEWR.js → chunk-YTPGQV5C.js} +7 -7
  116. package/dist/{chunk-JZCR3EQM.js → chunk-Z5UCPWGU.js} +20 -20
  117. package/dist/{chunk-YZ2UIG2K.js → chunk-ZH5R7NKN.js} +3 -3
  118. package/dist/{chunk-WPTLUJJR.js → chunk-ZTUNCVAR.js} +50 -50
  119. package/dist/{chunk-YYLRKWCZ.js → chunk-ZVYN4FXD.js} +14 -14
  120. package/dist/chunk-ZY55DO5P.js +24 -0
  121. package/dist/{chunk-P7PYN6HI.js → chunk-ZZEIC5PT.js} +3 -3
  122. package/dist/cli.d.ts +2 -2
  123. package/dist/cli.js +60 -59
  124. package/dist/{codegen-command-VO3RQTFX.js → codegen-command-SW2AP7KR.js} +77 -76
  125. package/dist/codegen.d.ts +5 -3
  126. package/dist/codegen.js +10 -6
  127. package/dist/{commands-QZERBFE2.js → commands-CVFYC4GK.js} +3 -3
  128. package/dist/{completion-6EKRFJJG.js → completion-AUEQC4XJ.js} +3 -3
  129. package/dist/{config-PZIRRUP6.js → config-JU6OQC77.js} +4 -4
  130. package/dist/{deploy-command-UGJPAXFQ.js → deploy-command-RD6W7PXN.js} +67 -66
  131. package/dist/{deploy-source-N6DMS2C5.js → deploy-source-ULSWF2V7.js} +31 -31
  132. package/dist/{dev-env-sync-EM4DWMN7.js → dev-env-sync-E2GFIVC5.js} +61 -60
  133. package/dist/{diagnostics-NSTYAWWN.js → diagnostics-LSMGB4TY.js} +2 -2
  134. package/dist/{display-name-hint-WT4SRTLI.js → display-name-hint-DMORHANO.js} +11 -11
  135. package/dist/{emit-BWGtkkOK.d.ts → emit-hOFbgzde.d.ts} +19 -15
  136. package/dist/env-example-refresh-WFKGILLY.js +127 -0
  137. package/dist/{env-pull-command-OHNICDTL.js → env-pull-command-QYQEOUE3.js} +51 -51
  138. package/dist/{env-target-5QFU2TR5.js → env-target-KUWQYHZ7.js} +14 -14
  139. package/dist/{env-var-command-AZCWUGI5.js → env-var-command-2ZAVIPNY.js} +40 -40
  140. package/dist/{ephemeral-76VMMZOU.js → ephemeral-BMFY55BQ.js} +9 -9
  141. package/dist/{ephemeral-command-EOAMMY3V.js → ephemeral-command-UKHBT3OW.js} +52 -52
  142. package/dist/{ephemeral-state-RRGJZBVF.js → ephemeral-state-6TY4JIPA.js} +12 -12
  143. package/dist/{generate-command-LPX3ATV6.js → generate-command-YN3HZWHG.js} +81 -80
  144. package/dist/{gitignore-BPYA5H34.js → gitignore-AU5X5F3I.js} +14 -14
  145. package/dist/{guards-FFQY3XAT.js → guards-EJU2ONAX.js} +17 -14
  146. package/dist/{impersonate-command-HLL2FKSY.js → impersonate-command-ZKE77GFT.js} +36 -36
  147. package/dist/{import-BG36DYZI.js → import-TBTOTU52.js} +5 -5
  148. package/dist/index.d.ts +151 -9
  149. package/dist/index.js +27 -26
  150. package/dist/init-command-NPXBMJNG.js +126 -0
  151. package/dist/{init-modules-AAH2UPHQ.js → init-modules-5TSTLGH5.js} +8 -8
  152. package/dist/{init-web-YBUM2BD5.js → init-web-Y2PBNJTQ.js} +3 -3
  153. package/dist/internal.d.ts +5 -5
  154. package/dist/internal.js +38 -31
  155. package/dist/{io-RC56QSN5.js → io-ZUKAGFVE.js} +6 -6
  156. package/dist/{keep-data-merge-DQR6L5FV.js → keep-data-merge-TDSELE5U.js} +39 -38
  157. package/dist/{landed-753YLJ5H.js → landed-6VO7CX5P.js} +5 -5
  158. package/dist/{landing-record-HWZTBTTP.js → landing-record-W7VQ4KV4.js} +21 -21
  159. package/dist/{live-diff-VJGPLS3E.js → live-diff-2S7E3SBZ.js} +15 -15
  160. package/dist/{local-engine-choice-QDOR72VD.js → local-engine-choice-OXULXWEP.js} +34 -34
  161. package/dist/{local-engine-command-CJKBG5M4.js → local-engine-command-5MTGZIZ4.js} +39 -39
  162. package/dist/{local-engine-deploy-ACJTJ7X5.js → local-engine-deploy-TXAOYRGF.js} +12 -12
  163. package/dist/{local-engine-process-ZJUPJ7VJ.js → local-engine-process-6VZ7JJBP.js} +7 -7
  164. package/dist/{local-engine-update-check-REGHKVK7.js → local-engine-update-check-R5SPDVEJ.js} +5 -5
  165. package/dist/{lock-MRRHW5GS.js → lock-TS465GVY.js} +4 -4
  166. package/dist/{lock-commands-XTMBIWGO.js → lock-commands-OBXAUSZX.js} +67 -66
  167. package/dist/{login-command-QSNMIG4D.js → login-command-CB3O3UDZ.js} +26 -26
  168. package/dist/{logout-command-AL54YZDB.js → logout-command-J5CP5HZZ.js} +17 -17
  169. package/dist/{loop-XLJ7S37B.js → loop-UFHKSOQ4.js} +16 -16
  170. package/dist/{marketplace-command-UHZXGJMH.js → marketplace-command-A5S25ZHF.js} +28 -28
  171. package/dist/{marketplace-resolve-4RQQ46LA.js → marketplace-resolve-GRXMK5YD.js} +6 -6
  172. package/dist/{meta-client-FFNDXZCQ.js → meta-client-FB73643X.js} +15 -15
  173. package/dist/{module-manifest-TTQAEXPS.js → module-manifest-GIKFNXPE.js} +4 -4
  174. package/dist/node.d.ts +6 -6
  175. package/dist/node.js +69 -68
  176. package/dist/operation-outcome-V4FUJI7V.js +51 -0
  177. package/dist/{output-target-MVKAEPEI.js → output-target-6HNPK6KC.js} +15 -15
  178. package/dist/{plan-disclosure-ZDZISUWI.js → plan-disclosure-BHYG7TZ7.js} +29 -29
  179. package/dist/{plugin-contributions-3O2MOX3B.js → plugin-contributions-X4V22PJQ.js} +5 -5
  180. package/dist/{plugin-prompt-4ELLDFBD.js → plugin-prompt-DKNQHW6Y.js} +5 -5
  181. package/dist/{plugin-questions-JTRIFEHW.js → plugin-questions-CQRVOWFK.js} +4 -4
  182. package/dist/{preflight-command-4FFDUHNT.js → preflight-command-NZ75PSRL.js} +74 -73
  183. package/dist/{profile-command-XV4JXLIJ.js → profile-command-KIRI4GA4.js} +27 -27
  184. package/dist/{profile-pointer-RKGBAGY6.js → profile-pointer-UOO7JNFG.js} +4 -4
  185. package/dist/{project-dependency-X7RULUFH.js → project-dependency-JGCJZ26H.js} +7 -7
  186. package/dist/{project-sdk-JYV7APT5.js → project-sdk-FOR4IOXL.js} +4 -4
  187. package/dist/promote-command-IPDH5OBT.js +141 -0
  188. package/dist/{prompt-SYH2EYXM.js → prompt-5GUQTCSP.js} +4 -4
  189. package/dist/{publish-command-KZOCPBMT.js → publish-command-74HMEZ7E.js} +70 -69
  190. package/dist/pull-command-VO5RRGZ5.js +162 -0
  191. package/dist/{pull-superseded-B7SOPA2M.js → pull-superseded-GGURV5J3.js} +4 -4
  192. package/dist/{response-HlXahv4K.d.ts → raw-where-EoWl5fqY.d.ts} +27 -5
  193. package/dist/release-command-ZHM5FA4M.js +147 -0
  194. package/dist/{release-ns-command-TCPT6N4H.js → release-ns-command-2TL26YOM.js} +95 -94
  195. package/dist/{retry-command-5PNYSQFN.js → retry-command-Y5YJGOH3.js} +8 -8
  196. package/dist/{routes-manifest-UPZQIGKC.js → routes-manifest-3BNZIVST.js} +17 -17
  197. package/dist/{secrets-file-6524YY62.js → secrets-file-NBBR6DYS.js} +14 -14
  198. package/dist/{secrets-fill-command-VX3TIYHL.js → secrets-fill-command-X3HQ4JYN.js} +64 -63
  199. package/dist/{seed-HBA6FWRQ.js → seed-GJHJSEUE.js} +13 -12
  200. package/dist/{source-resolve-ACQV343A.js → source-resolve-NTI3JFO6.js} +22 -22
  201. package/dist/{static-host-SFDXSHYY.js → static-host-WM24RG25.js} +5 -5
  202. package/dist/{status-command-X7W7PRWM.js → status-command-RVMOLYPR.js} +37 -37
  203. package/dist/{store-DVvwC4C4.d.ts → store-CfgPaVPO.d.ts} +116 -8
  204. package/dist/{store-CW5SHKXC.js → store-MR7IKXKK.js} +6 -6
  205. package/dist/{sync-contributions-VN2IEVBA.js → sync-contributions-KGCVRH2J.js} +9 -9
  206. package/dist/{table-K5YSS6MV.js → table-ZBDPKMNH.js} +12 -11
  207. package/dist/{tables-command-CJ5TF5JO.js → tables-command-GAOXJPMA.js} +40 -39
  208. package/dist/{tenant-TDTYXUGJ.js → tenant-GKXMOYLK.js} +10 -10
  209. package/dist/{tenant-command-SJDTSWGV.js → tenant-command-FAJ7WZTH.js} +98 -97
  210. package/dist/{test-command-4ICR3BPL.js → test-command-53FRDZ32.js} +35 -35
  211. package/dist/{tests-NQYQJQWY.js → tests-C55M5EQS.js} +6 -6
  212. package/dist/{token-JMW2GNLV.js → token-44CKLYWD.js} +13 -13
  213. package/dist/{toolchain-hooks-VUCFFZ7A.js → toolchain-hooks-BGZBDFAT.js} +3 -3
  214. package/dist/{toolchain-modules-J7FUTUTL.js → toolchain-modules-MPPH633S.js} +5 -5
  215. package/dist/{tracked-backend-GOVQ4OGJ.js → tracked-backend-AJLHRGLF.js} +33 -33
  216. package/dist/update-check-Q4HJHHL5.js +137 -0
  217. package/dist/{upgrade-command-MWP5JE5V.js → upgrade-command-C63HIBVH.js} +65 -64
  218. package/dist/{whoami-command-URRENPGI.js → whoami-command-WC5EKB4W.js} +16 -16
  219. package/dist/{workspace-LLYL5FMC.js → workspace-EJVWTIWX.js} +5 -5
  220. package/dist/{workspace-binding-DJQ5HZKG.js → workspace-binding-BRPPUSWG.js} +15 -15
  221. package/dist/{workspace-command-LZJPHSVH.js → workspace-command-Y6STVPYO.js} +91 -90
  222. package/dist/{workspace-env-M5GF3UPN.js → workspace-env-SIINWNMP.js} +11 -11
  223. package/dist/{workspace-export-ME52ELKP.js → workspace-export-AIGM6LC7.js} +5 -5
  224. package/dist/{writable-RQGBSRG6.js → writable-FYJBTJOU.js} +4 -4
  225. package/dist/xano-BSHYVFSE.js +43 -0
  226. package/dist/{xanosdk-import-PYZC3KWN.js → xanosdk-import-UKEO7R7O.js} +10 -10
  227. package/dist/{xanosdk-project-TWV27WO2.js → xanosdk-project-MQTZKITV.js} +12 -12
  228. package/guides/codes.md +2 -1
  229. package/llms/lambda.md +1 -1
  230. package/llms/legacy.md +9 -3
  231. package/llms/statements-data.md +1 -0
  232. package/llms/statements-runtime.md +1 -0
  233. package/llms-full.txt +13 -5
  234. package/llms.txt +1 -1
  235. package/manifest.json +1 -1
  236. package/package.json +1 -1
  237. package/dist/branch-commands-BNQUXQW2.js +0 -79
  238. package/dist/env-example-refresh-KJEKKD2S.js +0 -126
  239. package/dist/init-command-BC77KHUS.js +0 -125
  240. package/dist/operation-outcome-KMWK4IBN.js +0 -51
  241. package/dist/promote-command-VES2PITU.js +0 -140
  242. package/dist/pull-command-5O2JPLXN.js +0 -161
  243. package/dist/release-command-GJCCSDJF.js +0 -146
  244. package/dist/update-check-3CPTCQNK.js +0 -136
  245. package/dist/xano-EIUBBA6W.js +0 -42
@@ -8,16 +8,16 @@ import {
8
8
  resolveThemeChoice,
9
9
  sanitizeAppName,
10
10
  templateVarsFor
11
- } from "./chunk-PFFXX6YU.js";
11
+ } from "./chunk-6NYLVUSZ.js";
12
12
  import {
13
13
  ROUTES_MANIFEST_BASENAME,
14
14
  RouteManifestError,
15
15
  planRouteManifest,
16
16
  renderPlannedManifest
17
- } from "./chunk-IG5QQQSA.js";
17
+ } from "./chunk-TTVAHCWP.js";
18
18
  import {
19
19
  confirm
20
- } from "./chunk-FEQICT4D.js";
20
+ } from "./chunk-4APOHK7Y.js";
21
21
  import {
22
22
  CODEGEN_MODULE,
23
23
  DecodeContext,
@@ -51,26 +51,27 @@ import {
51
51
  recoverOptions,
52
52
  resolveReference,
53
53
  spread,
54
+ untypedKey,
54
55
  withDeclineContext
55
- } from "./chunk-JXUBSUQY.js";
56
+ } from "./chunk-WOGJB2F6.js";
56
57
  import {
57
58
  archiveSeedContent,
58
59
  fetchSourceArchive
59
- } from "./chunk-ZH4O6RWX.js";
60
+ } from "./chunk-7KGASMCE.js";
60
61
  import {
61
62
  assertBranchReadSupported,
62
63
  exportWorkspaceBundle
63
- } from "./chunk-OJLJA3XM.js";
64
+ } from "./chunk-QV3GXQRE.js";
64
65
  import {
65
66
  decodeWorkspaceArchive
66
67
  } from "./chunk-3DRXWLJ5.js";
67
68
  import {
68
69
  listBranches,
69
70
  requireBranch
70
- } from "./chunk-FFDZFVBD.js";
71
+ } from "./chunk-E65QIWOO.js";
71
72
  import {
72
73
  detectInstallMode
73
- } from "./chunk-WP4N63FZ.js";
74
+ } from "./chunk-XCPF7BEJ.js";
74
75
  import {
75
76
  UNSUPPORTED_SECTIONS,
76
77
  decodedCounts,
@@ -81,47 +82,47 @@ import {
81
82
  sectionOmission,
82
83
  subtractDefaults,
83
84
  workspaceKeyOmission
84
- } from "./chunk-7K6A4O2T.js";
85
+ } from "./chunk-XXZZGXW2.js";
85
86
  import {
86
87
  ensureWorkspaceEnvGitignored,
87
88
  requireSecretPathGitignored
88
- } from "./chunk-64AYI7QR.js";
89
+ } from "./chunk-FWXSTFN2.js";
89
90
  import {
90
91
  loadDefault,
91
92
  readVersion,
92
93
  resolveKnowledge
93
- } from "./chunk-HDIISRNY.js";
94
+ } from "./chunk-F5KILDDO.js";
94
95
  import {
95
96
  WORKSPACE_ENV_BASENAME,
96
97
  WORKSPACE_ENV_EXAMPLE_BASENAME,
97
98
  renderWorkspaceEnvExample,
98
99
  renderWorkspaceEnvFile,
99
100
  valueProblem
100
- } from "./chunk-VTLE2QDY.js";
101
+ } from "./chunk-IRQCV3OT.js";
101
102
  import {
102
103
  memoCredential,
103
104
  refuseProfileForLocal
104
- } from "./chunk-MOELGXVV.js";
105
+ } from "./chunk-SEATQLFB.js";
105
106
  import {
106
107
  getAccessToken
107
- } from "./chunk-5RA4BBJL.js";
108
+ } from "./chunk-CJPLBFFY.js";
108
109
  import {
109
110
  getEngineRecord
110
111
  } from "./chunk-WL2DSNJV.js";
111
112
  import {
112
113
  requireBackendSlot
113
- } from "./chunk-GUKT7QYA.js";
114
+ } from "./chunk-UDE5C2XN.js";
114
115
  import {
115
116
  SECRETS_FILE_VERSION,
116
117
  workspaceSecretsPathIn,
117
118
  writeSecretsFile
118
- } from "./chunk-GSCW6RMU.js";
119
+ } from "./chunk-NPXM6ZQY.js";
119
120
  import {
120
121
  yesRerun
121
- } from "./chunk-JWW4KU7T.js";
122
+ } from "./chunk-FMOEVAGT.js";
122
123
  import {
123
124
  contextFlags
124
- } from "./chunk-RJOGX6LA.js";
125
+ } from "./chunk-SEUCZZCP.js";
125
126
  import {
126
127
  PRESERVED_ON_REFRESH,
127
128
  SHELL_FILES_IN_BACKEND,
@@ -136,31 +137,31 @@ import {
136
137
  plannedAgentsMd,
137
138
  readDecodeRecord,
138
139
  scaffoldProject
139
- } from "./chunk-XNHEGBBT.js";
140
+ } from "./chunk-HHFPIJGL.js";
140
141
  import {
141
142
  shellWord
142
143
  } from "./chunk-FWD7AL6N.js";
143
144
  import {
144
145
  seedRowsByTableGuid
145
- } from "./chunk-PCJLL36N.js";
146
+ } from "./chunk-37AHZ7JX.js";
146
147
  import {
147
148
  readLockFile,
148
149
  writeLockFile
149
- } from "./chunk-P2HAGF6H.js";
150
+ } from "./chunk-VD32O6KZ.js";
150
151
  import {
151
152
  readInstalledManifest
152
- } from "./chunk-VIPK7FHI.js";
153
+ } from "./chunk-DYG5D3FD.js";
153
154
  import {
154
155
  atomicWrite
155
156
  } from "./chunk-LLNZGEFK.js";
156
157
  import {
157
158
  TEST_EXPECT_TYPES,
158
159
  respond
159
- } from "./chunk-FAGYIOLE.js";
160
+ } from "./chunk-CBYQ2ZN3.js";
160
161
  import {
161
162
  codegen_entry_exports,
162
163
  raw
163
- } from "./chunk-FXFV3KU6.js";
164
+ } from "./chunk-XMDDBEEM.js";
164
165
  import {
165
166
  codegenLanding,
166
167
  describeOrigin,
@@ -170,7 +171,7 @@ import {
170
171
  import {
171
172
  SUPERSEDED_STATEMENTS,
172
173
  supersededBy
173
- } from "./chunk-27GWNP2I.js";
174
+ } from "./chunk-7THDHQ4R.js";
174
175
  import {
175
176
  LocalFileNotFoundError,
176
177
  UsageError,
@@ -187,7 +188,7 @@ import {
187
188
  terminalText,
188
189
  warn,
189
190
  writeJson
190
- } from "./chunk-JZEWT7NY.js";
191
+ } from "./chunk-SBR2WZXG.js";
191
192
  import {
192
193
  TOOL_ANNOTATION_WIRE,
193
194
  agentTrigger,
@@ -201,31 +202,33 @@ import {
201
202
  s,
202
203
  tableTrigger,
203
204
  workspaceTrigger
204
- } from "./chunk-WT7XRC6A.js";
205
+ } from "./chunk-II747OWE.js";
205
206
  import {
206
207
  parsePathParams,
207
208
  unboundPathParams
208
- } from "./chunk-IWGNIWQX.js";
209
+ } from "./chunk-5W7DOMIU.js";
209
210
  import {
210
211
  DEFAULT_DOCUMENTATION,
211
212
  DEFAULT_PREFERENCES,
212
213
  DEFAULT_SETTINGS
213
- } from "./chunk-6RIKXG5I.js";
214
+ } from "./chunk-6JAEMMZ7.js";
214
215
  import {
215
216
  MCP_OAUTH_ENV_REF
216
- } from "./chunk-7THLGPVA.js";
217
+ } from "./chunk-5YL5OC2G.js";
217
218
  import {
218
219
  PAYLOAD_ARRAY_KEYS
219
- } from "./chunk-LQCMKAJ7.js";
220
+ } from "./chunk-EESV6NU2.js";
220
221
  import {
221
222
  CORS_UNMATCHABLE,
222
223
  DECODE_ONLY_STATEMENTS,
223
224
  GENERATED_SPECS,
224
225
  PAGING_ENVELOPE_ROOTS,
226
+ callableInputNames,
225
227
  checkLiveDatasourceTests,
226
228
  checkOmittedCallInputs,
227
229
  checkPathSegmentCandidates,
228
230
  checkRealtimeSilentShapes,
231
+ checkRouteShadowing,
229
232
  checkStacks,
230
233
  checkWriteBeforeElicit,
231
234
  checkZeroBasedObjects,
@@ -238,10 +241,10 @@ import {
238
241
  searchConstrainsRows,
239
242
  specLabel,
240
243
  unmatchableOrigins
241
- } from "./chunk-EDCCKH7Y.js";
244
+ } from "./chunk-OPG4DYX2.js";
242
245
  import {
243
246
  WORKSPACE_HISTORY_TYPES
244
- } from "./chunk-5WGGTU5K.js";
247
+ } from "./chunk-ETAZIGNT.js";
245
248
  import {
246
249
  isRepresentableName,
247
250
  safeNames
@@ -253,10 +256,10 @@ import {
253
256
  isRuntimeConditionOp,
254
257
  isSearchOp,
255
258
  unusableColumns
256
- } from "./chunk-G5IW3EYW.js";
259
+ } from "./chunk-4PQHO74B.js";
257
260
  import {
258
261
  AUTHOR_KIND_NAME
259
- } from "./chunk-4POWHT2K.js";
262
+ } from "./chunk-VTMTIBKP.js";
260
263
  import {
261
264
  apiGroupScope,
262
265
  documentationScopeFlagLabel,
@@ -268,7 +271,7 @@ import {
268
271
  DiagnosticBag,
269
272
  allowableWarnings,
270
273
  setDiagnosticSink
271
- } from "./chunk-2Y4X2VLM.js";
274
+ } from "./chunk-GPI3OWRE.js";
272
275
  import {
273
276
  CANONICAL_PAYLOAD_KEYS,
274
277
  adoptFromBundle,
@@ -278,7 +281,7 @@ import {
278
281
  mergeObserved,
279
282
  sdkKindName,
280
283
  withObjects
281
- } from "./chunk-6MR5TI5V.js";
284
+ } from "./chunk-OOGXZL7Z.js";
282
285
  import {
283
286
  shellQuote
284
287
  } from "./chunk-5ZSO4T2G.js";
@@ -288,7 +291,7 @@ import {
288
291
  import {
289
292
  encodeMockMap,
290
293
  encodeStatement
291
- } from "./chunk-YU4HSQW7.js";
294
+ } from "./chunk-A2AOUBJS.js";
292
295
  import {
293
296
  ENGINE_HISTORY_LIMIT,
294
297
  configuredDeadReturnBlocks,
@@ -302,24 +305,30 @@ import {
302
305
  normalize,
303
306
  retiredInputSuccessor,
304
307
  retiredInputs
305
- } from "./chunk-YP5ME5RT.js";
308
+ } from "./chunk-3HOGFGKG.js";
306
309
  import {
307
310
  STATEMENT_SURFACES,
308
311
  sPathOf
309
312
  } from "./chunk-Q7DGTQ5G.js";
310
313
  import {
311
314
  impliedInputs
312
- } from "./chunk-SZOCJRFC.js";
315
+ } from "./chunk-7GX445AE.js";
313
316
  import {
314
- collectLambdaBodyProblems
315
- } from "./chunk-HYAI62TU.js";
317
+ LAMBDA_STATEMENTS,
318
+ collectLambdaBodyProblems,
319
+ lam,
320
+ lambdaBodySyntaxProblem
321
+ } from "./chunk-UVF45BVU.js";
316
322
  import {
317
323
  resetLockOverrides,
318
324
  seedLockOverrides
319
325
  } from "./chunk-4BW2SG2N.js";
320
326
  import {
321
327
  INPUT_CONTEXT
322
- } from "./chunk-TTEIYD5P.js";
328
+ } from "./chunk-4DJTQ6W4.js";
329
+ import {
330
+ isVarName
331
+ } from "./chunk-4MIV244X.js";
323
332
 
324
333
  // src/emit/codegen-command.ts
325
334
  import { existsSync, readFileSync, realpathSync, writeFileSync } from "fs";
@@ -717,6 +726,10 @@ function envelopePassthrough(stored, ctx) {
717
726
  entries.push(["asFilters", arr(chain.exprs)]);
718
727
  symbols.push(...chain.symbols);
719
728
  }
729
+ if (typeof stored.as === "string" && stored.as !== "" && !isVarName(stored.as)) {
730
+ annotations.uncheckedAs = true;
731
+ entries.push(["uncheckedAs", lit(true)]);
732
+ }
720
733
  const input = stored.input;
721
734
  const undeclaredInput = Array.isArray(input) && input.length > 0 && !hasUnreadableInput(stored.name) ? input : void 0;
722
735
  const storedMocksRaw = stored.mocks;
@@ -904,7 +917,7 @@ function decodeCondition(ctx, block, opts) {
904
917
  if (!decoded) return null;
905
918
  const nodes = expression;
906
919
  const ored = nodes.map((node, i) => i > 0 && node?.or === true);
907
- if (nodes[0]?.or === true && !opts?.runtimeSurface)
920
+ if (nodes[0]?.or === true && !opts?.runtimeSurface && !opts?.sqlWhere)
908
921
  return ctx.declined(
909
922
  "the condition's first sibling carries an `or` flag, which joins it to nothing \u2014 there is no preceding term for it to OR with, and no authored form says it"
910
923
  );
@@ -1073,6 +1086,28 @@ function decodeFromSpec(ctx, stored) {
1073
1086
  );
1074
1087
  }
1075
1088
  }
1089
+ let usesLam = false;
1090
+ const lambdaSite = Object.hasOwn(LAMBDA_STATEMENTS, spec.name) ? LAMBDA_STATEMENTS[spec.name] : void 0;
1091
+ if (lambdaSite !== void 0) {
1092
+ const at = recovered.findIndex((entry) => entry.field === lambdaSite.field);
1093
+ const body = at === -1 ? void 0 : recovered[at].runtime;
1094
+ if (body?.tag !== void 0 && body.tag.startsWith("const") && typeof body.value === "string" && (body.filters ?? []).length === 0 && body.value.trim() !== "") {
1095
+ const problem = lambdaBodySyntaxProblem(body.value);
1096
+ if (problem !== void 0) {
1097
+ ctx.problem(
1098
+ "workspace-defect",
1099
+ `this workspace stores a lambda whose body cannot work as written: ${problem} Decoded as \`lam.raw(\u2026, { unchecked: true })\` so the tree builds; it fails the same way when it runs.`,
1100
+ "lambda body"
1101
+ );
1102
+ recovered[at] = {
1103
+ ...recovered[at],
1104
+ runtime: lam.raw(body.value, { unchecked: true }),
1105
+ expr: call("lam.raw", lit(body.value), obj([["unchecked", lit(true)]]))
1106
+ };
1107
+ usesLam = true;
1108
+ }
1109
+ }
1110
+ }
1076
1111
  const absent = recovered.filter(
1077
1112
  (entry) => entry.runtime === null && spec.rules.some((r) => r.field === entry.field && r.emptyWhenAbsent)
1078
1113
  );
@@ -1120,6 +1155,7 @@ function decodeFromSpec(ctx, stored) {
1120
1155
  continue;
1121
1156
  }
1122
1157
  ctx.use(SDK_MODULE, "s");
1158
+ if (usesLam) ctx.use(SDK_MODULE, "lam");
1123
1159
  for (const symbol of passthrough.symbols) ctx.use(SDK_MODULE, symbol);
1124
1160
  const annotated = new Set(passthrough.entries.map(([field]) => field));
1125
1161
  const cells = [
@@ -1341,16 +1377,18 @@ function loopDecoder(path, storedField, defField) {
1341
1377
  if (typeof as !== "string") return declineHere(`${path}: context.as is not a string`);
1342
1378
  if (!value) return declineHere(`${path}: context.${storedField} is not a tagged value`);
1343
1379
  const body = a.decodeStack(context.run);
1380
+ const unchecked = as !== "" && !isVarName(as);
1344
1381
  return prove(
1345
1382
  a.ctx,
1346
1383
  a.stored,
1347
1384
  path,
1348
- [{ as, [defField]: value, body: body.statements }],
1385
+ [{ as, [defField]: value, body: body.statements, ...unchecked ? { uncheckedAs: true } : {} }],
1349
1386
  [
1350
1387
  obj([
1351
1388
  ["as", lit(as)],
1352
1389
  [defField, decodeValue(a.ctx, value)],
1353
- ["body", arr(body.exprs)]
1390
+ ["body", arr(body.exprs)],
1391
+ ...unchecked ? [["uncheckedAs", lit(true)]] : []
1354
1392
  ])
1355
1393
  ]
1356
1394
  );
@@ -1444,23 +1482,49 @@ function toValue3(raw2) {
1444
1482
  filters: Array.isArray(block.filters) ? block.filters : []
1445
1483
  };
1446
1484
  }
1447
- function callInput(a) {
1485
+ function targetInputs(a, guid) {
1486
+ const target = guid === void 0 ? void 0 : a.refs.lookup(guid);
1487
+ if (target?.input === void 0) return null;
1488
+ const tableColumns = /* @__PURE__ */ new Map();
1489
+ for (const o of a.refs.all()) {
1490
+ if (o.payloadKey !== "dbo" || !Array.isArray(o.schema)) continue;
1491
+ tableColumns.set(
1492
+ o.guid,
1493
+ o.schema.flatMap((c) => typeof c?.name === "string" ? [c.name] : [])
1494
+ );
1495
+ }
1496
+ return callableInputNames({ input: target.input }, target.payloadKey, tableColumns);
1497
+ }
1498
+ function callInput(a, surface, guid) {
1448
1499
  const entries = Array.isArray(a.stored.input) ? a.stored.input : [];
1449
1500
  const source = [];
1450
1501
  const runtime = {};
1502
+ const declared = entries.length > 0 ? targetInputs(a, guid) : null;
1503
+ const stale = [];
1451
1504
  for (const entry of entries) {
1452
- const name = entry.name;
1505
+ const stored = entry.name;
1453
1506
  const value = toValue3(entry);
1454
- if (typeof name !== "string" || !value)
1507
+ if (typeof stored !== "string" || !value)
1455
1508
  return declineHere("call input[]: entry is not a named tagged value");
1509
+ const undeclared = declared !== null && !declared.has(stored);
1510
+ if (undeclared) stale.push(stored);
1511
+ const name = undeclared ? untypedKey(stored) : stored;
1456
1512
  if (entry.ignore === true) {
1457
1513
  a.ctx.use(SDK_MODULE, "ignored");
1458
1514
  source.push([name, call("ignored", decodeValue(a.ctx, value))]);
1459
- runtime[name] = ignored(value);
1515
+ runtime[stored] = ignored(value);
1460
1516
  continue;
1461
1517
  }
1462
1518
  source.push([name, decodeValue(a.ctx, value)]);
1463
- runtime[name] = value;
1519
+ runtime[stored] = value;
1520
+ }
1521
+ if (stale.length > 0) {
1522
+ const target = a.refs.lookup(guid);
1523
+ const declaredList = [...declared].map((d) => `\`${d}\``);
1524
+ a.ctx.problem(
1525
+ "workspace-defect",
1526
+ `\`${surface}\` passes ${stale.map((k) => `\`${k}\``).join(", ")} to ${target?.kind ?? "its target"} "${target?.name ?? ""}", which does not declare ${stale.length === 1 ? "it" : "them"} \u2014 the engine drops ${stale.length === 1 ? "the key" : "those keys"}, so the target never sees the value` + (declaredList.length > 0 ? ` (it declares ${declaredList.join(", ")})` : " (it declares no inputs)") + `. Decoded as \`["\u2026" as never]\` so the tree compiles; drop ${stale.length === 1 ? "it" : "them"}, or declare the input on the target.`
1527
+ );
1464
1528
  }
1465
1529
  return { expr: obj(source), runtime };
1466
1530
  }
@@ -1493,7 +1557,7 @@ function callDecoder(shape) {
1493
1557
  runtime.as = as;
1494
1558
  }
1495
1559
  if (shape.takesInput !== false) {
1496
- const input = callInput(a);
1560
+ const input = callInput(a, `s.${shape.path}`, unbound ? void 0 : guid);
1497
1561
  if (!input) return null;
1498
1562
  if (Object.keys(input.runtime).length > 0) {
1499
1563
  entries.push(["input", input.expr]);
@@ -1814,10 +1878,18 @@ function decodeAddonSpec(a, stored) {
1814
1878
  }
1815
1879
  return { expr: obj(entries), runtime };
1816
1880
  }
1817
- function decodeAddons(a, stored) {
1881
+ function decodeAddons(a, stored, pagedEnvelope = false) {
1818
1882
  const list = stored.addon;
1819
1883
  if (!Array.isArray(list) || list.length === 0) return null;
1820
- const decoded = list.map((spec) => decodeAddonSpec(a, spec));
1884
+ const decoded = list.map((spec) => {
1885
+ const one = decodeAddonSpec(a, spec);
1886
+ const offset = spec?.offset;
1887
+ if (one === null || !pagedEnvelope || typeof offset === "string" && offset.startsWith("items")) return one;
1888
+ return {
1889
+ expr: one.expr.kind === "object" ? obj([...one.expr.entries, ["envelope", lit(true)]]) : one.expr,
1890
+ runtime: { ...one.runtime, envelope: true }
1891
+ };
1892
+ });
1821
1893
  if (decoded.some((d) => d === null)) return null;
1822
1894
  return { expr: arr(decoded.map((d) => d.expr)), runtime: decoded.map((d) => d.runtime) };
1823
1895
  }
@@ -1916,6 +1988,13 @@ function dboOp(shape) {
1916
1988
  }
1917
1989
  let cursor = 0;
1918
1990
  if (shape.lookup) {
1991
+ const lookupValue = entriesIn.find((e) => e.name === "field_value");
1992
+ if (lookupValue === void 0 || lookupValue.ignore) {
1993
+ return declineHere(
1994
+ `${lookupValue === void 0 ? "stores no `field_value` entry" : "flags its `field_value` entry `ignore`, so the engine never passes it"} \u2014 the value it looks the row up by is a required argument, so the engine answers \`Missing param: field_value\` on every run`,
1995
+ "workspace-defect"
1996
+ );
1997
+ }
1919
1998
  const fieldName = entriesIn[cursor++];
1920
1999
  const fieldValue = entriesIn[cursor++];
1921
2000
  if (fieldName?.name !== "field_name" || fieldValue?.name !== "field_value")
@@ -1934,6 +2013,13 @@ function dboOp(shape) {
1934
2013
  const found = entriesIn[cursor];
1935
2014
  if (found?.name !== spec.entry) {
1936
2015
  if (spec.optional) continue;
2016
+ if (shape.path === "db.patch" && spec.entry === "item") {
2017
+ const unread = entriesIn.slice(cursor).filter((e) => !e.ignore).map((e) => `\`${e.name}\``);
2018
+ return declineHere(
2019
+ "stores no `item`, so it writes nothing: the engine looks the row up and saves it unchanged" + (unread.length > 0 ? `. Its other entries (${unread.join(", ")}) are not inputs this statement declares, so the engine never reads them` : ""),
2020
+ "workspace-defect"
2021
+ );
2022
+ }
1937
2023
  return declineHere(`${shape.path}: input[] is missing required "${spec.entry}"`);
1938
2024
  }
1939
2025
  cursor += 1;
@@ -2181,7 +2267,10 @@ var dbBulkDelete = (a) => {
2181
2267
  runtime.tableAlias = alias.runtime;
2182
2268
  }
2183
2269
  if (isUnauthored("search", context.search)) {
2184
- return declineHere("db.bulk.delete: context.search is absent (the engine rejects this shape)");
2270
+ return declineHere(
2271
+ "stores no `search` \u2014 the engine answers `Missing param: search` on every run, so it deletes nothing",
2272
+ "workspace-defect"
2273
+ );
2185
2274
  }
2186
2275
  const where = decodeWhere(a, context.search, "db.bulk.delete search");
2187
2276
  if (!where) return null;
@@ -2281,7 +2370,7 @@ var dbTransaction = (a) => {
2281
2370
  return prove(a.ctx, a.stored, "db.transaction", [runtime], [obj(entries)]);
2282
2371
  };
2283
2372
  function decodeWhere(a, stored, site) {
2284
- const condition = decodeCondition(a.ctx, stored);
2373
+ const condition = decodeCondition(a.ctx, stored, { sqlWhere: true });
2285
2374
  if (condition) return { expr: condition.expr, runtime: condition.runtime };
2286
2375
  const value = toValue4(stored);
2287
2376
  if (!value)
@@ -2326,7 +2415,10 @@ var dbQuery = (a) => {
2326
2415
  return declineHere("db.query: statement-level input[] is populated");
2327
2416
  const table = isUnboundId(storedId) ? unboundTableArg(a, "db.query") : tableArg(a, String(storedId));
2328
2417
  const entries = [["table", table.expr]];
2329
- const runtime = { table: table.runtime };
2418
+ const schema = table.runtime === null ? void 0 : a.refs.lookup(table.runtime.guid)?.schema;
2419
+ const runtime = {
2420
+ table: table.expr.kind === "id" && Array.isArray(schema) ? { ...table.runtime, schema } : table.runtime
2421
+ };
2330
2422
  const alias = aliasEntry(context);
2331
2423
  if (alias) {
2332
2424
  entries.push(alias.entry);
@@ -2360,6 +2452,30 @@ var dbQuery = (a) => {
2360
2452
  const bindAlias = getPath2(stored, "dbo.as");
2361
2453
  if (typeof bindGuid !== "string")
2362
2454
  return declineHere("db.query: a context.bind[] join has no dbo.id");
2455
+ if (bindGuid.includes(".")) {
2456
+ if (typeof bindAlias !== "string" || bindAlias === "")
2457
+ return declineHere("db.query: a context.bind[] list expansion has no dbo.as");
2458
+ const cells2 = [
2459
+ ["expand", lit(bindGuid)],
2460
+ ["as", lit(bindAlias)]
2461
+ ];
2462
+ const entry2 = { expand: bindGuid, as: bindAlias };
2463
+ const join3 = stored.join;
2464
+ if (typeof join3 === "string" && join3 !== "inner") {
2465
+ cells2.push(["join", lit(join3)]);
2466
+ entry2.join = join3;
2467
+ }
2468
+ const search2 = stored.search;
2469
+ if (!isUnauthored("search", search2)) {
2470
+ const where = decodeWhere(a, search2, "db.query bind[] expansion");
2471
+ if (!where) return null;
2472
+ cells2.push(["where", where.expr]);
2473
+ entry2.where = where.runtime;
2474
+ }
2475
+ bindExprs.push(obj(cells2));
2476
+ bindRuntime.push(entry2);
2477
+ continue;
2478
+ }
2363
2479
  const unbound = isUnboundId(bindGuid);
2364
2480
  const joined = unbound ? unboundTableArg(a, "db.query bind") : tableArg(a, bindGuid);
2365
2481
  const cells = [["table", joined.expr]];
@@ -2411,7 +2527,7 @@ var dbQuery = (a) => {
2411
2527
  sortBlock = getPath2(ret, "stream.sort");
2412
2528
  distinct = getPath2(ret, "stream.distinct");
2413
2529
  const block = getPath2(ret, "stream.paging") ?? {};
2414
- if (typeof block.enabled === "boolean") storedEnabled = block.enabled;
2530
+ storedEnabled = block.enabled === true;
2415
2531
  const paging = decodePaging(a, block, simple, [
2416
2532
  ["page", 1],
2417
2533
  ["per_page", 25]
@@ -2425,7 +2541,7 @@ var dbQuery = (a) => {
2425
2541
  sortBlock = getPath2(ret, "list.sort");
2426
2542
  distinct = getPath2(ret, "list.distinct");
2427
2543
  const block = getPath2(ret, "list.paging") ?? {};
2428
- if (typeof block.enabled === "boolean") storedEnabled = block.enabled;
2544
+ storedEnabled = block.enabled === true;
2429
2545
  const paging = decodePaging(a, block, simple, [
2430
2546
  ["page", 1],
2431
2547
  ["per_page", 25],
@@ -2497,7 +2613,9 @@ var dbQuery = (a) => {
2497
2613
  entries.push(["output", outputArg(a, cols, table.runtime?.guid)]);
2498
2614
  runtime.output = cols;
2499
2615
  }
2500
- const addons = decodeAddons(a, a.stored);
2616
+ const listPaging = getPath2(ret, "list.paging");
2617
+ const pagedEnvelope = returnType === "list" && listPaging?.enabled === true && listPaging.metadata !== false;
2618
+ const addons = decodeAddons(a, a.stored, pagedEnvelope);
2501
2619
  if (addons) {
2502
2620
  entries.push(["addon", addons.expr]);
2503
2621
  runtime.addon = addons.runtime;
@@ -3238,6 +3356,13 @@ function decodeStatement(ctx, refs, stored, resolve2 = {}) {
3238
3356
  );
3239
3357
  }
3240
3358
  }
3359
+ const dboName = stored.context?.dbo?.name;
3360
+ if (!isRawFallback(decoded) && stored.name.startsWith("mvp:dbo_") && dboName !== void 0) {
3361
+ ctx.problem(
3362
+ "expected-omission",
3363
+ `${stored.name} stores a \`name\` (${JSON.stringify(dboName)}) beside its table binding's id. The statement resolves its table by id and nothing reads the name, so it is not carried into the tree, and a deploy from this tree will not write it back`
3364
+ );
3365
+ }
3241
3366
  return decoded;
3242
3367
  }
3243
3368
  function isRawFallback(expr) {
@@ -3293,6 +3418,8 @@ function dispatch(ctx, refs, stored, resolve2) {
3293
3418
  const why = note?.why;
3294
3419
  if (note?.category === "unconfigured-stub") {
3295
3420
  ctx.problem("unconfigured-stub", `${label} ${why}`);
3421
+ } else if (note?.category === "workspace-defect") {
3422
+ ctx.problem("workspace-defect", `${label} ${why}. Carried verbatim via raw()`);
3296
3423
  } else {
3297
3424
  ctx.problem(
3298
3425
  "raw-fallback",
@@ -3385,7 +3512,8 @@ var ACCEPT_ON_DECODE = /* @__PURE__ */ new Set([
3385
3512
  "response.unbound-return",
3386
3513
  "value.obj-zero-based-numeric-keys",
3387
3514
  CORS_UNMATCHABLE,
3388
- COLUMN_NAME_UNUSABLE
3515
+ COLUMN_NAME_UNUSABLE,
3516
+ "query.route-shadowed"
3389
3517
  ]);
3390
3518
  var cache = /* @__PURE__ */ new WeakMap();
3391
3519
  function acceptedFor(payload) {
@@ -3412,6 +3540,7 @@ function acceptedFor(payload) {
3412
3540
  checkOmittedCallInputs(sections, bag);
3413
3541
  checkWriteBeforeElicit(sections, bag);
3414
3542
  checkZeroBasedObjects(sections, bag);
3543
+ checkRouteShadowing(sections, bag);
3415
3544
  for (const key of ["query", "function"]) {
3416
3545
  for (const obj2 of sections[key] ?? []) {
3417
3546
  const o = obj2;
@@ -3437,7 +3566,7 @@ function acceptedFor(payload) {
3437
3566
  }
3438
3567
  function acceptedOnDecode(kindName, stored, payload) {
3439
3568
  const offered = allowableWarnings(kindName);
3440
- const codes = acceptedFor(payload).get(stored) ?? [];
3569
+ const codes = [...acceptedFor(payload).get(stored) ?? []];
3441
3570
  return offered.filter((code) => codes.includes(code));
3442
3571
  }
3443
3572
 
@@ -3892,10 +4021,20 @@ function views(args) {
3892
4021
  if (condition) {
3893
4022
  where = ["where", condition.expr];
3894
4023
  } else {
3895
- args.ctx.problem(
3896
- "verify-mismatch",
3897
- `table view "${view.name}" has a filter expression this decoder could not invert; the generated view would return more rows than the original`
3898
- );
4024
+ args.ctx.use(CODEGEN_MODULE, "rawWhere");
4025
+ where = ["where", call("rawWhere", lit(view.expression))];
4026
+ if (hasBlankOperator(view.expression)) {
4027
+ args.ctx.problem(
4028
+ "workspace-defect",
4029
+ `table view "${view.name}" has a filter row with no operator \u2014 what the editor stores for a row added and never configured \u2014 and the engine cannot apply it, so the view fails wherever it is read. Carried verbatim via rawWhere(); give the row an operator or remove it upstream`,
4030
+ "blank view filter"
4031
+ );
4032
+ } else {
4033
+ args.ctx.problem(
4034
+ "value-fallback",
4035
+ `table view "${view.name}" has a filter expression no \`where\` condition can express; carried verbatim via rawWhere()`
4036
+ );
4037
+ }
3899
4038
  }
3900
4039
  }
3901
4040
  return obj(
@@ -3913,6 +4052,15 @@ function views(args) {
3913
4052
  )
3914
4053
  ];
3915
4054
  }
4055
+ function hasBlankOperator(nodes) {
4056
+ if (!Array.isArray(nodes)) return false;
4057
+ return nodes.some((node) => {
4058
+ const n = node;
4059
+ if (n === null || typeof n !== "object") return false;
4060
+ if (n.type === "group") return hasBlankOperator(n.group?.expression);
4061
+ return n.statement?.op === "";
4062
+ });
4063
+ }
3916
4064
  var EMPTY_EXTERNAL = { source: "", id: "" };
3917
4065
  var DEFAULT_CACHE = {
3918
4066
  active: false,
@@ -5975,6 +6123,7 @@ function verifySection(key, before, after, mismatches, omissions) {
5975
6123
  omissions.push({ payloadKey: key, name, reason: policy.reason, detail: policy.detail });
5976
6124
  continue;
5977
6125
  }
6126
+ if (deepEqual2(normalize({ [name]: left }), normalize({ [name]: right }))) continue;
5978
6127
  const paths = right === void 0 || left === void 0 ? [] : mismatchPaths(left, right, key);
5979
6128
  mismatches.push({
5980
6129
  payloadKey: key,
@@ -6133,7 +6282,7 @@ async function fetchBundle(args, source) {
6133
6282
  credentialRead
6134
6283
  };
6135
6284
  }
6136
- const { projectDirFrom } = await import("./xanosdk-project-TWV27WO2.js");
6285
+ const { projectDirFrom } = await import("./xanosdk-project-MQTZKITV.js");
6137
6286
  const cwd = projectDirFrom(process.cwd()) ?? process.cwd();
6138
6287
  const raw2 = "name" in source && source.name !== void 0 ? `${source.kind}:${source.name}` : source.kind;
6139
6288
  step(`Reading ${raw2}`);
@@ -6594,7 +6743,7 @@ async function runInitFromCommand(args, source) {
6594
6743
  for (const line of routesDeferred) warn(line, "routes.not-written");
6595
6744
  if (seed !== void 0) reportSeedRows(seed.rows, seed.label, seed.provenance, XANO_DIR, contextFlags(args));
6596
6745
  if (replace.lock !== void 0) {
6597
- const { reconciledLock } = await import("./pull-command-5O2JPLXN.js");
6746
+ const { reconciledLock } = await import("./pull-command-VO5RRGZ5.js");
6598
6747
  writeLockFile(
6599
6748
  replace.lock.path,
6600
6749
  reconciledLock(replace.lock.model, replace.lock.reconciliation, bundle.payload)
@@ -6695,7 +6844,7 @@ async function planXanoReplace(out, files, payload, args, label, agentsMd) {
6695
6844
  if (shell.length > 0 && !await confirmShellOverwrite(out, shell, args, label)) return "cancelled";
6696
6845
  return { removals: void 0, removedEdited: [], rewrittenEdited: [], kept: [] };
6697
6846
  }
6698
- const { backendDirCleanliness, noneOfTheIdentities, pulledIdentities, reconcileLock } = await import("./pull-command-5O2JPLXN.js");
6847
+ const { backendDirCleanliness, noneOfTheIdentities, pulledIdentities, reconcileLock } = await import("./pull-command-VO5RRGZ5.js");
6699
6848
  const prefix = `${XANO_DIR}/`;
6700
6849
  const incoming = new Map(
6701
6850
  files.filter((f) => f.path.startsWith(prefix)).map((f) => [f.path.slice(prefix.length), f.content])
@@ -6743,7 +6892,7 @@ async function planXanoReplace(out, files, payload, args, label, agentsMd) {
6743
6892
  list(lock.reconciliation.dropped.map((key) => displayLockKey(key)), "")
6744
6893
  );
6745
6894
  }
6746
- const { keptDuplicates, replacedRegistrations, reportSuperseded } = await import("./pull-superseded-B7SOPA2M.js");
6895
+ const { keptDuplicates, replacedRegistrations, reportSuperseded } = await import("./pull-superseded-GGURV5J3.js");
6747
6896
  const shown = relative(process.cwd(), xanoDir).split(sep).join("/") || XANO_DIR;
6748
6897
  reportSuperseded(
6749
6898
  keptDuplicates(xanoDir, incoming, kept, shown),
@@ -7047,4 +7196,4 @@ export {
7047
7196
  seedRowsListed,
7048
7197
  seedRowsLanding
7049
7198
  };
7050
- //# sourceMappingURL=chunk-2DH7VTO5.js.map
7199
+ //# sourceMappingURL=chunk-7KLAMYMS.js.map