# Project Structure

**Generated**: 2026-04-26 23:13:23

## Project Information

- **Name**: pulsejt
- **Version**: 3.5.0

## Available Scripts

- `npm run build`: node build.js
- `npm run watch`: node build.js --watch

## Dependencies

### Development (1)

- esbuild: `^0.24.0`

## Directory Structure

pulseJT/
├── [.debug](.debug)
├── [.gitignore](.gitignore)
├── [.session-summary.md](.session-summary.md)
├── assets/
│   ├── [.debug](assets/.debug)
│   ├── assets/
│   │   └── [settings_wip.jpg](assets/assets/settings_wip.jpg)
│   ├── [CSInterface.js](assets/CSInterface.js)
│   ├── CSXS/
│   │   └── [manifest.xml](assets/CSXS/manifest.xml)
│   ├── fonts/
│   │   └── [Adult Swim.otf](assets/fonts/Adult Swim.otf)
│   ├── img/
│   │   ├── [discord-avatar.png](assets/img/discord-avatar.png)
│   │   ├── [log-icon.png](assets/img/log-icon.png)
│   │   └── [update-left.png](assets/img/update-left.png)
│   ├── [index.html](assets/index.html)
│   ├── JS/
│   │   ├── [Bundle-starter.js](assets/JS/Bundle-starter.js)
│   │   ├── core/
│   │   │   ├── [app.js](assets/JS/core/app.js)
│   │   │   ├── [dom.js](assets/JS/core/dom.js)
│   │   │   └── [state.js](assets/JS/core/state.js)
│   │   ├── [main.js](assets/JS/main.js)
│   │   ├── modules/
│   │   │   ├── [history.js](assets/JS/modules/history.js)
│   │   │   ├── [media.js](assets/JS/modules/media.js)
│   │   │   └── [settings.js](assets/JS/modules/settings.js)
│   │   ├── services/
│   │   │   ├── [cep.js](assets/JS/services/cep.js)
│   │   │   ├── [indexedDB.js](assets/JS/services/indexedDB.js)
│   │   │   └── [storage.js](assets/JS/services/storage.js)
│   │   ├── ui/
│   │   │   ├── [controls.js](assets/JS/ui/controls.js)
│   │   │   ├── [modals.js](assets/JS/ui/modals.js)
│   │   │   └── [themes.js](assets/JS/ui/themes.js)
│   │   └── utils/
│   │       ├── [helpers.js](assets/JS/utils/helpers.js)
│   │       └── [Transform.js](assets/JS/utils/Transform.js)
│   ├── [settings_wip.jpg](assets/settings_wip.jpg)
│   ├── [style.css](assets/style.css)
│   └── Themes/
│       ├── [jay-bg.png](assets/Themes/jay-bg.png)
│       ├── [naten-bg.png](assets/Themes/naten-bg.png)
│       ├── [shammy-bg.jpg](assets/Themes/shammy-bg.jpg)
│       └── [shammy-bg.webp](assets/Themes/shammy-bg.webp)
├── bin/
│   ├── mac/
│   │   └── [ffmpeg](bin/mac/ffmpeg)
│   └── win/
│       └── [ffmpeg.exe](bin/win/ffmpeg.exe)
├── [build-zip.ps1](build-zip.ps1)
├── [build.js](build.js)
├── [CLAUDE.md](CLAUDE.md)
├── [CSInterface.js](CSInterface.js)
├── CSXS/
│   └── [manifest.xml](CSXS/manifest.xml)
├── docs/
│   └── plans/
│       ├── [2026-02-18-settings-modal-implementation.md](docs/plans/2026-02-18-settings-modal-implementation.md)
│       ├── [2026-02-18-settings-modal-redesign.md](docs/plans/2026-02-18-settings-modal-redesign.md)
│       ├── [2026-02-19-expanded-features-implementation.md](docs/plans/2026-02-19-expanded-features-implementation.md)
│       ├── [2026-02-24-audio-ui-rewrite-design.md](docs/plans/2026-02-24-audio-ui-rewrite-design.md)
│       ├── [2026-02-24-audio-ui-rewrite-plan.md](docs/plans/2026-02-24-audio-ui-rewrite-plan.md)
│       ├── [2026-03-07-js-modularization-design.md](docs/plans/2026-03-07-js-modularization-design.md)
│       └── [2026-03-07-js-modularization-plan.md](docs/plans/2026-03-07-js-modularization-plan.md)
├── fonts/
│   └── [Adult Swim.otf](fonts/Adult Swim.otf)
├── img/
│   ├── [discord-avatar.png](img/discord-avatar.png)
│   ├── [log-icon.png](img/log-icon.png)
│   └── [update-left.png](img/update-left.png)
├── [index.html](index.html)
├── JS/
│   ├── [Bundle-starter.js](JS/Bundle-starter.js)
│   └── [bundle.js](JS/bundle.js)
├── [nul](nul)
├── [package-lock.json](package-lock.json)
├── [package.json](package.json)
├── [pulseJT.zip](pulseJT.zip)
├── src/
│   ├── audio/
│   │   ├── [bus.js](src/audio/bus.js)
│   │   ├── [dock-control.js](src/audio/dock-control.js)
│   │   ├── [settings-volume.js](src/audio/settings-volume.js)
│   │   ├── [state.js](src/audio/state.js)
│   │   ├── [unified-bar.js](src/audio/unified-bar.js)
│   │   └── [waveform.js](src/audio/waveform.js)
│   ├── [controls.js](src/controls.js)
│   ├── [history.js](src/history.js)
│   ├── [license.js](src/license.js)
│   ├── [logger.js](src/logger.js)
│   ├── [main.js](src/main.js)
│   ├── [media.js](src/media.js)
│   ├── [modals.js](src/modals.js)
│   ├── [settings.js](src/settings.js)
│   ├── [storage-keys.js](src/storage-keys.js)
│   ├── [storage.js](src/storage.js)
│   ├── [store.js](src/store.js)
│   ├── [themes.js](src/themes.js)
│   └── [utils.js](src/utils.js)
├── [style.css](style.css)
└── Themes/
    ├── [jay-bg.png](Themes/jay-bg.png)
    ├── [naten-bg.png](Themes/naten-bg.png)
    ├── [shammy-bg.jpg](Themes/shammy-bg.jpg)
    ├── [shammy-bg.webp](Themes/shammy-bg.webp)
    └── [wayne-theme.webp](Themes/wayne-theme.webp)
