@fgv/ts-res-browser 1.0.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.
- package/.rush/temp/5fc90bc7c2ccf812114ea099111568e5429be2a2.tar.log +15 -0
- package/.rush/temp/chunked-rush-logs/ts-res-browser.build.chunks.jsonl +35 -0
- package/.rush/temp/operation/build/all.log +35 -0
- package/.rush/temp/operation/build/log-chunks.jsonl +35 -0
- package/.rush/temp/operation/build/state.json +3 -0
- package/.rush/temp/shrinkwrap-deps.json +1217 -0
- package/README.md +95 -0
- package/TS_RES_BROWSER_PLAN.md +689 -0
- package/babel.config.js +17 -0
- package/config/jest.config.json +13 -0
- package/config/rig.json +16 -0
- package/dist/bundle.js +2 -0
- package/dist/bundle.js.LICENSE.txt +62 -0
- package/dist/index.html +1 -0
- package/package.json +78 -0
- package/postcss.config.js +3 -0
- package/public/index.html +15 -0
- package/rush-logs/ts-res-browser.build.cache.log +3 -0
- package/rush-logs/ts-res-browser.build.log +35 -0
- package/src/App.tsx +153 -0
- package/src/cli.ts +44 -0
- package/src/components/common/FileImporter.tsx +138 -0
- package/src/components/common/NavigationWarningModal.tsx +62 -0
- package/src/components/layout/AppLayout.tsx +46 -0
- package/src/components/layout/Header.tsx +22 -0
- package/src/components/layout/MessagesWindow.tsx +108 -0
- package/src/components/layout/Sidebar.tsx +92 -0
- package/src/components/tools/CompiledBrowser.tsx +949 -0
- package/src/components/tools/ConfigurationTool.tsx +1402 -0
- package/src/components/tools/FilterTool.tsx +1027 -0
- package/src/components/tools/ImportTool.tsx +246 -0
- package/src/components/tools/ResolutionViewer.tsx +1672 -0
- package/src/components/tools/SourceBrowser.tsx +496 -0
- package/src/hooks/useAppState.ts +107 -0
- package/src/hooks/useFileImport.ts +86 -0
- package/src/hooks/useNavigationWarning.ts +67 -0
- package/src/hooks/useResourceManager.ts +244 -0
- package/src/index.css +38 -0
- package/src/main.tsx +16 -0
- package/src/types/app.ts +62 -0
- package/src/types/fileSystemAccess.d.ts +94 -0
- package/src/utils/browserFileTreeAccessors.ts +245 -0
- package/src/utils/fileImport.ts +334 -0
- package/src/utils/filterResources.ts +677 -0
- package/src/utils/tsResIntegration.ts +467 -0
- package/tailwind.config.js +21 -0
- package/test-data/README.md +184 -0
- package/test-data/config-variations/README.md +64 -0
- package/test-data/config-variations/composition-terminology.json +112 -0
- package/test-data/config-variations/enterprise-complex.json +129 -0
- package/test-data/config-variations/gaming-app.json +87 -0
- package/test-data/config-variations/high-priority-language.json +65 -0
- package/test-data/config-variations/minimal-basic.json +37 -0
- package/test-data/config-variations/qualifier-default-values.json +71 -0
- package/test-data/config-variations/territory-first.json +68 -0
- package/test-data/config-variations/territory-hierarchy-test.json +31 -0
- package/test-data/config-variations/territory-hierarchy-unconstrained.json +32 -0
- package/test-data/default-matching-test/greeting.res.json +83 -0
- package/test-data/default-matching-test/only-defaults.res.json +48 -0
- package/test-data/sample-project/package.json +27 -0
- package/test-data/sample-project/src/resources/app-config.json +27 -0
- package/test-data/sample-project/src/resources/app.json +177 -0
- package/test-data/sample-project/src/resources/config/app.env=development.json +21 -0
- package/test-data/sample-project/src/resources/config/app.json +21 -0
- package/test-data/sample-project/src/resources/config/app.platform=mobile.json +23 -0
- package/test-data/sample-project/src/resources/feature-flags.json +23 -0
- package/test-data/sample-project/src/resources/home=CA/common.json +16 -0
- package/test-data/sample-project/src/resources/images/density=hdpi.json +29 -0
- package/test-data/sample-project/src/resources/images/home.json +29 -0
- package/test-data/sample-project/src/resources/images/logout.json +14 -0
- package/test-data/sample-project/src/resources/images/settings.json +14 -0
- package/test-data/sample-project/src/resources/images/ui-icons.json +29 -0
- package/test-data/sample-project/src/resources/images/user.density=hdpi.json +14 -0
- package/test-data/sample-project/src/resources/images/user.json +14 -0
- package/test-data/sample-project/src/resources/lang=en-US/common.json +15 -0
- package/test-data/sample-project/src/resources/language=en-CA/ui-terms.json +19 -0
- package/test-data/sample-project/src/resources/language=en-GB/ui-terms.json +30 -0
- package/test-data/sample-project/src/resources/language=fr-CA/ui-terms.json +25 -0
- package/test-data/sample-project/src/resources/language=nl-BE/ui-terms.json +17 -0
- package/test-data/sample-project/src/resources/region=europe/feature-flags.json +17 -0
- package/test-data/sample-project/src/resources/region=north-america/feature-flags.json +18 -0
- package/test-data/sample-project/src/resources/strings/dashboard.home=CA,language=fr.json +20 -0
- package/test-data/sample-project/src/resources/strings/dashboard.json +18 -0
- package/test-data/sample-project/src/resources/strings/dashboard.role=admin.json +23 -0
- package/test-data/sample-project/src/resources/strings/dashboard.role=user.json +21 -0
- package/test-data/sample-project/src/resources/strings/language=en-US.json +16 -0
- package/test-data/sample-project/src/resources/strings.json +78 -0
- package/test-data/sample-project/src/resources/territory=BE/app-config.json +19 -0
- package/test-data/sample-project/src/resources/territory=CA/app-config.json +21 -0
- package/test-data/sample-project/src/resources/territory=GB/app-config.json +25 -0
- package/test-data/sample-project/src/resources/territory=NL/app-config.json +25 -0
- package/test-data/sample-project/src/resources/ui-terms.json +96 -0
- package/test-data/sample-project/src/resources-config.json +111 -0
- package/tsconfig.json +27 -0
- package/webpack.config.js +54 -0
package/README.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# TS-RES Browser
|
|
2
|
+
|
|
3
|
+
A visual tool for loading, browsing, and experimenting with ts-res resources. Built as a React web application for optimal performance and modern browser capabilities.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Source Browser**: Browse and explore built resources
|
|
8
|
+
- **Compiled Browser**: Navigate compiled resource collections
|
|
9
|
+
- **Resolution Viewer**: Test resource resolution with different qualifiers
|
|
10
|
+
- **Modern UI**: Built with React, TypeScript, and Tailwind CSS
|
|
11
|
+
|
|
12
|
+
## Getting Started
|
|
13
|
+
|
|
14
|
+
### Prerequisites
|
|
15
|
+
|
|
16
|
+
- Node.js v20 or higher
|
|
17
|
+
- Rush package manager
|
|
18
|
+
|
|
19
|
+
### Installation
|
|
20
|
+
|
|
21
|
+
1. Install dependencies:
|
|
22
|
+
```bash
|
|
23
|
+
rush install
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
2. Build the project:
|
|
27
|
+
```bash
|
|
28
|
+
rushx build
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
3. Start the development server:
|
|
32
|
+
```bash
|
|
33
|
+
rushx dev
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The application will open in your browser at `http://localhost:3000`.
|
|
37
|
+
|
|
38
|
+
### Usage
|
|
39
|
+
|
|
40
|
+
1. **Import Files**: Click "Import Files" to select your ts-res project files
|
|
41
|
+
2. **Browse Resources**: Use the sidebar to navigate between different tools
|
|
42
|
+
3. **Explore**: View resource details, test resolution, and experiment with qualifiers
|
|
43
|
+
|
|
44
|
+
## Development
|
|
45
|
+
|
|
46
|
+
### Scripts
|
|
47
|
+
|
|
48
|
+
- `rushx dev` - Start development server
|
|
49
|
+
- `rushx build` - Build for production
|
|
50
|
+
- `rushx test` - Run tests
|
|
51
|
+
- `rushx clean` - Clean build artifacts
|
|
52
|
+
|
|
53
|
+
### Project Structure
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
src/
|
|
57
|
+
├── components/
|
|
58
|
+
│ ├── layout/ # Layout components
|
|
59
|
+
│ ├── tools/ # Tool-specific components
|
|
60
|
+
│ └── common/ # Shared components
|
|
61
|
+
├── hooks/ # Custom React hooks
|
|
62
|
+
├── types/ # TypeScript type definitions
|
|
63
|
+
├── utils/ # Utility functions
|
|
64
|
+
├── App.tsx # Main application component
|
|
65
|
+
└── main.tsx # Application entry point
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Technology Stack
|
|
69
|
+
|
|
70
|
+
- **React 18+** with TypeScript
|
|
71
|
+
- **Webpack** for bundling
|
|
72
|
+
- **Tailwind CSS** for styling
|
|
73
|
+
- **Heroicons** for iconography
|
|
74
|
+
- **@fgv/ts-res** for resource management
|
|
75
|
+
|
|
76
|
+
## Architecture
|
|
77
|
+
|
|
78
|
+
The application follows a component-based architecture with:
|
|
79
|
+
|
|
80
|
+
- **State Management**: React Context + useReducer
|
|
81
|
+
- **File Access**: File System Access API with fallback
|
|
82
|
+
- **Error Handling**: Result pattern from @fgv/ts-utils
|
|
83
|
+
- **Testing**: Jest with React Testing Library
|
|
84
|
+
|
|
85
|
+
## Contributing
|
|
86
|
+
|
|
87
|
+
1. Create a feature branch from `ts-res-browser`
|
|
88
|
+
2. Make your changes
|
|
89
|
+
3. Add tests for new functionality
|
|
90
|
+
4. Run tests: `rushx test`
|
|
91
|
+
5. Submit a pull request
|
|
92
|
+
|
|
93
|
+
## License
|
|
94
|
+
|
|
95
|
+
MIT License - see LICENSE file for details
|