@ojiepermana/angular 22.0.1 → 22.0.29

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 (513) hide show
  1. package/README.md +61 -311
  2. package/fesm2022/ojiepermana-angular-chart.mjs +10 -0
  3. package/fesm2022/ojiepermana-angular-component.mjs +10 -0
  4. package/fesm2022/ojiepermana-angular-navigation.mjs +10 -0
  5. package/fesm2022/ojiepermana-angular-sdk.mjs +10 -0
  6. package/fesm2022/ojiepermana-angular-theme.mjs +4 -384
  7. package/fesm2022/ojiepermana-angular.mjs +15 -16
  8. package/package.json +25 -425
  9. package/types/ojiepermana-angular-chart.d.ts +1 -0
  10. package/types/ojiepermana-angular-component.d.ts +1 -0
  11. package/types/ojiepermana-angular-navigation.d.ts +1 -0
  12. package/types/ojiepermana-angular-sdk.d.ts +1 -0
  13. package/types/ojiepermana-angular-theme.d.ts +1 -116
  14. package/types/ojiepermana-angular.d.ts +5 -3
  15. package/.npmignore +0 -2
  16. package/collection.json +0 -30
  17. package/component/accordion/README.md +0 -195
  18. package/component/accordion/package.json +0 -4
  19. package/component/alert/README.md +0 -182
  20. package/component/alert/package.json +0 -4
  21. package/component/alert-dialog/README.md +0 -239
  22. package/component/alert-dialog/package.json +0 -4
  23. package/component/aspect-ratio/README.md +0 -112
  24. package/component/aspect-ratio/package.json +0 -4
  25. package/component/avatar/README.md +0 -176
  26. package/component/avatar/package.json +0 -4
  27. package/component/badge/README.md +0 -133
  28. package/component/badge/package.json +0 -4
  29. package/component/breadcrumb/README.md +0 -216
  30. package/component/breadcrumb/package.json +0 -4
  31. package/component/button/README.md +0 -139
  32. package/component/button/package.json +0 -4
  33. package/component/button-group/README.md +0 -208
  34. package/component/button-group/package.json +0 -4
  35. package/component/calendar/README.md +0 -132
  36. package/component/calendar/package.json +0 -4
  37. package/component/card/README.md +0 -220
  38. package/component/card/package.json +0 -4
  39. package/component/carousel/README.md +0 -276
  40. package/component/carousel/package.json +0 -4
  41. package/component/chart/README.md +0 -249
  42. package/component/chart/area/package.json +0 -4
  43. package/component/chart/bar/package.json +0 -4
  44. package/component/chart/line/package.json +0 -4
  45. package/component/chart/package.json +0 -4
  46. package/component/chart/pie/package.json +0 -4
  47. package/component/chart/radar/package.json +0 -4
  48. package/component/chart/radial/package.json +0 -4
  49. package/component/chart/scatter/package.json +0 -4
  50. package/component/checkbox/README.md +0 -149
  51. package/component/checkbox/package.json +0 -4
  52. package/component/collapsible/README.md +0 -195
  53. package/component/collapsible/package.json +0 -4
  54. package/component/combobox/README.md +0 -198
  55. package/component/combobox/package.json +0 -4
  56. package/component/command/README.md +0 -275
  57. package/component/command/package.json +0 -4
  58. package/component/composer/README.md +0 -235
  59. package/component/composer/package.json +0 -4
  60. package/component/context-menu/README.md +0 -267
  61. package/component/context-menu/package.json +0 -4
  62. package/component/date-picker/README.md +0 -177
  63. package/component/date-picker/package.json +0 -4
  64. package/component/dialog/README.md +0 -237
  65. package/component/dialog/package.json +0 -4
  66. package/component/drawer/README.md +0 -145
  67. package/component/drawer/package.json +0 -4
  68. package/component/dropdown-menu/README.md +0 -311
  69. package/component/dropdown-menu/package.json +0 -4
  70. package/component/editor/README.md +0 -136
  71. package/component/editor/package.json +0 -4
  72. package/component/empty/README.md +0 -183
  73. package/component/empty/package.json +0 -4
  74. package/component/form/README.md +0 -210
  75. package/component/form/package.json +0 -4
  76. package/component/hover-card/README.md +0 -146
  77. package/component/hover-card/package.json +0 -4
  78. package/component/input/README.md +0 -159
  79. package/component/input/package.json +0 -4
  80. package/component/input-group/README.md +0 -239
  81. package/component/input-group/package.json +0 -4
  82. package/component/input-otp/README.md +0 -278
  83. package/component/input-otp/package.json +0 -4
  84. package/component/item/README.md +0 -247
  85. package/component/item/package.json +0 -4
  86. package/component/kanban/README.md +0 -81
  87. package/component/kanban/package.json +0 -4
  88. package/component/kbd/README.md +0 -139
  89. package/component/kbd/package.json +0 -4
  90. package/component/label/README.md +0 -136
  91. package/component/label/package.json +0 -4
  92. package/component/menubar/README.md +0 -269
  93. package/component/menubar/package.json +0 -4
  94. package/component/native-select/README.md +0 -176
  95. package/component/native-select/package.json +0 -4
  96. package/component/navigation-menu/README.md +0 -160
  97. package/component/navigation-menu/package.json +0 -4
  98. package/component/pagination/README.md +0 -144
  99. package/component/pagination/package.json +0 -4
  100. package/component/pillbox/README.md +0 -67
  101. package/component/pillbox/package.json +0 -4
  102. package/component/popover/README.md +0 -43
  103. package/component/popover/package.json +0 -4
  104. package/component/progress/README.md +0 -160
  105. package/component/progress/package.json +0 -4
  106. package/component/radio/README.md +0 -209
  107. package/component/radio/package.json +0 -4
  108. package/component/resizable/README.md +0 -168
  109. package/component/resizable/package.json +0 -4
  110. package/component/scroll-area/README.md +0 -143
  111. package/component/scroll-area/package.json +0 -4
  112. package/component/select/README.md +0 -174
  113. package/component/select/package.json +0 -4
  114. package/component/separator/README.md +0 -170
  115. package/component/separator/package.json +0 -4
  116. package/component/sheet/README.md +0 -183
  117. package/component/sheet/package.json +0 -4
  118. package/component/skeleton/README.md +0 -158
  119. package/component/skeleton/package.json +0 -4
  120. package/component/slider/README.md +0 -207
  121. package/component/slider/package.json +0 -4
  122. package/component/spinner/README.md +0 -160
  123. package/component/spinner/package.json +0 -4
  124. package/component/switch/README.md +0 -166
  125. package/component/switch/package.json +0 -4
  126. package/component/table/README.md +0 -291
  127. package/component/table/package.json +0 -4
  128. package/component/tabs/README.md +0 -219
  129. package/component/tabs/package.json +0 -4
  130. package/component/textarea/README.md +0 -154
  131. package/component/textarea/package.json +0 -4
  132. package/component/timeline/README.md +0 -94
  133. package/component/timeline/package.json +0 -4
  134. package/component/toast/README.md +0 -321
  135. package/component/toast/package.json +0 -4
  136. package/component/toggle/README.md +0 -131
  137. package/component/toggle/package.json +0 -4
  138. package/component/toggle-group/README.md +0 -206
  139. package/component/toggle-group/package.json +0 -4
  140. package/component/tooltip/README.md +0 -211
  141. package/component/tooltip/package.json +0 -4
  142. package/component/utils/package.json +0 -4
  143. package/fesm2022/ojiepermana-angular-component-accordion.mjs +0 -189
  144. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +0 -1
  145. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +0 -276
  146. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +0 -1
  147. package/fesm2022/ojiepermana-angular-component-alert.mjs +0 -99
  148. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +0 -1
  149. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +0 -37
  150. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +0 -1
  151. package/fesm2022/ojiepermana-angular-component-avatar.mjs +0 -139
  152. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +0 -1
  153. package/fesm2022/ojiepermana-angular-component-badge.mjs +0 -50
  154. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +0 -1
  155. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +0 -200
  156. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +0 -1
  157. package/fesm2022/ojiepermana-angular-component-button-group.mjs +0 -103
  158. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +0 -1
  159. package/fesm2022/ojiepermana-angular-component-button.mjs +0 -68
  160. package/fesm2022/ojiepermana-angular-component-button.mjs.map +0 -1
  161. package/fesm2022/ojiepermana-angular-component-calendar.mjs +0 -88
  162. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +0 -1
  163. package/fesm2022/ojiepermana-angular-component-card.mjs +0 -152
  164. package/fesm2022/ojiepermana-angular-component-card.mjs.map +0 -1
  165. package/fesm2022/ojiepermana-angular-component-carousel.mjs +0 -334
  166. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +0 -1
  167. package/fesm2022/ojiepermana-angular-component-chart-area.mjs +0 -6
  168. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +0 -1
  169. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs +0 -6
  170. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +0 -1
  171. package/fesm2022/ojiepermana-angular-component-chart-line.mjs +0 -6
  172. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +0 -1
  173. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs +0 -6
  174. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +0 -1
  175. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs +0 -6
  176. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +0 -1
  177. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs +0 -6
  178. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +0 -1
  179. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs +0 -6
  180. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +0 -1
  181. package/fesm2022/ojiepermana-angular-component-chart.mjs +0 -3925
  182. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +0 -1
  183. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +0 -114
  184. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +0 -1
  185. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +0 -124
  186. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +0 -1
  187. package/fesm2022/ojiepermana-angular-component-combobox.mjs +0 -272
  188. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +0 -1
  189. package/fesm2022/ojiepermana-angular-component-command.mjs +0 -293
  190. package/fesm2022/ojiepermana-angular-component-command.mjs.map +0 -1
  191. package/fesm2022/ojiepermana-angular-component-composer.mjs +0 -352
  192. package/fesm2022/ojiepermana-angular-component-composer.mjs.map +0 -1
  193. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +0 -103
  194. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +0 -1
  195. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +0 -170
  196. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +0 -1
  197. package/fesm2022/ojiepermana-angular-component-dialog.mjs +0 -279
  198. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +0 -1
  199. package/fesm2022/ojiepermana-angular-component-drawer.mjs +0 -6
  200. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +0 -1
  201. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +0 -492
  202. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +0 -1
  203. package/fesm2022/ojiepermana-angular-component-editor.mjs +0 -717
  204. package/fesm2022/ojiepermana-angular-component-editor.mjs.map +0 -1
  205. package/fesm2022/ojiepermana-angular-component-empty.mjs +0 -145
  206. package/fesm2022/ojiepermana-angular-component-empty.mjs.map +0 -1
  207. package/fesm2022/ojiepermana-angular-component-form.mjs +0 -366
  208. package/fesm2022/ojiepermana-angular-component-form.mjs.map +0 -1
  209. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +0 -297
  210. package/fesm2022/ojiepermana-angular-component-hover-card.mjs.map +0 -1
  211. package/fesm2022/ojiepermana-angular-component-input-group.mjs +0 -179
  212. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +0 -1
  213. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +0 -514
  214. package/fesm2022/ojiepermana-angular-component-input-otp.mjs.map +0 -1
  215. package/fesm2022/ojiepermana-angular-component-input.mjs +0 -45
  216. package/fesm2022/ojiepermana-angular-component-input.mjs.map +0 -1
  217. package/fesm2022/ojiepermana-angular-component-item.mjs +0 -264
  218. package/fesm2022/ojiepermana-angular-component-item.mjs.map +0 -1
  219. package/fesm2022/ojiepermana-angular-component-kanban.mjs +0 -314
  220. package/fesm2022/ojiepermana-angular-component-kanban.mjs.map +0 -1
  221. package/fesm2022/ojiepermana-angular-component-kbd.mjs +0 -55
  222. package/fesm2022/ojiepermana-angular-component-kbd.mjs.map +0 -1
  223. package/fesm2022/ojiepermana-angular-component-label.mjs +0 -33
  224. package/fesm2022/ojiepermana-angular-component-label.mjs.map +0 -1
  225. package/fesm2022/ojiepermana-angular-component-menubar.mjs +0 -308
  226. package/fesm2022/ojiepermana-angular-component-menubar.mjs.map +0 -1
  227. package/fesm2022/ojiepermana-angular-component-native-select.mjs +0 -67
  228. package/fesm2022/ojiepermana-angular-component-native-select.mjs.map +0 -1
  229. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +0 -413
  230. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs.map +0 -1
  231. package/fesm2022/ojiepermana-angular-component-pagination.mjs +0 -226
  232. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +0 -1
  233. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +0 -812
  234. package/fesm2022/ojiepermana-angular-component-pillbox.mjs.map +0 -1
  235. package/fesm2022/ojiepermana-angular-component-popover.mjs +0 -169
  236. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +0 -1
  237. package/fesm2022/ojiepermana-angular-component-progress.mjs +0 -60
  238. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +0 -1
  239. package/fesm2022/ojiepermana-angular-component-radio.mjs +0 -122
  240. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +0 -1
  241. package/fesm2022/ojiepermana-angular-component-resizable.mjs +0 -481
  242. package/fesm2022/ojiepermana-angular-component-resizable.mjs.map +0 -1
  243. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +0 -54
  244. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +0 -1
  245. package/fesm2022/ojiepermana-angular-component-select.mjs +0 -176
  246. package/fesm2022/ojiepermana-angular-component-select.mjs.map +0 -1
  247. package/fesm2022/ojiepermana-angular-component-separator.mjs +0 -37
  248. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +0 -1
  249. package/fesm2022/ojiepermana-angular-component-sheet.mjs +0 -284
  250. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +0 -1
  251. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +0 -31
  252. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +0 -1
  253. package/fesm2022/ojiepermana-angular-component-slider.mjs +0 -423
  254. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +0 -1
  255. package/fesm2022/ojiepermana-angular-component-spinner.mjs +0 -60
  256. package/fesm2022/ojiepermana-angular-component-spinner.mjs.map +0 -1
  257. package/fesm2022/ojiepermana-angular-component-switch.mjs +0 -116
  258. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +0 -1
  259. package/fesm2022/ojiepermana-angular-component-table.mjs +0 -155
  260. package/fesm2022/ojiepermana-angular-component-table.mjs.map +0 -1
  261. package/fesm2022/ojiepermana-angular-component-tabs.mjs +0 -272
  262. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +0 -1
  263. package/fesm2022/ojiepermana-angular-component-textarea.mjs +0 -39
  264. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +0 -1
  265. package/fesm2022/ojiepermana-angular-component-timeline.mjs +0 -237
  266. package/fesm2022/ojiepermana-angular-component-timeline.mjs.map +0 -1
  267. package/fesm2022/ojiepermana-angular-component-toast.mjs +0 -71
  268. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +0 -1
  269. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +0 -289
  270. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs.map +0 -1
  271. package/fesm2022/ojiepermana-angular-component-toggle.mjs +0 -82
  272. package/fesm2022/ojiepermana-angular-component-toggle.mjs.map +0 -1
  273. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +0 -354
  274. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +0 -1
  275. package/fesm2022/ojiepermana-angular-component-utils.mjs +0 -13
  276. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +0 -1
  277. package/fesm2022/ojiepermana-angular-generator-api.mjs +0 -68
  278. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +0 -1
  279. package/fesm2022/ojiepermana-angular-layout-component.mjs +0 -602
  280. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +0 -1
  281. package/fesm2022/ojiepermana-angular-layout-provider.mjs +0 -21
  282. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +0 -1
  283. package/fesm2022/ojiepermana-angular-layout-services.mjs +0 -116
  284. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +0 -1
  285. package/fesm2022/ojiepermana-angular-layout-shell.mjs +0 -48
  286. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +0 -1
  287. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +0 -30
  288. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +0 -1
  289. package/fesm2022/ojiepermana-angular-layout-token.mjs +0 -33
  290. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +0 -1
  291. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs +0 -49
  292. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs.map +0 -1
  293. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs +0 -128
  294. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs.map +0 -1
  295. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs +0 -123
  296. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs.map +0 -1
  297. package/fesm2022/ojiepermana-angular-layout.mjs +0 -485
  298. package/fesm2022/ojiepermana-angular-layout.mjs.map +0 -1
  299. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +0 -334
  300. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +0 -1
  301. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +0 -63
  302. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +0 -1
  303. package/fesm2022/ojiepermana-angular-navigation-item.mjs +0 -559
  304. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +0 -1
  305. package/fesm2022/ojiepermana-angular-navigation-service.mjs +0 -213
  306. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +0 -1
  307. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +0 -401
  308. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +0 -1
  309. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +0 -670
  310. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +0 -1
  311. package/fesm2022/ojiepermana-angular-navigation-types.mjs +0 -4
  312. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +0 -1
  313. package/fesm2022/ojiepermana-angular-theme-provider.mjs +0 -35
  314. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +0 -1
  315. package/fesm2022/ojiepermana-angular-theme-services.mjs +0 -294
  316. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +0 -1
  317. package/fesm2022/ojiepermana-angular-theme-token.mjs +0 -56
  318. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +0 -1
  319. package/fesm2022/ojiepermana-angular-theme.mjs.map +0 -1
  320. package/fesm2022/ojiepermana-angular.mjs.map +0 -1
  321. package/generator/api/README.md +0 -252
  322. package/generator/api/bin/package.json +0 -3
  323. package/generator/api/bin/schematics/init/index.js +0 -90
  324. package/generator/api/bin/schematics/ng-add/index.js +0 -131
  325. package/generator/api/bin/schematics/sdk/index.js +0 -76
  326. package/generator/api/bin/src/config/loader.js +0 -41
  327. package/generator/api/bin/src/config/schema.js +0 -57
  328. package/generator/api/bin/src/emit/client.js +0 -248
  329. package/generator/api/bin/src/emit/metadata.js +0 -295
  330. package/generator/api/bin/src/emit/models.js +0 -106
  331. package/generator/api/bin/src/emit/navigation.js +0 -56
  332. package/generator/api/bin/src/emit/operations.js +0 -122
  333. package/generator/api/bin/src/emit/public-api.js +0 -54
  334. package/generator/api/bin/src/emit/services.js +0 -87
  335. package/generator/api/bin/src/engine.js +0 -65
  336. package/generator/api/bin/src/layout/per-domain.js +0 -359
  337. package/generator/api/bin/src/parser/bundle.js +0 -25
  338. package/generator/api/bin/src/parser/ir.js +0 -320
  339. package/generator/api/bin/src/parser/types.js +0 -7
  340. package/generator/api/bin/src/render/template.js +0 -58
  341. package/generator/api/bin/src/writer/index.js +0 -278
  342. package/generator/api/package.json +0 -4
  343. package/generator/api/schematics/init/schema.json +0 -19
  344. package/generator/api/schematics/ng-add/schema.json +0 -14
  345. package/generator/api/schematics/sdk/schema.json +0 -19
  346. package/generator/api/sdk.config.example.json +0 -24
  347. package/generator/guide/README.md +0 -84
  348. package/generator/guide/bin/package.json +0 -3
  349. package/generator/guide/bin/schematics/build/index.js +0 -36
  350. package/generator/guide/bin/schematics/init/index.js +0 -70
  351. package/generator/guide/bin/src/config/loader.js +0 -50
  352. package/generator/guide/bin/src/config/schema.js +0 -12
  353. package/generator/guide/bin/src/engine/component.js +0 -74
  354. package/generator/guide/bin/src/engine/frontmatter.js +0 -42
  355. package/generator/guide/bin/src/engine/index.js +0 -42
  356. package/generator/guide/bin/src/engine/naming.js +0 -39
  357. package/generator/guide/bin/src/engine/render.js +0 -36
  358. package/generator/guide/bin/src/engine/routes.js +0 -106
  359. package/generator/guide/bin/src/engine/walk.js +0 -35
  360. package/generator/guide/guide.config.example.json +0 -9
  361. package/generator/guide/schematics/build/schema.json +0 -14
  362. package/generator/guide/schematics/init/schema.json +0 -19
  363. package/layout/component/package.json +0 -4
  364. package/layout/package.json +0 -4
  365. package/layout/provider/package.json +0 -4
  366. package/layout/services/package.json +0 -4
  367. package/layout/shell/package.json +0 -4
  368. package/layout/token/directive/package.json +0 -4
  369. package/layout/token/package.json +0 -4
  370. package/layout/type/empty/package.json +0 -4
  371. package/layout/type/horizontal/package.json +0 -4
  372. package/layout/type/vertical/package.json +0 -4
  373. package/navigation/demo-data/package.json +0 -4
  374. package/navigation/icon/package.json +0 -4
  375. package/navigation/item/package.json +0 -4
  376. package/navigation/service/package.json +0 -4
  377. package/navigation/sidebar/package.json +0 -4
  378. package/navigation/topbar/README.md +0 -196
  379. package/navigation/topbar/package.json +0 -4
  380. package/navigation/types/package.json +0 -4
  381. package/theme/README.md +0 -174
  382. package/theme/package.json +0 -4
  383. package/theme/provider/package.json +0 -4
  384. package/theme/services/package.json +0 -4
  385. package/theme/styles/foundation/components.css +0 -81
  386. package/theme/styles/foundation/layers.css +0 -15
  387. package/theme/styles/foundation/tokens.css +0 -55
  388. package/theme/styles/index.css +0 -37
  389. package/theme/styles/integrations/material/autocomplete.css +0 -178
  390. package/theme/styles/integrations/material/button.css +0 -468
  391. package/theme/styles/integrations/material/dialog.css +0 -152
  392. package/theme/styles/integrations/material/select.css +0 -175
  393. package/theme/styles/integrations/material/slide-toggle.css +0 -234
  394. package/theme/styles/integrations/material/slider.css +0 -194
  395. package/theme/styles/integrations/material/tabs.css +0 -229
  396. package/theme/styles/integrations/material.css +0 -264
  397. package/theme/styles/integrations/tailwind.css +0 -114
  398. package/theme/styles/variants/color/amber.css +0 -31
  399. package/theme/styles/variants/color/base.css +0 -36
  400. package/theme/styles/variants/color/blue.css +0 -31
  401. package/theme/styles/variants/color/cyan.css +0 -31
  402. package/theme/styles/variants/color/emerald.css +0 -31
  403. package/theme/styles/variants/color/fuchsia.css +0 -31
  404. package/theme/styles/variants/color/green.css +0 -31
  405. package/theme/styles/variants/color/index.css +0 -22
  406. package/theme/styles/variants/color/indigo.css +0 -31
  407. package/theme/styles/variants/color/lime.css +0 -31
  408. package/theme/styles/variants/color/orange.css +0 -31
  409. package/theme/styles/variants/color/pink.css +0 -31
  410. package/theme/styles/variants/color/purple.css +0 -31
  411. package/theme/styles/variants/color/red.css +0 -31
  412. package/theme/styles/variants/color/rose.css +0 -31
  413. package/theme/styles/variants/color/sky.css +0 -31
  414. package/theme/styles/variants/color/teal.css +0 -31
  415. package/theme/styles/variants/color/violet.css +0 -31
  416. package/theme/styles/variants/color/yellow.css +0 -31
  417. package/theme/styles/variants/mode/dark.css +0 -20
  418. package/theme/styles/variants/mode/index.css +0 -6
  419. package/theme/styles/variants/mode/light.css +0 -24
  420. package/theme/styles/variants/style/brutal.css +0 -50
  421. package/theme/styles/variants/style/default.css +0 -54
  422. package/theme/styles/variants/style/index.css +0 -8
  423. package/theme/styles/variants/style/sharp.css +0 -50
  424. package/theme/styles/variants/style/soft.css +0 -50
  425. package/theme/token/package.json +0 -4
  426. package/types/ojiepermana-angular-component-accordion.d.ts +0 -51
  427. package/types/ojiepermana-angular-component-alert-dialog.d.ts +0 -93
  428. package/types/ojiepermana-angular-component-alert.d.ts +0 -37
  429. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +0 -12
  430. package/types/ojiepermana-angular-component-avatar.d.ts +0 -51
  431. package/types/ojiepermana-angular-component-badge.d.ts +0 -19
  432. package/types/ojiepermana-angular-component-breadcrumb.d.ts +0 -46
  433. package/types/ojiepermana-angular-component-button-group.d.ts +0 -26
  434. package/types/ojiepermana-angular-component-button.d.ts +0 -22
  435. package/types/ojiepermana-angular-component-calendar.d.ts +0 -33
  436. package/types/ojiepermana-angular-component-card.d.ts +0 -60
  437. package/types/ojiepermana-angular-component-carousel.d.ts +0 -86
  438. package/types/ojiepermana-angular-component-chart-area.d.ts +0 -1
  439. package/types/ojiepermana-angular-component-chart-bar.d.ts +0 -1
  440. package/types/ojiepermana-angular-component-chart-line.d.ts +0 -1
  441. package/types/ojiepermana-angular-component-chart-pie.d.ts +0 -1
  442. package/types/ojiepermana-angular-component-chart-radar.d.ts +0 -1
  443. package/types/ojiepermana-angular-component-chart-radial.d.ts +0 -1
  444. package/types/ojiepermana-angular-component-chart-scatter.d.ts +0 -1
  445. package/types/ojiepermana-angular-component-chart.d.ts +0 -1094
  446. package/types/ojiepermana-angular-component-checkbox.d.ts +0 -35
  447. package/types/ojiepermana-angular-component-collapsible.d.ts +0 -42
  448. package/types/ojiepermana-angular-component-combobox.d.ts +0 -50
  449. package/types/ojiepermana-angular-component-command.d.ts +0 -99
  450. package/types/ojiepermana-angular-component-composer.d.ts +0 -90
  451. package/types/ojiepermana-angular-component-context-menu.d.ts +0 -35
  452. package/types/ojiepermana-angular-component-date-picker.d.ts +0 -41
  453. package/types/ojiepermana-angular-component-dialog.d.ts +0 -87
  454. package/types/ojiepermana-angular-component-drawer.d.ts +0 -1
  455. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +0 -137
  456. package/types/ojiepermana-angular-component-editor.d.ts +0 -123
  457. package/types/ojiepermana-angular-component-empty.d.ts +0 -50
  458. package/types/ojiepermana-angular-component-form.d.ts +0 -141
  459. package/types/ojiepermana-angular-component-hover-card.d.ts +0 -74
  460. package/types/ojiepermana-angular-component-input-group.d.ts +0 -51
  461. package/types/ojiepermana-angular-component-input-otp.d.ts +0 -136
  462. package/types/ojiepermana-angular-component-input.d.ts +0 -16
  463. package/types/ojiepermana-angular-component-item.d.ts +0 -88
  464. package/types/ojiepermana-angular-component-kanban.d.ts +0 -70
  465. package/types/ojiepermana-angular-component-kbd.d.ts +0 -16
  466. package/types/ojiepermana-angular-component-label.d.ts +0 -11
  467. package/types/ojiepermana-angular-component-menubar.d.ts +0 -67
  468. package/types/ojiepermana-angular-component-native-select.d.ts +0 -26
  469. package/types/ojiepermana-angular-component-navigation-menu.d.ts +0 -96
  470. package/types/ojiepermana-angular-component-pagination.d.ts +0 -33
  471. package/types/ojiepermana-angular-component-pillbox.d.ts +0 -157
  472. package/types/ojiepermana-angular-component-popover.d.ts +0 -43
  473. package/types/ojiepermana-angular-component-progress.d.ts +0 -17
  474. package/types/ojiepermana-angular-component-radio.d.ts +0 -40
  475. package/types/ojiepermana-angular-component-resizable.d.ts +0 -99
  476. package/types/ojiepermana-angular-component-scroll-area.d.ts +0 -19
  477. package/types/ojiepermana-angular-component-select.d.ts +0 -57
  478. package/types/ojiepermana-angular-component-separator.d.ts +0 -14
  479. package/types/ojiepermana-angular-component-sheet.d.ts +0 -76
  480. package/types/ojiepermana-angular-component-skeleton.d.ts +0 -10
  481. package/types/ojiepermana-angular-component-slider.d.ts +0 -74
  482. package/types/ojiepermana-angular-component-spinner.d.ts +0 -13
  483. package/types/ojiepermana-angular-component-switch.d.ts +0 -40
  484. package/types/ojiepermana-angular-component-table.d.ts +0 -52
  485. package/types/ojiepermana-angular-component-tabs.d.ts +0 -92
  486. package/types/ojiepermana-angular-component-textarea.d.ts +0 -12
  487. package/types/ojiepermana-angular-component-timeline.d.ts +0 -63
  488. package/types/ojiepermana-angular-component-toast.d.ts +0 -38
  489. package/types/ojiepermana-angular-component-toggle-group.d.ts +0 -89
  490. package/types/ojiepermana-angular-component-toggle.d.ts +0 -25
  491. package/types/ojiepermana-angular-component-tooltip.d.ts +0 -89
  492. package/types/ojiepermana-angular-component-utils.d.ts +0 -5
  493. package/types/ojiepermana-angular-generator-api.d.ts +0 -86
  494. package/types/ojiepermana-angular-layout-component.d.ts +0 -205
  495. package/types/ojiepermana-angular-layout-provider.d.ts +0 -6
  496. package/types/ojiepermana-angular-layout-services.d.ts +0 -25
  497. package/types/ojiepermana-angular-layout-shell.d.ts +0 -8
  498. package/types/ojiepermana-angular-layout-token-directive.d.ts +0 -13
  499. package/types/ojiepermana-angular-layout-token.d.ts +0 -36
  500. package/types/ojiepermana-angular-layout-type-empty.d.ts +0 -22
  501. package/types/ojiepermana-angular-layout-type-horizontal.d.ts +0 -36
  502. package/types/ojiepermana-angular-layout-type-vertical.d.ts +0 -38
  503. package/types/ojiepermana-angular-layout.d.ts +0 -164
  504. package/types/ojiepermana-angular-navigation-demo-data.d.ts +0 -5
  505. package/types/ojiepermana-angular-navigation-icon.d.ts +0 -17
  506. package/types/ojiepermana-angular-navigation-item.d.ts +0 -54
  507. package/types/ojiepermana-angular-navigation-service.d.ts +0 -77
  508. package/types/ojiepermana-angular-navigation-sidebar.d.ts +0 -75
  509. package/types/ojiepermana-angular-navigation-topbar.d.ts +0 -74
  510. package/types/ojiepermana-angular-navigation-types.d.ts +0 -135
  511. package/types/ojiepermana-angular-theme-provider.d.ts +0 -11
  512. package/types/ojiepermana-angular-theme-services.d.ts +0 -55
  513. package/types/ojiepermana-angular-theme-token.d.ts +0 -57
@@ -1,252 +0,0 @@
1
- # SDK Generator
2
-
3
- OpenAPI → Angular SDK generator shipped as the secondary entrypoint
4
- `@ojiepermana/angular/generator/api`.
5
-
6
- It generates a **lightweight Angular SDK** from any OpenAPI 3.x spec (including
7
- 3.2.0): typed `HttpClient` services, tree-shakeable fn modules, optional
8
- metadata (permissions / validators), and a navigation tree.
9
-
10
- ## Local development in this repo
11
-
12
- ```bash
13
- # 1. Build the schematic runtime
14
- bun run gen:sdk:build
15
-
16
- # 2. Scaffold a workspace config
17
- bun run gen:sdk:init
18
-
19
- # 3. Edit sdk.config.json, then generate
20
- bun run gen:sdk
21
-
22
- # 4. Run the split-by-domain regression checks
23
- bun run test:gen:sdk
24
- ```
25
-
26
- ## Consumer usage after publish
27
-
28
- ```bash
29
- # inside an Angular workspace that installed @ojiepermana/angular
30
- ng generate @ojiepermana/angular:sdk-init
31
- # edit config/sdk.config.json
32
- ng generate @ojiepermana/angular:sdk
33
- ```
34
-
35
- The main consumer feature is generating an SDK from
36
- `config/sdk.config.json`. The consumer flow is: initialize the config once,
37
- edit it, then run `sdk` whenever the OpenAPI source changes.
38
-
39
- If a consumer wants short script aliases in `package.json`, they can add this
40
- script block to their workspace:
41
-
42
- ```json
43
- {
44
- "scripts": {
45
- "gen:sdk:init": "ng generate @ojiepermana/angular:sdk-init",
46
- "gen:sdk": "ng generate @ojiepermana/angular:sdk"
47
- }
48
- }
49
- ```
50
-
51
- Consumers do not need a `gen:sdk:build` step. That build command only exists
52
- for developing this repository, where the schematic source under
53
- `projects/angular/generator/api` must be compiled before local execution.
54
-
55
- ## Schematics
56
-
57
- The entrypoint exposes two schematics, registered in the parent collection at [`projects/angular/collection.json`](../../collection.json):
58
-
59
- | Schematic | Script | Purpose |
60
- | ---------- | ---------------------- | ------------------------------------------------ |
61
- | `sdk-init` | `bun run gen:sdk:init` | Create `config/sdk.config.json` from the example |
62
- | `sdk` | `bun run gen:sdk` | Run the generator using `config/sdk.config.json` |
63
-
64
- Both can be invoked directly with `ng generate` too:
65
-
66
- ```bash
67
- bunx ng generate ./projects/angular/collection.json:sdk-init [--force] [--path=custom/sdk.config.json]
68
- bunx ng generate ./projects/angular/collection.json:sdk [--dry-run] [--config=sdk.config.json] [--target=1]
69
-
70
- # after publish / inside a consuming workspace:
71
- ng generate @ojiepermana/angular:sdk-init [--force] [--path=custom/sdk.config.json]
72
- ng generate @ojiepermana/angular:sdk [--dry-run] [--config=sdk.config.json] [--target=1]
73
- ```
74
-
75
- ### `init` options
76
-
77
- | Option | Type | Default | Description |
78
- | --------- | ------- | ------------------------ | --------------------------------------------- |
79
- | `--path` | string | `config/sdk.config.json` | Destination path, relative to workspace root. |
80
- | `--force` | boolean | `false` | Overwrite the file if it already exists. |
81
-
82
- ### `sdk` options
83
-
84
- | Option | Type | Default | Description |
85
- | ----------- | ------ | ------------------------ | ------------------------------------------------------------------ |
86
- | `--config` | string | `config/sdk.config.json` | Path to the config file, relative to workspace root. |
87
- | `--target` | string | _(all)_ | Only generate one target. Accepts a 1-based index or `clientName`. |
88
- | `--dry-run` | flag | — | Preview file operations without writing anything. |
89
-
90
- ## Config shape
91
-
92
- ```jsonc
93
- {
94
- "$schema": "./node_modules/@ojiepermana/angular/generator/api/schematics/sdk/schema.json",
95
- "targets": [
96
- {
97
- "input": "./openapi.yaml",
98
- "output": "./sdk",
99
- "mode": "library", // "standalone" | "library" | "secondary-entrypoint"
100
- "clientName": "Api",
101
- "packageName": "@my-scope/sdk", // used in "library" mode
102
- "packageVersion": "0.0.1", // used in "library" mode
103
- "rootUrl": "", // optional; empty string means same-origin requests
104
- "splitByDomain": true, // optional; defaults true for "library", false otherwise
105
- "splitDepth": "service", // "service" (default) | "tag"
106
- "features": {
107
- "models": true,
108
- "operations": true,
109
- "services": true,
110
- "client": true,
111
- "metadata": true,
112
- "navigation": true,
113
- },
114
- },
115
- ],
116
- }
117
- ```
118
-
119
- Multiple targets are supported — one config run can emit several SDKs.
120
-
121
- If `rootUrl` is omitted or left empty, the generated SDK uses same-origin
122
- requests by default. Consumer apps can override it at runtime with
123
- `provideApiConfiguration(...)`.
124
-
125
- ### Runtime base URL
126
-
127
- The generated SDK does not read `sdk.config.json` at runtime. The value of
128
- `targets[].rootUrl` is only used during code generation to seed the default
129
- `ApiConfiguration.rootUrl` value.
130
-
131
- - `rootUrl: ""` or omitted: requests use the current origin, for example
132
- `/api/users` on the same host as the Angular app.
133
- - `rootUrl: "https://api.example.com"`: the generated SDK defaults to that
134
- absolute backend URL.
135
- - Runtime override: consumer apps can replace the default by providing a new
136
- value during bootstrap.
137
-
138
- Example runtime override in a consumer app:
139
-
140
- ```ts
141
- import { bootstrapApplication } from '@angular/platform-browser';
142
- import { provideHttpClient } from '@angular/common/http';
143
-
144
- import { AppComponent } from './app/app.component';
145
- import { provideApiConfiguration } from '@my-scope/sdk';
146
-
147
- bootstrapApplication(AppComponent, {
148
- providers: [provideHttpClient(), provideApiConfiguration('https://api.example.com')],
149
- });
150
- ```
151
-
152
- For standalone generated output inside the same workspace, import
153
- `provideApiConfiguration` from the generated SDK barrel instead of an npm
154
- package path.
155
-
156
- ## Per-domain layout
157
-
158
- By default, standalone and secondary-entrypoint targets emit a flat layout
159
- (`models/`, `fn/`, `services/`, … all at the output root). `mode: "library"`
160
- defaults to `splitByDomain: true` so the generated package is split into
161
- secondary entrypoints immediately. You can still set `splitByDomain: false` if
162
- you need the older flat library shape. Cross-domain models and client primitives
163
- land in `shared/`.
164
-
165
- ```jsonc
166
- {
167
- "splitByDomain": true,
168
- "splitDepth": "service", // or "tag"
169
- }
170
- ```
171
-
172
- `splitDepth` controls granularity. It is only read when `splitByDomain` is
173
- `true`.
174
-
175
- | `splitDepth` | Folder strategy | Example (spec with tags `Access/Role`, `Access/Permission`, `Storage/GCS`, `Storage/S3`, `Auth`) |
176
- | ------------ | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
177
- | `service` | One folder per **root** tag (each tag's `parent` chain collapses to its root). One folder per backend service. | `access/` (holds Role + Permission + Role-Permission + …), `storage/` (holds GCS + S3), `auth/`, `shared/`, root `public-api.ts` |
178
- | `tag` | One folder per **leaf** tag, nested under the parent chain. Keeps fine-grained separation while staying grouped. | `access/role/`, `access/permission/`, `access/role-permission/`, `storage/gcs/`, `storage/s3/`, `auth/`, `shared/`, root `public-api.ts` |
179
-
180
- Every domain folder contains `services/`, `fn/`, `models/`, `permissions/`,
181
- and its own `public-api.ts`. The root still owns the aggregate metadata barrel:
182
- `metadata.ts`, `openapi-helpers.ts`, and `permissions/index.ts` stay at the SDK
183
- root so `shared/` never depends on sibling domains. In standalone and
184
- secondary-entrypoint modes, the root `public-api.ts` aggregates `shared`, root
185
- metadata helpers, and every domain for convenience. In library mode, domain
186
- exports stay in their secondary entrypoints so consumers deep import the domain
187
- they need.
188
-
189
- Model ownership rule (per-domain mode):
190
-
191
- - A model used by exactly one domain → emitted inside that domain's `models/`.
192
- - A model shared across two or more domains → emitted inside `shared/models/`.
193
- - Client primitives (`ApiConfiguration`, `BaseService`, `RequestBuilder`,
194
- `StrictHttpResponse`, `Api`), shared metadata types, validators, and
195
- navigation always live under `shared/`.
196
- - Aggregate metadata helpers (`metadata.ts`, `openapi-helpers.ts`) and the
197
- top-level `permissions/index.ts` stay at the SDK root.
198
-
199
- Example consumption when using `mode: 'library'`:
200
-
201
- ```ts
202
- import { RoleService } from '@my-scope/sdk/access';
203
- import { ApprovalInstanceService, SubmitRequest } from '@my-scope/sdk/approval';
204
- import { GCSService } from '@my-scope/sdk/storage'; // splitDepth: 'service'
205
- import { GCSService } from '@my-scope/sdk/storage/gcs'; // splitDepth: 'tag'
206
- ```
207
-
208
- ## Output modes
209
-
210
- | Mode | What it emits | Use when… |
211
- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- |
212
- | `standalone` | A plain folder (no `ng-package.json`). | You consume the SDK via path alias / `tsconfig.paths` inside the same app. |
213
- | `library` | Split-by-domain output plus package metadata and nested `ng-package.json` manifests for secondary entrypoints. | You want a buildable/publishable Angular package with efficient deep imports. |
214
- | `secondary-entrypoint` | Standalone output **plus** a minimal `ng-package.json` pointing at `public-api.ts`, plus nested `ng-package.json` files for split-by-domain secondary entrypoints. | You drop the folder inside an existing library so ng-packagr picks it up as a subpath. |
215
-
216
- In `library` mode, output also includes `tsconfig.lib.json` and `tsconfig.lib.prod.json`.
217
- `ng-package.dest` defaults to `dist/<output-folder-name>`.
218
-
219
- ## Feature flags
220
-
221
- All default to `true`. Turn off anything you don't need to shrink the output.
222
-
223
- | Flag | Emits |
224
- | ------------ | ------------------------------------------------------------------------------------------ |
225
- | `models` | `models/*.ts` — flat interfaces, enum aliases, array aliases. |
226
- | `operations` | `fn/<tag>/<operation-id>.ts` — tree-shakeable request functions with `.PATH`. |
227
- | `services` | `services/<tag>.service.ts` — `@Injectable({providedIn:'root'})` wrappers. |
228
- | `client` | `api-configuration.ts`, `base-service.ts`, `request-builder.ts`, `api.ts`. |
229
- | `metadata` | `permissions/*`, `validators/*`, `metadata.ts`, `openapi-helpers.ts`. |
230
- | `navigation` | `api.navigation.ts` — `NavigationItem[]` ready for `NavigationService.registerItems(...)`. |
231
-
232
- ## Pipeline
233
-
234
- ```text
235
- sdk.config.json → loader → spec (YAML/JSON) → IR → emitters → writer → Angular CLI Tree
236
- ```
237
-
238
- - `src/config/` — config schema + loader (supports JSONC and `.js`/`.cjs`).
239
- - `src/parser/` — OpenAPI → intermediate representation.
240
- - `src/emit/` — one module per output concern (models, operations, services, client, metadata, navigation, public-api).
241
- - `src/layout/` — post-emit layout transforms (e.g. `splitByDomain` reorganisation).
242
- - `src/writer/` — mode wrappers (standalone / library / secondary entrypoint).
243
- - `public-api.ts` — published TypeScript entrypoint for `@ojiepermana/angular/generator/api`.
244
- - `schematics/init/` — creates `sdk.config.json` from the example template.
245
- - `schematics/sdk/` — orchestrates engine and writes virtual files into the CLI `Tree`.
246
-
247
- ## Generated runtime conventions
248
-
249
- - Tree-shakeable: `import { listUsers } from './sdk/fn/user/list-users'` pulls only one HTTP call.
250
- - Services: every operation gets `op()` (body `Observable<T>`) and `op$Response()` (full `StrictHttpResponse<T>`).
251
- - `RequestBuilder` is intentionally minimal — no `style`/`explode` logic — to keep the output lightweight.
252
- - All files carry a `DO NOT EDIT` banner and `/* eslint-disable */`.
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.init = init;
4
- const node_fs_1 = require("node:fs");
5
- const node_path_1 = require("node:path");
6
- /**
7
- * Default config template. The published package also ships a concrete
8
- * `sdk.config.example.json`; this fallback only exists so `init` still works if
9
- * the file is missing in unusual local/dev states.
10
- */
11
- const FALLBACK_TEMPLATE = {
12
- $schema: './node_modules/@ojiepermana/angular/generator/api/schematics/sdk/schema.json',
13
- targets: [
14
- {
15
- input: './openapi.yaml',
16
- output: './sdk',
17
- mode: 'library',
18
- clientName: 'Api',
19
- packageName: '@my-scope/sdk',
20
- packageVersion: '0.0.1',
21
- rootUrl: '',
22
- splitByDomain: true,
23
- splitDepth: 'service',
24
- features: {
25
- models: true,
26
- operations: true,
27
- services: true,
28
- client: true,
29
- metadata: true,
30
- navigation: true,
31
- },
32
- },
33
- ],
34
- };
35
- function init(options = {}) {
36
- return (tree, context) => {
37
- const workspaceRoot = process.cwd();
38
- const destRelative = options.path ?? 'config/sdk.config.json';
39
- const treePath = destRelative.startsWith('/') ? destRelative : `/${destRelative}`;
40
- if (tree.exists(treePath) && !options.force) {
41
- throw new Error(`${destRelative} already exists. Re-run with --force to overwrite.`);
42
- }
43
- const content = loadTemplate(workspaceRoot, destRelative);
44
- const buffer = Buffer.from(content, 'utf8');
45
- if (tree.exists(treePath)) {
46
- tree.overwrite(treePath, buffer);
47
- context.logger.info(`[sdk:init] overwrote ${destRelative}`);
48
- }
49
- else {
50
- tree.create(treePath, buffer);
51
- context.logger.info(`[sdk:init] created ${destRelative}`);
52
- }
53
- context.logger.info(`[sdk:init] edit targets[].input and targets[].output, then run \`${getNextCommand(workspaceRoot)}\`.`);
54
- };
55
- }
56
- function loadTemplate(workspaceRoot, destRelative) {
57
- const candidates = [
58
- (0, node_path_1.resolve)(workspaceRoot, 'sdk.config.example.json'),
59
- (0, node_path_1.resolve)(__dirname, '../../../sdk.config.example.json'),
60
- (0, node_path_1.resolve)(workspaceRoot, 'projects/angular/generator/api/sdk.config.example.json'),
61
- ];
62
- for (const candidate of candidates) {
63
- try {
64
- const parsed = JSON.parse((0, node_fs_1.readFileSync)(candidate, 'utf8'));
65
- parsed.$schema = resolveSchemaPath(workspaceRoot, destRelative);
66
- return `${JSON.stringify(parsed, null, 2)}\n`;
67
- }
68
- catch {
69
- // try next
70
- }
71
- }
72
- return `${JSON.stringify({ ...FALLBACK_TEMPLATE, $schema: resolveSchemaPath(workspaceRoot, destRelative) }, null, 2)}\n`;
73
- }
74
- function resolveSchemaPath(workspaceRoot, destRelative) {
75
- const prefix = relativePrefix(destRelative);
76
- if ((0, node_fs_1.existsSync)((0, node_path_1.resolve)(workspaceRoot, 'projects/angular/generator/api/schematics/sdk/schema.json'))) {
77
- return `${prefix}projects/angular/generator/api/schematics/sdk/schema.json`;
78
- }
79
- return `${prefix}node_modules/@ojiepermana/angular/generator/api/schematics/sdk/schema.json`;
80
- }
81
- function relativePrefix(destRelative) {
82
- const depth = destRelative.replace(/^\/+/, '').split('/').length - 1;
83
- return depth <= 0 ? './' : '../'.repeat(depth);
84
- }
85
- function getNextCommand(workspaceRoot) {
86
- if ((0, node_fs_1.existsSync)((0, node_path_1.resolve)(workspaceRoot, 'projects/angular/collection.json'))) {
87
- return 'bun run gen:sdk';
88
- }
89
- return 'ng generate @ojiepermana/angular:sdk';
90
- }
@@ -1,131 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ngAdd = ngAdd;
4
- const node_fs_1 = require("node:fs");
5
- const node_path_1 = require("node:path");
6
- const tasks_1 = require("@angular-devkit/schematics/tasks");
7
- const semver_1 = require("semver");
8
- function ngAdd(options = {}) {
9
- return (tree, context) => {
10
- const manifest = loadLibraryManifest();
11
- const requiredDependencies = collectRequiredDependencies(manifest);
12
- if (requiredDependencies.length === 0) {
13
- context.logger.warn('[ng-add] No peer dependencies were declared by @ojiepermana/angular.');
14
- return;
15
- }
16
- const workspacePackageJson = readWorkspacePackageJson(tree);
17
- workspacePackageJson.dependencies ??= {};
18
- let changed = false;
19
- for (const dependency of requiredDependencies) {
20
- const existingDependency = findExistingDependency(workspacePackageJson, dependency.name);
21
- if (existingDependency) {
22
- if (shouldUpdateDependency(existingDependency.version, dependency.version)) {
23
- const section = workspacePackageJson[existingDependency.section] ?? {};
24
- section[dependency.name] = dependency.version;
25
- workspacePackageJson[existingDependency.section] = section;
26
- changed = true;
27
- context.logger.info(`[ng-add] updated ${dependency.name} from ${existingDependency.version} to ${dependency.version} in ${existingDependency.section}.`);
28
- }
29
- else {
30
- context.logger.info(`[ng-add] keeping existing ${dependency.name}@${existingDependency.version} from ${existingDependency.section}.`);
31
- }
32
- continue;
33
- }
34
- workspacePackageJson.dependencies[dependency.name] = dependency.version;
35
- changed = true;
36
- context.logger.info(`[ng-add] added ${dependency.name}@${dependency.version}.`);
37
- }
38
- if (!changed) {
39
- context.logger.info('[ng-add] Required dependencies are already present.');
40
- return;
41
- }
42
- workspacePackageJson.dependencies = sortSection(workspacePackageJson.dependencies);
43
- writeWorkspacePackageJson(tree, workspacePackageJson);
44
- if (!options.skipInstall) {
45
- context.addTask(new tasks_1.NodePackageInstallTask());
46
- }
47
- };
48
- }
49
- /**
50
- * Use the package manifest as the source of truth so ng-add stays aligned with
51
- * the published peerDependencies and ng-update packageGroup metadata.
52
- */
53
- function loadLibraryManifest() {
54
- const candidates = [
55
- (0, node_path_1.resolve)(__dirname, '../../../../../package.json'),
56
- (0, node_path_1.resolve)(process.cwd(), 'node_modules/@ojiepermana/angular/package.json'),
57
- (0, node_path_1.resolve)(process.cwd(), 'projects/angular/package.json'),
58
- ];
59
- for (const candidate of candidates) {
60
- if (!(0, node_fs_1.existsSync)(candidate))
61
- continue;
62
- return JSON.parse((0, node_fs_1.readFileSync)(candidate, 'utf8'));
63
- }
64
- throw new Error('Could not locate the @ojiepermana/angular package manifest for ng-add.');
65
- }
66
- function collectRequiredDependencies(manifest) {
67
- const peerDependencies = manifest.peerDependencies ?? {};
68
- const packageGroup = normalizePackageGroup(manifest['ng-update']?.packageGroup);
69
- return Object.keys(peerDependencies)
70
- .sort((left, right) => left.localeCompare(right))
71
- .map((name) => ({
72
- name,
73
- version: packageGroup[name] ?? peerDependencies[name],
74
- }));
75
- }
76
- function normalizePackageGroup(packageGroup) {
77
- if (!packageGroup) {
78
- return {};
79
- }
80
- if (Array.isArray(packageGroup)) {
81
- return {};
82
- }
83
- return packageGroup;
84
- }
85
- function readWorkspacePackageJson(tree) {
86
- const buffer = tree.read('/package.json');
87
- if (!buffer) {
88
- throw new Error('No package.json found at the workspace root.');
89
- }
90
- return JSON.parse(buffer.toString('utf8'));
91
- }
92
- function writeWorkspacePackageJson(tree, packageJson) {
93
- const content = `${JSON.stringify(packageJson, null, 2)}\n`;
94
- if (tree.exists('/package.json')) {
95
- tree.overwrite('/package.json', content);
96
- }
97
- else {
98
- tree.create('/package.json', content);
99
- }
100
- }
101
- function findExistingDependency(packageJson, dependencyName) {
102
- const sections = [
103
- 'dependencies',
104
- 'devDependencies',
105
- 'peerDependencies',
106
- 'optionalDependencies',
107
- ];
108
- for (const section of sections) {
109
- const version = packageJson[section]?.[dependencyName];
110
- if (version) {
111
- return { section, version };
112
- }
113
- }
114
- return null;
115
- }
116
- function shouldUpdateDependency(existingVersion, requiredVersion) {
117
- const existing = (0, semver_1.validRange)(existingVersion);
118
- const required = (0, semver_1.validRange)(requiredVersion);
119
- if (!existing || !required) {
120
- return false;
121
- }
122
- const existingMinimum = (0, semver_1.minVersion)(existing);
123
- const requiredMinimum = (0, semver_1.minVersion)(required);
124
- if (!existingMinimum || !requiredMinimum) {
125
- return false;
126
- }
127
- return existingMinimum.compare(requiredMinimum) < 0;
128
- }
129
- function sortSection(section) {
130
- return Object.fromEntries(Object.entries(section).sort(([left], [right]) => left.localeCompare(right)));
131
- }
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sdk = sdk;
4
- exports.writeResult = writeResult;
5
- const node_path_1 = require("node:path");
6
- const loader_1 = require("../../src/config/loader");
7
- const engine_1 = require("../../src/engine");
8
- /**
9
- * Schematic factory. Reads `sdk.config.json` at the workspace root, runs the
10
- * pure generator, and writes each emitted file into the Tree so
11
- * `--dry-run` / `--force` behave as expected.
12
- */
13
- function sdk(options = {}) {
14
- return async (tree, context) => {
15
- const workspaceRoot = process.cwd();
16
- const configPath = options.config ?? 'config/sdk.config.json';
17
- const targets = (0, loader_1.loadConfig)(configPath, workspaceRoot);
18
- const selected = selectTargets(targets, options.target);
19
- if (selected.length === 0) {
20
- throw new Error(`No SDK targets matched "${options.target}"`);
21
- }
22
- for (const target of selected) {
23
- const result = await (0, engine_1.generate)(target, workspaceRoot);
24
- writeResult(tree, workspaceRoot, result, context);
25
- }
26
- };
27
- }
28
- function selectTargets(targets, selector) {
29
- if (!selector)
30
- return [...targets];
31
- const idx = Number.parseInt(selector, 10);
32
- if (!Number.isNaN(idx) && idx > 0 && idx <= targets.length) {
33
- return [targets[idx - 1]];
34
- }
35
- const lc = selector.toLowerCase();
36
- return targets.filter((t) => t.clientName.toLowerCase() === lc || t.output.toLowerCase().includes(lc) || t.packageName.toLowerCase() === lc);
37
- }
38
- function writeResult(tree, workspaceRoot, result, context) {
39
- const relOutput = (0, node_path_1.relative)(workspaceRoot, result.outputDir) || '.';
40
- context.logger.info(`[sdk] ${result.target.mode} → ${relOutput} ` +
41
- `(schemas=${result.stats.schemas}, operations=${result.stats.operations}, ` +
42
- `tags=${result.stats.tags}, files=${result.stats.files})`);
43
- removeStaleFiles(tree, workspaceRoot, result);
44
- for (const file of result.files) {
45
- const absolute = (0, node_path_1.resolve)(result.outputDir, file.path);
46
- const treePath = normalizeTreePath(workspaceRoot, absolute);
47
- const buffer = Buffer.from(file.content, 'utf8');
48
- if (tree.exists(treePath)) {
49
- tree.overwrite(treePath, buffer);
50
- }
51
- else {
52
- tree.create(treePath, buffer);
53
- }
54
- }
55
- }
56
- function removeStaleFiles(tree, workspaceRoot, result) {
57
- const outputRoot = normalizeTreePath(workspaceRoot, result.outputDir);
58
- if (outputRoot === '/') {
59
- return;
60
- }
61
- const nextFiles = new Set(result.files.map((file) => normalizeTreePath(workspaceRoot, (0, node_path_1.resolve)(result.outputDir, file.path))));
62
- const staleFiles = [];
63
- tree.getDir(outputRoot).visit((path) => {
64
- if (!nextFiles.has(path)) {
65
- staleFiles.push(path);
66
- }
67
- });
68
- for (const staleFile of staleFiles) {
69
- tree.delete(staleFile);
70
- }
71
- }
72
- function normalizeTreePath(workspaceRoot, absolute) {
73
- const rel = (0, node_path_1.relative)(workspaceRoot, absolute);
74
- const posix = rel.split(/\\+/).join('/');
75
- return posix.startsWith('/') ? posix : `/${posix}`;
76
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadConfig = loadConfig;
4
- const node_fs_1 = require("node:fs");
5
- const node_path_1 = require("node:path");
6
- const schema_1 = require("./schema");
7
- /**
8
- * Loads an SDK generator config from disk. Supports `.json` and `.js`/`.cjs`
9
- * (require-based). `.ts` is intentionally not supported in the first iteration
10
- * to avoid pulling an extra compile step — use `.json` or `.js` instead.
11
- */
12
- function loadConfig(configPath, workspaceRoot) {
13
- const absolute = (0, node_path_1.isAbsolute)(configPath) ? configPath : (0, node_path_1.resolve)(workspaceRoot, configPath);
14
- if (!(0, node_fs_1.existsSync)(absolute)) {
15
- throw new Error(`SDK config not found at ${absolute}`);
16
- }
17
- const ext = (0, node_path_1.extname)(absolute).toLowerCase();
18
- let raw;
19
- if (ext === '.json' || ext === '') {
20
- const text = (0, node_fs_1.readFileSync)(absolute, 'utf8');
21
- raw = JSON.parse(stripJsonComments(text));
22
- }
23
- else if (ext === '.js' || ext === '.cjs') {
24
- const mod = require(absolute);
25
- raw = extractDefaultExport(mod);
26
- }
27
- else {
28
- throw new Error(`Unsupported SDK config extension: ${ext} (use .json or .js)`);
29
- }
30
- return (0, schema_1.resolveConfig)(raw);
31
- }
32
- function extractDefaultExport(mod) {
33
- if (mod && typeof mod === 'object' && 'default' in mod) {
34
- return mod.default;
35
- }
36
- return mod;
37
- }
38
- function stripJsonComments(text) {
39
- // Minimal JSONC support: strip // line comments and /* */ block comments.
40
- return text.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:])\/\/.*$/gm, '$1');
41
- }
@@ -1,57 +0,0 @@
1
- "use strict";
2
- /**
3
- * Public config shape for the SDK generator.
4
- *
5
- * Users place an `sdk.config.json` at the workspace root describing one or more
6
- * generation targets. All paths are resolved relative to the workspace root
7
- * (i.e. the directory containing the config file).
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.resolveTarget = resolveTarget;
11
- exports.resolveConfig = resolveConfig;
12
- const DEFAULT_BANNER = '/* eslint-disable */\n/* Auto-generated by @ojiepermana/angular/generator/api. DO NOT EDIT. */';
13
- const DEFAULT_FEATURES = {
14
- models: true,
15
- operations: true,
16
- services: true,
17
- client: true,
18
- metadata: true,
19
- navigation: true,
20
- };
21
- function resolveTarget(raw) {
22
- if (!raw || typeof raw !== 'object') {
23
- throw new Error('Invalid target: expected object');
24
- }
25
- if (!raw.input)
26
- throw new Error('Target is missing required "input"');
27
- if (!raw.output)
28
- throw new Error('Target is missing required "output"');
29
- const mode = raw.mode ?? 'standalone';
30
- if (!['standalone', 'library', 'secondary-entrypoint'].includes(mode)) {
31
- throw new Error(`Invalid target mode: ${mode}`);
32
- }
33
- const splitByDomain = raw.splitByDomain ?? mode === 'library';
34
- return {
35
- input: raw.input,
36
- output: raw.output,
37
- mode,
38
- clientName: raw.clientName ?? 'Api',
39
- packageName: raw.packageName ?? '@local/sdk',
40
- packageVersion: raw.packageVersion ?? '0.0.1',
41
- rootUrl: raw.rootUrl,
42
- features: { ...DEFAULT_FEATURES, ...(raw.features ?? {}) },
43
- splitByDomain,
44
- splitDepth: raw.splitDepth === 'tag' ? 'tag' : 'service',
45
- banner: raw.banner ?? DEFAULT_BANNER,
46
- };
47
- }
48
- function resolveConfig(raw) {
49
- if (!raw || typeof raw !== 'object') {
50
- throw new Error('Invalid SDK config: root must be an object');
51
- }
52
- const cfg = raw;
53
- if (!Array.isArray(cfg.targets) || cfg.targets.length === 0) {
54
- throw new Error('Invalid SDK config: "targets" must be a non-empty array');
55
- }
56
- return cfg.targets.map(resolveTarget);
57
- }