@georgewrmarshall/design-system-metrics 2.0.0 → 2.2.0

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.
@@ -9,7 +9,14 @@
9
9
  "Bash(yarn test:*)",
10
10
  "Bash(npm view:*)",
11
11
  "Bash(npm whoami:*)",
12
- "Bash(npm publish:*)"
12
+ "Bash(npm publish:*)",
13
+ "Bash(git add:*)",
14
+ "Bash(git commit -m \"$(cat <<''EOF''\nfeat: refactor to two-project architecture with explicit component lists\n\n- Simplified from 4 projects (extension, mobile, design-system-react, design-system-react-native) to 2 (extension, mobile)\n- Added explicit deprecatedComponents and currentComponents lists per project\n- Extension now tracks 47 deprecated local components and 24 current NPM components\n- Mobile tracks 83 deprecated local components and 25 current NPM components\n- Updated component lists to match actual folder structure and exports\n- Added missing components: FileUploader, LottieAnimation, Skeleton, Textarea, SensitiveText\n- Fixed test expectations to match actual component usage patterns\n- All tests passing (8/8)\n\nšŸ¤– Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
15
+ "Bash(git push:*)",
16
+ "Bash(git commit -m \"$(cat <<''EOF''\nchore: bump version to 2.1.0 and add CHANGELOG\n\n- Bumped version from 2.0.0 to 2.1.0\n- Added comprehensive CHANGELOG.md with full version history\n- Documented all changes from 1.0.0 through 2.1.0\n- Added migration guide for v1.x to v2.0.0 upgrade\n- Listed all 5 missing components that were added\n- Included Jest test suite additions\n\nšŸ¤– Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
17
+ "Bash(git commit:*)",
18
+ "Bash(yarn npm audit)",
19
+ "Bash(git log:*)"
13
20
  ],
14
21
  "deny": [],
15
22
  "ask": []
package/CHANGELOG.md ADDED
@@ -0,0 +1,178 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [2.2.0] - 2026-01-22
9
+
10
+ ### Added
11
+
12
+ - **Mobile Components**: Added 10 missing components to mobile deprecatedComponents list:
13
+ - BadgeNotifications
14
+ - HeaderBase
15
+ - ListItemMultiSelect
16
+ - ListItemSelect
17
+ - RadioButton
18
+ - SelectButton
19
+ - SelectOption
20
+ - SelectValue
21
+ - SensitiveText
22
+ - Skeleton
23
+ - **Documentation**: Added Future Feature Ideas section to README
24
+ - Props Audit concept
25
+ - Team Adoption Metrics using CODEOWNERS
26
+
27
+ ### Changed
28
+
29
+ - **Mobile Components**: Updated to 110 deprecated components (from 100)
30
+
31
+ ### Fixed
32
+
33
+ - **CHANGELOG**: Corrected inaccuracies in version history
34
+ - Removed duplicate 2.0.0 entry
35
+ - Fixed dates and component counts
36
+ - Clarified that 2.1.0 did not include the 10 mobile components
37
+
38
+ ## [2.1.0] - 2026-01-22
39
+
40
+ ### Added
41
+
42
+ - **Documentation**: CHANGELOG.md created with full version history from 1.0.0 through 2.1.0
43
+
44
+ ## [2.0.0] - 2026-01-21
45
+
46
+ ### šŸŽ‰ Major Refactor
47
+
48
+ This release represents a complete architectural overhaul to better align with migration tracking goals.
49
+
50
+ ### Added
51
+
52
+ - **Explicit Component Lists**: Introduced `deprecatedComponents` and `currentComponents` arrays per project
53
+ - **Missing Components**: Added 5 components to Extension tracking:
54
+ - FileUploader
55
+ - LottieAnimation
56
+ - Skeleton
57
+ - SensitiveText
58
+ - Textarea (restored)
59
+ - **Comprehensive Test Suite**: Added Jest test suite with 8 passing tests
60
+ - Test fixtures for deprecated, current, and mixed usage
61
+ - Tests for source separation and file path tracking
62
+ - JSON output format testing
63
+ - **Test Scripts**: Added `yarn test` and `yarn test:watch` commands
64
+ - **Jest Configuration**: Added jest.config.js for proper test execution
65
+
66
+ ### Changed
67
+
68
+ - **BREAKING**: Simplified from 4 projects to 2 (extension and mobile only)
69
+ - **BREAKING**: Removed `design-system-react` and `design-system-react-native` project configs
70
+ - **BREAKING**: Split `components` array into `deprecatedComponents` and `currentComponents`
71
+ - **Architecture**: Local `/component-library` imports now map to `deprecatedComponents`
72
+ - **Architecture**: NPM package imports now map to `currentComponents`
73
+ - **Extension Components**: Now tracks 47 deprecated + 24 current components
74
+ - **Mobile Components**: Now tracks 100 deprecated + 25 current components
75
+ - **Component Lists**: Updated to match actual folder structure and NPM package exports
76
+ - Removed AvatarAccount from Extension deprecatedComponents (only exists in NPM package)
77
+
78
+ ### Fixed
79
+
80
+ - Component lists now accurately reflect the actual local component-library folders
81
+ - Test expectations now match actual component usage patterns
82
+ - All 8 tests passing
83
+
84
+ ### Documentation
85
+
86
+ - Updated README.md with new architecture
87
+ - Clarified two-project structure (extension and mobile)
88
+ - Documented `deprecatedComponents` vs `currentComponents` mental model
89
+
90
+ ## [1.0.2] - 2024-10-04
91
+
92
+ ### Security
93
+
94
+ - Dependency updates via Dependabot
95
+
96
+ ## [1.0.1] - 2024-10-04
97
+
98
+ ### Fixed
99
+
100
+ - Added missing component
101
+ - Updated dependencies
102
+
103
+ ### Security
104
+
105
+ - Updated brace-expansion
106
+ - Updated cross-spawn
107
+
108
+ ## [1.0.0] - 2024-10-04 - Initial Release
109
+
110
+ ### Added
111
+
112
+ - Initial CLI tool for design system metrics
113
+ - Support for Extension and Mobile projects
114
+ - CSV and JSON output formats
115
+ - Component usage tracking via AST parsing
116
+ - Babel-based JSX parsing
117
+ - Commander-based CLI interface
118
+
119
+ ---
120
+
121
+ ## Migration Guide: v1.x → v2.0.0
122
+
123
+ ### Breaking Changes
124
+
125
+ If you were using v1.x, here's what changed:
126
+
127
+ #### 1. Configuration Structure
128
+
129
+ **Before (v1.x):**
130
+ ```json
131
+ {
132
+ "projects": {
133
+ "extension": {
134
+ "components": ["Button", "Icon", ...]
135
+ }
136
+ }
137
+ }
138
+ ```
139
+
140
+ **After (v2.0.0):**
141
+ ```json
142
+ {
143
+ "projects": {
144
+ "extension": {
145
+ "deprecatedComponents": ["Button", "Icon", ...],
146
+ "currentComponents": ["Button", "Icon", ...]
147
+ }
148
+ }
149
+ }
150
+ ```
151
+
152
+ #### 2. Removed Projects
153
+
154
+ The following projects were removed:
155
+ - `design-system-react`
156
+ - `design-system-react-native`
157
+
158
+ To audit the design system packages themselves, run the tool directly in those repositories.
159
+
160
+ #### 3. Output Files
161
+
162
+ Output file naming remains the same:
163
+ - `{project}-component-metrics-deprecated.csv`
164
+ - `{project}-component-metrics-current.csv`
165
+
166
+ ### Benefits of Upgrading
167
+
168
+ - āœ… Clearer separation between deprecated and current components
169
+ - āœ… More accurate component lists matching actual codebase
170
+ - āœ… Better migration tracking (old vs new)
171
+ - āœ… Comprehensive test coverage
172
+ - āœ… Simpler, more focused architecture
173
+
174
+ ---
175
+
176
+ [2.0.0]: https://github.com/georgewrmarshall/design-system-metrics/compare/v1.0.1...v2.0.0
177
+ [1.0.1]: https://github.com/georgewrmarshall/design-system-metrics/compare/v1.0.0...v1.0.1
178
+ [1.0.0]: https://github.com/georgewrmarshall/design-system-metrics/releases/tag/v1.0.0
package/README.md CHANGED
@@ -208,6 +208,28 @@ One aggregated report showing all component usage:
208
208
 
209
209
  ---
210
210
 
211
+ ### **Future Feature Ideas**
212
+
213
+ We're exploring additional features to enhance design system adoption tracking:
214
+
215
+ #### **Props Audit**
216
+ - Track the most commonly used props for each component
217
+ - Identify prop usage patterns across the codebase
218
+ - Help inform API design decisions for design system components
219
+ - Surface which props are heavily used vs rarely used
220
+
221
+ #### **Team Adoption Metrics**
222
+ - Use CODEOWNERS files to map component usage to teams
223
+ - Generate team-level adoption reports showing:
224
+ - Which teams have the highest design system adoption
225
+ - Which teams still have the most deprecated component usage
226
+ - Per-team migration progress tracking
227
+ - Help identify teams that may need additional migration support
228
+
229
+ Want to contribute or suggest other features? Open an issue on GitHub!
230
+
231
+ ---
232
+
211
233
  ### **Contributing**
212
234
 
213
235
  If you wish to contribute to the tool, ensure you are running the latest version of **Yarn (v4.x)** and **Node.js**. You can make adjustments to the `config.json` file or update the CLI logic for tracking additional components or repositories.
package/config.json CHANGED
@@ -7,7 +7,6 @@
7
7
  "outputFile": "extension-component-metrics.csv",
8
8
  "currentPackages": ["@metamask/design-system-react"],
9
9
  "deprecatedComponents": [
10
- "AvatarAccount",
11
10
  "AvatarBase",
12
11
  "AvatarFavicon",
13
12
  "AvatarIcon",
@@ -26,12 +25,14 @@
26
25
  "ButtonSecondary",
27
26
  "Checkbox",
28
27
  "Container",
28
+ "FileUploader",
29
29
  "FormTextField",
30
30
  "HeaderBase",
31
31
  "HelpText",
32
32
  "Icon",
33
33
  "Input",
34
34
  "Label",
35
+ "LottieAnimation",
35
36
  "Modal",
36
37
  "ModalBody",
37
38
  "ModalContent",
@@ -45,6 +46,8 @@
45
46
  "SelectButton",
46
47
  "SelectOption",
47
48
  "SelectWrapper",
49
+ "SensitiveText",
50
+ "Skeleton",
48
51
  "Tag",
49
52
  "TagUrl",
50
53
  "Text",
@@ -103,6 +106,7 @@
103
106
  "Badge",
104
107
  "BadgeBase",
105
108
  "BadgeNetwork",
109
+ "BadgeNotifications",
106
110
  "BadgeStatus",
107
111
  "BadgeWrapper",
108
112
  "Banner",
@@ -137,6 +141,7 @@
137
141
  "CustomInput",
138
142
  "CustomSpendCap",
139
143
  "Header",
144
+ "HeaderBase",
140
145
  "HeaderCenter",
141
146
  "HeaderWithTitleLeft",
142
147
  "HeaderWithTitleLeftScrollable",
@@ -147,8 +152,10 @@
147
152
  "Label",
148
153
  "ListItem",
149
154
  "ListItemColumn",
155
+ "ListItemMultiSelect",
150
156
  "ListItemMultiSelectButton",
151
157
  "ListItemMultiSelectWithMenuButton",
158
+ "ListItemSelect",
152
159
  "Loader",
153
160
  "MainActionButton",
154
161
  "ModalConfirmation",
@@ -165,11 +172,17 @@
165
172
  "PickerNetwork",
166
173
  "QuickActionButton",
167
174
  "QuickActionButtons",
175
+ "RadioButton",
168
176
  "SegmentedControl",
177
+ "SelectButton",
169
178
  "SelectItem",
179
+ "SelectOption",
180
+ "SelectValue",
181
+ "SensitiveText",
170
182
  "SheetActions",
171
183
  "SheetBottom",
172
184
  "SheetHeader",
185
+ "Skeleton",
173
186
  "Tab",
174
187
  "TabBar",
175
188
  "TabBarItem",
package/index.js CHANGED
@@ -25,7 +25,7 @@ const loadConfig = async (configPath) => {
25
25
 
26
26
  // Define CLI options using Commander
27
27
  program
28
- .version("2.0.0")
28
+ .version("2.1.0")
29
29
  .description("Design System Metrics CLI Tool - Track component usage from multiple sources")
30
30
  .requiredOption(
31
31
  "-p, --project <name>",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@georgewrmarshall/design-system-metrics",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "A CLI tool to audit design system component usage from local libraries, NPM packages, and track deprecated components across MetaMask codebases",
5
5
  "main": "index.js",
6
6
  "packageManager": "yarn@4.3.1",