langwatch 0.30.0 → 0.32.0
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/dist/add-MOAMRJEO.mjs +148 -0
- package/dist/add-QOYNG7P5.js +148 -0
- package/dist/add-QOYNG7P5.js.map +1 -0
- package/dist/archive-27T6YGIV.js +41 -0
- package/dist/archive-27T6YGIV.js.map +1 -0
- package/dist/archive-P3VF63FH.mjs +41 -0
- package/dist/assign-PQIAQAKQ.mjs +54 -0
- package/dist/assign-SL63BSCG.js +54 -0
- package/dist/assign-SL63BSCG.js.map +1 -0
- package/dist/chunk-2RZ2OCJO.mjs +196 -0
- package/dist/chunk-3BDHATON.js +36 -0
- package/dist/chunk-3BDHATON.js.map +1 -0
- package/dist/chunk-47UFY6NS.mjs +53 -0
- package/dist/chunk-5IDPSWOP.mjs +40 -0
- package/dist/chunk-724OLLZ4.js +264 -0
- package/dist/chunk-724OLLZ4.js.map +1 -0
- package/dist/chunk-AG7BWPMX.mjs +136 -0
- package/dist/chunk-AZ62JJ3B.js +42 -0
- package/dist/chunk-AZ62JJ3B.js.map +1 -0
- package/dist/chunk-BAA4HKOB.js +277 -0
- package/dist/chunk-BAA4HKOB.js.map +1 -0
- package/dist/chunk-BOOZEXYC.mjs +888 -0
- package/dist/chunk-C7ERF45K.mjs +96 -0
- package/dist/chunk-DITJKEFK.js +68 -0
- package/dist/chunk-DITJKEFK.js.map +1 -0
- package/dist/chunk-DJXBF6M5.js +96 -0
- package/dist/chunk-DJXBF6M5.js.map +1 -0
- package/dist/chunk-DUX6FC7T.js +80 -0
- package/dist/chunk-DUX6FC7T.js.map +1 -0
- package/dist/chunk-DYXCAWQR.mjs +34 -0
- package/dist/chunk-DYXCAWQR.mjs.map +1 -0
- package/dist/chunk-DZTI6GOB.mjs +36 -0
- package/dist/chunk-DZTI6GOB.mjs.map +1 -0
- package/dist/chunk-EF5MIPAR.js +888 -0
- package/dist/chunk-EF5MIPAR.js.map +1 -0
- package/dist/chunk-EGOB3GIL.mjs +156 -0
- package/dist/chunk-EGOB3GIL.mjs.map +1 -0
- package/dist/chunk-F46P5UKU.js +85 -0
- package/dist/chunk-F46P5UKU.js.map +1 -0
- package/dist/chunk-F6RB46UE.mjs +63 -0
- package/dist/chunk-FWAIC7PW.js +76 -0
- package/dist/chunk-FWAIC7PW.js.map +1 -0
- package/dist/chunk-G5UNILDP.mjs +85 -0
- package/dist/chunk-GA3YH27L.mjs +68 -0
- package/dist/chunk-GLXHCPIQ.js +101 -0
- package/dist/chunk-GLXHCPIQ.js.map +1 -0
- package/dist/chunk-H4QEDABK.mjs +51 -0
- package/dist/chunk-HB5T3N5J.js +80 -0
- package/dist/chunk-HB5T3N5J.js.map +1 -0
- package/dist/chunk-HLWOZ2EB.js +842 -0
- package/dist/chunk-HLWOZ2EB.js.map +1 -0
- package/dist/chunk-HP52NFHF.js +66 -0
- package/dist/chunk-HP52NFHF.js.map +1 -0
- package/dist/chunk-HP7E6S2J.mjs +101 -0
- package/dist/chunk-HQPK4YD5.js +300 -0
- package/dist/chunk-HQPK4YD5.js.map +1 -0
- package/dist/chunk-JHNMPNXQ.js +36 -0
- package/dist/chunk-JHNMPNXQ.js.map +1 -0
- package/dist/chunk-KJMU7OIX.mjs +264 -0
- package/dist/chunk-KJMU7OIX.mjs.map +1 -0
- package/dist/chunk-KMNF7M4B.mjs +36 -0
- package/dist/chunk-KZDNN6V2.js +996 -0
- package/dist/chunk-KZDNN6V2.js.map +1 -0
- package/dist/chunk-LMNMFLL2.js +663 -0
- package/dist/chunk-LMNMFLL2.js.map +1 -0
- package/dist/chunk-M566XQWU.mjs +277 -0
- package/dist/chunk-M566XQWU.mjs.map +1 -0
- package/dist/chunk-M5WZJP5D.mjs +103 -0
- package/dist/chunk-MGGXWCRG.js +40 -0
- package/dist/chunk-MGGXWCRG.js.map +1 -0
- package/dist/chunk-N7T37JOT.mjs +80 -0
- package/dist/chunk-NFDH7SPZ.js +136 -0
- package/dist/chunk-NFDH7SPZ.js.map +1 -0
- package/dist/chunk-NNMPHEXT.js +103 -0
- package/dist/chunk-NNMPHEXT.js.map +1 -0
- package/dist/chunk-NTUDKM6T.mjs +92 -0
- package/dist/chunk-NTWYYCHM.js +42 -0
- package/dist/chunk-NTWYYCHM.js.map +1 -0
- package/dist/chunk-OGAE7BVQ.js +67 -0
- package/dist/chunk-OGAE7BVQ.js.map +1 -0
- package/dist/chunk-OR6PODSA.mjs +90 -0
- package/dist/chunk-OYMASPIK.mjs +70 -0
- package/dist/chunk-Q2JOHFST.js +63 -0
- package/dist/chunk-Q2JOHFST.js.map +1 -0
- package/dist/chunk-Q74FQ227.js +346 -0
- package/dist/chunk-Q74FQ227.js.map +1 -0
- package/dist/chunk-QGCOYOIC.js +53 -0
- package/dist/chunk-QGCOYOIC.js.map +1 -0
- package/dist/chunk-QIQ43TQA.js +90 -0
- package/dist/chunk-QIQ43TQA.js.map +1 -0
- package/dist/chunk-QMULACG7.mjs +63 -0
- package/dist/chunk-QMULACG7.mjs.map +1 -0
- package/dist/chunk-S4NY6YX6.js +51 -0
- package/dist/chunk-S4NY6YX6.js.map +1 -0
- package/dist/chunk-S77DKBDN.mjs +66 -0
- package/dist/chunk-SSGVWEMU.js +63 -0
- package/dist/chunk-SSGVWEMU.js.map +1 -0
- package/dist/chunk-STHIUDKV.mjs +996 -0
- package/dist/chunk-STHIUDKV.mjs.map +1 -0
- package/dist/chunk-TBBDHGYC.js +54 -0
- package/dist/chunk-TBBDHGYC.js.map +1 -0
- package/dist/chunk-TCIUTFMR.js +70 -0
- package/dist/chunk-TCIUTFMR.js.map +1 -0
- package/dist/chunk-TLCLBKRY.mjs +346 -0
- package/dist/chunk-TYUGFAL7.js +92 -0
- package/dist/chunk-TYUGFAL7.js.map +1 -0
- package/dist/chunk-U47MQ6CS.mjs +67 -0
- package/dist/chunk-U47MQ6CS.mjs.map +1 -0
- package/dist/chunk-UTTNPIDQ.mjs +42 -0
- package/dist/chunk-VIN5IMHD.mjs +42 -0
- package/dist/chunk-VJQ224UL.mjs +54 -0
- package/dist/chunk-VYQL5AZX.js +34 -0
- package/dist/chunk-VYQL5AZX.js.map +1 -0
- package/dist/chunk-WEH25SMX.mjs +76 -0
- package/dist/chunk-X4BHZH7P.js +156 -0
- package/dist/chunk-X4BHZH7P.js.map +1 -0
- package/dist/chunk-Y4VNZ6M4.mjs +842 -0
- package/dist/chunk-Y4VNZ6M4.mjs.map +1 -0
- package/dist/chunk-YC2BS7T6.mjs +512 -0
- package/dist/chunk-YIZ6SACS.mjs +80 -0
- package/dist/chunk-Z7FKGTML.js +512 -0
- package/dist/chunk-Z7FKGTML.js.map +1 -0
- package/dist/chunk-ZACVIKN5.mjs +300 -0
- package/dist/chunk-ZJ2OCF6J.mjs +663 -0
- package/dist/chunk-ZRI7OCCW.js +196 -0
- package/dist/chunk-ZRI7OCCW.js.map +1 -0
- package/dist/cli/index.js +186 -194
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +179 -187
- package/dist/cli/index.mjs.map +1 -1
- package/dist/config-6UUJVACF.mjs +96 -0
- package/dist/config-X3I7DGVQ.js +96 -0
- package/dist/config-X3I7DGVQ.js.map +1 -0
- package/dist/create-2IEO4ZX4.js +88 -0
- package/dist/create-2IEO4ZX4.js.map +1 -0
- package/dist/create-3F5HX5B3.mjs +91 -0
- package/dist/create-6WJ6SBJO.js +94 -0
- package/dist/create-6WJ6SBJO.js.map +1 -0
- package/dist/create-7JGSFBTW.mjs +87 -0
- package/dist/create-AYJJXBC2.js +52 -0
- package/dist/create-AYJJXBC2.js.map +1 -0
- package/dist/create-BIGY3EQ6.mjs +23 -0
- package/dist/create-CA44XBJT.js +71 -0
- package/dist/create-CA44XBJT.js.map +1 -0
- package/dist/create-D2ORFKJP.js +50 -0
- package/dist/create-D2ORFKJP.js.map +1 -0
- package/dist/create-DKV6URUJ.js +72 -0
- package/dist/create-DKV6URUJ.js.map +1 -0
- package/dist/create-F2F5UHUJ.js +42 -0
- package/dist/create-F2F5UHUJ.js.map +1 -0
- package/dist/create-GAEK6325.mjs +48 -0
- package/dist/create-GUD6RFYX.js +43 -0
- package/dist/create-GUD6RFYX.js.map +1 -0
- package/dist/create-HKDHY2O6.js +91 -0
- package/dist/create-HKDHY2O6.js.map +1 -0
- package/dist/create-IODVYZYB.mjs +52 -0
- package/dist/create-JERWE4YC.mjs +50 -0
- package/dist/create-KMC3WSCT.mjs +88 -0
- package/dist/create-LARMUZWS.mjs +43 -0
- package/dist/create-MDQ6YQS4.js +48 -0
- package/dist/create-MDQ6YQS4.js.map +1 -0
- package/dist/create-NBEAPOWM.mjs +58 -0
- package/dist/create-NICGBVYD.mjs +71 -0
- package/dist/create-O5RWWYUM.mjs +92 -0
- package/dist/create-OX2JBYPI.mjs +88 -0
- package/dist/create-PMMZD4QG.js +87 -0
- package/dist/create-PMMZD4QG.js.map +1 -0
- package/dist/create-RSZDEZIM.js +88 -0
- package/dist/create-RSZDEZIM.js.map +1 -0
- package/dist/create-S27KIASK.mjs +42 -0
- package/dist/create-UDMY57FO.mjs +94 -0
- package/dist/create-UFOXKLLH.js +49 -0
- package/dist/create-UFOXKLLH.js.map +1 -0
- package/dist/create-V564OBON.js +58 -0
- package/dist/create-V564OBON.js.map +1 -0
- package/dist/create-W23UOAZG.mjs +72 -0
- package/dist/create-WVKW7367.mjs +75 -0
- package/dist/create-WYAPDDAM.mjs +49 -0
- package/dist/create-X4J3AVCI.js +75 -0
- package/dist/create-X4J3AVCI.js.map +1 -0
- package/dist/create-Y2NUKYDM.js +23 -0
- package/dist/create-Y2NUKYDM.js.map +1 -0
- package/dist/create-ZONLHV4L.js +92 -0
- package/dist/create-ZONLHV4L.js.map +1 -0
- package/dist/delete-3AXVNX5G.js +44 -0
- package/dist/delete-3AXVNX5G.js.map +1 -0
- package/dist/delete-467WPK4L.js +38 -0
- package/dist/delete-467WPK4L.js.map +1 -0
- package/dist/delete-5MMQ5P3V.js +52 -0
- package/dist/delete-5MMQ5P3V.js.map +1 -0
- package/dist/delete-5RFQI76Z.js +52 -0
- package/dist/delete-5RFQI76Z.js.map +1 -0
- package/dist/delete-63MC3QBF.mjs +39 -0
- package/dist/delete-73HQU4YW.mjs +59 -0
- package/dist/delete-BFDPRFNL.js +52 -0
- package/dist/delete-BFDPRFNL.js.map +1 -0
- package/dist/delete-BIS5JPJL.js +42 -0
- package/dist/delete-BIS5JPJL.js.map +1 -0
- package/dist/delete-BT7TB54M.mjs +61 -0
- package/dist/delete-DIDIXD5I.js +39 -0
- package/dist/delete-DIDIXD5I.js.map +1 -0
- package/dist/delete-EDQ3XAJ2.mjs +52 -0
- package/dist/delete-EQHKLRNQ.js +52 -0
- package/dist/delete-EQHKLRNQ.js.map +1 -0
- package/dist/delete-KCSCVRX6.js +57 -0
- package/dist/delete-KCSCVRX6.js.map +1 -0
- package/dist/delete-LLQ5DSGG.mjs +38 -0
- package/dist/delete-NODTWFQ6.js +61 -0
- package/dist/delete-NODTWFQ6.js.map +1 -0
- package/dist/delete-OHJMG35H.mjs +52 -0
- package/dist/delete-PF324UEB.mjs +57 -0
- package/dist/delete-PXQVUJXN.js +59 -0
- package/dist/delete-PXQVUJXN.js.map +1 -0
- package/dist/delete-QVFHBJC7.js +39 -0
- package/dist/delete-QVFHBJC7.js.map +1 -0
- package/dist/delete-RIZK2YRM.mjs +52 -0
- package/dist/delete-RTYC5A34.mjs +44 -0
- package/dist/delete-T3OZGZ4I.mjs +41 -0
- package/dist/delete-U6G3PJKT.js +41 -0
- package/dist/delete-U6G3PJKT.js.map +1 -0
- package/dist/delete-XXHNAJ5M.mjs +52 -0
- package/dist/delete-XY77TZWB.mjs +42 -0
- package/dist/delete-YWW7B36L.mjs +59 -0
- package/dist/delete-ZIKBQBF2.mjs +39 -0
- package/dist/delete-ZIU6F7T2.js +59 -0
- package/dist/delete-ZIU6F7T2.js.map +1 -0
- package/dist/download-JRMQTZVL.mjs +100 -0
- package/dist/download-OJXTZ2WZ.js +100 -0
- package/dist/download-OJXTZ2WZ.js.map +1 -0
- package/dist/duplicate-CIGHHVIY.js +45 -0
- package/dist/duplicate-CIGHHVIY.js.map +1 -0
- package/dist/duplicate-ZJOPIMLO.mjs +45 -0
- package/dist/export-7QD4ED7P.js +103 -0
- package/dist/export-7QD4ED7P.js.map +1 -0
- package/dist/export-DC57RFZO.mjs +103 -0
- package/dist/get-25PTUKII.js +52 -0
- package/dist/get-25PTUKII.js.map +1 -0
- package/dist/get-3AKHM4NS.js +49 -0
- package/dist/get-3AKHM4NS.js.map +1 -0
- package/dist/get-3ANHFKFY.js +66 -0
- package/dist/get-3ANHFKFY.js.map +1 -0
- package/dist/get-4NWG6MTQ.mjs +71 -0
- package/dist/get-4W5BKVYW.js +76 -0
- package/dist/get-4W5BKVYW.js.map +1 -0
- package/dist/get-5RBUPSUP.mjs +71 -0
- package/dist/get-6CL4KIYC.mjs +51 -0
- package/dist/get-6XHQ5B6Y.mjs +68 -0
- package/dist/get-7753CSKM.js +67 -0
- package/dist/get-7753CSKM.js.map +1 -0
- package/dist/get-7KNOHUCW.mjs +52 -0
- package/dist/get-CFRYM23T.js +52 -0
- package/dist/get-CFRYM23T.js.map +1 -0
- package/dist/get-DPGIAVJE.js +71 -0
- package/dist/get-DPGIAVJE.js.map +1 -0
- package/dist/get-DZ576XFJ.mjs +71 -0
- package/dist/get-GSGFGLVD.mjs +67 -0
- package/dist/get-HPEBDQNS.js +85 -0
- package/dist/get-HPEBDQNS.js.map +1 -0
- package/dist/get-HRCS47DD.js +68 -0
- package/dist/get-HRCS47DD.js.map +1 -0
- package/dist/get-J65ULALP.mjs +94 -0
- package/dist/get-JMF3BHEG.mjs +52 -0
- package/dist/get-L5Z6CYYP.mjs +149 -0
- package/dist/get-LEEDPXHL.mjs +70 -0
- package/dist/get-LI247BYM.mjs +56 -0
- package/dist/get-LJIQ6ZIP.js +149 -0
- package/dist/get-LJIQ6ZIP.js.map +1 -0
- package/dist/get-LND3DUED.js +56 -0
- package/dist/get-LND3DUED.js.map +1 -0
- package/dist/get-NBXFOHGN.mjs +49 -0
- package/dist/get-OBRSJMB5.js +51 -0
- package/dist/get-OBRSJMB5.js.map +1 -0
- package/dist/get-OH2NGDBI.js +71 -0
- package/dist/get-OH2NGDBI.js.map +1 -0
- package/dist/get-P6UZZMJX.js +71 -0
- package/dist/get-P6UZZMJX.js.map +1 -0
- package/dist/get-PKBJ2EFK.js +70 -0
- package/dist/get-PKBJ2EFK.js.map +1 -0
- package/dist/get-SNLY65YW.mjs +66 -0
- package/dist/get-T64N2HNI.mjs +85 -0
- package/dist/get-X5QWWYAA.js +94 -0
- package/dist/get-X5QWWYAA.js.map +1 -0
- package/dist/get-ZQ5CWP5V.mjs +76 -0
- package/dist/health-NFNEZRIQ.mjs +73 -0
- package/dist/health-NZ4PESON.js +73 -0
- package/dist/health-NZ4PESON.js.map +1 -0
- package/dist/implementation-C99N8Z8M.d.mts +716 -0
- package/dist/implementation-V2FQ1QKc.d.ts +716 -0
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +44 -44
- package/dist/index.mjs +18 -18
- package/dist/ingestion-templates-2KIDTXJL.js +169 -0
- package/dist/ingestion-templates-2KIDTXJL.js.map +1 -0
- package/dist/ingestion-templates-KTHR2V3Y.mjs +169 -0
- package/dist/ingestion-templates-KTHR2V3Y.mjs.map +1 -0
- package/dist/init-shell-3DBSCIMQ.js +72 -0
- package/dist/init-shell-3DBSCIMQ.js.map +1 -0
- package/dist/init-shell-BLLE7WMT.mjs +72 -0
- package/dist/init-shell-BLLE7WMT.mjs.map +1 -0
- package/dist/install-6Q7KUM4Q.mjs +191 -0
- package/dist/install-6Q7KUM4Q.mjs.map +1 -0
- package/dist/install-GKTJOOQ4.js +191 -0
- package/dist/install-GKTJOOQ4.js.map +1 -0
- package/dist/list-22ZONYFI.mjs +90 -0
- package/dist/list-25EAD5VD.mjs +82 -0
- package/dist/list-27BQKRCQ.js +90 -0
- package/dist/list-27BQKRCQ.js.map +1 -0
- package/dist/list-2SDWIS7O.mjs +83 -0
- package/dist/list-3452XTOY.mjs +78 -0
- package/dist/list-4SSQATXU.mjs +53 -0
- package/dist/list-4TVO77U3.js +82 -0
- package/dist/list-4TVO77U3.js.map +1 -0
- package/dist/list-4UQQWNG3.js +76 -0
- package/dist/list-4UQQWNG3.js.map +1 -0
- package/dist/list-73CK6BZQ.mjs +111 -0
- package/dist/list-AMVNOLUI.js +72 -0
- package/dist/list-AMVNOLUI.js.map +1 -0
- package/dist/list-BD4V72LU.mjs +86 -0
- package/dist/list-BWB5PM2C.js +83 -0
- package/dist/list-BWB5PM2C.js.map +1 -0
- package/dist/list-E2HC3ITM.js +104 -0
- package/dist/list-E2HC3ITM.js.map +1 -0
- package/dist/list-F3G7SVBR.mjs +104 -0
- package/dist/list-FDFENI2T.js +71 -0
- package/dist/list-FDFENI2T.js.map +1 -0
- package/dist/list-FP7EIHO3.js +75 -0
- package/dist/list-FP7EIHO3.js.map +1 -0
- package/dist/list-FYGMNDDI.mjs +75 -0
- package/dist/list-GL6SLAX6.mjs +82 -0
- package/dist/list-HVQKV7JY.js +87 -0
- package/dist/list-HVQKV7JY.js.map +1 -0
- package/dist/list-I3QC5R3P.js +111 -0
- package/dist/list-I3QC5R3P.js.map +1 -0
- package/dist/list-IOYQGVQG.js +75 -0
- package/dist/list-IOYQGVQG.js.map +1 -0
- package/dist/list-J5DDHZ6D.mjs +75 -0
- package/dist/list-JPCR43SK.mjs +87 -0
- package/dist/list-MOVC3633.js +78 -0
- package/dist/list-MOVC3633.js.map +1 -0
- package/dist/list-N5LMW2EC.mjs +122 -0
- package/dist/list-NGEPLHNH.js +78 -0
- package/dist/list-NGEPLHNH.js.map +1 -0
- package/dist/list-PQCFQJAH.js +75 -0
- package/dist/list-PQCFQJAH.js.map +1 -0
- package/dist/list-QL5QQZ3K.mjs +71 -0
- package/dist/list-RFL5FFQJ.mjs +72 -0
- package/dist/list-TAZJMEV3.js +53 -0
- package/dist/list-TAZJMEV3.js.map +1 -0
- package/dist/list-TLG7SECL.js +122 -0
- package/dist/list-TLG7SECL.js.map +1 -0
- package/dist/list-VBUU6MHZ.js +86 -0
- package/dist/list-VBUU6MHZ.js.map +1 -0
- package/dist/list-VZD5FJJJ.mjs +76 -0
- package/dist/list-W37YK2DI.js +85 -0
- package/dist/list-W37YK2DI.js.map +1 -0
- package/dist/list-W3QQGD7M.mjs +80 -0
- package/dist/list-WE3LEYFQ.js +78 -0
- package/dist/list-WE3LEYFQ.js.map +1 -0
- package/dist/list-WP25OIC2.js +80 -0
- package/dist/list-WP25OIC2.js.map +1 -0
- package/dist/list-YAQOAORG.js +80 -0
- package/dist/list-YAQOAORG.js.map +1 -0
- package/dist/list-YQRE3ZBP.mjs +78 -0
- package/dist/list-YSR7DSZ3.js +82 -0
- package/dist/list-YSR7DSZ3.js.map +1 -0
- package/dist/list-YSSWO6ZA.mjs +85 -0
- package/dist/list-ZDLJ7KL4.mjs +78 -0
- package/dist/list-ZQOWI6QZ.mjs +75 -0
- package/dist/list-ZSPLY2VA.mjs +80 -0
- package/dist/login-663GBIQU.mjs +231 -0
- package/dist/login-PAG22HTJ.js +231 -0
- package/dist/login-PAG22HTJ.js.map +1 -0
- package/dist/logout-device-J325Y37F.js +39 -0
- package/dist/logout-device-J325Y37F.js.map +1 -0
- package/dist/logout-device-JOPQKPFL.mjs +39 -0
- package/dist/observability-sdk/index.d.mts +3 -3
- package/dist/observability-sdk/index.d.ts +3 -3
- package/dist/observability-sdk/index.js +4 -4
- package/dist/observability-sdk/index.mjs +3 -3
- package/dist/observability-sdk/instrumentation/langchain/index.d.mts +1 -1
- package/dist/observability-sdk/instrumentation/langchain/index.d.ts +1 -1
- package/dist/observability-sdk/instrumentation/langchain/index.js +3 -3
- package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -1
- package/dist/observability-sdk/instrumentation/langchain/index.mjs +1 -1
- package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -1
- package/dist/observability-sdk/setup/node/index.js +4 -4
- package/dist/observability-sdk/setup/node/index.mjs +3 -3
- package/dist/open-2IGFGDDB.mjs +47 -0
- package/dist/open-TCBDPKWM.js +47 -0
- package/dist/open-TCBDPKWM.js.map +1 -0
- package/dist/pull-FYB6V5NG.mjs +27 -0
- package/dist/pull-WNAWUNPV.js +27 -0
- package/dist/pull-WNAWUNPV.js.map +1 -0
- package/dist/push-6MZUZIVP.mjs +27 -0
- package/dist/push-FN2CDHUA.js +27 -0
- package/dist/push-FN2CDHUA.js.map +1 -0
- package/dist/query-3THSHHW5.js +122 -0
- package/dist/query-3THSHHW5.js.map +1 -0
- package/dist/query-QG7HNZ7Z.mjs +122 -0
- package/dist/records-add-PZSIYFMP.js +98 -0
- package/dist/records-add-PZSIYFMP.js.map +1 -0
- package/dist/records-add-UPKUEBMZ.mjs +98 -0
- package/dist/records-delete-NBXES4VV.mjs +46 -0
- package/dist/records-delete-NV2R6S5W.js +46 -0
- package/dist/records-delete-NV2R6S5W.js.map +1 -0
- package/dist/records-list-H54PSTMP.js +89 -0
- package/dist/records-list-H54PSTMP.js.map +1 -0
- package/dist/records-list-IUS7YLQR.mjs +89 -0
- package/dist/records-update-H7WWAUYM.js +53 -0
- package/dist/records-update-H7WWAUYM.js.map +1 -0
- package/dist/records-update-P5VHCUJT.mjs +53 -0
- package/dist/remove-CGRK7RHE.mjs +114 -0
- package/dist/remove-IJN33W7A.js +114 -0
- package/dist/remove-IJN33W7A.js.map +1 -0
- package/dist/rename-XQLL4F4G.mjs +42 -0
- package/dist/rename-ZAAW4YOB.js +42 -0
- package/dist/rename-ZAAW4YOB.js.map +1 -0
- package/dist/request-increase-FLFEPGIC.js +37 -0
- package/dist/request-increase-FLFEPGIC.js.map +1 -0
- package/dist/request-increase-NHM27JXH.mjs +37 -0
- package/dist/restore-MFMWJXDI.js +73 -0
- package/dist/restore-MFMWJXDI.js.map +1 -0
- package/dist/restore-OVLJGAMV.mjs +73 -0
- package/dist/revoke-7YLORB2D.mjs +41 -0
- package/dist/revoke-I5QNEEE5.js +41 -0
- package/dist/revoke-I5QNEEE5.js.map +1 -0
- package/dist/revoke-S3JNSL7S.js +44 -0
- package/dist/revoke-S3JNSL7S.js.map +1 -0
- package/dist/revoke-ZBHCHOT7.mjs +44 -0
- package/dist/rotate-MALFSMNW.mjs +52 -0
- package/dist/rotate-RX7RPHR2.js +52 -0
- package/dist/rotate-RX7RPHR2.js.map +1 -0
- package/dist/run-37PVX3VX.js +83 -0
- package/dist/run-37PVX3VX.js.map +1 -0
- package/dist/run-HS7XAL7H.js +77 -0
- package/dist/run-HS7XAL7H.js.map +1 -0
- package/dist/run-IW3ZTZ56.mjs +83 -0
- package/dist/run-LIHUJRSL.js +131 -0
- package/dist/run-LIHUJRSL.js.map +1 -0
- package/dist/run-MRTMHFIO.mjs +142 -0
- package/dist/run-OW5GZBYE.mjs +131 -0
- package/dist/run-UB3A47QC.mjs +144 -0
- package/dist/run-YP6U63IC.js +142 -0
- package/dist/run-YP6U63IC.js.map +1 -0
- package/dist/run-YR4HZXEA.js +144 -0
- package/dist/run-YR4HZXEA.js.map +1 -0
- package/dist/run-YXS2M4RW.mjs +77 -0
- package/dist/search-237PMUD7.js +108 -0
- package/dist/search-237PMUD7.js.map +1 -0
- package/dist/search-SW3QCAB5.mjs +108 -0
- package/dist/set-6WIQ33I5.mjs +105 -0
- package/dist/set-E2SK37YE.js +105 -0
- package/dist/set-E2SK37YE.js.map +1 -0
- package/dist/set-IMUR6YJP.mjs +59 -0
- package/dist/set-KUEDM2OY.js +59 -0
- package/dist/set-KUEDM2OY.js.map +1 -0
- package/dist/status-5SUTIJSP.js +56 -0
- package/dist/status-5SUTIJSP.js.map +1 -0
- package/dist/status-G3PRLZ5U.mjs +153 -0
- package/dist/status-JPXHEPJN.js +120 -0
- package/dist/status-JPXHEPJN.js.map +1 -0
- package/dist/status-QILDFWNB.js +153 -0
- package/dist/status-QILDFWNB.js.map +1 -0
- package/dist/status-T3NZYEID.mjs +120 -0
- package/dist/status-T3NZYEID.mjs.map +1 -0
- package/dist/status-YI7W7MPT.mjs +56 -0
- package/dist/sync-MDSHPQ7D.mjs +132 -0
- package/dist/sync-VNJWS43B.js +132 -0
- package/dist/sync-VNJWS43B.js.map +1 -0
- package/dist/tail-MPIISBM5.mjs +108 -0
- package/dist/tail-OCZVOWEE.js +108 -0
- package/dist/tail-OCZVOWEE.js.map +1 -0
- package/dist/types-B9qTksgY.d.mts +14775 -0
- package/dist/types-BnNfjAE_.d.ts +14775 -0
- package/dist/unset-TSHEKAZC.js +107 -0
- package/dist/unset-TSHEKAZC.js.map +1 -0
- package/dist/unset-VR3N4YHI.mjs +107 -0
- package/dist/update-5G4AUALT.mjs +51 -0
- package/dist/update-5KUZNTSD.mjs +65 -0
- package/dist/update-6XXVXEC4.mjs +63 -0
- package/dist/update-7CTPDWSE.js +66 -0
- package/dist/update-7CTPDWSE.js.map +1 -0
- package/dist/update-7IZ355SN.js +71 -0
- package/dist/update-7IZ355SN.js.map +1 -0
- package/dist/update-A4HC3FKK.mjs +63 -0
- package/dist/update-EVUCQQYQ.js +79 -0
- package/dist/update-EVUCQQYQ.js.map +1 -0
- package/dist/update-F57XZZJL.mjs +48 -0
- package/dist/update-FY6JBFMK.js +61 -0
- package/dist/update-FY6JBFMK.js.map +1 -0
- package/dist/update-GMWZGJHJ.mjs +75 -0
- package/dist/update-H2L6ZBKK.js +48 -0
- package/dist/update-H2L6ZBKK.js.map +1 -0
- package/dist/update-HDPEYMD5.mjs +66 -0
- package/dist/update-HX7CX2ZY.mjs +83 -0
- package/dist/update-I5PV7ARJ.js +63 -0
- package/dist/update-I5PV7ARJ.js.map +1 -0
- package/dist/update-JVUDSQSN.mjs +106 -0
- package/dist/update-L2WS2LBI.mjs +48 -0
- package/dist/update-N3Y3XKPX.js +51 -0
- package/dist/update-N3Y3XKPX.js.map +1 -0
- package/dist/update-OBVQGGK3.js +106 -0
- package/dist/update-OBVQGGK3.js.map +1 -0
- package/dist/update-U57RYVPO.mjs +61 -0
- package/dist/update-UW5OV3FU.mjs +76 -0
- package/dist/update-VY5G6XFC.mjs +79 -0
- package/dist/update-WFSGSU23.js +48 -0
- package/dist/update-WFSGSU23.js.map +1 -0
- package/dist/update-XE5H6ZT4.js +63 -0
- package/dist/update-XE5H6ZT4.js.map +1 -0
- package/dist/update-XUDTBVME.js +76 -0
- package/dist/update-XUDTBVME.js.map +1 -0
- package/dist/update-YTPAHPFE.mjs +71 -0
- package/dist/update-ZLWDKSXC.js +65 -0
- package/dist/update-ZLWDKSXC.js.map +1 -0
- package/dist/update-ZPOWV2DO.js +75 -0
- package/dist/update-ZPOWV2DO.js.map +1 -0
- package/dist/update-ZSYVB7P2.js +83 -0
- package/dist/update-ZSYVB7P2.js.map +1 -0
- package/dist/upload-ALJUF2KN.mjs +80 -0
- package/dist/upload-ZCJI5ZQT.js +80 -0
- package/dist/upload-ZCJI5ZQT.js.map +1 -0
- package/dist/versions-CTHDPZK7.js +85 -0
- package/dist/versions-CTHDPZK7.js.map +1 -0
- package/dist/versions-JATWW4WF.mjs +85 -0
- package/dist/whoami-EI52YRCH.js +30 -0
- package/dist/whoami-EI52YRCH.js.map +1 -0
- package/dist/whoami-KGRA4QEY.mjs +30 -0
- package/dist/wrap-DHIOJOOV.mjs +34 -0
- package/dist/wrap-DHIOJOOV.mjs.map +1 -0
- package/dist/wrap-PLAHCHCP.js +34 -0
- package/dist/wrap-PLAHCHCP.js.map +1 -0
- package/package.json +4 -5
- package/dist/add-BCQPBWEE.js +0 -148
- package/dist/add-BCQPBWEE.js.map +0 -1
- package/dist/add-NTGJL2CX.mjs +0 -148
- package/dist/archive-BO7SNPHL.js +0 -41
- package/dist/archive-BO7SNPHL.js.map +0 -1
- package/dist/archive-RHIZYPNS.mjs +0 -41
- package/dist/assign-56XQOSK3.mjs +0 -54
- package/dist/assign-I2JW6DNX.js +0 -54
- package/dist/assign-I2JW6DNX.js.map +0 -1
- package/dist/chunk-25RYLDHZ.js +0 -346
- package/dist/chunk-25RYLDHZ.js.map +0 -1
- package/dist/chunk-2FCA2CRB.mjs +0 -512
- package/dist/chunk-2I6DFG3T.js +0 -36
- package/dist/chunk-2I6DFG3T.js.map +0 -1
- package/dist/chunk-5B7IKUNG.js +0 -297
- package/dist/chunk-5B7IKUNG.js.map +0 -1
- package/dist/chunk-6HB4LUF2.js +0 -42
- package/dist/chunk-6HB4LUF2.js.map +0 -1
- package/dist/chunk-6MVAXO5A.mjs +0 -263
- package/dist/chunk-6MVAXO5A.mjs.map +0 -1
- package/dist/chunk-72IQOPR2.js +0 -76
- package/dist/chunk-72IQOPR2.js.map +0 -1
- package/dist/chunk-7BS33JNZ.mjs +0 -53
- package/dist/chunk-7KTDTNXT.mjs +0 -297
- package/dist/chunk-7KTDTNXT.mjs.map +0 -1
- package/dist/chunk-A7T4DZKC.js +0 -263
- package/dist/chunk-A7T4DZKC.js.map +0 -1
- package/dist/chunk-ALG4K7WV.mjs +0 -90
- package/dist/chunk-AVCJRGOB.js +0 -68
- package/dist/chunk-AVCJRGOB.js.map +0 -1
- package/dist/chunk-BAT3CBL7.mjs +0 -34
- package/dist/chunk-BAT3CBL7.mjs.map +0 -1
- package/dist/chunk-BLLBUKUY.mjs +0 -66
- package/dist/chunk-BOTX7OBC.js +0 -661
- package/dist/chunk-BOTX7OBC.js.map +0 -1
- package/dist/chunk-C6KCPPDE.mjs +0 -80
- package/dist/chunk-CBKUU3DP.mjs +0 -300
- package/dist/chunk-CQSAZUGQ.js +0 -53
- package/dist/chunk-CQSAZUGQ.js.map +0 -1
- package/dist/chunk-CSTSXKEO.js +0 -103
- package/dist/chunk-CSTSXKEO.js.map +0 -1
- package/dist/chunk-D4TPA4ZM.js +0 -300
- package/dist/chunk-D4TPA4ZM.js.map +0 -1
- package/dist/chunk-DVY534IX.js +0 -63
- package/dist/chunk-DVY534IX.js.map +0 -1
- package/dist/chunk-DYHYEMX7.js +0 -196
- package/dist/chunk-DYHYEMX7.js.map +0 -1
- package/dist/chunk-E2L65VBA.js +0 -40
- package/dist/chunk-E2L65VBA.js.map +0 -1
- package/dist/chunk-E6LJUX36.js +0 -70
- package/dist/chunk-E6LJUX36.js.map +0 -1
- package/dist/chunk-EY3RI65X.js +0 -80
- package/dist/chunk-EY3RI65X.js.map +0 -1
- package/dist/chunk-F4UXJDGZ.mjs +0 -42
- package/dist/chunk-FFTW6SV4.mjs +0 -68
- package/dist/chunk-FJHSBSAP.mjs +0 -36
- package/dist/chunk-FUNE35XZ.js +0 -80
- package/dist/chunk-FUNE35XZ.js.map +0 -1
- package/dist/chunk-GNBFS5EQ.mjs +0 -17
- package/dist/chunk-GNBFS5EQ.mjs.map +0 -1
- package/dist/chunk-I5DYFMEZ.js +0 -17
- package/dist/chunk-I5DYFMEZ.js.map +0 -1
- package/dist/chunk-IBUFY5TJ.js +0 -67
- package/dist/chunk-IBUFY5TJ.js.map +0 -1
- package/dist/chunk-IGRJP4RX.mjs +0 -76
- package/dist/chunk-JBZRGURS.mjs +0 -40
- package/dist/chunk-K45NQQ7F.js +0 -85
- package/dist/chunk-K45NQQ7F.js.map +0 -1
- package/dist/chunk-KCDBRFHE.js +0 -96
- package/dist/chunk-KCDBRFHE.js.map +0 -1
- package/dist/chunk-KDX56WS2.mjs +0 -101
- package/dist/chunk-LCKB2Z5Y.js +0 -34
- package/dist/chunk-LCKB2Z5Y.js.map +0 -1
- package/dist/chunk-LIPRXHHB.js +0 -101
- package/dist/chunk-LIPRXHHB.js.map +0 -1
- package/dist/chunk-MSGYVS7X.mjs +0 -136
- package/dist/chunk-N7MVAEQX.js +0 -888
- package/dist/chunk-N7MVAEQX.js.map +0 -1
- package/dist/chunk-NJICHVPX.mjs +0 -70
- package/dist/chunk-NOUIWZCK.js +0 -136
- package/dist/chunk-NOUIWZCK.js.map +0 -1
- package/dist/chunk-NTUIOWUM.mjs +0 -888
- package/dist/chunk-NZT2VUX5.mjs +0 -54
- package/dist/chunk-OJ2RV3YY.js +0 -66
- package/dist/chunk-OJ2RV3YY.js.map +0 -1
- package/dist/chunk-P27JS2XK.mjs +0 -96
- package/dist/chunk-PWXUXMNV.js +0 -663
- package/dist/chunk-PWXUXMNV.js.map +0 -1
- package/dist/chunk-QH6442NY.mjs +0 -663
- package/dist/chunk-QVBXHLXS.mjs +0 -103
- package/dist/chunk-SDUILEFR.mjs +0 -661
- package/dist/chunk-SDUILEFR.mjs.map +0 -1
- package/dist/chunk-SFWGJNWG.mjs +0 -196
- package/dist/chunk-T46Y7B2D.mjs +0 -63
- package/dist/chunk-T6LELB2A.mjs +0 -51
- package/dist/chunk-U6BL2GLB.js +0 -54
- package/dist/chunk-U6BL2GLB.js.map +0 -1
- package/dist/chunk-U6UYZ7VC.js +0 -63
- package/dist/chunk-U6UYZ7VC.js.map +0 -1
- package/dist/chunk-VGZOUL5J.mjs +0 -285
- package/dist/chunk-VGZOUL5J.mjs.map +0 -1
- package/dist/chunk-VTHIHR22.mjs +0 -42
- package/dist/chunk-VW3GTPRE.mjs +0 -67
- package/dist/chunk-VW3GTPRE.mjs.map +0 -1
- package/dist/chunk-WDGR54P5.mjs +0 -80
- package/dist/chunk-WKK33HHX.mjs +0 -63
- package/dist/chunk-WKK33HHX.mjs.map +0 -1
- package/dist/chunk-XKCTA4Q2.js +0 -51
- package/dist/chunk-XKCTA4Q2.js.map +0 -1
- package/dist/chunk-XMVWAFHX.js +0 -90
- package/dist/chunk-XMVWAFHX.js.map +0 -1
- package/dist/chunk-XQOBW32F.js +0 -512
- package/dist/chunk-XQOBW32F.js.map +0 -1
- package/dist/chunk-XT7GI3H7.js +0 -92
- package/dist/chunk-XT7GI3H7.js.map +0 -1
- package/dist/chunk-Y5YA24Y4.js +0 -42
- package/dist/chunk-Y5YA24Y4.js.map +0 -1
- package/dist/chunk-YG3K5XBQ.mjs +0 -346
- package/dist/chunk-YN2GYHG3.js +0 -285
- package/dist/chunk-YN2GYHG3.js.map +0 -1
- package/dist/chunk-ZRCDO3D5.mjs +0 -92
- package/dist/chunk-ZWCPSY4D.mjs +0 -85
- package/dist/config-FY4AVETK.js +0 -96
- package/dist/config-FY4AVETK.js.map +0 -1
- package/dist/config-Z3UAKGVH.mjs +0 -96
- package/dist/create-2JIJVWOR.mjs +0 -75
- package/dist/create-4IE4Y2SF.js +0 -52
- package/dist/create-4IE4Y2SF.js.map +0 -1
- package/dist/create-4IPHZC3V.js +0 -88
- package/dist/create-4IPHZC3V.js.map +0 -1
- package/dist/create-4TIOBNAA.mjs +0 -52
- package/dist/create-7OBC3X6K.mjs +0 -48
- package/dist/create-BL7TOIIF.js +0 -72
- package/dist/create-BL7TOIIF.js.map +0 -1
- package/dist/create-CMBNVJDE.mjs +0 -94
- package/dist/create-DUMUVRTI.mjs +0 -91
- package/dist/create-H4OG6VHE.js +0 -92
- package/dist/create-H4OG6VHE.js.map +0 -1
- package/dist/create-IQDZNSVC.js +0 -42
- package/dist/create-IQDZNSVC.js.map +0 -1
- package/dist/create-IZ7SBQS5.js +0 -23
- package/dist/create-IZ7SBQS5.js.map +0 -1
- package/dist/create-JDNZHYOR.mjs +0 -43
- package/dist/create-K2LDICOT.js +0 -58
- package/dist/create-K2LDICOT.js.map +0 -1
- package/dist/create-KGMGOFZN.mjs +0 -88
- package/dist/create-KJ75BZEJ.js +0 -75
- package/dist/create-KJ75BZEJ.js.map +0 -1
- package/dist/create-LYK356PR.js +0 -88
- package/dist/create-LYK356PR.js.map +0 -1
- package/dist/create-MM5IRL2S.js +0 -91
- package/dist/create-MM5IRL2S.js.map +0 -1
- package/dist/create-MMDDO3PB.mjs +0 -87
- package/dist/create-NM7P2DCT.mjs +0 -49
- package/dist/create-O4OOFM2G.js +0 -71
- package/dist/create-O4OOFM2G.js.map +0 -1
- package/dist/create-OCRBRM2G.js +0 -87
- package/dist/create-OCRBRM2G.js.map +0 -1
- package/dist/create-QQ6FUVKJ.js +0 -94
- package/dist/create-QQ6FUVKJ.js.map +0 -1
- package/dist/create-SKYE43CO.js +0 -43
- package/dist/create-SKYE43CO.js.map +0 -1
- package/dist/create-TBL2OR4U.mjs +0 -88
- package/dist/create-TGEYW3XC.js +0 -48
- package/dist/create-TGEYW3XC.js.map +0 -1
- package/dist/create-UHQ54VS7.mjs +0 -58
- package/dist/create-UPM5ZYUZ.mjs +0 -42
- package/dist/create-WCMYN6L3.mjs +0 -50
- package/dist/create-WL6QJWQC.mjs +0 -71
- package/dist/create-WPQN7MBG.js +0 -50
- package/dist/create-WPQN7MBG.js.map +0 -1
- package/dist/create-X4GUHVTD.mjs +0 -72
- package/dist/create-XWVUSGYK.mjs +0 -23
- package/dist/create-YD5AT5LO.js +0 -49
- package/dist/create-YD5AT5LO.js.map +0 -1
- package/dist/create-YYFTCL3H.mjs +0 -92
- package/dist/delete-3IVPCPZC.js +0 -52
- package/dist/delete-3IVPCPZC.js.map +0 -1
- package/dist/delete-53YPK4BT.js +0 -39
- package/dist/delete-53YPK4BT.js.map +0 -1
- package/dist/delete-6LHKOZQZ.js +0 -59
- package/dist/delete-6LHKOZQZ.js.map +0 -1
- package/dist/delete-6Q4LPBCD.js +0 -38
- package/dist/delete-6Q4LPBCD.js.map +0 -1
- package/dist/delete-C3WRIBAL.mjs +0 -52
- package/dist/delete-DK7XLD4N.js +0 -44
- package/dist/delete-DK7XLD4N.js.map +0 -1
- package/dist/delete-DO4LSCUW.js +0 -42
- package/dist/delete-DO4LSCUW.js.map +0 -1
- package/dist/delete-GGBF26W2.mjs +0 -39
- package/dist/delete-IOV33BOC.mjs +0 -52
- package/dist/delete-IQPGNG3Y.js +0 -39
- package/dist/delete-IQPGNG3Y.js.map +0 -1
- package/dist/delete-K6N47ZLX.js +0 -57
- package/dist/delete-K6N47ZLX.js.map +0 -1
- package/dist/delete-KX4VUL2C.mjs +0 -59
- package/dist/delete-NRJXAXQ2.mjs +0 -57
- package/dist/delete-NSGIFPWK.js +0 -59
- package/dist/delete-NSGIFPWK.js.map +0 -1
- package/dist/delete-O2ZOJT6O.mjs +0 -44
- package/dist/delete-ODSJGPKL.mjs +0 -52
- package/dist/delete-OGBMBW65.mjs +0 -59
- package/dist/delete-OYBYDUGN.js +0 -41
- package/dist/delete-OYBYDUGN.js.map +0 -1
- package/dist/delete-PWAPCGIC.mjs +0 -41
- package/dist/delete-QK56UT6L.mjs +0 -38
- package/dist/delete-QL3QTZHM.js +0 -52
- package/dist/delete-QL3QTZHM.js.map +0 -1
- package/dist/delete-QMWRNRJ3.mjs +0 -52
- package/dist/delete-QSRX5BV6.mjs +0 -42
- package/dist/delete-QUO3E3KK.js +0 -52
- package/dist/delete-QUO3E3KK.js.map +0 -1
- package/dist/delete-TRLG55RC.js +0 -52
- package/dist/delete-TRLG55RC.js.map +0 -1
- package/dist/delete-TU2JE6PT.mjs +0 -61
- package/dist/delete-UKBO6KU5.js +0 -61
- package/dist/delete-UKBO6KU5.js.map +0 -1
- package/dist/delete-XV3FFG7P.mjs +0 -39
- package/dist/download-JEJJA6DV.mjs +0 -100
- package/dist/download-K2DLSB5R.js +0 -100
- package/dist/download-K2DLSB5R.js.map +0 -1
- package/dist/duplicate-2TQJNHTA.js +0 -45
- package/dist/duplicate-2TQJNHTA.js.map +0 -1
- package/dist/duplicate-FXY4IYWC.mjs +0 -45
- package/dist/export-SM5GXH4S.mjs +0 -103
- package/dist/export-TCDER22C.js +0 -103
- package/dist/export-TCDER22C.js.map +0 -1
- package/dist/get-2SLOZIPN.js +0 -56
- package/dist/get-2SLOZIPN.js.map +0 -1
- package/dist/get-3LMPNC73.mjs +0 -149
- package/dist/get-3ZKC5CVY.mjs +0 -68
- package/dist/get-7OE62A5G.mjs +0 -71
- package/dist/get-A5BA32NL.js +0 -52
- package/dist/get-A5BA32NL.js.map +0 -1
- package/dist/get-AJW7Y3HU.mjs +0 -51
- package/dist/get-ASKIVMCX.js +0 -68
- package/dist/get-ASKIVMCX.js.map +0 -1
- package/dist/get-CXEFUZRR.js +0 -49
- package/dist/get-CXEFUZRR.js.map +0 -1
- package/dist/get-EUFFPDDE.js +0 -52
- package/dist/get-EUFFPDDE.js.map +0 -1
- package/dist/get-GOVIRAZM.js +0 -71
- package/dist/get-GOVIRAZM.js.map +0 -1
- package/dist/get-GVKH5CK6.mjs +0 -94
- package/dist/get-H3QB47KL.js +0 -70
- package/dist/get-H3QB47KL.js.map +0 -1
- package/dist/get-HWZLCJHR.mjs +0 -52
- package/dist/get-IF7MBWBU.js +0 -67
- package/dist/get-IF7MBWBU.js.map +0 -1
- package/dist/get-J6RBO5FC.mjs +0 -71
- package/dist/get-JN4XRABY.mjs +0 -66
- package/dist/get-JUNLBFPQ.mjs +0 -76
- package/dist/get-KCPTPAZQ.js +0 -149
- package/dist/get-KCPTPAZQ.js.map +0 -1
- package/dist/get-LEX5DHEH.mjs +0 -70
- package/dist/get-MIPHEIIS.js +0 -76
- package/dist/get-MIPHEIIS.js.map +0 -1
- package/dist/get-MVVI5UBJ.js +0 -71
- package/dist/get-MVVI5UBJ.js.map +0 -1
- package/dist/get-MZSC4XTK.mjs +0 -56
- package/dist/get-O74QPFVW.js +0 -94
- package/dist/get-O74QPFVW.js.map +0 -1
- package/dist/get-PDMFBUS6.js +0 -51
- package/dist/get-PDMFBUS6.js.map +0 -1
- package/dist/get-PVJOVUY2.js +0 -85
- package/dist/get-PVJOVUY2.js.map +0 -1
- package/dist/get-PZFFQGHE.mjs +0 -49
- package/dist/get-RBZCE26R.mjs +0 -67
- package/dist/get-RZOK67QH.mjs +0 -52
- package/dist/get-WYN27ZYK.mjs +0 -71
- package/dist/get-X2E3KFBO.mjs +0 -85
- package/dist/get-XGQTOUUA.js +0 -71
- package/dist/get-XGQTOUUA.js.map +0 -1
- package/dist/get-Y45EY5GL.js +0 -66
- package/dist/get-Y45EY5GL.js.map +0 -1
- package/dist/health-G7QIL32K.js +0 -73
- package/dist/health-G7QIL32K.js.map +0 -1
- package/dist/health-K4TNDKO5.mjs +0 -73
- package/dist/implementation-BjKH8hfM.d.ts +0 -716
- package/dist/implementation-DVeJmBaC.d.mts +0 -716
- package/dist/ingestion-templates-4JIA7SSF.mjs +0 -185
- package/dist/ingestion-templates-4JIA7SSF.mjs.map +0 -1
- package/dist/ingestion-templates-ZV2373JE.js +0 -185
- package/dist/ingestion-templates-ZV2373JE.js.map +0 -1
- package/dist/init-shell-MCX27UIL.mjs +0 -71
- package/dist/init-shell-MCX27UIL.mjs.map +0 -1
- package/dist/init-shell-YK7WR2C2.js +0 -71
- package/dist/init-shell-YK7WR2C2.js.map +0 -1
- package/dist/list-2NIHHNHH.js +0 -71
- package/dist/list-2NIHHNHH.js.map +0 -1
- package/dist/list-2POSB4AL.mjs +0 -111
- package/dist/list-2QL7GRGM.mjs +0 -87
- package/dist/list-3PM76NUS.js +0 -80
- package/dist/list-3PM76NUS.js.map +0 -1
- package/dist/list-4GZTZHNR.js +0 -82
- package/dist/list-4GZTZHNR.js.map +0 -1
- package/dist/list-4HSUMNXW.mjs +0 -76
- package/dist/list-4K4RX2Y2.js +0 -78
- package/dist/list-4K4RX2Y2.js.map +0 -1
- package/dist/list-6BIZYEPW.js +0 -90
- package/dist/list-6BIZYEPW.js.map +0 -1
- package/dist/list-BB43NKUM.mjs +0 -53
- package/dist/list-BC2OES2G.mjs +0 -104
- package/dist/list-C2IXWMFN.mjs +0 -78
- package/dist/list-C3674FXP.mjs +0 -75
- package/dist/list-D64DW6VQ.js +0 -83
- package/dist/list-D64DW6VQ.js.map +0 -1
- package/dist/list-DVGDEGQH.mjs +0 -82
- package/dist/list-E2Q7UXQN.js +0 -72
- package/dist/list-E2Q7UXQN.js.map +0 -1
- package/dist/list-FAHNBAHW.js +0 -78
- package/dist/list-FAHNBAHW.js.map +0 -1
- package/dist/list-FAUMOBHA.mjs +0 -80
- package/dist/list-FKDR27HO.mjs +0 -75
- package/dist/list-FNPC3YED.mjs +0 -78
- package/dist/list-FNVZXYIS.js +0 -80
- package/dist/list-FNVZXYIS.js.map +0 -1
- package/dist/list-G3NQU4CF.mjs +0 -122
- package/dist/list-G4KTNT7Z.mjs +0 -86
- package/dist/list-GTYDZ4BW.mjs +0 -90
- package/dist/list-IPROZBHH.js +0 -122
- package/dist/list-IPROZBHH.js.map +0 -1
- package/dist/list-J5LSLPUA.js +0 -75
- package/dist/list-J5LSLPUA.js.map +0 -1
- package/dist/list-J5RLSPXZ.js +0 -104
- package/dist/list-J5RLSPXZ.js.map +0 -1
- package/dist/list-JIRLV2GF.js +0 -76
- package/dist/list-JIRLV2GF.js.map +0 -1
- package/dist/list-JSQW2CEJ.js +0 -53
- package/dist/list-JSQW2CEJ.js.map +0 -1
- package/dist/list-KDRFJ76E.mjs +0 -85
- package/dist/list-KRUADMDD.js +0 -75
- package/dist/list-KRUADMDD.js.map +0 -1
- package/dist/list-KX7MEJPP.mjs +0 -71
- package/dist/list-LLIEQUMO.js +0 -111
- package/dist/list-LLIEQUMO.js.map +0 -1
- package/dist/list-OHV42MFI.js +0 -85
- package/dist/list-OHV42MFI.js.map +0 -1
- package/dist/list-OQNU4RZK.mjs +0 -75
- package/dist/list-OVSKCRLK.mjs +0 -72
- package/dist/list-RQP6FA2U.mjs +0 -83
- package/dist/list-TD43XBFH.js +0 -86
- package/dist/list-TD43XBFH.js.map +0 -1
- package/dist/list-UWKO3J4O.js +0 -78
- package/dist/list-UWKO3J4O.js.map +0 -1
- package/dist/list-VE3W3RLV.mjs +0 -82
- package/dist/list-WDT6PJLI.js +0 -87
- package/dist/list-WDT6PJLI.js.map +0 -1
- package/dist/list-WERZN5VJ.js +0 -82
- package/dist/list-WERZN5VJ.js.map +0 -1
- package/dist/list-WVUPB5MJ.mjs +0 -80
- package/dist/list-XLZHX2AO.js +0 -75
- package/dist/list-XLZHX2AO.js.map +0 -1
- package/dist/list-Y65ONFMR.mjs +0 -78
- package/dist/login-VS2QKX4F.mjs +0 -231
- package/dist/login-YM5YEWKL.js +0 -231
- package/dist/login-YM5YEWKL.js.map +0 -1
- package/dist/logout-device-4GI5URWD.js +0 -39
- package/dist/logout-device-4GI5URWD.js.map +0 -1
- package/dist/logout-device-D34PE5R6.mjs +0 -39
- package/dist/open-JIZ3KJHS.mjs +0 -47
- package/dist/open-LGMC22E5.js +0 -47
- package/dist/open-LGMC22E5.js.map +0 -1
- package/dist/pull-34TC66ZB.js +0 -27
- package/dist/pull-34TC66ZB.js.map +0 -1
- package/dist/pull-6TWIHJTL.mjs +0 -27
- package/dist/push-CPZFOM5M.mjs +0 -27
- package/dist/push-IG4U2NVQ.js +0 -27
- package/dist/push-IG4U2NVQ.js.map +0 -1
- package/dist/query-6XH7GMYS.js +0 -122
- package/dist/query-6XH7GMYS.js.map +0 -1
- package/dist/query-MXUNPAC5.mjs +0 -122
- package/dist/records-add-27W36W6C.mjs +0 -98
- package/dist/records-add-HPIL7KWD.js +0 -98
- package/dist/records-add-HPIL7KWD.js.map +0 -1
- package/dist/records-delete-7J5TPTDH.js +0 -46
- package/dist/records-delete-7J5TPTDH.js.map +0 -1
- package/dist/records-delete-R67MVBNC.mjs +0 -46
- package/dist/records-list-PCI4DGVV.mjs +0 -89
- package/dist/records-list-QYASBZGW.js +0 -89
- package/dist/records-list-QYASBZGW.js.map +0 -1
- package/dist/records-update-2IXQ6B7S.mjs +0 -53
- package/dist/records-update-VUCZYGJM.js +0 -53
- package/dist/records-update-VUCZYGJM.js.map +0 -1
- package/dist/remove-7RFN5M6K.js +0 -114
- package/dist/remove-7RFN5M6K.js.map +0 -1
- package/dist/remove-KSZO5PJ3.mjs +0 -114
- package/dist/rename-5RVE224Z.js +0 -42
- package/dist/rename-5RVE224Z.js.map +0 -1
- package/dist/rename-OPZ57MAU.mjs +0 -42
- package/dist/request-increase-42B3536U.js +0 -37
- package/dist/request-increase-42B3536U.js.map +0 -1
- package/dist/request-increase-SFKA63AF.mjs +0 -37
- package/dist/restore-GIKZE32G.js +0 -73
- package/dist/restore-GIKZE32G.js.map +0 -1
- package/dist/restore-XSEILUEP.mjs +0 -73
- package/dist/revoke-AAHB6DKY.js +0 -41
- package/dist/revoke-AAHB6DKY.js.map +0 -1
- package/dist/revoke-I7DMDHCI.mjs +0 -41
- package/dist/revoke-LCZ5ORHO.js +0 -44
- package/dist/revoke-LCZ5ORHO.js.map +0 -1
- package/dist/revoke-ZCLT4SKY.mjs +0 -44
- package/dist/rotate-7OG4XI7F.js +0 -52
- package/dist/rotate-7OG4XI7F.js.map +0 -1
- package/dist/rotate-QB5UAO44.mjs +0 -52
- package/dist/run-2R2STWSR.mjs +0 -77
- package/dist/run-3W2OBPMD.js +0 -142
- package/dist/run-3W2OBPMD.js.map +0 -1
- package/dist/run-CSRJCY5K.js +0 -83
- package/dist/run-CSRJCY5K.js.map +0 -1
- package/dist/run-HIDZ6M3T.js +0 -144
- package/dist/run-HIDZ6M3T.js.map +0 -1
- package/dist/run-KWE47WKD.js +0 -131
- package/dist/run-KWE47WKD.js.map +0 -1
- package/dist/run-LQTVXDBU.mjs +0 -83
- package/dist/run-MOZBEBF4.js +0 -77
- package/dist/run-MOZBEBF4.js.map +0 -1
- package/dist/run-RZCXEXSI.mjs +0 -142
- package/dist/run-WSAWSK6Y.mjs +0 -144
- package/dist/run-ZKPZ5L6R.mjs +0 -131
- package/dist/search-DDAXU6KT.js +0 -108
- package/dist/search-DDAXU6KT.js.map +0 -1
- package/dist/search-K3W2DEHF.mjs +0 -108
- package/dist/set-CPPQ6IA3.mjs +0 -59
- package/dist/set-IOHIXABO.mjs +0 -105
- package/dist/set-N3OYQ2ZB.js +0 -59
- package/dist/set-N3OYQ2ZB.js.map +0 -1
- package/dist/set-QXIVHVOU.js +0 -105
- package/dist/set-QXIVHVOU.js.map +0 -1
- package/dist/status-E3YF7PKO.mjs +0 -153
- package/dist/status-EXATRY7O.js +0 -153
- package/dist/status-EXATRY7O.js.map +0 -1
- package/dist/status-LA3NQTLE.mjs +0 -56
- package/dist/status-VHIZIX4I.js +0 -56
- package/dist/status-VHIZIX4I.js.map +0 -1
- package/dist/status-WFURFYKE.js +0 -108
- package/dist/status-WFURFYKE.js.map +0 -1
- package/dist/status-XQIWM34F.mjs +0 -108
- package/dist/status-XQIWM34F.mjs.map +0 -1
- package/dist/sync-5JPO2354.mjs +0 -132
- package/dist/sync-EFMZYS7N.js +0 -132
- package/dist/sync-EFMZYS7N.js.map +0 -1
- package/dist/tail-ULXKVXW3.js +0 -108
- package/dist/tail-ULXKVXW3.js.map +0 -1
- package/dist/tail-ZJQ47UIQ.mjs +0 -108
- package/dist/types-CdEEWouX.d.mts +0 -15125
- package/dist/types-SQg9EYOC.d.ts +0 -15125
- package/dist/unset-HBSCU43Q.js +0 -107
- package/dist/unset-HBSCU43Q.js.map +0 -1
- package/dist/unset-PPMHHXD7.mjs +0 -107
- package/dist/update-45T64GNF.mjs +0 -71
- package/dist/update-4CBEARKP.mjs +0 -83
- package/dist/update-5FW6XOLE.js +0 -75
- package/dist/update-5FW6XOLE.js.map +0 -1
- package/dist/update-7A5YAIS4.js +0 -61
- package/dist/update-7A5YAIS4.js.map +0 -1
- package/dist/update-AMAVGICN.js +0 -65
- package/dist/update-AMAVGICN.js.map +0 -1
- package/dist/update-BOHGMKYA.js +0 -66
- package/dist/update-BOHGMKYA.js.map +0 -1
- package/dist/update-DLBPONRP.mjs +0 -48
- package/dist/update-E456QX26.js +0 -63
- package/dist/update-E456QX26.js.map +0 -1
- package/dist/update-EJCSFXU7.mjs +0 -63
- package/dist/update-F3WC4S2A.js +0 -79
- package/dist/update-F3WC4S2A.js.map +0 -1
- package/dist/update-HFF4JPKC.js +0 -51
- package/dist/update-HFF4JPKC.js.map +0 -1
- package/dist/update-HKH6Q6WH.mjs +0 -48
- package/dist/update-HXGC7ACW.js +0 -63
- package/dist/update-HXGC7ACW.js.map +0 -1
- package/dist/update-IT3I5MY3.mjs +0 -66
- package/dist/update-IZ2SB3G6.mjs +0 -61
- package/dist/update-KU2BSYPB.js +0 -83
- package/dist/update-KU2BSYPB.js.map +0 -1
- package/dist/update-LG77R7CZ.js +0 -48
- package/dist/update-LG77R7CZ.js.map +0 -1
- package/dist/update-MWK3QBIB.mjs +0 -106
- package/dist/update-QWIIF7IM.mjs +0 -51
- package/dist/update-R6EMJDGI.js +0 -76
- package/dist/update-R6EMJDGI.js.map +0 -1
- package/dist/update-S4TKF5OJ.js +0 -106
- package/dist/update-S4TKF5OJ.js.map +0 -1
- package/dist/update-TW65O3DI.js +0 -48
- package/dist/update-TW65O3DI.js.map +0 -1
- package/dist/update-V53W7KF6.mjs +0 -76
- package/dist/update-WLNXEROM.mjs +0 -63
- package/dist/update-X7LDZHL7.mjs +0 -75
- package/dist/update-XFZQOP75.mjs +0 -79
- package/dist/update-XHWI6LQB.js +0 -71
- package/dist/update-XHWI6LQB.js.map +0 -1
- package/dist/update-XY3CY367.mjs +0 -65
- package/dist/upload-LO4WXWBY.mjs +0 -80
- package/dist/upload-UL4DFXSC.js +0 -80
- package/dist/upload-UL4DFXSC.js.map +0 -1
- package/dist/user-ingestion-bindings-2GNU635P.mjs +0 -129
- package/dist/user-ingestion-bindings-2GNU635P.mjs.map +0 -1
- package/dist/user-ingestion-bindings-JV74TMGD.js +0 -129
- package/dist/user-ingestion-bindings-JV74TMGD.js.map +0 -1
- package/dist/versions-5Z6KSW6L.mjs +0 -85
- package/dist/versions-FU77C2TY.js +0 -85
- package/dist/versions-FU77C2TY.js.map +0 -1
- package/dist/whoami-2WXL4TMP.mjs +0 -30
- package/dist/whoami-TC6A4G4U.js +0 -30
- package/dist/whoami-TC6A4G4U.js.map +0 -1
- package/dist/wrap-FIHQNQEH.js +0 -33
- package/dist/wrap-FIHQNQEH.js.map +0 -1
- package/dist/wrap-OZUCTG73.mjs +0 -33
- package/dist/wrap-OZUCTG73.mjs.map +0 -1
- /package/dist/{add-NTGJL2CX.mjs.map → add-MOAMRJEO.mjs.map} +0 -0
- /package/dist/{archive-RHIZYPNS.mjs.map → archive-P3VF63FH.mjs.map} +0 -0
- /package/dist/{assign-56XQOSK3.mjs.map → assign-PQIAQAKQ.mjs.map} +0 -0
- /package/dist/{chunk-SFWGJNWG.mjs.map → chunk-2RZ2OCJO.mjs.map} +0 -0
- /package/dist/{chunk-7BS33JNZ.mjs.map → chunk-47UFY6NS.mjs.map} +0 -0
- /package/dist/{chunk-JBZRGURS.mjs.map → chunk-5IDPSWOP.mjs.map} +0 -0
- /package/dist/{chunk-MSGYVS7X.mjs.map → chunk-AG7BWPMX.mjs.map} +0 -0
- /package/dist/{chunk-NTUIOWUM.mjs.map → chunk-BOOZEXYC.mjs.map} +0 -0
- /package/dist/{chunk-P27JS2XK.mjs.map → chunk-C7ERF45K.mjs.map} +0 -0
- /package/dist/{chunk-T46Y7B2D.mjs.map → chunk-F6RB46UE.mjs.map} +0 -0
- /package/dist/{chunk-ZWCPSY4D.mjs.map → chunk-G5UNILDP.mjs.map} +0 -0
- /package/dist/{chunk-FFTW6SV4.mjs.map → chunk-GA3YH27L.mjs.map} +0 -0
- /package/dist/{chunk-T6LELB2A.mjs.map → chunk-H4QEDABK.mjs.map} +0 -0
- /package/dist/{chunk-KDX56WS2.mjs.map → chunk-HP7E6S2J.mjs.map} +0 -0
- /package/dist/{chunk-FJHSBSAP.mjs.map → chunk-KMNF7M4B.mjs.map} +0 -0
- /package/dist/{chunk-QVBXHLXS.mjs.map → chunk-M5WZJP5D.mjs.map} +0 -0
- /package/dist/{chunk-C6KCPPDE.mjs.map → chunk-N7T37JOT.mjs.map} +0 -0
- /package/dist/{chunk-ZRCDO3D5.mjs.map → chunk-NTUDKM6T.mjs.map} +0 -0
- /package/dist/{chunk-ALG4K7WV.mjs.map → chunk-OR6PODSA.mjs.map} +0 -0
- /package/dist/{chunk-NJICHVPX.mjs.map → chunk-OYMASPIK.mjs.map} +0 -0
- /package/dist/{chunk-BLLBUKUY.mjs.map → chunk-S77DKBDN.mjs.map} +0 -0
- /package/dist/{chunk-YG3K5XBQ.mjs.map → chunk-TLCLBKRY.mjs.map} +0 -0
- /package/dist/{chunk-F4UXJDGZ.mjs.map → chunk-UTTNPIDQ.mjs.map} +0 -0
- /package/dist/{chunk-VTHIHR22.mjs.map → chunk-VIN5IMHD.mjs.map} +0 -0
- /package/dist/{chunk-NZT2VUX5.mjs.map → chunk-VJQ224UL.mjs.map} +0 -0
- /package/dist/{chunk-IGRJP4RX.mjs.map → chunk-WEH25SMX.mjs.map} +0 -0
- /package/dist/{chunk-2FCA2CRB.mjs.map → chunk-YC2BS7T6.mjs.map} +0 -0
- /package/dist/{chunk-WDGR54P5.mjs.map → chunk-YIZ6SACS.mjs.map} +0 -0
- /package/dist/{chunk-CBKUU3DP.mjs.map → chunk-ZACVIKN5.mjs.map} +0 -0
- /package/dist/{chunk-QH6442NY.mjs.map → chunk-ZJ2OCF6J.mjs.map} +0 -0
- /package/dist/{config-Z3UAKGVH.mjs.map → config-6UUJVACF.mjs.map} +0 -0
- /package/dist/{create-DUMUVRTI.mjs.map → create-3F5HX5B3.mjs.map} +0 -0
- /package/dist/{create-MMDDO3PB.mjs.map → create-7JGSFBTW.mjs.map} +0 -0
- /package/dist/{create-XWVUSGYK.mjs.map → create-BIGY3EQ6.mjs.map} +0 -0
- /package/dist/{create-7OBC3X6K.mjs.map → create-GAEK6325.mjs.map} +0 -0
- /package/dist/{create-4TIOBNAA.mjs.map → create-IODVYZYB.mjs.map} +0 -0
- /package/dist/{create-WCMYN6L3.mjs.map → create-JERWE4YC.mjs.map} +0 -0
- /package/dist/{create-TBL2OR4U.mjs.map → create-KMC3WSCT.mjs.map} +0 -0
- /package/dist/{create-JDNZHYOR.mjs.map → create-LARMUZWS.mjs.map} +0 -0
- /package/dist/{create-UHQ54VS7.mjs.map → create-NBEAPOWM.mjs.map} +0 -0
- /package/dist/{create-WL6QJWQC.mjs.map → create-NICGBVYD.mjs.map} +0 -0
- /package/dist/{create-YYFTCL3H.mjs.map → create-O5RWWYUM.mjs.map} +0 -0
- /package/dist/{create-KGMGOFZN.mjs.map → create-OX2JBYPI.mjs.map} +0 -0
- /package/dist/{create-UPM5ZYUZ.mjs.map → create-S27KIASK.mjs.map} +0 -0
- /package/dist/{create-CMBNVJDE.mjs.map → create-UDMY57FO.mjs.map} +0 -0
- /package/dist/{create-X4GUHVTD.mjs.map → create-W23UOAZG.mjs.map} +0 -0
- /package/dist/{create-2JIJVWOR.mjs.map → create-WVKW7367.mjs.map} +0 -0
- /package/dist/{create-NM7P2DCT.mjs.map → create-WYAPDDAM.mjs.map} +0 -0
- /package/dist/{delete-GGBF26W2.mjs.map → delete-63MC3QBF.mjs.map} +0 -0
- /package/dist/{delete-OGBMBW65.mjs.map → delete-73HQU4YW.mjs.map} +0 -0
- /package/dist/{delete-TU2JE6PT.mjs.map → delete-BT7TB54M.mjs.map} +0 -0
- /package/dist/{delete-QMWRNRJ3.mjs.map → delete-EDQ3XAJ2.mjs.map} +0 -0
- /package/dist/{delete-QK56UT6L.mjs.map → delete-LLQ5DSGG.mjs.map} +0 -0
- /package/dist/{delete-IOV33BOC.mjs.map → delete-OHJMG35H.mjs.map} +0 -0
- /package/dist/{delete-NRJXAXQ2.mjs.map → delete-PF324UEB.mjs.map} +0 -0
- /package/dist/{delete-ODSJGPKL.mjs.map → delete-RIZK2YRM.mjs.map} +0 -0
- /package/dist/{delete-O2ZOJT6O.mjs.map → delete-RTYC5A34.mjs.map} +0 -0
- /package/dist/{delete-PWAPCGIC.mjs.map → delete-T3OZGZ4I.mjs.map} +0 -0
- /package/dist/{delete-C3WRIBAL.mjs.map → delete-XXHNAJ5M.mjs.map} +0 -0
- /package/dist/{delete-QSRX5BV6.mjs.map → delete-XY77TZWB.mjs.map} +0 -0
- /package/dist/{delete-KX4VUL2C.mjs.map → delete-YWW7B36L.mjs.map} +0 -0
- /package/dist/{delete-XV3FFG7P.mjs.map → delete-ZIKBQBF2.mjs.map} +0 -0
- /package/dist/{download-JEJJA6DV.mjs.map → download-JRMQTZVL.mjs.map} +0 -0
- /package/dist/{duplicate-FXY4IYWC.mjs.map → duplicate-ZJOPIMLO.mjs.map} +0 -0
- /package/dist/{export-SM5GXH4S.mjs.map → export-DC57RFZO.mjs.map} +0 -0
- /package/dist/{get-WYN27ZYK.mjs.map → get-4NWG6MTQ.mjs.map} +0 -0
- /package/dist/{get-7OE62A5G.mjs.map → get-5RBUPSUP.mjs.map} +0 -0
- /package/dist/{get-AJW7Y3HU.mjs.map → get-6CL4KIYC.mjs.map} +0 -0
- /package/dist/{get-3ZKC5CVY.mjs.map → get-6XHQ5B6Y.mjs.map} +0 -0
- /package/dist/{get-RZOK67QH.mjs.map → get-7KNOHUCW.mjs.map} +0 -0
- /package/dist/{get-J6RBO5FC.mjs.map → get-DZ576XFJ.mjs.map} +0 -0
- /package/dist/{get-RBZCE26R.mjs.map → get-GSGFGLVD.mjs.map} +0 -0
- /package/dist/{get-GVKH5CK6.mjs.map → get-J65ULALP.mjs.map} +0 -0
- /package/dist/{get-HWZLCJHR.mjs.map → get-JMF3BHEG.mjs.map} +0 -0
- /package/dist/{get-3LMPNC73.mjs.map → get-L5Z6CYYP.mjs.map} +0 -0
- /package/dist/{get-LEX5DHEH.mjs.map → get-LEEDPXHL.mjs.map} +0 -0
- /package/dist/{get-MZSC4XTK.mjs.map → get-LI247BYM.mjs.map} +0 -0
- /package/dist/{get-PZFFQGHE.mjs.map → get-NBXFOHGN.mjs.map} +0 -0
- /package/dist/{get-JN4XRABY.mjs.map → get-SNLY65YW.mjs.map} +0 -0
- /package/dist/{get-X2E3KFBO.mjs.map → get-T64N2HNI.mjs.map} +0 -0
- /package/dist/{get-JUNLBFPQ.mjs.map → get-ZQ5CWP5V.mjs.map} +0 -0
- /package/dist/{health-K4TNDKO5.mjs.map → health-NFNEZRIQ.mjs.map} +0 -0
- /package/dist/{list-GTYDZ4BW.mjs.map → list-22ZONYFI.mjs.map} +0 -0
- /package/dist/{list-DVGDEGQH.mjs.map → list-25EAD5VD.mjs.map} +0 -0
- /package/dist/{list-RQP6FA2U.mjs.map → list-2SDWIS7O.mjs.map} +0 -0
- /package/dist/{list-Y65ONFMR.mjs.map → list-3452XTOY.mjs.map} +0 -0
- /package/dist/{list-BB43NKUM.mjs.map → list-4SSQATXU.mjs.map} +0 -0
- /package/dist/{list-2POSB4AL.mjs.map → list-73CK6BZQ.mjs.map} +0 -0
- /package/dist/{list-G4KTNT7Z.mjs.map → list-BD4V72LU.mjs.map} +0 -0
- /package/dist/{list-BC2OES2G.mjs.map → list-F3G7SVBR.mjs.map} +0 -0
- /package/dist/{list-C3674FXP.mjs.map → list-FYGMNDDI.mjs.map} +0 -0
- /package/dist/{list-VE3W3RLV.mjs.map → list-GL6SLAX6.mjs.map} +0 -0
- /package/dist/{list-OQNU4RZK.mjs.map → list-J5DDHZ6D.mjs.map} +0 -0
- /package/dist/{list-2QL7GRGM.mjs.map → list-JPCR43SK.mjs.map} +0 -0
- /package/dist/{list-G3NQU4CF.mjs.map → list-N5LMW2EC.mjs.map} +0 -0
- /package/dist/{list-KX7MEJPP.mjs.map → list-QL5QQZ3K.mjs.map} +0 -0
- /package/dist/{list-OVSKCRLK.mjs.map → list-RFL5FFQJ.mjs.map} +0 -0
- /package/dist/{list-4HSUMNXW.mjs.map → list-VZD5FJJJ.mjs.map} +0 -0
- /package/dist/{list-FAUMOBHA.mjs.map → list-W3QQGD7M.mjs.map} +0 -0
- /package/dist/{list-FNPC3YED.mjs.map → list-YQRE3ZBP.mjs.map} +0 -0
- /package/dist/{list-KDRFJ76E.mjs.map → list-YSSWO6ZA.mjs.map} +0 -0
- /package/dist/{list-C2IXWMFN.mjs.map → list-ZDLJ7KL4.mjs.map} +0 -0
- /package/dist/{list-FKDR27HO.mjs.map → list-ZQOWI6QZ.mjs.map} +0 -0
- /package/dist/{list-WVUPB5MJ.mjs.map → list-ZSPLY2VA.mjs.map} +0 -0
- /package/dist/{login-VS2QKX4F.mjs.map → login-663GBIQU.mjs.map} +0 -0
- /package/dist/{logout-device-D34PE5R6.mjs.map → logout-device-JOPQKPFL.mjs.map} +0 -0
- /package/dist/{open-JIZ3KJHS.mjs.map → open-2IGFGDDB.mjs.map} +0 -0
- /package/dist/{pull-6TWIHJTL.mjs.map → pull-FYB6V5NG.mjs.map} +0 -0
- /package/dist/{push-CPZFOM5M.mjs.map → push-6MZUZIVP.mjs.map} +0 -0
- /package/dist/{query-MXUNPAC5.mjs.map → query-QG7HNZ7Z.mjs.map} +0 -0
- /package/dist/{records-add-27W36W6C.mjs.map → records-add-UPKUEBMZ.mjs.map} +0 -0
- /package/dist/{records-delete-R67MVBNC.mjs.map → records-delete-NBXES4VV.mjs.map} +0 -0
- /package/dist/{records-list-PCI4DGVV.mjs.map → records-list-IUS7YLQR.mjs.map} +0 -0
- /package/dist/{records-update-2IXQ6B7S.mjs.map → records-update-P5VHCUJT.mjs.map} +0 -0
- /package/dist/{remove-KSZO5PJ3.mjs.map → remove-CGRK7RHE.mjs.map} +0 -0
- /package/dist/{rename-OPZ57MAU.mjs.map → rename-XQLL4F4G.mjs.map} +0 -0
- /package/dist/{request-increase-SFKA63AF.mjs.map → request-increase-NHM27JXH.mjs.map} +0 -0
- /package/dist/{restore-XSEILUEP.mjs.map → restore-OVLJGAMV.mjs.map} +0 -0
- /package/dist/{revoke-I7DMDHCI.mjs.map → revoke-7YLORB2D.mjs.map} +0 -0
- /package/dist/{revoke-ZCLT4SKY.mjs.map → revoke-ZBHCHOT7.mjs.map} +0 -0
- /package/dist/{rotate-QB5UAO44.mjs.map → rotate-MALFSMNW.mjs.map} +0 -0
- /package/dist/{run-LQTVXDBU.mjs.map → run-IW3ZTZ56.mjs.map} +0 -0
- /package/dist/{run-RZCXEXSI.mjs.map → run-MRTMHFIO.mjs.map} +0 -0
- /package/dist/{run-ZKPZ5L6R.mjs.map → run-OW5GZBYE.mjs.map} +0 -0
- /package/dist/{run-WSAWSK6Y.mjs.map → run-UB3A47QC.mjs.map} +0 -0
- /package/dist/{run-2R2STWSR.mjs.map → run-YXS2M4RW.mjs.map} +0 -0
- /package/dist/{search-K3W2DEHF.mjs.map → search-SW3QCAB5.mjs.map} +0 -0
- /package/dist/{set-IOHIXABO.mjs.map → set-6WIQ33I5.mjs.map} +0 -0
- /package/dist/{set-CPPQ6IA3.mjs.map → set-IMUR6YJP.mjs.map} +0 -0
- /package/dist/{status-E3YF7PKO.mjs.map → status-G3PRLZ5U.mjs.map} +0 -0
- /package/dist/{status-LA3NQTLE.mjs.map → status-YI7W7MPT.mjs.map} +0 -0
- /package/dist/{sync-5JPO2354.mjs.map → sync-MDSHPQ7D.mjs.map} +0 -0
- /package/dist/{tail-ZJQ47UIQ.mjs.map → tail-MPIISBM5.mjs.map} +0 -0
- /package/dist/{unset-PPMHHXD7.mjs.map → unset-VR3N4YHI.mjs.map} +0 -0
- /package/dist/{update-QWIIF7IM.mjs.map → update-5G4AUALT.mjs.map} +0 -0
- /package/dist/{update-XY3CY367.mjs.map → update-5KUZNTSD.mjs.map} +0 -0
- /package/dist/{update-EJCSFXU7.mjs.map → update-6XXVXEC4.mjs.map} +0 -0
- /package/dist/{update-WLNXEROM.mjs.map → update-A4HC3FKK.mjs.map} +0 -0
- /package/dist/{update-HKH6Q6WH.mjs.map → update-F57XZZJL.mjs.map} +0 -0
- /package/dist/{update-X7LDZHL7.mjs.map → update-GMWZGJHJ.mjs.map} +0 -0
- /package/dist/{update-IT3I5MY3.mjs.map → update-HDPEYMD5.mjs.map} +0 -0
- /package/dist/{update-4CBEARKP.mjs.map → update-HX7CX2ZY.mjs.map} +0 -0
- /package/dist/{update-MWK3QBIB.mjs.map → update-JVUDSQSN.mjs.map} +0 -0
- /package/dist/{update-DLBPONRP.mjs.map → update-L2WS2LBI.mjs.map} +0 -0
- /package/dist/{update-IZ2SB3G6.mjs.map → update-U57RYVPO.mjs.map} +0 -0
- /package/dist/{update-V53W7KF6.mjs.map → update-UW5OV3FU.mjs.map} +0 -0
- /package/dist/{update-XFZQOP75.mjs.map → update-VY5G6XFC.mjs.map} +0 -0
- /package/dist/{update-45T64GNF.mjs.map → update-YTPAHPFE.mjs.map} +0 -0
- /package/dist/{upload-LO4WXWBY.mjs.map → upload-ALJUF2KN.mjs.map} +0 -0
- /package/dist/{versions-5Z6KSW6L.mjs.map → versions-JATWW4WF.mjs.map} +0 -0
- /package/dist/{whoami-2WXL4TMP.mjs.map → whoami-KGRA4QEY.mjs.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-LMNMFLL2.js","../src/client-sdk/services/datasets/errors.ts","../src/client-sdk/services/datasets/tracing/tracer.ts","../src/client-sdk/services/datasets/dataset.service.ts","../src/client-sdk/services/datasets/datasets.facade.ts"],"names":["errorMessage"],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-LMNMFLL2.js","sourcesContent":[null,"/**\n * Errors for the Dataset API\n */\n\n/**\n * Base error for all dataset operations.\n */\nexport class DatasetError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"DatasetError\";\n }\n}\n\n/**\n * Thrown when a dataset is not found (404).\n */\nexport class DatasetNotFoundError extends DatasetError {\n constructor(slugOrId: string) {\n super(`Dataset not found: ${slugOrId}`);\n this.name = \"DatasetNotFoundError\";\n }\n}\n\n/**\n * Error from the Dataset API with operation context.\n * Aligns with PromptsApiError pattern: includes operation and originalError fields.\n */\nexport class DatasetApiError extends DatasetError {\n readonly status: number;\n readonly operation: string;\n readonly originalError?: unknown;\n\n constructor(message: string, status: number, operation: string, originalError?: unknown) {\n super(message);\n this.name = \"DatasetApiError\";\n this.status = status;\n this.operation = operation;\n this.originalError = originalError;\n }\n}\n\n/**\n * Thrown for client-side validation failures (e.g. empty name, no update fields, empty entries).\n * Distinguished from DatasetApiError which represents server-side errors.\n */\nexport class DatasetValidationError extends DatasetError {\n constructor(message: string) {\n super(message);\n this.name = \"DatasetValidationError\";\n }\n}\n\n/**\n * Thrown when a dataset operation exceeds the plan limit (403).\n * The message includes the upgrade/subscription URL from the server.\n */\nexport class DatasetPlanLimitError extends DatasetError {\n readonly limitType: string;\n readonly current?: number;\n readonly max?: number;\n\n constructor(message: string, originalError?: unknown) {\n super(message);\n this.name = \"DatasetPlanLimitError\";\n\n if (originalError != null && typeof originalError === \"object\") {\n const err = originalError as Record<string, unknown>;\n this.limitType = typeof err.limitType === \"string\" ? err.limitType : \"datasets\";\n this.current = typeof err.current === \"number\" ? err.current : undefined;\n this.max = typeof err.max === \"number\" ? err.max : undefined;\n } else {\n this.limitType = \"datasets\";\n }\n }\n}\n","import { LANGWATCH_SDK_NAME_CLIENT, LANGWATCH_SDK_VERSION } from \"@/internal/constants\";\nimport { getLangWatchTracer } from \"@/observability-sdk/tracer\";\n\nexport const tracer = getLangWatchTracer(`${LANGWATCH_SDK_NAME_CLIENT}.datasets`, LANGWATCH_SDK_VERSION);\n","import { type LangwatchApiClient } from \"@/internal/api/client\";\nimport { type Logger } from \"@/logger\";\nimport {\n type Dataset,\n type DatasetEntry,\n type DatasetMetadata,\n type GetDatasetApiResponse,\n type GetDatasetOptions,\n type ListDatasetsOptions,\n type ListDatasetsApiResponse,\n type ListRecordsOptions,\n type ListRecordsApiResponse,\n type CreateDatasetOptions,\n type UpdateDatasetOptions,\n type CreateFromUploadOptions,\n type CreateFromUploadResponse,\n type BatchCreateRecordsResponse,\n type DeleteRecordsResponse,\n type UploadResponse,\n type DatasetRecordResponse,\n} from \"./types\";\nimport { DatasetApiError, DatasetNotFoundError, DatasetPlanLimitError } from \"./errors\";\nimport { createTracingProxy } from \"@/client-sdk/tracing/create-tracing-proxy\";\nimport { tracer } from \"./tracing\";\nimport { formatApiErrorMessage } from \"@/client-sdk/services/_shared/format-api-error\";\nimport { buildAuthHeaders } from \"@/internal/api/auth\";\n\ntype DatasetServiceConfig = {\n langwatchApiClient: LangwatchApiClient;\n logger: Logger;\n endpoint: string;\n apiKey: string;\n};\n\n/**\n * Service for managing dataset resources via the LangWatch API.\n *\n * Responsibilities:\n * - CRUD operations for datasets\n * - Record management (create, update, delete)\n * - File upload\n * - Error handling with contextual information\n */\nexport class DatasetService {\n private readonly config: DatasetServiceConfig;\n\n constructor(config: DatasetServiceConfig) {\n this.config = config;\n\n /**\n * Wraps the service in a tracing proxy that automatically creates\n * OpenTelemetry spans for all public methods.\n */\n return createTracingProxy(this as DatasetService, tracer);\n }\n\n /**\n * Handles API errors by mapping status codes to appropriate error types.\n * @param operation - Description of the operation being performed\n * @param error - The error object from the API response\n * @param status - The HTTP status code\n * @param slugOrId - The dataset identifier (only passed for operations targeting an existing resource)\n */\n private handleApiError(operation: string, error: unknown, status: number, slugOrId?: string): never {\n if (status === 404 && slugOrId) {\n throw new DatasetNotFoundError(slugOrId);\n }\n\n if (status === 403) {\n const errorMessage = this.extractErrorMessage(error, status);\n throw new DatasetPlanLimitError(errorMessage, error);\n }\n\n const errorMessage = this.extractErrorMessage(error, status);\n\n throw new DatasetApiError(\n `Failed to ${operation}: ${errorMessage}`,\n status,\n operation,\n error,\n );\n }\n\n /**\n * Extracts a human-readable error message from an API error response.\n */\n private extractErrorMessage(error: unknown, status: number): string {\n return formatApiErrorMessage({ error: error, options: { status } });\n }\n\n /**\n * Wrapper for API calls to endpoints not yet in the generated OpenAPI types.\n * Quarantines `as any` casts to a single location.\n */\n private untypedRequest<M extends 'GET' | 'POST' | 'PATCH' | 'DELETE'>(\n method: M,\n path: string,\n options?: Record<string, unknown>,\n ) {\n return (this.config.langwatchApiClient[method] as any)(path, options);\n }\n\n /**\n * Unwraps an API response, throwing a mapped error if the response contains an error.\n * Centralizes the repeated `if (error) handleApiError; return data` pattern.\n */\n private unwrapResponse<T>(\n response: { data?: unknown; error?: unknown; response: { status: number } },\n operation: string,\n slugOrId?: string,\n ): T {\n if (response.error) {\n this.handleApiError(operation, response.error, response.response.status, slugOrId);\n }\n return response.data as T;\n }\n\n /**\n * Fetches a dataset by its slug or ID, returning metadata and entries.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param _options - Optional configuration\n * @returns The dataset with metadata and entries\n */\n async getDataset<T extends Record<string, unknown> = Record<string, unknown>>(\n slugOrId: string,\n _options?: GetDatasetOptions\n ): Promise<Dataset<T>> {\n this.config.logger.debug(`Fetching dataset: ${slugOrId}`);\n\n const response = await this.config.langwatchApiClient.GET(\n \"/api/dataset/{slugOrId}\",\n {\n params: {\n path: {\n slugOrId,\n },\n },\n }\n );\n\n const data = this.unwrapResponse<GetDatasetApiResponse>(\n response,\n `fetch dataset \"${slugOrId}\"`,\n slugOrId,\n );\n\n const entries: DatasetEntry<T>[] = data.data.map((item) => ({\n id: item.id,\n datasetId: item.datasetId,\n projectId: item.projectId,\n entry: item.entry as T,\n createdAt: item.createdAt,\n updatedAt: item.updatedAt,\n }));\n\n this.config.logger.debug(\n `Fetched dataset ${slugOrId} with ${entries.length} entries`\n );\n\n return {\n id: data.id,\n name: data.name,\n slug: data.slug,\n columnTypes: data.columnTypes,\n createdAt: data.createdAt,\n updatedAt: data.updatedAt,\n entries,\n };\n }\n\n /**\n * Lists all datasets for the project, with optional pagination.\n */\n async listDatasets(options?: ListDatasetsOptions): Promise<ListDatasetsApiResponse> {\n this.config.logger.debug(\"Listing datasets\");\n\n const response = await this.untypedRequest('GET', '/api/dataset', {\n params: {\n query: {\n page: options?.page,\n limit: options?.limit,\n },\n },\n });\n\n return this.unwrapResponse<ListDatasetsApiResponse>(\n response,\n \"list datasets\",\n );\n }\n\n /**\n * Creates a new dataset.\n */\n async createDataset(options: CreateDatasetOptions): Promise<DatasetMetadata> {\n this.config.logger.debug(`Creating dataset: ${options.name}`);\n\n const response = await this.untypedRequest('POST', '/api/dataset', {\n body: {\n name: options.name,\n columnTypes: options.columnTypes ?? [],\n },\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `create dataset \"${options.name}\"`,\n );\n }\n\n /**\n * Updates a dataset by its slug or ID.\n */\n async updateDataset(slugOrId: string, options: UpdateDatasetOptions): Promise<DatasetMetadata> {\n this.config.logger.debug(`Updating dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('PATCH', '/api/dataset/{slugOrId}', {\n params: {\n path: { slugOrId },\n },\n body: options,\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `update dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Deletes (archives) a dataset by its slug or ID.\n */\n async deleteDataset(slugOrId: string): Promise<DatasetMetadata> {\n this.config.logger.debug(`Deleting dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('DELETE', '/api/dataset/{slugOrId}', {\n params: {\n path: { slugOrId },\n },\n });\n\n return this.unwrapResponse<DatasetMetadata>(\n response,\n `delete dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Creates records in a dataset in batch.\n */\n async createRecords(\n slugOrId: string,\n entries: Record<string, unknown>[],\n ): Promise<BatchCreateRecordsResponse> {\n this.config.logger.debug(`Creating ${entries.length} records in dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('POST', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n },\n body: { entries },\n });\n\n return this.unwrapResponse<BatchCreateRecordsResponse>(\n response,\n `create records in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Updates a single record in a dataset.\n */\n async updateRecord(\n slugOrId: string,\n recordId: string,\n entry: Record<string, unknown>,\n ): Promise<DatasetRecordResponse> {\n this.config.logger.debug(`Updating record ${recordId} in dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('PATCH', '/api/dataset/{slugOrId}/records/{recordId}', {\n params: {\n path: { slugOrId, recordId },\n },\n body: { entry },\n });\n\n return this.unwrapResponse<DatasetRecordResponse>(\n response,\n `update record \"${recordId}\" in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Deletes records from a dataset by IDs.\n */\n async deleteRecords(\n slugOrId: string,\n recordIds: string[],\n ): Promise<DeleteRecordsResponse> {\n this.config.logger.debug(`Deleting ${recordIds.length} records from dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('DELETE', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n },\n body: { recordIds },\n });\n\n return this.unwrapResponse<DeleteRecordsResponse>(\n response,\n `delete records from dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Lists records in a dataset with optional pagination.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of records\n */\n async listRecords(\n slugOrId: string,\n options?: ListRecordsOptions,\n ): Promise<ListRecordsApiResponse> {\n this.config.logger.debug(`Listing records for dataset: ${slugOrId}`);\n\n const response = await this.untypedRequest('GET', '/api/dataset/{slugOrId}/records', {\n params: {\n path: { slugOrId },\n query: {\n page: options?.page,\n limit: options?.limit,\n },\n },\n });\n\n return this.unwrapResponse<ListRecordsApiResponse>(\n response,\n `list records in dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n\n /**\n * Sends a multipart/form-data request using raw fetch.\n * openapi-fetch hardcodes content-type: application/json, so file uploads\n * must bypass it. This helper centralizes URL building, auth headers,\n * error parsing, and response unwrapping.\n *\n * @param path - The API path (appended to the endpoint)\n * @param formData - The FormData payload\n * @param operation - Human-readable operation name for error messages\n * @param slugOrId - Optional dataset identifier (passed to handleApiError for 404 mapping)\n */\n private async fetchMultipart<T>(\n path: string,\n formData: FormData,\n operation: string,\n slugOrId?: string,\n ): Promise<T> {\n const { endpoint, apiKey } = this.config;\n const url = `${endpoint.replace(/\\/$/, \"\")}${path}`;\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: buildAuthHeaders({ apiKey }),\n body: formData,\n });\n\n if (!response.ok) {\n const rawBody = await response.text();\n let errorBody: unknown = rawBody;\n if (rawBody) {\n try {\n errorBody = JSON.parse(rawBody);\n } catch {\n // Keep the plain-text body.\n }\n }\n\n this.handleApiError(operation, errorBody, response.status, slugOrId);\n }\n\n return (await response.json()) as T;\n }\n\n /**\n * Creates a new dataset from a file upload.\n *\n * @param options - The dataset name and file to upload\n * @returns The created dataset metadata with record count\n */\n async createDatasetFromUpload(\n options: CreateFromUploadOptions,\n ): Promise<CreateFromUploadResponse> {\n this.config.logger.debug(`Creating dataset from upload: ${options.name}`);\n\n const formData = new FormData();\n formData.append(\"name\", options.name);\n formData.append(\"file\", options.file);\n\n return this.fetchMultipart<CreateFromUploadResponse>(\n \"/api/dataset/upload\",\n formData,\n `create dataset from upload \"${options.name}\"`,\n );\n }\n\n /**\n * Uploads a file with a strategy for handling existing datasets.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param file - The file to upload (File or Blob)\n * @param ifExists - Strategy when dataset exists: \"append\" (default), \"replace\", or \"error\"\n * @returns The upload result\n */\n async uploadWithStrategy(\n slugOrId: string,\n file: File | Blob,\n ifExists: \"append\" | \"replace\" | \"error\" = \"append\",\n ): Promise<UploadResponse> {\n switch (ifExists) {\n case \"append\":\n return this._uploadAppend(slugOrId, file);\n case \"replace\":\n return this._uploadReplace(slugOrId, file);\n case \"error\":\n return this._uploadError(slugOrId, file);\n }\n }\n\n /**\n * Converts a CreateFromUploadResponse to the unified UploadResponse shape.\n */\n private toUploadResponse(result: CreateFromUploadResponse): UploadResponse {\n return {\n dataset: {\n id: result.id,\n name: result.name,\n slug: result.slug,\n columnTypes: result.columnTypes,\n createdAt: result.createdAt,\n updatedAt: result.updatedAt,\n },\n recordsCreated: result.recordsCreated,\n datasetId: result.id,\n };\n }\n\n /**\n * Append strategy: try uploading to existing dataset; if not found, create from file.\n */\n private async _uploadAppend(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n try {\n return await this.uploadFile(slugOrId, file);\n } catch (error) {\n if (error instanceof DatasetNotFoundError) {\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n throw error;\n }\n }\n\n /**\n * Replace strategy: if dataset exists, delete all records then upload; if not found, create from file.\n */\n private async _uploadReplace(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n try {\n await this.getDataset(slugOrId);\n await this._deleteAllRecords(slugOrId);\n return await this.uploadFile(slugOrId, file);\n } catch (error) {\n if (error instanceof DatasetNotFoundError) {\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n throw error;\n }\n }\n\n /**\n * Error strategy: if dataset exists, throw 409; if not found, create from file.\n */\n private async _uploadError(slugOrId: string, file: File | Blob): Promise<UploadResponse> {\n let datasetExists = false;\n try {\n await this.getDataset(slugOrId);\n datasetExists = true;\n } catch (error) {\n if (!(error instanceof DatasetNotFoundError)) {\n throw error;\n }\n }\n\n if (datasetExists) {\n throw new DatasetApiError(\n `Dataset already exists: ${slugOrId}`,\n 409,\n \"upload\",\n );\n }\n\n return this.toUploadResponse(await this.createDatasetFromUpload({ name: slugOrId, file }));\n }\n\n /**\n * Deletes all records from a dataset by iterating through pages.\n * Always fetches page 1 since records shift after deletion.\n * Includes a safety valve to prevent infinite loops.\n */\n private async _deleteAllRecords(slugOrId: string): Promise<void> {\n const BATCH_SIZE = 1000;\n const MAX_DELETE_ITERATIONS = 100;\n\n let iteration = 0;\n while (iteration < MAX_DELETE_ITERATIONS) {\n const page = await this.listRecords(slugOrId, { page: 1, limit: BATCH_SIZE });\n if (page.data.length === 0) {\n return;\n }\n\n const ids = page.data.map((record) => record.id);\n await this.deleteRecords(slugOrId, ids);\n iteration++;\n }\n\n throw new DatasetApiError(\n `Failed to delete all records from dataset \"${slugOrId}\": exceeded ${MAX_DELETE_ITERATIONS} iterations`,\n 0,\n `delete all records from dataset \"${slugOrId}\"`,\n );\n }\n\n /**\n * Uploads a file to an existing dataset.\n */\n async uploadFile(\n slugOrId: string,\n file: File | Blob,\n ): Promise<UploadResponse> {\n this.config.logger.debug(`Uploading file to dataset: ${slugOrId}`);\n\n const formData = new FormData();\n formData.append(\"file\", file);\n\n return this.fetchMultipart<UploadResponse>(\n `/api/dataset/${encodeURIComponent(slugOrId)}/upload`,\n formData,\n `upload file to dataset \"${slugOrId}\"`,\n slugOrId,\n );\n }\n}\n","import { type LangwatchApiClient } from \"@/internal/api/client\";\nimport { type Logger } from \"@/logger\";\nimport { DatasetService } from \"./dataset.service\";\nimport { DatasetValidationError } from \"./errors\";\nimport {\n type Dataset,\n type DatasetMetadata,\n type GetDatasetOptions,\n type ListDatasetsOptions,\n type ListDatasetsApiResponse,\n type ListRecordsOptions,\n type ListRecordsApiResponse,\n type CreateDatasetOptions,\n type UpdateDatasetOptions,\n type BatchCreateRecordsResponse,\n type DeleteRecordsResponse,\n type UploadResponse,\n type DatasetRecordResponse,\n} from \"./types\";\n\ntype DatasetsFacadeConfig = {\n langwatchApiClient: LangwatchApiClient;\n logger: Logger;\n endpoint: string;\n apiKey: string;\n};\n\n/**\n * Facade for dataset operations in the LangWatch SDK.\n * Provides a simplified interface for managing datasets, records, and file uploads.\n *\n * @example\n * ```typescript\n * const langwatch = new LangWatch({ apiKey: \"your-api-key\" });\n *\n * // List all datasets\n * const datasets = await langwatch.datasets.list();\n *\n * // Get a dataset by slug or ID\n * const dataset = await langwatch.datasets.get(\"my-dataset\");\n *\n * // Create a new dataset\n * const newDataset = await langwatch.datasets.create({\n * name: \"my-dataset\",\n * columnTypes: [{ name: \"input\", type: \"string\" }],\n * });\n *\n * // Update a dataset\n * const updated = await langwatch.datasets.update(\"my-dataset\", { name: \"new-name\" });\n *\n * // Delete a dataset\n * const archived = await langwatch.datasets.delete(\"my-dataset\");\n *\n * // Create records\n * const records = await langwatch.datasets.createRecords(\"my-dataset\", [\n * { input: \"hello\", output: \"world\" },\n * ]);\n *\n * // Update a record\n * const record = await langwatch.datasets.updateRecord(\"my-dataset\", \"rec-1\", { input: \"updated\" });\n *\n * // Delete records\n * const result = await langwatch.datasets.deleteRecords(\"my-dataset\", [\"rec-1\", \"rec-2\"]);\n *\n * // Upload a file (append to existing or create new)\n * const uploadResult = await langwatch.datasets.upload(\"my-dataset\", file);\n *\n * // Upload with replace strategy (delete all records first)\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"replace\" });\n * ```\n */\nexport class DatasetsFacade {\n readonly #datasetService: DatasetService;\n\n constructor(config: DatasetsFacadeConfig) {\n this.#datasetService = new DatasetService(config);\n }\n\n /**\n * Lists all datasets for the project, with optional pagination.\n *\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of datasets with metadata\n */\n list = (options?: ListDatasetsOptions): Promise<ListDatasetsApiResponse> => {\n return this.#datasetService.listDatasets(options);\n };\n\n /**\n * Creates a new dataset.\n *\n * @param options - Dataset creation options (name, columnTypes)\n * @returns The created dataset metadata\n */\n create = (options: CreateDatasetOptions): Promise<DatasetMetadata> => {\n if (!options.name || options.name.trim().length === 0) {\n throw new DatasetValidationError(\"Dataset name must not be empty\");\n }\n return this.#datasetService.createDataset(options);\n };\n\n /**\n * Fetches a dataset by its slug or ID, returning metadata and entries.\n *\n * @param slugOrId - The slug or ID of the dataset to fetch\n * @param options - Optional configuration\n * @returns The dataset with metadata and entries\n *\n * @example\n * ```typescript\n * // Get dataset by slug\n * const dataset = await langwatch.datasets.get(\"product-qa\");\n *\n * // Typed dataset\n * type MyDatasetEntry = { input: string; expected_output: string; };\n * const dataset = await langwatch.datasets.get<MyDatasetEntry>(\"my-dataset\");\n *\n * // Iterate over entries\n * for (const entry of dataset.entries) {\n * console.log(entry.entry.input);\n * }\n * ```\n */\n get = <T extends Record<string, unknown> = Record<string, unknown>>(\n slugOrId: string,\n options?: GetDatasetOptions\n ): Promise<Dataset<T>> => {\n return this.#datasetService.getDataset<T>(slugOrId, options);\n };\n\n /**\n * Updates a dataset by its slug or ID.\n *\n * @param slugOrId - The slug or ID of the dataset to update\n * @param options - Fields to update (name, columnTypes)\n * @returns The updated dataset metadata\n */\n update = (slugOrId: string, options: UpdateDatasetOptions): Promise<DatasetMetadata> => {\n if (options.name == null && options.columnTypes == null) {\n throw new DatasetValidationError(\n \"At least one field (name or columnTypes) must be provided for update\",\n );\n }\n return this.#datasetService.updateDataset(slugOrId, options);\n };\n\n /**\n * Deletes (archives) a dataset by its slug or ID.\n *\n * @param slugOrId - The slug or ID of the dataset to delete\n * @returns The archived dataset metadata\n */\n delete = (slugOrId: string): Promise<DatasetMetadata> => {\n return this.#datasetService.deleteDataset(slugOrId);\n };\n\n /**\n * Creates records in a dataset in batch.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param entries - Array of record entries to create\n * @returns The created records with IDs\n */\n createRecords = (\n slugOrId: string,\n entries: Record<string, unknown>[],\n ): Promise<BatchCreateRecordsResponse> => {\n if (!entries || entries.length === 0) {\n throw new DatasetValidationError(\"Entries must not be empty\");\n }\n return this.#datasetService.createRecords(slugOrId, entries);\n };\n\n /**\n * Updates a single record in a dataset.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param recordId - The ID of the record to update\n * @param entry - The updated entry data\n * @returns The updated record\n */\n updateRecord = (\n slugOrId: string,\n recordId: string,\n entry: Record<string, unknown>,\n ): Promise<DatasetRecordResponse> => {\n return this.#datasetService.updateRecord(slugOrId, recordId, entry);\n };\n\n /**\n * Deletes records from a dataset by IDs.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param recordIds - Array of record IDs to delete\n * @returns Object with the count of deleted records\n */\n deleteRecords = (\n slugOrId: string,\n recordIds: string[],\n ): Promise<DeleteRecordsResponse> => {\n return this.#datasetService.deleteRecords(slugOrId, recordIds);\n };\n\n /**\n * Lists records in a dataset with optional pagination.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param options - Pagination options (page, limit)\n * @returns Paginated list of records\n *\n * @example\n * ```typescript\n * // List first page of records\n * const result = await langwatch.datasets.listRecords(\"my-dataset\");\n *\n * // With pagination\n * const page2 = await langwatch.datasets.listRecords(\"my-dataset\", { page: 2, limit: 25 });\n * ```\n */\n listRecords = (\n slugOrId: string,\n options?: ListRecordsOptions,\n ): Promise<ListRecordsApiResponse> => {\n return this.#datasetService.listRecords(slugOrId, options);\n };\n\n /**\n * Uploads a file to a dataset with a configurable strategy for handling existing datasets.\n *\n * Strategies:\n * - `\"append\"` (default): Upload to existing dataset; if not found, create a new one.\n * - `\"replace\"`: Delete all existing records, then upload; if not found, create a new one.\n * - `\"error\"`: Throw a 409 error if the dataset already exists; if not found, create a new one.\n *\n * @param slugOrId - The slug or ID of the dataset\n * @param file - The file to upload (File or Blob)\n * @param options - Upload options including the ifExists strategy\n * @returns The upload result\n *\n * @example\n * ```typescript\n * const file = new File([\"input,output\\nhello,world\"], \"data.csv\", { type: \"text/csv\" });\n *\n * // Append to existing or create new\n * await langwatch.datasets.upload(\"my-dataset\", file);\n *\n * // Replace all records\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"replace\" });\n *\n * // Fail if dataset already exists\n * await langwatch.datasets.upload(\"my-dataset\", file, { ifExists: \"error\" });\n * ```\n */\n upload = (\n slugOrId: string,\n file: File | Blob,\n options?: {\n ifExists?: \"append\" | \"replace\" | \"error\";\n },\n ): Promise<UploadResponse> => {\n if (!file) {\n throw new DatasetValidationError(\"File must be provided for upload\");\n }\n return this.#datasetService.uploadWithStrategy(\n slugOrId,\n file,\n options?.ifExists ?? \"append\",\n );\n };\n}\n"]}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DeviceFlowError,
|
|
3
|
+
pollUntilDone,
|
|
4
|
+
startDeviceCode
|
|
5
|
+
} from "./chunk-3CPA262Z.mjs";
|
|
6
|
+
import {
|
|
7
|
+
getCliBootstrap
|
|
8
|
+
} from "./chunk-KJMU7OIX.mjs";
|
|
9
|
+
import {
|
|
10
|
+
loadConfig,
|
|
11
|
+
saveConfig
|
|
12
|
+
} from "./chunk-U47MQ6CS.mjs";
|
|
13
|
+
import {
|
|
14
|
+
__spreadProps,
|
|
15
|
+
__spreadValues
|
|
16
|
+
} from "./chunk-BAX4W3AY.mjs";
|
|
17
|
+
|
|
18
|
+
// src/cli/utils/governance/login-flow.ts
|
|
19
|
+
import * as fs from "fs";
|
|
20
|
+
import * as path from "path";
|
|
21
|
+
import chalk from "chalk";
|
|
22
|
+
import ora from "ora";
|
|
23
|
+
|
|
24
|
+
// src/cli/utils/governance/login-ceremony.ts
|
|
25
|
+
var DEFAULT_TOOLS = [
|
|
26
|
+
{ slug: "claude", displayName: "Claude Code" },
|
|
27
|
+
{ slug: "codex", displayName: "Codex" },
|
|
28
|
+
{ slug: "cursor", displayName: "Cursor" }
|
|
29
|
+
];
|
|
30
|
+
function padRight(s, width) {
|
|
31
|
+
if (s.length >= width) return s;
|
|
32
|
+
return s + " ".repeat(width - s.length);
|
|
33
|
+
}
|
|
34
|
+
function formatUsd(n) {
|
|
35
|
+
if (Number.isInteger(n)) return `$${n}`;
|
|
36
|
+
return `$${n.toFixed(2)}`;
|
|
37
|
+
}
|
|
38
|
+
function formatUsedUsd(n) {
|
|
39
|
+
return `$${n.toFixed(2)}`;
|
|
40
|
+
}
|
|
41
|
+
function formatLoginCeremony(input) {
|
|
42
|
+
const lines = [];
|
|
43
|
+
const orgSuffix = input.organizationName ? ` @ ${input.organizationName}` : "";
|
|
44
|
+
lines.push(`\u2713 Logged in as ${input.email}${orgSuffix}`);
|
|
45
|
+
const tools = input.tools && input.tools.length > 0 ? input.tools : DEFAULT_TOOLS;
|
|
46
|
+
lines.push("");
|
|
47
|
+
lines.push("Your AI tools (run any of these):");
|
|
48
|
+
const cmdWidth = Math.max(
|
|
49
|
+
...tools.map((t) => `langwatch ${t.slug}`.length)
|
|
50
|
+
);
|
|
51
|
+
for (const tool of tools) {
|
|
52
|
+
const cmd = `langwatch ${tool.slug}`;
|
|
53
|
+
const labelSuffix = tool.displayName ? ` # ${tool.displayName}` : "";
|
|
54
|
+
lines.push(` $ ${padRight(cmd, cmdWidth)}${labelSuffix}`);
|
|
55
|
+
}
|
|
56
|
+
if (input.providers && input.providers.length > 0) {
|
|
57
|
+
lines.push("");
|
|
58
|
+
lines.push("Model providers you can issue a virtual key for:");
|
|
59
|
+
const nameWidth = Math.max(...input.providers.map((p) => p.name.length));
|
|
60
|
+
for (const p of input.providers) {
|
|
61
|
+
const padded = padRight(p.name, nameWidth);
|
|
62
|
+
const annotations = [];
|
|
63
|
+
if (p.displayName && p.displayName !== p.name) {
|
|
64
|
+
annotations.push(p.displayName);
|
|
65
|
+
}
|
|
66
|
+
if (p.configured === false) annotations.push("(not configured yet)");
|
|
67
|
+
const suffix = annotations.length > 0 ? ` ${annotations.join(" ")}` : "";
|
|
68
|
+
lines.push(` \u2022 ${padded}${suffix}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (input.budget) {
|
|
72
|
+
lines.push("");
|
|
73
|
+
const period = input.budget.period.charAt(0).toUpperCase() + input.budget.period.slice(1).toLowerCase();
|
|
74
|
+
lines.push(
|
|
75
|
+
`${period} budget: ${formatUsd(input.budget.limitUsd)} | Used: ${formatUsedUsd(input.budget.usedUsd)}`
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
if (input.openCommand !== false) {
|
|
79
|
+
lines.push("");
|
|
80
|
+
lines.push("Or open the app in your browser:");
|
|
81
|
+
lines.push(" $ langwatch open");
|
|
82
|
+
}
|
|
83
|
+
return lines;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// src/cli/utils/governance/login-flow.ts
|
|
87
|
+
async function runUnifiedLoginFlow(opts = {}) {
|
|
88
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
89
|
+
const kind = (_a = opts.kind) != null ? _a : "device_session";
|
|
90
|
+
const cfg = (_b = opts.cfg) != null ? _b : loadConfig();
|
|
91
|
+
const baseUrl = cfg.control_plane_url;
|
|
92
|
+
console.log(chalk.blue("\u{1F510} LangWatch login"));
|
|
93
|
+
console.log(chalk.gray(`Control plane: ${baseUrl}`));
|
|
94
|
+
console.log(
|
|
95
|
+
chalk.gray(
|
|
96
|
+
kind === "project_api_key" ? "Mode: project SDK API key (will write .env)" : "Mode: device session (will write ~/.langwatch/config.json)"
|
|
97
|
+
)
|
|
98
|
+
);
|
|
99
|
+
const dc = await startDeviceCode({ baseUrl }, { credentialType: kind });
|
|
100
|
+
const verifyURL = (_c = dc.verification_uri_complete) != null ? _c : `${dc.verification_uri.replace(/\/+$/, "")}?user_code=${encodeURIComponent(dc.user_code)}`;
|
|
101
|
+
console.log();
|
|
102
|
+
console.log(chalk.cyan(`Opening: ${verifyURL}`));
|
|
103
|
+
console.log(
|
|
104
|
+
chalk.gray(
|
|
105
|
+
`If your browser doesn't open, paste the URL above and enter code: ${chalk.bold(dc.user_code)}`
|
|
106
|
+
)
|
|
107
|
+
);
|
|
108
|
+
console.log();
|
|
109
|
+
await openInBrowser(verifyURL, opts.browser);
|
|
110
|
+
const spinner = ora({
|
|
111
|
+
text: "Waiting for you to approve in the browser",
|
|
112
|
+
discardStdin: false
|
|
113
|
+
}).start();
|
|
114
|
+
const onSigint = () => {
|
|
115
|
+
spinner.stop();
|
|
116
|
+
console.log(chalk.gray("\nLogin cancelled."));
|
|
117
|
+
process.exit(130);
|
|
118
|
+
};
|
|
119
|
+
process.once("SIGINT", onSigint);
|
|
120
|
+
try {
|
|
121
|
+
const result = await pollUntilDone({ baseUrl }, dc);
|
|
122
|
+
if (result.kind === "device_session") {
|
|
123
|
+
spinner.succeed(`Logged in as ${result.user.email}`);
|
|
124
|
+
persistDeviceSession(cfg, result);
|
|
125
|
+
saveConfig(cfg);
|
|
126
|
+
const bootstrap = await fetchBootstrapSafely(cfg);
|
|
127
|
+
if (bootstrap == null ? void 0 : bootstrap.gatewayUrl) {
|
|
128
|
+
cfg.gateway_url = bootstrap.gatewayUrl;
|
|
129
|
+
saveConfig(cfg);
|
|
130
|
+
}
|
|
131
|
+
if (bootstrap == null ? void 0 : bootstrap.toolPolicies) {
|
|
132
|
+
cfg.tool_policies = bootstrap.toolPolicies;
|
|
133
|
+
saveConfig(cfg);
|
|
134
|
+
}
|
|
135
|
+
console.log();
|
|
136
|
+
const ceremonyLines = formatLoginCeremony({
|
|
137
|
+
email: (_e = (_d = cfg.user) == null ? void 0 : _d.email) != null ? _e : result.user.email,
|
|
138
|
+
organizationName: (_f = cfg.organization) == null ? void 0 : _f.name,
|
|
139
|
+
tools: bootstrap == null ? void 0 : bootstrap.tools,
|
|
140
|
+
providers: bootstrap == null ? void 0 : bootstrap.providers,
|
|
141
|
+
budget: ((_g = bootstrap == null ? void 0 : bootstrap.budget) == null ? void 0 : _g.monthlyLimitUsd) != null ? {
|
|
142
|
+
period: bootstrap.budget.period,
|
|
143
|
+
limitUsd: bootstrap.budget.monthlyLimitUsd,
|
|
144
|
+
usedUsd: bootstrap.budget.monthlyUsedUsd
|
|
145
|
+
} : void 0
|
|
146
|
+
});
|
|
147
|
+
for (const line of ceremonyLines) {
|
|
148
|
+
console.log(line);
|
|
149
|
+
}
|
|
150
|
+
console.log();
|
|
151
|
+
console.log(chalk.gray(` Dashboard: ${cfg.control_plane_url}`));
|
|
152
|
+
return cfg;
|
|
153
|
+
}
|
|
154
|
+
spinner.succeed(
|
|
155
|
+
`API key generated for project ${chalk.bold(result.project.name)}`
|
|
156
|
+
);
|
|
157
|
+
const envResult = writeApiKeyToEnv(result.api_key);
|
|
158
|
+
console.log();
|
|
159
|
+
console.log(chalk.green("\u2713 API key saved to .env"));
|
|
160
|
+
if (envResult.created) {
|
|
161
|
+
console.log(chalk.gray(` \u2022 Created .env file at ${envResult.path}`));
|
|
162
|
+
} else if (envResult.updated) {
|
|
163
|
+
console.log(chalk.gray(` \u2022 Updated existing API key in ${envResult.path}`));
|
|
164
|
+
} else {
|
|
165
|
+
console.log(chalk.gray(` \u2022 Added API key to ${envResult.path}`));
|
|
166
|
+
}
|
|
167
|
+
console.log();
|
|
168
|
+
console.log(
|
|
169
|
+
chalk.gray(
|
|
170
|
+
` Project: ${result.project.name} (${result.project.slug})`
|
|
171
|
+
)
|
|
172
|
+
);
|
|
173
|
+
console.log(chalk.gray(` Dashboard: ${cfg.control_plane_url}`));
|
|
174
|
+
return cfg;
|
|
175
|
+
} catch (err) {
|
|
176
|
+
spinner.fail();
|
|
177
|
+
if (err instanceof DeviceFlowError) {
|
|
178
|
+
switch (err.kind) {
|
|
179
|
+
case "denied":
|
|
180
|
+
throw new Error(
|
|
181
|
+
"authorization denied \u2014 you can retry `langwatch login`"
|
|
182
|
+
);
|
|
183
|
+
case "expired":
|
|
184
|
+
throw new Error(
|
|
185
|
+
"authorization request expired \u2014 run `langwatch login` again"
|
|
186
|
+
);
|
|
187
|
+
default:
|
|
188
|
+
throw err;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
throw err;
|
|
192
|
+
} finally {
|
|
193
|
+
process.removeListener("SIGINT", onSigint);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
async function runDeviceFlowLogin(opts = {}) {
|
|
197
|
+
return runUnifiedLoginFlow(__spreadProps(__spreadValues({}, opts), { kind: "device_session" }));
|
|
198
|
+
}
|
|
199
|
+
function persistDeviceSession(cfg, result) {
|
|
200
|
+
cfg.access_token = result.access_token;
|
|
201
|
+
cfg.refresh_token = result.refresh_token;
|
|
202
|
+
cfg.expires_at = Math.floor(Date.now() / 1e3) + result.expires_in;
|
|
203
|
+
cfg.user = {
|
|
204
|
+
id: result.user.id,
|
|
205
|
+
email: result.user.email,
|
|
206
|
+
name: result.user.name
|
|
207
|
+
};
|
|
208
|
+
cfg.organization = {
|
|
209
|
+
id: result.organization.id,
|
|
210
|
+
slug: result.organization.slug,
|
|
211
|
+
name: result.organization.name
|
|
212
|
+
};
|
|
213
|
+
if (result.default_personal_vk) {
|
|
214
|
+
cfg.default_personal_vk = {
|
|
215
|
+
id: result.default_personal_vk.id,
|
|
216
|
+
secret: result.default_personal_vk.secret,
|
|
217
|
+
prefix: result.default_personal_vk.prefix
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
if (result.endpoint) {
|
|
221
|
+
cfg.control_plane_url = result.endpoint.replace(/\/+$/, "");
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
function writeApiKeyToEnv(apiKey) {
|
|
225
|
+
const envPath = path.join(process.cwd(), ".env");
|
|
226
|
+
if (!fs.existsSync(envPath)) {
|
|
227
|
+
fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}
|
|
228
|
+
`);
|
|
229
|
+
return { created: true, updated: false, path: envPath };
|
|
230
|
+
}
|
|
231
|
+
const content = fs.readFileSync(envPath, "utf-8");
|
|
232
|
+
const lines = content.split("\n");
|
|
233
|
+
let found = false;
|
|
234
|
+
const updatedLines = lines.map((line) => {
|
|
235
|
+
if (line.startsWith("LANGWATCH_API_KEY=")) {
|
|
236
|
+
found = true;
|
|
237
|
+
return `LANGWATCH_API_KEY=${apiKey}`;
|
|
238
|
+
}
|
|
239
|
+
return line;
|
|
240
|
+
});
|
|
241
|
+
if (!found) {
|
|
242
|
+
if (content.endsWith("\n") || content === "") {
|
|
243
|
+
updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);
|
|
244
|
+
} else {
|
|
245
|
+
updatedLines.push("", `LANGWATCH_API_KEY=${apiKey}`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
fs.writeFileSync(envPath, updatedLines.join("\n"));
|
|
249
|
+
return { created: false, updated: found, path: envPath };
|
|
250
|
+
}
|
|
251
|
+
async function fetchBootstrapSafely(cfg) {
|
|
252
|
+
try {
|
|
253
|
+
return await getCliBootstrap(cfg);
|
|
254
|
+
} catch (e) {
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
async function openInBrowser(url, override) {
|
|
259
|
+
var _a, _b;
|
|
260
|
+
const choice = (_b = (_a = override != null ? override : process.env.LANGWATCH_BROWSER) != null ? _a : process.env.BROWSER) != null ? _b : "";
|
|
261
|
+
if (choice === "none") return;
|
|
262
|
+
const open = (await import("open")).default;
|
|
263
|
+
try {
|
|
264
|
+
if (!choice || choice === "default") {
|
|
265
|
+
await open(url);
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
await open(url, { app: { name: choice } });
|
|
269
|
+
} catch (e) {
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export {
|
|
274
|
+
runUnifiedLoginFlow,
|
|
275
|
+
runDeviceFlowLogin
|
|
276
|
+
};
|
|
277
|
+
//# sourceMappingURL=chunk-M566XQWU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/utils/governance/login-flow.ts","../src/cli/utils/governance/login-ceremony.ts"],"sourcesContent":["/**\n * Shared device-code login implementations. Two entry points:\n *\n * 1. `runUnifiedLoginFlow({ kind })` — the canonical flow used by\n * `langwatch login` (interactive routes here for both modes). The\n * same browser-approval ceremony works for either credential type;\n * only the persist target differs:\n * kind: 'device_session' → ~/.langwatch/config.json\n * kind: 'project_api_key' → $CWD/.env (LANGWATCH_API_KEY)\n * No copy-paste of the credential ever — the server ships it\n * back to the CLI over the same RFC 8628 poll endpoint.\n *\n * 2. `runDeviceFlowLogin(...)` — back-compat wrapper that calls\n * `runUnifiedLoginFlow({ kind: 'device_session' })`. Preserved so\n * `commands/login.ts --device` and `utils/governance/wrapper.ts`\n * auto-login keep working without churn.\n *\n * Spec: specs/ai-governance/cli-onboarding/login-unified.feature\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n startDeviceCode,\n pollUntilDone,\n DeviceFlowError,\n type CredentialType,\n type ExchangeApiKeyResult,\n type ExchangeDeviceSessionResult,\n} from \"./device-flow\";\nimport { loadConfig, saveConfig, type GovernanceConfig } from \"./config\";\nimport { formatLoginCeremony } from \"./login-ceremony\";\nimport { getCliBootstrap, type CliBootstrapResponse } from \"./cli-api\";\n\nexport interface RunUnifiedLoginOptions {\n /** Credential type to mint. Defaults to 'device_session' for back-compat. */\n kind?: CredentialType;\n /** Optional browser override (LANGWATCH_BROWSER also honoured). */\n browser?: string;\n /** Pre-loaded config to mutate; defaults to `loadConfig()`. */\n cfg?: GovernanceConfig;\n}\n\nexport type RunDeviceFlowLoginOptions = Omit<RunUnifiedLoginOptions, \"kind\">;\n\n/**\n * Run the canonical device-code login flow end-to-end. Selects what to\n * mint via `kind` (defaults to device_session); the same browser\n * approval ceremony covers both modes. On success, persists to the\n * right store + returns the latest GovernanceConfig.\n */\nexport async function runUnifiedLoginFlow(\n opts: RunUnifiedLoginOptions = {},\n): Promise<GovernanceConfig> {\n const kind: CredentialType = opts.kind ?? \"device_session\";\n const cfg = opts.cfg ?? loadConfig();\n const baseUrl = cfg.control_plane_url;\n\n console.log(chalk.blue(\"🔐 LangWatch login\"));\n console.log(chalk.gray(`Control plane: ${baseUrl}`));\n console.log(\n chalk.gray(\n kind === \"project_api_key\"\n ? \"Mode: project SDK API key (will write .env)\"\n : \"Mode: device session (will write ~/.langwatch/config.json)\",\n ),\n );\n\n const dc = await startDeviceCode({ baseUrl }, { credentialType: kind });\n const verifyURL =\n dc.verification_uri_complete ??\n `${dc.verification_uri.replace(/\\/+$/, \"\")}?user_code=${encodeURIComponent(dc.user_code)}`;\n\n console.log();\n console.log(chalk.cyan(`Opening: ${verifyURL}`));\n console.log(\n chalk.gray(\n `If your browser doesn't open, paste the URL above and enter code: ${chalk.bold(dc.user_code)}`,\n ),\n );\n console.log();\n\n await openInBrowser(verifyURL, opts.browser);\n\n // discardStdin:false is load-bearing. ora's default (true) flips stdin to\n // raw mode while the spinner runs, so Ctrl+C arrives as a raw 0x03 byte that\n // ora swallows instead of a SIGINT — the wait becomes unkillable. Keeping\n // stdin cooked lets the terminal deliver SIGINT; the handler stops the\n // spinner and exits cleanly so the user can always abort the login wait.\n const spinner = ora({\n text: \"Waiting for you to approve in the browser\",\n discardStdin: false,\n }).start();\n const onSigint = () => {\n spinner.stop();\n console.log(chalk.gray(\"\\nLogin cancelled.\"));\n process.exit(130);\n };\n process.once(\"SIGINT\", onSigint);\n try {\n const result = await pollUntilDone({ baseUrl }, dc);\n if (result.kind === \"device_session\") {\n spinner.succeed(`Logged in as ${result.user.email}`);\n persistDeviceSession(cfg, result);\n saveConfig(cfg);\n\n const bootstrap = await fetchBootstrapSafely(cfg);\n\n // Pick up the server's authoritative gateway URL. Without this,\n // self-hosted CLI users would see the SaaS default\n // (https://gateway.langwatch.ai) on whoami / login output even\n // though the actual gateway is on localhost:5563. The server's\n // `gatewayUrl` reflects `LW_GATEWAY_BASE_URL` or the IS_SAAS-\n // aware fallback. Backwards-compatible: older servers (without\n // this field) leave the local default in place.\n if (bootstrap?.gatewayUrl) {\n cfg.gateway_url = bootstrap.gatewayUrl;\n saveConfig(cfg);\n }\n\n // Cache the org's per-tool path policy so the `langwatch <tool>`\n // wrapper gates path selection on the admin's choices offline.\n // Older servers omit the field; the wrapper then falls back to\n // the hardcoded defaults.\n if (bootstrap?.toolPolicies) {\n cfg.tool_policies = bootstrap.toolPolicies;\n saveConfig(cfg);\n }\n\n console.log();\n const ceremonyLines = formatLoginCeremony({\n email: cfg.user?.email ?? result.user.email,\n organizationName: cfg.organization?.name,\n tools: bootstrap?.tools,\n providers: bootstrap?.providers,\n budget:\n bootstrap?.budget?.monthlyLimitUsd != null\n ? {\n period: bootstrap.budget.period,\n limitUsd: bootstrap.budget.monthlyLimitUsd,\n usedUsd: bootstrap.budget.monthlyUsedUsd,\n }\n : undefined,\n });\n for (const line of ceremonyLines) {\n console.log(line);\n }\n console.log();\n console.log(chalk.gray(` Dashboard: ${cfg.control_plane_url}`));\n\n return cfg;\n }\n\n // kind === 'api_key' — write to project-local .env (NO copy-paste)\n spinner.succeed(\n `API key generated for project ${chalk.bold(result.project.name)}`,\n );\n const envResult = writeApiKeyToEnv(result.api_key);\n console.log();\n console.log(chalk.green(\"✓ API key saved to .env\"));\n if (envResult.created) {\n console.log(chalk.gray(` • Created .env file at ${envResult.path}`));\n } else if (envResult.updated) {\n console.log(chalk.gray(` • Updated existing API key in ${envResult.path}`));\n } else {\n console.log(chalk.gray(` • Added API key to ${envResult.path}`));\n }\n console.log();\n console.log(\n chalk.gray(\n ` Project: ${result.project.name} (${result.project.slug})`,\n ),\n );\n console.log(chalk.gray(` Dashboard: ${cfg.control_plane_url}`));\n return cfg;\n } catch (err) {\n spinner.fail();\n if (err instanceof DeviceFlowError) {\n switch (err.kind) {\n case \"denied\":\n throw new Error(\n \"authorization denied — you can retry `langwatch login`\",\n );\n case \"expired\":\n throw new Error(\n \"authorization request expired — run `langwatch login` again\",\n );\n default:\n throw err;\n }\n }\n throw err;\n } finally {\n process.removeListener(\"SIGINT\", onSigint);\n }\n}\n\n/**\n * Back-compat wrapper. New callers should use `runUnifiedLoginFlow`\n * directly with an explicit `kind`.\n */\nexport async function runDeviceFlowLogin(\n opts: RunDeviceFlowLoginOptions = {},\n): Promise<GovernanceConfig> {\n return runUnifiedLoginFlow({ ...opts, kind: \"device_session\" });\n}\n\nfunction persistDeviceSession(\n cfg: GovernanceConfig,\n result: ExchangeDeviceSessionResult,\n): void {\n cfg.access_token = result.access_token;\n cfg.refresh_token = result.refresh_token;\n cfg.expires_at = Math.floor(Date.now() / 1000) + result.expires_in;\n cfg.user = {\n id: result.user.id,\n email: result.user.email,\n name: result.user.name,\n };\n cfg.organization = {\n id: result.organization.id,\n slug: result.organization.slug,\n name: result.organization.name,\n };\n if (result.default_personal_vk) {\n cfg.default_personal_vk = {\n id: result.default_personal_vk.id,\n secret: result.default_personal_vk.secret,\n prefix: result.default_personal_vk.prefix,\n };\n }\n if (result.endpoint) {\n cfg.control_plane_url = result.endpoint.replace(/\\/+$/, \"\");\n }\n}\n\ninterface EnvWriteResult {\n created: boolean;\n updated: boolean;\n path: string;\n}\n\nfunction writeApiKeyToEnv(apiKey: string): EnvWriteResult {\n const envPath = path.join(process.cwd(), \".env\");\n if (!fs.existsSync(envPath)) {\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n let found = false;\n const updatedLines = lines.map((line) => {\n if (line.startsWith(\"LANGWATCH_API_KEY=\")) {\n found = true;\n return `LANGWATCH_API_KEY=${apiKey}`;\n }\n return line;\n });\n if (!found) {\n if (content.endsWith(\"\\n\") || content === \"\") {\n updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);\n } else {\n updatedLines.push(\"\", `LANGWATCH_API_KEY=${apiKey}`);\n }\n }\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n}\n\nasync function fetchBootstrapSafely(\n cfg: GovernanceConfig,\n): Promise<CliBootstrapResponse | null> {\n try {\n return await getCliBootstrap(cfg);\n } catch {\n return null;\n }\n}\n\nasync function openInBrowser(url: string, override?: string): Promise<void> {\n const choice =\n override ?? process.env.LANGWATCH_BROWSER ?? process.env.BROWSER ?? \"\";\n if (choice === \"none\") return;\n const open = (await import(\"open\")).default;\n try {\n if (!choice || choice === \"default\") {\n await open(url);\n return;\n }\n await open(url, { app: { name: choice } });\n } catch {\n // browser failure shouldn't break login — user can paste manually\n }\n}\n\n// The post-login shell-rc persist offer was removed when `langwatch\n// login` became auth-only: the device session in config.json is\n// already authoritative, so login never edits the shell rc. The\n// persist offer now lives in the `langwatch <tool>` wrapper and fires\n// only in ingestion mode (maybeOfferIngestionShellRcPersist in\n// shell-rc.ts), framed as installing telemetry.\n\n// Type-only re-exports so callers can import the shapes from this\n// module without reaching into device-flow.ts.\nexport type { ExchangeApiKeyResult, ExchangeDeviceSessionResult };\n","/**\n * Render the \"You're in!\" ceremony emitted by `langwatch login` after a\n * successful device-flow exchange.\n *\n * Two clearly-separated lists, sourced from the org's AI Tools catalog:\n *\n * ✓ Logged in as jane@acme.com @ Acme\n *\n * Your AI tools (run any of these):\n * $ langwatch claude # Claude Code\n * $ langwatch codex # Codex\n *\n * Model providers you can issue a virtual key for:\n * • anthropic Claude\n * • openai (not configured yet)\n *\n * Monthly budget: $500 | Used: $0.00\n *\n * Or open the app in your browser:\n * $ langwatch open\n *\n * The two sections answer two different questions: which coding assistants\n * can I run right now (`tools`), and which model providers can I mint my own\n * virtual key for (`providers`). They are NOT the same thing — conflating\n * them was the bug this rewrite fixes.\n *\n * Pure function: takes the data, returns an array of lines. Caller applies\n * any chalk colouring + writes to stdout. Lets unit tests assert on the\n * literal output without colour/escape noise.\n */\n\nexport interface LoginCeremonyTool {\n /** CLI slug the wrapper runs (e.g. \"claude\", \"codex\"). */\n slug: string;\n /** Human-readable assistant name (e.g. \"Claude Code\"). */\n displayName: string;\n}\n\nexport interface LoginCeremonyProvider {\n /** Provider key (lowercase, e.g. \"anthropic\", \"openai\", \"gemini\"). */\n name: string;\n /** Optional human-readable provider label (e.g. \"Anthropic\"). */\n displayName?: string;\n /**\n * Whether the org has a live credential for this provider. When false the\n * ceremony annotates the row so the user knows the tile still needs setup\n * before a minted key will work.\n */\n configured?: boolean;\n}\n\nexport interface LoginCeremonyBudget {\n /** Period label (e.g. \"Monthly\"). Capitalised in output. */\n period: string;\n /** Spend ceiling in USD (rendered as `$N`). */\n limitUsd: number;\n /** Used so far in USD (rendered with two decimals). */\n usedUsd: number;\n}\n\nexport interface LoginCeremonyInput {\n email: string;\n organizationName?: string;\n /**\n * Coding assistants the user can run via `langwatch <slug>`, sourced from\n * the org's catalog. When empty / omitted the ceremony falls back to the\n * built-in default wrappers so a fresh org still gets a next-step.\n */\n tools?: LoginCeremonyTool[];\n /** Model providers the user can mint their own virtual key for. */\n providers?: LoginCeremonyProvider[];\n budget?: LoginCeremonyBudget;\n /** Whether the `langwatch open` browser-launch command is available. */\n openCommand?: boolean;\n}\n\n/** Fallback wrappers when the org has not published any coding-assistant tile. */\nconst DEFAULT_TOOLS: LoginCeremonyTool[] = [\n { slug: \"claude\", displayName: \"Claude Code\" },\n { slug: \"codex\", displayName: \"Codex\" },\n { slug: \"cursor\", displayName: \"Cursor\" },\n];\n\nfunction padRight(s: string, width: number): string {\n if (s.length >= width) return s;\n return s + \" \".repeat(width - s.length);\n}\n\nfunction formatUsd(n: number): string {\n // $500 (whole) → \"$500\"; $42.18 → \"$42.18\".\n if (Number.isInteger(n)) return `$${n}`;\n return `$${n.toFixed(2)}`;\n}\n\nfunction formatUsedUsd(n: number): string {\n return `$${n.toFixed(2)}`;\n}\n\nexport function formatLoginCeremony(input: LoginCeremonyInput): string[] {\n const lines: string[] = [];\n\n const orgSuffix = input.organizationName ? ` @ ${input.organizationName}` : \"\";\n lines.push(`✓ Logged in as ${input.email}${orgSuffix}`);\n\n // AI tools (coding assistants). Fall back to the built-in wrappers when the\n // org published none, so the user always gets a runnable next-step.\n const tools =\n input.tools && input.tools.length > 0 ? input.tools : DEFAULT_TOOLS;\n lines.push(\"\");\n lines.push(\"Your AI tools (run any of these):\");\n const cmdWidth = Math.max(\n ...tools.map((t) => `langwatch ${t.slug}`.length),\n );\n for (const tool of tools) {\n const cmd = `langwatch ${tool.slug}`;\n const labelSuffix = tool.displayName ? ` # ${tool.displayName}` : \"\";\n lines.push(` $ ${padRight(cmd, cmdWidth)}${labelSuffix}`);\n }\n\n // Model providers the user can mint a virtual key for — a different concept\n // from the tools above. Only shown when the org published provider tiles.\n if (input.providers && input.providers.length > 0) {\n lines.push(\"\");\n lines.push(\"Model providers you can issue a virtual key for:\");\n const nameWidth = Math.max(...input.providers.map((p) => p.name.length));\n for (const p of input.providers) {\n const padded = padRight(p.name, nameWidth);\n const annotations: string[] = [];\n if (p.displayName && p.displayName !== p.name) {\n annotations.push(p.displayName);\n }\n if (p.configured === false) annotations.push(\"(not configured yet)\");\n const suffix = annotations.length > 0 ? ` ${annotations.join(\" \")}` : \"\";\n lines.push(` • ${padded}${suffix}`);\n }\n }\n\n if (input.budget) {\n lines.push(\"\");\n const period =\n input.budget.period.charAt(0).toUpperCase() +\n input.budget.period.slice(1).toLowerCase();\n lines.push(\n `${period} budget: ${formatUsd(input.budget.limitUsd)} | Used: ${formatUsedUsd(input.budget.usedUsd)}`,\n );\n }\n\n if (input.openCommand !== false) {\n lines.push(\"\");\n lines.push(\"Or open the app in your browser:\");\n lines.push(\" $ langwatch open\");\n }\n\n return lines;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_ENDPOINT
|
|
3
|
+
} from "./chunk-QMULACG7.mjs";
|
|
4
|
+
import {
|
|
5
|
+
formatApiErrorForOperation
|
|
6
|
+
} from "./chunk-J3KM7ZO7.mjs";
|
|
7
|
+
import {
|
|
8
|
+
__spreadProps,
|
|
9
|
+
__spreadValues
|
|
10
|
+
} from "./chunk-BAX4W3AY.mjs";
|
|
11
|
+
|
|
12
|
+
// src/client-sdk/services/virtual-keys/virtual-keys-api.service.ts
|
|
13
|
+
var VirtualKeysApiError = class extends Error {
|
|
14
|
+
constructor(message, operation, originalError) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.operation = operation;
|
|
17
|
+
this.originalError = originalError;
|
|
18
|
+
this.name = "VirtualKeysApiError";
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var VirtualKeysApiService = class {
|
|
22
|
+
constructor(config) {
|
|
23
|
+
var _a, _b, _c, _d;
|
|
24
|
+
this.endpoint = ((_b = (_a = config == null ? void 0 : config.endpoint) != null ? _a : process.env.LANGWATCH_ENDPOINT) != null ? _b : DEFAULT_ENDPOINT).replace(/\/+$/, "");
|
|
25
|
+
this.apiKey = (_d = (_c = config == null ? void 0 : config.apiKey) != null ? _c : process.env.LANGWATCH_API_KEY) != null ? _d : "";
|
|
26
|
+
}
|
|
27
|
+
headers() {
|
|
28
|
+
return {
|
|
29
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
30
|
+
"Content-Type": "application/json"
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
async request(operation, path, init) {
|
|
34
|
+
var _a;
|
|
35
|
+
const response = await fetch(`${this.endpoint}${path}`, __spreadProps(__spreadValues({}, init), {
|
|
36
|
+
headers: __spreadValues(__spreadValues({}, this.headers()), (_a = init == null ? void 0 : init.headers) != null ? _a : {})
|
|
37
|
+
}));
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
let parsedBody;
|
|
40
|
+
try {
|
|
41
|
+
parsedBody = await response.json();
|
|
42
|
+
} catch (e) {
|
|
43
|
+
parsedBody = await response.text();
|
|
44
|
+
}
|
|
45
|
+
const message = formatApiErrorForOperation({
|
|
46
|
+
operation,
|
|
47
|
+
error: parsedBody,
|
|
48
|
+
options: { status: response.status }
|
|
49
|
+
});
|
|
50
|
+
throw new VirtualKeysApiError(message, operation, parsedBody);
|
|
51
|
+
}
|
|
52
|
+
return await response.json();
|
|
53
|
+
}
|
|
54
|
+
async list() {
|
|
55
|
+
const { data } = await this.request(
|
|
56
|
+
"list virtual keys",
|
|
57
|
+
"/api/gateway/v1/virtual-keys"
|
|
58
|
+
);
|
|
59
|
+
return data;
|
|
60
|
+
}
|
|
61
|
+
async get(id) {
|
|
62
|
+
const { virtual_key } = await this.request(
|
|
63
|
+
`get virtual key "${id}"`,
|
|
64
|
+
`/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}`
|
|
65
|
+
);
|
|
66
|
+
return virtual_key;
|
|
67
|
+
}
|
|
68
|
+
async create(input) {
|
|
69
|
+
return this.request(
|
|
70
|
+
"create virtual key",
|
|
71
|
+
"/api/gateway/v1/virtual-keys",
|
|
72
|
+
{ method: "POST", body: JSON.stringify(input) }
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
async update(id, input) {
|
|
76
|
+
const { virtual_key } = await this.request(
|
|
77
|
+
`update virtual key "${id}"`,
|
|
78
|
+
`/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}`,
|
|
79
|
+
{ method: "PATCH", body: JSON.stringify(input) }
|
|
80
|
+
);
|
|
81
|
+
return virtual_key;
|
|
82
|
+
}
|
|
83
|
+
async rotate(id) {
|
|
84
|
+
return this.request(
|
|
85
|
+
`rotate virtual key "${id}"`,
|
|
86
|
+
`/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}/rotate`,
|
|
87
|
+
{ method: "POST" }
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
async revoke(id) {
|
|
91
|
+
const { virtual_key } = await this.request(
|
|
92
|
+
`revoke virtual key "${id}"`,
|
|
93
|
+
`/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}/revoke`,
|
|
94
|
+
{ method: "POST" }
|
|
95
|
+
);
|
|
96
|
+
return virtual_key;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export {
|
|
101
|
+
VirtualKeysApiService
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=chunk-M5WZJP5D.mjs.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkNTWYYCHMjs = require('./chunk-NTWYYCHM.js');
|
|
4
|
+
|
|
5
|
+
// src/cli/commands/virtual-keys/_shared.ts
|
|
6
|
+
function virtualKeyDetailUrl(vkId) {
|
|
7
|
+
const uiOverride = process.env.LANGWATCH_UI_ENDPOINT;
|
|
8
|
+
const base = (uiOverride != null ? uiOverride : _chunkNTWYYCHMjs.resolveControlPlaneUrl.call(void 0, )).replace(/\/+$/, "");
|
|
9
|
+
if (!base) return "";
|
|
10
|
+
return `${base}/settings/gateway/virtual-keys/${encodeURIComponent(vkId)}`;
|
|
11
|
+
}
|
|
12
|
+
var SCOPE_TYPES = ["ORGANIZATION", "TEAM", "PROJECT"];
|
|
13
|
+
function parseScopeArg(raw) {
|
|
14
|
+
const trimmed = raw.trim();
|
|
15
|
+
const colon = trimmed.indexOf(":");
|
|
16
|
+
if (colon < 1 || colon === trimmed.length - 1) {
|
|
17
|
+
throw new Error(`--scope value "${raw}" must be in the form TYPE:id (e.g. ORG:acme, TEAM:platform, PROJECT:demo)`);
|
|
18
|
+
}
|
|
19
|
+
const typeRaw = trimmed.slice(0, colon).toUpperCase();
|
|
20
|
+
const scopeId = trimmed.slice(colon + 1).trim();
|
|
21
|
+
const scopeType = typeRaw === "ORG" ? "ORGANIZATION" : SCOPE_TYPES.includes(typeRaw) ? typeRaw : null;
|
|
22
|
+
if (!scopeType) {
|
|
23
|
+
throw new Error(`--scope type "${typeRaw}" must be one of ORG | ORGANIZATION | TEAM | PROJECT`);
|
|
24
|
+
}
|
|
25
|
+
if (!scopeId) {
|
|
26
|
+
throw new Error(`--scope value "${raw}" is missing the id after the colon`);
|
|
27
|
+
}
|
|
28
|
+
return { scope_type: scopeType, scope_id: scopeId };
|
|
29
|
+
}
|
|
30
|
+
function formatScope(scope) {
|
|
31
|
+
const prefix = scope.scope_type === "ORGANIZATION" ? "ORG" : scope.scope_type;
|
|
32
|
+
return `${prefix}:${scope.scope_id}`;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
exports.virtualKeyDetailUrl = virtualKeyDetailUrl; exports.parseScopeArg = parseScopeArg; exports.formatScope = formatScope;
|
|
40
|
+
//# sourceMappingURL=chunk-MGGXWCRG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-MGGXWCRG.js","../src/cli/commands/virtual-keys/_shared.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACMO,SAAS,mBAAA,CAAoB,IAAA,EAAsB;AACxD,EAAA,MAAM,WAAA,EAAa,OAAA,CAAQ,GAAA,CAAI,qBAAA;AAC/B,EAAA,MAAM,KAAA,EAAA,CAAQ,WAAA,GAAA,KAAA,EAAA,WAAA,EAAc,qDAAA,CAAuB,CAAA,CAAG,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AACxE,EAAA,GAAA,CAAI,CAAC,IAAA,EAAM,OAAO,EAAA;AAClB,EAAA,OAAO,CAAA,EAAA;AACT;AAEM;AASU;AACR,EAAA;AACA,EAAA;AACF,EAAA;AACI,IAAA;AACR,EAAA;AACM,EAAA;AACA,EAAA;AACA,EAAA;AAID,EAAA;AACG,IAAA;AACR,EAAA;AACK,EAAA;AACG,IAAA;AACR,EAAA;AACO,EAAA;AACT;AAMgB;AACR,EAAA;AACC,EAAA;AACT;ADrBU;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-MGGXWCRG.js","sourcesContent":[null,"import type { VirtualKeyScope, VirtualKeyScopeType } from \"@/client-sdk/services/virtual-keys/virtual-keys-api.service\";\nimport { resolveControlPlaneUrl } from \"@/cli/utils/governance/resolveEndpoint\";\n\n/**\n * Build the public-facing LangWatch UI URL for a VK detail page. After the\n * multi-scope refactor (PR #3524), VKs live at the org-scoped settings\n * surface (/settings/gateway/virtual-keys/:id) regardless of their scope\n * rows; the per-project gateway pages are gone. Honours\n * `LANGWATCH_UI_ENDPOINT` for split UI/API hosts.\n */\nexport function virtualKeyDetailUrl(vkId: string): string {\n const uiOverride = process.env.LANGWATCH_UI_ENDPOINT;\n const base = (uiOverride ?? resolveControlPlaneUrl()).replace(/\\/+$/, \"\");\n if (!base) return \"\";\n return `${base}/settings/gateway/virtual-keys/${encodeURIComponent(vkId)}`;\n}\n\nconst SCOPE_TYPES: VirtualKeyScopeType[] = [\"ORGANIZATION\", \"TEAM\", \"PROJECT\"];\n\n/**\n * Parse a single `--scope <TYPE>:<id>` CLI value into a `VirtualKeyScope`.\n * Accepts the canonical ORGANIZATION/TEAM/PROJECT spellings (case-insensitive)\n * plus the friendly ORG alias for `ORGANIZATION`. Throws an Error with a\n * single-sentence message the CLI can print directly so users see what they\n * mistyped without a stack trace.\n */\nexport function parseScopeArg(raw: string): VirtualKeyScope {\n const trimmed = raw.trim();\n const colon = trimmed.indexOf(\":\");\n if (colon < 1 || colon === trimmed.length - 1) {\n throw new Error(`--scope value \"${raw}\" must be in the form TYPE:id (e.g. ORG:acme, TEAM:platform, PROJECT:demo)`);\n }\n const typeRaw = trimmed.slice(0, colon).toUpperCase();\n const scopeId = trimmed.slice(colon + 1).trim();\n const scopeType: VirtualKeyScopeType | null =\n typeRaw === \"ORG\" ? \"ORGANIZATION\" :\n (SCOPE_TYPES as readonly string[]).includes(typeRaw) ? (typeRaw as VirtualKeyScopeType) :\n null;\n if (!scopeType) {\n throw new Error(`--scope type \"${typeRaw}\" must be one of ORG | ORGANIZATION | TEAM | PROJECT`);\n }\n if (!scopeId) {\n throw new Error(`--scope value \"${raw}\" is missing the id after the colon`);\n }\n return { scope_type: scopeType, scope_id: scopeId };\n}\n\n/**\n * Format a scope for display in CLI tables / get output: `ORG:acme`,\n * `TEAM:platform`, etc. Uses the short `ORG` form for brevity.\n */\nexport function formatScope(scope: VirtualKeyScope): string {\n const prefix = scope.scope_type === \"ORGANIZATION\" ? \"ORG\" : scope.scope_type;\n return `${prefix}:${scope.scope_id}`;\n}\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_ENDPOINT
|
|
3
|
+
} from "./chunk-QMULACG7.mjs";
|
|
4
|
+
import {
|
|
5
|
+
formatApiErrorForOperation
|
|
6
|
+
} from "./chunk-J3KM7ZO7.mjs";
|
|
7
|
+
import {
|
|
8
|
+
__spreadProps,
|
|
9
|
+
__spreadValues
|
|
10
|
+
} from "./chunk-BAX4W3AY.mjs";
|
|
11
|
+
|
|
12
|
+
// src/client-sdk/services/api-keys/api-keys-api.service.ts
|
|
13
|
+
var ApiKeysApiError = class extends Error {
|
|
14
|
+
constructor(message, operation, originalError) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.operation = operation;
|
|
17
|
+
this.originalError = originalError;
|
|
18
|
+
this.name = "ApiKeysApiError";
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var ApiKeysApiService = class {
|
|
22
|
+
constructor(config) {
|
|
23
|
+
var _a, _b, _c, _d;
|
|
24
|
+
this.endpoint = ((_b = (_a = config == null ? void 0 : config.endpoint) != null ? _a : process.env.LANGWATCH_ENDPOINT) != null ? _b : DEFAULT_ENDPOINT).replace(/\/+$/, "");
|
|
25
|
+
this.apiKey = (_d = (_c = config == null ? void 0 : config.apiKey) != null ? _c : process.env.LANGWATCH_API_KEY) != null ? _d : "";
|
|
26
|
+
}
|
|
27
|
+
headers() {
|
|
28
|
+
return {
|
|
29
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
30
|
+
"Content-Type": "application/json"
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
async request(operation, path, init) {
|
|
34
|
+
var _a;
|
|
35
|
+
const response = await fetch(`${this.endpoint}${path}`, __spreadProps(__spreadValues({}, init), {
|
|
36
|
+
headers: __spreadValues(__spreadValues({}, this.headers()), (_a = init == null ? void 0 : init.headers) != null ? _a : {})
|
|
37
|
+
}));
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
let parsedBody;
|
|
40
|
+
try {
|
|
41
|
+
parsedBody = await response.json();
|
|
42
|
+
} catch (e) {
|
|
43
|
+
parsedBody = await response.text();
|
|
44
|
+
}
|
|
45
|
+
const message = formatApiErrorForOperation({
|
|
46
|
+
operation,
|
|
47
|
+
error: parsedBody,
|
|
48
|
+
options: { status: response.status }
|
|
49
|
+
});
|
|
50
|
+
throw new ApiKeysApiError(message, operation, parsedBody);
|
|
51
|
+
}
|
|
52
|
+
return await response.json();
|
|
53
|
+
}
|
|
54
|
+
async list() {
|
|
55
|
+
const { data } = await this.request(
|
|
56
|
+
"list API keys",
|
|
57
|
+
"/api/api-keys"
|
|
58
|
+
);
|
|
59
|
+
return data;
|
|
60
|
+
}
|
|
61
|
+
async create(input) {
|
|
62
|
+
return this.request(
|
|
63
|
+
"create API key",
|
|
64
|
+
"/api/api-keys",
|
|
65
|
+
{ method: "POST", body: JSON.stringify(input) }
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
async revoke(id) {
|
|
69
|
+
return this.request(
|
|
70
|
+
`revoke API key "${id}"`,
|
|
71
|
+
`/api/api-keys/${encodeURIComponent(id)}`,
|
|
72
|
+
{ method: "DELETE" }
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export {
|
|
78
|
+
ApiKeysApiService
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=chunk-N7T37JOT.mjs.map
|