@genesislcap/blank-app-seed 3.30.0-prerelease.3 → 3.30.0-prerelease.30

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 (111) hide show
  1. package/.genx/configure.js +5 -0
  2. package/.genx/package.json +1 -1
  3. package/.genx/prompts/api.js +2 -9
  4. package/.genx/prompts/server.js +9 -0
  5. package/.genx/prompts.js +9 -2
  6. package/.genx/static.js +1 -1
  7. package/.genx/templates/angular/component/component.hbs +12 -0
  8. package/.genx/templates/react/chart.hbs +7 -3
  9. package/.genx/templates/react/component/component.column.defs.hbs +4 -2
  10. package/.genx/templates/react/component/component.create.form.hbs +2 -2
  11. package/.genx/templates/react/component/component.gridOptions.hbs +4 -2
  12. package/.genx/templates/react/component/component.hbs +76 -27
  13. package/.genx/templates/react/component/component.index.hbs +1 -1
  14. package/.genx/templates/react/component/component.update.form.hbs +1 -1
  15. package/.genx/templates/react/entityManager.hbs +62 -49
  16. package/.genx/templates/react/form.hbs +7 -3
  17. package/.genx/templates/react/grid.hbs +16 -10
  18. package/.genx/templates/react/route.hbs +3 -3
  19. package/.genx/templates/react/tabsLayout.hbs +5 -5
  20. package/.genx/templates/web-components/component/component.hbs +12 -0
  21. package/.genx/templates/web-components/route.template.hbs +2 -2
  22. package/.genx/utils/deleteGradleWrappers.js +12 -0
  23. package/.genx/utils/generateRoute.js +9 -7
  24. package/.genx/utils/generateTile.js +31 -16
  25. package/.genx/utils/index.js +2 -0
  26. package/.genx/versions.json +3 -3
  27. package/.gitignore +3 -0
  28. package/.idea/modules.xml +6 -6
  29. package/CHANGELOG.md +189 -0
  30. package/README.md +5 -5
  31. package/client-tmp/angular/__mocks__/fileMock.js +1 -0
  32. package/client-tmp/angular/angular.json +0 -29
  33. package/client-tmp/angular/jest.config.js +20 -0
  34. package/client-tmp/angular/package.json +6 -6
  35. package/client-tmp/angular/src/app/layouts/default/default.layout.spec.ts +2 -2
  36. package/client-tmp/angular/src/jest.setup.ts +46 -0
  37. package/client-tmp/angular/tsconfig.app.json +1 -2
  38. package/client-tmp/angular/tsconfig.json +1 -2
  39. package/client-tmp/angular/tsconfig.spec.json +13 -7
  40. package/client-tmp/react/.babelrc +10 -0
  41. package/client-tmp/react/.eslintrc.cjs +1 -0
  42. package/client-tmp/react/jest.config.ts +15 -0
  43. package/client-tmp/react/jest.setup.ts +1 -0
  44. package/client-tmp/react/lint-css.ts +19 -0
  45. package/client-tmp/react/package.json +45 -17
  46. package/client-tmp/react/public/favicon.ico +0 -0
  47. package/client-tmp/react/public/index.html +13 -0
  48. package/client-tmp/react/src/App.tsx +95 -68
  49. package/client-tmp/react/src/components/{ErrorMessage.test.js → ErrorMessage/ErrorMessage.test.tsx} +31 -16
  50. package/client-tmp/react/src/components/ErrorMessage/{ErrorMessage.jsx → ErrorMessage.tsx} +9 -4
  51. package/client-tmp/react/src/config.ts +2 -16
  52. package/client-tmp/react/src/custom-elements.d.ts +21 -9
  53. package/client-tmp/react/src/environments/environment.prod.ts +8 -0
  54. package/client-tmp/react/src/environments/environment.ts +9 -0
  55. package/client-tmp/react/src/guards/ProtectedGuard.tsx +64 -0
  56. package/client-tmp/react/src/helpers/hasPermissionHelper.tsx +10 -0
  57. package/client-tmp/react/src/helpers/isAuthenticatedHelper.tsx +14 -0
  58. package/client-tmp/react/src/helpers/isConnectedHelper.tsx +16 -0
  59. package/client-tmp/react/src/layouts/blank/BlankLayout.tsx +1 -1
  60. package/client-tmp/react/src/layouts/default/DefaultLayout.tsx +26 -15
  61. package/client-tmp/react/src/main.tsx +21 -5
  62. package/client-tmp/react/src/pages/AuthPage/AuthPage.test.tsx +10 -0
  63. package/client-tmp/react/src/pages/AuthPage/{AuthPage.jsx → AuthPage.tsx} +3 -2
  64. package/client-tmp/react/src/pages/NotFoundPage/NotFoundPage.css +0 -0
  65. package/client-tmp/react/src/pages/NotFoundPage/NotFoundPage.tsx +14 -0
  66. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.test.tsx +17 -0
  67. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.tsx +14 -0
  68. package/client-tmp/react/src/pbc/README.md +7 -0
  69. package/client-tmp/react/src/pbc/container.tsx +44 -0
  70. package/client-tmp/react/src/pbc/elementsRenderer.tsx +40 -0
  71. package/client-tmp/react/src/pbc/utils.ts +121 -0
  72. package/client-tmp/react/src/services/store.service.ts +48 -0
  73. package/client-tmp/react/src/share/foundation-login.ts +13 -6
  74. package/client-tmp/react/src/share/genesis-components.ts +49 -23
  75. package/client-tmp/react/src/store/AuthContext.tsx +0 -2
  76. package/client-tmp/react/src/store/RoutesContext.tsx +74 -0
  77. package/client-tmp/react/src/types/LayoutName.ts +3 -0
  78. package/client-tmp/react/src/types/RouteLayouts.ts +3 -1
  79. package/client-tmp/react/src/utils/getLayoutNameByRoute.ts +5 -0
  80. package/client-tmp/react/src/utils/history.ts +4 -2
  81. package/client-tmp/react/src/utils/index.ts +3 -1
  82. package/client-tmp/react/src/utils/layout.ts +11 -0
  83. package/client-tmp/react/test/e2e/fixture.ts +1 -1
  84. package/client-tmp/react/tsconfig.app.json +2 -26
  85. package/client-tmp/react/tsconfig.json +31 -8
  86. package/client-tmp/react/tsconfig.node.json +1 -1
  87. package/client-tmp/react/vite.config.ts +70 -0
  88. package/client-tmp/react/webpack.config.js +103 -0
  89. package/client-tmp/web-components/package.json +2 -1
  90. package/client-tmp/web-components/src/main/main.styles.ts +1 -1
  91. package/client-tmp/web-components/src/utils/index.ts +1 -0
  92. package/client-tmp/web-components/src/utils/layout.ts +11 -0
  93. package/client-tmp/web-components/tsconfig.json +1 -1
  94. package/package.json +1 -1
  95. package/server/build.gradle.kts +1 -0
  96. package/server/gradle.properties +1 -0
  97. package/server/settings.gradle.kts +8 -7
  98. package/settings.gradle.kts +7 -4
  99. package/testData/excel/.gitkeep +0 -0
  100. package/client-tmp/angular/karma.conf.js +0 -9
  101. package/client-tmp/angular/src/app/app.component.spec.ts +0 -23
  102. package/client-tmp/react/env.development.json +0 -3
  103. package/client-tmp/react/lint-css.js +0 -18
  104. package/client-tmp/react/src/guards/AuthGuard.tsx +0 -32
  105. package/client-tmp/react/src/guards/PermissionsGuard.tsx +0 -37
  106. package/client-tmp/react/src/index.js +0 -17
  107. package/client-tmp/react/src/pages/NotPermittedPage/NotPermittedPage.jsx +0 -13
  108. package/client-tmp/react/src/reportWebVitals.js +0 -13
  109. package/client-tmp/react/vite.config.js +0 -59
  110. /package/client-tmp/react/src/{setupTests.js → setupTests.ts} +0 -0
  111. /package/server/{{appName}}-app/src/main/genesis/scripts/{{{appName}}-data-pipelines.kts → {{appName}}-pipelines.kts} +0 -0
@@ -44,18 +44,32 @@ const getPathByFramework = {
44
44
  },
45
45
  [FRAMEWORK_REACT_ALIAS]: {
46
46
  ...defaultPathGetters,
47
- index: (componentPath) => `${componentPath}/index.jsx`,
47
+ index: (componentPath) => `${componentPath}/index.tsx`,
48
48
  clientSrcPath: `../../client/src/pages`,
49
- route: (clientSrcPath, tile, routeName) =>
50
- `${clientSrcPath}/${routeName}/${tile.name}-${tile.componentType}`,
51
- component: (componentPath, tile) =>
52
- `${componentPath}/${tile.name}.component.jsx`,
53
- style: (componentPath, tile) =>
54
- `${componentPath}/${tile.name}.component.css`,
49
+ route: (clientSrcPath, tile, routeName, changeCase) =>
50
+ `${clientSrcPath}/${changeCase.pascalCase(routeName)}/${changeCase.pascalCase(tile.name)}${changeCase.pascalCase(tile.componentType)}`,
51
+ component: (componentPath, tile, changeCase) =>
52
+ `${componentPath}/${changeCase.pascalCase(tile.name)}Component.tsx`,
53
+ style: (componentPath, tile, changeCase) =>
54
+ `${componentPath}/${changeCase.pascalCase(tile.name)}Component.css`,
55
+ addForm: (componentPath, tile, changeCase) =>
56
+ `${componentPath}/${changeCase.pascalCase(tile.name)}CreateFormSchema.ts`,
57
+ updateForm: (componentPath, tile, changeCase) =>
58
+ `${componentPath}/${changeCase.pascalCase(tile.name)}UpdateFormSchema.ts`,
59
+ columnDefs: (componentPath, tile, changeCase) =>
60
+ `${componentPath}/${changeCase.pascalCase(tile.name)}ColumnDefs.ts`,
61
+ gridOptions: (componentPath, tile, changeCase) =>
62
+ `${componentPath}/${changeCase.pascalCase(tile.name)}GridOptions.ts`,
55
63
  },
56
64
  };
57
65
 
58
- const getFilesToWrite = (tileData, routeName, path, sourceTemplateDir) => {
66
+ const getFilesToWrite = (
67
+ tileData,
68
+ routeName,
69
+ path,
70
+ sourceTemplateDir,
71
+ changeCase,
72
+ ) => {
59
73
  const {
60
74
  clientSrcPath,
61
75
  route: getRouteDir,
@@ -69,7 +83,7 @@ const getFilesToWrite = (tileData, routeName, path, sourceTemplateDir) => {
69
83
  gridOptions: getGridOptionsTarget,
70
84
  } = path;
71
85
 
72
- const routeDir = getRouteDir(clientSrcPath, tileData, routeName);
86
+ const routeDir = getRouteDir(clientSrcPath, tileData, routeName, changeCase);
73
87
 
74
88
  const componentIndexFile = {
75
89
  source: `${sourceTemplateDir}/component/component.index.hbs`,
@@ -78,32 +92,32 @@ const getFilesToWrite = (tileData, routeName, path, sourceTemplateDir) => {
78
92
 
79
93
  const componentFile = {
80
94
  source: `${sourceTemplateDir}/component/component.hbs`,
81
- target: getComponentTarget(routeDir, tileData),
95
+ target: getComponentTarget(routeDir, tileData, changeCase),
82
96
  };
83
97
 
84
98
  const componentStylesFile = {
85
99
  source: `${sourceTemplateDir}/component/component.styles.hbs`,
86
- target: getStyleTarget(routeDir, tileData),
100
+ target: getStyleTarget(routeDir, tileData, changeCase),
87
101
  };
88
102
 
89
103
  const componentAddFormFile = {
90
104
  source: `${sourceTemplateDir}/component/component.create.form.hbs`,
91
- target: getAddFormTarget(routeDir, tileData),
105
+ target: getAddFormTarget(routeDir, tileData, changeCase),
92
106
  };
93
107
 
94
108
  const componentUpdateFormFile = {
95
109
  source: `${sourceTemplateDir}/component/component.update.form.hbs`,
96
- target: getUpdateFormTarget(routeDir, tileData),
110
+ target: getUpdateFormTarget(routeDir, tileData, changeCase),
97
111
  };
98
112
 
99
113
  const componentColumnsFile = {
100
114
  source: `${sourceTemplateDir}/component/component.column.defs.hbs`,
101
- target: getColumnDefsTarget(routeDir, tileData),
115
+ target: getColumnDefsTarget(routeDir, tileData, changeCase),
102
116
  };
103
117
 
104
118
  const componentGridOptionsFile = {
105
119
  source: `${sourceTemplateDir}/component/component.gridOptions.hbs`,
106
- target: getGridOptionsTarget(routeDir, tileData),
120
+ target: getGridOptionsTarget(routeDir, tileData, changeCase),
107
121
  };
108
122
 
109
123
  const filesToWrite = [componentIndexFile, componentFile, componentStylesFile];
@@ -160,13 +174,14 @@ const generateTile = (
160
174
  const routeName = changeCase.paramCase(route.name);
161
175
  const sourceTemplateDir = `../${DIR_TEMPLATE_BY_FRAMEWORK[framework]}`;
162
176
  const { clientSrcPath, route: getRouteDir } = getPathByFramework[framework];
163
- const routeDir = getRouteDir(clientSrcPath, tileData, routeName);
177
+ const routeDir = getRouteDir(clientSrcPath, tileData, routeName, changeCase);
164
178
 
165
179
  const filesToWrite = getFilesToWrite(
166
180
  tileData,
167
181
  routeName,
168
182
  getPathByFramework[framework],
169
183
  sourceTemplateDir,
184
+ changeCase,
170
185
  );
171
186
 
172
187
  makeDirectory(resolve(__dirname, routeDir));
@@ -1,4 +1,5 @@
1
1
  const excludeFrameworks = require('./excludeFrameworks');
2
+ const deleteGradleWrappers = require('./deleteGradleWrappers');
2
3
  const formatRouteData = require('./formatRouteData');
3
4
  const generateRoute = require('./generateRoute');
4
5
  const generateCsv = require('./generateCsv');
@@ -11,6 +12,7 @@ const validateRoute = require('./validateRoute');
11
12
  const validateFrameworkAlias = require('./validateFrameworkAlias');
12
13
 
13
14
  module.exports = {
15
+ deleteGradleWrappers,
14
16
  excludeFrameworks,
15
17
  formatRouteData,
16
18
  generateRoute,
@@ -1,5 +1,5 @@
1
1
  {
2
- "UI": "14.206.2",
3
- "GSF": "8.3.0",
4
- "Auth": "8.3.0"
2
+ "UI": "14.211.0",
3
+ "GSF": "8.5.0-beta1",
4
+ "Auth": "8.5.0-beta1"
5
5
  }
package/.gitignore CHANGED
@@ -44,6 +44,7 @@ client/bootstrapDone
44
44
  .husky/.gitignore
45
45
  build-cache/
46
46
  server/h2/
47
+ project-zips
47
48
 
48
49
  # Ignore Gradle GUI config
49
50
  gradle-app.setting
@@ -107,3 +108,5 @@ custom-elements.json
107
108
  # Gradle tasks
108
109
  .bootstrapDone
109
110
  .tests.executed
111
+
112
+ blankappseedtest/
package/.idea/modules.xml CHANGED
@@ -2,12 +2,12 @@
2
2
  <project version="4">
3
3
  <component name="ProjectModuleManager">
4
4
  <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.main.iml" />
6
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-fields/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-fields.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-fields/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-fields.main.iml" />
7
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-dao/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-dao.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-dao/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-dao.main.iml" />
8
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-view/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-view.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-view/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-view.main.iml" />
9
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-hft/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-hft.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-hft/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-hft.main.iml" />
10
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-sysdef/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-sysdef.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-sysdef/genesisproduct-{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-sysdef.main.iml" />
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}.{{appName}}-dictionary-cache.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}.{{appName}}-dictionary-cache.main.iml" />
6
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-fields/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-fields.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-fields/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-fields.main.iml" />
7
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-dao/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-dao.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-dao/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-dao.main.iml" />
8
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-view/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-view.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-view/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-view.main.iml" />
9
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-hft/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-hft.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-hft/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-hft.main.iml" />
10
+ <module fileurl="file://$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-sysdef/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-sysdef.main.iml" filepath="$PROJECT_DIR$/.idea/modules/server/build/internal-modules/{{appName}}-dictionary-cache/{{appName}}-generated-sysdef/{{appName}}.{{appName}}-dictionary-cache.{{appName}}-generated-sysdef.main.iml" />
11
11
  </modules>
12
12
  </component>
13
13
  </project>
package/CHANGELOG.md CHANGED
@@ -1,5 +1,194 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.30.0-prerelease.30](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.29...v3.30.0-prerelease.30) (2024-10-22)
4
+
5
+
6
+ ### Features
7
+
8
+ * adding support for comments/todos in generated UI files GENC-857 (#364) ba999e8
9
+
10
+ ## [3.30.0-prerelease.29](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.28...v3.30.0-prerelease.29) (2024-10-21)
11
+
12
+
13
+ ### Features
14
+
15
+ * update react version (#358) 22bb0ad
16
+
17
+ ## [3.30.0-prerelease.28](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.27...v3.30.0-prerelease.28) (2024-10-18)
18
+
19
+
20
+ ### Features
21
+
22
+ * allow to simply control layout persistence in dev [FUI-2211](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2211) / GENC-871 (#363) c6fd6f5
23
+
24
+ ## [3.30.0-prerelease.27](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.26...v3.30.0-prerelease.27) (2024-10-17)
25
+
26
+
27
+ ### Features
28
+
29
+ * allow excluding Gradle wrappers GENC-824 (#357) 5d90d1d
30
+
31
+ ## [3.30.0-prerelease.26](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.25...v3.30.0-prerelease.26) (2024-10-16)
32
+
33
+
34
+ ### Features
35
+
36
+ * add genesis launcher (#356) 236417d
37
+
38
+ ## [3.30.0-prerelease.25](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.24...v3.30.0-prerelease.25) (2024-10-16)
39
+
40
+
41
+ ### Bug Fixes
42
+
43
+ * reformat ReadMe layout & allow markdown in description GENC-845 (#361) a1b8972
44
+
45
+ ## [3.30.0-prerelease.24](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.23...v3.30.0-prerelease.24) (2024-10-14)
46
+
47
+
48
+ ### Bug Fixes
49
+
50
+ * ignore project-zips folder CIDE-53 (#360) ddb86d5
51
+
52
+ ## [3.30.0-prerelease.23](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.22...v3.30.0-prerelease.23) (2024-10-08)
53
+
54
+
55
+ ### Bug Fixes
56
+
57
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 31595f3
58
+
59
+ ## [3.30.0-prerelease.22](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v3.30.0-prerelease.21...v3.30.0-prerelease.22) (2024-10-08)
60
+
61
+
62
+ ### Bug Fixes
63
+
64
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 9dbc341
65
+
66
+ ## [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)
67
+
68
+
69
+ ### Bug Fixes
70
+
71
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#355) a33c5e8
72
+
73
+ ## [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)
74
+
75
+
76
+ ### Bug Fixes
77
+
78
+ * reduce apiHost steps when using genx in prompt mode - [FUI-2207](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2207) (#343) f6ce411
79
+
80
+ ## [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)
81
+
82
+
83
+ ### Bug Fixes
84
+
85
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#354) d5b0de0
86
+
87
+ ## [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)
88
+
89
+
90
+ ### Bug Fixes
91
+
92
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 3ed1109
93
+
94
+ ## [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)
95
+
96
+
97
+ ### Bug Fixes
98
+
99
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) a324936
100
+
101
+ ## [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)
102
+
103
+
104
+ ### Features
105
+
106
+ * 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
107
+
108
+ ## [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)
109
+
110
+
111
+ ### Features
112
+
113
+ * 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
114
+
115
+ ## [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)
116
+
117
+
118
+ ### Features
119
+
120
+ * replaced karma with jest in angular (#348) 805d7ec
121
+
122
+ ## [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)
123
+
124
+
125
+ ### Bug Fixes
126
+
127
+ * update --nav-height value - [FUI-2207](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2207) (#345) 83894b1
128
+
129
+ ## [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)
130
+
131
+
132
+ ### Bug Fixes
133
+
134
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) d7eab5a
135
+
136
+ ## [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)
137
+
138
+
139
+ ### Bug Fixes
140
+
141
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) eabf8c7
142
+
143
+ ## [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)
144
+
145
+
146
+ ### Bug Fixes
147
+
148
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#342) d255814
149
+
150
+ ## [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)
151
+
152
+
153
+ ### Features
154
+
155
+ * integrate TypeScript support into react - [FUI-2157](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2157) (#338) ac55e1f
156
+
157
+ ## [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)
158
+
159
+
160
+ ### Bug Fixes
161
+
162
+ * updating server version information for Auth [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 09ba9a2
163
+
164
+ ## [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)
165
+
166
+
167
+ ### Bug Fixes
168
+
169
+ * updating server version information for GSF [PSD-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 5d4f8da
170
+
171
+ ## [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)
172
+
173
+
174
+ ### Features
175
+
176
+ * product name specified with settings plugin property (#331) 082cea0
177
+
178
+ ## [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)
179
+
180
+
181
+ ### Bug Fixes
182
+
183
+ * automated dependency version update [skip-ci] [PSD-9](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/9) (#341) 1d38563
184
+
185
+ ## [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)
186
+
187
+
188
+ ### Features
189
+
190
+ * add unit tests - [FUI-2173](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/2173) (#332) a4168f3
191
+
3
192
  ## [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)
4
193
 
5
194
 
package/README.md CHANGED
@@ -1,10 +1,7 @@
1
1
  # {{appName}}
2
2
 
3
- This project has been created from the Genesis Blank Application Seed. Our seeds allow users to quickly bootstrap
4
- their projects. Each seed adheres to strict Genesis best practices, and has passed numerous performance, compliance and
5
- accessibility checks.
3
+ {{{description}}}
6
4
 
7
- {{description}}
8
5
  {{!
9
6
 
10
7
  # Testing
@@ -42,9 +39,12 @@ To get a simple application running check the [Quick Start](https://learn.genesi
42
39
 
43
40
  If you need an introduction to the Genesis platform and its modules it's worth heading [here](https://learn.genesis.global/docs/getting-started/learn-the-basics/simple-introduction/).
44
41
 
45
-
46
42
  ## Project Structure
47
43
 
44
+ This project has been created from the Genesis Blank Application Seed. Our seeds allow users to quickly bootstrap
45
+ their projects. Each seed adheres to strict Genesis best practices, and has passed numerous performance, compliance and
46
+ accessibility checks.
47
+
48
48
  This project contains **server** and **client** directories which contain the server and client code respectively.
49
49
 
50
50
  ### Server
@@ -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';