@puffinstudio/fizzyx 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/main.js +4 -4
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -39,12 +39,12 @@ ${n.slice(1)}`;return`${r}- ${n}`},dm=(e)=>{if(e.trim()==="")return{};let t=Bun.
39
39
  `)},Jh=(e)=>{if(e.length===0)return"no new steps";return e.map((t)=>` + ${t.completed?"[x]":"[ ]"} ${t.content}`).join(`
40
40
  `)},Qh=(e)=>e.column?.name||"TRIAGE",Yh=(e)=>{let t=(e.assignees||[]).map((r)=>r.name).filter(Boolean);return t.length===0?"-":t.join(", ")},t0=(e)=>e?e.replace(/T.*/,""):"?",r0=(e)=>{let t=e.trim();if(!t)return["(no description)"];return t.split(`
41
41
  `)};var Kh=["\u25D0","\u25D3","\u25D1","\u25D2"],n0=80,o0="\r\x1B[2K",wi=(e)=>e?.stderr??process.stderr,s0=(e)=>e?.env??process.env,a0=(e)=>{if(!wi(e).isTTY)return!1;let r=s0(e);if(r.CI||r.NO_COLOR||r.FIZZYX_NO_SPINNER==="1")return!1;return!0},c0=(e)=>{e.write(o0)},i0=(e,t)=>{let r=wi(t),n=t.intervalMs??n0;return u.sync(()=>{let o=0,s=()=>{let i=Kh[o++%Kh.length];r.write(`\r${e} ${i}`)};s();let a=setInterval(s,n);return{stop(){clearInterval(a),c0(r)}}})},u0=(e,t,r)=>{let n=wi(r);return u.gen(function*(){return yield*u.sync(()=>{n.write(`${t}
42
- `)}),yield*e})},ne=(e,t,r)=>{if(!a0(r)){if(r?.showStatusLine)return u0(t,e,r);return t}return u.gen(function*(){let n=yield*i0(e,r??{});return yield*t.pipe(u.onExit(()=>u.sync(()=>{n.stop()})))})};var Zh=(e)=>u.gen(function*(){let[t="help",...r]=e;switch(t){case"help":case"--help":case"-h":console.log(ex());return;case"setup":{if(me(r)){console.log(y0());return}let n=m0(r);if(n.list){let s=yield*ne("\u67E5\u770B Fizzy boards...",Oh());if(s.length===0){console.log("(no boards)");return}console.log(Ci(s,[{header:"id",value:(a)=>a.id},{header:"name",value:(a)=>a.name}]));return}let o=yield*ne("\u521D\u59CB\u5316 Fizzy workflow...",Rh(n));console.log(`created ${o.configPath}`);return}case"auth":yield*d0(r);return;case"flow":yield*p0(r);return;default:throw Error(l0(t))}}),f0={sync:"sync",mine:"mine",status:"status",next:"next",show:"show",start:"start",done:"done",block:"block",add:"add","steps-from-desc":"steps-from-desc"},l0=(e)=>{let t=f0[e];if(t)return`unknown command: ${e}. Did you mean: fizzyx flow ${t}?`;return`unknown command: ${e}
42
+ `)}),yield*e})},ne=(e,t,r)=>{if(!a0(r)){if(r?.showStatusLine)return u0(t,e,r);return t}return u.gen(function*(){let n=yield*i0(e,r??{});return yield*t.pipe(u.onExit(()=>u.sync(()=>{n.stop()})))})};var Zh=(e)=>u.gen(function*(){let[t="help",...r]=e;switch(t){case"help":case"--help":case"-h":console.log(ex());return;case"setup":{if(me(r)){console.log(y0());return}let n=m0(r);if(n.list){let s=yield*ne("Loading Fizzy boards...",Oh());if(s.length===0){console.log("(no boards)");return}console.log(Ci(s,[{header:"id",value:(a)=>a.id},{header:"name",value:(a)=>a.name}]));return}let o=yield*ne("Initializing Fizzy workflow...",Rh(n));console.log(`created ${o.configPath}`);return}case"auth":yield*d0(r);return;case"flow":yield*p0(r);return;default:throw Error(l0(t))}}),f0={sync:"sync",mine:"mine",status:"status",next:"next",show:"show",start:"start",done:"done",block:"block",add:"add","steps-from-desc":"steps-from-desc"},l0=(e)=>{let t=f0[e];if(t)return`unknown command: ${e}. Did you mean: fizzyx flow ${t}?`;return`unknown command: ${e}
43
43
 
44
- ${ex()}`},p0=(e)=>u.gen(function*(){let[t="help",...r]=e;if(Cs(t)){console.log(ki());return}switch(t){case"sync":{if(me(r)){console.log(E0());return}let n=yield*ne("\u540C\u6B65 Fizzy \u770B\u677F...",u.gen(function*(){let o=yield*Fe;return yield*Ft(o)}));console.error(`synced cards=${n.cards.length} not_now=${n.notNow.length}`);return}case"mine":{if(me(r)){console.log(b0());return}let n=r.includes("--fresh"),o=x0(r),s=yield*ne("\u8BFB\u53D6\u6211\u7684\u4EFB\u52A1...",u.gen(function*(){let a=yield*Fe;return yield*bi(a,{fresh:n,user:o})}));console.log(`# ${s.name}: ${s.userId}`),console.log(Ss(s.cards));return}case"status":{if(me(r)){console.log(S0());return}let n=yield*ne("\u8BFB\u53D6\u770B\u677F\u72B6\u6001...",u.gen(function*(){let o=yield*Fe;return yield*Fh(o,{fresh:r.includes("--fresh")})}));if(console.log(`# board cache age: ${n.age}s`),console.log(""),console.log(Ss(n.cache.cards.filter((o)=>["INPROGRESS","TODO"].includes(o.column?.name||"")))),n.cache.notNow.length>0)console.log(`
45
- # not_now (${n.cache.notNow.length})`),console.log(Ss(n.cache.notNow));return}case"next":{if(me(r)){console.log(C0());return}let n=yield*ne("\u8BFB\u53D6\u4E0B\u4E2A\u4EFB\u52A1...",u.gen(function*(){let o=yield*Fe;return yield*Nh(o,{fresh:r.includes("--fresh")})}));if(!n.card){console.log(`no TODO card for ${n.user.name}`);return}console.log(`#${n.card.number} ${n.card.title}`),console.log(`next: fizzyx flow start ${n.card.number}`);return}case"show":{if(me(r)){console.log(w0());return}let n=Vn(r[0]),o=yield*ne("\u8BFB\u53D6\u5361\u7247\u8BE6\u60C5...",u.gen(function*(){let s=yield*Fe;return yield*Uh(s,n)}));console.log(Vh(o.card,o.comments));return}case"start":{if(me(r)){console.log(k0());return}let n=Vn(r[0]);yield*ne("\u5F00\u59CB\u5904\u7406\u5361\u7247...",u.gen(function*(){let o=yield*Fe;return yield*Dh(o,n)})),console.log(`started #${n}`);return}case"done":{if(me(r)){console.log(v0());return}let n=Vn(r[0]),o=r.slice(1).filter((i)=>!Cs(i)).join(" "),s=o?o:yield*Hh(),a=yield*ne("\u5173\u95ED\u5361\u7247...",u.gen(function*(){let i=yield*Fe;return yield*Lh(i,n,s)}));console.log(`closed #${a.number} (${a.ref})`);return}case"block":{if(me(r)){console.log(T0());return}let n=Vn(r[0]),o=r.slice(1).join(" "),s=yield*ne("\u6807\u8BB0\u5361\u7247\u963B\u585E...",u.gen(function*(){let a=yield*Fe;return yield*$h(a,n,o)}));console.log(`blocked #${s.number}: ${s.reason}`);return}case"add":{if(me(r)){console.log(Xh());return}let n=r[0],o=r[1],s=h0(r,"--desc");if(!n||!o||!s)throw Error(Xh());let a=yield*ne("\u521B\u5EFA\u5361\u7247...",u.gen(function*(){let i=yield*g0(s),l=yield*Fe;return yield*jh(l,{user:n,title:o,description:i})}));console.log(a);return}case"steps-from-desc":{if(me(r)){console.log(A0());return}let n=Vn(r[0]),o=yield*ne("\u540C\u6B65 Done When \u6B65\u9AA4...",u.gen(function*(){let s=yield*Fe;return yield*qh(s,n)}));console.log(Jh(o));return}case"init":{if(me(r)){console.log(I0());return}let n=yield*ne("\u521D\u59CB\u5316 workflow \u914D\u7F6E...",Fe);console.log(`flow configured with todo=${n.config.flow.columns.todo} in_progress=${n.config.flow.columns.inProgress}`);return}case"help":case"--help":case"-h":console.log(ki());return;default:throw Error(`unknown flow command: ${t}
44
+ ${ex()}`},p0=(e)=>u.gen(function*(){let[t="help",...r]=e;if(Cs(t)){console.log(ki());return}switch(t){case"sync":{if(me(r)){console.log(E0());return}let n=yield*ne("Syncing Fizzy board...",u.gen(function*(){let o=yield*Fe;return yield*Ft(o)}));console.error(`synced cards=${n.cards.length} not_now=${n.notNow.length}`);return}case"mine":{if(me(r)){console.log(b0());return}let n=r.includes("--fresh"),o=x0(r),s=yield*ne("Loading my tasks...",u.gen(function*(){let a=yield*Fe;return yield*bi(a,{fresh:n,user:o})}));console.log(`# ${s.name}: ${s.userId}`),console.log(Ss(s.cards));return}case"status":{if(me(r)){console.log(S0());return}let n=yield*ne("Loading board status...",u.gen(function*(){let o=yield*Fe;return yield*Fh(o,{fresh:r.includes("--fresh")})}));if(console.log(`# board cache age: ${n.age}s`),console.log(""),console.log(Ss(n.cache.cards.filter((o)=>["INPROGRESS","TODO"].includes(o.column?.name||"")))),n.cache.notNow.length>0)console.log(`
45
+ # not_now (${n.cache.notNow.length})`),console.log(Ss(n.cache.notNow));return}case"next":{if(me(r)){console.log(C0());return}let n=yield*ne("Loading next task...",u.gen(function*(){let o=yield*Fe;return yield*Nh(o,{fresh:r.includes("--fresh")})}));if(!n.card){console.log(`no TODO card for ${n.user.name}`);return}console.log(`#${n.card.number} ${n.card.title}`),console.log(`next: fizzyx flow start ${n.card.number}`);return}case"show":{if(me(r)){console.log(w0());return}let n=Vn(r[0]),o=yield*ne("Loading card details...",u.gen(function*(){let s=yield*Fe;return yield*Uh(s,n)}));console.log(Vh(o.card,o.comments));return}case"start":{if(me(r)){console.log(k0());return}let n=Vn(r[0]);yield*ne("Starting card...",u.gen(function*(){let o=yield*Fe;return yield*Dh(o,n)})),console.log(`started #${n}`);return}case"done":{if(me(r)){console.log(v0());return}let n=Vn(r[0]),o=r.slice(1).filter((i)=>!Cs(i)).join(" "),s=o?o:yield*Hh(),a=yield*ne("Closing card...",u.gen(function*(){let i=yield*Fe;return yield*Lh(i,n,s)}));console.log(`closed #${a.number} (${a.ref})`);return}case"block":{if(me(r)){console.log(T0());return}let n=Vn(r[0]),o=r.slice(1).join(" "),s=yield*ne("Marking card blocked...",u.gen(function*(){let a=yield*Fe;return yield*$h(a,n,o)}));console.log(`blocked #${s.number}: ${s.reason}`);return}case"add":{if(me(r)){console.log(Xh());return}let n=r[0],o=r[1],s=h0(r,"--desc");if(!n||!o||!s)throw Error(Xh());let a=yield*ne("Creating card...",u.gen(function*(){let i=yield*g0(s),l=yield*Fe;return yield*jh(l,{user:n,title:o,description:i})}));console.log(a);return}case"steps-from-desc":{if(me(r)){console.log(A0());return}let n=Vn(r[0]),o=yield*ne("Syncing Done When steps...",u.gen(function*(){let s=yield*Fe;return yield*qh(s,n)}));console.log(Jh(o));return}case"init":{if(me(r)){console.log(I0());return}let n=yield*ne("Initializing workflow config...",Fe);console.log(`flow configured with todo=${n.config.flow.columns.todo} in_progress=${n.config.flow.columns.inProgress}`);return}case"help":case"--help":case"-h":console.log(ki());return;default:throw Error(`unknown flow command: ${t}
46
46
 
47
- ${ki()}`)}}),d0=(e)=>u.gen(function*(){let[t="help",...r]=e;if(Cs(t)){console.log(Gh());return}switch(t){case"login":{if(me(r)||!r[0])throw Error(R0());let n=yield*ne("\u4FDD\u5B58\u8BA4\u8BC1\u4FE1\u606F...",_h(r[0]));console.log(`token saved for ${n}`);return}case"status":{if(me(r)){console.log(O0());return}let n=yield*ne("\u68C0\u67E5\u8BA4\u8BC1\u72B6\u6001...",Mh);if(console.log(`account: ${n.account}`),console.log(`board: ${n.board}`),console.log(`authenticated: ${n.authenticated}`),n.identity)console.log(`user: ${n.identity.name||""}`),console.log(`user_id: ${n.identity.userId}`),console.log(`email: ${n.identity.email||""}`);else if(n.identityError)console.log(`identity_error: ${n.identityError}`);return}case"logout":{if(me(r)){console.log(_0());return}let n=yield*ne("\u6E05\u9664\u8BA4\u8BC1\u4FE1\u606F...",Ph);console.log(`token removed for ${n}`);return}default:throw Error(Gh())}}),m0=(e)=>{let t=e.includes("--list"),r=e.filter((o)=>o.startsWith("--")),n=e.filter((o)=>!o.startsWith("--"));if(t){if(r.length>1||n.length>0)throw Error("usage: fizzyx setup --list");return{list:!0}}if(r.length>0||n.length!==1)throw Error("usage: fizzyx setup <board-id>");return{board:n[0]}},Vn=(e)=>{let t=Number.parseInt((e||"").replace(/^#/,""),10);if(!Number.isFinite(t))throw Error("card number is required");return t},h0=(e,t)=>{let r=e.indexOf(t);if(r<0||!e[r+1])return;return e[r+1]},x0=(e)=>e.find((t)=>!t.startsWith("--")),g0=(e)=>e==="-"?u.tryPromise({try:()=>Bun.stdin.text(),catch:(t)=>Error(`failed to read stdin: ${String(t)}`)}):u.tryPromise({try:()=>Bun.file(e).text(),catch:(t)=>Error(`failed to read ${e}: ${String(t)}`)}),Cs=(e)=>e==="help"||e==="--help"||e==="-h",me=(e)=>e.some(Cs),ex=()=>`fizzyx <command>
47
+ ${ki()}`)}}),d0=(e)=>u.gen(function*(){let[t="help",...r]=e;if(Cs(t)){console.log(Gh());return}switch(t){case"login":{if(me(r)||!r[0])throw Error(R0());let n=yield*ne("Saving credentials...",_h(r[0]));console.log(`token saved for ${n}`);return}case"status":{if(me(r)){console.log(O0());return}let n=yield*ne("Checking auth status...",Mh);if(console.log(`account: ${n.account}`),console.log(`board: ${n.board}`),console.log(`authenticated: ${n.authenticated}`),n.identity)console.log(`user: ${n.identity.name||""}`),console.log(`user_id: ${n.identity.userId}`),console.log(`email: ${n.identity.email||""}`);else if(n.identityError)console.log(`identity_error: ${n.identityError}`);return}case"logout":{if(me(r)){console.log(_0());return}let n=yield*ne("Clearing credentials...",Ph);console.log(`token removed for ${n}`);return}default:throw Error(Gh())}}),m0=(e)=>{let t=e.includes("--list"),r=e.filter((o)=>o.startsWith("--")),n=e.filter((o)=>!o.startsWith("--"));if(t){if(r.length>1||n.length>0)throw Error("usage: fizzyx setup --list");return{list:!0}}if(r.length>0||n.length!==1)throw Error("usage: fizzyx setup <board-id>");return{board:n[0]}},Vn=(e)=>{let t=Number.parseInt((e||"").replace(/^#/,""),10);if(!Number.isFinite(t))throw Error("card number is required");return t},h0=(e,t)=>{let r=e.indexOf(t);if(r<0||!e[r+1])return;return e[r+1]},x0=(e)=>e.find((t)=>!t.startsWith("--")),g0=(e)=>e==="-"?u.tryPromise({try:()=>Bun.stdin.text(),catch:(t)=>Error(`failed to read stdin: ${String(t)}`)}):u.tryPromise({try:()=>Bun.file(e).text(),catch:(t)=>Error(`failed to read ${e}: ${String(t)}`)}),Cs=(e)=>e==="help"||e==="--help"||e==="-h",me=(e)=>e.some(Cs),ex=()=>`fizzyx <command>
48
48
 
49
49
  commands:
50
50
  setup
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@puffinstudio/fizzyx",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "homepage": "https://github.com/PuffinStudio/fizzyx#readme",
5
5
  "bugs": {
6
6
  "url": "https://github.com/PuffinStudio/fizzyx/issues"