Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ jobs:
export default { text, view, renderToString, renderToStringWithWidth, printComponent, eprintComponent, getTerminalSize, TuiRenderer, init }
CODE

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- name: Run lint
run: pnpm --filter @socketsecurity/cli run check
Expand Down Expand Up @@ -184,7 +184,7 @@ jobs:
export default { text, view, renderToString, renderToStringWithWidth, printComponent, eprintComponent, getTerminalSize, TuiRenderer, init }
CODE

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- name: Run type check
run: pnpm --filter @socketsecurity/cli run type
Expand Down Expand Up @@ -256,7 +256,7 @@ jobs:
export default { text, view, renderToString, renderToStringWithWidth, printComponent, eprintComponent, getTerminalSize, TuiRenderer, init }
CODE

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- name: Build CLI
working-directory: packages/cli
Expand Down Expand Up @@ -335,7 +335,7 @@ jobs:
export default { text, view, renderToString, renderToStringWithWidth, printComponent, eprintComponent, getTerminalSize, TuiRenderer, init }
CODE

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- name: Build CLI
working-directory: packages/cli
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/provenance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- name: Build CLI
run: pnpm --filter @socketsecurity/cli run build
Expand Down Expand Up @@ -104,7 +104,7 @@ jobs:

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- name: Download CLI bundle
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
Expand Down Expand Up @@ -160,7 +160,7 @@ jobs:

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- run: npm install -g npm@latest

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/weekly-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
node-version-file: .node-version
cache: 'pnpm'

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- name: Check for npm updates
id: check
Expand Down Expand Up @@ -76,7 +76,7 @@ jobs:
node-version-file: .node-version
cache: 'pnpm'

- uses: SocketDev/socket-registry/.github/actions/install@715b14fec288ea6abc94a63dd74a2860c0db82f0 # main
- uses: SocketDev/socket-registry/.github/actions/install@24323cbd9e61a7e3a600b8c7e99eb27a29642a54 # main

- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
Expand Down
24 changes: 13 additions & 11 deletions docs/build-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -284,23 +284,25 @@ pnpm clean

Located in `packages/cli/.config/`:

| Config | Output | Description |
| -------------------------- | --------------- | ------------------ |
| `esbuild.cli.build.mjs` | `build/cli.js` | Main CLI bundle |
| `esbuild.index.config.mjs` | `dist/index.js` | Entry point loader |
| Config | Output | Description |
| -------------------- | --------------- | ------------------------------------------------ |
| `esbuild.cli.mjs` | `build/cli.js` | Main CLI bundle — bundles all source into one JS |
| `esbuild.index.mjs` | `dist/index.js` | Entry point loader — thin shim that loads cli.js |
| `esbuild.build.mjs` | (orchestrator) | Runs both cli and index builds in parallel |

### Build Variants

The unified esbuild config (`esbuild.config.mjs`) orchestrates all variants:
The orchestrator (`esbuild.build.mjs`) accepts an optional variant argument:

```bash
# Build all variants
node .config/esbuild.config.mjs all
# Build all variants (default)
node .config/esbuild.build.mjs

# Build specific variant
node .config/esbuild.config.mjs cli
node .config/esbuild.config.mjs index
node .config/esbuild.config.mjs inject
# Build only the CLI bundle
node .config/esbuild.build.mjs cli

# Build only the entry point loader
node .config/esbuild.build.mjs index
```

---
Expand Down
40 changes: 7 additions & 33 deletions packages/build-infra/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ Shared build infrastructure utilities for Socket CLI. Provides esbuild plugins,
│ │ Unicode │ │ API Client │ │ SHA256 │ │
│ │ Transform │ │ + Download │ │ Content │ │
│ │ │ │ │ │ Hashing │ │
─────────────── ├──────────────┤ └──────────┤ │
│ Dead Code │ Asset Cache │ │ Skip │ │
│ Elimination │ (1hr TTL) │ │ Regen │ │
└───────────────┘ └──────────────┘ └──────────┘ │
─────────────── ├──────────────┤ └──────────┤ │
│ Asset Cache │ │ Skip │ │
│ (1hr TTL) │ │ Regen │ │
└──────────────┘ └──────────┘ │
│ │
│ Helpers │
│ ┌───────────────────────────────────────────────────────┐ │
Expand Down Expand Up @@ -72,30 +72,6 @@ export default {
- Replaces unsupported patterns with `/(?:)/` (no-op)
- Removes `/u` and `/v` flags after transformation

#### `deadCodeEliminationPlugin()`

Removes unreachable code branches based on constant boolean conditions. Simplifies bundled output by eliminating dead paths.

```javascript
import { deadCodeEliminationPlugin } from 'build-infra/lib/esbuild-plugin-dead-code-elimination'

export default {
plugins: [deadCodeEliminationPlugin()],
}
```

**Transformations:**

- `if (false) { deadCode() }` → `` (removed)
- `if (true) { liveCode() } else { deadCode() }` → `liveCode()` (unwrapped)
- `if (false) { } else { liveCode() }` → `liveCode()` (unwrapped)

**Implementation:**

- Uses Babel parser + MagicString for safe AST transformations
- Only processes `.js` files in esbuild output
- Applies transformations in reverse order to maintain positions

### esbuild Helpers

#### `IMPORT_META_URL_BANNER`
Expand Down Expand Up @@ -296,10 +272,9 @@ ensureOutputDir('/path/to/output/file.js')
### esbuild Configuration

```javascript
// .config/esbuild.config.mjs
// .config/esbuild.cli.mjs
import { IMPORT_META_URL_BANNER } from 'build-infra/lib/esbuild-helpers'
import { unicodeTransformPlugin } from 'build-infra/lib/esbuild-plugin-unicode-transform'
import { deadCodeEliminationPlugin } from 'build-infra/lib/esbuild-plugin-dead-code-elimination'

export default {
entryPoints: ['src/cli.mts'],
Expand All @@ -317,7 +292,7 @@ export default {
'import.meta.url': '__importMetaUrl',
},

plugins: [unicodeTransformPlugin(), deadCodeEliminationPlugin()],
plugins: [unicodeTransformPlugin()],
}
```

Expand Down Expand Up @@ -438,8 +413,7 @@ Assets are cached per tag to avoid re-downloading across builds.

**Consumers:**

- `packages/cli/.config/esbuild.cli.build.mjs` - Main CLI bundle config
- `packages/cli/.config/esbuild.inject.config.mjs` - Shadow npm inject config
- `packages/cli/.config/esbuild.cli.mjs` - Main CLI bundle config
- `packages/cli/scripts/download-assets.mjs` - Unified asset downloader
- `packages/cli/scripts/sea-build-utils/builder.mjs` - SEA binary builder

Expand Down
156 changes: 0 additions & 156 deletions packages/build-infra/lib/esbuild-plugin-dead-code-elimination.mjs

This file was deleted.

1 change: 0 additions & 1 deletion packages/build-infra/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
"type": "module",
"exports": {
"./lib/esbuild-helpers": "./lib/esbuild-helpers.mjs",
"./lib/esbuild-plugin-dead-code-elimination": "./lib/esbuild-plugin-dead-code-elimination.mjs",
"./lib/esbuild-plugin-unicode-transform": "./lib/esbuild-plugin-unicode-transform.mjs",
"./lib/extraction-cache": "./lib/extraction-cache.mjs",
"./lib/github-error-utils": "./lib/github-error-utils.mjs",
Expand Down
Loading
Loading