@wavemaker/angular-codegen 11.10.0-next.NULL → 11.10.1-rc.200

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 (187) hide show
  1. {angular-codegen → package}/angular-app/angular.json +36 -10
  2. {angular-codegen → package}/angular-app/build-scripts/build.js +1 -0
  3. {angular-codegen → package}/angular-app/build-scripts/post-build.js +18 -15
  4. package/angular-app/dependency-report.html +124 -0
  5. package/angular-app/generate-dependency-report.js +240 -0
  6. package/angular-app/npm-shrinkwrap.json +25685 -0
  7. {angular-codegen → package}/angular-app/package-lock.json +11973 -10060
  8. {angular-codegen → package}/angular-app/package.json +38 -26
  9. package/angular-app/src/assets/styles/css/wm-style.css +1 -0
  10. package/angular-app/src/framework/services/customwidget-config-provider.service.ts +13 -0
  11. package/angular-app/src/framework/util/page-util.ts +7 -0
  12. package/angular-app/src/main.ts +67 -0
  13. {angular-codegen → package}/angular-app/src/setup-jest.js +4 -1
  14. {angular-codegen → package}/angular-app/tsconfig.json +37 -44
  15. package/build-angular-app.js +463 -0
  16. package/dependencies/custom-widgets-bundle.cjs.js +415 -0
  17. {angular-codegen → package}/dependencies/expression-parser.cjs.js +13923 -17381
  18. {angular-codegen → package}/dependencies/pipe-provider.cjs.js +38968 -38634
  19. {angular-codegen → package}/dependencies/transpilation-mobile.cjs.js +23783 -23535
  20. {angular-codegen → package}/dependencies/transpilation-web.cjs.js +23814 -23568
  21. {angular-codegen → package}/download-packages.js +13 -1
  22. {angular-codegen → package}/generate-angular-app.js +3 -1
  23. package/npm-shrinkwrap.json +8065 -0
  24. package/package-lock.json +8065 -0
  25. {angular-codegen → package}/package.json +9 -3
  26. package/src/codegen-args-cli.js +1 -0
  27. package/src/codegen-cli.js +1 -0
  28. package/src/codegen.js +1 -0
  29. package/src/copy-utils.js +1 -0
  30. package/src/gen-app-skeleton.js +1 -0
  31. package/src/gen-components.js +1 -0
  32. package/src/gen-customwidget-config.js +1 -0
  33. package/src/gen-index-html.js +1 -0
  34. package/src/handlebar-helpers.js +1 -0
  35. package/src/pages-util.js +1 -0
  36. {angular-codegen → package}/src/project-meta.js +1 -1
  37. package/src/update-angular-json.js +1 -0
  38. package/src/wm-utils.js +1 -0
  39. {angular-codegen → package}/templates/app.module.ts.hbs +5 -1
  40. package/templates/component.config.ts.hbs +1 -0
  41. package/templates/customwidget/customwidget-config.ts.hbs +6 -0
  42. package/templates/customwidget/customwidget.component.script.js.hbs +3 -0
  43. package/templates/customwidget/customwidget.component.ts.hbs +43 -0
  44. {angular-codegen → package}/templates/page/page.module.ts.hbs +12 -1
  45. angular-codegen/angular-app/src/assets/styles/css/wm-style.css +0 -1
  46. angular-codegen/angular-app/src/framework/util/page-util.ts +0 -5
  47. angular-codegen/angular-app/src/main.ts +0 -30
  48. angular-codegen/build-angular-app.js +0 -79
  49. angular-codegen/package-lock.json +0 -6059
  50. angular-codegen/src/codegen-args-cli.js +0 -1
  51. angular-codegen/src/codegen-cli.js +0 -1
  52. angular-codegen/src/codegen.js +0 -1
  53. angular-codegen/src/gen-app-skeleton.js +0 -1
  54. angular-codegen/src/gen-components.js +0 -1
  55. angular-codegen/src/gen-index-html.js +0 -1
  56. angular-codegen/src/handlebar-helpers.js +0 -1
  57. angular-codegen/src/pages-util.js +0 -1
  58. angular-codegen/src/update-angular-json.js +0 -1
  59. angular-codegen/src/wm-utils.js +0 -1
  60. {angular-codegen → package}/.npmrc +0 -0
  61. {angular-codegen → package}/angular-app/.npmrc +0 -0
  62. {angular-codegen → package}/angular-app/build-scripts/index-html-transform.js +0 -0
  63. {angular-codegen → package}/angular-app/build-scripts/optimize-css.gulpfile.js +0 -0
  64. {angular-codegen → package}/angular-app/build-scripts/update-version.js +0 -0
  65. {angular-codegen → package}/angular-app/src/.browserslistrc +0 -0
  66. {angular-codegen → package}/angular-app/src/app/app-codegen.module.ts +0 -0
  67. {angular-codegen → package}/angular-app/src/app/app.component.css +0 -0
  68. {angular-codegen → package}/angular-app/src/app/app.component.script.js +0 -0
  69. {angular-codegen → package}/angular-app/src/app/app.component.variables.ts +0 -0
  70. {angular-codegen → package}/angular-app/src/app/app.routes.ts +0 -0
  71. {angular-codegen → package}/angular-app/src/app/lazy-load-scripts.resolve.ts +0 -0
  72. {angular-codegen → package}/angular-app/src/app/prefabs/prefab-config.js +0 -0
  73. {angular-codegen → package}/angular-app/src/app/wm-project-properties.ts +0 -0
  74. {angular-codegen → package}/angular-app/src/assets/.gitkeep +0 -0
  75. {angular-codegen → package}/angular-app/src/assets/print.css +0 -0
  76. {angular-codegen → package}/angular-app/src/assets/styles/css/bootstrap.css.map +0 -0
  77. {angular-codegen → package}/angular-app/src/assets/styles/css/font/summernote.eot +0 -0
  78. {angular-codegen → package}/angular-app/src/assets/styles/css/font/summernote.ttf +0 -0
  79. {angular-codegen → package}/angular-app/src/assets/styles/css/font/summernote.woff +0 -0
  80. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  81. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  82. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  83. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  84. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  85. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  86. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  87. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  88. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_222222_256x240.png +0 -0
  89. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_2e83ff_256x240.png +0 -0
  90. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_444444_256x240.png +0 -0
  91. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_454545_256x240.png +0 -0
  92. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_555555_256x240.png +0 -0
  93. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_777620_256x240.png +0 -0
  94. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_777777_256x240.png +0 -0
  95. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_888888_256x240.png +0 -0
  96. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_cc0000_256x240.png +0 -0
  97. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_cd0a0a_256x240.png +0 -0
  98. {angular-codegen → package}/angular-app/src/assets/styles/css/images/ui-icons_ffffff_256x240.png +0 -0
  99. {angular-codegen → package}/angular-app/src/assets/styles/css/wm-responsive.css +0 -0
  100. {angular-codegen → package}/angular-app/src/assets/styles/fonts/FontAwesome.otf +0 -0
  101. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.eot +0 -0
  102. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.svg +0 -0
  103. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.ttf +0 -0
  104. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.woff +0 -0
  105. {angular-codegen → package}/angular-app/src/assets/styles/fonts/fontawesome-webfont.woff2 +0 -0
  106. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.eot +0 -0
  107. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.svg +0 -0
  108. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.ttf +0 -0
  109. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.woff +0 -0
  110. {angular-codegen → package}/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.woff2 +0 -0
  111. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wavicon.eot +0 -0
  112. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wavicon.ttf +0 -0
  113. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wavicon.woff +0 -0
  114. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.eot +0 -0
  115. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.ttf +0 -0
  116. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.woff +0 -0
  117. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.eot +0 -0
  118. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.ttf +0 -0
  119. {angular-codegen → package}/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.woff +0 -0
  120. {angular-codegen → package}/angular-app/src/assets/styles/images/live-sync-icon.png +0 -0
  121. {angular-codegen → package}/angular-app/src/assets/styles/images/live-sync-touch-icon.png +0 -0
  122. {angular-codegen → package}/angular-app/src/assets/styles/images/loader.gif +0 -0
  123. {angular-codegen → package}/angular-app/src/assets/styles/images/spinner-small.gif +0 -0
  124. {angular-codegen → package}/angular-app/src/assets/styles/images/ui-icons.png +0 -0
  125. {angular-codegen → package}/angular-app/src/environments/environment.dev.ts +0 -0
  126. {angular-codegen → package}/angular-app/src/environments/environment.prod.ts +0 -0
  127. {angular-codegen → package}/angular-app/src/environments/environment.ts +0 -0
  128. {angular-codegen → package}/angular-app/src/framework/angular1.polyfills.ts +0 -0
  129. {angular-codegen → package}/angular-app/src/framework/services/app-extension.service.ts +0 -0
  130. {angular-codegen → package}/angular-app/src/framework/services/app-js-provider.service.ts +0 -0
  131. {angular-codegen → package}/angular-app/src/framework/services/app-variables-provider.service.ts +0 -0
  132. {angular-codegen → package}/angular-app/src/framework/services/component-ref-provider.service.ts +0 -0
  133. {angular-codegen → package}/angular-app/src/framework/services/lazy-component-ref-provider.service.ts +0 -0
  134. {angular-codegen → package}/angular-app/src/framework/services/prefab-config-provider.service.ts +0 -0
  135. {angular-codegen → package}/angular-app/src/framework/util/lazy-module-routes.ts +0 -0
  136. {angular-codegen → package}/angular-app/src/index.html +0 -0
  137. {angular-codegen → package}/angular-app/src/polyfills.ts +0 -0
  138. {angular-codegen → package}/angular-app/src/styles.css +0 -0
  139. {angular-codegen → package}/angular-app/src/tsconfig.app.json +0 -0
  140. {angular-codegen → package}/angular-app/src/tslint.json +0 -0
  141. {angular-codegen → package}/angular-app/tsconfig.web-app.json +0 -0
  142. {angular-codegen → package}/angular-app/wm-custom-webpack.config.js +0 -0
  143. {angular-codegen → package}/build-util.js +0 -0
  144. {angular-codegen → package}/dependencies/app.component.html +0 -0
  145. {angular-codegen → package}/pwa-assets/icons/icon-128x128.png +0 -0
  146. {angular-codegen → package}/pwa-assets/icons/icon-144x144.png +0 -0
  147. {angular-codegen → package}/pwa-assets/icons/icon-152x152.png +0 -0
  148. {angular-codegen → package}/pwa-assets/icons/icon-192x192.png +0 -0
  149. {angular-codegen → package}/pwa-assets/icons/icon-384x384.png +0 -0
  150. {angular-codegen → package}/pwa-assets/icons/icon-512x512.png +0 -0
  151. {angular-codegen → package}/pwa-assets/icons/icon-72x72.png +0 -0
  152. {angular-codegen → package}/pwa-assets/icons/icon-96x96.png +0 -0
  153. {angular-codegen → package}/pwa-assets/manifest.json +0 -0
  154. {angular-codegen → package}/pwa-assets/ngsw-config.json +0 -0
  155. {angular-codegen → package}/pwa-assets/wmsw-worker.js +0 -0
  156. {angular-codegen → package}/src/expr-parser-utils.js +0 -0
  157. {angular-codegen → package}/src/gen-app-codegen-module.js +0 -0
  158. {angular-codegen → package}/src/gen-app-js.js +0 -0
  159. {angular-codegen → package}/src/gen-app-prefabs-module.js +0 -0
  160. {angular-codegen → package}/src/gen-app-routes.js +0 -0
  161. {angular-codegen → package}/src/gen-app-variables.js +0 -0
  162. {angular-codegen → package}/src/gen-layouts.js +0 -0
  163. {angular-codegen → package}/src/gen-lazy-module-routes.js +0 -0
  164. {angular-codegen → package}/src/gen-prefabs.js +0 -0
  165. {angular-codegen → package}/src/gen-pwa-files.js +0 -0
  166. {angular-codegen → package}/src/gen-tsconfig.js +0 -0
  167. {angular-codegen → package}/src/gen-wm-project-properties.js +0 -0
  168. {angular-codegen → package}/templates/app-codegen.module.ts.hbs +0 -0
  169. {angular-codegen → package}/templates/app-prefabs.module.ts.hbs +0 -0
  170. {angular-codegen → package}/templates/app-routes.ts.hbs +0 -0
  171. {angular-codegen → package}/templates/app.component.script.js.hbs +0 -0
  172. {angular-codegen → package}/templates/component.expressions.ts.hbs +0 -0
  173. {angular-codegen → package}/templates/component.variables.ts.hbs +0 -0
  174. {angular-codegen → package}/templates/expr-vs-fn.hbs +0 -0
  175. {angular-codegen → package}/templates/layout/layout.component.ts.hbs +0 -0
  176. {angular-codegen → package}/templates/layout/layout.module.ts.hbs +0 -0
  177. {angular-codegen → package}/templates/lazy-module-routes.ts.hbs +0 -0
  178. {angular-codegen → package}/templates/page/page.component.script.js.hbs +0 -0
  179. {angular-codegen → package}/templates/page/page.component.ts.hbs +0 -0
  180. {angular-codegen → package}/templates/partial/partial.component.script.js.hbs +0 -0
  181. {angular-codegen → package}/templates/partial/partial.component.ts.hbs +0 -0
  182. {angular-codegen → package}/templates/partial/partial.module.ts.hbs +0 -0
  183. {angular-codegen → package}/templates/prefab/prefab-config.ts.hbs +0 -0
  184. {angular-codegen → package}/templates/prefab/prefab.component.script.js.hbs +0 -0
  185. {angular-codegen → package}/templates/prefab/prefab.component.ts.hbs +0 -0
  186. {angular-codegen → package}/templates/prefab/prefab.module.ts.hbs +0 -0
  187. {angular-codegen → package}/templates/wm-project-properties.ts.hbs +0 -0
@@ -21,19 +21,15 @@
21
21
  "outputPath": "dist/ng-bundle",
22
22
  "index": {
23
23
  "input": "src/index.html",
24
- "output": "../index.html"
24
+ "output": "../../index.html"
25
25
  },
26
26
  "main": "src/main.ts",
27
27
  "polyfills": "src/polyfills.ts",
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",
@@ -6,6 +6,7 @@ if (processArgs.findIndex(arg => arg.startsWith('--max-old-space-size')) !== -1)
6
6
  process.env.NODE_OPTIONS = processArgs.pop();
7
7
  console.log("Setting node options: ", process.env.NODE_OPTIONS);
8
8
  }
9
+
9
10
  const args = processArgs.slice(2);
10
11
  const ngBuildArgs = ['build', ...args];
11
12
  console.log("\x1b[33m", "Angular build params: ", ngBuildArgs);
@@ -6,18 +6,18 @@ const copyFile = util.promisify(fs.copyFile);
6
6
  const exec = util.promisify(require('child_process').exec);
7
7
  const cheerio = require(`cheerio`);
8
8
  const crypto = require(`crypto`);
9
- const opPath = `${process.cwd()}/dist/ng-bundle`;
9
+
10
10
  const copyCssFiles = (hash, updatedFilenames) => {
11
11
  const filename = 'wm-styles.css';
12
12
  const updatedFilename = `wm-styles.${hash}.css`
13
- copyFile(`${opPath}/${filename}`, `${opPath}/${updatedFilename}`);
13
+ copyFile(`${global.opPath}/${filename}`, `${global.opPath}/${updatedFilename}`);
14
14
  updatedFilenames[filename] = updatedFilename;
15
15
  // copyFile(`${opPath}/wm-styles.br.css`,`${opPath}/wm-styles.${hash}.br.css`);
16
16
  // copyFile(`${opPath}/wm-styles.gzip.css`,`${opPath}/wm-styles.${hash}.gzip.css`);
17
17
  };
18
18
  const copyMobileCssFiles = (hash, fileName) => {
19
19
  // const name = filePath.split('.css')[0];
20
- copyFile(`${opPath}/${fileName}.css`, `${opPath}/${fileName}.${hash}.css`);
20
+ copyFile(`${global.opPath}/${fileName}.css`, `${global.opPath}/${fileName}.${hash}.css`);
21
21
  // copyFile(`${opPath}/wm-styles.br.css`,`${opPath}/wm-styles.${hash}.br.css`);
22
22
  // copyFile(`${opPath}/wm-styles.gzip.css`,`${opPath}/wm-styles.${hash}.gzip.css`);
23
23
  };
@@ -32,18 +32,18 @@ const generateHashForScripts = (updatedFilenames) => {
32
32
  //so removed `@` from wavemaker.com in the file name and adding it back in the post-build.js file
33
33
  const scriptsMap = {};
34
34
  return new Promise(resolve => {
35
- fs.readdir(opPath, (err, items) => {
35
+ fs.readdir(global.opPath, (err, items) => {
36
36
  const promises = items.map(i => {
37
37
  const nohashIndex = i.indexOf('-NOHASH.js');
38
38
  if (nohashIndex > 0) {
39
39
  const key = i.substring(0, nohashIndex);
40
- return generateHash(`${opPath}/${i}`).then(hash => {
40
+ return generateHash(`${global.opPath}/${i}`).then(hash => {
41
41
  const filename = `${key}-NOHASH.js`;
42
42
  const updatedFilename = `${key}.${hash}.js`
43
43
  scriptsMap[`${key}.js`] = updatedFilename;
44
44
  updatedFilenames[filename] = updatedFilename;
45
45
  return Promise.all([
46
- copyFile(`${opPath}/${filename}`, `${opPath}/${updatedFilename}`),
46
+ copyFile(`${global.opPath}/${filename}`, `${global.opPath}/${updatedFilename}`),
47
47
  // copyFile(`${opPath}/${key}-NOHASH.br.js`, `${opPath}/${key}.${hash}.br.js`),
48
48
  // copyFile(`${opPath}/${key}-NOHASH.gzip.js`, `${opPath}/${key}.${hash}.gzip.js`)
49
49
  ]);
@@ -51,7 +51,7 @@ const generateHashForScripts = (updatedFilenames) => {
51
51
  }
52
52
  });
53
53
  Promise.all(promises).then(() => {
54
- return writeFile(`${opPath}/path_mapping.json`, JSON.stringify(scriptsMap, null, 2));
54
+ return writeFile(`${global.opPath}/path_mapping.json`, JSON.stringify(scriptsMap, null, 2));
55
55
  }).then(resolve);
56
56
  });
57
57
  });
@@ -81,12 +81,12 @@ const addMobileSpecificStyles = async (deployUrl) => {
81
81
  }
82
82
 
83
83
  if (isProdBuild) {
84
- let hash = await generateHash(`${opPath}/wm-android-styles.css`);
84
+ let hash = await generateHash(`${global.opPath}/wm-android-styles.css`);
85
85
  copyMobileCssFiles(hash, 'wm-android-styles');
86
86
  $("head").append(
87
87
  `<link rel="stylesheet" theme="wmtheme" href="${deployUrl}wm-android-styles.${hash}.css" >`
88
88
  );
89
- hash = await generateHash(`${opPath}/wm-ios-styles.css`);
89
+ hash = await generateHash(`${global.opPath}/wm-ios-styles.css`);
90
90
  copyMobileCssFiles(hash, 'wm-ios-styles');
91
91
  $("head").append(
92
92
  `<link rel="stylesheet" theme="wmtheme" href="${deployUrl}wm-ios-styles.${hash}.css" >`
@@ -248,16 +248,17 @@ const generateSha1 = (content) => {
248
248
  const angularJson = require(`${process.cwd()}/angular.json`);
249
249
  const build = angularJson['projects']['angular-app']['architect']['build'];
250
250
  let deployUrl = args['deploy-url'] || build['options']['deployUrl'];
251
-
251
+ global.randomHash = deployUrl.split('/')[1];
252
+ let outputPath = global.opPath = args['output-path'] || build['options']['outputPath']
252
253
  const contents = await readFile(`./dist/index.html`, `utf8`);
253
254
  $ = cheerio.load(contents);
254
255
  setMobileProjectType(angularJson);
255
256
  if (!isMobileProject) {
256
- isProdBuild = fs.existsSync(`${process.cwd()}/dist/ng-bundle/wm-styles.css`);
257
- isDevBuild = fs.existsSync(`${process.cwd()}/dist/ng-bundle/wm-styles.js`);
257
+ isProdBuild = fs.existsSync(`${process.cwd()}/${outputPath}/wm-styles.css`);
258
+ isDevBuild = fs.existsSync(`${process.cwd()}/${outputPath}/wm-styles.js`);
258
259
  } else {
259
- isDevBuild = fs.existsSync(`${process.cwd()}/dist/ng-bundle/wm-android-styles.js`);
260
- isProdBuild = fs.existsSync(`${process.cwd()}/dist/ng-bundle/wm-android-styles.css`);
260
+ isDevBuild = fs.existsSync(`${process.cwd()}/${outputPath}/wm-android-styles.js`);
261
+ isProdBuild = fs.existsSync(`${process.cwd()}/${outputPath}/wm-android-styles.css`);
261
262
  }
262
263
 
263
264
  if (isProdBuild) {
@@ -282,7 +283,7 @@ const generateSha1 = (content) => {
282
283
  wm_styles_path = `${deployUrl}wm-styles.js`;
283
284
  } else {
284
285
  const fileName = 'wm-styles';
285
- const hash = await generateHash(`${opPath}/${fileName}.css`);
286
+ const hash = await generateHash(`${global.opPath}/${fileName}.css`);
286
287
  copyCssFiles(hash, updatedFilenames);
287
288
  const updatedFileName = `${fileName}.${hash}.css`
288
289
  wm_styles_path = `${deployUrl}${updatedFileName}`;
@@ -294,6 +295,8 @@ const generateSha1 = (content) => {
294
295
 
295
296
  //this is required to download all the assets
296
297
  $('head').append(`<meta name="deployUrl" content=${deployUrl} />`);
298
+ $('script[src$="services/application/wmProperties.js"]').remove();
299
+ $('link[href$="favicon.png"]').attr('href', `${deployUrl}favicon.png`);
297
300
 
298
301
  const htmlContent = $.html();
299
302
  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: 2/2/2025, 5:50:28 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();