@genesislcap/blank-app-seed 3.30.0-prerelease.2 → 3.30.0-prerelease.20

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 (92) hide show
  1. package/.genx/package.json +1 -1
  2. package/.genx/prompts/api.js +2 -9
  3. package/.genx/static.js +0 -1
  4. package/.genx/templates/react/chart.hbs +7 -3
  5. package/.genx/templates/react/component/component.column.defs.hbs +4 -2
  6. package/.genx/templates/react/component/component.create.form.hbs +2 -2
  7. package/.genx/templates/react/component/component.gridOptions.hbs +4 -2
  8. package/.genx/templates/react/component/component.hbs +64 -27
  9. package/.genx/templates/react/component/component.index.hbs +1 -1
  10. package/.genx/templates/react/component/component.update.form.hbs +1 -1
  11. package/.genx/templates/react/entityManager.hbs +62 -49
  12. package/.genx/templates/react/form.hbs +7 -3
  13. package/.genx/templates/react/grid.hbs +16 -10
  14. package/.genx/templates/react/route.hbs +1 -2
  15. package/.genx/templates/react/tabsLayout.hbs +5 -5
  16. package/.genx/utils/generateRoute.js +8 -7
  17. package/.genx/utils/generateTile.js +31 -16
  18. package/.genx/versions.json +3 -3
  19. package/.idea/modules.xml +6 -6
  20. package/CHANGELOG.md +126 -0
  21. package/client-tmp/angular/__mocks__/fileMock.js +1 -0
  22. package/client-tmp/angular/angular.json +0 -29
  23. package/client-tmp/angular/jest.config.js +20 -0
  24. package/client-tmp/angular/package.json +6 -6
  25. package/client-tmp/angular/src/app/layouts/default/default.layout.spec.ts +2 -2
  26. package/client-tmp/angular/src/jest.setup.ts +46 -0
  27. package/client-tmp/angular/tsconfig.app.json +1 -2
  28. package/client-tmp/angular/tsconfig.json +1 -2
  29. package/client-tmp/angular/tsconfig.spec.json +13 -7
  30. package/client-tmp/react/.babelrc +10 -0
  31. package/client-tmp/react/.eslintrc.cjs +1 -0
  32. package/client-tmp/react/jest.config.ts +15 -0
  33. package/client-tmp/react/jest.setup.ts +1 -0
  34. package/client-tmp/react/lint-css.ts +19 -0
  35. package/client-tmp/react/package.json +40 -15
  36. package/client-tmp/react/public/favicon.ico +0 -0
  37. package/client-tmp/react/public/index.html +13 -0
  38. package/client-tmp/react/src/App.tsx +95 -68
  39. package/client-tmp/react/src/components/{ErrorMessage.test.js → ErrorMessage/ErrorMessage.test.tsx} +31 -16
  40. package/client-tmp/react/src/components/ErrorMessage/{ErrorMessage.jsx → ErrorMessage.tsx} +9 -4
  41. package/client-tmp/react/src/config.ts +2 -16
  42. package/client-tmp/react/src/custom-elements.d.ts +21 -9
  43. package/client-tmp/react/src/environments/environment.prod.ts +8 -0
  44. package/client-tmp/react/src/environments/environment.ts +9 -0
  45. package/client-tmp/react/src/guards/ProtectedGuard.tsx +64 -0
  46. package/client-tmp/react/src/helpers/hasPermissionHelper.tsx +10 -0
  47. package/client-tmp/react/src/helpers/isAuthenticatedHelper.tsx +14 -0
  48. package/client-tmp/react/src/helpers/isConnectedHelper.tsx +16 -0
  49. package/client-tmp/react/src/layouts/blank/BlankLayout.tsx +1 -1
  50. package/client-tmp/react/src/layouts/default/DefaultLayout.tsx +26 -15
  51. package/client-tmp/react/src/main.tsx +21 -5
  52. package/client-tmp/react/src/pages/AuthPage/AuthPage.test.tsx +10 -0
  53. package/client-tmp/react/src/pages/AuthPage/{AuthPage.jsx → AuthPage.tsx} +3 -2
  54. package/client-tmp/react/src/pages/NotFoundPage/NotFoundPage.css +0 -0
  55. package/client-tmp/react/src/pages/NotFoundPage/NotFoundPage.tsx +14 -0
  56. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.test.tsx +17 -0
  57. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.tsx +14 -0
  58. package/client-tmp/react/src/pbc/README.md +7 -0
  59. package/client-tmp/react/src/pbc/container.tsx +44 -0
  60. package/client-tmp/react/src/pbc/elementsRenderer.tsx +40 -0
  61. package/client-tmp/react/src/pbc/utils.ts +121 -0
  62. package/client-tmp/react/src/services/store.service.ts +48 -0
  63. package/client-tmp/react/src/share/foundation-login.ts +13 -6
  64. package/client-tmp/react/src/share/genesis-components.ts +49 -23
  65. package/client-tmp/react/src/store/AuthContext.tsx +0 -2
  66. package/client-tmp/react/src/store/RoutesContext.tsx +74 -0
  67. package/client-tmp/react/src/types/LayoutName.ts +3 -0
  68. package/client-tmp/react/src/types/RouteLayouts.ts +3 -1
  69. package/client-tmp/react/src/utils/getLayoutNameByRoute.ts +5 -0
  70. package/client-tmp/react/src/utils/history.ts +4 -2
  71. package/client-tmp/react/src/utils/index.ts +2 -1
  72. package/client-tmp/react/test/e2e/fixture.ts +1 -1
  73. package/client-tmp/react/tsconfig.app.json +2 -26
  74. package/client-tmp/react/tsconfig.json +31 -8
  75. package/client-tmp/react/tsconfig.node.json +1 -1
  76. package/client-tmp/react/vite.config.ts +70 -0
  77. package/client-tmp/react/webpack.config.js +103 -0
  78. package/client-tmp/web-components/src/main/main.styles.ts +1 -1
  79. package/package.json +1 -1
  80. package/server/settings.gradle.kts +2 -2
  81. package/client-tmp/angular/karma.conf.js +0 -9
  82. package/client-tmp/angular/src/app/app.component.spec.ts +0 -23
  83. package/client-tmp/react/env.development.json +0 -3
  84. package/client-tmp/react/lint-css.js +0 -18
  85. package/client-tmp/react/src/guards/AuthGuard.tsx +0 -32
  86. package/client-tmp/react/src/guards/PermissionsGuard.tsx +0 -37
  87. package/client-tmp/react/src/index.js +0 -17
  88. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.jsx +0 -13
  89. package/client-tmp/react/src/reportWebVitals.js +0 -13
  90. package/client-tmp/react/vite.config.js +0 -59
  91. /package/client-tmp/react/src/{setupTests.js → setupTests.ts} +0 -0
  92. /package/server/{{appName}}-app/src/main/genesis/scripts/{{{appName}}-data-pipelines.kts → {{appName}}-pipelines.kts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,131 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.30.0-prerelease.20](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.19...v3.30.0-prerelease.20) (2024-10-04)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * reduce apiHost steps when using genx in prompt mode - [FUI-2207](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2207) (#343) f6ce411
9
+
10
+ ## [3.30.0-prerelease.19](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.18...v3.30.0-prerelease.19) (2024-10-03)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#354) d5b0de0
16
+
17
+ ## [3.30.0-prerelease.18](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.17...v3.30.0-prerelease.18) (2024-09-30)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 3ed1109
23
+
24
+ ## [3.30.0-prerelease.17](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.16...v3.30.0-prerelease.17) (2024-09-30)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) a324936
30
+
31
+ ## [3.30.0-prerelease.16](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.15...v3.30.0-prerelease.16) (2024-09-30)
32
+
33
+
34
+ ### Features
35
+
36
+ * add webpack builder in react (#350) 69c4c6b, closes FUI-2173 FUI-2173 FUI-2173 FUI-2157 FUI-2157 origin/ak/FUI-2173 ak/FUI-2157 FUI-2157 FUI-2157 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140 FUI-2140
37
+
38
+ ## [3.30.0-prerelease.15](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.14...v3.30.0-prerelease.15) (2024-09-26)
39
+
40
+
41
+ ### Features
42
+
43
+ * pbc support in react [FUI-2140](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2140) (#347) 4c41243, closes FUI-2173 FUI-2173 FUI-2173 FUI-2157 FUI-2157 origin/ak/FUI-2173 ak/FUI-2157 FUI-2157 FUI-2157
44
+
45
+ ## [3.30.0-prerelease.14](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.13...v3.30.0-prerelease.14) (2024-09-26)
46
+
47
+
48
+ ### Features
49
+
50
+ * replaced karma with jest in angular (#348) 805d7ec
51
+
52
+ ## [3.30.0-prerelease.13](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.12...v3.30.0-prerelease.13) (2024-09-18)
53
+
54
+
55
+ ### Bug Fixes
56
+
57
+ * update --nav-height value - [FUI-2207](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2207) (#345) 83894b1
58
+
59
+ ## [3.30.0-prerelease.12](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.11...v3.30.0-prerelease.12) (2024-09-18)
60
+
61
+
62
+ ### Bug Fixes
63
+
64
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) d7eab5a
65
+
66
+ ## [3.30.0-prerelease.11](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.10...v3.30.0-prerelease.11) (2024-09-18)
67
+
68
+
69
+ ### Bug Fixes
70
+
71
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) eabf8c7
72
+
73
+ ## [3.30.0-prerelease.10](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.9...v3.30.0-prerelease.10) (2024-09-13)
74
+
75
+
76
+ ### Bug Fixes
77
+
78
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#342) d255814
79
+
80
+ ## [3.30.0-prerelease.9](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.8...v3.30.0-prerelease.9) (2024-09-12)
81
+
82
+
83
+ ### Features
84
+
85
+ * integrate TypeScript support into react - [FUI-2157](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2157) (#338) ac55e1f
86
+
87
+ ## [3.30.0-prerelease.8](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.7...v3.30.0-prerelease.8) (2024-09-11)
88
+
89
+
90
+ ### Bug Fixes
91
+
92
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 09ba9a2
93
+
94
+ ## [3.30.0-prerelease.7](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.6...v3.30.0-prerelease.7) (2024-09-11)
95
+
96
+
97
+ ### Bug Fixes
98
+
99
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 5d4f8da
100
+
101
+ ## [3.30.0-prerelease.6](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.5...v3.30.0-prerelease.6) (2024-09-10)
102
+
103
+
104
+ ### Features
105
+
106
+ * product name specified with settings plugin property (#331) 082cea0
107
+
108
+ ## [3.30.0-prerelease.5](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.4...v3.30.0-prerelease.5) (2024-09-09)
109
+
110
+
111
+ ### Bug Fixes
112
+
113
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#341) 1d38563
114
+
115
+ ## [3.30.0-prerelease.4](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.3...v3.30.0-prerelease.4) (2024-09-06)
116
+
117
+
118
+ ### Features
119
+
120
+ * add unit tests - [FUI-2173](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2173) (#332) a4168f3
121
+
122
+ ## [3.30.0-prerelease.3](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.2...v3.30.0-prerelease.3) (2024-09-06)
123
+
124
+
125
+ ### Bug Fixes
126
+
127
+ * update GSF and Auth dependency versions [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#336) d5d69e6
128
+
3
129
  ## [3.30.0-prerelease.2](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.1...v3.30.0-prerelease.2) (2024-09-06)
4
130
 
5
131
 
@@ -0,0 +1 @@
1
+ module.exports = 'test-file-stub';
@@ -90,35 +90,6 @@
90
90
  "buildTarget": "{{pkgName}}:build"
91
91
  }
92
92
  },
93
- "test": {
94
- "builder": "@angular-builders/custom-webpack:karma",
95
- "configurations": {
96
- "production": {
97
- "customWebpackConfig": {
98
- "path": "./webpack.prod.config.js",
99
- "mergeStrategies": {
100
- "externals": "replace"
101
- }
102
- }
103
- },
104
- "development": {
105
- "customWebpackConfig": {
106
- "path": "./webpack.dev.config.js",
107
- "mergeStrategies": {
108
- "externals": "replace"
109
- }
110
- }
111
- }
112
- },
113
- "defaultConfiguration": "development",
114
- "options": {
115
- "polyfills": ["zone.js", "zone.js/testing"],
116
- "tsConfig": "tsconfig.spec.json",
117
- "assets": ["src/favicon.ico", "src/assets"],
118
- "styles": ["src/styles/styles.css"],
119
- "scripts": []
120
- }
121
- },
122
93
  "lint": {
123
94
  "builder": "@angular-eslint/builder:lint",
124
95
  "options": {
@@ -0,0 +1,20 @@
1
+ const { pathsToModuleNameMapper } = require('ts-jest');
2
+ const { compilerOptions } = require('./tsconfig');
3
+
4
+ module.exports = {
5
+ preset: 'jest-preset-angular',
6
+ roots: ['<rootDir>/src/'],
7
+ testMatch: ['**/+(*.)+(spec).+(ts)'],
8
+ setupFilesAfterEnv: ['<rootDir>/src/jest.setup.ts'],
9
+ collectCoverage: true,
10
+ coverageReporters: ['html'],
11
+ coverageDirectory: 'coverage/my-app',
12
+ transformIgnorePatterns: [
13
+ 'node_modules/(?!(@genesislcap/*|consola|@angular|@microsoft|exenv-es6|uuid))',
14
+ ],
15
+ moduleNameMapper: {
16
+ ...pathsToModuleNameMapper(compilerOptions.paths || {}, { prefix: '<rootDir>/' }),
17
+ '\\.(jpg|jpeg|png|gif|svg)$': '<rootDir>/src/__mocks__/fileMock.js',
18
+ '\\.(css)$': 'identity-obj-proxy',
19
+ },
20
+ };
@@ -27,7 +27,7 @@
27
27
  "lint:fix": "genx lint --fix",
28
28
  "lint:eslint": "genx lint -l eslint --profile",
29
29
  "lint:stylelint": "node lint-css.js",
30
- "test": "ng test",
30
+ "test": "jest",
31
31
  "test:e2e": "genx test --e2e",
32
32
  "test:e2e:debug": "genx test --e2e --debug",
33
33
  "test:e2e:ui": "genx test --e2e --interactive",
@@ -54,14 +54,14 @@
54
54
  "@genesislcap/genx": "{{versions.UI}}",
55
55
  "@genesislcap/build-kit": "{{versions.UI}}",
56
56
  "@types/jasmine": "~5.1.0",
57
+ "@types/jest": "^29.5.13",
57
58
  "@types/numeral": "^2.0.5",
58
59
  "file-loader": "^6.2.0",
59
60
  "jasmine-core": "~5.1.0",
60
- "karma": "~6.4.0",
61
- "karma-chrome-launcher": "~3.2.0",
62
- "karma-coverage": "~2.2.0",
63
- "karma-jasmine": "~5.1.0",
64
- "karma-jasmine-html-reporter": "~2.1.0",
61
+ "jest": "^29.7.0",
62
+ "jest-environment-jsdom": "^29.7.0",
63
+ "jest-preset-angular": "^14.2.4",
64
+ "jest-transform-stub": "^2.0.0",
65
65
  "svg-url-loader": "^8.0.0",
66
66
  "typescript": "~5.4.5",
67
67
  "ts-node": "10.9.2",
@@ -4,7 +4,7 @@ import { DefaultLayoutComponent } from './default.layout';
4
4
  import { ElementRef, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
5
5
 
6
6
  class MockRouter {
7
- navigate = jasmine.createSpy('navigate');
7
+ navigate = jest.fn();
8
8
  }
9
9
 
10
10
  class MockElementRef implements ElementRef {
@@ -46,4 +46,4 @@ describe('DefaultLayoutComponent', () => {
46
46
  component.navigateAngular(path);
47
47
  expect(router.navigate).toHaveBeenCalledWith([path]);
48
48
  });
49
- });
49
+ });
@@ -0,0 +1,46 @@
1
+ import 'jest-preset-angular/setup-jest';
2
+
3
+ // Mock window.matchMedia
4
+ Object.defineProperty(window, 'matchMedia', {
5
+ writable: true,
6
+ value: (query: string) => ({
7
+ matches: false,
8
+ media: query,
9
+ onchange: null,
10
+ addListener: jest.fn(), // Deprecated
11
+ removeListener: jest.fn(), // Deprecated
12
+ addEventListener: jest.fn(),
13
+ removeEventListener: jest.fn(),
14
+ dispatchEvent: jest.fn(),
15
+ }),
16
+ });
17
+
18
+ // Mock BroadcastChannel
19
+ class MockBroadcastChannel {
20
+ name: string;
21
+ onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null = null;
22
+ onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null = null;
23
+
24
+ constructor(name: string) {
25
+ this.name = name;
26
+ }
27
+
28
+ postMessage(message: any) {
29
+ if (this.onmessage) {
30
+ this.onmessage({ data: message } as MessageEvent);
31
+ }
32
+ }
33
+
34
+ close() {}
35
+
36
+ addEventListener() {}
37
+ removeEventListener() {}
38
+ dispatchEvent() {
39
+ return false;
40
+ }
41
+ }
42
+
43
+ Object.defineProperty(window, 'BroadcastChannel', {
44
+ writable: true,
45
+ value: MockBroadcastChannel,
46
+ });
@@ -1,9 +1,8 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
1
  {
3
2
  "extends": "./tsconfig.json",
4
3
  "compilerOptions": {
5
4
  "outDir": "./out-tsc/app",
6
- "types": ["node"],
5
+ "types": ["node"]
7
6
  },
8
7
  "files": [
9
8
  "src/main.ts"
@@ -1,4 +1,3 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
1
  {
3
2
  "compileOnSave": false,
4
3
  "compilerOptions": {
@@ -23,7 +22,7 @@
23
22
  "ES2022",
24
23
  "dom"
25
24
  ],
26
- "resolveJsonModule": true,
25
+ "resolveJsonModule": true
27
26
  },
28
27
  "angularCompilerOptions": {
29
28
  "enableI18nLegacyMessageIdFormat": false,
@@ -1,15 +1,21 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
1
  {
3
2
  "extends": "./tsconfig.json",
4
3
  "compilerOptions": {
4
+ "module": "ES2022",
5
+ "target": "ES2022",
5
6
  "outDir": "./out-tsc/spec",
6
7
  "types": [
7
- "jasmine"
8
- ]
8
+ "jest"
9
+ ],
10
+ "esModuleInterop": true,
11
+ "emitDecoratorMetadata": true,
12
+ "resolveJsonModule": true
9
13
  },
14
+ "files": [
15
+ "src/jest.setup.ts",
16
+ ],
10
17
  "include": [
11
- "src/**/*.d.ts",
12
- "src/pbc/**/*.ts",
13
- "src/**/*.spec.ts"
18
+ "src/**/*.spec.ts",
19
+ "src/**/*.d.ts"
14
20
  ]
15
- }
21
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "presets": [
3
+ "@babel/preset-env",
4
+ "@babel/preset-react",
5
+ "@babel/preset-typescript"
6
+ ],
7
+ "plugins": [
8
+ "react-require"
9
+ ]
10
+ }
@@ -10,6 +10,7 @@ module.exports = {
10
10
  parser: '@typescript-eslint/parser',
11
11
  plugins: ['react-refresh'],
12
12
  rules: {
13
+ '@typescript-eslint/no-explicit-any': 'off',
13
14
  '@typescript-eslint/no-unused-vars': 'off',
14
15
  '@typescript-eslint/no-var-requires': 'off',
15
16
  'react-refresh/only-export-components': [
@@ -0,0 +1,15 @@
1
+ import type { Config } from '@jest/types';
2
+
3
+ const config: Config.InitialOptions = {
4
+ testEnvironment: 'jsdom',
5
+ moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx'],
6
+ transform: {
7
+ '^.+\\.jsx?$': 'babel-jest',
8
+ '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.app.json' }],
9
+ },
10
+ setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
11
+ testMatch: ["**/?(*.)+(test).[jt]s?(x)"],
12
+ watchPathIgnorePatterns: ["<rootDir>/node_modules/", "<rootDir>/dist/"],
13
+ };
14
+
15
+ export default config;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,19 @@
1
+ import { execSync } from 'child_process';
2
+ import glob from 'glob';
3
+ import path from 'path';
4
+
5
+ const cssFiles: string[] = glob.sync(path.join(__dirname, '**/*.css'));
6
+
7
+ if (cssFiles.length === 0) {
8
+ console.log('No CSS files found.');
9
+ process.exit(0);
10
+ }
11
+
12
+ const command: string = `genx lint -l stylelint ${cssFiles.join(' ')}`;
13
+
14
+ try {
15
+ execSync(command, { stdio: 'inherit' });
16
+ } catch (error) {
17
+ console.error('Error running stylelint:', error);
18
+ process.exit(1);
19
+ }
@@ -6,25 +6,28 @@
6
6
  "baseline": "npm run clean && npm run bootstrap",
7
7
  "bootstrap": "npm i --legacy-peer-deps",
8
8
  "bootstrap:ci": "npm ci --no-fund --no-audit",
9
- "build": "vite build",
10
9
  "build:stats": "npm run build --stats-json",
11
10
  "clean": "genx clean dist node_modules",
12
- "dev": "vite",
11
+ "dev": "webpack serve --mode development",
12
+ "build": "webpack --mode production",
13
+ "stats": "webpack --mode production --json > stats.json",
14
+ "build:vite": "vite build",
15
+ "dev:vite": "vite build && vite preview",
13
16
  "dev:docker": "npm run dev -- --host 0.0.0.0",
14
17
  "dev:no-open": "NO_OPEN=true npm run dev",
15
18
  "dev:intellij": "npm run dev",
16
19
  "dev:https": "HTTPS=true npm run dev",
17
20
  "dsconfig": "dsconfig --path src/styles/design-tokens.json",
18
- "lint": "eslint src/**/*.js src/**/*.jsx",
19
- "lint:fix": "eslint src/**/*.js src/**/*.jsx --fix",
21
+ "lint": "eslint src/**/*.ts src/**/*.tsx",
22
+ "lint:fix": "eslint src/**/*.ts src/**/*.tsx --fix",
20
23
  "lint:eslint": "npm lint",
21
- "lint:stylelint": "node lint-css.js",
22
- "test": "genx test",
24
+ "lint:stylelint": "npx ts-node lint-css.ts",
25
+ "test": "jest",
26
+ "test:coverage": "jest --coverage",
27
+ "test:unit:watch": "jest --watchAll",
23
28
  "test:e2e": "genx test --e2e",
24
29
  "test:e2e:debug": "genx test --e2e --debug",
25
- "test:e2e:ui": "genx test --e2e --interactive",
26
- "test:coverage": "genx test --no-watch --coverage",
27
- "test:unit:watch": "genx test --watch"
30
+ "test:e2e:ui": "genx test --e2e --interactive"
28
31
  },
29
32
  "dependencies": {
30
33
  "@ag-grid-community/client-side-row-model": "29.2.0",
@@ -33,24 +36,32 @@
33
36
  "@ag-grid-enterprise/core": "29.2.0",
34
37
  "@ag-grid-enterprise/row-grouping": "29.2.0",
35
38
  "@ag-grid-enterprise/server-side-row-model": "29.2.0",
39
+ "@genesislcap/foundation-comms": "{{versions.UI}}",
40
+ "@genesislcap/foundation-entity-management": "{{versions.UI}}",
36
41
  {{#if FDC3.includeDependencies}}
37
42
  "@genesislcap/foundation-fdc3": "{{versions.UI}}",
38
43
  {{/if}}
39
- "@genesislcap/foundation-comms": "{{versions.UI}}",
40
- "@genesislcap/foundation-login": "{{versions.UI}}",
41
- "@genesislcap/foundation-entity-management": "{{versions.UI}}",
42
44
  "@genesislcap/foundation-header": "{{versions.UI}}",
45
+ "@genesislcap/foundation-layout": "{{versions.UI}}",
46
+ "@genesislcap/foundation-logger": "{{versions.UI}}",
47
+ "@genesislcap/foundation-login": "{{versions.UI}}",
48
+ "@genesislcap/foundation-shell": "{{versions.UI}}",
43
49
  "@genesislcap/foundation-ui": "{{versions.UI}}",
50
+ "@genesislcap/foundation-utils": "{{versions.UI}}",
44
51
  "@genesislcap/rapid-design-system": "{{versions.UI}}",
45
52
  "@genesislcap/rapid-grid-pro": "{{versions.UI}}",
46
- "@genesislcap/foundation-layout": "{{versions.UI}}",
53
+ "@genesislcap/web-core": "{{versions.UI}}",
47
54
  "@genesislcap/g2plot-chart": "{{versions.UI}}",
48
55
  "history": "^5.3.0",
49
56
  "react": "^19.0.0-beta-94eed63c49-20240425",
50
57
  "react-dom": "^19.0.0-beta-94eed63c49-20240425",
51
- "react-router-dom": "6.24.1"
58
+ "react-router-dom": "6.24.1",
59
+ "web-vitals": "^2.1.4"
52
60
  },
53
61
  "devDependencies": {
62
+ "@babel/core": "^7.25.2",
63
+ "@babel/preset-env": "^7.25.4",
64
+ "@babel/preset-react": "^7.24.7",
54
65
  "@genesislcap/design-system-configurator": "{{versions.UI}}",
55
66
  "@genesislcap/eslint-config": "{{versions.UI}}",
56
67
  "@genesislcap/prettier-config": "{{versions.UI}}",
@@ -60,17 +71,31 @@
60
71
  "@testing-library/dom": "^10.4.0",
61
72
  "@testing-library/jest-dom": "^6.5.0",
62
73
  "@testing-library/react": "^16.0.0",
74
+ "@types/css-modules": "^1.0.5",
75
+ "@types/jest": "^29.5.12",
63
76
  "@types/node": "^20.14.10",
64
77
  "@types/react": "npm:types-react@alpha",
65
78
  "@types/react-dom": "npm:types-react-dom@alpha",
66
79
  "@typescript-eslint/eslint-plugin": "^7.13.1",
67
80
  "@typescript-eslint/parser": "^7.13.1",
68
81
  "@vitejs/plugin-react": "^4.3.1",
82
+ "babel-loader": "^9.2.1",
83
+ "babel-plugin-react-require": "^4.0.3",
84
+ "dotenv-webpack": "^8.1.0",
69
85
  "eslint": "^8.57.0",
70
86
  "eslint-plugin-react-hooks": "^4.6.2",
71
87
  "eslint-plugin-react-refresh": "^0.4.7",
88
+ "file-loader": "^6.2.0",
89
+ "jest": "^29.7.0",
90
+ "jest-environment-jsdom": "^29.7.0",
91
+ "ts-jest": "^29.2.5",
92
+ "ts-node": "^10.9.2",
72
93
  "typescript": "^5.2.2",
73
- "vite": "^5.3.1"
94
+ "vite": "^5.3.1",
95
+ "vite-plugin-tsconfig-paths": "^1.4.1",
96
+ "webpack": "^5.94.0",
97
+ "webpack-cli": "^5.1.4",
98
+ "webpack-dev-server": "^5.1.0"
74
99
  },
75
100
  "overrides": {
76
101
  "@types/react": "npm:types-react@alpha",
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/x-icon" href="favicon.ico">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>{{capitalCase appName}}</title>
8
+ </head>
9
+ <body>
10
+ <div id="root"></div>
11
+ <script src="/bundle.js"></script>
12
+ </body>
13
+ </html>