svger-cli 2.0.5 → 2.0.6
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.
- package/.svgerconfig.example.json +119 -119
- package/CHANGELOG.md +155 -63
- package/DEVELOPMENT.md +352 -352
- package/LICENSE +20 -20
- package/README.md +2654 -2132
- package/SECURITY.md +68 -68
- package/bin/svg-tool.js +2 -2
- package/dist/core/framework-templates.js +285 -285
- package/dist/core/style-compiler.js +201 -201
- package/dist/core/template-manager.js +348 -348
- package/dist/services/svg-service.js +12 -12
- package/dist/templates/ComponentTemplate.js +17 -17
- package/docs/ADR-SVG-INTRGRATION-METHODS-001.adr.md +157 -157
- package/docs/ADR-SVG-INTRGRATION-METHODS-002.adr.md +549 -549
- package/docs/FRAMEWORK-GUIDE.md +768 -768
- package/docs/IMPLEMENTATION-SUMMARY.md +376 -376
- package/package.json +177 -179
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/faezemohades/svger-cli/main/schemas/config.schema.json",
|
|
3
|
-
|
|
4
|
-
"_comment": "Complete Configuration Schema - This file demonstrates all available configuration options for svger-cli",
|
|
5
|
-
|
|
6
|
-
"// Source & Output": "",
|
|
7
|
-
"source": "./src/assets/svg",
|
|
8
|
-
"output": "./src/components/icons",
|
|
9
|
-
|
|
10
|
-
"// Framework Configuration": "",
|
|
11
|
-
"framework": "react",
|
|
12
|
-
"typescript": true,
|
|
13
|
-
"componentType": "functional",
|
|
14
|
-
|
|
15
|
-
"// Processing Options": "",
|
|
16
|
-
"watch": false,
|
|
17
|
-
"parallel": true,
|
|
18
|
-
"batchSize": 10,
|
|
19
|
-
"maxConcurrency": 4,
|
|
20
|
-
"cache": true,
|
|
21
|
-
|
|
22
|
-
"// Default Properties": "",
|
|
23
|
-
"defaultWidth": 24,
|
|
24
|
-
"defaultHeight": 24,
|
|
25
|
-
"defaultFill": "currentColor",
|
|
26
|
-
"defaultStroke": "none",
|
|
27
|
-
"defaultStrokeWidth": 1,
|
|
28
|
-
|
|
29
|
-
"// Styling Configuration": "",
|
|
30
|
-
"styleRules": {
|
|
31
|
-
"fill": "inherit",
|
|
32
|
-
"stroke": "none",
|
|
33
|
-
"strokeWidth": "1",
|
|
34
|
-
"opacity": "1"
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
"// Responsive Design": "",
|
|
38
|
-
"responsive": {
|
|
39
|
-
"breakpoints": ["sm", "md", "lg", "xl"],
|
|
40
|
-
"values": {
|
|
41
|
-
"width": ["16px", "20px", "24px", "32px"],
|
|
42
|
-
"height": ["16px", "20px", "24px", "32px"]
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
"// Theme Configuration": "",
|
|
47
|
-
"theme": {
|
|
48
|
-
"mode": "auto",
|
|
49
|
-
"variables": {
|
|
50
|
-
"primary": "currentColor",
|
|
51
|
-
"secondary": "#6b7280",
|
|
52
|
-
"accent": "#3b82f6",
|
|
53
|
-
"background": "#ffffff",
|
|
54
|
-
"foreground": "#000000"
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
|
|
58
|
-
"// Animation Effects": "",
|
|
59
|
-
"animations": ["fadeIn", "slideIn", "bounce"],
|
|
60
|
-
|
|
61
|
-
"// Advanced Options": "",
|
|
62
|
-
"plugins": [
|
|
63
|
-
{
|
|
64
|
-
"name": "svg-optimizer",
|
|
65
|
-
"options": {
|
|
66
|
-
"removeComments": true,
|
|
67
|
-
"removeMetadata": true
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
],
|
|
71
|
-
"exclude": ["*.test.svg", "deprecated/**"],
|
|
72
|
-
"include": ["icons/**", "illustrations/**"],
|
|
73
|
-
|
|
74
|
-
"// Error Handling": "",
|
|
75
|
-
"errorHandling": {
|
|
76
|
-
"strategy": "continue",
|
|
77
|
-
"maxRetries": 3,
|
|
78
|
-
"timeout": 30000
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
"// Performance Settings": "",
|
|
82
|
-
"performance": {
|
|
83
|
-
"optimization": "balanced",
|
|
84
|
-
"memoryLimit": 512,
|
|
85
|
-
"cacheTimeout": 3600000
|
|
86
|
-
},
|
|
87
|
-
|
|
88
|
-
"// Output Customization": "",
|
|
89
|
-
"outputConfig": {
|
|
90
|
-
"naming": "pascal",
|
|
91
|
-
"extension": "tsx",
|
|
92
|
-
"directory": "./src/components/icons"
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
"// Framework-Specific Configurations": "",
|
|
96
|
-
"react": {
|
|
97
|
-
"componentType": "functional",
|
|
98
|
-
"forwardRef": true,
|
|
99
|
-
"memo": false,
|
|
100
|
-
"propsInterface": "SVGProps",
|
|
101
|
-
"styledComponents": false,
|
|
102
|
-
"cssModules": false
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
"vue": {
|
|
106
|
-
"api": "composition",
|
|
107
|
-
"setup": true,
|
|
108
|
-
"typescript": true,
|
|
109
|
-
"scoped": true,
|
|
110
|
-
"cssVariables": true
|
|
111
|
-
},
|
|
112
|
-
|
|
113
|
-
"angular": {
|
|
114
|
-
"standalone": true,
|
|
115
|
-
"signals": true,
|
|
116
|
-
"changeDetection": "OnPush",
|
|
117
|
-
"encapsulation": "Emulated"
|
|
118
|
-
}
|
|
119
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/faezemohades/svger-cli/main/schemas/config.schema.json",
|
|
3
|
+
|
|
4
|
+
"_comment": "Complete Configuration Schema - This file demonstrates all available configuration options for svger-cli",
|
|
5
|
+
|
|
6
|
+
"// Source & Output": "",
|
|
7
|
+
"source": "./src/assets/svg",
|
|
8
|
+
"output": "./src/components/icons",
|
|
9
|
+
|
|
10
|
+
"// Framework Configuration": "",
|
|
11
|
+
"framework": "react",
|
|
12
|
+
"typescript": true,
|
|
13
|
+
"componentType": "functional",
|
|
14
|
+
|
|
15
|
+
"// Processing Options": "",
|
|
16
|
+
"watch": false,
|
|
17
|
+
"parallel": true,
|
|
18
|
+
"batchSize": 10,
|
|
19
|
+
"maxConcurrency": 4,
|
|
20
|
+
"cache": true,
|
|
21
|
+
|
|
22
|
+
"// Default Properties": "",
|
|
23
|
+
"defaultWidth": 24,
|
|
24
|
+
"defaultHeight": 24,
|
|
25
|
+
"defaultFill": "currentColor",
|
|
26
|
+
"defaultStroke": "none",
|
|
27
|
+
"defaultStrokeWidth": 1,
|
|
28
|
+
|
|
29
|
+
"// Styling Configuration": "",
|
|
30
|
+
"styleRules": {
|
|
31
|
+
"fill": "inherit",
|
|
32
|
+
"stroke": "none",
|
|
33
|
+
"strokeWidth": "1",
|
|
34
|
+
"opacity": "1"
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
"// Responsive Design": "",
|
|
38
|
+
"responsive": {
|
|
39
|
+
"breakpoints": ["sm", "md", "lg", "xl"],
|
|
40
|
+
"values": {
|
|
41
|
+
"width": ["16px", "20px", "24px", "32px"],
|
|
42
|
+
"height": ["16px", "20px", "24px", "32px"]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
"// Theme Configuration": "",
|
|
47
|
+
"theme": {
|
|
48
|
+
"mode": "auto",
|
|
49
|
+
"variables": {
|
|
50
|
+
"primary": "currentColor",
|
|
51
|
+
"secondary": "#6b7280",
|
|
52
|
+
"accent": "#3b82f6",
|
|
53
|
+
"background": "#ffffff",
|
|
54
|
+
"foreground": "#000000"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
"// Animation Effects": "",
|
|
59
|
+
"animations": ["fadeIn", "slideIn", "bounce"],
|
|
60
|
+
|
|
61
|
+
"// Advanced Options": "",
|
|
62
|
+
"plugins": [
|
|
63
|
+
{
|
|
64
|
+
"name": "svg-optimizer",
|
|
65
|
+
"options": {
|
|
66
|
+
"removeComments": true,
|
|
67
|
+
"removeMetadata": true
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"exclude": ["*.test.svg", "deprecated/**"],
|
|
72
|
+
"include": ["icons/**", "illustrations/**"],
|
|
73
|
+
|
|
74
|
+
"// Error Handling": "",
|
|
75
|
+
"errorHandling": {
|
|
76
|
+
"strategy": "continue",
|
|
77
|
+
"maxRetries": 3,
|
|
78
|
+
"timeout": 30000
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
"// Performance Settings": "",
|
|
82
|
+
"performance": {
|
|
83
|
+
"optimization": "balanced",
|
|
84
|
+
"memoryLimit": 512,
|
|
85
|
+
"cacheTimeout": 3600000
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
"// Output Customization": "",
|
|
89
|
+
"outputConfig": {
|
|
90
|
+
"naming": "pascal",
|
|
91
|
+
"extension": "tsx",
|
|
92
|
+
"directory": "./src/components/icons"
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
"// Framework-Specific Configurations": "",
|
|
96
|
+
"react": {
|
|
97
|
+
"componentType": "functional",
|
|
98
|
+
"forwardRef": true,
|
|
99
|
+
"memo": false,
|
|
100
|
+
"propsInterface": "SVGProps",
|
|
101
|
+
"styledComponents": false,
|
|
102
|
+
"cssModules": false
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
"vue": {
|
|
106
|
+
"api": "composition",
|
|
107
|
+
"setup": true,
|
|
108
|
+
"typescript": true,
|
|
109
|
+
"scoped": true,
|
|
110
|
+
"cssVariables": true
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
"angular": {
|
|
114
|
+
"standalone": true,
|
|
115
|
+
"signals": true,
|
|
116
|
+
"changeDetection": "OnPush",
|
|
117
|
+
"encapsulation": "Emulated"
|
|
118
|
+
}
|
|
119
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,64 +1,156 @@
|
|
|
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
|
-
## [
|
|
9
|
-
|
|
10
|
-
### Added
|
|
11
|
-
-
|
|
12
|
-
- Professional
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
- Enhanced
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
### Fixed
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
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
|
+
## [Unreleased] - 2025-11-12
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Comprehensive performance analysis documentation with detailed technical breakdown
|
|
12
|
+
- Professional competitive analysis with fair tool comparisons
|
|
13
|
+
- Transparency section welcoming community feedback
|
|
14
|
+
- Use case recommendations for each tool in the ecosystem
|
|
15
|
+
- Detailed methodology for performance claims and benchmarking
|
|
16
|
+
- Research sources and feedback channels for documentation accuracy
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Corrected SVGR description to acknowledge webpack ecosystem support (not React-only)
|
|
20
|
+
- Clarified 85% performance improvement claim with proper context and scope
|
|
21
|
+
- Enhanced "Advanced Props" definition vs standard SVG props
|
|
22
|
+
- Improved competitive analysis to be fair, accurate, and professional
|
|
23
|
+
- Removed misleading bundle size comparisons (dev dependencies vs runtime)
|
|
24
|
+
- Updated documentation tone to be educational rather than competitive
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- Inaccurate claims about competitor tools' capabilities
|
|
28
|
+
- Misleading performance comparisons without proper context
|
|
29
|
+
- Unprofessional competitive analysis language
|
|
30
|
+
- Missing disclaimers and acknowledgments for ecosystem tools
|
|
31
|
+
|
|
32
|
+
## [2.0.5] - 2025-11-11
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
- **CRITICAL**: PascalCase component naming preservation
|
|
36
|
+
- Fixed issue where PascalCase filenames were incorrectly converted to lowercase
|
|
37
|
+
- ArrowBendDownLeft.svg → ArrowBendDownLeft.tsx (was: Arrowbenddownleft.tsx)
|
|
38
|
+
- MyCustomIcon.svg → MyCustomIcon.tsx (was: Mycustomicon.tsx)
|
|
39
|
+
- Enhanced regex pattern in toPascalCase() to properly detect existing PascalCase
|
|
40
|
+
- Maintained compatibility with all existing functionality
|
|
41
|
+
- All 28 framework tests continue passing
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
- Updated package version to 2.0.5
|
|
45
|
+
- Enhanced toPascalCase utility function for better case detection
|
|
46
|
+
|
|
47
|
+
## [2.0.4] - 2025-11-11
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
- Complete 28-property configuration schema
|
|
51
|
+
- React/Vue/Angular specific configuration options
|
|
52
|
+
- Enhanced responsive design support with breakpoint configurations
|
|
53
|
+
- Comprehensive theme system with multiple design systems support
|
|
54
|
+
- Advanced performance optimization settings
|
|
55
|
+
- Professional error handling and validation system
|
|
56
|
+
- Enhanced TypeScript support with improved type definitions
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
- Streamlined ESLint configuration (.eslintrc.js → .eslintrc.cjs)
|
|
60
|
+
- Enhanced component templates with new configuration support
|
|
61
|
+
- Improved configuration management across multiple files
|
|
62
|
+
- Updated README.md with comprehensive v2.0.4 feature documentation
|
|
63
|
+
- Enhanced comparison tables and installation instructions
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
- TypeScript duplicate export errors in index generation
|
|
67
|
+
- Simplified index.ts generation to prevent conflicts
|
|
68
|
+
- Improved configuration validation and error messages
|
|
69
|
+
- Enhanced toPascalCase to preserve existing PascalCase names
|
|
70
|
+
|
|
71
|
+
### Removed
|
|
72
|
+
- Redundant test documentation files (COMPLETE-TEST-REPORT.md, TEST-RESULTS.md, TESTING-SUMMARY.md)
|
|
73
|
+
- Deprecated ESLint configuration format
|
|
74
|
+
- Outdated package dependencies reducing bundle size
|
|
75
|
+
|
|
76
|
+
## [2.0.3] - 2024-11-11
|
|
77
|
+
|
|
78
|
+
### Added
|
|
79
|
+
- Enhanced package.json with comprehensive metadata
|
|
80
|
+
- Professional development tooling configuration
|
|
81
|
+
- Extended TypeScript support and type definitions
|
|
82
|
+
- Additional CLI aliases (`svger` shorthand)
|
|
83
|
+
- Comprehensive export map for better module resolution
|
|
84
|
+
- Development scripts for testing, linting, and formatting
|
|
85
|
+
- Documentation generation scripts
|
|
86
|
+
- Comprehensive testing suite with unified export pattern
|
|
87
|
+
|
|
88
|
+
### Changed
|
|
89
|
+
- Improved package description with full feature list
|
|
90
|
+
- Enhanced keywords for better discoverability
|
|
91
|
+
- Updated contributor information with roles
|
|
92
|
+
- Expanded file inclusion patterns
|
|
93
|
+
- More comprehensive engine requirements
|
|
94
|
+
|
|
95
|
+
### Fixed
|
|
96
|
+
- Package metadata completeness
|
|
97
|
+
- Export definitions for better tree-shaking
|
|
98
|
+
- Module resolution issues
|
|
99
|
+
- Native module file path resolution error
|
|
100
|
+
|
|
101
|
+
### Removed
|
|
102
|
+
- Unnecessary test folders and configuration files
|
|
103
|
+
- Redundant package configurations
|
|
104
|
+
|
|
105
|
+
## [2.0.2] - 2024-11-01
|
|
106
|
+
|
|
107
|
+
### Added
|
|
108
|
+
- Multi-framework support (React, Vue, Angular, Svelte, Solid, Lit, Preact, Vanilla)
|
|
109
|
+
- Auto-generated index.ts exports with tree-shaking support
|
|
110
|
+
- Responsive design system with breakpoint configurations
|
|
111
|
+
- Theme support (light/dark/auto) with CSS variables
|
|
112
|
+
- File locking mechanism for protecting critical files
|
|
113
|
+
- Performance optimization engine with parallel processing
|
|
114
|
+
|
|
115
|
+
### Changed
|
|
116
|
+
- Complete rewrite for enterprise-grade performance
|
|
117
|
+
- Zero-dependency architecture implementation
|
|
118
|
+
- 85% performance improvement over traditional tools (SVG processing time)
|
|
119
|
+
- TypeScript-first approach with native type generation
|
|
120
|
+
|
|
121
|
+
### Removed
|
|
122
|
+
- Legacy dependencies reducing package size by 89%
|
|
123
|
+
- Single-framework limitation
|
|
124
|
+
- Dependency-heavy build processes
|
|
125
|
+
|
|
126
|
+
## [2.0.0] - 2024-10-30
|
|
127
|
+
|
|
128
|
+
### Added
|
|
129
|
+
- Complete multi-framework support for all 8 UI frameworks
|
|
130
|
+
- Enhanced CLI commands with comprehensive options
|
|
131
|
+
- Open source project files (CODE_OF_CONDUCT, LICENSE, CONTRIBUTING)
|
|
132
|
+
- Professional project structure and documentation
|
|
133
|
+
|
|
134
|
+
### Changed
|
|
135
|
+
- Major version release with breaking changes from 1.x
|
|
136
|
+
- Enhanced README with multi-framework guide and benchmarks
|
|
137
|
+
- Consolidated project structure and test organization
|
|
138
|
+
|
|
139
|
+
### Removed
|
|
140
|
+
- node_modules folder from repository
|
|
141
|
+
- Legacy 1.x architecture and dependencies
|
|
142
|
+
|
|
143
|
+
## [1.x.x] - Legacy Versions
|
|
144
|
+
|
|
145
|
+
Please see the [releases page](https://github.com/faezemohades/svger-cli/releases) for information about 1.x versions.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Legend
|
|
150
|
+
|
|
151
|
+
- **Added** for new features
|
|
152
|
+
- **Changed** for changes in existing functionality
|
|
153
|
+
- **Deprecated** for soon-to-be removed features
|
|
154
|
+
- **Removed** for now removed features
|
|
155
|
+
- **Fixed** for any bug fixes
|
|
64
156
|
- **Security** for vulnerability fixes
|