@xano/sdk 1.0.1 → 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-T7BL3JDV.js → agent-file-refresh-MQKCS7QZ.js} +10 -10
  4. package/dist/{answer-shape-K67TAAPY.js → answer-shape-LVV2SVBK.js} +5 -5
  5. package/dist/{backend-dir-2EYNX36R.js → backend-dir-DGAQL4K5.js} +10 -10
  6. package/dist/{backend-slot-7QXW2QYC.js → backend-slot-NSCTWCUX.js} +4 -4
  7. package/dist/bin.js +62 -61
  8. package/dist/{branch-NCRNWQBQ.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-RLHYFD2R.js → chunk-2CGPQ7IM.js} +6 -6
  13. package/dist/{chunk-73IVBKMA.js → chunk-2LVTBPW2.js} +3 -3
  14. package/dist/{chunk-U64O2MXY.js → chunk-37AHZ7JX.js} +6 -6
  15. package/dist/{chunk-N5GKCWE5.js → chunk-37FBPMNE.js} +4 -4
  16. package/dist/{chunk-JZGVVJSI.js → chunk-3H3EPMFY.js} +2 -2
  17. package/dist/{chunk-L5JYN3NM.js → chunk-3HOGFGKG.js} +30 -3
  18. package/dist/{chunk-ZDPP6RKB.js → chunk-45ZUMF4E.js} +2 -2
  19. package/dist/{chunk-ES3TNTLS.js → chunk-46TUUNM3.js} +14 -14
  20. package/dist/{chunk-65HWOMGV.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-HVRUQXGD.js → chunk-4PQHO74B.js} +26 -15
  24. package/dist/{chunk-BWPNT55T.js → chunk-5T2CTWTB.js} +6 -6
  25. package/dist/{chunk-6IUMKYWI.js → chunk-5W7DOMIU.js} +13 -13
  26. package/dist/{chunk-CTMO46PK.js → chunk-5YL5OC2G.js} +12 -12
  27. package/dist/{chunk-2CMJZDCL.js → chunk-6JAEMMZ7.js} +5 -5
  28. package/dist/{chunk-AAX2S6OU.js → chunk-6NYLVUSZ.js} +42 -42
  29. package/dist/{chunk-JGE7CAWB.js → chunk-6R7S775T.js} +2 -2
  30. package/dist/{chunk-G554NZNI.js → chunk-7GX445AE.js} +2 -2
  31. package/dist/{chunk-BU5GWPBO.js → chunk-7KGASMCE.js} +7 -7
  32. package/dist/{chunk-NK2633D7.js → chunk-7KLAMYMS.js} +220 -71
  33. package/dist/{chunk-K5BBGTYZ.js → chunk-7KPKDHHI.js} +3 -3
  34. package/dist/{chunk-27GWNP2I.js → chunk-7THDHQ4R.js} +9 -2
  35. package/dist/{chunk-LCMQNVHL.js → chunk-7TXBKK5G.js} +7 -7
  36. package/dist/{chunk-YU4HSQW7.js → chunk-A2AOUBJS.js} +15 -8
  37. package/dist/{chunk-OIQH34Q5.js → chunk-A4KBHTMK.js} +29 -29
  38. package/dist/{chunk-2ZUEE4EK.js → chunk-A6QTTJUI.js} +2 -2
  39. package/dist/{chunk-ZPSPKPXK.js → chunk-AMTJ4G32.js} +5 -5
  40. package/dist/{chunk-6QXLMMT3.js → chunk-ANHOEBTJ.js} +4 -4
  41. package/dist/{chunk-6HO3NCSJ.js → chunk-BEXZ4XRV.js} +2 -2
  42. package/dist/{chunk-7G3CTU7I.js → chunk-BUECLQXK.js} +4 -4
  43. package/dist/{chunk-MJ4ZVHKN.js → chunk-BUJRS7XB.js} +3 -3
  44. package/dist/{chunk-3KZCLN4Z.js → chunk-CBYQ2ZN3.js} +5 -5
  45. package/dist/{chunk-6PBR37LN.js → chunk-CFSFBKHP.js} +2 -2
  46. package/dist/{chunk-PV7BGEF2.js → chunk-CJPLBFFY.js} +8 -8
  47. package/dist/{chunk-APWXY5SL.js → chunk-CYB7UQA2.js} +2 -2
  48. package/dist/{chunk-TGPYAMVT.js → chunk-D3XOH7E7.js} +8 -8
  49. package/dist/{chunk-6ELFRN3P.js → chunk-D64XUF5Q.js} +2 -2
  50. package/dist/{chunk-ZIY7RNUT.js → chunk-DIG3NITC.js} +3 -3
  51. package/dist/{chunk-3LDULPRE.js → chunk-DYG5D3FD.js} +2 -2
  52. package/dist/{chunk-TRJCALW3.js → chunk-E65QIWOO.js} +4 -4
  53. package/dist/{chunk-LQCMKAJ7.js → chunk-EESV6NU2.js} +3 -3
  54. package/dist/{chunk-IGOLHKWF.js → chunk-EOIJ7MVW.js} +3 -3
  55. package/dist/{chunk-KUI7V576.js → chunk-ERJNHEFV.js} +3 -3
  56. package/dist/{chunk-5V5XU32D.js → chunk-ETAZIGNT.js} +5 -5
  57. package/dist/{chunk-FXRQOWTE.js → chunk-EWCDPFW5.js} +4 -4
  58. package/dist/{chunk-JLUAWKX2.js → chunk-F5KILDDO.js} +87 -87
  59. package/dist/{chunk-T5KELPAR.js → chunk-FMOEVAGT.js} +2 -2
  60. package/dist/{chunk-5FBYXK5P.js → chunk-FPBGAT5D.js} +2 -2
  61. package/dist/{chunk-2GNFDZA2.js → chunk-FSYVOCS7.js} +5 -5
  62. package/dist/{chunk-ZFKZMSM3.js → chunk-FURLOAUM.js} +3 -3
  63. package/dist/{chunk-OFEID2IX.js → chunk-FWXSTFN2.js} +4 -4
  64. package/dist/{chunk-2EZ3ZJZZ.js → chunk-GPI3OWRE.js} +16 -5
  65. package/dist/{chunk-AWMTT5U7.js → chunk-HHFPIJGL.js} +3 -3
  66. package/dist/{chunk-MZ4EQX7X.js → chunk-HHW5AWVD.js} +8 -8
  67. package/dist/{chunk-45UIT5T2.js → chunk-HMLGM2MW.js} +4 -4
  68. package/dist/{chunk-LPECSJ2J.js → chunk-HSEQYBDO.js} +2 -2
  69. package/dist/{chunk-XW6KISBB.js → chunk-I2BGYNHD.js} +4 -4
  70. package/dist/{chunk-XVBGLISP.js → chunk-ICK36EGF.js} +2 -2
  71. package/dist/{chunk-MXHSQOC4.js → chunk-II747OWE.js} +45 -45
  72. package/dist/{chunk-JTGBGL37.js → chunk-IRQCV3OT.js} +4 -4
  73. package/dist/{chunk-D53J55C5.js → chunk-IVKRT476.js} +2 -2
  74. package/dist/{chunk-H5C7MBCR.js → chunk-IXUPUFCG.js} +2 -2
  75. package/dist/{chunk-TPCOHYPG.js → chunk-JTM5D7CT.js} +8 -8
  76. package/dist/{chunk-TLJWHLBK.js → chunk-K3LE5B5E.js} +72 -72
  77. package/dist/{chunk-A3UDOZB6.js → chunk-KCAL4QYP.js} +4 -4
  78. package/dist/{chunk-FQJ2TTHP.js → chunk-KTGRGWZW.js} +7 -7
  79. package/dist/{chunk-D7VGG3WS.js → chunk-KUTFFHUM.js} +2 -2
  80. package/dist/{chunk-VAL32UEI.js → chunk-KXYW3DRR.js} +7 -7
  81. package/dist/{chunk-OFISBMQ6.js → chunk-LAKHO2B7.js} +8 -8
  82. package/dist/{chunk-NZOWWHU5.js → chunk-LL6ED5IB.js} +2 -2
  83. package/dist/{chunk-6ZGJCBZS.js → chunk-LXNQWHZM.js} +3 -3
  84. package/dist/{chunk-AN6BL47T.js → chunk-MEE5RZ6G.js} +2 -2
  85. package/dist/{chunk-YLDALTWZ.js → chunk-MN2PB6WB.js} +2 -2
  86. package/dist/{chunk-C6RIMRU4.js → chunk-MNVDVR3M.js} +4 -4
  87. package/dist/{chunk-HSBVDFU2.js → chunk-NPXM6ZQY.js} +4 -4
  88. package/dist/{chunk-IFSNSRUJ.js → chunk-O7QOWS6M.js} +3 -3
  89. package/dist/{chunk-2KETYQPN.js → chunk-OO63ZU46.js} +7 -7
  90. package/dist/{chunk-6MR5TI5V.js → chunk-OOGXZL7Z.js} +2 -2
  91. package/dist/{chunk-YGZHHAAB.js → chunk-OPG4DYX2.js} +94 -52
  92. package/dist/{chunk-TNM7VE7N.js → chunk-PWIXETG7.js} +4 -4
  93. package/dist/{chunk-DBMN5YLZ.js → chunk-QEZL5MPJ.js} +3 -3
  94. package/dist/{chunk-CJHQKJU4.js → chunk-QV3GXQRE.js} +2 -2
  95. package/dist/{chunk-TLQE7ZN3.js → chunk-RX3EMQGN.js} +2 -2
  96. package/dist/{chunk-PTHVMXZI.js → chunk-SBR2WZXG.js} +4 -4
  97. package/dist/{chunk-SAC4DYYP.js → chunk-SEATQLFB.js} +13 -13
  98. package/dist/{chunk-NAQDMEHV.js → chunk-SEUCZZCP.js} +2 -2
  99. package/dist/{chunk-RTJRZFFY.js → chunk-TTVAHCWP.js} +2 -2
  100. package/dist/{chunk-STSFNCY4.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-5QU2P5CA.js → chunk-UKUIUS3E.js} +4 -4
  104. package/dist/{chunk-OXA6PSZT.js → chunk-UVF45BVU.js} +35 -16
  105. package/dist/{chunk-PA43WZWS.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-UZ6QQWJT.js → chunk-W5ONYLOP.js} +4 -4
  109. package/dist/{chunk-IDOTCMDV.js → chunk-WFG67AYS.js} +3 -3
  110. package/dist/{chunk-IC23IKRU.js → chunk-WGA25EV5.js} +3 -3
  111. package/dist/{chunk-TPHWJ7UG.js → chunk-WOGJB2F6.js} +66 -18
  112. package/dist/{chunk-YY2UY7PZ.js → chunk-XCPF7BEJ.js} +5 -5
  113. package/dist/{chunk-FXFV3KU6.js → chunk-XMDDBEEM.js} +10 -6
  114. package/dist/{chunk-HRVBLCVJ.js → chunk-XXZZGXW2.js} +3 -3
  115. package/dist/{chunk-CHRP4RHP.js → chunk-YTPGQV5C.js} +7 -7
  116. package/dist/{chunk-SKMZGS3L.js → chunk-Z5UCPWGU.js} +20 -20
  117. package/dist/{chunk-UF7TI3BS.js → chunk-ZH5R7NKN.js} +3 -3
  118. package/dist/{chunk-FXGJ7TEQ.js → chunk-ZTUNCVAR.js} +50 -50
  119. package/dist/{chunk-UCZZ6KRR.js → chunk-ZVYN4FXD.js} +14 -14
  120. package/dist/chunk-ZY55DO5P.js +24 -0
  121. package/dist/{chunk-NM2X7SQ3.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-XEHCGZHH.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-GJMJ4XYZ.js → commands-CVFYC4GK.js} +3 -3
  128. package/dist/{completion-ZQLO6PB6.js → completion-AUEQC4XJ.js} +3 -3
  129. package/dist/{config-MBYGCAFK.js → config-JU6OQC77.js} +4 -4
  130. package/dist/{deploy-command-V2EMVVK2.js → deploy-command-RD6W7PXN.js} +67 -66
  131. package/dist/{deploy-source-4BRH7JMY.js → deploy-source-ULSWF2V7.js} +31 -31
  132. package/dist/{dev-env-sync-4334IEDW.js → dev-env-sync-E2GFIVC5.js} +61 -60
  133. package/dist/{diagnostics-UEAAHWVF.js → diagnostics-LSMGB4TY.js} +2 -2
  134. package/dist/{display-name-hint-ABBPVQIR.js → display-name-hint-DMORHANO.js} +11 -11
  135. package/dist/{emit-CyhBDxli.d.ts → emit-hOFbgzde.d.ts} +19 -15
  136. package/dist/env-example-refresh-WFKGILLY.js +127 -0
  137. package/dist/{env-pull-command-E6UITJ75.js → env-pull-command-QYQEOUE3.js} +51 -51
  138. package/dist/{env-target-76MVYUD4.js → env-target-KUWQYHZ7.js} +14 -14
  139. package/dist/{env-var-command-J2LKNUEQ.js → env-var-command-2ZAVIPNY.js} +40 -40
  140. package/dist/{ephemeral-P7F3PMAD.js → ephemeral-BMFY55BQ.js} +9 -9
  141. package/dist/{ephemeral-command-YZATIADS.js → ephemeral-command-UKHBT3OW.js} +52 -52
  142. package/dist/{ephemeral-state-PYCBSOGX.js → ephemeral-state-6TY4JIPA.js} +12 -12
  143. package/dist/{generate-command-XSKLN7ST.js → generate-command-YN3HZWHG.js} +81 -80
  144. package/dist/{gitignore-W23MIWX6.js → gitignore-AU5X5F3I.js} +14 -14
  145. package/dist/{guards-4EBNCZDC.js → guards-EJU2ONAX.js} +17 -14
  146. package/dist/{impersonate-command-YZMTA7NW.js → impersonate-command-ZKE77GFT.js} +36 -36
  147. package/dist/{import-EQSFU6JC.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-IAVCXWX3.js → init-modules-5TSTLGH5.js} +8 -8
  152. package/dist/{init-web-M4YZSZK6.js → init-web-Y2PBNJTQ.js} +3 -3
  153. package/dist/internal.d.ts +5 -5
  154. package/dist/internal.js +38 -30
  155. package/dist/{io-RC56QSN5.js → io-ZUKAGFVE.js} +6 -6
  156. package/dist/{keep-data-merge-M4ULDZB6.js → keep-data-merge-TDSELE5U.js} +39 -38
  157. package/dist/{landed-753YLJ5H.js → landed-6VO7CX5P.js} +5 -5
  158. package/dist/{landing-record-JLN6BCQY.js → landing-record-W7VQ4KV4.js} +21 -21
  159. package/dist/{live-diff-YONW2VI3.js → live-diff-2S7E3SBZ.js} +15 -15
  160. package/dist/{local-engine-choice-QOQJZ5P2.js → local-engine-choice-OXULXWEP.js} +34 -34
  161. package/dist/{local-engine-command-YVNO5ETS.js → local-engine-command-5MTGZIZ4.js} +39 -39
  162. package/dist/{local-engine-deploy-AWA65WR2.js → local-engine-deploy-TXAOYRGF.js} +12 -12
  163. package/dist/{local-engine-process-SQLSK3AB.js → local-engine-process-6VZ7JJBP.js} +7 -7
  164. package/dist/{local-engine-update-check-6L645VBL.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-GU3TKPWU.js → lock-commands-OBXAUSZX.js} +67 -66
  167. package/dist/{login-command-FPKDGYUR.js → login-command-CB3O3UDZ.js} +26 -26
  168. package/dist/{logout-command-MQD3L46D.js → logout-command-J5CP5HZZ.js} +17 -17
  169. package/dist/{loop-ALIZLOSX.js → loop-UFHKSOQ4.js} +16 -16
  170. package/dist/{marketplace-command-25ZYWSHI.js → marketplace-command-A5S25ZHF.js} +28 -28
  171. package/dist/{marketplace-resolve-LY32JES5.js → marketplace-resolve-GRXMK5YD.js} +6 -6
  172. package/dist/{meta-client-JPGG2ZHS.js → meta-client-FB73643X.js} +15 -15
  173. package/dist/{module-manifest-JFGHU2TC.js → module-manifest-GIKFNXPE.js} +4 -4
  174. package/dist/node.d.ts +8 -8
  175. package/dist/node.js +69 -68
  176. package/dist/operation-outcome-V4FUJI7V.js +51 -0
  177. package/dist/{output-target-NTJAO4VA.js → output-target-6HNPK6KC.js} +15 -15
  178. package/dist/{plan-disclosure-6G4MLZKD.js → plan-disclosure-BHYG7TZ7.js} +29 -29
  179. package/dist/{plugin-contributions-WRNY5ABG.js → plugin-contributions-X4V22PJQ.js} +5 -5
  180. package/dist/{plugin-prompt-4VA3B4FF.js → plugin-prompt-DKNQHW6Y.js} +5 -5
  181. package/dist/{plugin-questions-JTSYA74Q.js → plugin-questions-CQRVOWFK.js} +4 -4
  182. package/dist/{preflight-command-OPIVTVIJ.js → preflight-command-NZ75PSRL.js} +74 -73
  183. package/dist/{profile-command-RW7LJZWN.js → profile-command-KIRI4GA4.js} +27 -27
  184. package/dist/{profile-pointer-GRWJU3YD.js → profile-pointer-UOO7JNFG.js} +4 -4
  185. package/dist/{project-dependency-KSH63ODT.js → project-dependency-JGCJZ26H.js} +7 -7
  186. package/dist/{project-sdk-REPPOIBD.js → project-sdk-FOR4IOXL.js} +4 -4
  187. package/dist/promote-command-IPDH5OBT.js +141 -0
  188. package/dist/{prompt-II3F3LND.js → prompt-5GUQTCSP.js} +4 -4
  189. package/dist/{publish-command-WIQCLPIU.js → publish-command-74HMEZ7E.js} +70 -69
  190. package/dist/pull-command-VO5RRGZ5.js +162 -0
  191. package/dist/{pull-superseded-GJWLG7XO.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-HGKCE56Y.js → release-ns-command-2TL26YOM.js} +95 -94
  195. package/dist/{retry-command-AS5EVREX.js → retry-command-Y5YJGOH3.js} +8 -8
  196. package/dist/{routes-manifest-SNWUVBT6.js → routes-manifest-3BNZIVST.js} +17 -17
  197. package/dist/{secrets-file-O5GABAHH.js → secrets-file-NBBR6DYS.js} +14 -14
  198. package/dist/{secrets-fill-command-XSONDOOT.js → secrets-fill-command-X3HQ4JYN.js} +64 -63
  199. package/dist/{seed-VU7C3QYS.js → seed-GJHJSEUE.js} +13 -12
  200. package/dist/{source-resolve-UE7DHWYR.js → source-resolve-NTI3JFO6.js} +22 -22
  201. package/dist/{static-host-B2Y6AG3W.js → static-host-WM24RG25.js} +5 -5
  202. package/dist/{status-command-QIC7QCWJ.js → status-command-RVMOLYPR.js} +37 -37
  203. package/dist/{store-DuYfzKlW.d.ts → store-CfgPaVPO.d.ts} +125 -5
  204. package/dist/{store-ARM6VMO5.js → store-MR7IKXKK.js} +6 -6
  205. package/dist/{sync-contributions-WEKCYMP6.js → sync-contributions-KGCVRH2J.js} +9 -9
  206. package/dist/{table-ENAVMITR.js → table-ZBDPKMNH.js} +12 -11
  207. package/dist/{tables-command-VBIAU4HI.js → tables-command-GAOXJPMA.js} +40 -39
  208. package/dist/{tenant-IIHPOHGP.js → tenant-GKXMOYLK.js} +10 -10
  209. package/dist/{tenant-command-JXDHHIZH.js → tenant-command-FAJ7WZTH.js} +98 -97
  210. package/dist/{test-command-ST2BXOEH.js → test-command-53FRDZ32.js} +35 -35
  211. package/dist/{tests-BGGIOK3L.js → tests-C55M5EQS.js} +6 -6
  212. package/dist/{token-OZV2UJQA.js → token-44CKLYWD.js} +13 -13
  213. package/dist/{toolchain-hooks-GHKLUJOH.js → toolchain-hooks-BGZBDFAT.js} +3 -3
  214. package/dist/{toolchain-modules-DCKB4AVK.js → toolchain-modules-MPPH633S.js} +5 -5
  215. package/dist/{tracked-backend-JX2YUXTZ.js → tracked-backend-AJLHRGLF.js} +33 -33
  216. package/dist/update-check-Q4HJHHL5.js +137 -0
  217. package/dist/{upgrade-command-PKZPJKAV.js → upgrade-command-C63HIBVH.js} +65 -64
  218. package/dist/{whoami-command-IN2DJHSI.js → whoami-command-WC5EKB4W.js} +16 -16
  219. package/dist/{workspace-4STTFOPC.js → workspace-EJVWTIWX.js} +5 -5
  220. package/dist/{workspace-binding-T3HVSO4V.js → workspace-binding-BRPPUSWG.js} +15 -15
  221. package/dist/{workspace-command-3NQQRB7E.js → workspace-command-Y6STVPYO.js} +91 -90
  222. package/dist/{workspace-env-MWJFQ6O3.js → workspace-env-SIINWNMP.js} +11 -11
  223. package/dist/{workspace-export-OJSH2HIW.js → workspace-export-AIGM6LC7.js} +5 -5
  224. package/dist/{writable-VA7OISSK.js → writable-FYJBTJOU.js} +4 -4
  225. package/dist/xano-BSHYVFSE.js +43 -0
  226. package/dist/{xanosdk-import-N6OTERC6.js → xanosdk-import-UKEO7R7O.js} +10 -10
  227. package/dist/{xanosdk-project-7RIKS2ZQ.js → xanosdk-project-MQTZKITV.js} +12 -12
  228. package/guides/codes.md +2 -1
  229. package/llms/lambda.md +1 -0
  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 -4
  234. package/llms.txt +1 -1
  235. package/manifest.json +1 -1
  236. package/package.json +1 -1
  237. package/dist/branch-commands-D7MVAOSY.js +0 -79
  238. package/dist/env-example-refresh-GQKAQDWO.js +0 -126
  239. package/dist/init-command-CEYEFIS2.js +0 -125
  240. package/dist/operation-outcome-QH6IZEV5.js +0 -51
  241. package/dist/promote-command-TYPJDNRW.js +0 -140
  242. package/dist/pull-command-4LVTKE4S.js +0 -161
  243. package/dist/release-command-JJ3QDX3T.js +0 -146
  244. package/dist/update-check-K557PAI7.js +0 -136
  245. package/dist/xano-ICFUSPFR.js +0 -42
@@ -2,16 +2,16 @@ import {
2
2
  assertInputValue,
3
3
  assertOneOf as assertOneOf2,
4
4
  leanInput
5
- } from "./chunk-XVBGLISP.js";
5
+ } from "./chunk-ICK36EGF.js";
6
6
  import {
7
7
  FILTER_NAMES,
8
8
  fl
9
- } from "./chunk-6HO3NCSJ.js";
9
+ } from "./chunk-BEXZ4XRV.js";
10
10
  import {
11
11
  assertCanonical,
12
12
  buildMiddlewareBlock,
13
13
  encodeContainerHistory
14
- } from "./chunk-5V5XU32D.js";
14
+ } from "./chunk-ETAZIGNT.js";
15
15
  import {
16
16
  safeNames
17
17
  } from "./chunk-GSGDWJB5.js";
@@ -37,7 +37,7 @@ import {
37
37
  tableColumns,
38
38
  tableIndexes,
39
39
  unusableColumns
40
- } from "./chunk-HVRUQXGD.js";
40
+ } from "./chunk-4PQHO74B.js";
41
41
  import {
42
42
  brandDef
43
43
  } from "./chunk-ERVIASGL.js";
@@ -45,7 +45,7 @@ import {
45
45
  assertDefShape,
46
46
  encodeTags,
47
47
  registerKind
48
- } from "./chunk-4POWHT2K.js";
48
+ } from "./chunk-VTMTIBKP.js";
49
49
  import {
50
50
  findNonJson,
51
51
  nonJsonMessage
@@ -61,20 +61,20 @@ import {
61
61
  import {
62
62
  nearestKey
63
63
  } from "./chunk-WTPZRR4I.js";
64
+ import {
65
+ DiagnosticError
66
+ } from "./chunk-GPI3OWRE.js";
64
67
  import {
65
68
  orNames,
66
69
  suggest,
67
70
  suggestAll
68
71
  } from "./chunk-UTI5G6OJ.js";
69
- import {
70
- DiagnosticError
71
- } from "./chunk-2EZ3ZJZZ.js";
72
72
  import {
73
73
  appNamesByGuid,
74
74
  identityNamesByGuid,
75
75
  lockNameForObject,
76
76
  sdkKindName
77
- } from "./chunk-6MR5TI5V.js";
77
+ } from "./chunk-OOGXZL7Z.js";
78
78
  import {
79
79
  annotate,
80
80
  encodeStatement,
@@ -83,7 +83,7 @@ import {
83
83
  registerStatement,
84
84
  statementLabel,
85
85
  statementMark
86
- } from "./chunk-YU4HSQW7.js";
86
+ } from "./chunk-A2AOUBJS.js";
87
87
  import {
88
88
  LAMBDA_CODE_FILTERS,
89
89
  assertLambdaStatement,
@@ -99,7 +99,7 @@ import {
99
99
  sys,
100
100
  toPlainValue,
101
101
  withFilters
102
- } from "./chunk-OXA6PSZT.js";
102
+ } from "./chunk-UVF45BVU.js";
103
103
  import {
104
104
  maskNonCode
105
105
  } from "./chunk-VAX3UZOY.js";
@@ -107,10 +107,10 @@ import {
107
107
  guidSeedHint,
108
108
  refSpelling,
109
109
  resolveRef
110
- } from "./chunk-NZOWWHU5.js";
110
+ } from "./chunk-LL6ED5IB.js";
111
111
  import {
112
112
  isListColumn
113
- } from "./chunk-TTEIYD5P.js";
113
+ } from "./chunk-4DJTQ6W4.js";
114
114
  import {
115
115
  argsOrEmpty,
116
116
  assertArg,
@@ -122,7 +122,7 @@ import {
122
122
  describeEntry,
123
123
  isRecordArg,
124
124
  isTaggedArg
125
- } from "./chunk-CIMQZRRE.js";
125
+ } from "./chunk-4MIV244X.js";
126
126
  import {
127
127
  withArticle
128
128
  } from "./chunk-36JUQZVQ.js";
@@ -224,7 +224,15 @@ function encodeOne(spec, path, envelopeOffset) {
224
224
  throw new Error("addon: `children` cannot reference an ancestor addon spec (cycle detected).");
225
225
  }
226
226
  const { offset, as } = splitAs(spec.as);
227
- const finalOffset = envelopeOffset !== void 0 ? withEnvelopeOffset(offset, envelopeOffset) : offset;
227
+ if (spec.envelope !== void 0 && typeof spec.envelope !== "boolean") {
228
+ throw new Error(`addon "${spec.as}": \`envelope\` must be true or false \u2014 got ${JSON.stringify(spec.envelope)}.`);
229
+ }
230
+ if (spec.envelope === true && envelopeOffset === void 0) {
231
+ throw new Error(
232
+ `addon "${spec.as}": \`envelope: true\` grafts onto a db.query's paging envelope, and this attachment has none \u2014 only a top-level addon on a list query with paging (and metadata) on does. Drop \`envelope\`.`
233
+ );
234
+ }
235
+ const finalOffset = envelopeOffset !== void 0 && spec.envelope !== true ? withEnvelopeOffset(offset, envelopeOffset) : offset;
228
236
  const stored = {
229
237
  // An unbound attachment stores a blank id — the same "no target" the engine
230
238
  // writes, and the same spelling `table: null` / `fn: null` already use.
@@ -676,8 +684,8 @@ var EVAL_ITEM = {
676
684
  var EVAL_KEYS = ["name", "as", "filters"];
677
685
  var PAGING_KEYS = ["page", "per_page", "offset", "totals", "metadata", "enabled", "search", "sort"];
678
686
  var BIND_ITEM = {
679
- test: (v) => isRecordArg(v) && "table" in v,
680
- want: "a join ({ table, as?, join?, where? })"
687
+ test: (v) => isRecordArg(v) && ("table" in v || "expand" in v),
688
+ want: "a join ({ table, as?, join?, where? }) or a list expansion ({ expand, as, join?, where? })"
681
689
  };
682
690
  var WHERE_ITEM = {
683
691
  test: (v) => isRecordArg(v) || isTaggedArg(v),
@@ -757,6 +765,7 @@ function assertNoAddonShadow(table, addons) {
757
765
  if (typeof table === "string" || !("schema" in table)) return;
758
766
  const cols = new Set(tableColumns(table).map((col) => col.name));
759
767
  for (const spec of addons) {
768
+ if (spec.envelope === true) continue;
760
769
  const as = spec.as;
761
770
  const dot = as.lastIndexOf(".");
762
771
  const alias = dot === -1 ? as : as.slice(dot + 1);
@@ -791,7 +800,7 @@ function dboStatement(name, table, as, input, opts = {}, tableAlias, enforceHidd
791
800
  };
792
801
  }
793
802
  var BULK_BY_CONDITION = '`s.db.query({ table, where, as: "rows" })` then `s.foreach` over `rows` with `s.db.patch` per id (or `s.db.increment({ table, where, \u2026 })` to add to a numeric column) to change the rows matching a condition';
794
- var BULK_WRITE_KEYS = ["disabled", "description", "mock", "asFilters", "tableAlias", "table", "items", "as"];
803
+ var BULK_WRITE_KEYS = ["disabled", "description", "mock", "asFilters", "uncheckedAs", "tableAlias", "table", "items", "as"];
795
804
  function assertBulkWriteKeys(label, args, extra = []) {
796
805
  if (args.where !== void 0) {
797
806
  throw new Error(
@@ -807,7 +816,7 @@ function assertNoWhere(label, args, alternative) {
807
816
  `Statement "${label}": \`where\` is not an argument of ${label} \u2014 it matches one row by \`fieldName\`/\`fieldValue\` (the id by default). ` + (a.fieldValue !== void 0 ? `Drop \`where\` to match on \`fieldValue\` alone, or use ${alternative}.` : `Use ${alternative}, or pass \`fieldValue\`.`)
808
817
  );
809
818
  }
810
- var DB_GET_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, table: 1, fieldName: 1, fieldValue: 1, lock: 1, output: 1, addon: 1, as: 1 });
819
+ var DB_GET_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, table: 1, fieldName: 1, fieldValue: 1, lock: 1, output: 1, addon: 1, as: 1 });
811
820
  function dbGet(args) {
812
821
  args = argsOrEmpty(args);
813
822
  assertNoWhere("s.db.get", args, '`s.db.query({ table, where, returnType: "single" })` for the first row matching a condition');
@@ -830,7 +839,7 @@ function dbGet(args) {
830
839
  args.tableAlias
831
840
  ), args);
832
841
  }
833
- var DB_DEL_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, table: 1, fieldName: 1, fieldValue: 1, as: 1 });
842
+ var DB_DEL_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, table: 1, fieldName: 1, fieldValue: 1, as: 1 });
834
843
  function dbDel(args) {
835
844
  args = argsOrEmpty(args);
836
845
  assertNoWhere("s.db.del", args, "`s.db.bulk.delete({ table, where })` to delete the rows matching a condition");
@@ -846,7 +855,7 @@ function dbDel(args) {
846
855
  args.tableAlias
847
856
  ), args);
848
857
  }
849
- var DB_HAS_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, table: 1, fieldName: 1, fieldValue: 1, as: 1 });
858
+ var DB_HAS_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, table: 1, fieldName: 1, fieldValue: 1, as: 1 });
850
859
  function dbHas(args) {
851
860
  args = argsOrEmpty(args);
852
861
  assertNoWhere("s.db.has", args, '`s.db.query({ table, where, returnType: "exists" })` to test a condition');
@@ -862,7 +871,7 @@ function dbHas(args) {
862
871
  args.tableAlias
863
872
  ), args);
864
873
  }
865
- var DB_PATCH_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, table: 1, fieldName: 1, fieldValue: 1, data: 1, output: 1, addon: 1, as: 1 });
874
+ var DB_PATCH_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, table: 1, fieldName: 1, fieldValue: 1, data: 1, output: 1, addon: 1, as: 1 });
866
875
  function dbPatch(args) {
867
876
  args = argsOrEmpty(args);
868
877
  assertNoWhere("s.db.patch", args, BULK_BY_CONDITION);
@@ -883,7 +892,7 @@ function dbPatch(args) {
883
892
  args.tableAlias
884
893
  ), args);
885
894
  }
886
- var DB_TRUNCATE_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, table: 1, reset: 1, as: 1 });
895
+ var DB_TRUNCATE_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, table: 1, reset: 1, as: 1 });
887
896
  function dbTruncate(args) {
888
897
  args = argsOrEmpty(args);
889
898
  assertKnownKeys(`Statement "s.db.truncate"`, args, DB_TRUNCATE_KEYS);
@@ -1003,7 +1012,7 @@ function nestedFields(cell, statement, path) {
1003
1012
  return isNestedCell(child) ? { name, value: c.text(""), children: nestedFields(child, statement, `${path}.${name}`) } : { name, value: child };
1004
1013
  });
1005
1014
  }
1006
- var DB_ADD_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, enforceHiddenFields: 1, table: 1, data: 1, row: 1, output: 1, addon: 1, as: 1 });
1015
+ var DB_ADD_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, enforceHiddenFields: 1, table: 1, data: 1, row: 1, output: 1, addon: 1, as: 1 });
1007
1016
  function dbAdd(args) {
1008
1017
  args = argsOrEmpty(args);
1009
1018
  assertKnownKeys(`Statement "s.db.add"`, args, DB_ADD_KEYS);
@@ -1019,7 +1028,7 @@ function dbAdd(args) {
1019
1028
  args.enforceHiddenFields
1020
1029
  ), args);
1021
1030
  }
1022
- var DB_EDIT_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, enforceHiddenFields: 1, table: 1, fieldName: 1, fieldValue: 1, data: 1, row: 1, output: 1, addon: 1, as: 1 });
1031
+ var DB_EDIT_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, enforceHiddenFields: 1, table: 1, fieldName: 1, fieldValue: 1, data: 1, row: 1, output: 1, addon: 1, as: 1 });
1023
1032
  function dbEdit(args) {
1024
1033
  args = argsOrEmpty(args);
1025
1034
  assertNoWhere("s.db.edit", args, BULK_BY_CONDITION);
@@ -1041,7 +1050,7 @@ function dbEdit(args) {
1041
1050
  args.enforceHiddenFields
1042
1051
  ), args);
1043
1052
  }
1044
- var DB_ADD_OR_EDIT_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, enforceHiddenFields: 1, table: 1, fieldName: 1, fieldValue: 1, data: 1, row: 1, as: 1 });
1053
+ var DB_ADD_OR_EDIT_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, enforceHiddenFields: 1, table: 1, fieldName: 1, fieldValue: 1, data: 1, row: 1, as: 1 });
1045
1054
  function dbAddOrEdit(args) {
1046
1055
  args = argsOrEmpty(args);
1047
1056
  assertNoWhere("s.db.add_or_edit", args, '`s.db.query({ table, where, returnType: "single" })` first to find the row');
@@ -1064,7 +1073,7 @@ function dbAddOrEdit(args) {
1064
1073
  input
1065
1074
  }, args);
1066
1075
  }
1067
- var DB_SCHEMA_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, table: 1, path: 1, as: 1 });
1076
+ var DB_SCHEMA_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, table: 1, path: 1, as: 1 });
1068
1077
  function dbSchema(args) {
1069
1078
  args = argsOrEmpty(args);
1070
1079
  assertKnownKeys(`Statement "s.db.schema"`, args, DB_SCHEMA_KEYS);
@@ -1085,7 +1094,7 @@ function assertSqlEnums(statement, args) {
1085
1094
  assertOneOf(statement, "responseType", args.responseType, DB_RESPONSE_TYPES);
1086
1095
  assertOneOf(statement, "parser", args.parser, DB_SQL_PARSERS);
1087
1096
  }
1088
- var DB_DIRECT_QUERY_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, sql: 1, responseType: 1, args: 1, parser: 1, as: 1 });
1097
+ var DB_DIRECT_QUERY_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, sql: 1, responseType: 1, args: 1, parser: 1, as: 1 });
1089
1098
  function dbDirectQuery(args) {
1090
1099
  args = argsOrEmpty(args);
1091
1100
  assertKnownKeys(`Statement "s.db.direct_query"`, args, DB_DIRECT_QUERY_KEYS);
@@ -1225,7 +1234,7 @@ function assertBulkDeleteScope(search, allRows) {
1225
1234
  'Statement "s.db.bulk.delete": this deletes EVERY row in the table \u2014 a filter that constrains nothing matches all rows, so this is a truncate with a row count. (An omitted `where`, an empty `where: []`, and an empty `and()`/`or()` group all encode to the same thing, which is how a dynamically built clause list reaches it.) Pass the filter you meant (`where: expr(col("status"), "=", c.text("expired"))`), or say the wipe is deliberate with `allRows: true`.'
1226
1235
  );
1227
1236
  }
1228
- var DB_BULK_DELETE_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, table: 1, where: 1, allRows: 1, as: 1 });
1237
+ var DB_BULK_DELETE_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, table: 1, where: 1, allRows: 1, as: 1 });
1229
1238
  function dbBulkDelete(args) {
1230
1239
  args = argsOrEmpty(args);
1231
1240
  assertKnownKeys(`Statement "s.db.bulk.delete"`, args, DB_BULK_DELETE_KEYS);
@@ -1283,7 +1292,7 @@ function incrementAmount(value) {
1283
1292
  throw new Error(`Statement "s.db.increment": \`value\` ${lossyIntegerProblem(value)}`);
1284
1293
  return coerceScalar(value);
1285
1294
  }
1286
- var DB_INCREMENT_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, tableAlias: 1, table: 1, where: 1, fieldName: 1, value: 1, returnType: 1, output: 1, addon: 1, as: 1 });
1295
+ var DB_INCREMENT_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, tableAlias: 1, table: 1, where: 1, fieldName: 1, value: 1, returnType: 1, output: 1, addon: 1, as: 1 });
1287
1296
  function dbIncrement(args) {
1288
1297
  args = argsOrEmpty(args);
1289
1298
  assertKnownKeys(`Statement "s.db.increment"`, args, DB_INCREMENT_KEYS);
@@ -1373,6 +1382,7 @@ function encodeBind(binds) {
1373
1382
  if (!binds?.length) return void 0;
1374
1383
  const seen = /* @__PURE__ */ new Set();
1375
1384
  return binds.map((b) => {
1385
+ if (b.expand !== void 0) return encodeExpandBind(b, seen);
1376
1386
  if (b.table === null && b.as === void 0) {
1377
1387
  throw new Error(
1378
1388
  "db.query bind: a join with `table: null` must name its `as` alias \u2014 an unbound join has no table name to derive one from. (`table: null` represents a join whose table was deleted; fix the pulled workspace rather than authoring it.)"
@@ -1397,6 +1407,28 @@ function encodeBind(binds) {
1397
1407
  return entry2;
1398
1408
  });
1399
1409
  }
1410
+ function encodeExpandBind(b, seen) {
1411
+ const where = `db.query bind { expand: ${JSON.stringify(b.expand)} }`;
1412
+ if (b.table !== void 0) {
1413
+ throw new Error(`${where}: \`expand\` and \`table\` are exclusive \u2014 a bind either joins a table or expands a list column.`);
1414
+ }
1415
+ if (typeof b.expand !== "string" || !/^[^.]+\.[^.]/.test(b.expand)) {
1416
+ throw new Error(
1417
+ `${where}: \`expand\` is \`<alias>.<column>\` \u2014 the query's \`tableAlias\` (or a joined table's \`as\`), then a list column of it, e.g. "blog.categories".`
1418
+ );
1419
+ }
1420
+ if (typeof b.as !== "string" || b.as === "") {
1421
+ throw new Error(`${where}: an expansion needs an \`as\` alias to address its elements by \u2014 the engine refuses one without.`);
1422
+ }
1423
+ if (seen.has(b.as)) {
1424
+ throw new Error(`db.query bind: duplicate join alias "${b.as}" \u2014 every join and expansion needs its own \`as\`.`);
1425
+ }
1426
+ seen.add(b.as);
1427
+ const entry2 = { dbo: { as: b.as, id: b.expand }, join: b.join ?? "inner" };
1428
+ const search = encodeSearch(b.where, void 0, `Statement "s.db.query": bind "${b.as}"`);
1429
+ if (search !== void 0) entry2.search = search;
1430
+ return entry2;
1431
+ }
1400
1432
  function collectColOperands(search, out) {
1401
1433
  if (search === null || typeof search !== "object") return;
1402
1434
  if (Array.isArray(search)) {
@@ -1510,6 +1542,7 @@ var DB_QUERY_KEYS = Object.keys({
1510
1542
  description: 1,
1511
1543
  mock: 1,
1512
1544
  asFilters: 1,
1545
+ uncheckedAs: 1,
1513
1546
  tableAlias: 1,
1514
1547
  table: 1,
1515
1548
  returnType: 1,
@@ -1527,7 +1560,9 @@ var DB_QUERY_KEYS = Object.keys({
1527
1560
  addon: 1,
1528
1561
  as: 1
1529
1562
  });
1530
- var DB_BIND_KEYS = Object.keys({ table: 1, as: 1, join: 1, where: 1 });
1563
+ var DB_BIND_KEYS = Object.keys(
1564
+ { table: 1, expand: 1, as: 1, join: 1, where: 1 }
1565
+ );
1531
1566
  function dbQuery(args) {
1532
1567
  args = argsOrEmpty(args);
1533
1568
  if (args.return !== void 0) {
@@ -1630,7 +1665,7 @@ var EXTERNAL_SQL_NAME = {
1630
1665
  postgres: "mvp:dbo_external_postgres_query",
1631
1666
  snowflake: "mvp:dbo_external_snowflake_query"
1632
1667
  };
1633
- var DB_EXTERNAL_QUERY_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, engine: 1, sql: 1, connectionString: 1, responseType: 1, args: 1, parser: 1, as: 1 });
1668
+ var DB_EXTERNAL_QUERY_KEYS = Object.keys({ disabled: 1, description: 1, mock: 1, asFilters: 1, uncheckedAs: 1, engine: 1, sql: 1, connectionString: 1, responseType: 1, args: 1, parser: 1, as: 1 });
1634
1669
  function dbExternalQuery(args) {
1635
1670
  args = argsOrEmpty(args);
1636
1671
  const statement = `s.db.external.${String(args.engine)}.direct_query`;
@@ -1764,7 +1799,7 @@ function inputEntry(name, v, full) {
1764
1799
  function specLabel(spec) {
1765
1800
  return spec.factory ?? readableStatementName(spec.name);
1766
1801
  }
1767
- var SPEC_ENVELOPE_KEYS = ["disabled", "description", "mock", "asFilters", "output"];
1802
+ var SPEC_ENVELOPE_KEYS = ["disabled", "description", "mock", "asFilters", "uncheckedAs", "output"];
1768
1803
  function encodeFromSpec(spec, authored) {
1769
1804
  authored ??= {};
1770
1805
  const label = specLabel(spec);
@@ -1860,7 +1895,8 @@ function encodeFromSpec(spec, authored) {
1860
1895
  disabled: authored.disabled,
1861
1896
  description: authored.description,
1862
1897
  asFilters,
1863
- mock: authored.mock
1898
+ mock: authored.mock,
1899
+ uncheckedAs: authored.uncheckedAs
1864
1900
  });
1865
1901
  if (env?.settingsRegistry) stmt.settings_registry = [];
1866
1902
  if (spec.output) {
@@ -5362,7 +5398,7 @@ function checkCacheTtl(sections, bag) {
5362
5398
  const o = obj;
5363
5399
  const ttl = o?.cache?.ttl;
5364
5400
  if (o?.cache?.active !== true || Number.isInteger(ttl) && ttl > 0) continue;
5365
- bag.error(
5401
+ bag.warn(
5366
5402
  "cache.ttl-not-positive",
5367
5403
  `${key} "${String(o.name)}": \`cache.ttl\` is ${JSON.stringify(ttl) ?? String(ttl)} \u2014 the engine stores a response only for a ttl of 1 or more whole seconds, so this cache never holds anything while every call still looks it up. Set a positive ttl (\`cache: { ttl: 60 }\`), or remove the \`cache\` block for no caching.`,
5368
5404
  obj
@@ -5445,6 +5481,10 @@ function sdkSubject(payloadKey, obj) {
5445
5481
  return `${sdkKindName(payloadKey, obj)} "${verb}${name}"`;
5446
5482
  }
5447
5483
  var RAW_REQUEST_HOSTS = /* @__PURE__ */ new Set(["query", "tool", "prompt"]);
5484
+ function callableInputNames(record, section, tableColumns2) {
5485
+ const inputs = declaredInputNames(record, tableColumns2);
5486
+ return inputs !== null && inputs.size === 0 && RAW_REQUEST_HOSTS.has(section) ? null : inputs;
5487
+ }
5448
5488
  function checkOmittedCallInputs(sections, bag) {
5449
5489
  const tableColumns2 = tableColumnsOf(sections);
5450
5490
  const declared = /* @__PURE__ */ new Map();
@@ -5535,7 +5575,7 @@ function checkUnknownCallInputs(sections, bag) {
5535
5575
  const key = entry2?.name;
5536
5576
  if (typeof key !== "string" || target.inputs.has(key)) continue;
5537
5577
  const near = nearestKey(key, declared);
5538
- bag.error(
5578
+ bag.warn(
5539
5579
  "statement.unknown-input",
5540
5580
  `${owner}: \`${surface}\` of ${sdkKindName(section, {})} "${target.name}" passes \`${key}\`, which that ${sdkKindName(section, {})} does not declare \u2014 the engine drops it, so the target never sees the value.` + (near !== void 0 ? ` Did you mean \`${near}\`?` : declared.length === 0 ? ` It declares no inputs.` : ` It declares ${proseList(declared.map((d) => `\`${d}\``), "and")}.`),
5541
5581
  obj
@@ -5563,7 +5603,7 @@ function checkUnitTests(sections, bag) {
5563
5603
  if (typeof key !== "string" || declared.has(key)) continue;
5564
5604
  const known = [...declared];
5565
5605
  const near = nearestKey(key, known);
5566
- bag.error(
5606
+ bag.warn(
5567
5607
  "test.unknown-input",
5568
5608
  `${test}: \`input\` passes \`${key}\`, which the ${sdkKindName(payloadKey, record)} does not declare \u2014 the engine drops it, so the test runs without it.` + (near !== void 0 ? ` Did you mean \`${near}\`?` : known.length === 0 ? ` It declares no inputs.` : ` It declares ${proseList(known.map((k) => `\`${k}\``), "and")}.`),
5569
5609
  record
@@ -5576,10 +5616,10 @@ function checkUnitTests(sections, bag) {
5576
5616
  function checkAddonAliases(owner, attached, subject, bag) {
5577
5617
  const seen = /* @__PURE__ */ new Set();
5578
5618
  for (const spec of attached) {
5579
- const as = spec?.as;
5580
- if (typeof as !== "string" || as === "") continue;
5619
+ const { as, id } = spec ?? {};
5620
+ if (typeof as !== "string" || as === "" || id === 0 || id === "" || id === void 0 || id === null) continue;
5581
5621
  if (seen.has(as)) {
5582
- bag.error(
5622
+ bag.warn(
5583
5623
  "db.addon-duplicate-alias",
5584
5624
  `${owner}: two attached addons graft as "${as}" \u2014 the later overwrites the earlier on every row. Give each its own \`as\`.`,
5585
5625
  subject
@@ -5648,7 +5688,7 @@ function checkAddonAttachments(sections, bag) {
5648
5688
  if (declared !== null && typeof e.name === "string" && !declared.has(e.name)) {
5649
5689
  const known = [...declared];
5650
5690
  const near = nearestKey(e.name, known);
5651
- bag.error(
5691
+ bag.warn(
5652
5692
  "db.addon-unknown-input",
5653
5693
  `${owner}: the attached ${label} is passed \`${e.name}\`, which that addon does not declare \u2014 the engine drops it, so the addon runs with its input unset and grafts nothing.` + (near !== void 0 ? ` Did you mean \`${near}\`?` : known.length === 0 ? ` It declares no inputs.` : ` It declares ${proseList(known.map((k) => `\`${k}\``), "and")}.`),
5654
5694
  obj
@@ -5658,7 +5698,7 @@ function checkAddonAttachments(sections, bag) {
5658
5698
  const base = inputBase(e.value);
5659
5699
  if (columns.includes(base)) continue;
5660
5700
  const near = nearestKey(base, columns);
5661
- bag.error(
5701
+ bag.warn(
5662
5702
  "db.addon-unknown-column",
5663
5703
  `${owner}: the attached ${label} binds \`out("${e.value}")\`, but the rows it reads have no \`${base}\` column \u2014 the binding is null on every row, so the addon grafts nothing.` + (near !== void 0 ? ` Did you mean \`out("${near}")\`?` : ` The columns are ${proseList(columns.map((c2) => `\`${c2}\``), "and")}.`),
5664
5704
  obj
@@ -6488,7 +6528,8 @@ function checkRouteShadowing(sections, bag) {
6488
6528
  routes.push({
6489
6529
  name: query.name,
6490
6530
  verb,
6491
- segments: query.name.split("/").map((segment) => compileSegment(segment, narrowed))
6531
+ segments: query.name.split("/").map((segment) => compileSegment(segment, narrowed)),
6532
+ record: obj
6492
6533
  });
6493
6534
  byGroupVerb.set(key, routes);
6494
6535
  }
@@ -6507,10 +6548,9 @@ function checkRouteShadowing(sections, bag) {
6507
6548
  if (witness.length !== a.segments.length) continue;
6508
6549
  const path = `/${witness.join("/")}`;
6509
6550
  const disjoint = disjointRouteExample(a.name, b.name);
6510
- bag.error(
6511
- "query.route-shadowed",
6512
- `queries "${a.name}" and "${b.name}" (${a.verb}, same api group) can both match \`${a.verb} ${path}\`. Xano serves the FIRST route that matches in creation order \u2014 a literal route gets no precedence over a \`{param}\` one \u2014 so one of them silently answers the other's requests. Creation order is \`registerQueries\` order only on a fresh deploy; a release or \`deploy --keep-data\` keeps an existing route first, so reordering does not fix it. Make the paths disjoint: move the param route under its own segment${disjoint === void 0 ? "" : ` (\`"${disjoint}"\`)`}, rename the literal, or \u2014 when the param is numeric \u2014 declare it \`input.int({ required: true })\`: only a REQUIRED int or decimal segment is narrowed to digits; an optional one matches any text.`
6513
- );
6551
+ const message = () => `queries "${a.name}" and "${b.name}" (${a.verb}, same api group) can both match \`${a.verb} ${path}\`. Xano serves the FIRST route that matches in creation order \u2014 a literal route gets no precedence over a \`{param}\` one \u2014 so one of them silently answers the other's requests. Creation order is \`registerQueries\` order only on a fresh deploy; a release or \`deploy --keep-data\` keeps an existing route first, so reordering does not fix it. Make the paths disjoint: move the param route under its own segment${disjoint === void 0 ? "" : ` (\`"${disjoint}"\`)`}, rename the literal, or \u2014 when the param is numeric \u2014 declare it \`input.int({ required: true })\`: only a REQUIRED int or decimal segment is narrowed to digits; an optional one matches any text.`;
6552
+ if (bag.isAccepted("query.route-shadowed", message, a.record)) continue;
6553
+ bag.warn("query.route-shadowed", message(), b.record);
6514
6554
  }
6515
6555
  }
6516
6556
  }
@@ -7132,11 +7172,11 @@ function checkLoopControl(sections, bag) {
7132
7172
  if (!obj || typeof obj !== "object") continue;
7133
7173
  const name = obj.name;
7134
7174
  const owner = `${sdkKindName(payloadKey, obj)} "${typeof name === "string" ? name : "?"}"`;
7135
- walkLoopDepth(obj, 0, owner, bag);
7175
+ walkLoopDepth(obj, 0, owner, bag, obj);
7136
7176
  }
7137
7177
  }
7138
7178
  }
7139
- function walkLoopDepth(root, rootDepth, owner, bag) {
7179
+ function walkLoopDepth(root, rootDepth, owner, bag, subject) {
7140
7180
  const stack = [{ node: root, depth: rootDepth }];
7141
7181
  while (stack.length > 0) {
7142
7182
  const { node, depth } = stack.pop();
@@ -7150,9 +7190,10 @@ function walkLoopDepth(root, rootDepth, owner, bag) {
7150
7190
  const disabled = record.disabled === true;
7151
7191
  if (!disabled && statement !== void 0 && LOOP_CONTROL_STATEMENTS.has(statement) && depth === 0) {
7152
7192
  const spelling = LOOP_CONTROL_STATEMENTS.get(statement);
7153
- bag.error(
7193
+ bag.warn(
7154
7194
  "stack.loop-control-outside-loop",
7155
- `${owner} runs \`${spelling}\` outside any loop. Loop control is only defined inside the body of \`s.foreach\`, \`s.for\` or \`s.while\` \u2014 with no loop to ${LOOP_CONTROL_EFFECT.get(statement) ?? "act on"}, what it does is undefined rather than a no-op, and nothing reports it at deploy or at request time. Move it into a loop body, or delete it. (A conditional or group INSIDE a loop is still inside the loop; this fires only when no loop encloses it at all.)`
7195
+ `${owner} runs \`${spelling}\` outside any loop. Loop control is only defined inside the body of \`s.foreach\`, \`s.for\` or \`s.while\` \u2014 with no loop to ${LOOP_CONTROL_EFFECT.get(statement) ?? "act on"}, what it does is undefined rather than a no-op, and nothing reports it at deploy or at request time. Move it into a loop body, or delete it. (A conditional or group INSIDE a loop is still inside the loop; this fires only when no loop encloses it at all.)`,
7196
+ subject
7156
7197
  );
7157
7198
  }
7158
7199
  if (statement !== void 0 && LOOP_STATEMENTS.has(statement)) {
@@ -8103,6 +8144,7 @@ export {
8103
8144
  checkCacheTtl,
8104
8145
  checkUnusableColumnNames,
8105
8146
  checkReservedInputNames,
8147
+ callableInputNames,
8106
8148
  checkOmittedCallInputs,
8107
8149
  checkUnknownCallInputs,
8108
8150
  checkUnitTests,
@@ -8153,4 +8195,4 @@ export {
8153
8195
  checkToolOutputSchema,
8154
8196
  checkAgentArgPlaceholders
8155
8197
  };
8156
- //# sourceMappingURL=chunk-YGZHHAAB.js.map
8198
+ //# sourceMappingURL=chunk-OPG4DYX2.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  backendDirIn
3
- } from "./chunk-KUI7V576.js";
3
+ } from "./chunk-ERJNHEFV.js";
4
4
  import {
5
5
  shellWord
6
6
  } from "./chunk-FWD7AL6N.js";
@@ -9,11 +9,11 @@ import {
9
9
  } from "./chunk-EUUUMY7J.js";
10
10
  import {
11
11
  pointerRootFor
12
- } from "./chunk-5FBYXK5P.js";
12
+ } from "./chunk-FPBGAT5D.js";
13
13
  import {
14
14
  UsageError,
15
15
  setTypedCwd
16
- } from "./chunk-PTHVMXZI.js";
16
+ } from "./chunk-SBR2WZXG.js";
17
17
 
18
18
  // src/emit/xanosdk-project.ts
19
19
  import { existsSync, realpathSync, statSync } from "fs";
@@ -154,4 +154,4 @@ export {
154
154
  RELATIVE_PATH_ARGS,
155
155
  enterProjectRoot
156
156
  };
157
- //# sourceMappingURL=chunk-TNM7VE7N.js.map
157
+ //# sourceMappingURL=chunk-PWIXETG7.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  envExampleNames
3
- } from "./chunk-NK2633D7.js";
3
+ } from "./chunk-7KLAMYMS.js";
4
4
  import {
5
5
  WORKSPACE_ENV_EXAMPLE_BASENAME,
6
6
  renderWorkspaceEnvExample
7
- } from "./chunk-JTGBGL37.js";
7
+ } from "./chunk-IRQCV3OT.js";
8
8
  import {
9
9
  atomicWrite
10
10
  } from "./chunk-LLNZGEFK.js";
@@ -54,4 +54,4 @@ export {
54
54
  refreshEnvExample,
55
55
  bundleEnvNames
56
56
  };
57
- //# sourceMappingURL=chunk-DBMN5YLZ.js.map
57
+ //# sourceMappingURL=chunk-QEZL5MPJ.js.map
@@ -9,7 +9,7 @@ import {
9
9
  serverMessage,
10
10
  statusLabel,
11
11
  transportTarget
12
- } from "./chunk-YLDALTWZ.js";
12
+ } from "./chunk-MN2PB6WB.js";
13
13
  import {
14
14
  withArticle
15
15
  } from "./chunk-36JUQZVQ.js";
@@ -110,4 +110,4 @@ export {
110
110
  assertBranchReadSupported,
111
111
  exportWorkspaceBundle
112
112
  };
113
- //# sourceMappingURL=chunk-CJHQKJU4.js.map
113
+ //# sourceMappingURL=chunk-QV3GXQRE.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  LOCK_PAYLOAD_KEYS,
3
3
  lockKey
4
- } from "./chunk-6MR5TI5V.js";
4
+ } from "./chunk-OOGXZL7Z.js";
5
5
 
6
6
  // src/lock/landed.ts
7
7
  function destinationKey(instance, dest) {
@@ -153,4 +153,4 @@ export {
153
153
  withoutLanding,
154
154
  landedOn
155
155
  };
156
- //# sourceMappingURL=chunk-TLQE7ZN3.js.map
156
+ //# sourceMappingURL=chunk-RX3EMQGN.js.map
@@ -1,9 +1,9 @@
1
+ import {
2
+ setDiagnosticSink
3
+ } from "./chunk-GPI3OWRE.js";
1
4
  import {
2
5
  suggest
3
6
  } from "./chunk-UTI5G6OJ.js";
4
- import {
5
- setDiagnosticSink
6
- } from "./chunk-2EZ3ZJZZ.js";
7
7
  import {
8
8
  shellQuote
9
9
  } from "./chunk-5ZSO4T2G.js";
@@ -3033,4 +3033,4 @@ export {
3033
3033
  movedVerb,
3034
3034
  installCliDiagnosticSink
3035
3035
  };
3036
- //# sourceMappingURL=chunk-PTHVMXZI.js.map
3036
+ //# sourceMappingURL=chunk-SBR2WZXG.js.map
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  readDeployed
3
- } from "./chunk-LPECSJ2J.js";
3
+ } from "./chunk-HSEQYBDO.js";
4
4
  import {
5
5
  isProjectDir
6
- } from "./chunk-TNM7VE7N.js";
6
+ } from "./chunk-PWIXETG7.js";
7
7
  import {
8
8
  LookupFailedError,
9
9
  SourceError,
10
10
  resolveSource
11
- } from "./chunk-ES3TNTLS.js";
11
+ } from "./chunk-46TUUNM3.js";
12
12
  import {
13
13
  NotSignedInError
14
- } from "./chunk-PV7BGEF2.js";
14
+ } from "./chunk-CJPLBFFY.js";
15
15
  import {
16
16
  otherCredentialRefusal
17
- } from "./chunk-CHRP4RHP.js";
17
+ } from "./chunk-YTPGQV5C.js";
18
18
  import {
19
19
  getEngineRecord
20
20
  } from "./chunk-WL2DSNJV.js";
@@ -23,12 +23,12 @@ import {
23
23
  parseSlot,
24
24
  refusedKind,
25
25
  slotValueMissing
26
- } from "./chunk-STSFNCY4.js";
26
+ } from "./chunk-UDE5C2XN.js";
27
27
  import {
28
28
  getEnvironment,
29
29
  readEphemeralState,
30
30
  unreadableEphemeralState
31
- } from "./chunk-5QU2P5CA.js";
31
+ } from "./chunk-UKUIUS3E.js";
32
32
  import {
33
33
  ENV_CREDENTIAL_VARS,
34
34
  ORIGIN_READ_ONLY_BY_REFRESH,
@@ -36,10 +36,10 @@ import {
36
36
  credentialFileFlagFor,
37
37
  recordedByEnvCredential,
38
38
  typedCredentialFlags
39
- } from "./chunk-NAQDMEHV.js";
39
+ } from "./chunk-SEUCZZCP.js";
40
40
  import {
41
41
  backendDirIn
42
- } from "./chunk-KUI7V576.js";
42
+ } from "./chunk-ERJNHEFV.js";
43
43
  import {
44
44
  globalAuthFilePath,
45
45
  localAuthFilePath,
@@ -47,13 +47,13 @@ import {
47
47
  profileAddCommand,
48
48
  readCredentialFile,
49
49
  recordedCredentialPath
50
- } from "./chunk-XW6KISBB.js";
50
+ } from "./chunk-I2BGYNHD.js";
51
51
  import {
52
52
  UsageError,
53
53
  displayPath,
54
54
  pastePath,
55
55
  sourceSpellings
56
- } from "./chunk-PTHVMXZI.js";
56
+ } from "./chunk-SBR2WZXG.js";
57
57
  import {
58
58
  shellQuote
59
59
  } from "./chunk-5ZSO4T2G.js";
@@ -86,7 +86,7 @@ async function selectBackend(slot, raw, ctx) {
86
86
  }
87
87
  const decided = decide({ cwd, pointer, state, scope, engineRecorded: getEngineRecord(cwd, env) !== void 0 }, slot);
88
88
  if ("refusal" in decided) {
89
- const { reachableFirst } = await import("./env-target-76MVYUD4.js");
89
+ const { reachableFirst } = await import("./env-target-KUWQYHZ7.js");
90
90
  throw await reachableFirst(decided.refusal, scope);
91
91
  }
92
92
  refuseUnservable(slot, decided.kind);
@@ -368,4 +368,4 @@ export {
368
368
  NothingTrackedError,
369
369
  nestedBackendEntries
370
370
  };
371
- //# sourceMappingURL=chunk-SAC4DYYP.js.map
371
+ //# sourceMappingURL=chunk-SEATQLFB.js.map
@@ -3,7 +3,7 @@ import {
3
3
  recordedCredentialFile,
4
4
  recordedCredentialPath,
5
5
  resolveAuthFilePath
6
- } from "./chunk-XW6KISBB.js";
6
+ } from "./chunk-I2BGYNHD.js";
7
7
  import {
8
8
  readEnvVar
9
9
  } from "./chunk-X2NL4KUO.js";
@@ -73,4 +73,4 @@ export {
73
73
  ENV_CREDENTIAL_VARS,
74
74
  recordedByEnvCredential
75
75
  };
76
- //# sourceMappingURL=chunk-NAQDMEHV.js.map
76
+ //# sourceMappingURL=chunk-SEUCZZCP.js.map