@testmuai/kane-cli 0.3.2 → 0.3.4
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/{ChromeProfilePicker-ETBZA64A.js → ChromeProfilePicker-DLK4RTFZ.js} +1 -1
- package/dist/{CliFeedbackPrompt-S7RZGMBQ.js → CliFeedbackPrompt-HNB4SHPG.js} +1 -1
- package/dist/{CliUploadProgress-TPWX5ARU.js → CliUploadProgress-6KB7IKFV.js} +1 -1
- package/dist/{ConfigView-BSIS2LOH.js → ConfigView-LMW2B764.js} +1 -1
- package/dist/FolderPicker-JBOPRMPT.js +2 -0
- package/dist/{HelpView-MUIOT5UN.js → HelpView-6HAZNUNN.js} +1 -1
- package/dist/{InfoBox-3EY4ARJG.js → InfoBox-6OL6MFL6.js} +1 -1
- package/dist/{LinksBox-UD364LBX.js → LinksBox-Q6L6WY53.js} +1 -1
- package/dist/{ProfilesView-UOJP2KA2.js → ProfilesView-ERKUUJWU.js} +1 -1
- package/dist/ProjectPicker-Y4AXSEVW.js +2 -0
- package/dist/{SaveSessionPrompt-D4PETK7B.js → SaveSessionPrompt-GKITQ3KR.js} +1 -1
- package/dist/SingleShotApp-MKACYNG2.js +2 -0
- package/dist/{SummaryBox-L4ZXY4S4.js → SummaryBox-MB2JQIXZ.js} +1 -1
- package/dist/{TestMdRunView-YD3Z6MCR.js → TestMdRunView-UMTYIRAE.js} +1 -1
- package/dist/{WhoamiView-ZZUFXKDU.js → WhoamiView-UF5WWELM.js} +1 -1
- package/dist/{changelog-H2RXH4LH.js → changelog-JFMKP277.js} +1 -1
- package/dist/{chunk-WCRLZETG.js → chunk-535PXOLA.js} +1 -1
- package/dist/{chunk-AMCAQCEV.js → chunk-6566EYUL.js} +2 -2
- package/dist/{chunk-O22K3JLR.js → chunk-6JONCMIS.js} +1 -1
- package/dist/chunk-ANOIEEVS.js +13 -0
- package/dist/{chunk-RVQBAKOK.js → chunk-BNLJNHAZ.js} +1 -1
- package/dist/{chunk-EZJNX4VE.js → chunk-CB4WEGVB.js} +1 -1
- package/dist/{chunk-PAQGYV5G.js → chunk-CBDUXGVQ.js} +1 -1
- package/dist/chunk-EJR3WRTW.js +2 -0
- package/dist/{chunk-FMMDLDDI.js → chunk-FOMM3MYV.js} +1 -1
- package/dist/{chunk-2FCAWRCU.js → chunk-FOT6AMNP.js} +1 -1
- package/dist/{chunk-3YGQYJ3D.js → chunk-HZUU7USC.js} +1 -1
- package/dist/{chunk-MVX3N7GI.js → chunk-KA23QNUA.js} +1 -1
- package/dist/chunk-LIJX5PIV.js +2 -0
- package/dist/{chunk-OQ64GUQE.js → chunk-LJA5UGU6.js} +1 -1
- package/dist/{chunk-V4S5H6O2.js → chunk-LT4VR7MQ.js} +2 -2
- package/dist/{chunk-XUDEM7I6.js → chunk-MIZDUPND.js} +1 -1
- package/dist/{chunk-RBED7RVV.js → chunk-ND5EFB3C.js} +1 -1
- package/dist/{chunk-3UDKGPAS.js → chunk-OFX2RC33.js} +1 -1
- package/dist/{chunk-ZB72T6HB.js → chunk-PQLKQKQH.js} +1 -1
- package/dist/{chunk-E7QWDV7M.js → chunk-RHLK4XYO.js} +1 -1
- package/dist/{chunk-RDJPZQBU.js → chunk-T3JEMMTA.js} +1 -1
- package/dist/{chunk-XK33C64U.js → chunk-TI5CHPPN.js} +1 -1
- package/dist/{chunk-HXIGYD2T.js → chunk-TXUKXLYR.js} +1 -1
- package/dist/{chunk-UFNKCPUB.js → chunk-V7M72PLH.js} +9 -9
- package/dist/{chunk-AH7HH3OE.js → chunk-VKPAHDXM.js} +1 -1
- package/dist/chunk-VZIBZDS2.js +2 -0
- package/dist/{chunk-KGZATJQN.js → chunk-YEV3OBEO.js} +1 -1
- package/dist/{chunk-4GQZBMTW.js → chunk-ZCHXYZGV.js} +1 -1
- package/dist/{chunk-7JB4RPI2.js → chunk-ZYJ4HQAI.js} +1 -1
- package/dist/index.js +15 -15
- package/dist/{logging-RMC6R23F.js → logging-M7EYIZTV.js} +1 -1
- package/dist/{login-flow-NL3LNSP5.js → login-flow-THKISL7X.js} +1 -1
- package/dist/{persist-recorded-session-GG732QRB.js → persist-recorded-session-CDT2I4SH.js} +1 -1
- package/dist/{pipeline-EUZIM2ZO.js → pipeline-IF775CGJ.js} +1 -1
- package/dist/{recording-banner-LAAAMKIM.js → recording-banner-YFDZ6CJ4.js} +1 -1
- package/dist/run-test-md-6ELVP2MT.js +65 -0
- package/dist/{testmd-actions-5O7F22EC.js → testmd-actions-D3TJX2Q4.js} +2 -2
- package/dist/{tms-client-XOARLBEP.js → tms-client-T3EAD4Y7.js} +1 -1
- package/dist/{validate-basic-NIEIKFGP.js → validate-basic-LTATIAAW.js} +1 -1
- package/dist/{version-check-WHWTPX6C.js → version-check-Q6M7YAML.js} +1 -1
- package/package.json +5 -5
- package/dist/FolderPicker-7FXP3PIM.js +0 -2
- package/dist/ProjectPicker-5ZPZNRSS.js +0 -2
- package/dist/SingleShotApp-N4AGSAPW.js +0 -2
- package/dist/chunk-477FDDDW.js +0 -13
- package/dist/chunk-7ECMUWV2.js +0 -2
- package/dist/chunk-BSHGW3QM.js +0 -2
- package/dist/chunk-YZTCCQHR.js +0 -2
- package/dist/run-test-md-IAEJXIVK.js +0 -65
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as x}from"./chunk-HCBYKLMW.js";import{t as m}from"./chunk-
|
|
2
|
+
import{a as x}from"./chunk-HCBYKLMW.js";import{t as m}from"./chunk-FOT6AMNP.js";import{a as u,b as a,j as g}from"./chunk-C44QQJR4.js";import{a as b}from"./chunk-6YGTRKDT.js";import{e as f}from"./chunk-UR6MHSHU.js";var T=f(b(),1);function k(n,t){if(!t)return n;let l=n.trim()||t;return`\x1B]8;;${t}\x07${l}\x1B]8;;\x07`}var r=f(x(),1);function $({shareableLink:n,testCaseLink:t,codeExportDir:l,recordedTestPath:s,outputDir:o,autoExit:p=!0}){let{exit:c}=g();(0,T.useEffect)(()=>{if(!p)return;let i=setTimeout(()=>c(),100);return()=>clearTimeout(i)},[c,p]);let e=[];return s&&e.push({label:"Test",url:s,linkUrl:`file://${s}`}),o&&e.push({label:"Output",url:o,linkUrl:`file://${o}`}),n&&e.push({label:"ShareLink",url:n}),t&&e.push({label:"TestCase",url:t}),l&&!o&&e.push({label:"CodeExport",url:l,linkUrl:`file://${l}`}),e.length===0?(0,r.jsx)(r.Fragment,{}):(0,r.jsx)(u,{flexDirection:"column",marginTop:1,marginLeft:1,children:e.map(i=>(0,r.jsxs)(u,{flexDirection:"column",marginBottom:1,children:[(0,r.jsxs)(a,{color:m.primary,children:[i.label,":"]}),(0,r.jsx)(a,{color:m.dim,children:k(i.url,i.linkUrl??i.url)})]},i.label))})}export{$ as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as $}from"./chunk-YCCUBQY4.js";import{a as U}from"./chunk-EJR3WRTW.js";import{a as k}from"./chunk-CBDUXGVQ.js";import{a as _}from"./chunk-TI5CHPPN.js";import{a as O}from"./chunk-HCBYKLMW.js";import{t as i}from"./chunk-FOT6AMNP.js";import{a as u,b as s}from"./chunk-C44QQJR4.js";import{a as K}from"./chunk-6YGTRKDT.js";import{a as T}from"./chunk-LIJX5PIV.js";import{e as S}from"./chunk-UR6MHSHU.js";var e=S(K(),1);var r=S(O(),1);function V(n,x,c){return{id:n,label:`${x} (${n})`,isActive:n===c}}function se({resolver:n,currentProjectId:x,env:c,onSelect:w,onCancel:C}){let[q,B]=(0,e.useState)([]),[D,l]=(0,e.useState)(!0),[H,m]=(0,e.useState)(!1),[J,g]=(0,e.useState)(!1),[Q,P]=(0,e.useState)(null),[d,p]=(0,e.useState)("list"),[v,R]=(0,e.useState)(""),[E,h]=(0,e.useState)(null),[I,X]=(0,e.useState)(""),b=(0,e.useRef)(!1),A=(0,e.useRef)(!0);(0,e.useEffect)(()=>{if(!n){P("Login first to browse projects"),l(!1);return}let o=new AbortController,a=I.trim();return A.current?l(!0):a&&g(!0),m(!0),P(null),(async()=>{try{let t=n.cached??await n.resolve();if(!t){P("Login first to browse projects"),l(!1),m(!1),g(!1);return}let L=k(c),F=new T(L.tmsBaseUrl,t.username,t.access_key),f=!0,N=0,G=a?{signal:o.signal,name:a,perPage:10}:{signal:o.signal,perPage:10};for await(let y of F.listProjectsStream(G)){if(f&&(l(!1),g(!1),A.current=!1,f=!1),y.totalLoaded===0&&y.done&&N===0&&!a){b.current=!0,p("naming"),m(!1);return}let M=y.projects.map(j=>V(j.project_id,j.name,x));B(N===0?M:j=>[...j,...M]),N+=y.projects.length,y.done&&m(!1)}f&&(l(!1),m(!1),g(!1))}catch(t){if(t?.name==="AbortError")return;P(t instanceof Error?t.message:String(t)),l(!1),m(!1),g(!1)}})(),()=>o.abort()},[n,x,c,I]);let Y=(0,e.useCallback)(o=>{let a=o.trim();if(!a){h("Name cannot be empty");return}h(null),p("creating"),(async()=>{try{if(!n)throw new Error("Not authenticated");let t=n.cached??await n.resolve();if(!t)throw new Error("Not authenticated");let L=k(c),f=await new T(L.tmsBaseUrl,t.username,t.access_key).createProject(a);w(f.id,f.name)}catch(t){h(t instanceof Error?t.message:String(t)),p("naming")}})()},[n,c,w]),z=(0,e.useCallback)(()=>{R(""),h(null),b.current?C():p("list")},[C]);return d==="naming"||d==="creating"?(0,r.jsxs)(u,{flexDirection:"column",borderStyle:"round",borderColor:i.primary,paddingX:2,paddingY:1,children:[(0,r.jsx)(s,{color:i.primary,bold:!0,children:"Create new project"}),b.current&&(0,r.jsx)(u,{marginTop:1,children:(0,r.jsx)(s,{color:i.dim,children:"No projects yet \u2014 let's create one."})}),(0,r.jsxs)(u,{marginTop:1,children:[(0,r.jsx)(s,{color:i.dim,children:"Name: "}),d==="naming"?(0,r.jsx)($,{value:v,onChange:o=>{R(o),E&&h(null)},onSubmit:Y,onCancel:z}):(0,r.jsx)(s,{children:v})]}),E&&(0,r.jsx)(u,{marginTop:1,children:(0,r.jsx)(s,{color:i.red,children:E})}),d==="creating"&&(0,r.jsx)(u,{marginTop:1,children:(0,r.jsx)(s,{color:i.dim,children:"Creating..."})}),d==="naming"&&(0,r.jsx)(_,{bindings:[{keys:"\u21B5",label:"create"}],escBackLabel:b.current?"cancel":"back"})]}):(0,r.jsx)(U,{title:"Projects",items:q,loading:D,loadingMore:H,searching:J,preserveSelectionById:!0,onSearch:X,error:Q,itemNoun:"projects",onTab:()=>{b.current=!1,p("naming")},extraHint:"tab to create new",onSelect:o=>{let a=o.label.replace(` (${o.id})`,"");w(o.id,a)},onCancel:C})}export{V as a,se as b};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{d as a,h as c}from"./chunk-
|
|
2
|
+
import{d as a,h as c}from"./chunk-FOT6AMNP.js";import{readFileSync as g,writeFileSync as n,mkdirSync as i,existsSync as p}from"fs";import{dirname as s}from"path";var o={window_size:{width:1920,height:1080},chrome_profile_path:"",default_url:c,model:"v16-alpha",project_id:null,project_name:null,folder_id:null,folder_name:null,mode:"testing",code_export:{enabled:!0,language:"python",skip_validation:!0},last_seen_version:""},l=class{constructor(r=a){this.path=r}exists(){return p(this.path)}load(){try{let r=g(this.path,"utf-8"),e=JSON.parse(r);return{...o,...e,code_export:{...o.code_export,...e.code_export??{}}}}catch{return{...o,code_export:{...o.code_export}}}}set(r,e){try{let t=this.load();t[r]=e,i(s(this.path),{recursive:!0}),n(this.path,JSON.stringify(t,null,2)+`
|
|
3
3
|
`)}catch(t){let d=t instanceof Error?t.message:String(t);process.stderr.write(`[config] Failed to save config: ${d}
|
|
4
4
|
`)}}save(r){try{let t={...this.load(),...r};i(s(this.path),{recursive:!0}),n(this.path,JSON.stringify(t,null,2)+`
|
|
5
5
|
`)}catch(e){let t=e instanceof Error?e.message:String(e);process.stderr.write(`[config] Failed to save config: ${t}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as B}from"./chunk-S3DAAAE5.js";import{a as h}from"./chunk-
|
|
2
|
+
import{b as B}from"./chunk-S3DAAAE5.js";import{a as h}from"./chunk-KA23QNUA.js";import{a as w}from"./chunk-HCBYKLMW.js";import{t as s}from"./chunk-FOT6AMNP.js";import{a as x,b as t,c as g,i as P,j as S}from"./chunk-C44QQJR4.js";import{a as C}from"./chunk-6YGTRKDT.js";import{e as T}from"./chunk-UR6MHSHU.js";var o=T(C(),1);var e=T(w(),1);function D({defaultName:i,onSubmit:c}){let[d,p]=(0,o.useState)("confirm"),[m,a]=(0,o.useState)(""),[f,u]=(0,o.useState)(null),l=(0,o.useMemo)(()=>m.trim()||i,[m,i]);return P((n,r)=>{if(d==="confirm"){if(n==="y"||n==="Y"){a(i),p("name");return}if(n==="n"||n==="N"||r.escape||r.ctrl&&n==="c"){c(null);return}if(r.return){c(i);return}return}if(r.return){if(!B(l)){u(`name "${l}" is invalid; allowed: letters, digits, underscore, hyphen`);return}c(l);return}if(r.escape||r.ctrl&&n==="c"){c(null);return}if(r.backspace||r.delete){a(v=>v.slice(0,-1)),u(null);return}n&&!r.ctrl&&!r.meta&&(a(v=>v+n),u(null))}),d==="confirm"?(0,e.jsx)(h,{title:"Save session?",titleColor:"#ff9500",rows:[{label:"name",value:(0,e.jsx)(t,{color:s.cyan,children:i})}],footer:(0,e.jsxs)(x,{flexDirection:"column",children:[(0,e.jsx)(t,{color:s.dimmed,children:"enter \u2014 save with this name"}),(0,e.jsx)(t,{color:s.dimmed,children:"Y \u2014 edit name"}),(0,e.jsx)(t,{color:s.dimmed,children:"N/esc \u2014 discard session"})]})}):(0,e.jsx)(h,{title:"Save session?",titleColor:"#ff9500",rows:[{label:"name",value:(0,e.jsxs)(x,{children:[(0,e.jsx)(t,{color:s.cyan,children:m}),(0,e.jsx)(t,{inverse:!0,children:" "})]})}],footer:(0,e.jsxs)(x,{flexDirection:"column",children:[f&&(0,e.jsx)(t,{color:s.red,children:f}),(0,e.jsx)(t,{color:s.dimmed,children:"enter \u2014 save \xB7 esc \u2014 discard"})]})})}function V(){return new Date().toISOString().slice(0,19).replace(/:/g,"-")}async function Y(i){return new Promise(c=>{function d(){let{exit:a}=S(),[f,u]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{if(f){let l=setTimeout(()=>a(),50);return()=>clearTimeout(l)}},[f,a]),(0,e.jsx)(D,{defaultName:i,onSubmit:l=>{c(l),u(!0)}})}let{waitUntilExit:p,unmount:m}=g((0,e.jsx)(d,{}),{stdout:process.stderr,exitOnCtrlC:!1});p().then(()=>{try{m()}catch{}})})}export{D as a,V as b,Y as c};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,c,e as o}from"./chunk-
|
|
2
|
+
import{a,c,e as o}from"./chunk-FOT6AMNP.js";import{a as l}from"./chunk-V7QXJKX7.js";import{readFileSync as f,writeFileSync as d,mkdirSync as h,realpathSync as g}from"fs";import{join as y}from"path";var C="npm install -g @testmuai/kane-cli@latest",b="brew upgrade lambdatest/kane/kane-cli";function w(){try{let t=process.argv[1];if(t&&g(t).includes("/Cellar/"))return b}catch{}return C}var m=y(c,"version-check.json"),S=1440*60*1e3;function k(){try{let t=JSON.parse(f(m,"utf-8"));if(Date.now()-t.checkedAt<S)return t}catch{}return null}function A(t){try{h(c,{recursive:!0}),d(m,JSON.stringify({latest:t,checkedAt:Date.now()}))}catch{}}function u(t,r){let i=t.split(".").map(Number),n=r.split(".").map(Number);for(let s=0;s<3;s++){let e=(n[s]??0)-(i[s]??0);if(e!==0)return e}return 0}function p(t,r){let i=t.split(".").map(Number),n=r.split(".").map(Number);return(n[0]??0)!==(i[0]??0)?"major":(n[1]??0)!==(i[1]??0)?"minor":"patch"}async function j(){try{let t=k();if(t)return u(a,t.latest)>0?{current:a,latest:t.latest,severity:p(a,t.latest)}:null;let r=new AbortController,i=setTimeout(()=>r.abort(),5e3),n=await l(o,{headers:{Accept:"application/json"},signal:r.signal});if(clearTimeout(i),!n.ok)return null;let e=(await n.json())["dist-tags"]?.latest;return e?(A(e),u(a,e)>0?{current:a,latest:e,severity:p(a,e)}:null):null}catch{return null}}export{w as a,u as b,p as c,j as d};
|