1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-06 11:43:51 +00:00

Explore kiro

This commit is contained in:
Hinton
2025-07-22 13:26:57 +02:00
parent 481910b823
commit de85a28558
3 changed files with 166 additions and 0 deletions

24
.kiro/steering/product.md Normal file
View File

@@ -0,0 +1,24 @@
# Product Overview
Bitwarden is an open-source password manager and secure digital vault. This repository contains all Bitwarden client applications except mobile apps (iOS and Android are separate repositories).
## Client Applications
- **Browser Extension**: Cross-browser password manager extension (Chrome, Firefox, Edge, Opera, Safari)
- **Desktop Application**: Native desktop app built with Electron for Windows, macOS, and Linux
- **Web Vault**: Web-based application for managing passwords and secure data
- **CLI Tool**: Command-line interface for managing your vault and organization data
## Core Features
- Password generation and storage
- Secure sharing and organization
- Two-factor authentication
- Biometric unlock
- Auto-fill capabilities
- Cross-platform synchronization
- Enterprise and organization management
## License
The project uses GPL-3.0 license with additional Bitwarden-specific licensing for enterprise features located in the `bitwarden_license/` directory.

View File

@@ -0,0 +1,87 @@
# Project Structure
## Root Organization
This is an Nx monorepo with a clear separation between applications and shared libraries.
```
├── apps/ # Client applications
├── libs/ # Shared libraries and components
├── bitwarden_license/ # Enterprise/licensed features
├── scripts/ # Build and utility scripts
└── coverage/ # Test coverage reports
```
## Applications (`apps/` & `bitwarden_license/`)
- **`browser/`**: Browser extension (Chrome, Firefox, Edge, Opera, Safari)
- **`web/`**: Web vault application
- **`bit-web/`**: Bitwarden licensed portions of the web vault
- **`desktop/`**: Electron-based desktop application
- **`cli/`**: Command-line interface tool
Each app has its own:
- `src/` - Source code
- `package.json` - App-specific dependencies
- `tsconfig.json` - TypeScript configuration
- `jest.config.js` - Test configuration
- `webpack.config.js` - Build configuration (where applicable)
## Shared Libraries (`libs/`)
### Core Libraries
- **`common/`**: Core business logic and models
- **`platform/`**: Platform abstractions and services
- **`components/`**: Reusable UI components
- **`angular/`**: Angular-specific utilities and services
### Domain Libraries
- **`auth/`**: Authentication and identity management
- **`vault/`**: Password vault functionality
- **`admin-console/`**: Organization and admin features
- **`billing/`**: Payment and subscription management
- **`key-management/`**: Cryptographic key handling
- **`tools/`**: Generator, import/export, and other tools
### Infrastructure Libraries
- **`node/`**: Node.js specific implementations
- **`importer/`**: Data import functionality
- **`eslint/`**: Custom ESLint rules and configurations
## Licensed Features (`bitwarden_license/`)
Enterprise and business features with separate licensing:
- **`bit-common/`**: Licensed common functionality
- **`bit-web/`**: Licensed web features
- **`bit-cli/`**: Licensed CLI features
## Import Restrictions
The project enforces strict import boundaries:
- Apps cannot import from other apps
- `libs/common/` is the base layer - minimal external dependencies
- Domain libraries have controlled dependencies on each other
- Licensed code is isolated from open-source code
## Path Aliases
TypeScript path mapping is configured in `tsconfig.base.json`:
- `@bitwarden/common/*``libs/common/src/*`
- `@bitwarden/auth/common``libs/auth/src/common`
- `@bitwarden/components``libs/components/src`
- And many more for clean imports across the monorepo
## Configuration Files
- **`nx.json`**: Nx workspace configuration
- **`angular.json`**: Angular CLI project definitions
- **`tsconfig.base.json`**: Base TypeScript configuration
- **`jest.config.js`**: Root Jest configuration with project references
- **`eslint.config.mjs`**: ESLint configuration with import restrictions

55
.kiro/steering/tech.md Normal file
View File

@@ -0,0 +1,55 @@
# Technology Stack
## Build System & Tooling
- **Webpack**: Module bundler for browser extension and desktop apps
- **TypeScript**: Primary language (ES2016 target, ES2020 modules)
- **Node.js**: Runtime requirement (~22) with npm (~10)
## Frontend Frameworks
- **Angular 19**: Primary framework for web, desktop, and browser popup
- **Lit**: Web components library for some UI elements
- **Tailwind CSS**: Utility-first CSS framework
## Testing & Quality
- **Jest**: Testing framework with coverage reporting
- **ESLint**: Code linting with TypeScript and Angular rules
- **Prettier**: Code formatting
- **Husky**: Git hooks for pre-commit checks
- **Storybook**: Component development and documentation
## Key Dependencies
- **Electron**: Desktop app framework
- **RxJS**: Reactive programming
## Common Commands
```bash
# Install dependencies
npm install
# Linting and formatting
npm run lint
npm run lint:fix
npm run prettier
# Testing
npm run test
npm run test:watch
# Storybook
npm run storybook
# Type checking
npm run test:types
```
## Development Requirements
- Node.js ~22
- npm ~10
- Angular CLI 19
- TypeScript 5.5+