@kosdev-code/kos-nx-plugin 0.1.0-dev.5053

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 (416) hide show
  1. package/README.md +11 -0
  2. package/generators.json +80 -0
  3. package/migrations.json +86 -0
  4. package/package.json +25 -0
  5. package/src/generators/kos-add-future-to-model/README.md +106 -0
  6. package/src/generators/kos-add-future-to-model/generator.d.ts +5 -0
  7. package/src/generators/kos-add-future-to-model/generator.d.ts.map +1 -0
  8. package/src/generators/kos-add-future-to-model/generator.js +63 -0
  9. package/src/generators/kos-add-future-to-model/generator.js.map +1 -0
  10. package/src/generators/kos-add-future-to-model/lib/model-transformer.d.ts +22 -0
  11. package/src/generators/kos-add-future-to-model/lib/model-transformer.d.ts.map +1 -0
  12. package/src/generators/kos-add-future-to-model/lib/model-transformer.js +313 -0
  13. package/src/generators/kos-add-future-to-model/lib/model-transformer.js.map +1 -0
  14. package/src/generators/kos-add-future-to-model/lib/normalize-options.d.ts +4 -0
  15. package/src/generators/kos-add-future-to-model/lib/normalize-options.d.ts.map +1 -0
  16. package/src/generators/kos-add-future-to-model/lib/normalize-options.js +54 -0
  17. package/src/generators/kos-add-future-to-model/lib/normalize-options.js.map +1 -0
  18. package/src/generators/kos-add-future-to-model/lib/registration-transformer.d.ts +11 -0
  19. package/src/generators/kos-add-future-to-model/lib/registration-transformer.d.ts.map +1 -0
  20. package/src/generators/kos-add-future-to-model/lib/registration-transformer.js +73 -0
  21. package/src/generators/kos-add-future-to-model/lib/registration-transformer.js.map +1 -0
  22. package/src/generators/kos-add-future-to-model/lib/service-transformer.d.ts +13 -0
  23. package/src/generators/kos-add-future-to-model/lib/service-transformer.d.ts.map +1 -0
  24. package/src/generators/kos-add-future-to-model/lib/service-transformer.js +178 -0
  25. package/src/generators/kos-add-future-to-model/lib/service-transformer.js.map +1 -0
  26. package/src/generators/kos-add-future-to-model/schema.d.ts +24 -0
  27. package/src/generators/kos-add-future-to-model/schema.json +59 -0
  28. package/src/generators/kos-companion-model/files/types/index.d.ts.template +11 -0
  29. package/src/generators/kos-companion-model/generator.d.ts +5 -0
  30. package/src/generators/kos-companion-model/generator.d.ts.map +1 -0
  31. package/src/generators/kos-companion-model/generator.js +45 -0
  32. package/src/generators/kos-companion-model/generator.js.map +1 -0
  33. package/src/generators/kos-companion-model/schema.d.ts +7 -0
  34. package/src/generators/kos-companion-model/schema.json +36 -0
  35. package/src/generators/kos-component/README.md +474 -0
  36. package/src/generators/kos-component/control-pour/__nameDashCase__.stories.tsx__template__ +30 -0
  37. package/src/generators/kos-component/control-pour/__nameDashCase__.tsx__template__ +35 -0
  38. package/src/generators/kos-component/control-pour/index.ts__template__ +1 -0
  39. package/src/generators/kos-component/cui/__nameDashCase__.stories.tsx__template__ +30 -0
  40. package/src/generators/kos-component/cui/__nameDashCase__.tsx__template__ +35 -0
  41. package/src/generators/kos-component/cui/index.ts__template__ +1 -0
  42. package/src/generators/kos-component/custom/__nameDashCase__.stories.tsx__template__ +31 -0
  43. package/src/generators/kos-component/custom/__nameDashCase__.tsx__template__ +53 -0
  44. package/src/generators/kos-component/custom/index.ts__template__ +1 -0
  45. package/src/generators/kos-component/files/__nameDashCase__.css__template__ +2 -0
  46. package/src/generators/kos-component/files/__nameDashCase__.tsx__template__ +26 -0
  47. package/src/generators/kos-component/files/index.ts__template__ +1 -0
  48. package/src/generators/kos-component/generator.d.ts +8 -0
  49. package/src/generators/kos-component/generator.d.ts.map +1 -0
  50. package/src/generators/kos-component/generator.js +100 -0
  51. package/src/generators/kos-component/generator.js.map +1 -0
  52. package/src/generators/kos-component/index.d.ts +5 -0
  53. package/src/generators/kos-component/index.d.ts.map +1 -0
  54. package/src/generators/kos-component/index.js +12 -0
  55. package/src/generators/kos-component/index.js.map +1 -0
  56. package/src/generators/kos-component/nav/__nameDashCase__.stories.tsx__template__ +30 -0
  57. package/src/generators/kos-component/nav/__nameDashCase__.tsx__template__ +27 -0
  58. package/src/generators/kos-component/nav/index.ts__template__ +1 -0
  59. package/src/generators/kos-component/plugin-handlers/base.d.ts +47 -0
  60. package/src/generators/kos-component/plugin-handlers/base.d.ts.map +1 -0
  61. package/src/generators/kos-component/plugin-handlers/base.js +42 -0
  62. package/src/generators/kos-component/plugin-handlers/base.js.map +1 -0
  63. package/src/generators/kos-component/plugin-handlers/control-pour-handler.d.ts +9 -0
  64. package/src/generators/kos-component/plugin-handlers/control-pour-handler.d.ts.map +1 -0
  65. package/src/generators/kos-component/plugin-handlers/control-pour-handler.js +31 -0
  66. package/src/generators/kos-component/plugin-handlers/control-pour-handler.js.map +1 -0
  67. package/src/generators/kos-component/plugin-handlers/cui-handler.d.ts +9 -0
  68. package/src/generators/kos-component/plugin-handlers/cui-handler.d.ts.map +1 -0
  69. package/src/generators/kos-component/plugin-handlers/cui-handler.js +31 -0
  70. package/src/generators/kos-component/plugin-handlers/cui-handler.js.map +1 -0
  71. package/src/generators/kos-component/plugin-handlers/custom-handler.d.ts +11 -0
  72. package/src/generators/kos-component/plugin-handlers/custom-handler.d.ts.map +1 -0
  73. package/src/generators/kos-component/plugin-handlers/custom-handler.js +45 -0
  74. package/src/generators/kos-component/plugin-handlers/custom-handler.js.map +1 -0
  75. package/src/generators/kos-component/plugin-handlers/default-handler.d.ts +14 -0
  76. package/src/generators/kos-component/plugin-handlers/default-handler.d.ts.map +1 -0
  77. package/src/generators/kos-component/plugin-handlers/default-handler.js +37 -0
  78. package/src/generators/kos-component/plugin-handlers/default-handler.js.map +1 -0
  79. package/src/generators/kos-component/plugin-handlers/factory.d.ts +10 -0
  80. package/src/generators/kos-component/plugin-handlers/factory.d.ts.map +1 -0
  81. package/src/generators/kos-component/plugin-handlers/factory.js +44 -0
  82. package/src/generators/kos-component/plugin-handlers/factory.js.map +1 -0
  83. package/src/generators/kos-component/plugin-handlers/nav-handler.d.ts +9 -0
  84. package/src/generators/kos-component/plugin-handlers/nav-handler.d.ts.map +1 -0
  85. package/src/generators/kos-component/plugin-handlers/nav-handler.js +32 -0
  86. package/src/generators/kos-component/plugin-handlers/nav-handler.js.map +1 -0
  87. package/src/generators/kos-component/plugin-handlers/setting-handler.d.ts +9 -0
  88. package/src/generators/kos-component/plugin-handlers/setting-handler.d.ts.map +1 -0
  89. package/src/generators/kos-component/plugin-handlers/setting-handler.js +32 -0
  90. package/src/generators/kos-component/plugin-handlers/setting-handler.js.map +1 -0
  91. package/src/generators/kos-component/plugin-handlers/setup-handler.d.ts +9 -0
  92. package/src/generators/kos-component/plugin-handlers/setup-handler.d.ts.map +1 -0
  93. package/src/generators/kos-component/plugin-handlers/setup-handler.js +32 -0
  94. package/src/generators/kos-component/plugin-handlers/setup-handler.js.map +1 -0
  95. package/src/generators/kos-component/plugin-handlers/trouble-action-handler.d.ts +9 -0
  96. package/src/generators/kos-component/plugin-handlers/trouble-action-handler.d.ts.map +1 -0
  97. package/src/generators/kos-component/plugin-handlers/trouble-action-handler.js +32 -0
  98. package/src/generators/kos-component/plugin-handlers/trouble-action-handler.js.map +1 -0
  99. package/src/generators/kos-component/plugin-handlers/utility-handler.d.ts +9 -0
  100. package/src/generators/kos-component/plugin-handlers/utility-handler.d.ts.map +1 -0
  101. package/src/generators/kos-component/plugin-handlers/utility-handler.js +32 -0
  102. package/src/generators/kos-component/plugin-handlers/utility-handler.js.map +1 -0
  103. package/src/generators/kos-component/schema.d.ts +21 -0
  104. package/src/generators/kos-component/schema.json +100 -0
  105. package/src/generators/kos-component/setting/__nameDashCase__.stories.tsx__template__ +30 -0
  106. package/src/generators/kos-component/setting/__nameDashCase__.tsx__template__ +27 -0
  107. package/src/generators/kos-component/setting/index.ts__template__ +1 -0
  108. package/src/generators/kos-component/setup/__nameDashCase__.stories.tsx__template__ +30 -0
  109. package/src/generators/kos-component/setup/__nameDashCase__.tsx__template__ +33 -0
  110. package/src/generators/kos-component/setup/index.ts__template__ +1 -0
  111. package/src/generators/kos-component/trouble-action/__nameDashCase__.stories.tsx__template__ +30 -0
  112. package/src/generators/kos-component/trouble-action/__nameDashCase__.tsx__template__ +58 -0
  113. package/src/generators/kos-component/trouble-action/index.ts__template__ +1 -0
  114. package/src/generators/kos-component/types.d.ts +55 -0
  115. package/src/generators/kos-component/types.d.ts.map +1 -0
  116. package/src/generators/kos-component/types.js +48 -0
  117. package/src/generators/kos-component/types.js.map +1 -0
  118. package/src/generators/kos-component/utility/__nameDashCase__.stories.tsx__template__ +30 -0
  119. package/src/generators/kos-component/utility/__nameDashCase__.tsx__template__ +47 -0
  120. package/src/generators/kos-component/utility/index.ts__template__ +1 -0
  121. package/src/generators/kos-component/utils/file-generator.d.ts +7 -0
  122. package/src/generators/kos-component/utils/file-generator.d.ts.map +1 -0
  123. package/src/generators/kos-component/utils/file-generator.js +26 -0
  124. package/src/generators/kos-component/utils/file-generator.js.map +1 -0
  125. package/src/generators/kos-component/utils/kos-config-builder.d.ts +27 -0
  126. package/src/generators/kos-component/utils/kos-config-builder.d.ts.map +1 -0
  127. package/src/generators/kos-component/utils/kos-config-builder.js +82 -0
  128. package/src/generators/kos-component/utils/kos-config-builder.js.map +1 -0
  129. package/src/generators/kos-component/utils/localization.d.ts +7 -0
  130. package/src/generators/kos-component/utils/localization.d.ts.map +1 -0
  131. package/src/generators/kos-component/utils/localization.js +29 -0
  132. package/src/generators/kos-component/utils/localization.js.map +1 -0
  133. package/src/generators/kos-component/utils/validation.d.ts +18 -0
  134. package/src/generators/kos-component/utils/validation.d.ts.map +1 -0
  135. package/src/generators/kos-component/utils/validation.js +65 -0
  136. package/src/generators/kos-component/utils/validation.js.map +1 -0
  137. package/src/generators/kos-container-model/files/model/__nameDashCase__-model.ts.template +68 -0
  138. package/src/generators/kos-container-model/files/model/index.ts.template +13 -0
  139. package/src/generators/kos-container-model/files/model/types/index.d.ts.template +24 -0
  140. package/src/generators/kos-container-model/files/services/__modelNameDashCase__-services.ts.template +22 -0
  141. package/src/generators/kos-container-model/files/services/index.ts.template +1 -0
  142. package/src/generators/kos-container-model/generator.d.ts +5 -0
  143. package/src/generators/kos-container-model/generator.d.ts.map +1 -0
  144. package/src/generators/kos-container-model/generator.js +74 -0
  145. package/src/generators/kos-container-model/generator.js.map +1 -0
  146. package/src/generators/kos-container-model/lib/normalize-options.d.ts +4 -0
  147. package/src/generators/kos-container-model/lib/normalize-options.d.ts.map +1 -0
  148. package/src/generators/kos-container-model/lib/normalize-options.js +32 -0
  149. package/src/generators/kos-container-model/lib/normalize-options.js.map +1 -0
  150. package/src/generators/kos-container-model/lib/normalize-value.d.ts +7 -0
  151. package/src/generators/kos-container-model/lib/normalize-value.d.ts.map +1 -0
  152. package/src/generators/kos-container-model/lib/normalize-value.js +28 -0
  153. package/src/generators/kos-container-model/lib/normalize-value.js.map +1 -0
  154. package/src/generators/kos-container-model/lib/utils/name-utils.d.ts +6 -0
  155. package/src/generators/kos-container-model/lib/utils/name-utils.d.ts.map +1 -0
  156. package/src/generators/kos-container-model/lib/utils/name-utils.js +53 -0
  157. package/src/generators/kos-container-model/lib/utils/name-utils.js.map +1 -0
  158. package/src/generators/kos-container-model/lib/utils/ts-visitor.d.ts +8 -0
  159. package/src/generators/kos-container-model/lib/utils/ts-visitor.d.ts.map +1 -0
  160. package/src/generators/kos-container-model/lib/utils/ts-visitor.js +122 -0
  161. package/src/generators/kos-container-model/lib/utils/ts-visitor.js.map +1 -0
  162. package/src/generators/kos-container-model/schema.d.ts +35 -0
  163. package/src/generators/kos-container-model/schema.json +50 -0
  164. package/src/generators/kos-content-project/files/assets/.gitkeep +2 -0
  165. package/src/generators/kos-content-project/files/vite.config.ts.template +48 -0
  166. package/src/generators/kos-content-project/generator.d.ts +5 -0
  167. package/src/generators/kos-content-project/generator.d.ts.map +1 -0
  168. package/src/generators/kos-content-project/generator.js +55 -0
  169. package/src/generators/kos-content-project/generator.js.map +1 -0
  170. package/src/generators/kos-content-project/schema.d.ts +3 -0
  171. package/src/generators/kos-content-project/schema.json +18 -0
  172. package/src/generators/kos-context/files/__nameDashCase__-provider.tsx.template +40 -0
  173. package/src/generators/kos-context/files/index.ts.template +1 -0
  174. package/src/generators/kos-context/generator.d.ts +5 -0
  175. package/src/generators/kos-context/generator.d.ts.map +1 -0
  176. package/src/generators/kos-context/generator.js +56 -0
  177. package/src/generators/kos-context/generator.js.map +1 -0
  178. package/src/generators/kos-context/schema.d.ts +14 -0
  179. package/src/generators/kos-context/schema.json +36 -0
  180. package/src/generators/kos-hook/files/index.ts.template +2 -0
  181. package/src/generators/kos-hook/files/use-__nameDashCase__.ts.template +13 -0
  182. package/src/generators/kos-hook/files/with-__nameDashCase__.tsx.template +28 -0
  183. package/src/generators/kos-hook/generator.d.ts +5 -0
  184. package/src/generators/kos-hook/generator.d.ts.map +1 -0
  185. package/src/generators/kos-hook/generator.js +56 -0
  186. package/src/generators/kos-hook/generator.js.map +1 -0
  187. package/src/generators/kos-hook/schema.d.ts +21 -0
  188. package/src/generators/kos-hook/schema.json +36 -0
  189. package/src/generators/kos-i18n-project/files/.kos.json.template +8 -0
  190. package/src/generators/kos-i18n-project/files/src/assets/locales/en/__nameDashCase__.json.template +3 -0
  191. package/src/generators/kos-i18n-project/generator.d.ts +5 -0
  192. package/src/generators/kos-i18n-project/generator.d.ts.map +1 -0
  193. package/src/generators/kos-i18n-project/generator.js +82 -0
  194. package/src/generators/kos-i18n-project/generator.js.map +1 -0
  195. package/src/generators/kos-i18n-project/schema.d.ts +3 -0
  196. package/src/generators/kos-i18n-project/schema.json +18 -0
  197. package/src/generators/kos-init/generator.d.ts +5 -0
  198. package/src/generators/kos-init/generator.d.ts.map +1 -0
  199. package/src/generators/kos-init/generator.js +43 -0
  200. package/src/generators/kos-init/generator.js.map +1 -0
  201. package/src/generators/kos-init/schema.d.ts +5 -0
  202. package/src/generators/kos-init/schema.json +29 -0
  203. package/src/generators/kos-model/files/model/__nameDashCase__-model.ts.template +135 -0
  204. package/src/generators/kos-model/files/model/index.ts__template__ +9 -0
  205. package/src/generators/kos-model/files/model/types/index.d.ts.template +7 -0
  206. package/src/generators/kos-model/files/services/__nameDashCase__-services.ts.template +58 -0
  207. package/src/generators/kos-model/files/services/index.ts.template +1 -0
  208. package/src/generators/kos-model/generator.d.ts +5 -0
  209. package/src/generators/kos-model/generator.d.ts.map +1 -0
  210. package/src/generators/kos-model/generator.js +117 -0
  211. package/src/generators/kos-model/generator.js.map +1 -0
  212. package/src/generators/kos-model/lib/normalize-options.d.ts +4 -0
  213. package/src/generators/kos-model/lib/normalize-options.d.ts.map +1 -0
  214. package/src/generators/kos-model/lib/normalize-options.js +35 -0
  215. package/src/generators/kos-model/lib/normalize-options.js.map +1 -0
  216. package/src/generators/kos-model/lib/normalize-value.d.ts +7 -0
  217. package/src/generators/kos-model/lib/normalize-value.d.ts.map +1 -0
  218. package/src/generators/kos-model/lib/normalize-value.js +28 -0
  219. package/src/generators/kos-model/lib/normalize-value.js.map +1 -0
  220. package/src/generators/kos-model/lib/utils/name-utils.d.ts +6 -0
  221. package/src/generators/kos-model/lib/utils/name-utils.d.ts.map +1 -0
  222. package/src/generators/kos-model/lib/utils/name-utils.js +42 -0
  223. package/src/generators/kos-model/lib/utils/name-utils.js.map +1 -0
  224. package/src/generators/kos-model/lib/utils/ts-visitor.d.ts +8 -0
  225. package/src/generators/kos-model/lib/utils/ts-visitor.d.ts.map +1 -0
  226. package/src/generators/kos-model/lib/utils/ts-visitor.js +126 -0
  227. package/src/generators/kos-model/lib/utils/ts-visitor.js.map +1 -0
  228. package/src/generators/kos-model/schema.d.ts +44 -0
  229. package/src/generators/kos-model/schema.json +137 -0
  230. package/src/generators/kos-plugin-project/files/.env.template +7 -0
  231. package/src/generators/kos-plugin-project/files/.kos.json.template +41 -0
  232. package/src/generators/kos-plugin-project/files/.storybook/main.ts.template +45 -0
  233. package/src/generators/kos-plugin-project/files/.storybook/preview.tsx.template +80 -0
  234. package/src/generators/kos-plugin-project/files/.storybook/registration.ts.template +40 -0
  235. package/src/generators/kos-plugin-project/files/index.html.template +15 -0
  236. package/src/generators/kos-plugin-project/files/module-federation.config.ts.template +1 -0
  237. package/src/generators/kos-plugin-project/files/src/app/app.css.template +2 -0
  238. package/src/generators/kos-plugin-project/files/src/app/app.tsx.template +54 -0
  239. package/src/generators/kos-plugin-project/files/src/app/components/main-view/index.ts.template +1 -0
  240. package/src/generators/kos-plugin-project/files/src/app/components/main-view/main-view.tsx.template +14 -0
  241. package/src/generators/kos-plugin-project/files/src/app/tools/experience-resolver.ts.template +10 -0
  242. package/src/generators/kos-plugin-project/files/src/app/tools/index.ts.template +2 -0
  243. package/src/generators/kos-plugin-project/files/src/app/tools/kOSJSON.ts.template +1 -0
  244. package/src/generators/kos-plugin-project/files/src/assets/kos-logo.svg.template +4 -0
  245. package/src/generators/kos-plugin-project/files/src/assets/locales/en/__nameDashCase__.json.template +3 -0
  246. package/src/generators/kos-plugin-project/files/src/registration.ts.template +13 -0
  247. package/src/generators/kos-plugin-project/files/webpack.config.prod.ts.template +24 -0
  248. package/src/generators/kos-plugin-project/files/webpack.config.ts.template +7 -0
  249. package/src/generators/kos-plugin-project/generator.d.ts +5 -0
  250. package/src/generators/kos-plugin-project/generator.d.ts.map +1 -0
  251. package/src/generators/kos-plugin-project/generator.js +108 -0
  252. package/src/generators/kos-plugin-project/generator.js.map +1 -0
  253. package/src/generators/kos-plugin-project/schema.d.ts +5 -0
  254. package/src/generators/kos-plugin-project/schema.json +33 -0
  255. package/src/generators/kos-splash-project/files/project/.kos.json.template +8 -0
  256. package/src/generators/kos-splash-project/files/project/project.json.template +17 -0
  257. package/src/generators/kos-splash-project/files/project/src/start.html.template +13 -0
  258. package/src/generators/kos-splash-project/files/tools/splashtool.mjs.template +247 -0
  259. package/src/generators/kos-splash-project/generator.d.ts +5 -0
  260. package/src/generators/kos-splash-project/generator.d.ts.map +1 -0
  261. package/src/generators/kos-splash-project/generator.js +17 -0
  262. package/src/generators/kos-splash-project/generator.js.map +1 -0
  263. package/src/generators/kos-splash-project/schema.d.ts +3 -0
  264. package/src/generators/kos-splash-project/schema.json +18 -0
  265. package/src/generators/kos-theme-project/files/.kos.json.template +8 -0
  266. package/src/generators/kos-theme-project/files/theme/component.css.template +2 -0
  267. package/src/generators/kos-theme-project/files/theme/generic.css.template +2 -0
  268. package/src/generators/kos-theme-project/files/theme/semantic.css.template +2 -0
  269. package/src/generators/kos-theme-project/files/theme/theme-overlay.css.template +7 -0
  270. package/src/generators/kos-theme-project/files/vite.config.ts.template +48 -0
  271. package/src/generators/kos-theme-project/generator.d.ts +5 -0
  272. package/src/generators/kos-theme-project/generator.d.ts.map +1 -0
  273. package/src/generators/kos-theme-project/generator.js +54 -0
  274. package/src/generators/kos-theme-project/generator.js.map +1 -0
  275. package/src/generators/kos-theme-project/schema.d.ts +3 -0
  276. package/src/generators/kos-theme-project/schema.json +18 -0
  277. package/src/generators/kos-ui-project/files/.env.template +7 -0
  278. package/src/generators/kos-ui-project/files/.kos.json.template +8 -0
  279. package/src/generators/kos-ui-project/files/bootstrap.tsx.template +13 -0
  280. package/src/generators/kos-ui-project/files/main.ts.template +18 -0
  281. package/src/generators/kos-ui-project/files/src/app/app.css.template +129 -0
  282. package/src/generators/kos-ui-project/files/src/app/app.tsx.template +45 -0
  283. package/src/generators/kos-ui-project/files/src/app/components/main-view/index.ts.template +1 -0
  284. package/src/generators/kos-ui-project/files/src/app/components/main-view/main-view.tsx.template +79 -0
  285. package/src/generators/kos-ui-project/files/src/app/registration.ts.template +17 -0
  286. package/src/generators/kos-ui-project/files/src/assets/graphics.png.template +0 -0
  287. package/src/generators/kos-ui-project/files/src/assets/kos-logo.svg.template +4 -0
  288. package/src/generators/kos-ui-project/files/src/assets/locales/en/__nameDashCase__.json.template +4 -0
  289. package/src/generators/kos-ui-project/files/src/bootstrap.tsx.template +13 -0
  290. package/src/generators/kos-ui-project/files/src/index.html.template +14 -0
  291. package/src/generators/kos-ui-project/files/webpack.config.ts.template +45 -0
  292. package/src/generators/kos-ui-project/generator.d.ts +5 -0
  293. package/src/generators/kos-ui-project/generator.d.ts.map +1 -0
  294. package/src/generators/kos-ui-project/generator.js +135 -0
  295. package/src/generators/kos-ui-project/generator.js.map +1 -0
  296. package/src/generators/kos-ui-project/internal/vite.config.ts.template +49 -0
  297. package/src/generators/kos-ui-project/schema.d.ts +7 -0
  298. package/src/generators/kos-ui-project/schema.json +34 -0
  299. package/src/generators/preset/api/utils/service.ts.template +20 -0
  300. package/src/generators/preset/files/.env.template +7 -0
  301. package/src/generators/preset/files/.kos.json.template +8 -0
  302. package/src/generators/preset/files/src/app/app.css.template +128 -0
  303. package/src/generators/preset/files/src/app/app.tsx.template +38 -0
  304. package/src/generators/preset/files/src/app/components/main-view/index.ts.template +1 -0
  305. package/src/generators/preset/files/src/app/components/main-view/main-view.tsx.template +79 -0
  306. package/src/generators/preset/files/src/app/registration.ts.template +20 -0
  307. package/src/generators/preset/files/src/assets/graphics.png +0 -0
  308. package/src/generators/preset/files/src/assets/kos-logo.svg.template +30 -0
  309. package/src/generators/preset/files/src/assets/locales/en/__nameDashCase__.json.template +4 -0
  310. package/src/generators/preset/files/src/bootstrap.tsx.template +13 -0
  311. package/src/generators/preset/files/src/index.html.template +15 -0
  312. package/src/generators/preset/files/src/main.ts.template +6 -0
  313. package/src/generators/preset/files/webpack.config.ts.template +45 -0
  314. package/src/generators/preset/generator.d.ts +5 -0
  315. package/src/generators/preset/generator.d.ts.map +1 -0
  316. package/src/generators/preset/generator.js +275 -0
  317. package/src/generators/preset/generator.js.map +1 -0
  318. package/src/generators/preset/local/.env.local.template +5 -0
  319. package/src/generators/preset/local/README.md.template +88 -0
  320. package/src/generators/preset/model/.kos.json.template +15 -0
  321. package/src/generators/preset/model-components/.kos.json.template +8 -0
  322. package/src/generators/preset/root/.kos.json.template +10 -0
  323. package/src/generators/preset/schema.d.ts +8 -0
  324. package/src/generators/preset/schema.json +14 -0
  325. package/src/generators/preset/tools/tools/scripts/archiver.js.template +79 -0
  326. package/src/generators/preset/tools/tools/scripts/descriptor.mjs.template +114 -0
  327. package/src/generators/preset/tools/tools/scripts/generate-api-types.mjs.template +25 -0
  328. package/src/generators/preset/tools/tools/scripts/kabtool.mjs.template +87 -0
  329. package/src/generators/preset/tools/tools/scripts/update.mjs.template +88 -0
  330. package/src/generators/preset/tools/tools/tsconfig.tools.json.template +12 -0
  331. package/src/index.d.ts +1 -0
  332. package/src/index.d.ts.map +1 -0
  333. package/src/index.js +2 -0
  334. package/src/index.js.map +1 -0
  335. package/src/migrations/add-overrides/add-overrides.d.ts +3 -0
  336. package/src/migrations/add-overrides/add-overrides.d.ts.map +1 -0
  337. package/src/migrations/add-overrides/add-overrides.js +85 -0
  338. package/src/migrations/add-overrides/add-overrides.js.map +1 -0
  339. package/src/migrations/add-overrides/files/.env.local__template__ +5 -0
  340. package/src/migrations/add-overrides/files/tools/scripts/archiver.js__template__ +79 -0
  341. package/src/migrations/add-overrides/files/tools/scripts/kabtool.mjs__template__ +85 -0
  342. package/src/migrations/add-overrides/projectFiles/.kos.json__template__ +5 -0
  343. package/src/migrations/add-update-tool/files/tools/scripts/update.mjs.template +67 -0
  344. package/src/migrations/add-update-tool/migrate.d.ts +3 -0
  345. package/src/migrations/add-update-tool/migrate.d.ts.map +1 -0
  346. package/src/migrations/add-update-tool/migrate.js +24 -0
  347. package/src/migrations/add-update-tool/migrate.js.map +1 -0
  348. package/src/migrations/cms-sdk/cms-sdk.d.ts +3 -0
  349. package/src/migrations/cms-sdk/cms-sdk.d.ts.map +1 -0
  350. package/src/migrations/cms-sdk/cms-sdk.js +22 -0
  351. package/src/migrations/cms-sdk/cms-sdk.js.map +1 -0
  352. package/src/migrations/consolidate-sdk/api/utils/service.ts.template +15 -0
  353. package/src/migrations/consolidate-sdk/consolidate-sdk.d.ts +3 -0
  354. package/src/migrations/consolidate-sdk/consolidate-sdk.d.ts.map +1 -0
  355. package/src/migrations/consolidate-sdk/consolidate-sdk.js +100 -0
  356. package/src/migrations/consolidate-sdk/consolidate-sdk.js.map +1 -0
  357. package/src/migrations/consolidate-sdk/files/tools/scripts/generate-api-types.mjs.template +25 -0
  358. package/src/migrations/default-projects/default-projects.d.ts +3 -0
  359. package/src/migrations/default-projects/default-projects.d.ts.map +1 -0
  360. package/src/migrations/default-projects/default-projects.js +45 -0
  361. package/src/migrations/default-projects/default-projects.js.map +1 -0
  362. package/src/migrations/default-projects/files/index.ts__template__ +2 -0
  363. package/src/migrations/freestyle-sdk/freestyle-sdk.d.ts +3 -0
  364. package/src/migrations/freestyle-sdk/freestyle-sdk.d.ts.map +1 -0
  365. package/src/migrations/freestyle-sdk/freestyle-sdk.js +18 -0
  366. package/src/migrations/freestyle-sdk/freestyle-sdk.js.map +1 -0
  367. package/src/migrations/kabtool-env/migrate.d.ts +3 -0
  368. package/src/migrations/kabtool-env/migrate.d.ts.map +1 -0
  369. package/src/migrations/kabtool-env/migrate.js +11 -0
  370. package/src/migrations/kabtool-env/migrate.js.map +1 -0
  371. package/src/migrations/migrate-extensions/migrate-extensions.d.ts +3 -0
  372. package/src/migrations/migrate-extensions/migrate-extensions.d.ts.map +1 -0
  373. package/src/migrations/migrate-extensions/migrate-extensions.js +77 -0
  374. package/src/migrations/migrate-extensions/migrate-extensions.js.map +1 -0
  375. package/src/migrations/translation-format/translation-format.d.ts +3 -0
  376. package/src/migrations/translation-format/translation-format.d.ts.map +1 -0
  377. package/src/migrations/translation-format/translation-format.js +56 -0
  378. package/src/migrations/translation-format/translation-format.js.map +1 -0
  379. package/src/migrations/translations/add-descriptor.d.ts +3 -0
  380. package/src/migrations/translations/add-descriptor.d.ts.map +1 -0
  381. package/src/migrations/translations/add-descriptor.js +48 -0
  382. package/src/migrations/translations/add-descriptor.js.map +1 -0
  383. package/src/migrations/translations/files/tools/scripts/descriptor.mjs.template +114 -0
  384. package/src/migrations/update-kabtool/files/tools/scripts/kabtool.mjs.template +87 -0
  385. package/src/migrations/update-kabtool/update-kabtool.d.ts +3 -0
  386. package/src/migrations/update-kabtool/update-kabtool.d.ts.map +1 -0
  387. package/src/migrations/update-kabtool/update-kabtool.js +11 -0
  388. package/src/migrations/update-kabtool/update-kabtool.js.map +1 -0
  389. package/src/migrations/update-sdk/update-sdk.d.ts +3 -0
  390. package/src/migrations/update-sdk/update-sdk.d.ts.map +1 -0
  391. package/src/migrations/update-sdk/update-sdk.js +17 -0
  392. package/src/migrations/update-sdk/update-sdk.js.map +1 -0
  393. package/src/migrations/update-sdk-2.0/update.d.ts +3 -0
  394. package/src/migrations/update-sdk-2.0/update.d.ts.map +1 -0
  395. package/src/migrations/update-sdk-2.0/update.js +37 -0
  396. package/src/migrations/update-sdk-2.0/update.js.map +1 -0
  397. package/src/utils/java-home.d.ts +2 -0
  398. package/src/utils/java-home.d.ts.map +1 -0
  399. package/src/utils/java-home.js +44 -0
  400. package/src/utils/java-home.js.map +1 -0
  401. package/src/utils/logger.d.ts +9 -0
  402. package/src/utils/logger.d.ts.map +1 -0
  403. package/src/utils/logger.js +46 -0
  404. package/src/utils/logger.js.map +1 -0
  405. package/src/utils/name-utils.d.ts +6 -0
  406. package/src/utils/name-utils.d.ts.map +1 -0
  407. package/src/utils/name-utils.js +60 -0
  408. package/src/utils/name-utils.js.map +1 -0
  409. package/src/utils/normalize-value.d.ts +7 -0
  410. package/src/utils/normalize-value.d.ts.map +1 -0
  411. package/src/utils/normalize-value.js +33 -0
  412. package/src/utils/normalize-value.js.map +1 -0
  413. package/src/utils/project-utils.d.ts +36 -0
  414. package/src/utils/project-utils.d.ts.map +1 -0
  415. package/src/utils/project-utils.js +102 -0
  416. package/src/utils/project-utils.js.map +1 -0
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.presetGenerator = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const os = require("os");
6
+ const js_1 = require("@nx/js");
7
+ const react_1 = require("@nx/react");
8
+ const eslint_1 = require("@nx/eslint");
9
+ const path_1 = require("path");
10
+ const java_home_1 = require("../../utils/java-home");
11
+ const logger_1 = require("../../utils/logger");
12
+ const normalize_value_1 = require("../../utils/normalize-value");
13
+ async function presetGenerator(tree, options) {
14
+ logger_1.logger.info("Generating preset");
15
+ logger_1.logger.debug(`Options: ${JSON.stringify(options)}`);
16
+ const normalized = (0, normalize_value_1.normalizeAllValues)(options);
17
+ // generate the model library
18
+ const modelProjectDir = (0, path_1.join)("libs", `${normalized.nameDashCase}-models`);
19
+ await (0, js_1.libraryGenerator)(tree, {
20
+ name: `${normalized.nameDashCase}-models`,
21
+ projectNameAndRootFormat: "as-provided",
22
+ unitTestRunner: "none",
23
+ bundler: "vite",
24
+ compiler: "tsc",
25
+ strict: true,
26
+ buildable: true,
27
+ linter: eslint_1.Linter.EsLint,
28
+ directory: modelProjectDir,
29
+ });
30
+ const modelProject = (0, devkit_1.readProjectConfiguration)(tree, `${normalized.nameDashCase}-models`);
31
+ // generate the model components library
32
+ const modelComponentsDir = (0, path_1.join)("libs", "model-components");
33
+ await (0, react_1.libraryGenerator)(tree, {
34
+ name: "model-components",
35
+ projectNameAndRootFormat: "as-provided",
36
+ unitTestRunner: "none",
37
+ bundler: "vite",
38
+ strict: true,
39
+ style: "@emotion/styled",
40
+ routing: false,
41
+ compiler: "babel",
42
+ linter: eslint_1.Linter.EsLint,
43
+ directory: modelComponentsDir,
44
+ });
45
+ const modelComponentProject = (0, devkit_1.readProjectConfiguration)(tree, "model-components");
46
+ const appUiName = `${normalized.nameDashCase}-ui`;
47
+ const appDir = (0, path_1.join)("apps", `${appUiName}`);
48
+ // generate the UI application
49
+ await (0, react_1.hostGenerator)(tree, {
50
+ e2eTestRunner: "none",
51
+ directory: appDir,
52
+ linter: eslint_1.Linter.EsLint,
53
+ unitTestRunner: "none",
54
+ name: `${appUiName}`,
55
+ style: "@emotion/styled",
56
+ dynamic: true,
57
+ projectNameAndRootFormat: "as-provided",
58
+ });
59
+ // add the dependencies to the package.json
60
+ (0, devkit_1.addDependenciesToPackageJson)(tree, {
61
+ "@kosdev-code/kos-ui-sdk": "~2.1.0",
62
+ "@kosdev-code/kos-dispense-sdk": "~2.1.0",
63
+ "@kosdev-code/kos-freestyle-sdk": "~2.1.0",
64
+ "@kosdev-code/kos-cms-sdk": "~2.1.0",
65
+ "@kosdev-code/kos-ui-plugin": "~2.1.0",
66
+ "@use-gesture/react": "^10.3.0",
67
+ "@react-spring/web": "^9.7.3",
68
+ "react-i18next": "^13.5.0",
69
+ "@module-federation/utilities": "3.0.3-0",
70
+ i18next: "^23.7.8",
71
+ "i18next-browser-languagedetector": "^7.2.0",
72
+ "i18next-http-backend": "^2.4.2",
73
+ "reflect-metadata": "^0.2.1",
74
+ zod: "^3.25.76",
75
+ }, {
76
+ "@kosdev-code/kos-nx-plugin": "~2.1.0",
77
+ "@types/node": "^18.16.9",
78
+ archiver: "^5.3.1",
79
+ "openapi-typescript": "^7.6.1",
80
+ });
81
+ // const configTxt = tree.read("nx.json", "utf-8") || "";
82
+ // const config = JSON.parse(configTxt);
83
+ // await updateNxJson(tree, {
84
+ // ...config,
85
+ // generators: {
86
+ // ...config.generators,
87
+ // "@kosdev-code/kos-nx-plugin": {
88
+ // "kos-model": {
89
+ // appProject: "model-components",
90
+ // modelProject: `models-${normalized.nameDashCase}-models`,
91
+ // registrationProject: `${normalized.appNameDashCase}`,
92
+ // modelDirectory: "lib",
93
+ // appDirectory: "app",
94
+ // components: true,
95
+ // dataServices: true,
96
+ // internal: false,
97
+ // singleton: false,
98
+ // unitTests: true,
99
+ // },
100
+ // "kos-component": {
101
+ // appProject: "model-components",
102
+ // modelProject: `models-${normalized.nameDashCase}-models`,
103
+ // registrationProject: `${normalized.appNameDashCase}`,
104
+ // modelDirectory: "lib",
105
+ // appDirectory: "app",
106
+ // components: true,
107
+ // dataServices: true,
108
+ // internal: false,
109
+ // singleton: false,
110
+ // unitTests: true,
111
+ // },
112
+ // "kos-hook": {
113
+ // appProject: "model-components",
114
+ // modelProject: `models-${normalized.nameDashCase}-models`,
115
+ // registrationProject: `${normalized.appNameDashCase}`,
116
+ // modelDirectory: "lib",
117
+ // appDirectory: "app",
118
+ // components: true,
119
+ // dataServices: true,
120
+ // internal: false,
121
+ // singleton: false,
122
+ // unitTests: true,
123
+ // },
124
+ // "kos-context": {
125
+ // appProject: "model-components",
126
+ // modelProject: `models-${normalized.nameDashCase}-models`,
127
+ // registrationProject: `${normalized.appNameDashCase}`,
128
+ // modelDirectory: "lib",
129
+ // appDirectory: "app",
130
+ // components: true,
131
+ // dataServices: true,
132
+ // internal: false,
133
+ // singleton: false,
134
+ // unitTests: true,
135
+ // },
136
+ // },
137
+ // },
138
+ // });
139
+ // console.log(tree.read("nx.json", "utf-8"));
140
+ const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, appUiName);
141
+ // add the kab and zip targets to the project.json
142
+ const externalJson = {
143
+ kab: {
144
+ command: `node tools/scripts/kabtool.mjs build ${appUiName} && node tools/scripts/kabtool.mjs list ${appUiName} `,
145
+ options: {
146
+ outputPath: `dist/archives/packages/${appUiName}/`,
147
+ zipName: "ui.zip",
148
+ kabName: `${appUiName}.kab`,
149
+ },
150
+ dependsOn: ["zip"],
151
+ },
152
+ zip: {
153
+ command: `node tools/scripts/archiver.js ${appUiName}`,
154
+ options: {
155
+ outputPath: `dist/archives/packages/${appUiName}/`,
156
+ zipName: "ui.zip",
157
+ },
158
+ dependsOn: ["build", "descriptor"],
159
+ },
160
+ descriptor: {
161
+ command: `node tools/scripts/descriptor.mjs ${appUiName}`,
162
+ options: {
163
+ outputPath: `dist/apps/${appUiName}`,
164
+ fileName: "descriptor.json",
165
+ },
166
+ dependsOn: ["build"],
167
+ },
168
+ };
169
+ (0, devkit_1.updateJson)(tree, `${projectConfiguration.root}/project.json`, (json) => {
170
+ json.targets = {
171
+ ...json.targets,
172
+ ...externalJson,
173
+ build: {
174
+ ...json.targets.build,
175
+ options: {
176
+ ...json.targets.build.options,
177
+ baseHref: "/",
178
+ },
179
+ configurations: {
180
+ ...json.targets.build.configurations,
181
+ production: {
182
+ ...json.targets.build.configurations.production,
183
+ baseHref: "./",
184
+ },
185
+ },
186
+ },
187
+ serve: {
188
+ ...json.targets.serve,
189
+ options: {
190
+ ...json.targets.serve.options,
191
+ hmr: false,
192
+ },
193
+ },
194
+ };
195
+ return json;
196
+ });
197
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, "api"), modelProject.sourceRoot ?? modelProject.root, {
198
+ serviceName: normalized.namePascalCase,
199
+ template: "",
200
+ });
201
+ // Generate .kos.json for model project
202
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, "model"), modelProject.root, normalized);
203
+ // Generate .kos.json for model-components project
204
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, "model-components"), modelComponentProject.root, normalized);
205
+ // Generate root .kos.json with workspace defaults
206
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, "root"), "./", normalized);
207
+ const modelJson = {
208
+ api: {
209
+ command: `node tools/scripts/generate-api-types.mjs ${normalized.nameDashCase}-models`,
210
+ options: {
211
+ host: `http://127.0.0.1:8081`,
212
+ },
213
+ },
214
+ };
215
+ (0, devkit_1.updateJson)(tree, `${modelProject.root}/project.json`, (json) => {
216
+ json.targets = {
217
+ ...json.targets,
218
+ ...modelJson,
219
+ };
220
+ return json;
221
+ });
222
+ const registrationPackageJson = JSON.parse(tree.read((0, path_1.join)(modelComponentProject.root, "package.json"), "utf-8") || "");
223
+ const registrationName = registrationPackageJson.name;
224
+ // add the ui project files
225
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, "files"), projectConfiguration.root, {
226
+ ...normalized,
227
+ registrationName,
228
+ });
229
+ // add global tools (kabtool, archiver, etc)
230
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, "tools"), "./", normalized);
231
+ // remove default files
232
+ tree.delete(`${projectConfiguration.root}/src/app/nx-welcome.tsx`);
233
+ tree.delete(`${projectConfiguration.root}/src/index.ts`);
234
+ tree.delete(`${projectConfiguration.root}/src/app/app.spec.tsx`);
235
+ // add the java home and install dir to the local files
236
+ const homeDir = os.homedir();
237
+ const installDir = os.platform() === "darwin"
238
+ ? (0, path_1.join)(homeDir, "Applications", "kosStudio.app")
239
+ : (0, path_1.join)(homeDir, "kosStudio");
240
+ const javaHome = (0, java_home_1.findJavaHome)();
241
+ const javaExecutable = os.platform() === "darwin"
242
+ ? (0, path_1.join)(javaHome || "", "bin", "java")
243
+ : (0, path_1.join)(javaHome || "", "bin", "java.exe");
244
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, "local"), `/`, {
245
+ installDir: installDir,
246
+ javaHome: javaExecutable,
247
+ workspaceName: normalized.nameDashCase,
248
+ template: "",
249
+ });
250
+ (0, devkit_1.updateJson)(tree, "package.json", (json) => {
251
+ // Add a new script or modify existing ones
252
+ json.scripts = {
253
+ kab: "nx run-many --target=kab",
254
+ "update:all": "node ./tools/scripts/update.mjs latest latest",
255
+ "update:cli": "npm install -g @kosdev-code/kos-ui-cli",
256
+ "update:nx": "nx migrate @kosdev-code/kos-nx-plugin",
257
+ zip: "nx run-many --target=zip",
258
+ build: "nx run-many --target=build",
259
+ ...json.scripts,
260
+ };
261
+ return json;
262
+ });
263
+ (0, devkit_1.updateJson)(tree, "tsconfig.base.json", (json) => {
264
+ if (!json.compilerOptions) {
265
+ json.compilerOptions = {};
266
+ }
267
+ json.compilerOptions.moduleResolution = "bundler";
268
+ return json;
269
+ });
270
+ await (0, devkit_1.formatFiles)(tree);
271
+ (0, devkit_1.installPackagesTask)(tree, true);
272
+ }
273
+ exports.presetGenerator = presetGenerator;
274
+ exports.default = presetGenerator;
275
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/preset/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ # Path to the Java binary
2
+ JAVA_CMD='<%= javaHome %>'
3
+
4
+ # Path to the kos installation
5
+ KOS_INSTALL_PATH='<%= installDir %>'
@@ -0,0 +1,88 @@
1
+ # <%= workspaceName %>
2
+
3
+ The project has been scaffolded using the `kosui` CLI and is a fully configured NX Monorepo that can support multiple UI applications, libraries and KOS model projects in the single codebase.
4
+
5
+ ## Getting Started
6
+
7
+ ### Install the kosui CLI
8
+
9
+ If not done already, install the `kosui` CLI tooling:
10
+
11
+ ```sh
12
+ npm install -g @kosdev-code/kos-ui-cli
13
+ ```
14
+
15
+ ### Install dependencies
16
+
17
+ After cloning the repo install dependencies:
18
+
19
+ ```sh
20
+ npm install
21
+ ```
22
+
23
+ ### Set up environment variables
24
+
25
+ You will need to set up some environment variables before running the `kab` target so that the tooling knows where to find Java and a Studio installation on the local system.
26
+
27
+ The `kosui` has the ability to auto-detect and populate these variables:
28
+
29
+ ```sh
30
+ kosui env
31
+ --- Discover Studio Environment Variables ---
32
+ The following will discover Studio Environment Variables.
33
+ findEnv Studio Home: /Users/dev/Applications/kosStudio.app
34
+ Java Home: /usr/bin/java
35
+ ```
36
+
37
+ The variables are stored in the file .env.local at the root of the environment:
38
+
39
+ ```
40
+ # Path to the Java binary
41
+ JAVA_CMD='/usr/bin/java'
42
+ # Path to the kos installation
43
+ KOS_INSTALL_PATH='/Users/dev/Applications/kosStudio.app'
44
+ ```
45
+
46
+ ## Building an application
47
+
48
+ Build a project using the NX command line or the VS Code plugin if installed:
49
+
50
+ You can run a build for a single package in the monorepo. This command will run the build target for the `<%= workspaceName %>-ui` project and all of it dependent projects:
51
+
52
+ ```sh
53
+ npx nx run <%= workspaceName %>-ui:build
54
+ ```
55
+
56
+ Alternately, you can run the `build` target for several projects at once:
57
+
58
+ ```sh
59
+ npx nx run-many -t build
60
+ ```
61
+
62
+ For more information on running NX tasks refer to the the documentation on https://nx.dev/features/run-tasks.
63
+
64
+ ## Dev Server
65
+
66
+ The workspace provides a dev server that can be used during active development to ensure that code updates are working as expected with real time feedback and live updates.
67
+
68
+ Use the serve command in the VS Code plugin or alternately use the command line to start the dev server for the training-zer4-ui application package.
69
+
70
+ ```sh
71
+ npx nx run <%= workspaceName %>-ui:serve
72
+ ```
73
+
74
+ When up and running, navigate in your browser to http://localhost:4200/?host=http://localhost:8081# and you should be presented with a KOS Welcome screen.
75
+
76
+ Notice the URL has an additional query parameter host=http://localhost:8081. This is telling the UI SDK where to find the KOS service host which is the location where KOS is running which is useful when running in development against an instance running on a Raspberry Pi or some other remote host. This parameter enables development against a “real” java backend rather relying on mocks or dummy data.
77
+
78
+ ## Building a Kab
79
+
80
+ The environment comes pre-configured to be able to bundle applications into Kab files for easy publishing to Studio or for local testing as needed.
81
+
82
+ Create a kab using the kab task in the VS Code plugin or executing the corresponding command line tool:
83
+
84
+ ```sh
85
+ npx nx run <%= workspaceName %>-ui:kab
86
+ ```
87
+
88
+ The build process will create a test kab that can be consumed by Studio automatically without needing to leave the development environment.
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "<%= nameDashCase %>-models",
3
+ "type": "kos.model",
4
+ "version": "0.0.0-SNAPSHOT",
5
+ "models": {
6
+ },
7
+ "generator": {
8
+ "projectType": "model",
9
+ "defaults": {
10
+ "model": {
11
+ "folder": "models"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "model-components",
3
+ "type": "kos.model-component",
4
+ "version": "0.0.0-SNAPSHOT",
5
+ "generator": {
6
+ "projectType": "model-component",
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "type": "root",
3
+ "generator": {
4
+ "defaults": {
5
+ "model": "<%= nameDashCase %>-models",
6
+ "model-component": "model-components",
7
+ "ui": "<%= nameDashCase %>-ui"
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ export interface PresetGeneratorSchema {
2
+ name: string;
3
+ }
4
+ export interface NormalizedKosBaseGeneratorSchema<
5
+ T extends PresetGeneratorSchema
6
+ > extends T {
7
+ template: string;
8
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "Preset",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "description": "",
10
+ "x-prompt": "What name would you like to use?"
11
+ }
12
+ },
13
+ "required": ["name"]
14
+ }
@@ -0,0 +1,79 @@
1
+ /* eslint-disable @typescript-eslint/no-var-requires */
2
+ // require modules
3
+ const fs = require("fs");
4
+ const archiver = require("archiver");
5
+ const path = require("path");
6
+
7
+ const devkit = require("@nx/devkit");
8
+ const { readCachedProjectGraph } = devkit;
9
+
10
+ const [, , name] = process.argv;
11
+
12
+ const graph = readCachedProjectGraph();
13
+ const project = graph.nodes[name];
14
+
15
+
16
+ const buildPath = path.resolve(
17
+ project.data?.targets?.build?.options?.outputPath
18
+ );
19
+
20
+ const outputPath = path.resolve(
21
+ project.data?.targets?.zip?.options?.outputPath
22
+ );
23
+ const fileName = project.data?.targets?.zip?.options?.zipName;
24
+ const ZIP = path.resolve(outputPath, fileName);
25
+
26
+ console.log(ZIP);
27
+
28
+ if (!fs.existsSync(outputPath)) {
29
+ fs.mkdirSync(outputPath, { recursive: true });
30
+ }
31
+
32
+ const output = fs.createWriteStream(ZIP);
33
+ const archive = archiver("zip", {
34
+ zlib: { level: 9 }, // Sets the compression level.
35
+ });
36
+
37
+ // listen for all archive data to be written
38
+ // 'close' event is fired only when a file descriptor is involved
39
+ output.on("close", function () {
40
+ console.log(archive.pointer() + " total bytes");
41
+ console.log(
42
+ "archiver has been finalized and the output file descriptor has closed."
43
+ );
44
+ });
45
+
46
+ // This event is fired when the data source is drained no matter what was the data source.
47
+ // It is not part of this library but rather from the NodeJS Stream API.
48
+ // @see: https://nodejs.org/api/stream.html#stream_event_end
49
+ output.on("end", function () {
50
+ console.log("Data has been drained");
51
+ });
52
+
53
+ // good practice to catch warnings (ie stat failures and other non-blocking errors)
54
+ archive.on("warning", function (err) {
55
+ if (err.code === "ENOENT") {
56
+ // log warning
57
+ } else {
58
+ // throw error
59
+ throw err;
60
+ }
61
+ });
62
+
63
+ // good practice to catch this error explicitly
64
+ archive.on("error", function (err) {
65
+ throw err;
66
+ });
67
+
68
+ // pipe archive data to the file
69
+ archive.pipe(output);
70
+
71
+ // append a file from stream
72
+
73
+ console.log(`${buildPath}/`);
74
+ // append files from a sub-directory, putting its contents at the root of archive
75
+ archive.directory(`${buildPath}/`, false);
76
+
77
+ // finalize the archive (ie we are done appending files but streams have to finish yet)
78
+ // 'close', 'end' or 'finish' may be fired right after calling this method so register to them beforehand
79
+ archive.finalize();
@@ -0,0 +1,114 @@
1
+ import devkit from '@nx/devkit';
2
+ import { resolve } from 'path';
3
+ const { readCachedProjectGraph } = devkit;
4
+ const [, , name] = process.argv;
5
+
6
+ import {
7
+ existsSync,
8
+ mkdirSync,
9
+ readFileSync,
10
+ readdirSync,
11
+ writeFileSync,
12
+ } from 'fs';
13
+ import prettier from 'prettier';
14
+ const graph = readCachedProjectGraph();
15
+ const project = graph.nodes[name];
16
+
17
+ const dotKabFilePath = resolve(process.cwd(), project.data.root, '.kos.json');
18
+ const dotKabJson = JSON.parse(readFileSync(dotKabFilePath, 'utf8'));
19
+ if (dotKabJson) {
20
+ dotKabJson.kos = dotKabJson.kos || {};
21
+ dotKabJson.kos.localization = dotKabJson.kos.localization || {};
22
+ const localizations = dotKabJson?.kos?.localization?.namespaces || {};
23
+ if (dotKabJson?.kos?.localization) {
24
+ dotKabJson.kos.localization.defaultLocale =
25
+ dotKabJson.kos.localization.defaultLocale || 'en';
26
+ }
27
+ const locales = resolve(
28
+ process.cwd(),
29
+ project.data.root,
30
+ 'src',
31
+ 'assets',
32
+ 'locales'
33
+ );
34
+
35
+ mkdirSync(locales, { recursive: true });
36
+
37
+ const localesDirs = readdirSync(locales);
38
+ const mergedNamespaces = localesDirs.reduce(
39
+ (acc, locale) => {
40
+ const namespaces = readdirSync(resolve(locales, locale));
41
+
42
+ namespaces.forEach((namespaceFile) => {
43
+ const [namespace] = namespaceFile.split('.');
44
+ acc.namespaces = [...new Set([...acc.namespaces, namespace])];
45
+ acc.localizations[namespace] = acc.localizations[namespace] || {
46
+ locales: {},
47
+ };
48
+ acc.localizations[namespace].locales =
49
+ acc.localizations[namespace].locales || {};
50
+ acc.localizations[namespace].locales[
51
+ locale
52
+ ] = `/assets/locales/${locale}/${namespace}.json`;
53
+ });
54
+ return acc;
55
+ },
56
+ { localizations, namespaces: [] }
57
+ );
58
+
59
+ console.log(mergedNamespaces.namespaces);
60
+ const toRemove = Object.keys(localizations).filter(
61
+ (namespace) => !mergedNamespaces.namespaces.includes(namespace)
62
+ );
63
+
64
+ toRemove.forEach((namespace) => {
65
+ delete localizations[namespace];
66
+ });
67
+ dotKabJson.kos.localization.namespaces = mergedNamespaces.localizations;
68
+
69
+ const options = await prettier.resolveConfig(dotKabFilePath);
70
+
71
+ const configFile = await prettier.resolveConfigFile(dotKabFilePath);
72
+
73
+ const namespaceOverrides = Object.keys(
74
+ dotKabJson.kos.localization.namespaces
75
+ ).reduce((acc, namespace) => {
76
+ acc[namespace] = {};
77
+ if (dotKabJson.kos.localization.namespaces[namespace].fallbackLocales) {
78
+ acc[namespace].fallbackLocales =
79
+ dotKabJson.kos.localization.namespaces[namespace].fallbackLocales;
80
+ }
81
+ return acc;
82
+ }, {});
83
+
84
+ const modified = {
85
+ ...dotKabJson,
86
+ kos: {
87
+ ...dotKabJson.kos,
88
+ localization: {
89
+ ...dotKabJson.kos.localization,
90
+ namespaces: namespaceOverrides,
91
+ },
92
+ },
93
+ };
94
+ const output = await prettier.format(JSON.stringify(modified, null, 2), {
95
+ ...options,
96
+ parser: 'json',
97
+ });
98
+ writeFileSync(dotKabFilePath, output);
99
+ }
100
+
101
+ const buildPath = resolve(
102
+ project.data?.targets?.descriptor?.options?.outputPath
103
+ );
104
+
105
+ if (!existsSync(buildPath)) {
106
+ mkdirSync(buildPath, { recursive: true });
107
+ }
108
+
109
+ if (dotKabJson) {
110
+ writeFileSync(
111
+ resolve(buildPath, 'descriptor.json'),
112
+ JSON.stringify(dotKabJson, null, 2)
113
+ );
114
+ }
@@ -0,0 +1,25 @@
1
+ import devkit from "@nx/devkit";
2
+ import { mkdirSync, writeFileSync } from "fs";
3
+ import openapiTS, { astToString } from "openapi-typescript";
4
+ import { join } from "path";
5
+ const { readCachedProjectGraph } = devkit;
6
+ const [, , name] = process.argv;
7
+
8
+ const graph = readCachedProjectGraph();
9
+ const project = graph.nodes[name];
10
+ const host = project.data.targets.api?.options?.host || "http://127.0.0.1:8081";
11
+ const src = project.data.sourceRoot || project.data.root;
12
+
13
+ const outFile = join(src, "utils", "openapi.d.ts");
14
+
15
+ mkdirSync(join(src, "utils"), { recursive: true });
16
+
17
+ console.log(`Generating API types for ${name} at ${outFile} from ${host}`);
18
+
19
+ const ast = await openapiTS(
20
+ new URL(`${host}/api/kos/openapi/api`, import.meta.url)
21
+ );
22
+ const contents = astToString(ast);
23
+
24
+ // (optional) write to file
25
+ writeFileSync(outFile, contents);