@homebridge-plugins/homebridge-august 3.2.2 → 3.2.3

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.
@@ -1,261 +0,0 @@
1
- # Copilot Instructions for Homebridge August Plugin
2
-
3
- ## Repository Overview
4
-
5
- This is a Homebridge plugin that provides HomeKit integration for August and Yale smart locks. The plugin is written in TypeScript with ES modules and follows Homebridge platform patterns.
6
-
7
- **Branch Strategy**: This repository uses a beta-first development workflow where all changes must target beta branches before being merged to main. Version bumps are determined by issue labels (patch/minor/major) that must be set before assigning work to Copilot.
8
-
9
- ## Architecture
10
-
11
- - **Plugin Type**: Homebridge dynamic platform plugin
12
- - **Language**: TypeScript with ES modules (ES2022)
13
- - **Runtime**: Node.js 20+ or 22+
14
- - **Build System**: TypeScript compiler (tsc) with bundler module resolution
15
- - **Testing**: Vitest with coverage support
16
- - **Linting**: ESLint with Antfu config and custom rules
17
- - **Documentation**: TypeDoc with modern theme
18
- - **External API**: august-yale package for August/Yale API communication
19
-
20
- ## Key Files and Directories
21
-
22
- - `src/` - TypeScript source code
23
- - `index.ts` - Plugin entry point that registers the platform
24
- - `platform.ts` - Main platform class (AugustPlatform)
25
- - `settings.ts` - Configuration interfaces and constants
26
- - `devices/` - Device-specific implementations
27
- - `lock.ts` - Lock mechanism implementation
28
- - `device.ts` - Base device class
29
- - `homebridge-ui/` - Custom UI for Homebridge Config UI X
30
- - `*.test.ts` - Test files (Vitest)
31
- - `dist/` - Compiled JavaScript output (generated, excluded from git)
32
- - `config.schema.json` - Homebridge configuration schema with custom UI
33
- - `package.json` - Dependencies and npm scripts
34
- - `tsconfig.json` - TypeScript configuration (ES2022, bundler resolution)
35
- - `eslint.config.js` - ESLint configuration with Antfu base and custom rules
36
-
37
- ## Development Workflow
38
-
39
- ### Branch Strategy and PR Workflow
40
-
41
- **IMPORTANT**: All pull requests must target a beta branch first, never directly to the main branch.
42
-
43
- #### Beta Branch Requirements
44
- - All PRs must be directed to a branch that starts with "beta-"
45
- - Beta branches should be named `beta-X.Y.Z` based on the expected version bump
46
- - If no appropriate beta branch exists, create one based on the next possible version:
47
- - **patch** releases (bug fixes): `beta-X.Y.Z+1` (e.g., current 3.0.2 → beta-3.0.3)
48
- - **minor** releases (new features): `beta-X.Y+1.0` (e.g., current 3.0.2 → beta-3.1.0)
49
- - **major** releases (breaking changes): `beta-X+1.0.0` (e.g., current 3.0.2 → beta-4.0.0)
50
-
51
- #### Required Labels
52
- Before assigning any issue to Copilot, the following labels **must** be set to determine the version bump:
53
- - `patch` - for bug fixes and minor improvements
54
- - `minor` - for new features and enhancements
55
- - `major` - for breaking changes
56
-
57
- #### Workflow Steps
58
- 1. Ensure proper label (patch/minor/major) is set on the issue
59
- 2. Identify or create appropriate beta branch based on the label
60
- 3. Target all development work and PRs to the beta branch
61
- 4. Once beta testing is complete, merge beta branch to main for release
62
-
63
- ### Building
64
- ```bash
65
- npm run build # Full build: clean + compile + copy UI files
66
- npm run clean # Remove dist directory
67
- npm run watch # Build + link + watch with nodemon
68
- ```
69
-
70
- ### Testing
71
- ```bash
72
- npm test # Run Vitest tests once
73
- npm run test:watch # Run tests in watch mode
74
- npm run test-coverage # Run tests with coverage report
75
- ```
76
-
77
- ### Linting
78
- ```bash
79
- npm run lint # Check for ESLint issues
80
- npm run lint:fix # Auto-fix ESLint issues
81
- ```
82
-
83
- ### Documentation
84
- ```bash
85
- npm run docs # Generate TypeDoc documentation
86
- npm run docs:lint # Validate documentation (treat warnings as errors)
87
- npm run docs:theme # Generate docs with default-modern theme
88
- ```
89
-
90
- ### Development Setup
91
- ```bash
92
- npm run watch # Start development with hot reload
93
- npm run plugin-ui # Copy UI files to dist
94
- ```
95
-
96
- ## Coding Standards
97
-
98
- 1. **TypeScript**:
99
- - ES2022 target with bundler module resolution
100
- - Strict mode enabled (except noImplicitAny: false)
101
- - Use ES modules with `.js` file extensions in imports
102
- - Generate declaration files and source maps
103
-
104
- 2. **ESLint**:
105
- - Antfu ESLint config as base
106
- - Custom rules for import ordering (perfectionist)
107
- - JSDoc alignment enforcement
108
- - Multi-line curly braces only
109
- - Consistent quote props
110
- - Test-specific rules (no-only-tests)
111
-
112
- 3. **Code Style**:
113
- - Use 1TBS brace style with single line allowed
114
- - Sort imports by type (builtin, external, internal, relative)
115
- - Sort named imports and exports
116
- - Use proper JSDoc formatting and alignment
117
-
118
- 4. **Homebridge Patterns**:
119
- - Implement DynamicPlatformPlugin interface
120
- - Use proper platform registration in index.ts
121
- - Follow accessory lifecycle management
122
- - Implement proper logging with Homebridge logger
123
- - Use PlatformAccessory for device management
124
-
125
- 5. **Error Handling**:
126
- - Proper try-catch blocks for async operations
127
- - Meaningful error messages with context
128
- - Graceful degradation for API failures
129
-
130
- ## Homebridge Specifics
131
-
132
- - **Platform Type**: Dynamic platform plugin (not accessory plugin)
133
- - **Platform Name**: "August" (defined in settings.ts)
134
- - **Plugin Name**: "homebridge-august" (must match package.json name)
135
- - **Configuration Schema**: Uses config.schema.json with custom UI
136
- - **Custom UI**: Located in src/homebridge-ui/ with custom configuration interface
137
- - **Platform Class**: AugustPlatform extends DynamicPlatformPlugin
138
- - **Device Management**: Uses PlatformAccessory for caching and state management
139
- - **HAP Services**: Implement LockMechanism service for smart locks
140
- - **Authentication**: Handle August API authentication with validation codes
141
- - **Rate Limiting**: Implement proper refresh/update/push rates for API calls
142
-
143
- ## August/Yale Integration
144
-
145
- - **API Package**: Uses `august-yale` npm package for API communication
146
- - **Authentication Flow**:
147
- 1. User provides augustId (email/phone) and password
148
- 2. System sends validation code to user
149
- 3. User enters validation code to complete authentication
150
- 4. API credentials are stored and used for subsequent requests
151
- - **Device Types**: Support multiple lock types (August Smart Lock, Yale Assure Lock variants)
152
- - **State Synchronization**: Keep HomeKit state in sync with August/Yale API
153
- - **Polling**: Implement configurable refresh rates for device state updates
154
- - **Configuration**: Use credentials interface for API authentication settings
155
-
156
- ## When Making Changes
157
-
158
- **CRITICAL**: Before starting any work, ensure the issue has the appropriate label (patch/minor/major) and target the correct beta branch.
159
-
160
- 0. **Branch Targeting**:
161
- - Never target PRs directly to main branch
162
- - Always target a beta branch (beta-X.Y.Z format)
163
- - Create beta branch if none exists for the expected version
164
- - Use issue labels to determine version bump:
165
- - `patch`: Bug fixes → beta-X.Y.Z+1
166
- - `minor`: New features → beta-X.Y+1.0
167
- - `major`: Breaking changes → beta-X+1.0.0
168
-
169
- 1. **Dependencies**:
170
- - Only add well-maintained dependencies
171
- - Keep runtime dependencies minimal
172
- - Update package.json and package-lock.json properly
173
- - Consider bundle size impact
174
-
175
- 2. **Breaking Changes**:
176
- - Follow semantic versioning
177
- - Update CHANGELOG.md appropriately
178
- - Consider migration paths for users
179
- - Test with multiple Homebridge versions
180
- - **Must** use `major` label and target appropriate beta-X+1.0.0 branch
181
-
182
- 3. **Configuration**:
183
- - Update config.schema.json for new options
184
- - Maintain backward compatibility
185
- - Add proper validation and defaults
186
- - Update TypeScript interfaces in settings.ts
187
-
188
- 4. **Documentation**:
189
- - Update README.md for user-facing changes
190
- - Add TSDoc comments for new APIs
191
- - Update TypeDoc comments for generated docs
192
- - Consider updating examples
193
-
194
- 5. **Testing**:
195
- - Add Vitest tests for new features
196
- - Mock external dependencies (August API)
197
- - Test error scenarios and edge cases
198
- - Maintain test coverage
199
-
200
- 6. **Compatibility**:
201
- - Support Node.js 20+ and 22+
202
- - Support Homebridge 1.9.0+ and 2.0.0+
203
- - Test with Config UI X integration
204
- - Verify ES module compatibility
205
-
206
- ## Common Patterns
207
-
208
- - **RxJS**: Use reactive programming patterns where appropriate
209
- - **Async/Await**: Prefer async/await over Promise chains
210
- - **ES Modules**: Use ES module syntax with `.js` extensions in imports
211
- - **Interface Design**: Define clear TypeScript interfaces in settings.ts
212
- - **Error Handling**: Implement comprehensive error handling with meaningful messages
213
- - **Logging**: Use this.log with appropriate log levels (info, warn, error, debug)
214
- - **Device Lifecycle**: Implement proper setup/cleanup in platform methods
215
- - **Configuration Validation**: Validate user configuration and provide helpful error messages
216
- - **API Rate Limiting**: Respect August API rate limits with configurable intervals
217
- - **State Management**: Maintain device state consistency between API and HomeKit
218
-
219
- ## Important Constants and Settings
220
-
221
- - **PLATFORM_NAME**: "August" (used in Homebridge registration)
222
- - **PLUGIN_NAME**: "homebridge-august" (must match package.json)
223
- - **Plugin Type**: "platform" (not accessory)
224
- - **Custom UI**: Enabled with path "./dist/homebridge-ui"
225
- - **Configuration**: Uses credentials and options interfaces
226
- - **Device Types**: Support for various August and Yale lock models
227
-
228
- ## Testing Guidelines
229
-
230
- - **Framework**: Use Vitest for testing with TypeScript support
231
- - **Test Files**: Name test files with `.test.ts` extension in src/
232
- - **Coverage**: Aim for good test coverage, use `npm run test-coverage`
233
- - **Mocking**: Mock external dependencies, especially:
234
- - August/Yale API calls
235
- - Homebridge API interactions
236
- - File system operations
237
- - **Test Categories**:
238
- - Unit tests for individual functions and classes
239
- - Integration tests for platform initialization
240
- - Configuration validation tests
241
- - Error handling tests
242
- - **Test Data**: Use realistic test data that matches August API responses
243
- - **Async Testing**: Properly test async operations and promises
244
- - **CI/CD**: Ensure tests run in continuous integration pipeline
245
-
246
- ## Files to Avoid Modifying
247
-
248
- - `dist/` directory (generated by TypeScript compilation)
249
- - `node_modules/` directory (managed by npm)
250
- - `docs/` directory (generated by TypeDoc)
251
- - `.git/` directory and git metadata
252
- - Files listed in `.gitignore`
253
- - `package-lock.json` (only modify through npm commands)
254
-
255
- ## Security Considerations
256
-
257
- - **Credentials**: Never log or expose user credentials
258
- - **API Keys**: Handle August API credentials securely
259
- - **Validation**: Validate all user inputs
260
- - **Error Messages**: Don't expose sensitive information in error messages
261
- - **Storage**: Store credentials securely using Homebridge storage mechanisms
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}