@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.
Files changed (95) hide show
  1. package/.rush/temp/5fc90bc7c2ccf812114ea099111568e5429be2a2.tar.log +15 -0
  2. package/.rush/temp/chunked-rush-logs/ts-res-browser.build.chunks.jsonl +35 -0
  3. package/.rush/temp/operation/build/all.log +35 -0
  4. package/.rush/temp/operation/build/log-chunks.jsonl +35 -0
  5. package/.rush/temp/operation/build/state.json +3 -0
  6. package/.rush/temp/shrinkwrap-deps.json +1217 -0
  7. package/README.md +95 -0
  8. package/TS_RES_BROWSER_PLAN.md +689 -0
  9. package/babel.config.js +17 -0
  10. package/config/jest.config.json +13 -0
  11. package/config/rig.json +16 -0
  12. package/dist/bundle.js +2 -0
  13. package/dist/bundle.js.LICENSE.txt +62 -0
  14. package/dist/index.html +1 -0
  15. package/package.json +78 -0
  16. package/postcss.config.js +3 -0
  17. package/public/index.html +15 -0
  18. package/rush-logs/ts-res-browser.build.cache.log +3 -0
  19. package/rush-logs/ts-res-browser.build.log +35 -0
  20. package/src/App.tsx +153 -0
  21. package/src/cli.ts +44 -0
  22. package/src/components/common/FileImporter.tsx +138 -0
  23. package/src/components/common/NavigationWarningModal.tsx +62 -0
  24. package/src/components/layout/AppLayout.tsx +46 -0
  25. package/src/components/layout/Header.tsx +22 -0
  26. package/src/components/layout/MessagesWindow.tsx +108 -0
  27. package/src/components/layout/Sidebar.tsx +92 -0
  28. package/src/components/tools/CompiledBrowser.tsx +949 -0
  29. package/src/components/tools/ConfigurationTool.tsx +1402 -0
  30. package/src/components/tools/FilterTool.tsx +1027 -0
  31. package/src/components/tools/ImportTool.tsx +246 -0
  32. package/src/components/tools/ResolutionViewer.tsx +1672 -0
  33. package/src/components/tools/SourceBrowser.tsx +496 -0
  34. package/src/hooks/useAppState.ts +107 -0
  35. package/src/hooks/useFileImport.ts +86 -0
  36. package/src/hooks/useNavigationWarning.ts +67 -0
  37. package/src/hooks/useResourceManager.ts +244 -0
  38. package/src/index.css +38 -0
  39. package/src/main.tsx +16 -0
  40. package/src/types/app.ts +62 -0
  41. package/src/types/fileSystemAccess.d.ts +94 -0
  42. package/src/utils/browserFileTreeAccessors.ts +245 -0
  43. package/src/utils/fileImport.ts +334 -0
  44. package/src/utils/filterResources.ts +677 -0
  45. package/src/utils/tsResIntegration.ts +467 -0
  46. package/tailwind.config.js +21 -0
  47. package/test-data/README.md +184 -0
  48. package/test-data/config-variations/README.md +64 -0
  49. package/test-data/config-variations/composition-terminology.json +112 -0
  50. package/test-data/config-variations/enterprise-complex.json +129 -0
  51. package/test-data/config-variations/gaming-app.json +87 -0
  52. package/test-data/config-variations/high-priority-language.json +65 -0
  53. package/test-data/config-variations/minimal-basic.json +37 -0
  54. package/test-data/config-variations/qualifier-default-values.json +71 -0
  55. package/test-data/config-variations/territory-first.json +68 -0
  56. package/test-data/config-variations/territory-hierarchy-test.json +31 -0
  57. package/test-data/config-variations/territory-hierarchy-unconstrained.json +32 -0
  58. package/test-data/default-matching-test/greeting.res.json +83 -0
  59. package/test-data/default-matching-test/only-defaults.res.json +48 -0
  60. package/test-data/sample-project/package.json +27 -0
  61. package/test-data/sample-project/src/resources/app-config.json +27 -0
  62. package/test-data/sample-project/src/resources/app.json +177 -0
  63. package/test-data/sample-project/src/resources/config/app.env=development.json +21 -0
  64. package/test-data/sample-project/src/resources/config/app.json +21 -0
  65. package/test-data/sample-project/src/resources/config/app.platform=mobile.json +23 -0
  66. package/test-data/sample-project/src/resources/feature-flags.json +23 -0
  67. package/test-data/sample-project/src/resources/home=CA/common.json +16 -0
  68. package/test-data/sample-project/src/resources/images/density=hdpi.json +29 -0
  69. package/test-data/sample-project/src/resources/images/home.json +29 -0
  70. package/test-data/sample-project/src/resources/images/logout.json +14 -0
  71. package/test-data/sample-project/src/resources/images/settings.json +14 -0
  72. package/test-data/sample-project/src/resources/images/ui-icons.json +29 -0
  73. package/test-data/sample-project/src/resources/images/user.density=hdpi.json +14 -0
  74. package/test-data/sample-project/src/resources/images/user.json +14 -0
  75. package/test-data/sample-project/src/resources/lang=en-US/common.json +15 -0
  76. package/test-data/sample-project/src/resources/language=en-CA/ui-terms.json +19 -0
  77. package/test-data/sample-project/src/resources/language=en-GB/ui-terms.json +30 -0
  78. package/test-data/sample-project/src/resources/language=fr-CA/ui-terms.json +25 -0
  79. package/test-data/sample-project/src/resources/language=nl-BE/ui-terms.json +17 -0
  80. package/test-data/sample-project/src/resources/region=europe/feature-flags.json +17 -0
  81. package/test-data/sample-project/src/resources/region=north-america/feature-flags.json +18 -0
  82. package/test-data/sample-project/src/resources/strings/dashboard.home=CA,language=fr.json +20 -0
  83. package/test-data/sample-project/src/resources/strings/dashboard.json +18 -0
  84. package/test-data/sample-project/src/resources/strings/dashboard.role=admin.json +23 -0
  85. package/test-data/sample-project/src/resources/strings/dashboard.role=user.json +21 -0
  86. package/test-data/sample-project/src/resources/strings/language=en-US.json +16 -0
  87. package/test-data/sample-project/src/resources/strings.json +78 -0
  88. package/test-data/sample-project/src/resources/territory=BE/app-config.json +19 -0
  89. package/test-data/sample-project/src/resources/territory=CA/app-config.json +21 -0
  90. package/test-data/sample-project/src/resources/territory=GB/app-config.json +25 -0
  91. package/test-data/sample-project/src/resources/territory=NL/app-config.json +25 -0
  92. package/test-data/sample-project/src/resources/ui-terms.json +96 -0
  93. package/test-data/sample-project/src/resources-config.json +111 -0
  94. package/tsconfig.json +27 -0
  95. package/webpack.config.js +54 -0
@@ -0,0 +1,15 @@
1
+ Start time: Mon Jul 21 2025 06:35:53 GMT+0000 (Coordinated Universal Time)
2
+ Invoking "/usr/bin/tar -c -f /home/runner/work/fgv/fgv/common/temp/build-cache/5fc90bc7c2ccf812114ea099111568e5429be2a2-dc1d0d05286fd751.temp -z --files-from=-"
3
+
4
+ ======= BEGIN PROCESS INPUT ======
5
+ .rush/temp/operation/build/all.log
6
+ .rush/temp/operation/build/log-chunks.jsonl
7
+ .rush/temp/operation/build/state.json
8
+ dist/bundle.js
9
+ dist/bundle.js.LICENSE.txt
10
+ dist/index.html
11
+ ======== END PROCESS INPUT =======
12
+ ======= BEGIN PROCESS OUTPUT =======
13
+ ======== END PROCESS OUTPUT ========
14
+
15
+ Exited with code "0"
@@ -0,0 +1,35 @@
1
+ {"kind":"O","text":"Invoking: webpack --mode production \n"}
2
+ {"kind":"O","text":"asset \u001b[1m\u001b[33mbundle.js\u001b[39m\u001b[22m \u001b[1m\u001b[33m2.31 MiB\u001b[39m\u001b[22m \u001b[1m\u001b[32m[emitted]\u001b[39m\u001b[22m \u001b[1m\u001b[32m[minimized]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[big]\u001b[39m\u001b[22m (name: main) 1 related asset\n"}
3
+ {"kind":"O","text":"asset \u001b[1m\u001b[32mindex.html\u001b[39m\u001b[22m 478 bytes \u001b[1m\u001b[32m[emitted]\u001b[39m\u001b[22m\n"}
4
+ {"kind":"O","text":"orphan modules 636 KiB \u001b[1m\u001b[33m[orphan]\u001b[39m\u001b[22m 348 modules\n"}
5
+ {"kind":"O","text":"runtime modules 1.02 KiB 6 modules\n"}
6
+ {"kind":"O","text":"modules by path \u001b[1m../../common/temp/node_modules/.pnpm/\u001b[39m\u001b[22m 2.31 MiB 846 modules\n"}
7
+ {"kind":"O","text":"modules by path \u001b[1m../../libraries/\u001b[39m\u001b[22m 2.23 MiB\n"}
8
+ {"kind":"O","text":" javascript modules 1.4 MiB 312 modules\n"}
9
+ {"kind":"O","text":" json modules 849 KiB 4 modules\n"}
10
+ {"kind":"O","text":"optional modules 60 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m\n"}
11
+ {"kind":"O","text":" \u001b[1mbuffer (ignored)\u001b[39m\u001b[22m 15 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
12
+ {"kind":"O","text":" \u001b[1mcrypto (ignored)\u001b[39m\u001b[22m 15 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
13
+ {"kind":"O","text":" \u001b[1mbuffer (ignored)\u001b[39m\u001b[22m 15 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
14
+ {"kind":"O","text":" \u001b[1mvm (ignored)\u001b[39m\u001b[22m 15 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
15
+ {"kind":"O","text":"modules by path \u001b[1m./src/\u001b[39m\u001b[22m 362 KiB\n"}
16
+ {"kind":"O","text":" \u001b[1m./src/main.tsx + 47 modules\u001b[39m\u001b[22m 327 KiB \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
17
+ {"kind":"O","text":" ../../common/temp/node_modules/.pnpm/css-loader@7.1.2_webpack@5.100.1/node_modules/css-loader/dist/cjs.js!../../common/temp/node_modules/.pnpm/postcss-loader@8.1.1_postcss@8.5.6_typescript@5.8.3_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js!\u001b[1m./src/index.css\u001b[39m\u001b[22m 35.6 KiB \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
18
+ {"kind":"O","text":"+ 14 modules\n"}
19
+ {"kind":"O","text":"\n"}
20
+ {"kind":"O","text":"\u001b[1m\u001b[33mWARNING\u001b[39m\u001b[22m in \u001b[1masset size limit: The following asset(s) exceed the recommended size limit (244 KiB).\n"}
21
+ {"kind":"O","text":"This can impact web performance.\n"}
22
+ {"kind":"O","text":"Assets: \n"}
23
+ {"kind":"O","text":" bundle.js (2.31 MiB)\u001b[39m\u001b[22m\n"}
24
+ {"kind":"O","text":"\n"}
25
+ {"kind":"O","text":"\u001b[1m\u001b[33mWARNING\u001b[39m\u001b[22m in \u001b[1mentrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.\n"}
26
+ {"kind":"O","text":"Entrypoints:\n"}
27
+ {"kind":"O","text":" main (2.31 MiB)\n"}
28
+ {"kind":"O","text":" bundle.js\n"}
29
+ {"kind":"O","text":"\u001b[39m\u001b[22m\n"}
30
+ {"kind":"O","text":"\n"}
31
+ {"kind":"O","text":"\u001b[1m\u001b[33mWARNING\u001b[39m\u001b[22m in \u001b[1mwebpack performance recommendations: \n"}
32
+ {"kind":"O","text":"You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.\n"}
33
+ {"kind":"O","text":"For more info visit https://webpack.js.org/guides/code-splitting/\u001b[39m\u001b[22m\n"}
34
+ {"kind":"O","text":"\n"}
35
+ {"kind":"O","text":"webpack 5.100.1 compiled with \u001b[1m\u001b[33m3 warnings\u001b[39m\u001b[22m in 19176 ms\n"}
@@ -0,0 +1,35 @@
1
+ Invoking: webpack --mode production
2
+ asset bundle.js 2.31 MiB [emitted] [minimized] [big] (name: main) 1 related asset
3
+ asset index.html 478 bytes [emitted]
4
+ orphan modules 636 KiB [orphan] 348 modules
5
+ runtime modules 1.02 KiB 6 modules
6
+ modules by path ../../common/temp/node_modules/.pnpm/ 2.31 MiB 846 modules
7
+ modules by path ../../libraries/ 2.23 MiB
8
+ javascript modules 1.4 MiB 312 modules
9
+ json modules 849 KiB 4 modules
10
+ optional modules 60 bytes [optional]
11
+ buffer (ignored) 15 bytes [optional] [built] [code generated]
12
+ crypto (ignored) 15 bytes [optional] [built] [code generated]
13
+ buffer (ignored) 15 bytes [optional] [built] [code generated]
14
+ vm (ignored) 15 bytes [optional] [built] [code generated]
15
+ modules by path ./src/ 362 KiB
16
+ ./src/main.tsx + 47 modules 327 KiB [built] [code generated]
17
+ ../../common/temp/node_modules/.pnpm/css-loader@7.1.2_webpack@5.100.1/node_modules/css-loader/dist/cjs.js!../../common/temp/node_modules/.pnpm/postcss-loader@8.1.1_postcss@8.5.6_typescript@5.8.3_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js!./src/index.css 35.6 KiB [built] [code generated]
18
+ + 14 modules
19
+
20
+ WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
21
+ This can impact web performance.
22
+ Assets:
23
+ bundle.js (2.31 MiB)
24
+
25
+ WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
26
+ Entrypoints:
27
+ main (2.31 MiB)
28
+ bundle.js
29
+
30
+
31
+ WARNING in webpack performance recommendations:
32
+ You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
33
+ For more info visit https://webpack.js.org/guides/code-splitting/
34
+
35
+ webpack 5.100.1 compiled with 3 warnings in 19176 ms
@@ -0,0 +1,35 @@
1
+ {"kind":"O","text":"Invoking: webpack --mode production \n"}
2
+ {"kind":"O","text":"asset \u001b[1m\u001b[33mbundle.js\u001b[39m\u001b[22m \u001b[1m\u001b[33m2.31 MiB\u001b[39m\u001b[22m \u001b[1m\u001b[32m[emitted]\u001b[39m\u001b[22m \u001b[1m\u001b[32m[minimized]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[big]\u001b[39m\u001b[22m (name: main) 1 related asset\n"}
3
+ {"kind":"O","text":"asset \u001b[1m\u001b[32mindex.html\u001b[39m\u001b[22m 478 bytes \u001b[1m\u001b[32m[emitted]\u001b[39m\u001b[22m\n"}
4
+ {"kind":"O","text":"orphan modules 636 KiB \u001b[1m\u001b[33m[orphan]\u001b[39m\u001b[22m 348 modules\n"}
5
+ {"kind":"O","text":"runtime modules 1.02 KiB 6 modules\n"}
6
+ {"kind":"O","text":"modules by path \u001b[1m../../common/temp/node_modules/.pnpm/\u001b[39m\u001b[22m 2.31 MiB 846 modules\n"}
7
+ {"kind":"O","text":"modules by path \u001b[1m../../libraries/\u001b[39m\u001b[22m 2.23 MiB\n"}
8
+ {"kind":"O","text":" javascript modules 1.4 MiB 312 modules\n"}
9
+ {"kind":"O","text":" json modules 849 KiB 4 modules\n"}
10
+ {"kind":"O","text":"optional modules 60 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m\n"}
11
+ {"kind":"O","text":" \u001b[1mbuffer (ignored)\u001b[39m\u001b[22m 15 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
12
+ {"kind":"O","text":" \u001b[1mcrypto (ignored)\u001b[39m\u001b[22m 15 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
13
+ {"kind":"O","text":" \u001b[1mbuffer (ignored)\u001b[39m\u001b[22m 15 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
14
+ {"kind":"O","text":" \u001b[1mvm (ignored)\u001b[39m\u001b[22m 15 bytes \u001b[1m\u001b[33m[optional]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
15
+ {"kind":"O","text":"modules by path \u001b[1m./src/\u001b[39m\u001b[22m 362 KiB\n"}
16
+ {"kind":"O","text":" \u001b[1m./src/main.tsx + 47 modules\u001b[39m\u001b[22m 327 KiB \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
17
+ {"kind":"O","text":" ../../common/temp/node_modules/.pnpm/css-loader@7.1.2_webpack@5.100.1/node_modules/css-loader/dist/cjs.js!../../common/temp/node_modules/.pnpm/postcss-loader@8.1.1_postcss@8.5.6_typescript@5.8.3_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js!\u001b[1m./src/index.css\u001b[39m\u001b[22m 35.6 KiB \u001b[1m\u001b[33m[built]\u001b[39m\u001b[22m \u001b[1m\u001b[33m[code generated]\u001b[39m\u001b[22m\n"}
18
+ {"kind":"O","text":"+ 14 modules\n"}
19
+ {"kind":"O","text":"\n"}
20
+ {"kind":"O","text":"\u001b[1m\u001b[33mWARNING\u001b[39m\u001b[22m in \u001b[1masset size limit: The following asset(s) exceed the recommended size limit (244 KiB).\n"}
21
+ {"kind":"O","text":"This can impact web performance.\n"}
22
+ {"kind":"O","text":"Assets: \n"}
23
+ {"kind":"O","text":" bundle.js (2.31 MiB)\u001b[39m\u001b[22m\n"}
24
+ {"kind":"O","text":"\n"}
25
+ {"kind":"O","text":"\u001b[1m\u001b[33mWARNING\u001b[39m\u001b[22m in \u001b[1mentrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.\n"}
26
+ {"kind":"O","text":"Entrypoints:\n"}
27
+ {"kind":"O","text":" main (2.31 MiB)\n"}
28
+ {"kind":"O","text":" bundle.js\n"}
29
+ {"kind":"O","text":"\u001b[39m\u001b[22m\n"}
30
+ {"kind":"O","text":"\n"}
31
+ {"kind":"O","text":"\u001b[1m\u001b[33mWARNING\u001b[39m\u001b[22m in \u001b[1mwebpack performance recommendations: \n"}
32
+ {"kind":"O","text":"You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.\n"}
33
+ {"kind":"O","text":"For more info visit https://webpack.js.org/guides/code-splitting/\u001b[39m\u001b[22m\n"}
34
+ {"kind":"O","text":"\n"}
35
+ {"kind":"O","text":"webpack 5.100.1 compiled with \u001b[1m\u001b[33m3 warnings\u001b[39m\u001b[22m in 19176 ms\n"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "nonCachedDurationMs": 19961.586035
3
+ }