@xano/sdk 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -5
- package/README.md +250 -342
- package/dist/.build-fingerprint +1 -1
- package/dist/agent-file-refresh-67QIX45H.js +39 -0
- package/dist/{answer-shape-LVV2SVBK.js → answer-shape-UCDUKPAN.js} +6 -6
- package/dist/{backend-dir-WZADOK3L.js → backend-dir-3LIL6SCT.js} +16 -15
- package/dist/{backend-slot-NSCTWCUX.js → backend-slot-JREP27UD.js} +4 -4
- package/dist/bin.js +59 -58
- package/dist/{branch-ONWPJ4V6.js → branch-2IPHOAYS.js} +10 -10
- package/dist/{branch-commands-ZT2MJIRS.js → branch-commands-KTKAXBAN.js} +31 -32
- package/dist/bundle.js +9 -39
- package/dist/{capture-3JNUA6C2.js → capture-GW5KNKMB.js} +4 -4
- package/dist/{chunk-FPBGAT5D.js → chunk-26MOFAJT.js} +3 -3
- package/dist/{chunk-O7QOWS6M.js → chunk-2FLIJGBZ.js} +12 -12
- package/dist/{chunk-QAEQGT5I.js → chunk-2WBH5HUY.js} +7 -7
- package/dist/{chunk-37AHZ7JX.js → chunk-3BBIDW3Y.js} +6 -6
- package/dist/{chunk-DGWHAVRG.js → chunk-3EDSPMXN.js} +12 -1
- package/dist/{chunk-2AUV6NXK.js → chunk-3II44CUJ.js} +36 -36
- package/dist/{chunk-7GX445AE.js → chunk-4XHAT7C5.js} +2 -2
- package/dist/{chunk-OOXWYAA4.js → chunk-57A5ZKPO.js} +1 -1
- package/dist/{chunk-OOGXZL7Z.js → chunk-5KJBWIDZ.js} +84 -6
- package/dist/{chunk-5YL5OC2G.js → chunk-5QMJOE2K.js} +6 -6
- package/dist/{chunk-3H3EPMFY.js → chunk-5TVFLG3C.js} +2 -2
- package/dist/{chunk-WFMVKY7I.js → chunk-5YQV35C2.js} +9 -9
- package/dist/{chunk-NA3PXMEF.js → chunk-64WWE3EF.js} +1 -1
- package/dist/{chunk-FMOEVAGT.js → chunk-6X3MY2JP.js} +3 -3
- package/dist/{chunk-2LVTBPW2.js → chunk-6X6BJN6Y.js} +3 -3
- package/dist/{chunk-DYG5D3FD.js → chunk-763M6LX3.js} +16 -2
- package/dist/{chunk-EESV6NU2.js → chunk-7FIMUFBP.js} +2 -2
- package/dist/{chunk-CFSFBKHP.js → chunk-7GAIJW62.js} +2 -2
- package/dist/{chunk-6R7S775T.js → chunk-7REDHC4N.js} +2 -2
- package/dist/chunk-7VR4IO5B.js +44 -0
- package/dist/chunk-A7MRZ4GF.js +78 -0
- package/dist/{chunk-D5ZEAF4G.js → chunk-ATJ2W7DC.js} +81 -58
- package/dist/{chunk-BUJRS7XB.js → chunk-AVS4WPPY.js} +2 -2
- package/dist/{chunk-MEE5RZ6G.js → chunk-BL3AZ3AP.js} +2 -2
- package/dist/chunk-BTVUYHWV.js +111 -0
- package/dist/{chunk-T4DUFQ2S.js → chunk-CCU5CCRX.js} +5 -5
- package/dist/{chunk-5T2CTWTB.js → chunk-CHINR7WD.js} +6 -6
- package/dist/{chunk-VD32O6KZ.js → chunk-CJDPSCMX.js} +45 -5
- package/dist/{chunk-3HOGFGKG.js → chunk-D3KEPRRN.js} +2 -2
- package/dist/{chunk-SBR2WZXG.js → chunk-D7BUMOKU.js} +60 -53
- package/dist/{chunk-WRBKLYSJ.js → chunk-DNBP4GJN.js} +4 -3
- package/dist/{chunk-JTUKLCXS.js → chunk-DXUICABI.js} +1 -1
- package/dist/{chunk-XMDDBEEM.js → chunk-E763QI3G.js} +2 -2
- package/dist/{chunk-KTGRGWZW.js → chunk-EADVVTDK.js} +7 -7
- package/dist/{chunk-FJWZ5OVV.js → chunk-ENMBEXOP.js} +3 -3
- package/dist/{chunk-OPHB5ORL.js → chunk-EQFYOOO6.js} +171 -92
- package/dist/{chunk-WOGJB2F6.js → chunk-FNLTFOUD.js} +4 -9
- package/dist/{chunk-II747OWE.js → chunk-FQ53GTII.js} +10 -10
- package/dist/{chunk-JP7M7OU7.js → chunk-FU3VCE5A.js} +46 -27
- package/dist/{chunk-OGBMUST4.js → chunk-GHQ4BVI4.js} +14 -14
- package/dist/{chunk-45YPFB7B.js → chunk-GLY552SI.js} +84 -57
- package/dist/{chunk-QV3GXQRE.js → chunk-GOLFAEUV.js} +2 -2
- package/dist/{chunk-L2GLOJAO.js → chunk-GW5RHGOB.js} +22 -22
- package/dist/{chunk-A6QTTJUI.js → chunk-GWTFI3GA.js} +2 -2
- package/dist/{chunk-MCTIKRMN.js → chunk-GZHLCUZ6.js} +8 -8
- package/dist/{chunk-664LSWE5.js → chunk-HCG7NDIL.js} +4 -4
- package/dist/{chunk-7PMVIHB3.js → chunk-I3H3HCPY.js} +50 -29
- package/dist/{chunk-LIVN53UV.js → chunk-I3VHW6XM.js} +31 -31
- package/dist/{chunk-C4FHQA7R.js → chunk-IF4PEGVD.js} +8 -8
- package/dist/{chunk-WFG67AYS.js → chunk-IMELQ2I6.js} +3 -3
- package/dist/{chunk-3P3HXN76.js → chunk-ITC2R2OT.js} +11 -11
- package/dist/{chunk-W5ONYLOP.js → chunk-IXFJORNH.js} +4 -4
- package/dist/{chunk-HMLGM2MW.js → chunk-IYXL5NYU.js} +260 -32
- package/dist/{chunk-2B22WWKL.js → chunk-JFBRXRJD.js} +59 -35
- package/dist/chunk-JI3BLXWQ.js +107 -0
- package/dist/{chunk-4DJTQ6W4.js → chunk-JIKGT7DO.js} +2 -1
- package/dist/{chunk-O5V3YH5P.js → chunk-JRVQ7M7W.js} +8 -8
- package/dist/{chunk-4APOHK7Y.js → chunk-JXVJGF3Y.js} +2 -2
- package/dist/chunk-KPFS3RGM.js +257 -0
- package/dist/{chunk-PML67X22.js → chunk-LAOMN6QQ.js} +3 -3
- package/dist/{chunk-TTVAHCWP.js → chunk-LBJA7IEM.js} +370 -45
- package/dist/{chunk-KUTFFHUM.js → chunk-LD6ARK3A.js} +2 -2
- package/dist/{chunk-HUSH7LRI.js → chunk-LL7SGTRC.js} +36 -33
- package/dist/{chunk-I2BGYNHD.js → chunk-M5CSVB23.js} +7 -7
- package/dist/{chunk-UCQ2VUTG.js → chunk-M6ZFSTIZ.js} +2 -2
- package/dist/{chunk-MNVDVR3M.js → chunk-MBDFH7XB.js} +4 -4
- package/dist/{chunk-QXTKSOFI.js → chunk-MF4W6FHU.js} +1 -1
- package/dist/{chunk-RX3EMQGN.js → chunk-MFWF2NZJ.js} +12 -5
- package/dist/{chunk-SEUCZZCP.js → chunk-N5I37JFB.js} +3 -3
- package/dist/{chunk-IJ3SXSZM.js → chunk-ND43ZOS3.js} +6 -6
- package/dist/chunk-NDWVJ2QZ.js +67 -0
- package/dist/{chunk-E65QIWOO.js → chunk-NPODGBVJ.js} +4 -4
- package/dist/{chunk-CYB7UQA2.js → chunk-OIKLDDYC.js} +5 -5
- package/dist/{chunk-MLGI2SRQ.js → chunk-PFBXSVZF.js} +4 -4
- package/dist/{chunk-AM4FKL4J.js → chunk-PL7AIAWS.js} +12 -12
- package/dist/{chunk-S7E2AHV3.js → chunk-PMMHSX4H.js} +26 -9
- package/dist/{chunk-WL2DSNJV.js → chunk-Q22BMRPF.js} +2 -2
- package/dist/{chunk-3FN2BIGB.js → chunk-QJM5XZ4K.js} +6 -6
- package/dist/{chunk-EWCDPFW5.js → chunk-QXYMDARD.js} +4 -4
- package/dist/{chunk-MLPDSGJQ.js → chunk-QZEAANWP.js} +5 -5
- package/dist/{chunk-ESZ2FF57.js → chunk-RIN4YY34.js} +88 -74
- package/dist/{chunk-37FBPMNE.js → chunk-S56YBYMN.js} +5 -2
- package/dist/{chunk-CBYQ2ZN3.js → chunk-SKEG3V2V.js} +2 -2
- package/dist/{chunk-4PQHO74B.js → chunk-SLGJIWCY.js} +4 -4
- package/dist/{chunk-IVKRT476.js → chunk-SPITRSOF.js} +2 -2
- package/dist/{chunk-BUECLQXK.js → chunk-SPKA2LV6.js} +4 -4
- package/dist/{chunk-HHW5AWVD.js → chunk-SSITMX7I.js} +30 -30
- package/dist/{chunk-OPG4DYX2.js → chunk-T4LJ5UR2.js} +29 -7
- package/dist/{chunk-LXNQWHZM.js → chunk-TECTL2NU.js} +4 -4
- package/dist/{chunk-E6H5ZEV3.js → chunk-TTEIDD5Q.js} +3 -3
- package/dist/{chunk-6VBTPV2Y.js → chunk-U35MTOXQ.js} +3 -3
- package/dist/{chunk-UKUIUS3E.js → chunk-U6MTGB46.js} +5 -5
- package/dist/{chunk-Y2ZLKBM6.js → chunk-UD2Z7K6W.js} +4 -4
- package/dist/{chunk-IXUPUFCG.js → chunk-UIVMR7UK.js} +2 -2
- package/dist/{chunk-UDE5C2XN.js → chunk-VDHA5SSQ.js} +3 -3
- package/dist/{chunk-5W7DOMIU.js → chunk-VJFMUJWZ.js} +4 -4
- package/dist/{chunk-XNCP4KYO.js → chunk-VQPDATQT.js} +1 -1
- package/dist/{chunk-KCAL4QYP.js → chunk-VW4CWVYX.js} +4 -4
- package/dist/chunk-WAVNUTMT.js +9 -0
- package/dist/{chunk-DIG3NITC.js → chunk-WBH4KJWM.js} +3 -3
- package/dist/{chunk-HSEQYBDO.js → chunk-WZHLMU6T.js} +3 -3
- package/dist/{chunk-WYEQFD6A.js → chunk-XFBGXB7X.js} +173 -105
- package/dist/{chunk-UI4OPTYR.js → chunk-Y453TW6J.js} +2 -2
- package/dist/{chunk-LUTMOHOW.js → chunk-YGLMRH5U.js} +9 -9
- package/dist/{chunk-GPI3OWRE.js → chunk-YHB34BN6.js} +2 -1
- package/dist/{chunk-5WGVIXMD.js → chunk-YKP4ZKVO.js} +14 -10
- package/dist/{chunk-MN2PB6WB.js → chunk-YR2I5HGE.js} +3 -3
- package/dist/{chunk-ZG7E72VI.js → chunk-YYC2DZMG.js} +7 -7
- package/dist/{chunk-D64XUF5Q.js → chunk-YYLUBYXM.js} +16 -16
- package/dist/{chunk-VRVKNY4A.js → chunk-Z4ZGTCCD.js} +8 -8
- package/dist/{chunk-44B4V2LR.js → chunk-ZDP6GDAB.js} +142 -142
- package/dist/{chunk-ET5DSBAC.js → chunk-ZJSTUD6D.js} +8 -8
- package/dist/cli.d.ts +36 -26
- package/dist/cli.js +57 -56
- package/dist/{codegen-command-HTWIW56U.js → codegen-command-R5IASBFC.js} +78 -72
- package/dist/codegen.d.ts +2 -2
- package/dist/codegen.js +2 -2
- package/dist/{commands-CVFYC4GK.js → commands-H7CPMMHH.js} +3 -3
- package/dist/{completion-AUEQC4XJ.js → completion-W5ZAI6TN.js} +12 -12
- package/dist/{config-JU6OQC77.js → config-MZ5KG4EP.js} +5 -5
- package/dist/{deploy-command-5WTFHMBT.js → deploy-command-34T2LKQ5.js} +64 -63
- package/dist/deploy-source-YLQ7WMYR.js +82 -0
- package/dist/{dev-env-sync-X636HLMK.js → dev-env-sync-TMJTNU3U.js} +58 -57
- package/dist/{diagnostics-LSMGB4TY.js → diagnostics-OMN5Y2AH.js} +2 -2
- package/dist/{display-name-hint-DMORHANO.js → display-name-hint-ZJGFNJKQ.js} +12 -12
- package/dist/{emit-hOFbgzde.d.ts → emit-D125xxty.d.ts} +67 -21
- package/dist/env-example-refresh-CQP3ZMKM.js +133 -0
- package/dist/{env-pull-command-WZZ7RL2E.js → env-pull-command-UTG6IC2K.js} +53 -53
- package/dist/{env-target-PO3MOLH5.js → env-target-FZROWYFS.js} +14 -14
- package/dist/{env-var-command-YKTJZFJN.js → env-var-command-VYDBQJJW.js} +51 -50
- package/dist/{ephemeral-BMFY55BQ.js → ephemeral-BIE6FMJV.js} +10 -10
- package/dist/{ephemeral-command-VDSQCOYL.js → ephemeral-command-OZ26RGXF.js} +54 -54
- package/dist/{ephemeral-state-6TY4JIPA.js → ephemeral-state-SNZOX2YK.js} +12 -12
- package/dist/{generate-command-3NTNRQRS.js → generate-command-4HR7MR36.js} +87 -79
- package/dist/{gitignore-FWPEDX6C.js → gitignore-EWQBXNX2.js} +20 -19
- package/dist/{guards-EJU2ONAX.js → guards-KYEOCVHN.js} +7 -7
- package/dist/{hosted-file-PSHJB3HX.js → hosted-file-S7YUQAH6.js} +2 -2
- package/dist/{impersonate-command-QEJA72Q2.js → impersonate-command-WC7OGKUM.js} +44 -43
- package/dist/{import-TBTOTU52.js → import-7Z4GCCPO.js} +6 -6
- package/dist/index.d.ts +14 -20
- package/dist/index.js +14 -14
- package/dist/init-command-HAO3WXH3.js +128 -0
- package/dist/{init-modules-HZRQFRLE.js → init-modules-NSKD4ASY.js} +12 -11
- package/dist/{init-web-Y2PBNJTQ.js → init-web-MKFFOQUU.js} +3 -3
- package/dist/internal.d.ts +5 -5
- package/dist/internal.js +61 -35
- package/dist/{io-ZUKAGFVE.js → io-PGTCBSIQ.js} +7 -5
- package/dist/{keep-data-merge-X5LDDCI3.js → keep-data-merge-QR2TMKEO.js} +33 -34
- package/dist/{lambda-config-reconcile-OUZ4OYAB.js → lambda-config-reconcile-7FJXXV6V.js} +4 -4
- package/dist/{landed-6VO7CX5P.js → landed-F7PCHGCK.js} +4 -4
- package/dist/{landing-record-QYECWLQ5.js → landing-record-MWXFIRCP.js} +26 -25
- package/dist/{live-diff-2S7E3SBZ.js → live-diff-5E2BQWQ7.js} +10 -9
- package/dist/local-engine-choice-VD5LNXJU.js +80 -0
- package/dist/{local-engine-command-HMTQK7MN.js → local-engine-command-RYLGMQ2O.js} +96 -95
- package/dist/{local-engine-config-5U3SC434.js → local-engine-config-W3KB7RWM.js} +2 -2
- package/dist/{local-engine-deploy-TXAOYRGF.js → local-engine-deploy-6O7NKZCA.js} +17 -17
- package/dist/{local-engine-process-6VZ7JJBP.js → local-engine-process-ZLLZEIRF.js} +12 -12
- package/dist/{local-engine-state-TJWPWCC4.js → local-engine-state-OCW5YDD7.js} +3 -3
- package/dist/{local-engine-update-check-R5SPDVEJ.js → local-engine-update-check-LVX4HBBI.js} +8 -8
- package/dist/{lock-TS465GVY.js → lock-HDCHD2ON.js} +5 -3
- package/dist/{lock-commands-4VT3L5W5.js → lock-commands-X2OECR4R.js} +62 -61
- package/dist/{login-command-O6WA4FYL.js → login-command-RLLKD565.js} +31 -30
- package/dist/{logout-command-6CPWGFY2.js → logout-command-XDMSXCDO.js} +17 -17
- package/dist/{loop-UFHKSOQ4.js → loop-SUB6C2LK.js} +9 -10
- package/dist/{marketplace-command-HKACSYKS.js → marketplace-command-2NHHY2X3.js} +89 -53
- package/dist/{marketplace-resolve-KLFYVRWS.js → marketplace-resolve-OTZYT4FG.js} +9 -8
- package/dist/{meta-client-73PX6UGJ.js → meta-client-TMHVBZFY.js} +15 -15
- package/dist/{module-manifest-GIKFNXPE.js → module-manifest-FNMW23IX.js} +7 -4
- package/dist/node.d.ts +5 -5
- package/dist/node.js +63 -63
- package/dist/operation-outcome-RN62735X.js +51 -0
- package/dist/{output-target-SZMBNYF4.js → output-target-MOLCTPBP.js} +21 -20
- package/dist/{package-manager-PRAHUSCN.js → package-manager-K762W7XT.js} +2 -2
- package/dist/{plan-disclosure-BHYG7TZ7.js → plan-disclosure-CY7AF6KP.js} +21 -22
- package/dist/{plugin-contributions-X4V22PJQ.js → plugin-contributions-WR26U7NT.js} +6 -6
- package/dist/{plugin-prompt-DKNQHW6Y.js → plugin-prompt-ZUYQQIX4.js} +5 -5
- package/dist/{plugin-questions-CQRVOWFK.js → plugin-questions-HAZOQ67R.js} +4 -4
- package/dist/plugin.d.ts +254 -10
- package/dist/{preflight-command-EBQ6XQF3.js → preflight-command-OHJXYND3.js} +70 -70
- package/dist/{profile-command-NPKBJYPM.js → profile-command-6JWT2BTL.js} +33 -32
- package/dist/{profile-pointer-UOO7JNFG.js → profile-pointer-PDA5XBIB.js} +5 -5
- package/dist/{profile-select-74TRDEPD.js → profile-select-45G5VPJK.js} +2 -2
- package/dist/{project-dependency-RRMTWOPC.js → project-dependency-GZWWGWEW.js} +13 -10
- package/dist/{project-sdk-FOR4IOXL.js → project-sdk-3W72H5QO.js} +4 -4
- package/dist/promote-command-UYAMUXKB.js +146 -0
- package/dist/{prompt-5GUQTCSP.js → prompt-U37K5RPQ.js} +4 -4
- package/dist/{publish-command-LGLZBOCB.js → publish-command-BUS27HGB.js} +138 -66
- package/dist/pull-command-ZGUNP27P.js +168 -0
- package/dist/{pull-superseded-GGURV5J3.js → pull-superseded-EZBGYRZF.js} +4 -4
- package/dist/{raw-where-EoWl5fqY.d.ts → raw-where-ZMLND6AG.d.ts} +20 -3
- package/dist/release-command-BQ6OHS3P.js +150 -0
- package/dist/{release-ns-command-EIBN3JVM.js → release-ns-command-ATGVBVIU.js} +94 -94
- package/dist/{retry-command-Y5YJGOH3.js → retry-command-QJ57WVW7.js} +9 -9
- package/dist/{routes-manifest-3BNZIVST.js → routes-manifest-YR4ZIMLM.js} +16 -8
- package/dist/routes-manifest-file-UALYSZLY.js +41 -0
- package/dist/scaffold.js +3 -3
- package/dist/{secrets-file-FUG7WCES.js → secrets-file-LMS7KX3E.js} +20 -19
- package/dist/{secrets-fill-command-QEOCUOAY.js → secrets-fill-command-QNBDGCGM.js} +61 -60
- package/dist/{seed-GJHJSEUE.js → seed-SZ6OS5DQ.js} +9 -9
- package/dist/{source-resolve-DMDZVPMM.js → source-resolve-MKLNYFWG.js} +24 -24
- package/dist/{static-host-WM24RG25.js → static-host-ONEHA4LI.js} +10 -10
- package/dist/{status-command-XUH5OGQX.js → status-command-XKIFKBGM.js} +57 -56
- package/dist/{store-CfgPaVPO.d.ts → store-Bg4Na6Sm.d.ts} +4 -4
- package/dist/{store-MR7IKXKK.js → store-X6ZH7EC3.js} +7 -7
- package/dist/sveltekit.d.ts +5 -5
- package/dist/sveltekit.js +1 -1
- package/dist/sync-baseline-DOV5AGIO.js +36 -0
- package/dist/{sync-contributions-DHP7XSTX.js → sync-contributions-HNVHDIQW.js} +21 -13
- package/dist/sync-record-PRXHLK4S.js +42 -0
- package/dist/{table-ZBDPKMNH.js → table-DC36QA4Y.js} +10 -10
- package/dist/{tables-command-X3JK7VSK.js → tables-command-UQLKTELN.js} +44 -43
- package/dist/{tenant-GKXMOYLK.js → tenant-EKNQGG5A.js} +11 -11
- package/dist/{tenant-command-P27EQHBU.js → tenant-command-2LWP2MPB.js} +105 -100
- package/dist/{test-command-A4G2FP7G.js → test-command-IU5MBBXY.js} +44 -43
- package/dist/{tests-C55M5EQS.js → tests-RG2Y5EQ4.js} +7 -7
- package/dist/{token-CMAB35GD.js → token-7AWSJLKO.js} +13 -13
- package/dist/toolchain-hooks-4ZMQLBPQ.js +46 -0
- package/dist/{toolchain-modules-3M7QDJBV.js → toolchain-modules-VU7SURVJ.js} +9 -6
- package/dist/toolchain-peers-CIDNEEQV.js +28 -0
- package/dist/tracked-backend-4BHSV7NC.js +81 -0
- package/dist/{update-check-LNNKIMML.js → update-check-A7FXIINW.js} +60 -59
- package/dist/{upgrade-command-7EUXML3P.js → upgrade-command-C5KBITFI.js} +64 -63
- package/dist/{whoami-command-KNWFWAX6.js → whoami-command-7WQII2H4.js} +16 -16
- package/dist/{workspace-TGPYOODG.js → workspace-Z46PUZNI.js} +6 -6
- package/dist/{workspace-binding-2TWZBHQY.js → workspace-binding-JE6YNDZJ.js} +15 -15
- package/dist/{workspace-command-T7Z2BDHD.js → workspace-command-FC4IMLAE.js} +119 -88
- package/dist/{workspace-env-VA7XN3UX.js → workspace-env-N4ZPFT6A.js} +17 -16
- package/dist/{workspace-export-AIGM6LC7.js → workspace-export-3A5BZTPS.js} +6 -6
- package/dist/{writable-FYJBTJOU.js → writable-D7KCZI5N.js} +4 -4
- package/dist/{xano-BSHYVFSE.js → xano-LCI7VWPS.js} +9 -9
- package/dist/{xanosdk-import-J6SRBZHW.js → xanosdk-import-P2A2KSXM.js} +10 -10
- package/dist/xanosdk-project-6AGMW2SL.js +42 -0
- package/guides/README.md +1 -0
- package/guides/authoring.md +3 -5
- package/guides/bundle.md +45 -0
- package/guides/cli.md +36 -34
- package/guides/codegen.md +5 -4
- package/guides/codes.md +16 -11
- package/guides/deploying.md +115 -58
- package/guides/environment.md +13 -13
- package/guides/marketplace.md +21 -0
- package/guides/module-contract.md +80 -4
- package/guides/project-structure.md +14 -0
- package/guides/typed-frontend.md +37 -0
- package/llms/client.md +14 -5
- package/llms/errors.md +1 -1
- package/llms/filters.md +4 -0
- package/llms/kinds-core.md +1 -1
- package/llms/statements-data.md +3 -2
- package/llms/tests.md +2 -2
- package/llms/toolchain.md +12 -0
- package/llms-full.txt +47 -21
- package/llms.txt +10 -10
- package/manifest.json +110 -107
- package/package.json +4 -4
- package/dist/agent-file-refresh-LB6KIMFY.js +0 -38
- package/dist/chunk-XXZZGXW2.js +0 -243
- package/dist/deploy-source-5CET3A5D.js +0 -81
- package/dist/env-example-refresh-ZO6XAV44.js +0 -127
- package/dist/init-command-27SFBW2F.js +0 -126
- package/dist/local-engine-choice-6BSPEG3E.js +0 -79
- package/dist/operation-outcome-2P4BVSEV.js +0 -51
- package/dist/promote-command-4F2NAE6P.js +0 -141
- package/dist/pull-command-WQFPLITW.js +0 -162
- package/dist/release-command-2OTNVMIL.js +0 -147
- package/dist/toolchain-hooks-BGZBDFAT.js +0 -96
- package/dist/tracked-backend-PZGUWD5J.js +0 -80
- package/dist/xanosdk-project-6KTCO47O.js +0 -41
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
2
|
retryCommand,
|
|
3
3
|
withheldNote
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-6X3MY2JP.js";
|
|
5
5
|
import {
|
|
6
6
|
contextFlags
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-N5I37JFB.js";
|
|
8
8
|
import {
|
|
9
9
|
READ_AFTERMATH,
|
|
10
10
|
SENT_AFTERMATH,
|
|
11
11
|
closeSentence
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YR2I5HGE.js";
|
|
13
13
|
import {
|
|
14
14
|
UsageError,
|
|
15
15
|
detail,
|
|
16
16
|
pastePath,
|
|
17
17
|
warn
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-D7BUMOKU.js";
|
|
19
19
|
import {
|
|
20
20
|
shellQuote
|
|
21
21
|
} from "./chunk-5ZSO4T2G.js";
|
|
22
22
|
|
|
23
23
|
// src/emit/static-teardown.ts
|
|
24
24
|
async function readStaticTeardown(auth, target, recorded) {
|
|
25
|
-
const { listServingStaticHosts } = await import("./static-host-
|
|
25
|
+
const { listServingStaticHosts } = await import("./static-host-ONEHA4LI.js");
|
|
26
26
|
try {
|
|
27
27
|
const serving = await listServingStaticHosts({ ...target, accessToken: auth.access_token });
|
|
28
28
|
const urls = serving.map((s) => s.url);
|
|
@@ -130,7 +130,7 @@ function survivingRemedy(args, command) {
|
|
|
130
130
|
async function assertStaticHostExists(args, auth, target) {
|
|
131
131
|
const host = namedStaticHost(args);
|
|
132
132
|
if (host === void 0) return;
|
|
133
|
-
const { listStaticHostNames, StaticHostNotFoundError } = await import("./static-host-
|
|
133
|
+
const { listStaticHostNames, StaticHostNotFoundError } = await import("./static-host-ONEHA4LI.js");
|
|
134
134
|
let names;
|
|
135
135
|
try {
|
|
136
136
|
names = await listStaticHostNames({ ...target, accessToken: auth.access_token });
|
|
@@ -215,4 +215,4 @@ export {
|
|
|
215
215
|
EXIT_STATIC_FAILED,
|
|
216
216
|
unknownStaticOutcome
|
|
217
217
|
};
|
|
218
|
-
//# sourceMappingURL=chunk-
|
|
218
|
+
//# sourceMappingURL=chunk-EADVVTDK.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ensureExportGitignored
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UD2Z7K6W.js";
|
|
4
4
|
import {
|
|
5
5
|
andList
|
|
6
6
|
} from "./chunk-622HUCZT.js";
|
|
7
7
|
import {
|
|
8
8
|
UsageError,
|
|
9
9
|
warn
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-D7BUMOKU.js";
|
|
11
11
|
|
|
12
12
|
// src/emit/output-target.ts
|
|
13
13
|
import { accessSync, chmodSync, constants, mkdirSync, statSync, writeFileSync } from "fs";
|
|
@@ -125,4 +125,4 @@ export {
|
|
|
125
125
|
secretsPhrase,
|
|
126
126
|
assertWritableTarget
|
|
127
127
|
};
|
|
128
|
-
//# sourceMappingURL=chunk-
|
|
128
|
+
//# sourceMappingURL=chunk-ENMBEXOP.js.map
|
|
@@ -2,12 +2,14 @@ import {
|
|
|
2
2
|
decodeMarkerWith,
|
|
3
3
|
iconLibraryOf,
|
|
4
4
|
reactPreset
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-M6ZFSTIZ.js";
|
|
6
6
|
import {
|
|
7
|
+
blockVersion,
|
|
7
8
|
composeBlock,
|
|
8
9
|
gitattributesSpec,
|
|
10
|
+
htmlDialect,
|
|
9
11
|
upsertBlock
|
|
10
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3EDSPMXN.js";
|
|
11
13
|
import {
|
|
12
14
|
colorTokens,
|
|
13
15
|
defaultThemeChoice,
|
|
@@ -56,32 +58,36 @@ function renderPackageJson({ appName, sdkVersion }, preset, choice = defaultThem
|
|
|
56
58
|
// Scaffolds written before the default flipped still pass `--lock`, and
|
|
57
59
|
// it stays accepted for exactly that reason.
|
|
58
60
|
"xano:export": `npm run xano:routes && ${check} && xanosdk export ./xano/index.ts --out workspace.json`,
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
// running the one documented command had no `dist` to ship.
|
|
63
|
-
// `build` already prefixes the same typecheck, so this is one check, not
|
|
64
|
-
// two.
|
|
65
|
-
"xano:deploy": `npm run build && xanosdk deploy ./xano/index.ts --static ./frontend/dist`,
|
|
66
|
-
// The tight loop: redeploy the backend to an engine on this machine.
|
|
61
|
+
// The default deploy, and the tight loop: redeploy the backend to the
|
|
62
|
+
// Xano Engine on this machine. It needs no Xano account, so a fresh
|
|
63
|
+
// scaffold runs it before anyone signs in.
|
|
67
64
|
//
|
|
68
65
|
// No `--static` and no `npm run build`, and both omissions are the point
|
|
69
66
|
// rather than an economy: there is no frontend to ship here. The dev
|
|
70
67
|
// server is still serving it, and the deploy points that server at the
|
|
71
68
|
// engine on its way past, so the loop is backend-only by design.
|
|
72
|
-
// (`--static` does work on a
|
|
69
|
+
// (`--static` does work on a Xano Engine, for a built frontend the
|
|
73
70
|
// engine itself should serve; this loop has none.)
|
|
74
71
|
//
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
// project would ship a coordinate that is not this
|
|
72
|
+
// No `--local`: the Xano Engine is where a bare deploy goes, and the
|
|
73
|
+
// project's pinned version is what it runs. Baking an engine version or
|
|
74
|
+
// URL into a scaffolded project would ship a coordinate that is not this
|
|
75
|
+
// project's to carry.
|
|
78
76
|
//
|
|
79
77
|
// `--keep-data`, because the engine is the developer's own backend and
|
|
80
78
|
// this loop runs once per code change: each run merges into what the last
|
|
81
79
|
// one left, so rows entered through the app survive the edit. The first
|
|
82
80
|
// run, and the first after the engine restarts, replaces and seeds.
|
|
83
81
|
// `--reset` on the command line still gives a clean slate.
|
|
84
|
-
"xano:deploy
|
|
82
|
+
"xano:deploy": `npm run xano:routes && ${check} && xanosdk deploy ./xano/index.ts --keep-data`,
|
|
83
|
+
// The cloud deploy: backend and built frontend to an ephemeral.
|
|
84
|
+
// Runs `build` rather than `check` directly: `--static ./frontend/dist`
|
|
85
|
+
// needs that directory to EXIST, and only `vite build` writes it. Pointing
|
|
86
|
+
// the flag at a directory the script never produced meant a fresh clone
|
|
87
|
+
// running the documented command had no `dist` to ship.
|
|
88
|
+
// `build` already prefixes the same typecheck, so this is one check, not
|
|
89
|
+
// two.
|
|
90
|
+
"xano:deploy:ephemeral": `npm run build && xanosdk deploy ./xano/index.ts --ephemeral --static ./frontend/dist`,
|
|
85
91
|
// The frontend-only loop: rebuild and republish to the environment this
|
|
86
92
|
// project last deployed to, without recompiling or re-importing the
|
|
87
93
|
// backend. `build` runs first because publish ships only what is on disk.
|
|
@@ -190,9 +196,9 @@ function renderViteConfig(preset) {
|
|
|
190
196
|
const header = root === null ? `// Vite's root is the project root. The framework resolves its own file
|
|
191
197
|
// locations from the plugin config below \u2014 this file is the ONLY place that
|
|
192
198
|
// config lives \u2014 and routes the build through its adapter, which writes
|
|
193
|
-
// frontend/dist, the directory \`npm run xano:deploy\` ships as the frontend.` : `// Vite's root is the ${root}/ folder, so index.html and the app live there
|
|
199
|
+
// frontend/dist, the directory \`npm run xano:deploy:ephemeral\` ships as the frontend.` : `// Vite's root is the ${root}/ folder, so index.html and the app live there
|
|
194
200
|
// while the Xano SDK backend sits in xano/ as a peer. The build lands in
|
|
195
|
-
// ${root}/dist, which \`npm run xano:deploy\` ships as the static frontend.`;
|
|
201
|
+
// ${root}/dist, which \`npm run xano:deploy:ephemeral\` ships as the static frontend.`;
|
|
196
202
|
const rootBlock = root === null ? "" : ` root: ${JSON.stringify(root)},
|
|
197
203
|
// Vite resolves \`.env\` files against \`root\`, which is ${root}/ here \u2014 but
|
|
198
204
|
// \`.env.example\` sits at the project root, so that is where anyone will
|
|
@@ -401,69 +407,119 @@ ${version === void 0 ? "" : ` with:
|
|
|
401
407
|
}
|
|
402
408
|
function renderEnvExample() {
|
|
403
409
|
return `# Point the frontend at a deployed Xano backend. Leave unset to run the UI
|
|
404
|
-
# with no backend.
|
|
405
|
-
#
|
|
410
|
+
# with no backend. \`npm run xano:deploy\` writes the Xano Engine's URL to
|
|
411
|
+
# .env.local for you. After \`npm run xano:deploy:ephemeral\`, the backend URL is
|
|
412
|
+
# injected as window.XANO_HOST at runtime instead \u2014 no rebuild needed.
|
|
406
413
|
VITE_XANO_HOST=https://your-instance.xano.io
|
|
407
414
|
`;
|
|
408
415
|
}
|
|
409
|
-
|
|
416
|
+
var XANO_BADGE = "[](https://xano.com)";
|
|
417
|
+
var README_PATH = "README.md";
|
|
418
|
+
var README_BUILT_WITH_BLOCK = {
|
|
419
|
+
dialect: htmlDialect("xanosdk-built-with"),
|
|
420
|
+
pkg: "xanosdk-built-with",
|
|
421
|
+
file: README_PATH
|
|
422
|
+
};
|
|
423
|
+
var README_BUILT_WITH_BODY = `## Built with
|
|
424
|
+
|
|
425
|
+
- [Xano](https://xano.com) hosts everything under [\`xano/\`](xano/): the database, APIs,
|
|
426
|
+
auth, background tasks, realtime, file storage and AI agents. It runs on your machine as
|
|
427
|
+
the Xano Engine and in the cloud from the same command. [Docs](https://docs.xano.com) \xB7
|
|
428
|
+
[Community](https://community.xano.com)
|
|
429
|
+
- [Xano SDK](https://github.com/xano-sdk/sdk) is the TypeScript the backend is authored in.
|
|
430
|
+
The [guides](https://github.com/xano-sdk/sdk/blob/main/guides/README.md) cover signing in
|
|
431
|
+
and deploying, releasing to production, the typed frontend, and every CLI command.`;
|
|
432
|
+
function renderReadmeBuiltWith(sdkVersion) {
|
|
433
|
+
return composeBlock(README_BUILT_WITH_BLOCK, [README_BUILT_WITH_BODY], sdkVersion);
|
|
434
|
+
}
|
|
435
|
+
function readmeBuiltWithVersion(text) {
|
|
436
|
+
return blockVersion(text, README_BUILT_WITH_BLOCK);
|
|
437
|
+
}
|
|
438
|
+
function refreshReadmeBuiltWith(existing, sdkVersion) {
|
|
439
|
+
return upsertBlock(existing, README_BUILT_WITH_BLOCK, renderReadmeBuiltWith(sdkVersion)).text;
|
|
440
|
+
}
|
|
441
|
+
function renderReadmeDescriptionSlot(appName) {
|
|
442
|
+
return `_Describe ${appName} here: what it does and who it is for._`;
|
|
443
|
+
}
|
|
444
|
+
function renderReadme({ appName, install, sdkVersion }, preset, choice = defaultThemeChoice()) {
|
|
410
445
|
return `# ${appName}
|
|
411
446
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
447
|
+
${XANO_BADGE}
|
|
448
|
+
|
|
449
|
+
${renderReadmeDescriptionSlot(appName)}
|
|
450
|
+
|
|
451
|
+
The backend under [\`xano/\`](xano/) is TypeScript, authored with the
|
|
452
|
+
[Xano SDK](https://github.com/xano-sdk/sdk) and running on [Xano](https://xano.com). It runs
|
|
453
|
+
on your machine as the **Xano Engine** and ships to Xano's cloud with the same command. The
|
|
454
|
+
${preset.label} frontend under [\`frontend/\`](frontend/) takes its request paths and types
|
|
455
|
+
from the backend defs rather than hand-typing them.
|
|
416
456
|
|
|
417
457
|
## Quick start
|
|
418
458
|
|
|
419
459
|
\`\`\`bash
|
|
420
460
|
${install?.manager ?? "npm"} install${install?.ignoreWorkspace === true ? " --ignore-workspace" : ""}
|
|
421
|
-
npm run
|
|
461
|
+
npm run xano:deploy # run the backend on the Xano Engine, on this machine
|
|
462
|
+
npm run dev # run the frontend, already pointed at it
|
|
422
463
|
\`\`\`
|
|
423
464
|
|
|
424
|
-
Then author your backend in [\`xano/index.ts\`](xano/index.ts)
|
|
425
|
-
walkthrough in [\`xano/EXAMPLE.md\`](xano/EXAMPLE.md)
|
|
426
|
-
|
|
427
|
-
|
|
465
|
+
No Xano account needed. Then author your backend in [\`xano/index.ts\`](xano/index.ts),
|
|
466
|
+
starting with the walkthrough in [\`xano/EXAMPLE.md\`](xano/EXAMPLE.md), and rerun
|
|
467
|
+
\`npm run xano:deploy\` after each change.
|
|
468
|
+
|
|
469
|
+
## Run it on your machine
|
|
470
|
+
|
|
471
|
+
The Xano Engine is Xano running on your machine. \`npm run xano:deploy\` typechecks the
|
|
472
|
+
backend and deploys it to the engine: no sign-in, and no network round-trip.
|
|
473
|
+
It prints the backend URL, a link that opens Xano's visual builder on the engine, and
|
|
474
|
+
points \`npm run dev\` at it through \`.env.local\` (restart the dev server if it was already
|
|
475
|
+
running).
|
|
476
|
+
|
|
477
|
+
- **It works on a fresh machine with nothing set.** The first run downloads the latest
|
|
478
|
+
engine once per machine and pins its version in \`package.json\`. Commit that change, so
|
|
479
|
+
everyone on the project runs the same engine.
|
|
480
|
+
- **It keeps your table rows across redeploys** (\`--keep-data\`). The first run seeds and
|
|
481
|
+
later runs merge your changes in without re-seeding. Rows survive only in tables and columns that keep
|
|
482
|
+
their names (a rename drops the old one with its rows), and only while the engine runs. An
|
|
483
|
+
engine update or restart starts it empty and the next run seeds again.
|
|
484
|
+
\`npm run xano:deploy -- --reset\` gives a clean, re-seeded slate.
|
|
485
|
+
- **Updates are yours to take.** When a newer engine ships, a deploy offers it and never
|
|
486
|
+
applies it without a yes. \`npx xanosdk local update\` moves the pin on purpose,
|
|
487
|
+
and \`npx xanosdk local cache clear\` reclaims the disk space. To try another engine
|
|
488
|
+
without moving the pin, export \`XANOSDK_ENGINE_OVERRIDE\` with a version (\`v0.1.5\`)
|
|
489
|
+
or an engine archive path.
|
|
490
|
+
- **The rest of the CLI follows.** After a local deploy, \`npm run xano:test\`,
|
|
491
|
+
\`npx xanosdk tables\` and \`npx xanosdk status\` reach the engine with no flag.
|
|
492
|
+
\`npx xanosdk local stop <name>\` shuts it down.
|
|
493
|
+
|
|
494
|
+
## Deploy to Xano's cloud
|
|
428
495
|
|
|
429
496
|
\`\`\`bash
|
|
430
|
-
npx xanosdk login
|
|
431
|
-
npm run xano:deploy
|
|
497
|
+
npx xanosdk login # once, to authenticate against your Xano account
|
|
498
|
+
npm run xano:deploy:ephemeral # build the frontend, then ship it with the backend
|
|
432
499
|
\`\`\`
|
|
433
500
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
your changes in without re-seeding. Rows survive only in tables and columns that
|
|
446
|
-
keep their names \u2014 a rename drops the old one with its rows \u2014 and only while the
|
|
447
|
-
engine runs; an engine update or restart starts it empty and the next run seeds
|
|
448
|
-
again. \`npm run xano:deploy:local-engine -- --reset\` gives a clean, re-seeded slate.
|
|
501
|
+
That deploys the backend and the built frontend to a live **ephemeral** environment on
|
|
502
|
+
Xano and prints its URL. Run it again to refresh the same environment; if it expired, a
|
|
503
|
+
fresh one is created and the new URL is called out. \`npx xanosdk status\` says who you
|
|
504
|
+
are signed in as, which workspace you are bound to, and which environment this project
|
|
505
|
+
last deployed to \u2014 its URL, and when it expires \u2014 so you never have to remember the
|
|
506
|
+
environment's name. Your **workspace** is reached through a release (\`deploy --ephemeral --test\`,
|
|
507
|
+
\`release create\`, \`promote\`); see the
|
|
508
|
+
[deploying guide](https://github.com/xano-sdk/sdk/blob/main/guides/deploying.md).
|
|
509
|
+
|
|
510
|
+
The other scripts:
|
|
511
|
+
|
|
449
512
|
- \`npm run xano:deploy:frontend\` rebuilds the frontend and republishes it to the
|
|
450
513
|
environment this project last deployed to \u2014 no backend compile or import, so it
|
|
451
|
-
is the quick loop for UI-only changes. \`
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
your real workspace instead.
|
|
456
|
-
- \`npm run xano:export\` compiles the backend to \`workspace.json\` (don't commit it).
|
|
457
|
-
- \`npm run xano:deploy\` deploys the backend and the built frontend to a live
|
|
458
|
-
**ephemeral** environment and prints its URL. Run it again to refresh the same
|
|
459
|
-
environment; if it expired, a fresh one is created and the new URL is called out.
|
|
460
|
-
- \`npx xanosdk status\` says who you are signed in as, which workspace you are bound to, and
|
|
461
|
-
which environment this project last deployed to \u2014 its URL, and when it expires. You
|
|
462
|
-
never have to remember the environment's name.
|
|
514
|
+
is the quick loop for UI-only changes. After \`npm run xano:deploy\` the engine serves
|
|
515
|
+
it; \`npm run xano:deploy:frontend -- --to ephemeral\` sends it to an ephemeral instead,
|
|
516
|
+
and \`npx xanosdk publish ./frontend/dist --to workspace\` puts the same build in front
|
|
517
|
+
of your real workspace.
|
|
463
518
|
- \`npm run xano:test\` runs the tests the DEPLOYED environment carries \u2014 the \`tests\`
|
|
464
519
|
on a query/function/middleware and any \`workflowTest()\`. It compiles nothing, so
|
|
465
520
|
deploy first. A failing suite exits 5, distinct from a crash. \`npx xanosdk deploy
|
|
466
521
|
./xano/index.ts --test\` does both in one step.
|
|
522
|
+
- \`npm run xano:export\` compiles the backend to \`workspace.json\` (don't commit it).
|
|
467
523
|
|
|
468
524
|
## \`xano.lock\` \u2014 commit it
|
|
469
525
|
|
|
@@ -495,8 +551,9 @@ export again. Every \`lock\` subcommand finds \`xano/xano.lock\` from the projec
|
|
|
495
551
|
## The one contract
|
|
496
552
|
|
|
497
553
|
[\`frontend/src/lib/api.ts\`](frontend/src/lib/api.ts) takes request paths from
|
|
498
|
-
\`xano/routes.gen.ts\` (\`routePath("GET notes/{id}", { id })\`)
|
|
499
|
-
|
|
554
|
+
\`xano/routes.gen.ts\` (\`routePath("GET notes/{id}", { id })\`), request types from the
|
|
555
|
+
same file (\`RouteInputs["POST create_note"]\`, \`MessageInputs[...]\` for realtime), and
|
|
556
|
+
response types from the query defs (\`import type\` + \`InferResponse\`).
|
|
500
557
|
Never hand-type a URL or a request body \u2014 change a def and the frontend follows.
|
|
501
558
|
|
|
502
559
|
\`npm run xano:routes\` writes \`xano/routes.gen.ts\` from the defs; \`dev\`, \`build\`
|
|
@@ -537,6 +594,8 @@ Xano SDK is composable with other \`@xano-sdk/*\` packages:
|
|
|
537
594
|
|
|
538
595
|
None of these ship with the scaffold. Install one only when you need it \u2014 an
|
|
539
596
|
add-on you never register is weight in \`package.json\` for nothing.
|
|
597
|
+
|
|
598
|
+
${renderReadmeBuiltWith(sdkVersion)}
|
|
540
599
|
`;
|
|
541
600
|
}
|
|
542
601
|
function renderXanoIndex({ appName }) {
|
|
@@ -659,7 +718,7 @@ xano/
|
|
|
659
718
|
\`workflowTest({ name, stack })\` when the behavior spans several objects.
|
|
660
719
|
They live beside the code they cover and ship with it. See "Testing" below.
|
|
661
720
|
6. **Compile** with \`npm run xano:export\`, and **deploy** with
|
|
662
|
-
\`npm run xano:deploy\` (
|
|
721
|
+
\`npm run xano:deploy\` (it runs on the Xano Engine; no account needed). The first of either writes
|
|
663
722
|
\`xano/xano.lock\` \u2014 **commit it**. It pins every object's identity, so a later
|
|
664
723
|
rename renames the object instead of deleting and recreating it. See
|
|
665
724
|
"\`xano.lock\` \u2014 commit it" in the project README.
|
|
@@ -707,8 +766,11 @@ URL or a request body:
|
|
|
707
766
|
groups share is keyed \`"<group>:<VERB> <name>"\`). Run
|
|
708
767
|
\`npm run xano:routes\` after adding or renaming an endpoint (\`dev\`, \`build\` and
|
|
709
768
|
\`typecheck\` also run it) and commit the file.
|
|
710
|
-
- **
|
|
711
|
-
|
|
769
|
+
- **Request types** come from the same file: \`RouteInputs["POST create_note"]\`
|
|
770
|
+
(\`ChannelInputs\`/\`MessageInputs\` for realtime). For runtime validation,
|
|
771
|
+
\`npx xanosdk marketplace install zod\` adds zod schemas under the same keys.
|
|
772
|
+
- **Response types** come from the defs with \`import type\` \u2014 \`InferResponse\`
|
|
773
|
+
erases to nothing.
|
|
712
774
|
- Never import a def as a value in the frontend. Its \`s.*\`/\`c.*\` stack calls run
|
|
713
775
|
at module load, so one import for its \`getPath()\` pulls the backend graph it
|
|
714
776
|
references and the SDK runtime into the bundle.
|
|
@@ -720,8 +782,8 @@ function describeOrigin(o) {
|
|
|
720
782
|
return `workspace ${o.origin}`;
|
|
721
783
|
case "ephemeral":
|
|
722
784
|
return `ephemeral "${o.origin}"`;
|
|
723
|
-
case "local
|
|
724
|
-
return `
|
|
785
|
+
case "local":
|
|
786
|
+
return `Xano Engine "${o.origin}"`;
|
|
725
787
|
case "tenant":
|
|
726
788
|
return `tenant "${o.origin}"`;
|
|
727
789
|
case "release":
|
|
@@ -749,7 +811,7 @@ function renderCodegenMarker({ sdkVersion }, origin, generatedAt, report, files)
|
|
|
749
811
|
};
|
|
750
812
|
return JSON.stringify(files === void 0 ? head : decodeMarkerWith(head, files), null, 2) + "\n";
|
|
751
813
|
}
|
|
752
|
-
function renderCodegenReadme({ appName }, origin, envNames, preset) {
|
|
814
|
+
function renderCodegenReadme({ appName, sdkVersion }, origin, envNames, preset) {
|
|
753
815
|
const secrets = envNames.length === 0 ? "" : `
|
|
754
816
|
## Fill in the backend env values
|
|
755
817
|
|
|
@@ -776,16 +838,23 @@ cleartext, which is why it is gitignored too.
|
|
|
776
838
|
`;
|
|
777
839
|
return `# ${appName}
|
|
778
840
|
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
the pull carries a backend, not a UI.
|
|
841
|
+
${XANO_BADGE}
|
|
842
|
+
|
|
843
|
+
${renderReadmeDescriptionSlot(appName)}
|
|
783
844
|
|
|
784
|
-
|
|
845
|
+
The backend under [\`xano/\`](xano/) is TypeScript pulled from ${describeCommittedOrigin(origin)}
|
|
846
|
+
with the [Xano SDK](https://github.com/xano-sdk/sdk), and runs on [Xano](https://xano.com). The
|
|
847
|
+
${preset.label} frontend under [\`frontend/\`](frontend/) is a starter \u2014 the pull carries a
|
|
848
|
+
backend, not a UI.
|
|
849
|
+
|
|
850
|
+
## Run it
|
|
785
851
|
|
|
786
852
|
\`\`\`bash
|
|
787
|
-
|
|
788
|
-
npm run
|
|
853
|
+
npm run xano:deploy # on the Xano Engine, on this machine (no account needed)
|
|
854
|
+
npm run dev # the starter frontend, pointed at it
|
|
855
|
+
|
|
856
|
+
npx xanosdk login # once, to authenticate against your Xano account
|
|
857
|
+
npm run xano:deploy:ephemeral # typecheck, build the frontend, ship both to an ephemeral
|
|
789
858
|
\`\`\`
|
|
790
859
|
|
|
791
860
|
## Read this before deploying
|
|
@@ -793,10 +862,11 @@ npm run xano:deploy # typecheck, build the frontend, ship both
|
|
|
793
862
|
- **\`xano/\` is your source now** \u2014 edit it and commit it. \`npx xanosdk pull\` (or re-running
|
|
794
863
|
\`npx xanosdk init --from\`) refreshes it from a backend: it lists what will change and asks
|
|
795
864
|
first, keeps files you added, and overwrites the files it decodes \u2014 commit first.
|
|
796
|
-
- **\`npx xanosdk deploy\` is a full replace** of an **ephemeral** environment
|
|
797
|
-
(\`npm run xano:deploy\`), unless \`--keep-data\` merges into the one an earlier deploy
|
|
798
|
-
filled. A real workspace is reached with
|
|
799
|
-
\`npx xanosdk deploy --to workspace\`, which merge
|
|
865
|
+
- **\`npx xanosdk deploy\` is a full replace** of a Xano Engine or an **ephemeral** environment
|
|
866
|
+
(\`npm run xano:deploy:ephemeral\`), unless \`--keep-data\` merges into the one an earlier deploy
|
|
867
|
+
filled (\`npm run xano:deploy\` passes it). A real workspace is reached with
|
|
868
|
+
\`npx xanosdk promote <release>\` or \`npx xanosdk deploy --to workspace\`, which merge
|
|
869
|
+
and leave table rows alone.
|
|
800
870
|
- **This is schema only.** Table rows are not carried, and neither are payload sections
|
|
801
871
|
this SDK models no kind for. A deploy recreates the structure, not the data.
|
|
802
872
|
|
|
@@ -809,11 +879,13 @@ ${secrets}
|
|
|
809
879
|
npm run dev # run the starter frontend
|
|
810
880
|
npm run typecheck # the whole project, both halves
|
|
811
881
|
npm run xano:export # compile the backend to workspace.json (don't commit it)
|
|
812
|
-
npm run xano:routes # regenerate xano/routes.gen.ts
|
|
882
|
+
npm run xano:routes # regenerate xano/routes.gen.ts: the frontend's paths and request types
|
|
813
883
|
\`\`\`
|
|
814
884
|
|
|
815
885
|
[\`frontend/src/lib/api.ts\`](frontend/src/lib/api.ts) shows the one contract: paths
|
|
816
|
-
|
|
886
|
+
and request types from \`xano/routes.gen.ts\`, response types from the query defs in \`xano/\`.
|
|
887
|
+
|
|
888
|
+
${renderReadmeBuiltWith(sdkVersion)}
|
|
817
889
|
`;
|
|
818
890
|
}
|
|
819
891
|
function renderReadmeThemingSection(choice) {
|
|
@@ -877,7 +949,7 @@ function initLanding({ appName }) {
|
|
|
877
949
|
{ text: ")." }
|
|
878
950
|
],
|
|
879
951
|
[{ text: "Wire it into the UI from " }, { code: "frontend/src/lib/api.ts" }, { text: "." }],
|
|
880
|
-
[{ text: "
|
|
952
|
+
[{ text: "Run it on the Xano Engine: " }, { code: "npm run xano:deploy" }, { text: "." }]
|
|
881
953
|
],
|
|
882
954
|
cta: UI_DOCS_CTA
|
|
883
955
|
};
|
|
@@ -904,9 +976,9 @@ function codegenLanding({ appName }, origin) {
|
|
|
904
976
|
{ text: "." }
|
|
905
977
|
],
|
|
906
978
|
[
|
|
907
|
-
{ text: "
|
|
979
|
+
{ text: "Run it on the Xano Engine: " },
|
|
908
980
|
{ code: "npm run xano:deploy" },
|
|
909
|
-
{ text: " (a full replace of
|
|
981
|
+
{ text: " (a full replace of the Xano Engine)." }
|
|
910
982
|
]
|
|
911
983
|
],
|
|
912
984
|
cta: UI_DOCS_CTA
|
|
@@ -1063,9 +1135,9 @@ export function cn(...inputs: ClassValue[]) {
|
|
|
1063
1135
|
${extra}`;
|
|
1064
1136
|
}
|
|
1065
1137
|
function renderApiTs() {
|
|
1066
|
-
return `// The one contract: endpoint paths come from the generated
|
|
1067
|
-
//
|
|
1068
|
-
// or a request body: change a def and everything here follows.
|
|
1138
|
+
return `// The one contract: endpoint paths and request types come from the generated
|
|
1139
|
+
// route manifest, and response *types* from your xanosdk query defs. Never
|
|
1140
|
+
// hand-type a URL or a request body: change a def and everything here follows.
|
|
1069
1141
|
//
|
|
1070
1142
|
// Keep the backend out of the browser bundle:
|
|
1071
1143
|
// \u2022 Paths and verbs: \`routePath()\` / \`ROUTES\` from xano/routes.gen.ts, plain data
|
|
@@ -1073,16 +1145,20 @@ function renderApiTs() {
|
|
|
1073
1145
|
// regenerate it). Never import a def as a VALUE for its getPath()/verb:
|
|
1074
1146
|
// its s.*/c.* factory calls run at module load, so one import pulls in the
|
|
1075
1147
|
// backend graph it references and the SDK runtime that builds it.
|
|
1076
|
-
// \u2022
|
|
1148
|
+
// \u2022 Request types: \`RouteInputs["<VERB> <name>"]\` from the same file
|
|
1149
|
+
// (\`ChannelInputs\` / \`MessageInputs\` for realtime), types only. For
|
|
1150
|
+
// runtime validation, \`npx xanosdk marketplace install zod\` adds zod
|
|
1151
|
+
// schemas under the same keys.
|
|
1152
|
+
// \u2022 Response types: \`import type\` the def. InferResponse erases to nothing.
|
|
1077
1153
|
//
|
|
1078
1154
|
// Nothing here imports the manifest yet \u2014 an add-on's endpoints may already be
|
|
1079
1155
|
// in it. Wire an endpoint (one in xano/, or an add-on's) like:
|
|
1080
1156
|
//
|
|
1081
|
-
// import type {
|
|
1157
|
+
// import type { InferResponse } from "@xano/sdk";
|
|
1082
1158
|
// import type { createNoteQuery } from "../../../xano/api/create-note.js";
|
|
1083
|
-
// import { ROUTES, routePath } from "../../../xano/routes.gen.js";
|
|
1159
|
+
// import { ROUTES, routePath, type RouteInputs } from "../../../xano/routes.gen.js";
|
|
1084
1160
|
//
|
|
1085
|
-
// export type CreateNoteBody =
|
|
1161
|
+
// export type CreateNoteBody = RouteInputs["POST create_note"];
|
|
1086
1162
|
// export type Note = InferResponse<typeof createNoteQuery>;
|
|
1087
1163
|
//
|
|
1088
1164
|
// export async function createNote(body: CreateNoteBody): Promise<Note> {
|
|
@@ -1328,7 +1404,7 @@ export {};
|
|
|
1328
1404
|
}
|
|
1329
1405
|
function renderLayoutTs() {
|
|
1330
1406
|
return `// There is no server. The backend is Xano, reached through $lib/api.ts,
|
|
1331
|
-
// and \`npm run xano:deploy\` ships this app to a static host with no runtime.
|
|
1407
|
+
// and \`npm run xano:deploy:ephemeral\` ships this app to a static host with no runtime.
|
|
1332
1408
|
//
|
|
1333
1409
|
// prerender: true \u2014 every route is rendered to its own HTML file AT BUILD TIME
|
|
1334
1410
|
// and served as a real document. That is what makes each page load as itself
|
|
@@ -1788,7 +1864,7 @@ becomes its own HTML document at build time, so a page loads as itself rather
|
|
|
1788
1864
|
than as a shell that fills in afterwards, and an unmatched path returns a real
|
|
1789
1865
|
404 from [\`+error.svelte\`](frontend/src/routes/+error.svelte).
|
|
1790
1866
|
|
|
1791
|
-
> **There is no server.** \`npm run xano:deploy\` ships this app to a static host
|
|
1867
|
+
> **There is no server.** \`npm run xano:deploy:ephemeral\` ships this app to a static host
|
|
1792
1868
|
> with no runtime of its own; Xano is the backend, reached through
|
|
1793
1869
|
> [\`frontend/src/lib/api.ts\`](frontend/src/lib/api.ts). So \`+page.server.ts\`,
|
|
1794
1870
|
> form actions, and server \`load\` have nothing to run on \u2014 and **nothing warns
|
|
@@ -1969,6 +2045,9 @@ export {
|
|
|
1969
2045
|
checkWorkflowPath,
|
|
1970
2046
|
renderCheckWorkflow,
|
|
1971
2047
|
renderEnvExample,
|
|
2048
|
+
README_PATH,
|
|
2049
|
+
readmeBuiltWithVersion,
|
|
2050
|
+
refreshReadmeBuiltWith,
|
|
1972
2051
|
renderReadme,
|
|
1973
2052
|
renderXanoIndex,
|
|
1974
2053
|
renderXanoExampleMd,
|
|
@@ -1987,4 +2066,4 @@ export {
|
|
|
1987
2066
|
allFrontendPresets,
|
|
1988
2067
|
resolveFrameworkFlag
|
|
1989
2068
|
};
|
|
1990
|
-
//# sourceMappingURL=chunk-
|
|
2069
|
+
//# sourceMappingURL=chunk-EQFYOOO6.js.map
|
|
@@ -25,11 +25,11 @@ import {
|
|
|
25
25
|
isDeadResultItem,
|
|
26
26
|
isEmptyCustomize,
|
|
27
27
|
normalize
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-D3KEPRRN.js";
|
|
29
29
|
import {
|
|
30
30
|
f,
|
|
31
31
|
input
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-S56YBYMN.js";
|
|
33
33
|
import {
|
|
34
34
|
TAGS,
|
|
35
35
|
auth,
|
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
defaultNullable,
|
|
60
60
|
encodeField,
|
|
61
61
|
parseMethod
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-JIKGT7DO.js";
|
|
63
63
|
|
|
64
64
|
// src/codegen/report.ts
|
|
65
65
|
var AUDIENCE_ORDER = [
|
|
@@ -505,11 +505,6 @@ var DecodeContext = class {
|
|
|
505
505
|
* for `generate --out`. Only the caller knows the directory.
|
|
506
506
|
*/
|
|
507
507
|
secretsFile = WORKSPACE_SECRETS_FILE;
|
|
508
|
-
/**
|
|
509
|
-
* Whether the caller writes that sidecar at all. `--no-secrets` does not, and
|
|
510
|
-
* the report has to say so rather than promise a file and a restored gate.
|
|
511
|
-
*/
|
|
512
|
-
writesSecrets = true;
|
|
513
508
|
/** The barrel's `workspace("…")` name when the payload carries no workspace object. */
|
|
514
509
|
fallbackWorkspaceName = "workspace";
|
|
515
510
|
/** The import block of the file currently being generated. */
|
|
@@ -2026,4 +2021,4 @@ export {
|
|
|
2026
2021
|
decodeTableSchema,
|
|
2027
2022
|
decodeResponse
|
|
2028
2023
|
};
|
|
2029
|
-
//# sourceMappingURL=chunk-
|
|
2024
|
+
//# sourceMappingURL=chunk-FNLTFOUD.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
parsePathParams,
|
|
8
8
|
queryKind,
|
|
9
9
|
warnUnboundReturn
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VJFMUJWZ.js";
|
|
11
11
|
import {
|
|
12
12
|
workspaceKind
|
|
13
13
|
} from "./chunk-6JAEMMZ7.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
encodeMcpOauth,
|
|
17
17
|
refuseUnknown,
|
|
18
18
|
standaloneDefKind
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-5QMJOE2K.js";
|
|
20
20
|
import {
|
|
21
21
|
resolveAuthRef
|
|
22
22
|
} from "./chunk-45ZUMF4E.js";
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
registerSpec,
|
|
69
69
|
resolveEnumValue,
|
|
70
70
|
throwError
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-T4LJ5UR2.js";
|
|
72
72
|
import {
|
|
73
73
|
assertCanonical,
|
|
74
74
|
assertStoredName,
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
encodeExpression,
|
|
84
84
|
encodeRuntimeCondition,
|
|
85
85
|
tableKind
|
|
86
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-SLGJIWCY.js";
|
|
87
87
|
import {
|
|
88
88
|
brandDef
|
|
89
89
|
} from "./chunk-ERVIASGL.js";
|
|
@@ -99,15 +99,15 @@ import {
|
|
|
99
99
|
} from "./chunk-WTPZRR4I.js";
|
|
100
100
|
import {
|
|
101
101
|
emitDiagnostic
|
|
102
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-YHB34BN6.js";
|
|
103
103
|
import {
|
|
104
104
|
lockKey
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-5KJBWIDZ.js";
|
|
106
106
|
import {
|
|
107
107
|
HOSTED_FILE_SCHEME,
|
|
108
108
|
isHostedFile,
|
|
109
109
|
pendingHostedSrc
|
|
110
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-VQPDATQT.js";
|
|
111
111
|
import {
|
|
112
112
|
ANNOTATION_KEYS,
|
|
113
113
|
OPTION_KEYS,
|
|
@@ -121,10 +121,10 @@ import {
|
|
|
121
121
|
import {
|
|
122
122
|
impliedInputs,
|
|
123
123
|
isTriggerObjType
|
|
124
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-4XHAT7C5.js";
|
|
125
125
|
import {
|
|
126
126
|
encodeInput
|
|
127
|
-
} from "./chunk-
|
|
127
|
+
} from "./chunk-S56YBYMN.js";
|
|
128
128
|
import {
|
|
129
129
|
barePatternRefusal,
|
|
130
130
|
c,
|
|
@@ -3058,4 +3058,4 @@ export {
|
|
|
3058
3058
|
serializeBundle,
|
|
3059
3059
|
emitBundle
|
|
3060
3060
|
};
|
|
3061
|
-
//# sourceMappingURL=chunk-
|
|
3061
|
+
//# sourceMappingURL=chunk-FQ53GTII.js.map
|