@wavemaker/angular-codegen 11.9.5-1.6052 → 11.10.0-next.140547

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 (173) hide show
  1. {angular-codegen → package}/angular-app/angular.json +35 -9
  2. {angular-codegen → package}/angular-app/build-scripts/post-build.js +2 -0
  3. package/angular-app/dependency-report.html +124 -0
  4. package/angular-app/generate-dependency-report.js +240 -0
  5. package/angular-app/npm-shrinkwrap.json +25284 -0
  6. {angular-codegen → package}/angular-app/package-lock.json +11372 -9860
  7. {angular-codegen → package}/angular-app/package.json +32 -25
  8. package/angular-app/src/main.ts +67 -0
  9. {angular-codegen → package}/build-angular-app.js +30 -9
  10. {angular-codegen → package}/dependencies/expression-parser.cjs.js +13889 -17335
  11. {angular-codegen → package}/dependencies/pipe-provider.cjs.js +38114 -37502
  12. {angular-codegen → package}/dependencies/transpilation-mobile.cjs.js +23339 -23035
  13. {angular-codegen → package}/dependencies/transpilation-web.cjs.js +23345 -23038
  14. {angular-codegen → package}/download-packages.js +9 -0
  15. package/npm-shrinkwrap.json +8022 -0
  16. package/package-lock.json +8022 -0
  17. {angular-codegen → package}/package.json +6 -1
  18. package/src/codegen-cli.js +1 -0
  19. package/src/codegen.js +1 -0
  20. package/src/copy-utils.js +1 -0
  21. package/src/gen-app-skeleton.js +1 -0
  22. package/src/gen-index-html.js +1 -0
  23. package/src/update-angular-json.js +1 -0
  24. package/src/wm-utils.js +1 -0
  25. angular-codegen/angular-app/src/main.ts +0 -30
  26. angular-codegen/package-lock.json +0 -6494
  27. angular-codegen/src/codegen-cli.js +0 -1
  28. angular-codegen/src/codegen.js +0 -1
  29. angular-codegen/src/gen-app-skeleton.js +0 -1
  30. angular-codegen/src/gen-index-html.js +0 -1
  31. angular-codegen/src/update-angular-json.js +0 -1
  32. angular-codegen/src/wm-utils.js +0 -1
  33. {angular-codegen → package}/.npmrc +0 -0
  34. {angular-codegen → package}/angular-app/.npmrc +0 -0
  35. {angular-codegen → package}/angular-app/build-scripts/build.js +0 -0
  36. {angular-codegen → package}/angular-app/build-scripts/index-html-transform.js +0 -0
  37. {angular-codegen → package}/angular-app/build-scripts/optimize-css.gulpfile.js +0 -0
  38. {angular-codegen → package}/angular-app/build-scripts/update-version.js +0 -0
  39. {angular-codegen → package}/angular-app/src/.browserslistrc +0 -0
  40. {angular-codegen → package}/angular-app/src/app/app-codegen.module.ts +0 -0
  41. {angular-codegen → package}/angular-app/src/app/app.component.css +0 -0
  42. {angular-codegen → package}/angular-app/src/app/app.component.script.js +0 -0
  43. {angular-codegen → package}/angular-app/src/app/app.component.variables.ts +0 -0
  44. {angular-codegen → package}/angular-app/src/app/app.routes.ts +0 -0
  45. {angular-codegen → package}/angular-app/src/app/lazy-load-scripts.resolve.ts +0 -0
  46. {angular-codegen → package}/angular-app/src/app/prefabs/prefab-config.js +0 -0
  47. {angular-codegen → package}/angular-app/src/app/wm-project-properties.ts +0 -0
  48. {angular-codegen → package}/angular-app/src/assets/.gitkeep +0 -0
  49. {angular-codegen → package}/angular-app/src/assets/print.css +0 -0
  50. {angular-codegen → package}/angular-app/src/assets/styles/css/bootstrap.css.map +0 -0
  51. {angular-codegen → package}/angular-app/src/assets/styles/css/font/summernote.eot +0 -0
  52. {angular-codegen → package}/angular-app/src/assets/styles/css/font/summernote.ttf +0 -0
  53. {angular-codegen → package}/angular-app/src/assets/styles/css/font/summernote.woff +0 -0
  54. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  55. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  56. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  57. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  58. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  59. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  60. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  61. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  62. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_222222_256x240.png +0 -0
  63. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_2e83ff_256x240.png +0 -0
  64. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_444444_256x240.png +0 -0
  65. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_454545_256x240.png +0 -0
  66. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_555555_256x240.png +0 -0
  67. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_777620_256x240.png +0 -0
  68. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_777777_256x240.png +0 -0
  69. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_888888_256x240.png +0 -0
  70. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_cc0000_256x240.png +0 -0
  71. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_cd0a0a_256x240.png +0 -0
  72. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_ffffff_256x240.png +0 -0
  73. {angular-codegen → package}/angular-app/src/assets/styles/css/wm-responsive.css +0 -0
  74. {angular-codegen → package}/angular-app/src/assets/styles/css/wm-style.css +0 -0
  75. {angular-codegen → package}/angular-app/src/assets/styles/fonts/FontAwesome.otf +0 -0
  76. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.eot +0 -0
  77. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.svg +0 -0
  78. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.ttf +0 -0
  79. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.woff +0 -0
  80. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.woff2 +0 -0
  81. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.eot +0 -0
  82. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.svg +0 -0
  83. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.ttf +0 -0
  84. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.woff +0 -0
  85. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.woff2 +0 -0
  86. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wavicon.eot +0 -0
  87. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wavicon.ttf +0 -0
  88. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wavicon.woff +0 -0
  89. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.eot +0 -0
  90. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.ttf +0 -0
  91. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.woff +0 -0
  92. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.eot +0 -0
  93. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.ttf +0 -0
  94. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.woff +0 -0
  95. {angular-codegen → package}/angular-app/src/assets/styles/images/live-sync-icon.png +0 -0
  96. {angular-codegen → package}/angular-app/src/assets/styles/images/live-sync-touch-icon.png +0 -0
  97. {angular-codegen → package}/angular-app/src/assets/styles/images/loader.gif +0 -0
  98. {angular-codegen → package}/angular-app/src/assets/styles/images/spinner-small.gif +0 -0
  99. {angular-codegen → package}/angular-app/src/assets/styles/images/ui-icons.png +0 -0
  100. {angular-codegen → package}/angular-app/src/environments/environment.dev.ts +0 -0
  101. {angular-codegen → package}/angular-app/src/environments/environment.prod.ts +0 -0
  102. {angular-codegen → package}/angular-app/src/environments/environment.ts +0 -0
  103. {angular-codegen → package}/angular-app/src/framework/angular1.polyfills.ts +0 -0
  104. {angular-codegen → package}/angular-app/src/framework/services/app-extension.service.ts +0 -0
  105. {angular-codegen → package}/angular-app/src/framework/services/app-js-provider.service.ts +0 -0
  106. {angular-codegen → package}/angular-app/src/framework/services/app-variables-provider.service.ts +0 -0
  107. {angular-codegen → package}/angular-app/src/framework/services/component-ref-provider.service.ts +0 -0
  108. {angular-codegen → package}/angular-app/src/framework/services/lazy-component-ref-provider.service.ts +0 -0
  109. {angular-codegen → package}/angular-app/src/framework/services/prefab-config-provider.service.ts +0 -0
  110. {angular-codegen → package}/angular-app/src/framework/util/lazy-module-routes.ts +0 -0
  111. {angular-codegen → package}/angular-app/src/framework/util/page-util.ts +0 -0
  112. {angular-codegen → package}/angular-app/src/index.html +0 -0
  113. {angular-codegen → package}/angular-app/src/polyfills.ts +0 -0
  114. {angular-codegen → package}/angular-app/src/setup-jest.js +0 -0
  115. {angular-codegen → package}/angular-app/src/styles.css +0 -0
  116. {angular-codegen → package}/angular-app/src/tsconfig.app.json +0 -0
  117. {angular-codegen → package}/angular-app/src/tslint.json +0 -0
  118. {angular-codegen → package}/angular-app/tsconfig.json +0 -0
  119. {angular-codegen → package}/angular-app/tsconfig.web-app.json +0 -0
  120. {angular-codegen → package}/angular-app/wm-custom-webpack.config.js +0 -0
  121. {angular-codegen → package}/build-util.js +0 -0
  122. {angular-codegen → package}/dependencies/app.component.html +0 -0
  123. {angular-codegen → package}/generate-angular-app.js +0 -0
  124. {angular-codegen → package}/pwa-assets/icons/icon-128x128.png +0 -0
  125. {angular-codegen → package}/pwa-assets/icons/icon-144x144.png +0 -0
  126. {angular-codegen → package}/pwa-assets/icons/icon-152x152.png +0 -0
  127. {angular-codegen → package}/pwa-assets/icons/icon-192x192.png +0 -0
  128. {angular-codegen → package}/pwa-assets/icons/icon-384x384.png +0 -0
  129. {angular-codegen → package}/pwa-assets/icons/icon-512x512.png +0 -0
  130. {angular-codegen → package}/pwa-assets/icons/icon-72x72.png +0 -0
  131. {angular-codegen → package}/pwa-assets/icons/icon-96x96.png +0 -0
  132. {angular-codegen → package}/pwa-assets/manifest.json +0 -0
  133. {angular-codegen → package}/pwa-assets/ngsw-config.json +0 -0
  134. {angular-codegen → package}/pwa-assets/wmsw-worker.js +0 -0
  135. {angular-codegen → package}/src/codegen-args-cli.js +0 -0
  136. {angular-codegen → package}/src/expr-parser-utils.js +0 -0
  137. {angular-codegen → package}/src/gen-app-codegen-module.js +0 -0
  138. {angular-codegen → package}/src/gen-app-js.js +0 -0
  139. {angular-codegen → package}/src/gen-app-prefabs-module.js +0 -0
  140. {angular-codegen → package}/src/gen-app-routes.js +0 -0
  141. {angular-codegen → package}/src/gen-app-variables.js +0 -0
  142. {angular-codegen → package}/src/gen-components.js +0 -0
  143. {angular-codegen → package}/src/gen-layouts.js +0 -0
  144. {angular-codegen → package}/src/gen-lazy-module-routes.js +0 -0
  145. {angular-codegen → package}/src/gen-prefabs.js +0 -0
  146. {angular-codegen → package}/src/gen-pwa-files.js +0 -0
  147. {angular-codegen → package}/src/gen-tsconfig.js +0 -0
  148. {angular-codegen → package}/src/gen-wm-project-properties.js +0 -0
  149. {angular-codegen → package}/src/handlebar-helpers.js +0 -0
  150. {angular-codegen → package}/src/pages-util.js +0 -0
  151. {angular-codegen → package}/src/project-meta.js +0 -0
  152. {angular-codegen → package}/templates/app-codegen.module.ts.hbs +0 -0
  153. {angular-codegen → package}/templates/app-prefabs.module.ts.hbs +0 -0
  154. {angular-codegen → package}/templates/app-routes.ts.hbs +0 -0
  155. {angular-codegen → package}/templates/app.component.script.js.hbs +0 -0
  156. {angular-codegen → package}/templates/app.module.ts.hbs +0 -0
  157. {angular-codegen → package}/templates/component.expressions.ts.hbs +0 -0
  158. {angular-codegen → package}/templates/component.variables.ts.hbs +0 -0
  159. {angular-codegen → package}/templates/expr-vs-fn.hbs +0 -0
  160. {angular-codegen → package}/templates/layout/layout.component.ts.hbs +0 -0
  161. {angular-codegen → package}/templates/layout/layout.module.ts.hbs +0 -0
  162. {angular-codegen → package}/templates/lazy-module-routes.ts.hbs +0 -0
  163. {angular-codegen → package}/templates/page/page.component.script.js.hbs +0 -0
  164. {angular-codegen → package}/templates/page/page.component.ts.hbs +0 -0
  165. {angular-codegen → package}/templates/page/page.module.ts.hbs +0 -0
  166. {angular-codegen → package}/templates/partial/partial.component.script.js.hbs +0 -0
  167. {angular-codegen → package}/templates/partial/partial.component.ts.hbs +0 -0
  168. {angular-codegen → package}/templates/partial/partial.module.ts.hbs +0 -0
  169. {angular-codegen → package}/templates/prefab/prefab-config.ts.hbs +0 -0
  170. {angular-codegen → package}/templates/prefab/prefab.component.script.js.hbs +0 -0
  171. {angular-codegen → package}/templates/prefab/prefab.component.ts.hbs +0 -0
  172. {angular-codegen → package}/templates/prefab/prefab.module.ts.hbs +0 -0
  173. {angular-codegen → package}/templates/wm-project-properties.ts.hbs +0 -0
@@ -28,12 +28,8 @@
28
28
  "tsConfig": "src/tsconfig.app.json",
29
29
  "assets": [
30
30
  "src/favicon.ico",
31
+ "src/favicon.png",
31
32
  "src/assets",
32
- {
33
- "glob": "print.css",
34
- "input": "src/assets/",
35
- "output": "."
36
- },
37
33
  {
38
34
  "glob": "**/*",
39
35
  "input": "libraries/locales/",
@@ -43,6 +39,19 @@
43
39
  "glob": "**/*",
44
40
  "input": "node_modules/@wavemaker/app-ng-runtime/locales/",
45
41
  "output": "/locales/"
42
+ },
43
+ {
44
+ "glob": "**/*",
45
+ "input": "src/servicedefs",
46
+ "output": "/servicedefs/"
47
+ },
48
+ {
49
+ "glob": "**/*",
50
+ "input": "resources",
51
+ "output": "/resources/",
52
+ "ignore": [
53
+ "**/*.txt"
54
+ ]
46
55
  }
47
56
  ],
48
57
  "styles": [
@@ -58,6 +67,11 @@
58
67
  "input": "src/assets/app.css",
59
68
  "inject": false,
60
69
  "bundleName": "wm-styles"
70
+ },
71
+ {
72
+ "input": "src/assets/print.css",
73
+ "inject": false,
74
+ "bundleName": "print"
61
75
  }
62
76
  ],
63
77
  "scripts": [
@@ -65,6 +79,7 @@
65
79
  "./node_modules/d3/dist/d3.min.js",
66
80
  "./node_modules/@wavemaker/nvd3/build/nv.d3.min.js",
67
81
  "./node_modules/jquery/dist/jquery.min.js",
82
+ "./node_modules/lodash/lodash.min.js",
68
83
  "./node_modules/jquery-ui/ui/disable-selection.js",
69
84
  "./node_modules/jquery-ui/ui/version.js",
70
85
  "./node_modules/jquery-ui/ui/widget.js",
@@ -188,18 +203,29 @@
188
203
  "tsConfig": "src/tsconfig.app.json",
189
204
  "assets": [
190
205
  "src/favicon.ico",
206
+ "src/favicon.png",
191
207
  "src/assets",
192
208
  {
193
- "glob": "print.css",
194
- "input": "src/assets/",
195
- "output": "."
209
+ "glob": "**/*",
210
+ "input": "src/servicedefs",
211
+ "output": "/servicedefs/"
212
+ },
213
+ {
214
+ "glob": "**/*",
215
+ "input": "src/resources",
216
+ "output": "/resources/"
196
217
  }
197
218
  ],
198
219
  "styles": [
199
220
  "src/styles.css",
200
221
  "src/assets/styles/css/wm-style.css",
201
222
  "src/assets/themes/material/style.css",
202
- "src/assets/app.css"
223
+ "src/assets/app.css",
224
+ {
225
+ "input": "src/assets/print.css",
226
+ "inject": false,
227
+ "bundleName": "print"
228
+ }
203
229
  ],
204
230
  "scripts": [
205
231
  "./node_modules/x2js/x2js.js",
@@ -294,6 +294,8 @@ const generateSha1 = (content) => {
294
294
 
295
295
  //this is required to download all the assets
296
296
  $('head').append(`<meta name="deployUrl" content=${deployUrl} />`);
297
+ $('script[src$="services/application/wmProperties.js"]').remove();
298
+ $('link[href$="favicon.png"]').attr('href', './ng-bundle/favicon.png');
297
299
 
298
300
  const htmlContent = $.html();
299
301
  await writeFile(`./dist/index.html`, htmlContent);
@@ -0,0 +1,124 @@
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Angular Dependencies Report</title>
8
+ <style>
9
+ body {
10
+ font-family: Arial, sans-serif;
11
+ line-height: 1.6;
12
+ margin: 0;
13
+ padding: 20px;
14
+ color: #333;
15
+ }
16
+ .header {
17
+ background: #f4f4f4;
18
+ padding: 20px;
19
+ margin-bottom: 20px;
20
+ border-radius: 4px;
21
+ }
22
+ .section {
23
+ margin-bottom: 30px;
24
+ }
25
+ table {
26
+ width: 100%;
27
+ border-collapse: collapse;
28
+ margin-bottom: 20px;
29
+ box-shadow: 0 1px 3px rgba(0,0,0,0.2);
30
+ }
31
+ th, td {
32
+ border: 1px solid #ddd;
33
+ padding: 12px;
34
+ text-align: left;
35
+ }
36
+ th {
37
+ background-color: #f8f8f8;
38
+ font-weight: bold;
39
+ }
40
+ tr:nth-child(even) {
41
+ background-color: #f9f9f9;
42
+ }
43
+ tr:hover {
44
+ background-color: #f5f5f5;
45
+ }
46
+ .dependency-type {
47
+ font-size: 1.2em;
48
+ color: #666;
49
+ font-weight: bold;
50
+ margin: 20px 0 10px;
51
+ padding-bottom: 5px;
52
+ border-bottom: 2px solid #eee;
53
+ }
54
+ .transitive {
55
+ margin-left: 20px;
56
+ border-left: 3px solid #eee;
57
+ padding-left: 20px;
58
+ }
59
+ .license-count {
60
+ font-weight: bold;
61
+ color: #2196F3;
62
+ }
63
+ .timestamp {
64
+ color: #666;
65
+ font-style: italic;
66
+ }
67
+ </style>
68
+ </head>
69
+ <body>
70
+ <div class="header">
71
+ <h1>Angular Project Dependencies Report</h1>
72
+ <p class="timestamp">Generated on: 12/30/2024, 5:58:29 PM</p>
73
+ </div>
74
+
75
+ <div class="section">
76
+ <h2>Project Dependencies Overview</h2>
77
+
78
+
79
+ </div>
80
+
81
+ <div class="section">
82
+ <h2>Transitive Dependencies</h2>
83
+
84
+ <div class="dependency-type">Transitive Dependencies</div>
85
+ <table>
86
+ <tr>
87
+ <th>Package</th>
88
+ <th>Version</th>
89
+ <th>License</th>
90
+ <th>Repository</th>
91
+ </tr>
92
+
93
+ <tr>
94
+ <td></td>
95
+ <td>wavemaker/angular-app</td>
96
+ <td>UNKNOWN</td>
97
+ <td>N/A</td>
98
+ </tr>
99
+
100
+ </table>
101
+
102
+ </div>
103
+
104
+ <div class="section">
105
+ <h2>License Summary</h2>
106
+
107
+ <table>
108
+ <tr>
109
+ <th>License</th>
110
+ <th>Count</th>
111
+ <th>Packages</th>
112
+ </tr>
113
+
114
+ <tr>
115
+ <td>UNKNOWN</td>
116
+ <td class="license-count">1</td>
117
+ <td></td>
118
+ </tr>
119
+
120
+ </table>
121
+
122
+ </div>
123
+ </body>
124
+ </html>
@@ -0,0 +1,240 @@
1
+ const checker = require('license-checker');
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+
5
+ // HTML template as a string
6
+ const htmlTemplate = `
7
+ <!DOCTYPE html>
8
+ <html lang="en">
9
+ <head>
10
+ <meta charset="UTF-8">
11
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
12
+ <title>Angular Dependencies Report</title>
13
+ <style>
14
+ body {
15
+ font-family: Arial, sans-serif;
16
+ line-height: 1.6;
17
+ margin: 0;
18
+ padding: 20px;
19
+ color: #333;
20
+ }
21
+ .header {
22
+ background: #f4f4f4;
23
+ padding: 20px;
24
+ margin-bottom: 20px;
25
+ border-radius: 4px;
26
+ }
27
+ .section {
28
+ margin-bottom: 30px;
29
+ }
30
+ table {
31
+ width: 100%;
32
+ border-collapse: collapse;
33
+ margin-bottom: 20px;
34
+ box-shadow: 0 1px 3px rgba(0,0,0,0.2);
35
+ }
36
+ th, td {
37
+ border: 1px solid #ddd;
38
+ padding: 12px;
39
+ text-align: left;
40
+ }
41
+ th {
42
+ background-color: #f8f8f8;
43
+ font-weight: bold;
44
+ }
45
+ tr:nth-child(even) {
46
+ background-color: #f9f9f9;
47
+ }
48
+ tr:hover {
49
+ background-color: #f5f5f5;
50
+ }
51
+ .dependency-type {
52
+ font-size: 1.2em;
53
+ color: #666;
54
+ font-weight: bold;
55
+ margin: 20px 0 10px;
56
+ padding-bottom: 5px;
57
+ border-bottom: 2px solid #eee;
58
+ }
59
+ .transitive {
60
+ margin-left: 20px;
61
+ border-left: 3px solid #eee;
62
+ padding-left: 20px;
63
+ }
64
+ .license-count {
65
+ font-weight: bold;
66
+ color: #2196F3;
67
+ }
68
+ .timestamp {
69
+ color: #666;
70
+ font-style: italic;
71
+ }
72
+ </style>
73
+ </head>
74
+ <body>
75
+ <div class="header">
76
+ <h1>Angular Project Dependencies Report</h1>
77
+ <p class="timestamp">Generated on: {{GENERATED_DATE}}</p>
78
+ </div>
79
+
80
+ <div class="section">
81
+ <h2>Project Dependencies Overview</h2>
82
+ {{PRODUCTION_DEPENDENCIES}}
83
+ {{DEVELOPMENT_DEPENDENCIES}}
84
+ </div>
85
+
86
+ <div class="section">
87
+ <h2>Transitive Dependencies</h2>
88
+ {{TRANSITIVE_DEPENDENCIES}}
89
+ </div>
90
+
91
+ <div class="section">
92
+ <h2>License Summary</h2>
93
+ {{LICENSE_SUMMARY}}
94
+ </div>
95
+ </body>
96
+ </html>
97
+ `;
98
+
99
+ // Main function to generate the report
100
+ function generateDependencyReport() {
101
+ checker.init({
102
+ start: './',
103
+ json: true,
104
+ customPath: {
105
+ licenses: true,
106
+ dependencies: true,
107
+ version: true
108
+ }
109
+ }, function(err, packages) {
110
+ if (err) {
111
+ console.error("Error:", err);
112
+ return;
113
+ }
114
+
115
+ const projectData = processPackages(packages);
116
+ const html = generateHTML(projectData);
117
+
118
+ // Write the report to a file
119
+ fs.writeFileSync('dependency-report.html', html);
120
+ console.log('Dependency report generated successfully!');
121
+ });
122
+ }
123
+
124
+ // Process the packages data
125
+ function processPackages(packages) {
126
+ const data = {
127
+ production: {},
128
+ development: {},
129
+ transitive: {},
130
+ licenses: {}
131
+ };
132
+
133
+ // Read package.json to determine prod vs dev dependencies
134
+ const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
135
+ const prodDeps = packageJson.dependencies || {};
136
+ const devDeps = packageJson.devDependencies || {};
137
+
138
+ Object.entries(packages).forEach(([pkgName, info]) => {
139
+ const name = pkgName.split('@')[0];
140
+ const version = pkgName.split('@')[1];
141
+ const packageInfo = {
142
+ version,
143
+ license: info.licenses,
144
+ description: info.description || '',
145
+ repository: info.repository || '',
146
+ publisher: info.publisher || ''
147
+ };
148
+
149
+ // Track license information
150
+ if (info.licenses) {
151
+ if (!data.licenses[info.licenses]) {
152
+ data.licenses[info.licenses] = {
153
+ count: 0,
154
+ packages: []
155
+ };
156
+ }
157
+ data.licenses[info.licenses].count++;
158
+ data.licenses[info.licenses].packages.push(name);
159
+ }
160
+
161
+ // Categorize dependencies
162
+ if (prodDeps[name]) {
163
+ data.production[name] = packageInfo;
164
+ } else if (devDeps[name]) {
165
+ data.development[name] = packageInfo;
166
+ } else {
167
+ data.transitive[name] = packageInfo;
168
+ }
169
+ });
170
+
171
+ return data;
172
+ }
173
+
174
+ // Generate HTML tables for dependencies
175
+ function generateDependencyTable(dependencies, title) {
176
+ if (Object.keys(dependencies).length === 0) return '';
177
+
178
+ return `
179
+ <div class="dependency-type">${title}</div>
180
+ <table>
181
+ <tr>
182
+ <th>Package</th>
183
+ <th>Version</th>
184
+ <th>License</th>
185
+ <th>Repository</th>
186
+ </tr>
187
+ ${Object.entries(dependencies)
188
+ .map(([name, info]) => `
189
+ <tr>
190
+ <td>${name}</td>
191
+ <td>${info.version}</td>
192
+ <td>${info.license || 'Unknown'}</td>
193
+ <td>${info.repository || 'N/A'}</td>
194
+ </tr>
195
+ `).join('')}
196
+ </table>
197
+ `;
198
+ }
199
+
200
+ // Generate license summary table
201
+ function generateLicenseSummary(licenses) {
202
+ return `
203
+ <table>
204
+ <tr>
205
+ <th>License</th>
206
+ <th>Count</th>
207
+ <th>Packages</th>
208
+ </tr>
209
+ ${Object.entries(licenses)
210
+ .map(([license, info]) => `
211
+ <tr>
212
+ <td>${license}</td>
213
+ <td class="license-count">${info.count}</td>
214
+ <td>${info.packages.join(', ')}</td>
215
+ </tr>
216
+ `).join('')}
217
+ </table>
218
+ `;
219
+ }
220
+
221
+ // Generate the final HTML
222
+ function generateHTML(data) {
223
+ let html = htmlTemplate;
224
+
225
+ // Replace placeholders with actual content
226
+ html = html.replace('{{GENERATED_DATE}}', new Date().toLocaleString());
227
+ html = html.replace('{{PRODUCTION_DEPENDENCIES}}',
228
+ generateDependencyTable(data.production, 'Production Dependencies'));
229
+ html = html.replace('{{DEVELOPMENT_DEPENDENCIES}}',
230
+ generateDependencyTable(data.development, 'Development Dependencies'));
231
+ html = html.replace('{{TRANSITIVE_DEPENDENCIES}}',
232
+ generateDependencyTable(data.transitive, 'Transitive Dependencies'));
233
+ html = html.replace('{{LICENSE_SUMMARY}}',
234
+ generateLicenseSummary(data.licenses));
235
+
236
+ return html;
237
+ }
238
+
239
+ // Run the report generation
240
+ generateDependencyReport();