intershell 0.3.0 โ 0.3.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.
- package/README.md +196 -239
- package/dist/commands/version/prepare.d.ts.map +1 -1
- package/dist/commands/version/prepare.js +12 -7
- package/dist/commands/version/prepare.js.map +1 -1
- package/dist/entities/compose/compose.d.ts.map +1 -1
- package/dist/entities/compose/compose.js +15 -3
- package/dist/entities/compose/compose.js.map +1 -1
- package/package.json +9 -1
- package/src/commands/version/prepare.ts +16 -10
- package/src/entities/compose/compose.ts +16 -3
package/README.md
CHANGED
|
@@ -1,292 +1,253 @@
|
|
|
1
|
-
# ๐ InterShell -
|
|
1
|
+
# ๐ InterShell - CLI Toolkit for Developer Workflow Automation
|
|
2
2
|
|
|
3
|
-
> **
|
|
3
|
+
> **Bun-first CLI toolkit for developer workflow automation in monorepos and monoliths**
|
|
4
4
|
|
|
5
|
-
InterShell is a modern, type-safe CLI
|
|
5
|
+
InterShell is a modern, type-safe CLI toolkit built with Bun and TypeScript that automates common developer workflows in monorepos and monoliths. It provides commands for version management, commit validation, CI/CD integration, and development environment management.
|
|
6
6
|
|
|
7
7
|
## โจ Features
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
9
|
+
- **๐ฆ Version Management** - Automate semantic versioning with changelog generation
|
|
10
|
+
- **โ
Commit Validation** - Enforce conventional commit standards with branch validation
|
|
11
|
+
- **๐ CI/CD Integration** - GitHub Actions integration for affected packages and service ports
|
|
12
|
+
- **๐ณ Docker Compose Support** - Manage development environments and service health checks
|
|
13
|
+
- **๐ Package Management** - Analyze dependencies and affected packages in monorepos
|
|
14
|
+
- **๐ท๏ธ Git Operations** - Tag management, branch validation, and commit parsing
|
|
12
15
|
- **๐ง Type Safety** - Full TypeScript support with strict type checking
|
|
13
|
-
- **โก
|
|
14
|
-
- **๐ฏ Zero Dependencies** - Built from the ground up for Bun with no external deps
|
|
15
|
-
- **๐งช Testable** - Clean architecture makes testing individual components easy
|
|
16
|
+
- **โก Bun-First** - Built for Bun runtime with zero Node.js dependencies
|
|
16
17
|
|
|
17
|
-
## ๐ฆ
|
|
18
|
+
## ๐ฆ Installation
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Foundation utilities and types for the InterShell framework:
|
|
23
|
-
- Enhanced colorify system with RGB, HSL, and gradient support
|
|
24
|
-
- WrapShell script creation framework with type-safe argument parsing
|
|
25
|
-
- CLI utility functions for common operations
|
|
26
|
-
- Comprehensive type definitions
|
|
27
|
-
|
|
28
|
-
### `@intershell/interactive`
|
|
29
|
-
Interactive CLI framework with page-based navigation:
|
|
30
|
-
- Main InterShell framework orchestrator
|
|
31
|
-
- Event-based InteractiveCLI implementation
|
|
32
|
-
- Page system with builders and common page types
|
|
33
|
-
- State management with reducers and actions
|
|
20
|
+
```bash
|
|
21
|
+
# Using Bun
|
|
22
|
+
bun add -g intershell
|
|
34
23
|
|
|
35
|
-
<svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 878.8938598632812 301" style="max-width: 878.8938598632812px;" xmlns="http://www.w3.org/2000/svg" width="100%" id="mermaid-svg-1755831685709-tfz8nz33o"><style>#mermaid-svg-1755831685709-tfz8nz33o{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#cccccc;}#mermaid-svg-1755831685709-tfz8nz33o .error-icon{fill:#5a1d1d;}#mermaid-svg-1755831685709-tfz8nz33o .error-text{fill:#f48771;stroke:#f48771;}#mermaid-svg-1755831685709-tfz8nz33o .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-1755831685709-tfz8nz33o .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-1755831685709-tfz8nz33o .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-1755831685709-tfz8nz33o .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-1755831685709-tfz8nz33o .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-1755831685709-tfz8nz33o .marker{fill:#cccccc;stroke:#cccccc;}#mermaid-svg-1755831685709-tfz8nz33o .marker.cross{stroke:#cccccc;}#mermaid-svg-1755831685709-tfz8nz33o svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-1755831685709-tfz8nz33o .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#cccccc;}#mermaid-svg-1755831685709-tfz8nz33o .cluster-label text{fill:#e7e7e7;}#mermaid-svg-1755831685709-tfz8nz33o .cluster-label span,#mermaid-svg-1755831685709-tfz8nz33o p{color:#e7e7e7;}#mermaid-svg-1755831685709-tfz8nz33o .label text,#mermaid-svg-1755831685709-tfz8nz33o span,#mermaid-svg-1755831685709-tfz8nz33o p{fill:#cccccc;color:#cccccc;}#mermaid-svg-1755831685709-tfz8nz33o .node rect,#mermaid-svg-1755831685709-tfz8nz33o .node circle,#mermaid-svg-1755831685709-tfz8nz33o .node ellipse,#mermaid-svg-1755831685709-tfz8nz33o .node polygon,#mermaid-svg-1755831685709-tfz8nz33o .node path{fill:#1e1e1e;stroke:#6b6b6b;stroke-width:1px;}#mermaid-svg-1755831685709-tfz8nz33o .flowchart-label text{text-anchor:middle;}#mermaid-svg-1755831685709-tfz8nz33o .node .label{text-align:center;}#mermaid-svg-1755831685709-tfz8nz33o .node.clickable{cursor:pointer;}#mermaid-svg-1755831685709-tfz8nz33o .arrowheadPath{fill:#e1e1e1;}#mermaid-svg-1755831685709-tfz8nz33o .edgePath .path{stroke:#cccccc;stroke-width:2.0px;}#mermaid-svg-1755831685709-tfz8nz33o .flowchart-link{stroke:#cccccc;fill:none;}#mermaid-svg-1755831685709-tfz8nz33o .edgeLabel{background-color:#1e1e1e99;text-align:center;}#mermaid-svg-1755831685709-tfz8nz33o .edgeLabel rect{opacity:0.5;background-color:#1e1e1e99;fill:#1e1e1e99;}#mermaid-svg-1755831685709-tfz8nz33o .labelBkg{background-color:rgba(30, 30, 30, 0.5);}#mermaid-svg-1755831685709-tfz8nz33o .cluster rect{fill:#3a3d41;stroke:#303031;stroke-width:1px;}#mermaid-svg-1755831685709-tfz8nz33o .cluster text{fill:#e7e7e7;}#mermaid-svg-1755831685709-tfz8nz33o .cluster span,#mermaid-svg-1755831685709-tfz8nz33o p{color:#e7e7e7;}#mermaid-svg-1755831685709-tfz8nz33o div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:#4d4d4d;border:1px solid #007fd4;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-1755831685709-tfz8nz33o .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#cccccc;}#mermaid-svg-1755831685709-tfz8nz33o :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="mermaid-svg-1755831685709-tfz8nz33o_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="mermaid-svg-1755831685709-tfz8nz33o_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="mermaid-svg-1755831685709-tfz8nz33o_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="mermaid-svg-1755831685709-tfz8nz33o_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-A1" id="L-A-A1-0" d="M81.61,33.75L75.187,37.917C68.764,42.083,55.919,50.417,49.496,57.867C43.073,65.317,43.073,71.883,43.073,75.167L43.073,78.45"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-A2" id="L-A-A2-0" d="M133.634,33.75L140.057,37.917C146.48,42.083,159.326,50.417,165.748,57.867C172.171,65.317,172.171,71.883,172.171,75.167L172.171,78.45"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-A3" id="L-A-A3-0" d="M162.951,28.354L187.369,33.42C211.787,38.486,260.623,48.618,285.041,56.967C309.46,65.317,309.46,71.883,309.46,75.167L309.46,78.45"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-C" id="L-B-C-0" d="M410.723,109.288L382.431,114.823C354.14,120.359,297.556,131.429,269.265,140.248C240.973,149.067,240.973,155.633,240.973,158.917L240.973,162.2"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-D" id="L-B-D-0" d="M410.723,113.526L394.15,118.355C377.577,123.184,344.431,132.842,327.859,144.65C311.286,156.458,311.286,170.417,311.286,184.375C311.286,198.333,311.286,212.292,340.776,224.84C370.266,237.388,429.246,248.525,458.736,254.094L488.226,259.663"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-E" id="L-B-E-0" d="M499.277,109.451L526.911,114.959C554.544,120.467,609.811,131.484,644.53,141.463C679.249,151.442,693.42,160.384,700.506,164.854L707.591,169.325"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-F" id="L-C-F-0" d="M215.54,201.25L209.26,205.417C202.981,209.583,190.421,217.917,184.141,225.367C177.861,232.817,177.861,239.383,177.861,242.667L177.861,245.95"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-D" id="L-C-D-0" d="M240.973,201.25L240.973,205.417C240.973,209.583,240.973,217.917,282.176,227.991C323.378,238.065,405.783,249.88,446.985,255.787L488.188,261.694"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-H LE-D" id="L-H-D-0" d="M402.767,201.25L402.767,205.417C402.767,209.583,402.767,217.917,417.037,226.67C431.307,235.424,459.848,244.598,474.118,249.185L488.389,253.772"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-I LE-J" id="L-I-J-0" d="M790.327,33.75L782.179,37.917C774.032,42.083,757.737,50.417,749.589,57.867C741.442,65.317,741.442,71.883,741.442,75.167L741.442,78.45"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-I LE-D" id="L-I-D-0" d="M819.926,33.75L819.087,37.917C818.248,42.083,816.57,50.417,815.731,61.563C814.893,72.708,814.893,86.667,814.893,100.625C814.893,114.583,814.893,128.542,814.893,142.5C814.893,156.458,814.893,170.417,814.893,184.375C814.893,198.333,814.893,212.292,775.392,225.139C735.891,237.987,656.89,249.725,617.39,255.593L577.889,261.462"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-J LE-E" id="L-J-E-0" d="M741.442,117.5L741.442,121.667C741.442,125.833,741.442,134.167,740.652,141.641C739.862,149.115,738.283,155.73,737.493,159.037L736.703,162.345"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-K LE-D" id="L-K-D-0" d="M528.617,201.25L528.617,205.417C528.617,209.583,528.617,217.917,528.964,225.372C529.311,232.826,530.006,239.403,530.353,242.691L530.701,245.979"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-L LE-D" id="L-L-D-0" d="M630.029,201.25L630.029,205.417C630.029,209.583,630.029,217.917,621.19,225.9C612.35,233.883,594.671,241.516,585.831,245.333L576.991,249.149"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-E LE-D" id="L-E-D-0" d="M731.442,201.25L731.442,205.417C731.442,209.583,731.442,217.917,705.84,227.487C680.239,237.057,629.035,247.864,603.434,253.268L577.832,258.671"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-D" id="L-C-D-1" d="M255.141,201.25L258.639,205.417C262.137,209.583,269.133,217.917,307.977,227.844C346.821,237.772,417.512,249.295,452.858,255.056L488.203,260.817"/><path marker-end="url(#mermaid-svg-1755831685709-tfz8nz33o_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-I LE-D" id="L-I-D-1" d="M827.986,33.75L829.137,37.917C830.288,42.083,832.59,50.417,833.741,61.563C834.893,72.708,834.893,86.667,834.893,100.625C834.893,114.583,834.893,128.542,834.893,142.5C834.893,156.458,834.893,170.417,834.893,184.375C834.893,198.333,834.893,212.292,792.06,225.213C749.227,238.134,663.562,250.018,620.729,255.96L577.896,261.902"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(107.62206649780273, 16.875)" id="flowchart-A-1059" class="node default default flowchart-label"><rect height="33.75" width="110.65754699707031" y="-16.875" x="-55.328773498535156" ry="0" rx="0" style="fill:#fff3e0;" class="basic label-container"/><g transform="translate(-47.828773498535156, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="95.65754699707031"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Core Package</span></div></foreignObject></g></g><g transform="translate(43.072914123535156, 100.625)" id="flowchart-A1-1060" class="node default default flowchart-label"><rect height="33.75" width="86.14582824707031" y="-16.875" x="-43.072914123535156" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-35.572914123535156, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="71.14582824707031"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">colorify.ts</span></div></foreignObject></g></g><g transform="translate(172.1712188720703, 100.625)" id="flowchart-A2-1062" class="node default default flowchart-label"><rect height="33.75" width="72.05078125" y="-16.875" x="-36.025390625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-28.525390625, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="57.05078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">types.ts</span></div></foreignObject></g></g><g transform="translate(309.4596290588379, 100.625)" id="flowchart-A3-1064" class="node default default flowchart-label"><rect height="33.75" width="102.52603912353516" y="-16.875" x="-51.26301956176758" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-43.76301956176758, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="87.52603912353516"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">wrapshell.ts</span></div></foreignObject></g></g><g transform="translate(454.99999237060547, 100.625)" id="flowchart-B-1065" class="node default default flowchart-label"><rect height="33.75" width="88.5546875" y="-16.875" x="-44.27734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-36.77734375, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="73.5546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Changelog</span></div></foreignObject></g></g><g transform="translate(240.97330474853516, 184.375)" id="flowchart-C-1066" class="node default default flowchart-label"><rect height="33.75" width="70.625" y="-16.875" x="-35.3125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-27.8125, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="55.625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Commit</span></div></foreignObject></g></g><g transform="translate(533.0403575897217, 268.125)" id="flowchart-D-1068" class="node default default flowchart-label"><rect height="33.75" width="79.21223449707031" y="-16.875" x="-39.606117248535156" ry="0" rx="0" style="fill:#e1f5fe;" class="basic label-container"/><g transform="translate(-32.106117248535156, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="64.21223449707031"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Packages</span></div></foreignObject></g></g><g transform="translate(731.4420433044434, 184.375)" id="flowchart-E-1070" class="node default default flowchart-label"><rect height="33.75" width="38.73697853088379" y="-16.875" x="-19.368489265441895" ry="0" rx="0" style="fill:#f3e5f5;" class="basic label-container"/><g transform="translate(-11.868489265441895, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="23.73697853088379"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Tag</span></div></foreignObject></g></g><g transform="translate(177.86132717132568, 268.125)" id="flowchart-F-1072" class="node default default flowchart-label"><rect height="33.75" width="33.23567581176758" y="-16.875" x="-16.61783790588379" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-9.117837905883789, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="18.235675811767578"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PR</span></div></foreignObject></g></g><g transform="translate(402.7669219970703, 184.375)" id="flowchart-H-1075" class="node default default flowchart-label"><rect height="33.75" width="112.96223449707031" y="-16.875" x="-56.481117248535156" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48.981117248535156, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="97.96223449707031"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Commit Rules</span></div></foreignObject></g></g><g transform="translate(823.3235530853271, 16.875)" id="flowchart-I-1077" class="node default default flowchart-label"><rect height="33.75" width="79.140625" y="-16.875" x="-39.5703125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-32.0703125, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="64.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Compose</span></div></foreignObject></g></g><g transform="translate(741.4420433044434, 100.625)" id="flowchart-J-1078" class="node default default flowchart-label"><rect height="33.75" width="76.90103912353516" y="-16.875" x="-38.45051956176758" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-30.950519561767578, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="61.901039123535156"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Affected</span></div></foreignObject></g></g><g transform="translate(528.616527557373, 184.375)" id="flowchart-K-1083" class="node default default flowchart-label"><rect height="33.75" width="38.73697853088379" y="-16.875" x="-19.368489265441895" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-11.868489265441895, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="23.73697853088379"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Tag</span></div></foreignObject></g></g><g transform="translate(630.0292854309082, 184.375)" id="flowchart-L-1085" class="node default default flowchart-label"><rect height="33.75" width="64.08853912353516" y="-16.875" x="-32.04426956176758" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-24.544269561767578, -9.375)" style="" class="label"><rect/><foreignObject height="18.75" width="49.088539123535156"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Branch</span></div></foreignObject></g></g></g></g></g></svg>
|
|
24
|
+
# Using npm
|
|
25
|
+
npm install -g intershell
|
|
26
|
+
```
|
|
36
27
|
|
|
37
28
|
## ๐ Quick Start
|
|
38
29
|
|
|
39
|
-
###
|
|
30
|
+
### Version Management
|
|
31
|
+
|
|
32
|
+
Prepare and apply version changes with automatic changelog generation:
|
|
40
33
|
|
|
41
34
|
```bash
|
|
42
|
-
#
|
|
43
|
-
|
|
35
|
+
# Prepare version bump (creates changelog, updates package.json)
|
|
36
|
+
intershell version:prepare
|
|
37
|
+
|
|
38
|
+
# Apply version changes (commits and tags)
|
|
39
|
+
intershell version:apply
|
|
44
40
|
|
|
45
|
-
#
|
|
46
|
-
|
|
41
|
+
# CI-friendly version preparation
|
|
42
|
+
intershell version:ci
|
|
47
43
|
```
|
|
48
44
|
|
|
49
|
-
###
|
|
45
|
+
### Commit Validation
|
|
50
46
|
|
|
51
|
-
|
|
52
|
-
import { InterShellFramework, PageBuilder } from '@intershell/interactive';
|
|
53
|
-
import { colorify } from '../core';
|
|
47
|
+
Validate commits follow conventional commit standards:
|
|
54
48
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
confirmed: boolean;
|
|
59
|
-
}
|
|
49
|
+
```bash
|
|
50
|
+
# Check if commit message is valid
|
|
51
|
+
intershell commit-check
|
|
60
52
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
PageBuilder.create<AppState>('input', 'Enter Name')
|
|
64
|
-
.render(async (cli, state) => {
|
|
65
|
-
cli.clearScreen();
|
|
66
|
-
console.log(colorify.bold('๐ค What is your name?'));
|
|
67
|
-
|
|
68
|
-
const name = await cli.prompt('Name:', {
|
|
69
|
-
clearScreen: false,
|
|
70
|
-
allowEmpty: false,
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
// Update state directly (or use actions/reducers for complex apps)
|
|
74
|
-
state.name = name;
|
|
75
|
-
})
|
|
76
|
-
.handleKey(() => null)
|
|
77
|
-
.getNextAction((state) => ({ type: 'NEXT_PAGE' }))
|
|
78
|
-
.build(),
|
|
79
|
-
|
|
80
|
-
PageBuilder.create<AppState>('confirm', 'Confirm')
|
|
81
|
-
.render(async (cli, state) => {
|
|
82
|
-
cli.clearScreen();
|
|
83
|
-
console.log(colorify.bold('โ
Confirmation'));
|
|
84
|
-
|
|
85
|
-
const confirmed = await cli.confirm(`Hello ${state.name}, continue?`);
|
|
86
|
-
state.confirmed = confirmed;
|
|
87
|
-
})
|
|
88
|
-
.handleKey(() => null)
|
|
89
|
-
.getNextAction((state) =>
|
|
90
|
-
state.confirmed ? { type: 'EXIT' } : { type: 'PREV_PAGE' }
|
|
91
|
-
)
|
|
92
|
-
.build(),
|
|
93
|
-
];
|
|
94
|
-
|
|
95
|
-
// Create and run the framework
|
|
96
|
-
const framework = new InterShellFramework(
|
|
97
|
-
{ name: '', confirmed: false }, // Initial state
|
|
98
|
-
pages,
|
|
99
|
-
{} // Reducers (empty for simple state updates)
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
const finalState = await framework.run();
|
|
103
|
-
console.log('Final state:', finalState);
|
|
53
|
+
# Interactive commit with validation
|
|
54
|
+
intershell commit "feat(package): add new feature"
|
|
104
55
|
```
|
|
105
56
|
|
|
106
|
-
|
|
57
|
+
### CI/CD Integration
|
|
107
58
|
|
|
108
|
-
|
|
109
|
-
Pages are the building blocks of your CLI application. Each page handles a specific part of your workflow:
|
|
59
|
+
Integrate with GitHub Actions for affected package detection:
|
|
110
60
|
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
.render(async (cli, state) => {
|
|
115
|
-
// Render the page content
|
|
116
|
-
// Use cli.prompt(), cli.select(), cli.confirm() for user input
|
|
117
|
-
})
|
|
118
|
-
.handleKey((key, state) => {
|
|
119
|
-
// Handle raw key presses (optional)
|
|
120
|
-
return null; // or return an action
|
|
121
|
-
})
|
|
122
|
-
.getNextAction((state) => {
|
|
123
|
-
// Determine what happens next
|
|
124
|
-
return { type: 'NEXT_PAGE' }; // or other actions
|
|
125
|
-
})
|
|
126
|
-
.build();
|
|
127
|
-
```
|
|
61
|
+
```bash
|
|
62
|
+
# Attach affected packages to GitHub Actions output
|
|
63
|
+
intershell ci:attach-affected -o affected-services -m turbo
|
|
128
64
|
|
|
129
|
-
|
|
130
|
-
|
|
65
|
+
# Attach Docker service ports for affected services
|
|
66
|
+
intershell ci:attach-service-ports -o service-ports
|
|
131
67
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
| { type: 'SET_NAME'; payload: string }
|
|
135
|
-
| { type: 'SET_AGE'; payload: number };
|
|
136
|
-
|
|
137
|
-
const reducers = {
|
|
138
|
-
SET_NAME: (state: State, action: Action): State => ({
|
|
139
|
-
...state,
|
|
140
|
-
name: (action as any).payload,
|
|
141
|
-
}),
|
|
142
|
-
SET_AGE: (state: State, action: Action): State => ({
|
|
143
|
-
...state,
|
|
144
|
-
age: (action as any).payload,
|
|
145
|
-
}),
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
// In your page render function:
|
|
149
|
-
return { type: 'SET_NAME', payload: name };
|
|
68
|
+
# Run GitHub Actions locally
|
|
69
|
+
intershell ci:act --event pull_request --workflow .github/workflows/Check.yml
|
|
150
70
|
```
|
|
151
71
|
|
|
152
|
-
###
|
|
153
|
-
Control page flow with navigation actions:
|
|
154
|
-
|
|
155
|
-
- `{ type: 'NEXT_PAGE' }` - Go to the next page
|
|
156
|
-
- `{ type: 'PREV_PAGE' }` - Go to the previous page
|
|
157
|
-
- `{ type: 'CHANGE_PAGE'; payload: 'page-id' }` - Go to a specific page
|
|
158
|
-
- `{ type: 'RE_RENDER' }` - Re-render the current page
|
|
159
|
-
- `{ type: 'EXIT' }` - Exit the application
|
|
160
|
-
- `{ type: 'CUSTOM'; payload: action }` - Dispatch a custom action
|
|
72
|
+
### Development Environment
|
|
161
73
|
|
|
162
|
-
|
|
74
|
+
Manage development containers and services:
|
|
163
75
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
import { colorify } from '../core';
|
|
168
|
-
|
|
169
|
-
// Basic colors
|
|
170
|
-
console.log(colorify.red('Error message'));
|
|
171
|
-
console.log(colorify.green('Success message'));
|
|
172
|
-
console.log(colorify.blue('Info message'));
|
|
173
|
-
|
|
174
|
-
// Styles
|
|
175
|
-
console.log(colorify.bold('Bold text'));
|
|
176
|
-
console.log(colorify.italic('Italic text'));
|
|
177
|
-
console.log(colorify.underline('Underlined text'));
|
|
178
|
-
|
|
179
|
-
// Advanced colors
|
|
180
|
-
console.log(colorify.rgb(255, 128, 0)('Custom RGB color'));
|
|
181
|
-
console.log(colorify.hex('#ff8000')('Hex color'));
|
|
182
|
-
console.log(colorify.hsl(30, 1, 0.5)('HSL color'));
|
|
183
|
-
|
|
184
|
-
// Effects
|
|
185
|
-
console.log(colorify.gradient(['#ff0000', '#00ff00', '#0000ff'])('Gradient text'));
|
|
186
|
-
console.log(colorify.rainbow('Rainbow text'));
|
|
187
|
-
```
|
|
76
|
+
```bash
|
|
77
|
+
# Check DevContainer service health
|
|
78
|
+
intershell dev:check
|
|
188
79
|
|
|
189
|
-
|
|
80
|
+
# Setup development environment
|
|
81
|
+
intershell dev:setup
|
|
190
82
|
|
|
191
|
-
|
|
83
|
+
# Cleanup development resources
|
|
84
|
+
intershell dev:cleanup
|
|
192
85
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const script = WrapShell.createScript({
|
|
197
|
-
name: 'My CLI Tool',
|
|
198
|
-
description: 'A sample CLI application',
|
|
199
|
-
usage: 'my-tool [options]',
|
|
200
|
-
examples: ['my-tool --name John --age 25'],
|
|
201
|
-
options: [
|
|
202
|
-
{
|
|
203
|
-
short: '-n',
|
|
204
|
-
long: '--name',
|
|
205
|
-
description: 'Your name',
|
|
206
|
-
required: true,
|
|
207
|
-
validator: validators.nonEmpty,
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
short: '-a',
|
|
211
|
-
long: '--age',
|
|
212
|
-
description: 'Your age',
|
|
213
|
-
required: false,
|
|
214
|
-
defaultValue: '0',
|
|
215
|
-
validator: validators.integer,
|
|
216
|
-
}
|
|
217
|
-
]
|
|
218
|
-
}, async (args, console) => {
|
|
219
|
-
console.log(`Hello, ${args.name}! You are ${args.age} years old.`);
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
await script.run();
|
|
86
|
+
# Remove development containers
|
|
87
|
+
intershell dev:rm
|
|
223
88
|
```
|
|
224
89
|
|
|
225
|
-
|
|
90
|
+
### Local Development
|
|
226
91
|
|
|
227
|
-
|
|
92
|
+
Manage local development setup:
|
|
228
93
|
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
describe('My Page', () => {
|
|
234
|
-
it('should update state correctly', () => {
|
|
235
|
-
const page = PageBuilder.create('test', 'Test Page')
|
|
236
|
-
.render(async (cli, state) => {
|
|
237
|
-
state.value = 'updated';
|
|
238
|
-
})
|
|
239
|
-
.handleKey(() => null)
|
|
240
|
-
.getNextAction(() => ({ type: 'NEXT_PAGE' }))
|
|
241
|
-
.build();
|
|
242
|
-
|
|
243
|
-
const state = { value: 'initial' };
|
|
244
|
-
const mockCli = createMockCLI();
|
|
245
|
-
|
|
246
|
-
await page.render(mockCli, state);
|
|
247
|
-
expect(state.value).toBe('updated');
|
|
248
|
-
});
|
|
249
|
-
});
|
|
250
|
-
```
|
|
94
|
+
```bash
|
|
95
|
+
# Setup local development environment
|
|
96
|
+
intershell local:setup
|
|
251
97
|
|
|
252
|
-
|
|
98
|
+
# Generate VS Code workspace configuration
|
|
99
|
+
intershell local:vscode
|
|
253
100
|
|
|
254
|
-
|
|
101
|
+
# Cleanup local development resources
|
|
102
|
+
intershell local:cleanup
|
|
103
|
+
```
|
|
255
104
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
-
|
|
105
|
+
## ๐ Available Commands
|
|
106
|
+
|
|
107
|
+
### Version Commands
|
|
108
|
+
- `version:prepare` - Prepare version bump with changelog generation
|
|
109
|
+
- `version:apply` - Apply version changes (commit and tag)
|
|
110
|
+
- `version:ci` - CI-friendly version preparation
|
|
111
|
+
|
|
112
|
+
### Commit Commands
|
|
113
|
+
- `commit` - Execute git commit with message
|
|
114
|
+
- `commit-check` - Validate commit message format
|
|
115
|
+
|
|
116
|
+
### CI Commands
|
|
117
|
+
- `ci:act` - Run GitHub Actions workflows locally
|
|
118
|
+
- `ci:attach-affected` - Attach affected packages to GitHub Actions output
|
|
119
|
+
- `ci:attach-service-ports` - Attach service ports for affected Docker services
|
|
120
|
+
|
|
121
|
+
### Dev Commands
|
|
122
|
+
- `dev:check` - Check DevContainer service health
|
|
123
|
+
- `dev:setup` - Setup development environment
|
|
124
|
+
- `dev:cleanup` - Cleanup development resources
|
|
125
|
+
- `dev:rm` - Remove development containers
|
|
126
|
+
|
|
127
|
+
### Local Commands
|
|
128
|
+
- `local:setup` - Setup local development environment
|
|
129
|
+
- `local:vscode` - Generate VS Code workspace configuration
|
|
130
|
+
- `local:cleanup` - Cleanup local development resources
|
|
131
|
+
|
|
132
|
+
## ๐ง Core Concepts
|
|
133
|
+
|
|
134
|
+
### Entity System
|
|
135
|
+
|
|
136
|
+
InterShell uses an entity-driven architecture for monorepo operations:
|
|
137
|
+
|
|
138
|
+
- **EntityAffected** - Detect affected packages for CI/CD optimization
|
|
139
|
+
- **EntityBranch** - Git branch validation and operations
|
|
140
|
+
- **EntityCommit** - Commit parsing and validation (Conventional Commits)
|
|
141
|
+
- **EntityCompose** - Docker Compose parsing and service management
|
|
142
|
+
- **EntityPackage** - Package management and operations
|
|
143
|
+
- **EntityPackageVersion** - Version calculation and management
|
|
144
|
+
- **EntityPackageChangelog** - Changelog generation
|
|
145
|
+
- **EntityTag** - Git tag operations and management
|
|
146
|
+
|
|
147
|
+
### Configuration
|
|
148
|
+
|
|
149
|
+
InterShell can be configured via `intershell.config.json` in your project root:
|
|
150
|
+
|
|
151
|
+
```json
|
|
152
|
+
{
|
|
153
|
+
"branch": {
|
|
154
|
+
"prefixes": ["feat", "fix", "chore"],
|
|
155
|
+
"minLength": 3,
|
|
156
|
+
"maxLength": 50
|
|
157
|
+
},
|
|
158
|
+
"commit": {
|
|
159
|
+
"types": ["feat", "fix", "docs", "style", "refactor", "test", "chore"],
|
|
160
|
+
"scopes": ["package-name"]
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
```
|
|
260
164
|
|
|
261
165
|
## ๐๏ธ Architecture
|
|
262
166
|
|
|
263
|
-
InterShell follows a clean architecture with clear separation of concerns:
|
|
264
|
-
|
|
265
167
|
```
|
|
266
168
|
โโโโโโโโโโโโโโโโโโโโโโโ
|
|
267
|
-
โ CLI
|
|
268
|
-
|
|
269
|
-
โ InterShell Framework โ
|
|
169
|
+
โ CLI Commands โ
|
|
170
|
+
โ (oclif-based) โ
|
|
270
171
|
โโโโโโโโโโโโโโโโโโโโโโโค
|
|
271
|
-
โ
|
|
272
|
-
|
|
273
|
-
โ Interactive CLI โ
|
|
172
|
+
โ Entity System โ
|
|
173
|
+
โ (Business Logic) โ
|
|
274
174
|
โโโโโโโโโโโโโโโโโโโโโโโค
|
|
275
175
|
โ Core Utilities โ
|
|
176
|
+
โ (colorify, etc) โ
|
|
276
177
|
โโโโโโโโโโโโโโโโโโโโโโโ
|
|
277
178
|
```
|
|
278
179
|
|
|
279
180
|
### Key Principles
|
|
280
181
|
|
|
281
|
-
1. **
|
|
282
|
-
2. **
|
|
283
|
-
3. **
|
|
284
|
-
4. **
|
|
285
|
-
5. **
|
|
182
|
+
1. **Entity-Driven** - Business logic encapsulated in reusable entities
|
|
183
|
+
2. **Type-Safe** - Full TypeScript support with strict typing
|
|
184
|
+
3. **Bun-First** - Optimized for Bun runtime
|
|
185
|
+
4. **Monorepo-Aware** - Built for Turborepo and monorepo workflows
|
|
186
|
+
5. **CI/CD Ready** - GitHub Actions integration out of the box
|
|
187
|
+
|
|
188
|
+
## ๐ Usage Examples
|
|
189
|
+
|
|
190
|
+
### Version Bump Workflow
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# 1. Prepare version (updates package.json and generates changelog)
|
|
194
|
+
intershell version:prepare
|
|
195
|
+
|
|
196
|
+
# 2. Review changes
|
|
197
|
+
git diff
|
|
198
|
+
|
|
199
|
+
# 3. Apply version (commits and creates tag)
|
|
200
|
+
intershell version:apply
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Conventional Commits
|
|
204
|
+
|
|
205
|
+
InterShell enforces Conventional Commits standard:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Valid commit formats
|
|
209
|
+
intershell commit "feat(package): add new feature"
|
|
210
|
+
intershell commit "fix: resolve bug"
|
|
211
|
+
intershell commit "chore(deps): update dependencies"
|
|
212
|
+
|
|
213
|
+
# Invalid formats are rejected
|
|
214
|
+
intershell commit "my commit message" # โ Invalid
|
|
215
|
+
```
|
|
286
216
|
|
|
287
|
-
|
|
217
|
+
### CI/CD Pipeline
|
|
288
218
|
|
|
289
|
-
|
|
219
|
+
In your GitHub Actions workflow:
|
|
220
|
+
|
|
221
|
+
```yaml
|
|
222
|
+
- name: Get affected packages
|
|
223
|
+
id: affected
|
|
224
|
+
run: intershell ci:attach-affected -o affected -m turbo
|
|
225
|
+
|
|
226
|
+
- name: Build affected packages
|
|
227
|
+
run: turbo build ${{ steps.affected.outputs.affected }}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## ๐ Exports
|
|
231
|
+
|
|
232
|
+
InterShell exports both the CLI and programmatic APIs:
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
// CLI usage
|
|
236
|
+
import { colorify } from "intershell/core";
|
|
237
|
+
import { EntityPackage, EntityCommit } from "intershell/entities";
|
|
238
|
+
|
|
239
|
+
// Use entities programmatically
|
|
240
|
+
const packages = await EntityPackage.getAllPackages();
|
|
241
|
+
const commit = EntityCommit.parseByMessage("feat: new feature");
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## ๐ค Requirements
|
|
245
|
+
|
|
246
|
+
- **Bun** >= 1.0.0
|
|
247
|
+
- **TypeScript** >= 5.9.3 (peer dependency)
|
|
248
|
+
- **Turbo** >= 2.5.8 (peer dependency, for monorepo support)
|
|
249
|
+
- **Biome** >= 2.1.2 (peer dependency, for code formatting)
|
|
250
|
+
- **Lefthook** >= 1.12.4 (peer dependency, for git hooks)
|
|
290
251
|
|
|
291
252
|
## ๐ License
|
|
292
253
|
|
|
@@ -294,8 +255,4 @@ MIT License - see [LICENSE](LICENSE) for details.
|
|
|
294
255
|
|
|
295
256
|
## ๐ Acknowledgments
|
|
296
257
|
|
|
297
|
-
InterShell is
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
**Built with โค๏ธ by the Monobun team**
|
|
258
|
+
InterShell is built with Bun and designed for modern monorepo workflows.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/commands/version/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAiB7C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IAClD,MAAM,CAAC,WAAW,SAAgE;IAElF,MAAM,CAAC,QAAQ,WAQb;IAEF,MAAM,CAAC,KAAK;;;;;;;MA0BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/commands/version/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAiB7C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IAClD,MAAM,CAAC,WAAW,SAAgE;IAElF,MAAM,CAAC,QAAQ,WAQb;IAEF,MAAM,CAAC,KAAK;;;;;;;MA0BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAyH1B;;OAEG;YACW,kBAAkB;CAuChC"}
|
|
@@ -104,14 +104,19 @@ export default class VersionPrepare extends Command {
|
|
|
104
104
|
this.log(`๐ฆ (${colorify.yellow(versionData.currentVersion)} => ${colorify.green(versionData.targetVersion)}) ${colorify.blue(packageName)}: ${versionData.bumpType} (${colorify.green(packageInstance.getChangelogPath())})`);
|
|
105
105
|
await Bun.write(".git/COMMIT_EDITMSG", versionCommitMessage);
|
|
106
106
|
this.log(`${colorify.green("๐ Commit message written in")} ${colorify.blue(".git/COMMIT_EDITMSG")}:`, `\n\t${versionCommitMessage.replace(/\n/g, "\n\t")}`);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
try {
|
|
108
|
+
const services = await new EntityCompose("docker-compose.yml").getServices();
|
|
109
|
+
const servicesToDeploy = services.filter((s) => s.name === packageName).map((s) => s.name);
|
|
110
|
+
if (servicesToDeploy) {
|
|
111
|
+
const servicesToDeployNames = servicesToDeploy.join(",");
|
|
112
|
+
if (process.env.GITHUB_OUTPUT) {
|
|
113
|
+
await fs.promises.appendFile(process.env.GITHUB_OUTPUT, `packages-to-deploy=${servicesToDeployNames}\n`);
|
|
114
|
+
}
|
|
115
|
+
this.log(`\n๐ Packages to deploy: ${colorify.blue(servicesToDeployNames)}`);
|
|
113
116
|
}
|
|
114
|
-
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
this.log(colorify.yellow(`๐ฆ ${packageName}: ${colorify.yellow("No services found")}: ${error}`));
|
|
115
120
|
}
|
|
116
121
|
this.log("\n๐ Next steps:\n" +
|
|
117
122
|
"1. Review the generated changelogs\n" +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../src/commands/version/prepare.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../src/commands/version/prepare.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../src/entities/compose/compose.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EAErB,WAAW,EAEX,sBAAsB,EACtB,aAAa,EACb,WAAW,EAEX,MAAM,iBAAiB,CAAC;AAUzB,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,WAAW,EAAE,MAAM;IAIzB,QAAQ,IAAI,OAAO,CAAC,uBAAuB,CAAC;IA4B5C,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../src/entities/compose/compose.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EAErB,WAAW,EAEX,sBAAsB,EACtB,aAAa,EACb,WAAW,EAEX,MAAM,iBAAiB,CAAC;AAUzB,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,WAAW,EAAE,MAAM;IAIzB,QAAQ,IAAI,OAAO,CAAC,uBAAuB,CAAC;IA4B5C,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAmBlC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA2BrC,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAW5C,sBAAsB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAezD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAKjD,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAazC,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAiD1F,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;WAoCvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;WAWjD,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAkB/F"}
|
|
@@ -32,9 +32,21 @@ export class EntityCompose {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
async getCompose() {
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
if (await Bun.file(this.composePath).exists()) {
|
|
36
|
+
const compose = await Bun.file(this.composePath).text();
|
|
37
|
+
this.compose = this.compose || EntityCompose.parseDockerCompose(compose);
|
|
38
|
+
return this.compose;
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
version: "3.8",
|
|
42
|
+
services: {},
|
|
43
|
+
networks: {},
|
|
44
|
+
volumes: {},
|
|
45
|
+
validation: {
|
|
46
|
+
isValid: true,
|
|
47
|
+
errors: [],
|
|
48
|
+
},
|
|
49
|
+
};
|
|
38
50
|
}
|
|
39
51
|
async getServices() {
|
|
40
52
|
const compose = await this.getCompose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/entities/compose/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAoB3C,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;AAEzD,MAAM,OAAO,aAAa;IACR,WAAW,CAAS;IAC7B,OAAO,CAA0B;IAEzC,YAAY,WAAmB;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,sCAAsC;aAC/C,CAAC,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,uDAAuD;oBAChE,OAAO,EAAE,IAAI;iBACb,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO;YACN,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,MAAM;SACN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACf,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/entities/compose/compose.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"private": false,
|
|
3
3
|
"name": "intershell",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.2",
|
|
5
5
|
"description": "Bunโfirst CLI toolkit for developer workflow automation in monorepos and monoliths.",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/movahedan/intershell.git"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/movahedan/intershell/issues"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/movahedan/intershell#readme",
|
|
6
14
|
"packageManager": "bun@1.3.1",
|
|
7
15
|
"engines": {
|
|
8
16
|
"bun": ">=1.0.0"
|
|
@@ -151,17 +151,23 @@ export default class VersionPrepare extends Command {
|
|
|
151
151
|
`\n\t${versionCommitMessage.replace(/\n/g, "\n\t")}`,
|
|
152
152
|
);
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
154
|
+
try {
|
|
155
|
+
const services = await new EntityCompose("docker-compose.yml").getServices();
|
|
156
|
+
const servicesToDeploy = services.filter((s) => s.name === packageName).map((s) => s.name);
|
|
157
|
+
if (servicesToDeploy) {
|
|
158
|
+
const servicesToDeployNames = servicesToDeploy.join(",");
|
|
159
|
+
if (process.env.GITHUB_OUTPUT) {
|
|
160
|
+
await fs.promises.appendFile(
|
|
161
|
+
process.env.GITHUB_OUTPUT,
|
|
162
|
+
`packages-to-deploy=${servicesToDeployNames}\n`,
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
this.log(`\n๐ Packages to deploy: ${colorify.blue(servicesToDeployNames)}`);
|
|
163
166
|
}
|
|
164
|
-
|
|
167
|
+
} catch (error) {
|
|
168
|
+
this.log(
|
|
169
|
+
colorify.yellow(`๐ฆ ${packageName}: ${colorify.yellow("No services found")}: ${error}`),
|
|
170
|
+
);
|
|
165
171
|
}
|
|
166
172
|
|
|
167
173
|
this.log(
|
|
@@ -58,9 +58,22 @@ export class EntityCompose {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
async getCompose(): Promise<ComposeData> {
|
|
61
|
-
this.
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
if (await Bun.file(this.composePath).exists()) {
|
|
62
|
+
const compose = await Bun.file(this.composePath).text();
|
|
63
|
+
this.compose = this.compose || EntityCompose.parseDockerCompose(compose);
|
|
64
|
+
return this.compose;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return {
|
|
68
|
+
version: "3.8",
|
|
69
|
+
services: {},
|
|
70
|
+
networks: {},
|
|
71
|
+
volumes: {},
|
|
72
|
+
validation: {
|
|
73
|
+
isValid: true,
|
|
74
|
+
errors: [],
|
|
75
|
+
},
|
|
76
|
+
};
|
|
64
77
|
}
|
|
65
78
|
|
|
66
79
|
async getServices(): Promise<ServiceInfo[]> {
|