@xano/sdk 1.0.5 → 1.0.7
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.
- package/CHANGELOG.md +35 -5
- package/README.md +56 -20
- package/dist/.build-fingerprint +1 -1
- package/dist/{agent-file-refresh-KVLR7M5Y.js → agent-file-refresh-DGGSRPJ4.js} +15 -14
- package/dist/agent-skill-command-37DFYS7Q.js +414 -0
- package/dist/{answer-shape-XGR2DGWY.js → answer-shape-RBFDCNZ7.js} +5 -5
- package/dist/{backend-dir-IE4RMUFH.js → backend-dir-KDD43X7K.js} +16 -15
- package/dist/{backend-slot-6HBWG5FN.js → backend-slot-TBOVZXDE.js} +4 -4
- package/dist/bin.js +63 -61
- package/dist/{branch-T2APKPVG.js → branch-7PIKNUD7.js} +12 -11
- package/dist/{branch-commands-HXXTCSOO.js → branch-commands-EGY7ZEZE.js} +32 -32
- package/dist/bundle.js +9 -39
- package/dist/{capture-HBXFXZEW.js → capture-GW5KNKMB.js} +3 -3
- package/dist/{chunk-3BJYQGAZ.js → chunk-26LHXLD3.js} +2 -2
- package/dist/{chunk-N6BWB35H.js → chunk-2ACWDSAQ.js} +3 -3
- package/dist/{chunk-XIABDKFQ.js → chunk-2SD4LA22.js} +2 -2
- package/dist/{chunk-K6PRKPFX.js → chunk-2XWVZRL6.js} +7 -7
- package/dist/{chunk-ES5A66IH.js → chunk-2YER2J47.js} +13 -13
- package/dist/{chunk-G57RYMKB.js → chunk-3FRGNBOC.js} +2 -2
- package/dist/{chunk-BMCZQZMI.js → chunk-46PATL23.js} +13 -9
- package/dist/{chunk-MYLPOVX6.js → chunk-47XT6WQL.js} +8 -8
- package/dist/{chunk-AWQ7BQTQ.js → chunk-4GPIOIAC.js} +6 -1
- package/dist/{chunk-7GX445AE.js → chunk-4XHAT7C5.js} +2 -2
- package/dist/{chunk-QOLOQ35F.js → chunk-567KK6XF.js} +8 -8
- package/dist/{chunk-57HMNJGB.js → chunk-5GIOCDUM.js} +893 -922
- package/dist/{chunk-OKNE3TWU.js → chunk-5KJBWIDZ.js} +83 -5
- package/dist/{chunk-SRX6B544.js → chunk-5QMJOE2K.js} +5 -5
- package/dist/{chunk-AGD7F7YI.js → chunk-5SCPRXFB.js} +4 -4
- package/dist/{chunk-SNGFEESM.js → chunk-5ZG7V2VW.js} +3 -3
- package/dist/{chunk-XJU6UAFV.js → chunk-7FIMUFBP.js} +2 -2
- package/dist/{chunk-AESE434J.js → chunk-7M6JP3FS.js} +2 -2
- package/dist/{chunk-K6CB5TKM.js → chunk-7REDHC4N.js} +2 -2
- package/dist/chunk-7VR4IO5B.js +44 -0
- package/dist/{chunk-57B56I4B.js → chunk-7XXWKTCE.js} +65 -41
- package/dist/{chunk-PL7AIAWS.js → chunk-A4R5CAY4.js} +4 -111
- package/dist/{chunk-QZTJ2556.js → chunk-AKERAUNH.js} +4 -4
- package/dist/{chunk-JZWUAEMO.js → chunk-ARWMVNDJ.js} +6 -3
- package/dist/{chunk-WYS6XVZ3.js → chunk-AVS4WPPY.js} +2 -2
- package/dist/{chunk-KUU7T4ZE.js → chunk-B2URJBC4.js} +18 -18
- package/dist/chunk-B3P25SDP.js +78 -0
- package/dist/chunk-BRANWM4U.js +853 -0
- package/dist/{chunk-BBPAXOU6.js → chunk-BSVQEKHO.js} +6 -6
- package/dist/{chunk-3WHWOKU4.js → chunk-BZ6WTG3E.js} +4 -4
- package/dist/{chunk-XNZURZ7T.js → chunk-CH23ONYG.js} +77 -6
- package/dist/{chunk-SQPIECXD.js → chunk-CJDPSCMX.js} +45 -5
- package/dist/{chunk-M7GJ6YUF.js → chunk-CNZASQPL.js} +16 -2
- package/dist/{chunk-44CWK6YC.js → chunk-CPN6WSBH.js} +4 -4
- package/dist/{chunk-L3BDO2BI.js → chunk-CT3J5JRZ.js} +7 -7
- package/dist/{chunk-3HOGFGKG.js → chunk-D3KEPRRN.js} +2 -2
- package/dist/{chunk-OGUMHW2X.js → chunk-D5OZRJ3T.js} +7 -7
- package/dist/{chunk-S5KQIFKJ.js → chunk-DG3APBUJ.js} +208 -112
- package/dist/chunk-DIWF7L33.js +995 -0
- package/dist/{chunk-WRBKLYSJ.js → chunk-DNBP4GJN.js} +4 -3
- package/dist/{chunk-LZDA6SVD.js → chunk-DXZTL7NA.js} +141 -91
- package/dist/{chunk-XMDDBEEM.js → chunk-E763QI3G.js} +2 -2
- package/dist/{chunk-3VX7VAQT.js → chunk-EF4MHLEW.js} +26 -9
- package/dist/{chunk-AGSCOISO.js → chunk-ELPQTDW6.js} +108 -100
- package/dist/{chunk-Q22BMRPF.js → chunk-EPFDY5JU.js} +2 -2
- package/dist/{chunk-7DBM6XHR.js → chunk-EU32BC5B.js} +8 -8
- package/dist/{chunk-Y76ERHLK.js → chunk-FDTET7FZ.js} +6 -6
- package/dist/{chunk-Z3SNX45M.js → chunk-FENA7K7C.js} +3 -3
- package/dist/{chunk-WOGJB2F6.js → chunk-FNLTFOUD.js} +4 -9
- package/dist/{chunk-FV55SRQU.js → chunk-FQ53GTII.js} +9 -9
- package/dist/{chunk-DEVGLLNZ.js → chunk-GHMLRFRX.js} +8 -8
- package/dist/{chunk-GMVW6ZZK.js → chunk-H2K4GFUS.js} +4 -4
- package/dist/{chunk-NUU76247.js → chunk-HTQWAQRW.js} +3 -3
- package/dist/{chunk-ROY4YAEQ.js → chunk-HU7F56VF.js} +22 -2
- package/dist/{chunk-RXCT3OCU.js → chunk-HZ6ADG3O.js} +47 -8
- package/dist/{chunk-Z2BRSQ6M.js → chunk-I6XRUU6U.js} +91 -64
- package/dist/chunk-IPNN2KRW.js +257 -0
- package/dist/{chunk-SF2B7MZK.js → chunk-IYXL5NYU.js} +259 -31
- package/dist/chunk-JI3BLXWQ.js +107 -0
- package/dist/{chunk-4DJTQ6W4.js → chunk-JIKGT7DO.js} +2 -1
- package/dist/{chunk-OVV2HXJ6.js → chunk-JOOKM7AH.js} +2 -2
- package/dist/{chunk-65SW2BA5.js → chunk-JOWY6HFL.js} +3 -3
- package/dist/{chunk-I5VEROXW.js → chunk-JX6N73H3.js} +2 -2
- package/dist/{chunk-5D6DGF3W.js → chunk-L472YIGG.js} +8 -8
- package/dist/{chunk-HLQH3AXB.js → chunk-L6HZ67P6.js} +2 -2
- package/dist/{chunk-TM5LRSBB.js → chunk-LBJA7IEM.js} +370 -45
- package/dist/chunk-LCOCRJ4K.js +116 -0
- package/dist/{chunk-DGWHAVRG.js → chunk-LJM5CIY4.js} +16 -1
- package/dist/{chunk-5RLAF6RL.js → chunk-M2C54ZBC.js} +4 -4
- package/dist/{chunk-U6DR6464.js → chunk-M3NEK3LT.js} +4 -4
- package/dist/{chunk-5XVBT6CQ.js → chunk-MBL7CXJ7.js} +2 -2
- package/dist/{chunk-5YBNXNKU.js → chunk-MFWF2NZJ.js} +12 -5
- package/dist/{chunk-TEBS7FE6.js → chunk-MYZRMSPM.js} +2 -2
- package/dist/{chunk-YSLMMR2U.js → chunk-N3YFCFCO.js} +14 -14
- package/dist/{chunk-OJPZEUPH.js → chunk-NDJAKSE7.js} +11 -8
- package/dist/{chunk-PIPIA7K7.js → chunk-NV37YGOV.js} +7 -7
- package/dist/{chunk-ZHGWR45B.js → chunk-O56DQKPL.js} +9 -9
- package/dist/{chunk-4QBGE3EO.js → chunk-ORGNLQN6.js} +6 -6
- package/dist/{chunk-NNB7VUCH.js → chunk-PEIBGH2V.js} +55 -31
- package/dist/{chunk-UJ6ZZJDD.js → chunk-PEX4QZVI.js} +2 -2
- package/dist/{chunk-LLS2WO2K.js → chunk-PV25BDCH.js} +5 -5
- package/dist/{chunk-F3557PVM.js → chunk-PY722CHR.js} +2 -2
- package/dist/{chunk-4GDEEY2U.js → chunk-QGIZLFAS.js} +4 -4
- package/dist/{chunk-YI76TURL.js → chunk-QRQ54LUI.js} +16 -14
- package/dist/{chunk-JQOX6HW4.js → chunk-RBU2YX22.js} +3 -3
- package/dist/{chunk-4NEBBKOP.js → chunk-RRMH7WMY.js} +7 -7
- package/dist/{chunk-HOOOOJJP.js → chunk-S46ODQRA.js} +2 -2
- package/dist/{chunk-37FBPMNE.js → chunk-S56YBYMN.js} +5 -2
- package/dist/{chunk-4QFBEKXI.js → chunk-SDGV76HF.js} +2 -2
- package/dist/{chunk-CV54PASI.js → chunk-SGK3PTTM.js} +312 -132
- package/dist/{chunk-S5TEJIGP.js → chunk-SKEG3V2V.js} +2 -2
- package/dist/{chunk-VZ22VUAS.js → chunk-SLGJIWCY.js} +3 -3
- package/dist/{chunk-JSEVKRVJ.js → chunk-T4LJ5UR2.js} +29 -7
- package/dist/{chunk-JXKO6JT7.js → chunk-TWVUYS63.js} +24 -24
- package/dist/{chunk-UIEFE6FU.js → chunk-U5M7T6CI.js} +7 -7
- package/dist/{chunk-Z4VN347O.js → chunk-UYFUIHH3.js} +2 -2
- package/dist/{chunk-Y6NO3DLQ.js → chunk-V7MBRUK6.js} +3 -3
- package/dist/chunk-VAGSKUWC.js +67 -0
- package/dist/{chunk-A4NNCI4O.js → chunk-VIJ5D3RC.js} +3 -3
- package/dist/{chunk-3IYVHVM6.js → chunk-VJFMUJWZ.js} +4 -4
- package/dist/{chunk-V4IBHDIY.js → chunk-VNDR2T35.js} +7 -7
- package/dist/chunk-WAVNUTMT.js +9 -0
- package/dist/{chunk-KQLACS4Q.js → chunk-WNCW2RNB.js} +4 -4
- package/dist/chunk-WUEPP5HD.js +111 -0
- package/dist/{chunk-IV446ZLJ.js → chunk-Y453TW6J.js} +2 -2
- package/dist/{local-engine-command-73NHWD6V.js → chunk-YCUDOF6Q.js} +22 -76
- package/dist/{chunk-CJ76PSJT.js → chunk-YH2JVJAO.js} +12 -12
- package/dist/{chunk-GPI3OWRE.js → chunk-YHB34BN6.js} +2 -1
- package/dist/{chunk-AMBEITWL.js → chunk-ZGLNHA7T.js} +7 -7
- package/dist/{chunk-NGAODDLX.js → chunk-ZJOAWRED.js} +8 -8
- package/dist/{chunk-TUEFTRC2.js → chunk-ZXRDD3Q2.js} +50 -27
- package/dist/cli.d.ts +40 -11
- package/dist/cli.js +60 -56
- package/dist/{codegen-command-L2OO6OTE.js → codegen-command-T7TC7PQO.js} +79 -72
- package/dist/codegen.d.ts +2 -2
- package/dist/codegen.js +2 -2
- package/dist/{commands-2E4JB3DB.js → commands-JDENTDJS.js} +3 -3
- package/dist/{completion-LPJIH5VQ.js → completion-YFD5OVJW.js} +9 -5
- package/dist/{config-QDCRKEWD.js → config-YJFUTRJW.js} +8 -8
- package/dist/{deploy-command-HJZNYCUY.js → deploy-command-OEVEE6UG.js} +65 -63
- package/dist/deploy-source-HYVZEYXV.js +83 -0
- package/dist/{dev-env-sync-GZ4QQJGV.js → dev-env-sync-EFDCJ6KU.js} +63 -61
- package/dist/{diagnostics-LSMGB4TY.js → diagnostics-OMN5Y2AH.js} +2 -2
- package/dist/{display-name-hint-AHCNH6TF.js → display-name-hint-SW3GB3V7.js} +14 -13
- package/dist/{emit-DqG6qddr.d.ts → emit-Dov_92kn.d.ts} +66 -20
- package/dist/env-example-refresh-WNSOH534.js +134 -0
- package/dist/{env-pull-command-Z4RLVEGJ.js → env-pull-command-UYEXMQ3P.js} +53 -52
- package/dist/{env-target-ZHQUS5BO.js → env-target-JBSLBKNX.js} +15 -14
- package/dist/{env-var-command-FKQ4VVQ6.js → env-var-command-BJNRAXNV.js} +51 -49
- package/dist/{ephemeral-L4KUOGEU.js → ephemeral-CEOGMIEA.js} +11 -10
- package/dist/{ephemeral-command-GRPFI3TD.js → ephemeral-command-IPSGBCS5.js} +70 -69
- package/dist/{ephemeral-state-VLYU2BXR.js → ephemeral-state-MTBASPRS.js} +13 -12
- package/dist/{generate-command-XNODJFDQ.js → generate-command-XQXODBS6.js} +96 -86
- package/dist/{gitignore-VWRSZX5F.js → gitignore-RUVCIZO4.js} +21 -20
- package/dist/{guards-OPSGB6LG.js → guards-KYEOCVHN.js} +6 -6
- package/dist/{impersonate-command-AEKIZHHK.js → impersonate-command-MA27O7S5.js} +46 -44
- package/dist/{import-PHSSFFLA.js → import-XKRFHABE.js} +5 -5
- package/dist/index.d.ts +14 -20
- package/dist/index.js +13 -13
- package/dist/init-command-6RDTCMAB.js +143 -0
- package/dist/{init-modules-SGSX7XEY.js → init-modules-DHTBOCQT.js} +10 -9
- package/dist/{init-web-6HX3YLQP.js → init-web-ELBXSXDL.js} +3 -3
- package/dist/internal.d.ts +5 -5
- package/dist/internal.js +47 -20
- package/dist/{io-TAF4WXYQ.js → io-PGTCBSIQ.js} +6 -4
- package/dist/{keep-data-merge-GUGF7MVZ.js → keep-data-merge-TDJOIAVT.js} +33 -34
- package/dist/{lambda-config-reconcile-65U6I4KU.js → lambda-config-reconcile-47X5C2E4.js} +6 -5
- package/dist/{landed-QA6PRTV2.js → landed-F7PCHGCK.js} +3 -3
- package/dist/{landing-record-FCAWLCZU.js → landing-record-TPPYFQAS.js} +26 -25
- package/dist/{live-diff-IM4W3ELT.js → live-diff-5E2BQWQ7.js} +9 -8
- package/dist/local-engine-choice-S6VHPJRU.js +81 -0
- package/dist/local-engine-command-4EZCGZ6M.js +85 -0
- package/dist/{local-engine-config-W3KB7RWM.js → local-engine-config-2EBL3QKA.js} +3 -2
- package/dist/{local-engine-deploy-Y4OAWL7K.js → local-engine-deploy-FOPNWU7X.js} +18 -16
- package/dist/local-engine-lookup-GM3E3NPP.js +43 -0
- package/dist/local-engine-mcp-bridge-QKZHUGW3.js +423 -0
- package/dist/local-engine-mcp-command-BFQVLXZC.js +181 -0
- package/dist/{local-engine-process-6YPJHKYM.js → local-engine-process-XUQPQENQ.js} +12 -9
- package/dist/{local-engine-state-OCW5YDD7.js → local-engine-state-JQPKGB65.js} +4 -3
- package/dist/{local-engine-update-check-X7TZGRFL.js → local-engine-update-check-S7UF6ZF5.js} +7 -6
- package/dist/{lock-WXXC3QHL.js → lock-HDCHD2ON.js} +4 -2
- package/dist/{lock-commands-PKDBNRSD.js → lock-commands-HJ6Y5QVS.js} +66 -64
- package/dist/{login-command-V4U4FA5G.js → login-command-JO55NZAS.js} +34 -33
- package/dist/{logout-command-TV3P545Z.js → logout-command-MPRIRSJA.js} +18 -17
- package/dist/{loop-VKHGQ6MP.js → loop-SUB6C2LK.js} +8 -9
- package/dist/{marketplace-command-LEFOAEAV.js → marketplace-command-BM6G257N.js} +90 -54
- package/dist/{marketplace-resolve-ME7O7JBJ.js → marketplace-resolve-AWH3RG57.js} +7 -6
- package/dist/{meta-client-TEEECA5W.js → meta-client-AOSWODQQ.js} +16 -15
- package/dist/{module-manifest-7YLGIRCY.js → module-manifest-GXI46PEF.js} +7 -4
- package/dist/node.d.ts +5 -5
- package/dist/node.js +68 -67
- package/dist/operation-outcome-4UKPXTNC.js +53 -0
- package/dist/{output-target-5FWX3NGZ.js → output-target-RAZ4KN5J.js} +22 -21
- package/dist/{package-manager-PRAHUSCN.js → package-manager-K762W7XT.js} +2 -2
- package/dist/{plan-disclosure-QGL5UYQR.js → plan-disclosure-JR52DWXN.js} +21 -21
- package/dist/{plugin-contributions-GNFTWDEB.js → plugin-contributions-E6XHLQWK.js} +6 -6
- package/dist/{plugin-prompt-VEQGMZ4T.js → plugin-prompt-IODX5EU6.js} +5 -5
- package/dist/{plugin-questions-BGRL23GO.js → plugin-questions-AAAJ7POP.js} +4 -4
- package/dist/plugin.d.ts +254 -10
- package/dist/{preflight-command-VKJKXRRI.js → preflight-command-7GKJBWOQ.js} +71 -70
- package/dist/{profile-command-P7A3BH26.js → profile-command-CM6J7E2M.js} +35 -34
- package/dist/{profile-pointer-HG7IXE4I.js → profile-pointer-KTYXL6FU.js} +5 -4
- package/dist/{project-dependency-Z4CKOCJI.js → project-dependency-OQ5575QQ.js} +11 -8
- package/dist/{project-sdk-JWZWGXXR.js → project-sdk-2ESHHZVL.js} +4 -4
- package/dist/promote-command-BDRPG6UU.js +147 -0
- package/dist/{prompt-SURZOUUW.js → prompt-MQPGU4ZI.js} +4 -4
- package/dist/{publish-command-HGAB3H4A.js → publish-command-IEMYZ7LF.js} +69 -67
- package/dist/pull-command-S5E2ABZ4.js +169 -0
- package/dist/{pull-superseded-TOT5S4QU.js → pull-superseded-E34BZVLH.js} +4 -4
- package/dist/{raw-where-EoWl5fqY.d.ts → raw-where-ZMLND6AG.d.ts} +20 -3
- package/dist/release-command-7F5TBKO2.js +151 -0
- package/dist/{release-ns-command-WOQE2BDQ.js → release-ns-command-EK2ZQ4CC.js} +101 -100
- package/dist/{retry-command-JRGMZZAC.js → retry-command-GL5HCMVB.js} +10 -9
- package/dist/{routes-manifest-URFMAWJE.js → routes-manifest-YR4ZIMLM.js} +15 -7
- package/dist/routes-manifest-file-LCIKPDAG.js +41 -0
- package/dist/scaffold.js +4 -4
- package/dist/secrets-IV4N5HYI.js +20 -0
- package/dist/{secrets-file-YWZWVJ52.js → secrets-file-LXREYU3M.js} +21 -20
- package/dist/{secrets-fill-command-HIHK3VH2.js → secrets-fill-command-QHZS3KWM.js} +64 -62
- package/dist/{seed-24DTEY5S.js → seed-FRKMDN2Z.js} +9 -9
- package/dist/{source-resolve-OWD3MIEO.js → source-resolve-BBHYTOXI.js} +26 -24
- package/dist/{static-host-UIR2OLPQ.js → static-host-7LC7OZR4.js} +5 -5
- package/dist/{status-command-JKTHH5QE.js → status-command-TY253MJT.js} +54 -52
- package/dist/{store-zxw2go0f.d.ts → store-Boba9OOh.d.ts} +2 -2
- package/dist/{store-5YAQS6KU.js → store-VJ3OS6VO.js} +8 -7
- package/dist/sync-baseline-DOV5AGIO.js +36 -0
- package/dist/{sync-contributions-RBB6JVOL.js → sync-contributions-63542VE4.js} +20 -12
- package/dist/sync-record-RGHK7EAL.js +43 -0
- package/dist/{table-MQFVYA4K.js → table-OAYGFGEN.js} +8 -8
- package/dist/{tables-command-5Q4BSUNO.js → tables-command-PZIVDAH3.js} +45 -43
- package/dist/{tenant-Q3LPVSSM.js → tenant-Y3II4VY3.js} +12 -11
- package/dist/{tenant-command-BFVU2PEX.js → tenant-command-G6XON7CF.js} +113 -107
- package/dist/{test-command-F4VUU4QR.js → test-command-3FZOX7O3.js} +44 -42
- package/dist/{tests-5ZSDFVIJ.js → tests-KF6N6BZ7.js} +6 -6
- package/dist/{token-TERSTNU4.js → token-DJJUW5HY.js} +14 -13
- package/dist/toolchain-hooks-7PWCFLSU.js +46 -0
- package/dist/{toolchain-modules-FD5ANV2U.js → toolchain-modules-OTNSKK52.js} +8 -5
- package/dist/toolchain-peers-KQ7TQ2AR.js +28 -0
- package/dist/tracked-backend-AJCGTO5Y.js +82 -0
- package/dist/{update-check-O4C2LCZH.js → update-check-4E5L6GAW.js} +61 -59
- package/dist/{upgrade-command-NVFWLMTA.js → upgrade-command-BXMSQN4C.js} +68 -64
- package/dist/{whoami-command-YKNTISIV.js → whoami-command-NLCCIEUM.js} +17 -16
- package/dist/{workspace-GGVGE2S5.js → workspace-PNMJOXE4.js} +5 -5
- package/dist/{workspace-binding-OS4ZOX4S.js → workspace-binding-J5GWDFRI.js} +16 -15
- package/dist/{workspace-command-GTUNVN7K.js → workspace-command-MHIIY352.js} +125 -93
- package/dist/{workspace-env-467C5KHM.js → workspace-env-LLRWCHSA.js} +17 -16
- package/dist/{workspace-export-3XTVGQVM.js → workspace-export-BIKAYHWJ.js} +5 -5
- package/dist/{writable-7SSWUQJ3.js → writable-UOTO4WWC.js} +4 -4
- package/dist/{xano-6RS5XQZE.js → xano-LCI7VWPS.js} +8 -8
- package/dist/{xanosdk-import-E3WSIYUE.js → xanosdk-import-S7A3CVBN.js} +8 -8
- package/dist/{xanosdk-project-KH5TZ2KI.js → xanosdk-project-J4VCFRHP.js} +18 -17
- package/guides/README.md +2 -2
- package/guides/cli.md +73 -4
- package/guides/codegen.md +23 -5
- package/guides/codes.md +8 -2
- package/guides/coverage.md +5 -0
- package/guides/deploying.md +80 -0
- package/guides/marketplace.md +21 -0
- package/guides/module-contract.md +80 -4
- package/guides/scaffold.md +61 -10
- package/guides/typed-frontend.md +37 -0
- package/llms/client.md +11 -1
- package/llms/filters.md +4 -0
- package/llms/kinds-core.md +1 -1
- package/llms/statements-data.md +3 -2
- package/llms/toolchain.md +12 -0
- package/llms-full.txt +34 -7
- package/llms.txt +3 -3
- package/manifest.json +63 -5
- package/package.json +5 -2
- package/skills/xano-backend/SKILL.md +119 -0
- package/dist/chunk-F6IKWAIU.js +0 -664
- package/dist/chunk-M6ZFSTIZ.js +0 -630
- package/dist/chunk-MEIJDRHU.js +0 -243
- package/dist/deploy-source-5COWTBOC.js +0 -81
- package/dist/env-example-refresh-DWQIOQYR.js +0 -127
- package/dist/init-command-TI3HCKXZ.js +0 -126
- package/dist/local-engine-choice-FPJAZSSD.js +0 -79
- package/dist/operation-outcome-GNDD35WL.js +0 -51
- package/dist/promote-command-KHTIK44I.js +0 -141
- package/dist/pull-command-EUEWBRXZ.js +0 -162
- package/dist/release-command-WOVQAMUY.js +0 -147
- package/dist/toolchain-hooks-QVUZ6HZ4.js +0 -96
- package/dist/tracked-backend-B4HTME4S.js +0 -80
|
@@ -9,40 +9,47 @@ import {
|
|
|
9
9
|
staticRetryHint,
|
|
10
10
|
unknownStaticOutcome,
|
|
11
11
|
warnStaticTeardown
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RRMH7WMY.js";
|
|
13
|
+
import {
|
|
14
|
+
objectDigests,
|
|
15
|
+
syncDigests
|
|
16
|
+
} from "./chunk-JI3BLXWQ.js";
|
|
17
|
+
import {
|
|
18
|
+
archiveSeedContent
|
|
19
|
+
} from "./chunk-NV37YGOV.js";
|
|
13
20
|
import {
|
|
14
21
|
shownLabel
|
|
15
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-N3YFCFCO.js";
|
|
16
23
|
import {
|
|
17
24
|
confirm,
|
|
18
25
|
needsConfirmation
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import {
|
|
21
|
-
landedRecordFor,
|
|
22
|
-
landingLockPath,
|
|
23
|
-
recordForeignLanding,
|
|
24
|
-
recordLanding
|
|
25
|
-
} from "./chunk-ES5A66IH.js";
|
|
26
|
+
} from "./chunk-7M6JP3FS.js";
|
|
26
27
|
import {
|
|
27
28
|
assertStorageModesKept,
|
|
28
29
|
discloseCanonicalMoves,
|
|
29
30
|
movesClause,
|
|
30
31
|
storageChangesPayload
|
|
31
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-BSVQEKHO.js";
|
|
32
33
|
import {
|
|
33
34
|
listTables,
|
|
34
35
|
tableRowCounter,
|
|
35
36
|
tableRowIds
|
|
36
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-H2K4GFUS.js";
|
|
38
|
+
import {
|
|
39
|
+
landedRecordFor,
|
|
40
|
+
landingLockPath,
|
|
41
|
+
recordForeignLanding,
|
|
42
|
+
recordLanding
|
|
43
|
+
} from "./chunk-2YER2J47.js";
|
|
44
|
+
import {
|
|
45
|
+
recordSync
|
|
46
|
+
} from "./chunk-VAGSKUWC.js";
|
|
37
47
|
import {
|
|
38
48
|
XANOSDK_IMPORT_CONFLICT_CODE,
|
|
39
49
|
XANOSDK_IMPORT_UNIQUENESS_CODE,
|
|
40
50
|
XanoSdkImportRefusal,
|
|
41
51
|
xanosdkImport
|
|
42
|
-
} from "./chunk-
|
|
43
|
-
import {
|
|
44
|
-
archiveSeedContent
|
|
45
|
-
} from "./chunk-PIPIA7K7.js";
|
|
52
|
+
} from "./chunk-567KK6XF.js";
|
|
46
53
|
import {
|
|
47
54
|
encodeWorkspaceArchive
|
|
48
55
|
} from "./chunk-3DRXWLJ5.js";
|
|
@@ -55,7 +62,7 @@ import {
|
|
|
55
62
|
listBranchListing,
|
|
56
63
|
liveBranchLabel,
|
|
57
64
|
setLiveBranch
|
|
58
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-M2C54ZBC.js";
|
|
59
66
|
import {
|
|
60
67
|
compareToLive,
|
|
61
68
|
envValuesOf,
|
|
@@ -66,50 +73,54 @@ import {
|
|
|
66
73
|
sharedSchemaChanges,
|
|
67
74
|
storedColumnsAfter,
|
|
68
75
|
uniqueIndexLabels
|
|
69
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-IYXL5NYU.js";
|
|
70
77
|
import {
|
|
71
78
|
assertBundleFile,
|
|
72
79
|
assertBundleInput,
|
|
73
80
|
loadBundleText,
|
|
74
81
|
resolveLockPath
|
|
75
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-DG3APBUJ.js";
|
|
76
83
|
import {
|
|
77
84
|
LookupFailedError,
|
|
78
85
|
isUnansweredLookup,
|
|
79
86
|
unansweredCause
|
|
80
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-TWVUYS63.js";
|
|
81
88
|
import {
|
|
82
89
|
isSignatureRefusal
|
|
83
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-MBL7CXJ7.js";
|
|
84
91
|
import {
|
|
85
92
|
getAccessToken
|
|
86
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-YH2JVJAO.js";
|
|
94
|
+
import {
|
|
95
|
+
readLockFile
|
|
96
|
+
} from "./chunk-CJDPSCMX.js";
|
|
87
97
|
import {
|
|
88
98
|
ephemeralLandedOn
|
|
89
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-ORGNLQN6.js";
|
|
90
100
|
import {
|
|
91
101
|
pipedYes,
|
|
92
102
|
retryCommand,
|
|
93
103
|
withheldNote
|
|
94
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-UYFUIHH3.js";
|
|
95
105
|
import {
|
|
96
106
|
contextFlags
|
|
97
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-3FRGNBOC.js";
|
|
98
108
|
import {
|
|
99
109
|
backendDirIn
|
|
100
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-5SCPRXFB.js";
|
|
101
111
|
import {
|
|
102
112
|
shellWord
|
|
103
113
|
} from "./chunk-FWD7AL6N.js";
|
|
114
|
+
import {
|
|
115
|
+
TransportError,
|
|
116
|
+
isTimeoutError
|
|
117
|
+
} from "./chunk-L6HZ67P6.js";
|
|
104
118
|
import {
|
|
105
119
|
describeWrite
|
|
106
120
|
} from "./chunk-4KHEMC32.js";
|
|
107
121
|
import {
|
|
108
122
|
seedRowsByTableGuid
|
|
109
|
-
} from "./chunk-
|
|
110
|
-
import {
|
|
111
|
-
readLockFile
|
|
112
|
-
} from "./chunk-SQPIECXD.js";
|
|
123
|
+
} from "./chunk-FDTET7FZ.js";
|
|
113
124
|
import {
|
|
114
125
|
destinationKey,
|
|
115
126
|
groupNames,
|
|
@@ -118,11 +129,7 @@ import {
|
|
|
118
129
|
landedKeyForRow,
|
|
119
130
|
storedColumnsOf,
|
|
120
131
|
withStoredColumns
|
|
121
|
-
} from "./chunk-
|
|
122
|
-
import {
|
|
123
|
-
TransportError,
|
|
124
|
-
isTimeoutError
|
|
125
|
-
} from "./chunk-HLQH3AXB.js";
|
|
132
|
+
} from "./chunk-MFWF2NZJ.js";
|
|
126
133
|
import {
|
|
127
134
|
CliError,
|
|
128
135
|
EXIT_OUTCOME_UNKNOWN,
|
|
@@ -142,11 +149,11 @@ import {
|
|
|
142
149
|
warn,
|
|
143
150
|
writeJson,
|
|
144
151
|
writeTargetPayload
|
|
145
|
-
} from "./chunk-
|
|
152
|
+
} from "./chunk-CH23ONYG.js";
|
|
146
153
|
import {
|
|
147
154
|
calcSignatureJson,
|
|
148
155
|
signatureHolds
|
|
149
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-7FIMUFBP.js";
|
|
150
157
|
import {
|
|
151
158
|
safeNames
|
|
152
159
|
} from "./chunk-GSGDWJB5.js";
|
|
@@ -157,7 +164,7 @@ import {
|
|
|
157
164
|
lockKey,
|
|
158
165
|
lockNameForObject,
|
|
159
166
|
sdkKindName2 as sdkKindName
|
|
160
|
-
} from "./chunk-
|
|
167
|
+
} from "./chunk-5KJBWIDZ.js";
|
|
161
168
|
import {
|
|
162
169
|
shellQuote
|
|
163
170
|
} from "./chunk-5ZSO4T2G.js";
|
|
@@ -630,7 +637,7 @@ function isTransientReadFailure(err) {
|
|
|
630
637
|
return isUnansweredLookup(err);
|
|
631
638
|
}
|
|
632
639
|
async function readLive(auth, dest, branch) {
|
|
633
|
-
const { exportWorkspaceBundle } = await import("./workspace-export-
|
|
640
|
+
const { exportWorkspaceBundle } = await import("./workspace-export-BIKAYHWJ.js");
|
|
634
641
|
let failure;
|
|
635
642
|
for (let attempt = 0; attempt <= LIVE_READ_RETRY_PAUSES_MS.length; attempt++) {
|
|
636
643
|
try {
|
|
@@ -737,7 +744,7 @@ function targetIsEmpty(live) {
|
|
|
737
744
|
async function convergedWithLive(live, req, outgoingBundle, pinned) {
|
|
738
745
|
if (live === void 0 || req.mode !== "merge") return false;
|
|
739
746
|
if (req.records === true || req.truncate === true) return false;
|
|
740
|
-
const { compareToLive: compareToLive2 } = await import("./live-diff-
|
|
747
|
+
const { compareToLive: compareToLive2 } = await import("./live-diff-5E2BQWQ7.js");
|
|
741
748
|
let result;
|
|
742
749
|
try {
|
|
743
750
|
result = compareToLive2(
|
|
@@ -758,7 +765,7 @@ async function convergedWithLive(live, req, outgoingBundle, pinned) {
|
|
|
758
765
|
async function unchangedWithLive(live, req, outgoingBundle, pinned) {
|
|
759
766
|
if (live === void 0 || req.mode !== "merge") return void 0;
|
|
760
767
|
if (req.records === true || req.truncate === true) return void 0;
|
|
761
|
-
const { compareToLive: compareToLive2, declaredLabels, payloadOf: payloadOf2, SETTINGS_LABEL } = await import("./live-diff-
|
|
768
|
+
const { compareToLive: compareToLive2, declaredLabels, payloadOf: payloadOf2, SETTINGS_LABEL } = await import("./live-diff-5E2BQWQ7.js");
|
|
762
769
|
try {
|
|
763
770
|
const outgoing = JSON.parse(outgoingBundle);
|
|
764
771
|
const result = compareToLive2(outgoing, live, new Set(pinned.map((p) => `${p.payloadKey}:${p.name}`)), {
|
|
@@ -786,7 +793,7 @@ function markUnchanged(presented, unchanged, noun) {
|
|
|
786
793
|
}
|
|
787
794
|
var REPLACE_DROPS = "which deletes every table's rows there (only seed rows come back)";
|
|
788
795
|
async function replaceCommandHint(args) {
|
|
789
|
-
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./deploy-command-
|
|
796
|
+
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./deploy-command-OEVEE6UG.js");
|
|
790
797
|
const valued = /* @__PURE__ */ new Set(["--branch", "--backup-branch", "--expect-live"]);
|
|
791
798
|
const dropped = /* @__PURE__ */ new Set(["--prune", "--reset-data", "--seed", "--set-live", "--dry-run", "--replace", "--yes", "-y"]);
|
|
792
799
|
const argv = [];
|
|
@@ -817,7 +824,7 @@ function landingTableFields(losses) {
|
|
|
817
824
|
};
|
|
818
825
|
}
|
|
819
826
|
async function warnAboutLiveLosses(live, req, outgoingBundle, setWhere = "workspace", fromBundle = false, replaceHint = "`xanosdk deploy <source> --to <destination> --replace`.", noun = "workspace", failure, stored) {
|
|
820
|
-
const { NO_TABLE_EFFECTS, tableEffectsOf, discloseTableEffects, tableEffectFields, alteringChanges, droppedAndAdded } = await import("./plan-disclosure-
|
|
827
|
+
const { NO_TABLE_EFFECTS, tableEffectsOf, discloseTableEffects, tableEffectFields, alteringChanges, droppedAndAdded } = await import("./plan-disclosure-JR52DWXN.js");
|
|
821
828
|
const none = {
|
|
822
829
|
...tableEffectFields(NO_TABLE_EFFECTS),
|
|
823
830
|
renamedTables: [],
|
|
@@ -836,7 +843,7 @@ async function warnAboutLiveLosses(live, req, outgoingBundle, setWhere = "worksp
|
|
|
836
843
|
blank();
|
|
837
844
|
return none;
|
|
838
845
|
}
|
|
839
|
-
const { diffAgainstLive, tableAdditions } = await import("./live-diff-
|
|
846
|
+
const { diffAgainstLive, tableAdditions } = await import("./live-diff-5E2BQWQ7.js");
|
|
840
847
|
let diff;
|
|
841
848
|
let additions;
|
|
842
849
|
try {
|
|
@@ -1551,7 +1558,7 @@ async function unrecordedTableRenames(args, bundle, live, plan, classified) {
|
|
|
1551
1558
|
const held = guidsOf(live);
|
|
1552
1559
|
const codePinned = codePinnedTables(outgoingDoc, lock, classified);
|
|
1553
1560
|
const { orphanFixUps } = await import("./cli.js");
|
|
1554
|
-
const { setGuidRemedy, clearReplacedCommand } = await import("./keep-data-merge-
|
|
1561
|
+
const { setGuidRemedy, clearReplacedCommand } = await import("./keep-data-merge-TDJOIAVT.js");
|
|
1555
1562
|
const run = (line) => (line ?? "").replace(/^(renamed|deleted)\? run: /, "");
|
|
1556
1563
|
const out = [];
|
|
1557
1564
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -1595,7 +1602,7 @@ async function unrecordedTableRenames(args, bundle, live, plan, classified) {
|
|
|
1595
1602
|
return out;
|
|
1596
1603
|
}
|
|
1597
1604
|
async function pendingRenameRefusal(frame, pending, prune, branch) {
|
|
1598
|
-
const { pendingRenameLines, pendingRenameFollowUp, pendingRenameDetail, sameNameRepin } = await import("./keep-data-merge-
|
|
1605
|
+
const { pendingRenameLines, pendingRenameFollowUp, pendingRenameDetail, sameNameRepin } = await import("./keep-data-merge-TDJOIAVT.js");
|
|
1599
1606
|
const one = pending.length === 1;
|
|
1600
1607
|
const lines = pending.flatMap(
|
|
1601
1608
|
(p) => pendingRenameLines(
|
|
@@ -2051,7 +2058,7 @@ async function runReleaseCommand(args, dest, opts = {}) {
|
|
|
2051
2058
|
assertBundleFile(args, { command: "deploy" });
|
|
2052
2059
|
const auth = opts.auth ?? await getAccessToken(args);
|
|
2053
2060
|
const withSeed = req.mode === "replace" || req.records === true;
|
|
2054
|
-
const { discoverToolchainPlugins } = await import("./toolchain-modules-
|
|
2061
|
+
const { discoverToolchainPlugins } = await import("./toolchain-modules-OTNSKK52.js");
|
|
2055
2062
|
const toolchain = await discoverToolchainPlugins(process.cwd(), { frozen: args.frozenLock === true });
|
|
2056
2063
|
const loaded = await loadBundleText(
|
|
2057
2064
|
args.dryRun ? { ...args, lockReadOnly: true } : args,
|
|
@@ -2077,15 +2084,15 @@ async function runReleaseCommand(args, dest, opts = {}) {
|
|
|
2077
2084
|
});
|
|
2078
2085
|
};
|
|
2079
2086
|
if (!args.dryRun && args.file !== void 0) {
|
|
2080
|
-
const { ignoreBackendSecretFilesRead } = await import("./deploy-command-
|
|
2087
|
+
const { ignoreBackendSecretFilesRead } = await import("./deploy-command-OEVEE6UG.js");
|
|
2081
2088
|
await ignoreBackendSecretFilesRead(args);
|
|
2082
2089
|
}
|
|
2083
2090
|
if (args.static !== void 0) {
|
|
2084
|
-
const { assertNoSeedLeaks } = await import("./deploy-command-
|
|
2091
|
+
const { assertNoSeedLeaks } = await import("./deploy-command-OEVEE6UG.js");
|
|
2085
2092
|
await assertNoSeedLeaks(args.static, nonPublicSeedValues);
|
|
2086
2093
|
}
|
|
2087
2094
|
{
|
|
2088
|
-
const { runBundleHooks } = await import("./toolchain-hooks-
|
|
2095
|
+
const { runBundleHooks } = await import("./toolchain-hooks-7PWCFLSU.js");
|
|
2089
2096
|
const { readVersion } = await import("./cli.js");
|
|
2090
2097
|
await runBundleHooks(
|
|
2091
2098
|
toolchain.loaded,
|
|
@@ -2191,8 +2198,8 @@ async function runReleaseCommand(args, dest, opts = {}) {
|
|
|
2191
2198
|
pinned: pinned.map((p) => p.guid).filter((g) => g !== void 0)
|
|
2192
2199
|
}).catch(async (err) => {
|
|
2193
2200
|
if (err instanceof XanoSdkImportRefusal && err.retryable) {
|
|
2194
|
-
const { importInProgressError } = await import("./keep-data-merge-
|
|
2195
|
-
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./retry-command-
|
|
2201
|
+
const { importInProgressError } = await import("./keep-data-merge-TDJOIAVT.js");
|
|
2202
|
+
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./retry-command-GL5HCMVB.js");
|
|
2196
2203
|
const retry = retryCommand2(args);
|
|
2197
2204
|
throw importInProgressError(
|
|
2198
2205
|
describeWriteTarget({ base: destBase, workspaceId, label: destShownLabel }),
|
|
@@ -2312,10 +2319,10 @@ async function runReleaseCommand(args, dest, opts = {}) {
|
|
|
2312
2319
|
}
|
|
2313
2320
|
const dryRunUpToDate = req.branch === void 0 && (plan.operations.length === 0 || converged);
|
|
2314
2321
|
if (req.mode === "merge" && destIsTenant && live !== void 0 && !dryRunUpToDate) {
|
|
2315
|
-
const { liveTableTriggers, tableTriggerMergeError } = await import("./keep-data-merge-
|
|
2322
|
+
const { liveTableTriggers, tableTriggerMergeError } = await import("./keep-data-merge-TDJOIAVT.js");
|
|
2316
2323
|
const triggers = liveTableTriggers(live);
|
|
2317
2324
|
if (triggers.length > 0) {
|
|
2318
|
-
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./retry-command-
|
|
2325
|
+
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./retry-command-GL5HCMVB.js");
|
|
2319
2326
|
const replace = retryCommand2(args, { add: ["--replace"], drop: ["--prune", "--yes", "-y"] });
|
|
2320
2327
|
throw tableTriggerMergeError(destNoun, triggers, {
|
|
2321
2328
|
command: replace.command,
|
|
@@ -2324,7 +2331,7 @@ async function runReleaseCommand(args, dest, opts = {}) {
|
|
|
2324
2331
|
}
|
|
2325
2332
|
}
|
|
2326
2333
|
if (req.mode === "merge" && live !== void 0 && !dryRunUpToDate && losses.storageChanges.length > 0) {
|
|
2327
|
-
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./retry-command-
|
|
2334
|
+
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./retry-command-GL5HCMVB.js");
|
|
2328
2335
|
const replace = retryCommand2(args, { add: ["--replace"], drop: ["--prune", "--yes", "-y"] });
|
|
2329
2336
|
await assertStorageModesKept(losses.storageChanges, tableRowCounter(auth, { workspaceId, base: destBase }), {
|
|
2330
2337
|
target: destNoun,
|
|
@@ -2356,6 +2363,7 @@ async function runReleaseCommand(args, dest, opts = {}) {
|
|
|
2356
2363
|
// Always present; a dry run records nothing — what it would land is
|
|
2357
2364
|
// not landed, and the record is what a prune deletes by.
|
|
2358
2365
|
landingRecord: null,
|
|
2366
|
+
syncBaseline: null,
|
|
2359
2367
|
workspaceId,
|
|
2360
2368
|
destination: destinationPayload(resolvedDest, dest, auth),
|
|
2361
2369
|
// The verdict the real run would reach, said up front: a wrapper
|
|
@@ -2407,7 +2415,7 @@ async function runReleaseCommand(args, dest, opts = {}) {
|
|
|
2407
2415
|
assertLiveWorkspaceWasRead(live, destNoun, scopeBranch, liveRead.failure, liveKind);
|
|
2408
2416
|
reportPlannedCanonicalMoves(canonicalMoves, "will", movesWhen);
|
|
2409
2417
|
if (req.branch !== void 0 && args.setLive && !args.yes && process.stdin.isTTY !== true) {
|
|
2410
|
-
const { yesRerun } = await import("./retry-command-
|
|
2418
|
+
const { yesRerun } = await import("./retry-command-GL5HCMVB.js");
|
|
2411
2419
|
const { rerun, note } = yesRerun(args, "deploy");
|
|
2412
2420
|
throw needsConfirmation(
|
|
2413
2421
|
`Make "${req.branch}" the live branch?${movesClause(canonicalMoves)} (or drop --set-live to stage it)`,
|
|
@@ -2444,9 +2452,10 @@ async function runReleaseCommand(args, dest, opts = {}) {
|
|
|
2444
2452
|
workspaceRename: losses.workspaceRename ?? null,
|
|
2445
2453
|
workspaceSettingsNotApplied: withheldSettings,
|
|
2446
2454
|
landingRecord: null,
|
|
2455
|
+
syncBaseline: null,
|
|
2447
2456
|
...seeded.length > 0 ? { seedRows: seeded } : {}
|
|
2448
2457
|
});
|
|
2449
|
-
const { yesRerun } = await import("./retry-command-
|
|
2458
|
+
const { yesRerun } = await import("./retry-command-GL5HCMVB.js");
|
|
2450
2459
|
const { rerun, note } = yesRerun(args, "deploy");
|
|
2451
2460
|
const ok = await confirm(`Apply this plan to ${destNoun}?${seedOverwriteClause(seeded)}${movesClause(canonicalMoves, movesWhen === void 0 ? "It" : "Once live, it")}`, {
|
|
2452
2461
|
flag: "--yes",
|
|
@@ -2493,7 +2502,7 @@ Retry, or drop \`--backup-branch\` to deploy without one.`,
|
|
|
2493
2502
|
);
|
|
2494
2503
|
} catch (err) {
|
|
2495
2504
|
if (err instanceof XanoSdkImportRefusal) {
|
|
2496
|
-
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./retry-command-
|
|
2505
|
+
const { retryCommand: retryCommand2, withheldNote: withheldNote2 } = await import("./retry-command-GL5HCMVB.js");
|
|
2497
2506
|
const retry = retryCommand2(args);
|
|
2498
2507
|
reportApplyRefusal(
|
|
2499
2508
|
err,
|
|
@@ -2584,8 +2593,10 @@ Retry, or drop \`--backup-branch\` to deploy without one.`,
|
|
|
2584
2593
|
priorStored,
|
|
2585
2594
|
req.mode === "replace" ? "rebuild" : "merge"
|
|
2586
2595
|
);
|
|
2587
|
-
const
|
|
2588
|
-
|
|
2596
|
+
const sentForeign = args.file === void 0 && args.lockPath === void 0;
|
|
2597
|
+
const landingLock = sentForeign ? landingLockPath(args) : landingLockPath(args, { entryFile: args.file, fromProject: false });
|
|
2598
|
+
const landingRecord = landingDest === void 0 ? null : sentForeign ? recordForeignLanding({
|
|
2599
|
+
lockPath: landingLock,
|
|
2589
2600
|
instance: auth.instance,
|
|
2590
2601
|
dest: landingDest,
|
|
2591
2602
|
bundle: parsedOrUndefined(bundle),
|
|
@@ -2593,7 +2604,7 @@ Retry, or drop \`--backup-branch\` to deploy without one.`,
|
|
|
2593
2604
|
removed: pruned,
|
|
2594
2605
|
...storedAfter !== void 0 ? { stored: storedAfter } : {}
|
|
2595
2606
|
}) : recordLanding({
|
|
2596
|
-
lockPath:
|
|
2607
|
+
lockPath: landingLock,
|
|
2597
2608
|
instance: auth.instance,
|
|
2598
2609
|
dest: landingDest,
|
|
2599
2610
|
update: {
|
|
@@ -2602,6 +2613,21 @@ Retry, or drop \`--backup-branch\` to deploy without one.`,
|
|
|
2602
2613
|
removed: pruned
|
|
2603
2614
|
}
|
|
2604
2615
|
});
|
|
2616
|
+
const syncBaseline = landingDest?.kind !== "workspace" ? null : await recordDeploySync();
|
|
2617
|
+
async function recordDeploySync() {
|
|
2618
|
+
if (landingDest?.kind !== "workspace" || landingLock === void 0 || !existsSync(landingLock)) return null;
|
|
2619
|
+
const sent = parsedOrUndefined(bundle);
|
|
2620
|
+
const branch = req.mode === "replace" ? DEFAULT_BRANCH_LABEL : applyResponse?.branch ?? preview.branch;
|
|
2621
|
+
const stored = upToDate ? live : (await readLive(auth, resolvedDest, req.branch !== void 0 ? branch : void 0)).live;
|
|
2622
|
+
const digests = stored !== void 0 ? syncDigests({ held: [stored], heldLabels: new Set(Object.keys(objectDigests(sent, "carried"))) }) : syncDigests({ held: [sent], others: req.mode === "replace" ? [] : [live] });
|
|
2623
|
+
return recordSync({
|
|
2624
|
+
lockPath: landingLock,
|
|
2625
|
+
target: { instance: auth.instance, workspaceId: landingDest.workspaceId, branch },
|
|
2626
|
+
digests,
|
|
2627
|
+
by: "deploy",
|
|
2628
|
+
complete: stored !== void 0 || req.mode === "replace" || live !== void 0
|
|
2629
|
+
});
|
|
2630
|
+
}
|
|
2605
2631
|
const servedDifferences = canonicalDifferences((applyResponse ?? preview).canonicals);
|
|
2606
2632
|
reportCanonicalDifferences(servedDifferences, planContext);
|
|
2607
2633
|
if (!args.dryRun) opts.afterLanding?.(parsedOrUndefined(bundle));
|
|
@@ -2615,6 +2641,7 @@ Retry, or drop \`--backup-branch\` to deploy without one.`,
|
|
|
2615
2641
|
dryRun: false,
|
|
2616
2642
|
declined: false,
|
|
2617
2643
|
landingRecord,
|
|
2644
|
+
syncBaseline,
|
|
2618
2645
|
workspaceId,
|
|
2619
2646
|
plan: planForOutput(plan, presented, destIsTenant, converged),
|
|
2620
2647
|
conflicts: conflictsForOutput((applyResponse ?? preview).conflicts, planContext),
|
|
@@ -2672,7 +2699,7 @@ Retry, or drop \`--backup-branch\` to deploy without one.`,
|
|
|
2672
2699
|
if (isMachineOutput(args)) writeJson(summary);
|
|
2673
2700
|
assertStaticMatchesServedUrls(servedDifferences, planContext);
|
|
2674
2701
|
}
|
|
2675
|
-
const { buildStaticEnv, deployStaticTo } = await import("./deploy-command-
|
|
2702
|
+
const { buildStaticEnv, deployStaticTo } = await import("./deploy-command-OEVEE6UG.js");
|
|
2676
2703
|
const env = buildStaticEnv(destBase, args.staticEnv);
|
|
2677
2704
|
const explicit = Object.keys(args.staticEnv).length > 0;
|
|
2678
2705
|
const to = dest?.kind === "tenant" ? `${dest.type === "ephemeral" ? "ephemeral" : "tenant"}:${dest.name ?? ""}` : "workspace";
|
|
@@ -2724,14 +2751,14 @@ function setLiveRollback(previous, args) {
|
|
|
2724
2751
|
async function assertReleaseIdentitiesFree(args, auth, opts) {
|
|
2725
2752
|
const tenant = opts.tenant;
|
|
2726
2753
|
const target = tenant === void 0 ? { baseUrl: auth.instance, workspaceId: auth.workspaceId } : { baseUrl: tenant.base, workspaceId: tenant.workspaceId };
|
|
2727
|
-
const { detectXanoSdkImportRoute } = await import("./xanosdk-import-
|
|
2754
|
+
const { detectXanoSdkImportRoute } = await import("./xanosdk-import-S7A3CVBN.js");
|
|
2728
2755
|
let capable;
|
|
2729
2756
|
try {
|
|
2730
2757
|
capable = await detectXanoSdkImportRoute(auth, target);
|
|
2731
2758
|
} catch (err) {
|
|
2732
2759
|
if (err?.status === 501) capable = false;
|
|
2733
2760
|
else {
|
|
2734
|
-
const { unreachableProbeError } = await import("./keep-data-merge-
|
|
2761
|
+
const { unreachableProbeError } = await import("./keep-data-merge-TDJOIAVT.js");
|
|
2735
2762
|
const retry = retryCommand(args, {
|
|
2736
2763
|
add: pipedYes(args) === "" ? [] : ["--yes"],
|
|
2737
2764
|
command: [opts.verb, ...args.positionals.map(shellWord)].join(" ")
|
|
@@ -2820,4 +2847,4 @@ export {
|
|
|
2820
2847
|
setLiveRollback,
|
|
2821
2848
|
assertReleaseIdentitiesFree
|
|
2822
2849
|
};
|
|
2823
|
-
//# sourceMappingURL=chunk-
|
|
2850
|
+
//# sourceMappingURL=chunk-I6XRUU6U.js.map
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MANIFEST_HEADER,
|
|
3
|
+
ROUTES_MANIFEST_BASENAME,
|
|
4
|
+
RouteManifestError
|
|
5
|
+
} from "./chunk-LBJA7IEM.js";
|
|
6
|
+
import {
|
|
7
|
+
byCodeUnit
|
|
8
|
+
} from "./chunk-WAVNUTMT.js";
|
|
9
|
+
import {
|
|
10
|
+
blockPackages,
|
|
11
|
+
composeBlock,
|
|
12
|
+
findBlock
|
|
13
|
+
} from "./chunk-LJM5CIY4.js";
|
|
14
|
+
import {
|
|
15
|
+
UsageError,
|
|
16
|
+
detail,
|
|
17
|
+
info,
|
|
18
|
+
warn
|
|
19
|
+
} from "./chunk-CH23ONYG.js";
|
|
20
|
+
|
|
21
|
+
// src/emit/routes-manifest-modules.ts
|
|
22
|
+
var MODULE_DIALECT = {
|
|
23
|
+
begin: (pkg) => `// xanosdk:begin ${pkg}`,
|
|
24
|
+
end: (pkg) => `// xanosdk:end ${pkg}`,
|
|
25
|
+
stamp: (version) => `// xanosdk:version ${version} - generated; edits inside this block are overwritten`,
|
|
26
|
+
parseStamp: (block) => /^\/\/ xanosdk:version (\S+)/m.exec(block)?.[1] ?? null
|
|
27
|
+
};
|
|
28
|
+
var IMPORTS_LINE = "// xanosdk:imports ";
|
|
29
|
+
var moduleSpec = (pkg) => ({ dialect: MODULE_DIALECT, pkg, file: ROUTES_MANIFEST_BASENAME });
|
|
30
|
+
var BARE_SPECIFIER = /^(?:@[a-z0-9~][\w.~-]*\/)?[a-z0-9~][\w.~-]*(?:\/[\w.~@-]+)*$/i;
|
|
31
|
+
var IDENTIFIER = /^[A-Za-z_$][\w$]*$/;
|
|
32
|
+
var STATIC_IMPORT = /^import(?:\s+type)?(?:\s*["'{*]|\s+[A-Za-z_$][\w$]*\s*(?:,|from\b))/;
|
|
33
|
+
var RE_EXPORT = /^[ \t]*export\s+(?:type\s+)?(?:\*(?:\s+as\s+[A-Za-z_$][\w$]*)?|\{[^}]*\})\s*from\s*["']/m;
|
|
34
|
+
var SDK_LOAD = /\b(?:import|require)\s*\(\s*["'`]@xano\/sdk(?:\/|["'`])/;
|
|
35
|
+
function checkModuleSection(pkg, section) {
|
|
36
|
+
const refuse = (why) => {
|
|
37
|
+
throw new RouteManifestError(`${pkg}: its routes.gen.ts section ${why}`);
|
|
38
|
+
};
|
|
39
|
+
if (section === null || typeof section !== "object") return refuse("is not an object with a `source` string.");
|
|
40
|
+
if (typeof section.then === "function") {
|
|
41
|
+
return refuse("is a Promise. `routesManifest` must be synchronous: every writer of the file has to produce the same bytes, and the decode paths write it synchronously.");
|
|
42
|
+
}
|
|
43
|
+
const { source, imports } = section;
|
|
44
|
+
if (typeof source !== "string") return refuse("has no `source` string.");
|
|
45
|
+
const lines = source.split(/\r?\n/);
|
|
46
|
+
const trimmed = lines.map((line) => line.trim());
|
|
47
|
+
const markers = [MODULE_DIALECT.begin("").trim(), MODULE_DIALECT.end("").trim()];
|
|
48
|
+
const forged = trimmed.find((line) => markers.some((marker) => line.startsWith(marker)));
|
|
49
|
+
if (forged !== void 0) {
|
|
50
|
+
return refuse(`has a line that spells a block marker (${forged}); the file's blocks are found by counting them.`);
|
|
51
|
+
}
|
|
52
|
+
const first = lines.find((line) => line.trim() !== "");
|
|
53
|
+
if (first?.startsWith(IMPORTS_LINE)) {
|
|
54
|
+
return refuse(`starts with a line that spells the block's imports line (${first.trim()}); declare imports in \`imports\`.`);
|
|
55
|
+
}
|
|
56
|
+
const written = trimmed.find((line) => STATIC_IMPORT.test(line) || SDK_LOAD.test(line)) ?? RE_EXPORT.exec(source)?.[0].trim().split(/\r?\n/)[0];
|
|
57
|
+
if (written !== void 0) {
|
|
58
|
+
return refuse(`writes an import in its source (${written}); declare imports in \`imports\`.`);
|
|
59
|
+
}
|
|
60
|
+
if (imports !== void 0 && !Array.isArray(imports)) return refuse("has `imports` that is not an array.");
|
|
61
|
+
const merged = /* @__PURE__ */ new Map();
|
|
62
|
+
for (const entry of imports ?? []) {
|
|
63
|
+
const { from, names } = entry ?? {};
|
|
64
|
+
if (typeof from !== "string") return refuse("declares an import with no `from` string.");
|
|
65
|
+
if (from === "@xano/sdk" || from.startsWith("@xano/sdk/")) {
|
|
66
|
+
return refuse(
|
|
67
|
+
`imports from ${JSON.stringify(from)}. The manifest exists so a frontend can skip the SDK runtime; a module section may not import it.`
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
if (!BARE_SPECIFIER.test(from) || from.split("/").some((part) => part === "." || part === "..")) {
|
|
71
|
+
return refuse(
|
|
72
|
+
`imports from ${JSON.stringify(from)}, which is not a bare package specifier. A relative or absolute path resolves against wherever the file is written, and a protocol is not a package the project depends on.`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
if (!Array.isArray(names) || names.length === 0) return refuse(`imports nothing by name from ${JSON.stringify(from)}.`);
|
|
76
|
+
for (const name of names) {
|
|
77
|
+
if (typeof name !== "string" || !IDENTIFIER.test(name)) {
|
|
78
|
+
return refuse(`imports ${JSON.stringify(name)} from ${JSON.stringify(from)}, which is not a plain identifier.`);
|
|
79
|
+
}
|
|
80
|
+
merged.set(from, (merged.get(from) ?? /* @__PURE__ */ new Set()).add(name));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return [...merged].sort(([a], [b]) => byCodeUnit(a, b)).map(([from, names]) => ({ from, names: [...names].sort(byCodeUnit) }));
|
|
84
|
+
}
|
|
85
|
+
function composeRoutesManifest(core, modules) {
|
|
86
|
+
if (!core.startsWith(MANIFEST_HEADER)) {
|
|
87
|
+
throw new RouteManifestError("composeRoutesManifest: `core` is not a rendered route manifest.");
|
|
88
|
+
}
|
|
89
|
+
const imports = /* @__PURE__ */ new Map();
|
|
90
|
+
const blocks = [];
|
|
91
|
+
let previous;
|
|
92
|
+
for (const { pkg, version, section } of [...modules].sort((a, b) => byCodeUnit(a.pkg, b.pkg))) {
|
|
93
|
+
if (pkg === previous) {
|
|
94
|
+
throw new RouteManifestError(`${pkg}: two routes.gen.ts sections for one module; a module contributes one.`);
|
|
95
|
+
}
|
|
96
|
+
previous = pkg;
|
|
97
|
+
const own = checkModuleSection(pkg, section);
|
|
98
|
+
if (section.source.trim() === "") continue;
|
|
99
|
+
for (const { from, names } of own) {
|
|
100
|
+
for (const name of names) imports.set(from, (imports.get(from) ?? /* @__PURE__ */ new Set()).add(name));
|
|
101
|
+
}
|
|
102
|
+
const lines = own.length > 0 ? [`${IMPORTS_LINE}${JSON.stringify(own)}`, section.source] : [section.source];
|
|
103
|
+
try {
|
|
104
|
+
blocks.push(composeBlock(moduleSpec(pkg), lines, version));
|
|
105
|
+
} catch (error) {
|
|
106
|
+
throw new RouteManifestError(error instanceof Error ? error.message : String(error));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (blocks.length === 0) return core;
|
|
110
|
+
const importLines = [...imports].sort(([a], [b]) => byCodeUnit(a, b)).map(([from, names]) => `import { ${[...names].sort(byCodeUnit).join(", ")} } from ${JSON.stringify(from)};
|
|
111
|
+
`);
|
|
112
|
+
return `${MANIFEST_HEADER}${importLines.join("")}${core.slice(MANIFEST_HEADER.length)}${blocks.map((b) => `
|
|
113
|
+
${b}
|
|
114
|
+
`).join("")}`;
|
|
115
|
+
}
|
|
116
|
+
function parseModuleSections(text, only) {
|
|
117
|
+
return blockPackages(text, MODULE_DIALECT).filter((pkg) => only === void 0 || only.has(pkg)).sort(byCodeUnit).map((pkg) => {
|
|
118
|
+
const fail = (why) => {
|
|
119
|
+
throw new RouteManifestError(
|
|
120
|
+
`${pkg}: its block in ${ROUTES_MANIFEST_BASENAME} ${why} Repair or delete the block by hand, then regenerate the file.`
|
|
121
|
+
);
|
|
122
|
+
};
|
|
123
|
+
let span;
|
|
124
|
+
try {
|
|
125
|
+
span = findBlock(text, moduleSpec(pkg));
|
|
126
|
+
} catch (error) {
|
|
127
|
+
return fail(`cannot be read: ${error instanceof Error ? error.message : String(error)}.`);
|
|
128
|
+
}
|
|
129
|
+
const lines = span.text.split(/\r?\n/);
|
|
130
|
+
const version = MODULE_DIALECT.parseStamp(lines[1] ?? "");
|
|
131
|
+
if (version === null || lines[2] !== "") return fail("has no version stamp under its begin marker.");
|
|
132
|
+
let body = lines.slice(3, -1);
|
|
133
|
+
let imports;
|
|
134
|
+
if (body[0]?.startsWith(IMPORTS_LINE)) {
|
|
135
|
+
try {
|
|
136
|
+
imports = JSON.parse(body[0].slice(IMPORTS_LINE.length));
|
|
137
|
+
} catch {
|
|
138
|
+
return fail("has an imports line that is not valid JSON.");
|
|
139
|
+
}
|
|
140
|
+
body = body.slice(1);
|
|
141
|
+
}
|
|
142
|
+
const section = { ...imports === void 0 ? {} : { imports }, source: body.join("\n") };
|
|
143
|
+
checkModuleSection(pkg, section);
|
|
144
|
+
return { pkg, version, section };
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// src/emit/toolchain-hooks.ts
|
|
149
|
+
function redactEnvValues(payload) {
|
|
150
|
+
const env = payload["env"];
|
|
151
|
+
if (!Array.isArray(env)) return payload;
|
|
152
|
+
return {
|
|
153
|
+
...payload,
|
|
154
|
+
env: env.map(
|
|
155
|
+
(entry) => typeof entry === "object" && entry !== null && "value" in entry ? { ...entry, value: "" } : entry
|
|
156
|
+
)
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
function report(pkg, result) {
|
|
160
|
+
if (result.message !== void 0 && result.message !== "") {
|
|
161
|
+
if (result.failed === true) warn(`${pkg} \u2014 ${result.message}`, "toolchain.failed");
|
|
162
|
+
else info(result.message);
|
|
163
|
+
}
|
|
164
|
+
for (const line of result.warnings ?? []) detail(line);
|
|
165
|
+
}
|
|
166
|
+
function handleThrow(pkg, error, frozen) {
|
|
167
|
+
const why = error instanceof Error ? error.message : String(error);
|
|
168
|
+
if (frozen) {
|
|
169
|
+
throw new UsageError(
|
|
170
|
+
`${pkg} failed while checking this bundle, so whatever it verifies was not verified \u2014 and this run was asked to verify, not to write:
|
|
171
|
+
${why}`
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
warn(`${pkg} failed and was skipped.`, "toolchain.failed", [why]);
|
|
175
|
+
}
|
|
176
|
+
async function fireOnBundle(plugins, ctx) {
|
|
177
|
+
let failed = false;
|
|
178
|
+
const bundle = { ...ctx.bundle, payload: redactEnvValues(ctx.bundle.payload) };
|
|
179
|
+
for (const { pkg, plugin, config } of plugins) {
|
|
180
|
+
if (plugin.onBundle === void 0) continue;
|
|
181
|
+
try {
|
|
182
|
+
const result = await plugin.onBundle({ ...ctx, bundle, config });
|
|
183
|
+
report(pkg, result);
|
|
184
|
+
if (result.failed === true) failed = true;
|
|
185
|
+
} catch (error) {
|
|
186
|
+
handleThrow(pkg, error, ctx.frozen);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return { failed };
|
|
190
|
+
}
|
|
191
|
+
async function fireOnPreflight(plugins, ctx) {
|
|
192
|
+
let failed = false;
|
|
193
|
+
const payloads = {
|
|
194
|
+
exportedPayload: redactEnvValues(ctx.exportedPayload),
|
|
195
|
+
remappedPayload: redactEnvValues(ctx.remappedPayload)
|
|
196
|
+
};
|
|
197
|
+
for (const { pkg, plugin, config } of plugins) {
|
|
198
|
+
if (plugin.onPreflight === void 0) continue;
|
|
199
|
+
try {
|
|
200
|
+
const result = await plugin.onPreflight({ ...ctx, ...payloads, config });
|
|
201
|
+
report(pkg, result);
|
|
202
|
+
if (result.failed === true) failed = true;
|
|
203
|
+
} catch (error) {
|
|
204
|
+
const why = error instanceof Error ? error.message : String(error);
|
|
205
|
+
warn(`${pkg} could not complete its check.`, "toolchain.failed", [why]);
|
|
206
|
+
failed = true;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return { failed };
|
|
210
|
+
}
|
|
211
|
+
async function runBundleHooks(plugins, ctx, consequence) {
|
|
212
|
+
if (plugins.length === 0) return;
|
|
213
|
+
const outcome = await fireOnBundle(plugins, ctx);
|
|
214
|
+
if (outcome.failed) {
|
|
215
|
+
throw new UsageError(
|
|
216
|
+
`A toolchain module reported that its check did not pass${consequence}. See the report above.`
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
function fireRoutesManifest(plugins, ctx) {
|
|
221
|
+
const results = [];
|
|
222
|
+
for (const { pkg, version, plugin, config } of [...plugins].sort((a, b) => byCodeUnit(a.pkg, b.pkg))) {
|
|
223
|
+
if (plugin.routesManifest === void 0) continue;
|
|
224
|
+
try {
|
|
225
|
+
const section = plugin.routesManifest({ ...ctx, config });
|
|
226
|
+
if (typeof section?.then === "function") {
|
|
227
|
+
Promise.resolve(section).catch(() => {
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
const imports = checkModuleSection(pkg, section);
|
|
231
|
+
results.push({
|
|
232
|
+
kind: "section",
|
|
233
|
+
pkg,
|
|
234
|
+
version,
|
|
235
|
+
section: { ...imports.length > 0 ? { imports } : {}, source: section.source }
|
|
236
|
+
});
|
|
237
|
+
} catch (error) {
|
|
238
|
+
results.push({ kind: "failed", pkg, version, why: error instanceof Error ? error.message : String(error) });
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return results;
|
|
242
|
+
}
|
|
243
|
+
function anyDeclares(plugins, hook) {
|
|
244
|
+
return plugins.some((p) => p.plugin[hook] !== void 0);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
export {
|
|
248
|
+
composeRoutesManifest,
|
|
249
|
+
parseModuleSections,
|
|
250
|
+
redactEnvValues,
|
|
251
|
+
fireOnBundle,
|
|
252
|
+
fireOnPreflight,
|
|
253
|
+
runBundleHooks,
|
|
254
|
+
fireRoutesManifest,
|
|
255
|
+
anyDeclares
|
|
256
|
+
};
|
|
257
|
+
//# sourceMappingURL=chunk-IPNN2KRW.js.map
|