@fgv/ts-res-browser 5.0.0-2 → 5.0.0-21
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/cli.js +132 -21
- package/dist/bundle.js +1 -1
- package/dist/bundle.js.LICENSE.txt +11 -1
- package/package.json +42 -36
- package/.rush/temp/587277bfc395406ad444e989b6c309b9698f534c.tar.log +0 -15
- package/.rush/temp/chunked-rush-logs/ts-res-browser.build.chunks.jsonl +0 -35
- package/.rush/temp/operation/build/all.log +0 -35
- package/.rush/temp/operation/build/log-chunks.jsonl +0 -35
- package/.rush/temp/operation/build/state.json +0 -3
- package/.rush/temp/shrinkwrap-deps.json +0 -1225
- package/TS_RES_BROWSER_PLAN.md +0 -689
- package/babel.config.js +0 -17
- package/config/jest.config.json +0 -13
- package/config/rig.json +0 -16
- package/postcss.config.js +0 -3
- package/public/index.html +0 -15
- package/rush-logs/ts-res-browser.build.cache.log +0 -3
- package/rush-logs/ts-res-browser.build.log +0 -35
- package/src/App.tsx +0 -274
- package/src/cli.ts +0 -44
- package/src/components/common/FileImporter.tsx +0 -143
- package/src/components/common/NavigationWarningModal.tsx +0 -62
- package/src/components/layout/AppLayout.tsx +0 -46
- package/src/components/layout/Header.tsx +0 -22
- package/src/components/layout/MessagesWindow.tsx +0 -108
- package/src/components/layout/Sidebar.tsx +0 -99
- package/src/components/tools/CompiledBrowser.tsx +0 -949
- package/src/components/tools/ConfigurationTool.tsx +0 -1405
- package/src/components/tools/FilterTool.tsx +0 -1114
- package/src/components/tools/ImportTool.tsx +0 -249
- package/src/components/tools/ResolutionViewer.tsx +0 -1672
- package/src/components/tools/SourceBrowser.tsx +0 -496
- package/src/components/tools/ZipLoader.tsx +0 -302
- package/src/hooks/useAppState.ts +0 -111
- package/src/hooks/useFileImport.ts +0 -86
- package/src/hooks/useNavigationWarning.ts +0 -67
- package/src/hooks/useResourceManager.ts +0 -295
- package/src/hooks/useUrlParams.ts +0 -56
- package/src/index.css +0 -38
- package/src/main.tsx +0 -16
- package/src/types/app.ts +0 -70
- package/src/types/fileSystemAccess.d.ts +0 -94
- package/src/utils/browserFileTreeAccessors.ts +0 -245
- package/src/utils/fileImport.ts +0 -336
- package/src/utils/fileTreeConverter.ts +0 -160
- package/src/utils/filterResources.ts +0 -677
- package/src/utils/tsResIntegration.ts +0 -467
- package/src/utils/urlParams.ts +0 -238
- package/src/utils/zip/browserZipFileTreeAccessors.ts +0 -385
- package/tailwind.config.js +0 -21
- package/test-data/README.md +0 -184
- package/test-data/config-variations/README.md +0 -64
- package/test-data/config-variations/composition-terminology.json +0 -112
- package/test-data/config-variations/enterprise-complex.json +0 -129
- package/test-data/config-variations/gaming-app.json +0 -87
- package/test-data/config-variations/high-priority-language.json +0 -65
- package/test-data/config-variations/minimal-basic.json +0 -37
- package/test-data/config-variations/qualifier-default-values.json +0 -71
- package/test-data/config-variations/territory-first.json +0 -68
- package/test-data/config-variations/territory-hierarchy-test.json +0 -31
- package/test-data/config-variations/territory-hierarchy-unconstrained.json +0 -32
- package/test-data/default-matching-test/greeting.res.json +0 -83
- package/test-data/default-matching-test/only-defaults.res.json +0 -48
- package/test-data/sample-project/package.json +0 -27
- package/test-data/sample-project/src/resources/app-config.json +0 -27
- package/test-data/sample-project/src/resources/app.json +0 -177
- package/test-data/sample-project/src/resources/config/app.env=development.json +0 -21
- package/test-data/sample-project/src/resources/config/app.json +0 -21
- package/test-data/sample-project/src/resources/config/app.platform=mobile.json +0 -23
- package/test-data/sample-project/src/resources/feature-flags.json +0 -23
- package/test-data/sample-project/src/resources/home=CA/common.json +0 -16
- package/test-data/sample-project/src/resources/images/density=hdpi.json +0 -29
- package/test-data/sample-project/src/resources/images/home.json +0 -29
- package/test-data/sample-project/src/resources/images/logout.json +0 -14
- package/test-data/sample-project/src/resources/images/settings.json +0 -14
- package/test-data/sample-project/src/resources/images/ui-icons.json +0 -29
- package/test-data/sample-project/src/resources/images/user.density=hdpi.json +0 -14
- package/test-data/sample-project/src/resources/images/user.json +0 -14
- package/test-data/sample-project/src/resources/lang=en-US/common.json +0 -15
- package/test-data/sample-project/src/resources/language=en-CA/ui-terms.json +0 -19
- package/test-data/sample-project/src/resources/language=en-GB/ui-terms.json +0 -30
- package/test-data/sample-project/src/resources/language=fr-CA/ui-terms.json +0 -25
- package/test-data/sample-project/src/resources/language=nl-BE/ui-terms.json +0 -17
- package/test-data/sample-project/src/resources/region=europe/feature-flags.json +0 -17
- package/test-data/sample-project/src/resources/region=north-america/feature-flags.json +0 -18
- package/test-data/sample-project/src/resources/strings/dashboard.home=CA,language=fr.json +0 -20
- package/test-data/sample-project/src/resources/strings/dashboard.json +0 -18
- package/test-data/sample-project/src/resources/strings/dashboard.role=admin.json +0 -23
- package/test-data/sample-project/src/resources/strings/dashboard.role=user.json +0 -21
- package/test-data/sample-project/src/resources/strings/language=en-US.json +0 -16
- package/test-data/sample-project/src/resources/strings.json +0 -78
- package/test-data/sample-project/src/resources/territory=BE/app-config.json +0 -19
- package/test-data/sample-project/src/resources/territory=CA/app-config.json +0 -21
- package/test-data/sample-project/src/resources/territory=GB/app-config.json +0 -25
- package/test-data/sample-project/src/resources/territory=NL/app-config.json +0 -25
- package/test-data/sample-project/src/resources/ui-terms.json +0 -96
- package/test-data/sample-project/src/resources-config.json +0 -111
- package/tsconfig.json +0 -27
- package/webpack.config.js +0 -60
package/cli.js
CHANGED
|
@@ -1,33 +1,121 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const { exec } = require('child_process');
|
|
3
|
+
const { exec, spawn } = require('child_process');
|
|
4
4
|
const path = require('path');
|
|
5
|
+
const fs = require('fs');
|
|
5
6
|
|
|
6
7
|
const command = process.argv[2];
|
|
7
8
|
const projectRoot = __dirname;
|
|
8
9
|
|
|
10
|
+
// Check if we have a built dist directory
|
|
11
|
+
const distPath = path.join(projectRoot, 'dist');
|
|
12
|
+
const hasBuiltFiles = fs.existsSync(distPath) && fs.existsSync(path.join(distPath, 'index.html'));
|
|
13
|
+
|
|
14
|
+
function startDevServer(port = 3000) {
|
|
15
|
+
// Check if we have webpack-cli available (needed for dev server)
|
|
16
|
+
try {
|
|
17
|
+
require.resolve('webpack-cli');
|
|
18
|
+
require.resolve('webpack-dev-server');
|
|
19
|
+
} catch (error) {
|
|
20
|
+
console.error('❌ Development server is not available in the published package.');
|
|
21
|
+
console.error('');
|
|
22
|
+
console.error('The dev server requires webpack-cli and webpack-dev-server which are');
|
|
23
|
+
console.error('not included in the published package to keep it lightweight.');
|
|
24
|
+
console.error('');
|
|
25
|
+
console.error('To use the development server:');
|
|
26
|
+
console.error('1. Clone the repository: git clone <repo-url>');
|
|
27
|
+
console.error('2. Install dependencies: rush install');
|
|
28
|
+
console.error('3. Run: rushx dev');
|
|
29
|
+
console.error('');
|
|
30
|
+
console.error('For production use, run: ts-res-browser serve');
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const packageManager = fs.existsSync(path.join(projectRoot, 'package-lock.json'))
|
|
35
|
+
? 'npm'
|
|
36
|
+
: fs.existsSync(path.join(projectRoot, 'yarn.lock'))
|
|
37
|
+
? 'yarn'
|
|
38
|
+
: 'npm';
|
|
39
|
+
|
|
40
|
+
console.log('Starting TS-RES Browser development server...');
|
|
41
|
+
console.log(`Using ${packageManager} to start server...`);
|
|
42
|
+
|
|
43
|
+
const child = spawn(packageManager, ['run', 'dev'], {
|
|
44
|
+
cwd: projectRoot,
|
|
45
|
+
stdio: 'inherit',
|
|
46
|
+
env: { ...process.env, PORT: port.toString() }
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
child.on('error', (error) => {
|
|
50
|
+
console.error(`Error starting dev server: ${error.message}`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function serveBuildFiles(port = 8080) {
|
|
56
|
+
if (!hasBuiltFiles) {
|
|
57
|
+
console.error('No built files found. Please run "ts-res-browser build" first.');
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Try to use a simple static server
|
|
62
|
+
try {
|
|
63
|
+
const handler = require('serve-handler');
|
|
64
|
+
const http = require('http');
|
|
65
|
+
|
|
66
|
+
const server = http.createServer((request, response) => {
|
|
67
|
+
return handler(request, response, {
|
|
68
|
+
public: distPath,
|
|
69
|
+
rewrites: [{ source: '**', destination: '/index.html' }]
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
server.listen(port, () => {
|
|
74
|
+
console.log(`TS-RES Browser running at http://localhost:${port}`);
|
|
75
|
+
console.log('Press Ctrl+C to stop');
|
|
76
|
+
});
|
|
77
|
+
} catch (error) {
|
|
78
|
+
// Fallback: just open the HTML file
|
|
79
|
+
console.log(`Built files available at: ${path.join(distPath, 'index.html')}`);
|
|
80
|
+
console.log('To serve the files, install a static server like: npm install -g serve');
|
|
81
|
+
console.log(`Then run: serve -s ${distPath} -p ${port}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
9
85
|
switch (command) {
|
|
10
86
|
case 'dev':
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
});
|
|
87
|
+
const devPort = process.argv[3] || process.env.PORT || 3000;
|
|
88
|
+
startDevServer(devPort);
|
|
89
|
+
break;
|
|
90
|
+
|
|
91
|
+
case 'serve':
|
|
92
|
+
case 'start':
|
|
93
|
+
const servePort = process.argv[3] || 8080;
|
|
94
|
+
serveBuildFiles(servePort);
|
|
20
95
|
break;
|
|
21
96
|
|
|
22
97
|
case 'build':
|
|
23
98
|
console.log('Building TS-RES Browser...');
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
99
|
+
const packageManager = fs.existsSync(path.join(projectRoot, 'package-lock.json')) ? 'npm' : 'npm';
|
|
100
|
+
|
|
101
|
+
const buildChild = spawn(packageManager, ['run', 'build'], {
|
|
102
|
+
cwd: projectRoot,
|
|
103
|
+
stdio: 'inherit'
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
buildChild.on('error', (error) => {
|
|
107
|
+
console.error(`Error building: ${error.message}`);
|
|
108
|
+
process.exit(1);
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
buildChild.on('close', (code) => {
|
|
112
|
+
if (code === 0) {
|
|
113
|
+
console.log('Build completed successfully!');
|
|
114
|
+
console.log('To serve the built files, run: ts-res-browser serve');
|
|
115
|
+
} else {
|
|
116
|
+
console.error(`Build failed with code ${code}`);
|
|
117
|
+
process.exit(code);
|
|
28
118
|
}
|
|
29
|
-
console.log(stdout);
|
|
30
|
-
if (stderr) console.error(stderr);
|
|
31
119
|
});
|
|
32
120
|
break;
|
|
33
121
|
|
|
@@ -35,11 +123,34 @@ switch (command) {
|
|
|
35
123
|
console.log('TS-RES Browser CLI');
|
|
36
124
|
console.log('');
|
|
37
125
|
console.log('Usage:');
|
|
38
|
-
console.log(' ts-res-browser dev
|
|
39
|
-
console.log(' ts-res-browser build
|
|
126
|
+
console.log(' ts-res-browser dev - Start development server (requires dev dependencies)');
|
|
127
|
+
console.log(' ts-res-browser build - Build for production');
|
|
128
|
+
console.log(' ts-res-browser serve - Serve built files');
|
|
129
|
+
console.log('');
|
|
130
|
+
console.log('Options:');
|
|
131
|
+
console.log(' ts-res-browser dev [port] - Start dev server on specific port');
|
|
132
|
+
console.log(' ts-res-browser serve [port] - Serve on specific port');
|
|
40
133
|
console.log('');
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
134
|
+
|
|
135
|
+
// Check if dev dependencies are available
|
|
136
|
+
let hasDevDeps = false;
|
|
137
|
+
try {
|
|
138
|
+
require.resolve('webpack-cli');
|
|
139
|
+
require.resolve('webpack-dev-server');
|
|
140
|
+
hasDevDeps = true;
|
|
141
|
+
} catch (error) {
|
|
142
|
+
// Dev dependencies not available
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (hasBuiltFiles) {
|
|
146
|
+
console.log('✅ Built files found - you can run "ts-res-browser serve"');
|
|
147
|
+
} else {
|
|
148
|
+
console.log('⚠️ No built files - run "ts-res-browser build" first');
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (!hasDevDeps) {
|
|
152
|
+
console.log('ℹ️ Development server not available in published package');
|
|
153
|
+
console.log(' Use "ts-res-browser serve" for production serving');
|
|
154
|
+
}
|
|
44
155
|
break;
|
|
45
156
|
}
|