spawn-term 1.1.8 → 2.0.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.
Files changed (45) hide show
  1. package/dist/cjs/components/App.js +96 -9
  2. package/dist/cjs/components/App.js.map +1 -1
  3. package/dist/cjs/components/CompactProcessLine.js +153 -0
  4. package/dist/cjs/components/CompactProcessLine.js.map +1 -0
  5. package/dist/cjs/components/Divider.js +24 -0
  6. package/dist/cjs/components/Divider.js.map +1 -0
  7. package/dist/cjs/components/ErrorDetailModal.js +115 -0
  8. package/dist/cjs/components/ErrorDetailModal.js.map +1 -0
  9. package/dist/cjs/components/ErrorListModal.js +135 -0
  10. package/dist/cjs/components/ErrorListModal.js.map +1 -0
  11. package/dist/cjs/components/StatusBar.js +104 -0
  12. package/dist/cjs/components/StatusBar.js.map +1 -0
  13. package/dist/cjs/createApp.js +10 -5
  14. package/dist/cjs/createApp.js.map +1 -1
  15. package/dist/cjs/src/components/CompactProcessLine.d.ts +6 -0
  16. package/dist/cjs/src/components/Divider.d.ts +2 -0
  17. package/dist/cjs/src/components/ErrorDetailModal.d.ts +8 -0
  18. package/dist/cjs/src/components/ErrorListModal.d.ts +8 -0
  19. package/dist/cjs/src/components/StatusBar.d.ts +8 -0
  20. package/dist/cjs/src/state/processStore.d.ts +17 -0
  21. package/dist/cjs/state/processStore.js +98 -0
  22. package/dist/cjs/state/processStore.js.map +1 -1
  23. package/dist/esm/components/App.js +94 -9
  24. package/dist/esm/components/App.js.map +1 -1
  25. package/dist/esm/components/CompactProcessLine.js +134 -0
  26. package/dist/esm/components/CompactProcessLine.js.map +1 -0
  27. package/dist/esm/components/Divider.js +13 -0
  28. package/dist/esm/components/Divider.js.map +1 -0
  29. package/dist/esm/components/ErrorDetailModal.js +99 -0
  30. package/dist/esm/components/ErrorDetailModal.js.map +1 -0
  31. package/dist/esm/components/ErrorListModal.js +116 -0
  32. package/dist/esm/components/ErrorListModal.js.map +1 -0
  33. package/dist/esm/components/StatusBar.js +87 -0
  34. package/dist/esm/components/StatusBar.js.map +1 -0
  35. package/dist/esm/createApp.js +10 -5
  36. package/dist/esm/createApp.js.map +1 -1
  37. package/dist/esm/src/components/CompactProcessLine.d.ts +6 -0
  38. package/dist/esm/src/components/Divider.d.ts +2 -0
  39. package/dist/esm/src/components/ErrorDetailModal.d.ts +8 -0
  40. package/dist/esm/src/components/ErrorListModal.d.ts +8 -0
  41. package/dist/esm/src/components/StatusBar.d.ts +8 -0
  42. package/dist/esm/src/state/processStore.d.ts +17 -0
  43. package/dist/esm/state/processStore.js +65 -0
  44. package/dist/esm/state/processStore.js.map +1 -1
  45. package/package.json +1 -1
@@ -26,6 +26,7 @@ function _object_spread(target) {
26
26
  }
27
27
  return target;
28
28
  }
29
+ import { LineType } from '../types.js';
29
30
  class ProcessStore {
30
31
  // Mutations - Ink handles render throttling at 30 FPS
31
32
  addProcess(process) {
@@ -36,7 +37,17 @@ class ProcessStore {
36
37
  this.notify();
37
38
  }
38
39
  updateProcess(id, update) {
40
+ const oldProcess = this.processes.find((p)=>p.id === id);
41
+ const wasRunning = (oldProcess === null || oldProcess === void 0 ? void 0 : oldProcess.state) === 'running';
42
+ const isNowComplete = update.state && update.state !== 'running';
39
43
  this.processes = this.processes.map((p)=>p.id === id ? _object_spread({}, p, update) : p);
44
+ // Track completion order
45
+ if (wasRunning && isNowComplete && !this.completedIds.includes(id)) {
46
+ this.completedIds = [
47
+ ...this.completedIds,
48
+ id
49
+ ];
50
+ }
40
51
  this.notify();
41
52
  }
42
53
  appendLines(id, newLines) {
@@ -50,6 +61,32 @@ class ProcessStore {
50
61
  getProcess(id) {
51
62
  return this.processes.find((p)=>p.id === id);
52
63
  }
64
+ // UI state mutations
65
+ setMode(mode) {
66
+ this.mode = mode;
67
+ if (mode === 'errorList') {
68
+ this.selectedErrorIndex = 0;
69
+ }
70
+ this.notify();
71
+ }
72
+ selectNextError() {
73
+ const failed = this.getFailedProcesses();
74
+ if (failed.length > 0) {
75
+ this.selectedErrorIndex = (this.selectedErrorIndex + 1) % failed.length;
76
+ this.notify();
77
+ }
78
+ }
79
+ selectPrevError() {
80
+ const failed = this.getFailedProcesses();
81
+ if (failed.length > 0) {
82
+ this.selectedErrorIndex = (this.selectedErrorIndex - 1 + failed.length) % failed.length;
83
+ this.notify();
84
+ }
85
+ }
86
+ getSelectedError() {
87
+ const failed = this.getFailedProcesses();
88
+ return failed[this.selectedErrorIndex];
89
+ }
53
90
  // Exit signaling
54
91
  signalExit(callback) {
55
92
  this.shouldExit = true;
@@ -58,8 +95,11 @@ class ProcessStore {
58
95
  }
59
96
  reset() {
60
97
  this.processes = [];
98
+ this.completedIds = [];
61
99
  this.shouldExit = false;
62
100
  this.exitCallback = null;
101
+ this.mode = 'normal';
102
+ this.selectedErrorIndex = 0;
63
103
  }
64
104
  notify() {
65
105
  this.listeners.forEach((l)=>{
@@ -68,15 +108,40 @@ class ProcessStore {
68
108
  }
69
109
  constructor(){
70
110
  this.processes = [];
111
+ this.completedIds = []; // Track completion order
71
112
  this.listeners = new Set();
72
113
  this.shouldExit = false;
73
114
  this.exitCallback = null;
115
+ // UI state
116
+ this.mode = 'normal';
117
+ this.selectedErrorIndex = 0;
74
118
  // useSyncExternalStore API
75
119
  this.subscribe = (listener)=>{
76
120
  this.listeners.add(listener);
77
121
  return ()=>this.listeners.delete(listener);
78
122
  };
79
123
  this.getSnapshot = ()=>this.processes;
124
+ // Filtered getters
125
+ this.getRunningProcesses = ()=>{
126
+ return this.processes.filter((p)=>p.state === 'running');
127
+ };
128
+ this.getCompletedProcesses = ()=>{
129
+ // Return in completion order
130
+ return this.completedIds.map((id)=>this.processes.find((p)=>p.id === id)).filter((p)=>p !== undefined);
131
+ };
132
+ this.getFailedProcesses = ()=>{
133
+ return this.processes.filter((p)=>p.state === 'error');
134
+ };
135
+ // Counts
136
+ this.getRunningCount = ()=>this.processes.filter((p)=>p.state === 'running').length;
137
+ this.getDoneCount = ()=>this.processes.filter((p)=>p.state !== 'running').length;
138
+ this.getErrorCount = ()=>this.processes.filter((p)=>p.state === 'error').length;
139
+ this.getErrorLineCount = ()=>{
140
+ return this.processes.filter((p)=>p.state === 'error').reduce((total, p)=>total + p.lines.filter((l)=>l.type === LineType.stderr).length, 0);
141
+ };
142
+ // UI state getters
143
+ this.getMode = ()=>this.mode;
144
+ this.getSelectedErrorIndex = ()=>this.selectedErrorIndex;
80
145
  this.getShouldExit = ()=>this.shouldExit;
81
146
  this.getExitCallback = ()=>this.exitCallback;
82
147
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/state/processStore.ts"],"sourcesContent":["import type { ChildProcess, Line } from '../types.ts';\n\ntype Listener = () => void;\n\nclass ProcessStore {\n private processes: ChildProcess[] = [];\n private listeners = new Set<Listener>();\n private shouldExit = false;\n private exitCallback: (() => void) | null = null;\n\n // useSyncExternalStore API\n subscribe = (listener: Listener): (() => void) => {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n };\n\n getSnapshot = (): ChildProcess[] => this.processes;\n\n // Mutations - Ink handles render throttling at 30 FPS\n addProcess(process: ChildProcess): void {\n this.processes = [...this.processes, process];\n this.notify();\n }\n\n updateProcess(id: string, update: Partial<ChildProcess>): void {\n this.processes = this.processes.map((p) => (p.id === id ? { ...p, ...update } : p));\n this.notify();\n }\n\n appendLines(id: string, newLines: Line[]): void {\n const process = this.processes.find((p) => p.id === id);\n if (process) {\n this.updateProcess(id, { lines: process.lines.concat(newLines) });\n }\n }\n\n getProcess(id: string): ChildProcess | undefined {\n return this.processes.find((p) => p.id === id);\n }\n\n // Exit signaling\n signalExit(callback: () => void): void {\n this.shouldExit = true;\n this.exitCallback = callback;\n this.notify();\n }\n\n getShouldExit = (): boolean => this.shouldExit;\n getExitCallback = (): (() => void) | null => this.exitCallback;\n\n reset(): void {\n this.processes = [];\n this.shouldExit = false;\n this.exitCallback = null;\n }\n\n private notify(): void {\n this.listeners.forEach((l) => {\n l();\n });\n }\n}\n\nexport const processStore = new ProcessStore();\nexport type { ProcessStore };\n"],"names":["ProcessStore","addProcess","process","processes","notify","updateProcess","id","update","map","p","appendLines","newLines","find","lines","concat","getProcess","signalExit","callback","shouldExit","exitCallback","reset","listeners","forEach","l","Set","subscribe","listener","add","delete","getSnapshot","getShouldExit","getExitCallback","processStore"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAMA;IAcJ,sDAAsD;IACtDC,WAAWC,OAAqB,EAAQ;QACtC,IAAI,CAACC,SAAS,GAAG;eAAI,IAAI,CAACA,SAAS;YAAED;SAAQ;QAC7C,IAAI,CAACE,MAAM;IACb;IAEAC,cAAcC,EAAU,EAAEC,MAA6B,EAAQ;QAC7D,IAAI,CAACJ,SAAS,GAAG,IAAI,CAACA,SAAS,CAACK,GAAG,CAAC,CAACC,IAAOA,EAAEH,EAAE,KAAKA,KAAK,mBAAKG,GAAMF,UAAWE;QAChF,IAAI,CAACL,MAAM;IACb;IAEAM,YAAYJ,EAAU,EAAEK,QAAgB,EAAQ;QAC9C,MAAMT,UAAU,IAAI,CAACC,SAAS,CAACS,IAAI,CAAC,CAACH,IAAMA,EAAEH,EAAE,KAAKA;QACpD,IAAIJ,SAAS;YACX,IAAI,CAACG,aAAa,CAACC,IAAI;gBAAEO,OAAOX,QAAQW,KAAK,CAACC,MAAM,CAACH;YAAU;QACjE;IACF;IAEAI,WAAWT,EAAU,EAA4B;QAC/C,OAAO,IAAI,CAACH,SAAS,CAACS,IAAI,CAAC,CAACH,IAAMA,EAAEH,EAAE,KAAKA;IAC7C;IAEA,iBAAiB;IACjBU,WAAWC,QAAoB,EAAQ;QACrC,IAAI,CAACC,UAAU,GAAG;QAClB,IAAI,CAACC,YAAY,GAAGF;QACpB,IAAI,CAACb,MAAM;IACb;IAKAgB,QAAc;QACZ,IAAI,CAACjB,SAAS,GAAG,EAAE;QACnB,IAAI,CAACe,UAAU,GAAG;QAClB,IAAI,CAACC,YAAY,GAAG;IACtB;IAEQf,SAAe;QACrB,IAAI,CAACiB,SAAS,CAACC,OAAO,CAAC,CAACC;YACtBA;QACF;IACF;;aAvDQpB,YAA4B,EAAE;aAC9BkB,YAAY,IAAIG;aAChBN,aAAa;aACbC,eAAoC;QAE5C,2BAA2B;aAC3BM,YAAY,CAACC;YACX,IAAI,CAACL,SAAS,CAACM,GAAG,CAACD;YACnB,OAAO,IAAM,IAAI,CAACL,SAAS,CAACO,MAAM,CAACF;QACrC;aAEAG,cAAc,IAAsB,IAAI,CAAC1B,SAAS;aA+BlD2B,gBAAgB,IAAe,IAAI,CAACZ,UAAU;aAC9Ca,kBAAkB,IAA2B,IAAI,CAACZ,YAAY;;AAahE;AAEA,OAAO,MAAMa,eAAe,IAAIhC,eAAe"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/spawn-term/src/state/processStore.ts"],"sourcesContent":["import type { ChildProcess, Line } from '../types.ts';\nimport { LineType } from '../types.ts';\n\ntype Listener = () => void;\ntype Mode = 'normal' | 'errorList' | 'errorDetail';\n\nclass ProcessStore {\n private processes: ChildProcess[] = [];\n private completedIds: string[] = []; // Track completion order\n private listeners = new Set<Listener>();\n private shouldExit = false;\n private exitCallback: (() => void) | null = null;\n\n // UI state\n private mode: Mode = 'normal';\n private selectedErrorIndex = 0;\n\n // useSyncExternalStore API\n subscribe = (listener: Listener): (() => void) => {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n };\n\n getSnapshot = (): ChildProcess[] => this.processes;\n\n // Filtered getters\n getRunningProcesses = (): ChildProcess[] => {\n return this.processes.filter((p) => p.state === 'running');\n };\n\n getCompletedProcesses = (): ChildProcess[] => {\n // Return in completion order\n return this.completedIds.map((id) => this.processes.find((p) => p.id === id)).filter((p): p is ChildProcess => p !== undefined);\n };\n\n getFailedProcesses = (): ChildProcess[] => {\n return this.processes.filter((p) => p.state === 'error');\n };\n\n // Counts\n getRunningCount = (): number => this.processes.filter((p) => p.state === 'running').length;\n getDoneCount = (): number => this.processes.filter((p) => p.state !== 'running').length;\n getErrorCount = (): number => this.processes.filter((p) => p.state === 'error').length;\n getErrorLineCount = (): number => {\n return this.processes.filter((p) => p.state === 'error').reduce((total, p) => total + p.lines.filter((l) => l.type === LineType.stderr).length, 0);\n };\n\n // UI state getters\n getMode = (): Mode => this.mode;\n getSelectedErrorIndex = (): number => this.selectedErrorIndex;\n\n // Mutations - Ink handles render throttling at 30 FPS\n addProcess(process: ChildProcess): void {\n this.processes = [...this.processes, process];\n this.notify();\n }\n\n updateProcess(id: string, update: Partial<ChildProcess>): void {\n const oldProcess = this.processes.find((p) => p.id === id);\n const wasRunning = oldProcess?.state === 'running';\n const isNowComplete = update.state && update.state !== 'running';\n\n this.processes = this.processes.map((p) => (p.id === id ? { ...p, ...update } : p));\n\n // Track completion order\n if (wasRunning && isNowComplete && !this.completedIds.includes(id)) {\n this.completedIds = [...this.completedIds, id];\n }\n\n this.notify();\n }\n\n appendLines(id: string, newLines: Line[]): void {\n const process = this.processes.find((p) => p.id === id);\n if (process) {\n this.updateProcess(id, { lines: process.lines.concat(newLines) });\n }\n }\n\n getProcess(id: string): ChildProcess | undefined {\n return this.processes.find((p) => p.id === id);\n }\n\n // UI state mutations\n setMode(mode: Mode): void {\n this.mode = mode;\n if (mode === 'errorList') {\n this.selectedErrorIndex = 0;\n }\n this.notify();\n }\n\n selectNextError(): void {\n const failed = this.getFailedProcesses();\n if (failed.length > 0) {\n this.selectedErrorIndex = (this.selectedErrorIndex + 1) % failed.length;\n this.notify();\n }\n }\n\n selectPrevError(): void {\n const failed = this.getFailedProcesses();\n if (failed.length > 0) {\n this.selectedErrorIndex = (this.selectedErrorIndex - 1 + failed.length) % failed.length;\n this.notify();\n }\n }\n\n getSelectedError(): ChildProcess | undefined {\n const failed = this.getFailedProcesses();\n return failed[this.selectedErrorIndex];\n }\n\n // Exit signaling\n signalExit(callback: () => void): void {\n this.shouldExit = true;\n this.exitCallback = callback;\n this.notify();\n }\n\n getShouldExit = (): boolean => this.shouldExit;\n getExitCallback = (): (() => void) | null => this.exitCallback;\n\n reset(): void {\n this.processes = [];\n this.completedIds = [];\n this.shouldExit = false;\n this.exitCallback = null;\n this.mode = 'normal';\n this.selectedErrorIndex = 0;\n }\n\n private notify(): void {\n this.listeners.forEach((l) => {\n l();\n });\n }\n}\n\nexport const processStore = new ProcessStore();\nexport type { ProcessStore };\n"],"names":["LineType","ProcessStore","addProcess","process","processes","notify","updateProcess","id","update","oldProcess","find","p","wasRunning","state","isNowComplete","map","completedIds","includes","appendLines","newLines","lines","concat","getProcess","setMode","mode","selectedErrorIndex","selectNextError","failed","getFailedProcesses","length","selectPrevError","getSelectedError","signalExit","callback","shouldExit","exitCallback","reset","listeners","forEach","l","Set","subscribe","listener","add","delete","getSnapshot","getRunningProcesses","filter","getCompletedProcesses","undefined","getRunningCount","getDoneCount","getErrorCount","getErrorLineCount","reduce","total","type","stderr","getMode","getSelectedErrorIndex","getShouldExit","getExitCallback","processStore"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAASA,QAAQ,QAAQ,cAAc;AAKvC,MAAMC;IA6CJ,sDAAsD;IACtDC,WAAWC,OAAqB,EAAQ;QACtC,IAAI,CAACC,SAAS,GAAG;eAAI,IAAI,CAACA,SAAS;YAAED;SAAQ;QAC7C,IAAI,CAACE,MAAM;IACb;IAEAC,cAAcC,EAAU,EAAEC,MAA6B,EAAQ;QAC7D,MAAMC,aAAa,IAAI,CAACL,SAAS,CAACM,IAAI,CAAC,CAACC,IAAMA,EAAEJ,EAAE,KAAKA;QACvD,MAAMK,aAAaH,CAAAA,uBAAAA,iCAAAA,WAAYI,KAAK,MAAK;QACzC,MAAMC,gBAAgBN,OAAOK,KAAK,IAAIL,OAAOK,KAAK,KAAK;QAEvD,IAAI,CAACT,SAAS,GAAG,IAAI,CAACA,SAAS,CAACW,GAAG,CAAC,CAACJ,IAAOA,EAAEJ,EAAE,KAAKA,KAAK,mBAAKI,GAAMH,UAAWG;QAEhF,yBAAyB;QACzB,IAAIC,cAAcE,iBAAiB,CAAC,IAAI,CAACE,YAAY,CAACC,QAAQ,CAACV,KAAK;YAClE,IAAI,CAACS,YAAY,GAAG;mBAAI,IAAI,CAACA,YAAY;gBAAET;aAAG;QAChD;QAEA,IAAI,CAACF,MAAM;IACb;IAEAa,YAAYX,EAAU,EAAEY,QAAgB,EAAQ;QAC9C,MAAMhB,UAAU,IAAI,CAACC,SAAS,CAACM,IAAI,CAAC,CAACC,IAAMA,EAAEJ,EAAE,KAAKA;QACpD,IAAIJ,SAAS;YACX,IAAI,CAACG,aAAa,CAACC,IAAI;gBAAEa,OAAOjB,QAAQiB,KAAK,CAACC,MAAM,CAACF;YAAU;QACjE;IACF;IAEAG,WAAWf,EAAU,EAA4B;QAC/C,OAAO,IAAI,CAACH,SAAS,CAACM,IAAI,CAAC,CAACC,IAAMA,EAAEJ,EAAE,KAAKA;IAC7C;IAEA,qBAAqB;IACrBgB,QAAQC,IAAU,EAAQ;QACxB,IAAI,CAACA,IAAI,GAAGA;QACZ,IAAIA,SAAS,aAAa;YACxB,IAAI,CAACC,kBAAkB,GAAG;QAC5B;QACA,IAAI,CAACpB,MAAM;IACb;IAEAqB,kBAAwB;QACtB,MAAMC,SAAS,IAAI,CAACC,kBAAkB;QACtC,IAAID,OAAOE,MAAM,GAAG,GAAG;YACrB,IAAI,CAACJ,kBAAkB,GAAG,AAAC,CAAA,IAAI,CAACA,kBAAkB,GAAG,CAAA,IAAKE,OAAOE,MAAM;YACvE,IAAI,CAACxB,MAAM;QACb;IACF;IAEAyB,kBAAwB;QACtB,MAAMH,SAAS,IAAI,CAACC,kBAAkB;QACtC,IAAID,OAAOE,MAAM,GAAG,GAAG;YACrB,IAAI,CAACJ,kBAAkB,GAAG,AAAC,CAAA,IAAI,CAACA,kBAAkB,GAAG,IAAIE,OAAOE,MAAM,AAAD,IAAKF,OAAOE,MAAM;YACvF,IAAI,CAACxB,MAAM;QACb;IACF;IAEA0B,mBAA6C;QAC3C,MAAMJ,SAAS,IAAI,CAACC,kBAAkB;QACtC,OAAOD,MAAM,CAAC,IAAI,CAACF,kBAAkB,CAAC;IACxC;IAEA,iBAAiB;IACjBO,WAAWC,QAAoB,EAAQ;QACrC,IAAI,CAACC,UAAU,GAAG;QAClB,IAAI,CAACC,YAAY,GAAGF;QACpB,IAAI,CAAC5B,MAAM;IACb;IAKA+B,QAAc;QACZ,IAAI,CAAChC,SAAS,GAAG,EAAE;QACnB,IAAI,CAACY,YAAY,GAAG,EAAE;QACtB,IAAI,CAACkB,UAAU,GAAG;QAClB,IAAI,CAACC,YAAY,GAAG;QACpB,IAAI,CAACX,IAAI,GAAG;QACZ,IAAI,CAACC,kBAAkB,GAAG;IAC5B;IAEQpB,SAAe;QACrB,IAAI,CAACgC,SAAS,CAACC,OAAO,CAAC,CAACC;YACtBA;QACF;IACF;;aAjIQnC,YAA4B,EAAE;aAC9BY,eAAyB,EAAE,EAAE,yBAAyB;aACtDqB,YAAY,IAAIG;aAChBN,aAAa;aACbC,eAAoC;QAE5C,WAAW;aACHX,OAAa;aACbC,qBAAqB;QAE7B,2BAA2B;aAC3BgB,YAAY,CAACC;YACX,IAAI,CAACL,SAAS,CAACM,GAAG,CAACD;YACnB,OAAO,IAAM,IAAI,CAACL,SAAS,CAACO,MAAM,CAACF;QACrC;aAEAG,cAAc,IAAsB,IAAI,CAACzC,SAAS;QAElD,mBAAmB;aACnB0C,sBAAsB;YACpB,OAAO,IAAI,CAAC1C,SAAS,CAAC2C,MAAM,CAAC,CAACpC,IAAMA,EAAEE,KAAK,KAAK;QAClD;aAEAmC,wBAAwB;YACtB,6BAA6B;YAC7B,OAAO,IAAI,CAAChC,YAAY,CAACD,GAAG,CAAC,CAACR,KAAO,IAAI,CAACH,SAAS,CAACM,IAAI,CAAC,CAACC,IAAMA,EAAEJ,EAAE,KAAKA,KAAKwC,MAAM,CAAC,CAACpC,IAAyBA,MAAMsC;QACvH;aAEArB,qBAAqB;YACnB,OAAO,IAAI,CAACxB,SAAS,CAAC2C,MAAM,CAAC,CAACpC,IAAMA,EAAEE,KAAK,KAAK;QAClD;QAEA,SAAS;aACTqC,kBAAkB,IAAc,IAAI,CAAC9C,SAAS,CAAC2C,MAAM,CAAC,CAACpC,IAAMA,EAAEE,KAAK,KAAK,WAAWgB,MAAM;aAC1FsB,eAAe,IAAc,IAAI,CAAC/C,SAAS,CAAC2C,MAAM,CAAC,CAACpC,IAAMA,EAAEE,KAAK,KAAK,WAAWgB,MAAM;aACvFuB,gBAAgB,IAAc,IAAI,CAAChD,SAAS,CAAC2C,MAAM,CAAC,CAACpC,IAAMA,EAAEE,KAAK,KAAK,SAASgB,MAAM;aACtFwB,oBAAoB;YAClB,OAAO,IAAI,CAACjD,SAAS,CAAC2C,MAAM,CAAC,CAACpC,IAAMA,EAAEE,KAAK,KAAK,SAASyC,MAAM,CAAC,CAACC,OAAO5C,IAAM4C,QAAQ5C,EAAES,KAAK,CAAC2B,MAAM,CAAC,CAACR,IAAMA,EAAEiB,IAAI,KAAKxD,SAASyD,MAAM,EAAE5B,MAAM,EAAE;QAClJ;QAEA,mBAAmB;aACnB6B,UAAU,IAAY,IAAI,CAAClC,IAAI;aAC/BmC,wBAAwB,IAAc,IAAI,CAAClC,kBAAkB;aAuE7DmC,gBAAgB,IAAe,IAAI,CAAC1B,UAAU;aAC9C2B,kBAAkB,IAA2B,IAAI,CAAC1B,YAAY;;AAgBhE;AAEA,OAAO,MAAM2B,eAAe,IAAI7D,eAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spawn-term",
3
- "version": "1.1.8",
3
+ "version": "2.0.0",
4
4
  "description": "Formats spawn with for terminal grouping",
5
5
  "keywords": [
6
6
  "spawn",