@genesislcap/blank-app-seed 3.30.0-prerelease.2 → 3.30.0-prerelease.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.
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 +133 -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,138 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.30.0-prerelease.21](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.20...v3.30.0-prerelease.21) (2024-10-08)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#355) a33c5e8
9
+
10
+ ## [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)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * reduce apiHost steps when using genx in prompt mode - [FUI-2207](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2207) (#343) f6ce411
16
+
17
+ ## [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)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#354) d5b0de0
23
+
24
+ ## [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)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 3ed1109
30
+
31
+ ## [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)
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) a324936
37
+
38
+ ## [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)
39
+
40
+
41
+ ### Features
42
+
43
+ * 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
44
+
45
+ ## [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)
46
+
47
+
48
+ ### Features
49
+
50
+ * 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
51
+
52
+ ## [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)
53
+
54
+
55
+ ### Features
56
+
57
+ * replaced karma with jest in angular (#348) 805d7ec
58
+
59
+ ## [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)
60
+
61
+
62
+ ### Bug Fixes
63
+
64
+ * update --nav-height value - [FUI-2207](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2207) (#345) 83894b1
65
+
66
+ ## [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)
67
+
68
+
69
+ ### Bug Fixes
70
+
71
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) d7eab5a
72
+
73
+ ## [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)
74
+
75
+
76
+ ### Bug Fixes
77
+
78
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) eabf8c7
79
+
80
+ ## [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)
81
+
82
+
83
+ ### Bug Fixes
84
+
85
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#342) d255814
86
+
87
+ ## [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)
88
+
89
+
90
+ ### Features
91
+
92
+ * integrate TypeScript support into react - [FUI-2157](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2157) (#338) ac55e1f
93
+
94
+ ## [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)
95
+
96
+
97
+ ### Bug Fixes
98
+
99
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 09ba9a2
100
+
101
+ ## [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)
102
+
103
+
104
+ ### Bug Fixes
105
+
106
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 5d4f8da
107
+
108
+ ## [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)
109
+
110
+
111
+ ### Features
112
+
113
+ * product name specified with settings plugin property (#331) 082cea0
114
+
115
+ ## [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)
116
+
117
+
118
+ ### Bug Fixes
119
+
120
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#341) 1d38563
121
+
122
+ ## [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)
123
+
124
+
125
+ ### Features
126
+
127
+ * add unit tests - [FUI-2173](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2173) (#332) a4168f3
128
+
129
+ ## [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)
130
+
131
+
132
+ ### Bug Fixes
133
+
134
+ * update GSF and Auth dependency versions [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#336) d5d69e6
135
+
3
136
  ## [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
137
 
5
138
 
@@ -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>