@ojiepermana/angular 21.3.4 → 22.0.27

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 (387) hide show
  1. package/README.md +16 -298
  2. package/fesm2022/ojiepermana-angular-chart.mjs +11 -0
  3. package/fesm2022/ojiepermana-angular-chart.mjs.map +1 -0
  4. package/fesm2022/ojiepermana-angular-component.mjs +11 -0
  5. package/fesm2022/ojiepermana-angular-component.mjs.map +1 -0
  6. package/fesm2022/ojiepermana-angular-navigation.mjs +11 -0
  7. package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -0
  8. package/fesm2022/ojiepermana-angular-sdk.mjs +11 -0
  9. package/fesm2022/ojiepermana-angular-sdk.mjs.map +1 -0
  10. package/fesm2022/ojiepermana-angular-theme.mjs +3 -374
  11. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  12. package/fesm2022/ojiepermana-angular.mjs +14 -14
  13. package/fesm2022/ojiepermana-angular.mjs.map +1 -1
  14. package/package.json +25 -361
  15. package/types/ojiepermana-angular-chart.d.ts +1 -0
  16. package/types/ojiepermana-angular-component.d.ts +1 -0
  17. package/types/ojiepermana-angular-navigation.d.ts +1 -0
  18. package/types/ojiepermana-angular-sdk.d.ts +1 -0
  19. package/types/ojiepermana-angular-theme.d.ts +1 -116
  20. package/types/ojiepermana-angular.d.ts +5 -3
  21. package/.npmignore +0 -2
  22. package/collection.json +0 -30
  23. package/component/accordion/package.json +0 -4
  24. package/component/alert/package.json +0 -4
  25. package/component/alert-dialog/package.json +0 -4
  26. package/component/aspect-ratio/package.json +0 -4
  27. package/component/avatar/package.json +0 -4
  28. package/component/badge/package.json +0 -4
  29. package/component/breadcrumb/package.json +0 -4
  30. package/component/button/package.json +0 -4
  31. package/component/button-group/package.json +0 -4
  32. package/component/calendar/package.json +0 -4
  33. package/component/card/package.json +0 -4
  34. package/component/carousel/package.json +0 -4
  35. package/component/chart/README.md +0 -249
  36. package/component/chart/area/package.json +0 -4
  37. package/component/chart/bar/package.json +0 -4
  38. package/component/chart/line/package.json +0 -4
  39. package/component/chart/package.json +0 -4
  40. package/component/chart/pie/package.json +0 -4
  41. package/component/chart/radar/package.json +0 -4
  42. package/component/chart/radial/package.json +0 -4
  43. package/component/chart/scatter/package.json +0 -4
  44. package/component/checkbox/package.json +0 -4
  45. package/component/collapsible/package.json +0 -4
  46. package/component/combobox/package.json +0 -4
  47. package/component/command/package.json +0 -4
  48. package/component/context-menu/package.json +0 -4
  49. package/component/date-picker/package.json +0 -4
  50. package/component/dialog/package.json +0 -4
  51. package/component/drawer/package.json +0 -4
  52. package/component/dropdown-menu/package.json +0 -4
  53. package/component/form/package.json +0 -4
  54. package/component/input/package.json +0 -4
  55. package/component/input-group/package.json +0 -4
  56. package/component/item/package.json +0 -4
  57. package/component/label/package.json +0 -4
  58. package/component/pagination/package.json +0 -4
  59. package/component/popover/package.json +0 -4
  60. package/component/progress/package.json +0 -4
  61. package/component/radio/package.json +0 -4
  62. package/component/scroll-area/package.json +0 -4
  63. package/component/select/package.json +0 -4
  64. package/component/separator/package.json +0 -4
  65. package/component/sheet/package.json +0 -4
  66. package/component/skeleton/package.json +0 -4
  67. package/component/slider/package.json +0 -4
  68. package/component/switch/package.json +0 -4
  69. package/component/table/package.json +0 -4
  70. package/component/tabs/package.json +0 -4
  71. package/component/textarea/package.json +0 -4
  72. package/component/toast/package.json +0 -4
  73. package/component/tooltip/package.json +0 -4
  74. package/component/utils/package.json +0 -4
  75. package/fesm2022/ojiepermana-angular-component-accordion.mjs +0 -174
  76. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +0 -1
  77. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +0 -242
  78. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +0 -1
  79. package/fesm2022/ojiepermana-angular-component-alert.mjs +0 -90
  80. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +0 -1
  81. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +0 -33
  82. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +0 -1
  83. package/fesm2022/ojiepermana-angular-component-avatar.mjs +0 -123
  84. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +0 -1
  85. package/fesm2022/ojiepermana-angular-component-badge.mjs +0 -47
  86. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +0 -1
  87. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +0 -186
  88. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +0 -1
  89. package/fesm2022/ojiepermana-angular-component-button-group.mjs +0 -95
  90. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +0 -1
  91. package/fesm2022/ojiepermana-angular-component-button.mjs +0 -64
  92. package/fesm2022/ojiepermana-angular-component-button.mjs.map +0 -1
  93. package/fesm2022/ojiepermana-angular-component-calendar.mjs +0 -78
  94. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +0 -1
  95. package/fesm2022/ojiepermana-angular-component-card.mjs +0 -137
  96. package/fesm2022/ojiepermana-angular-component-card.mjs.map +0 -1
  97. package/fesm2022/ojiepermana-angular-component-carousel.mjs +0 -310
  98. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +0 -1
  99. package/fesm2022/ojiepermana-angular-component-chart-area.mjs +0 -6
  100. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +0 -1
  101. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs +0 -6
  102. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +0 -1
  103. package/fesm2022/ojiepermana-angular-component-chart-line.mjs +0 -6
  104. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +0 -1
  105. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs +0 -6
  106. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +0 -1
  107. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs +0 -6
  108. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +0 -1
  109. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs +0 -6
  110. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +0 -1
  111. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs +0 -6
  112. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +0 -1
  113. package/fesm2022/ojiepermana-angular-component-chart.mjs +0 -3714
  114. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +0 -1
  115. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +0 -104
  116. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +0 -1
  117. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +0 -116
  118. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +0 -1
  119. package/fesm2022/ojiepermana-angular-component-combobox.mjs +0 -263
  120. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +0 -1
  121. package/fesm2022/ojiepermana-angular-component-command.mjs +0 -268
  122. package/fesm2022/ojiepermana-angular-component-command.mjs.map +0 -1
  123. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +0 -100
  124. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +0 -1
  125. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +0 -155
  126. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +0 -1
  127. package/fesm2022/ojiepermana-angular-component-dialog.mjs +0 -262
  128. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +0 -1
  129. package/fesm2022/ojiepermana-angular-component-drawer.mjs +0 -6
  130. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +0 -1
  131. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +0 -458
  132. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +0 -1
  133. package/fesm2022/ojiepermana-angular-component-form.mjs +0 -208
  134. package/fesm2022/ojiepermana-angular-component-form.mjs.map +0 -1
  135. package/fesm2022/ojiepermana-angular-component-input-group.mjs +0 -164
  136. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +0 -1
  137. package/fesm2022/ojiepermana-angular-component-input.mjs +0 -43
  138. package/fesm2022/ojiepermana-angular-component-input.mjs.map +0 -1
  139. package/fesm2022/ojiepermana-angular-component-item.mjs +0 -241
  140. package/fesm2022/ojiepermana-angular-component-item.mjs.map +0 -1
  141. package/fesm2022/ojiepermana-angular-component-label.mjs +0 -30
  142. package/fesm2022/ojiepermana-angular-component-label.mjs.map +0 -1
  143. package/fesm2022/ojiepermana-angular-component-pagination.mjs +0 -192
  144. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +0 -1
  145. package/fesm2022/ojiepermana-angular-component-popover.mjs +0 -163
  146. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +0 -1
  147. package/fesm2022/ojiepermana-angular-component-progress.mjs +0 -53
  148. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +0 -1
  149. package/fesm2022/ojiepermana-angular-component-radio.mjs +0 -92
  150. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +0 -1
  151. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +0 -48
  152. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +0 -1
  153. package/fesm2022/ojiepermana-angular-component-select.mjs +0 -131
  154. package/fesm2022/ojiepermana-angular-component-select.mjs.map +0 -1
  155. package/fesm2022/ojiepermana-angular-component-separator.mjs +0 -33
  156. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +0 -1
  157. package/fesm2022/ojiepermana-angular-component-sheet.mjs +0 -235
  158. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +0 -1
  159. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +0 -29
  160. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +0 -1
  161. package/fesm2022/ojiepermana-angular-component-slider.mjs +0 -29
  162. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +0 -1
  163. package/fesm2022/ojiepermana-angular-component-switch.mjs +0 -84
  164. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +0 -1
  165. package/fesm2022/ojiepermana-angular-component-table.mjs +0 -139
  166. package/fesm2022/ojiepermana-angular-component-table.mjs.map +0 -1
  167. package/fesm2022/ojiepermana-angular-component-tabs.mjs +0 -252
  168. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +0 -1
  169. package/fesm2022/ojiepermana-angular-component-textarea.mjs +0 -37
  170. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +0 -1
  171. package/fesm2022/ojiepermana-angular-component-toast.mjs +0 -47
  172. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +0 -1
  173. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +0 -56
  174. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +0 -1
  175. package/fesm2022/ojiepermana-angular-component-utils.mjs +0 -13
  176. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +0 -1
  177. package/fesm2022/ojiepermana-angular-generator-api.mjs +0 -68
  178. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +0 -1
  179. package/fesm2022/ojiepermana-angular-layout-component.mjs +0 -581
  180. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +0 -1
  181. package/fesm2022/ojiepermana-angular-layout-empty.mjs +0 -49
  182. package/fesm2022/ojiepermana-angular-layout-empty.mjs.map +0 -1
  183. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs +0 -119
  184. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs.map +0 -1
  185. package/fesm2022/ojiepermana-angular-layout-provider.mjs +0 -21
  186. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +0 -1
  187. package/fesm2022/ojiepermana-angular-layout-services.mjs +0 -114
  188. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +0 -1
  189. package/fesm2022/ojiepermana-angular-layout-shell.mjs +0 -48
  190. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +0 -1
  191. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +0 -27
  192. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +0 -1
  193. package/fesm2022/ojiepermana-angular-layout-token.mjs +0 -33
  194. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +0 -1
  195. package/fesm2022/ojiepermana-angular-layout-vertical.mjs +0 -113
  196. package/fesm2022/ojiepermana-angular-layout-vertical.mjs.map +0 -1
  197. package/fesm2022/ojiepermana-angular-layout.mjs +0 -461
  198. package/fesm2022/ojiepermana-angular-layout.mjs.map +0 -1
  199. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +0 -334
  200. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +0 -1
  201. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +0 -59
  202. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +0 -1
  203. package/fesm2022/ojiepermana-angular-navigation-item.mjs +0 -548
  204. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +0 -1
  205. package/fesm2022/ojiepermana-angular-navigation-service.mjs +0 -204
  206. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +0 -1
  207. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +0 -373
  208. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +0 -1
  209. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +0 -433
  210. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +0 -1
  211. package/fesm2022/ojiepermana-angular-navigation-types.mjs +0 -4
  212. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +0 -1
  213. package/fesm2022/ojiepermana-angular-theme-provider.mjs +0 -35
  214. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +0 -1
  215. package/fesm2022/ojiepermana-angular-theme-services.mjs +0 -286
  216. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +0 -1
  217. package/fesm2022/ojiepermana-angular-theme-token.mjs +0 -56
  218. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +0 -1
  219. package/generator/api/README.md +0 -252
  220. package/generator/api/bin/package.json +0 -3
  221. package/generator/api/bin/schematics/init/index.js +0 -90
  222. package/generator/api/bin/schematics/ng-add/index.js +0 -131
  223. package/generator/api/bin/schematics/sdk/index.js +0 -76
  224. package/generator/api/bin/src/config/loader.js +0 -41
  225. package/generator/api/bin/src/config/schema.js +0 -57
  226. package/generator/api/bin/src/emit/client.js +0 -246
  227. package/generator/api/bin/src/emit/metadata.js +0 -295
  228. package/generator/api/bin/src/emit/models.js +0 -106
  229. package/generator/api/bin/src/emit/navigation.js +0 -56
  230. package/generator/api/bin/src/emit/operations.js +0 -122
  231. package/generator/api/bin/src/emit/public-api.js +0 -54
  232. package/generator/api/bin/src/emit/services.js +0 -87
  233. package/generator/api/bin/src/engine.js +0 -65
  234. package/generator/api/bin/src/layout/per-domain.js +0 -359
  235. package/generator/api/bin/src/parser/bundle.js +0 -25
  236. package/generator/api/bin/src/parser/ir.js +0 -320
  237. package/generator/api/bin/src/parser/types.js +0 -7
  238. package/generator/api/bin/src/render/template.js +0 -58
  239. package/generator/api/bin/src/writer/index.js +0 -278
  240. package/generator/api/package.json +0 -4
  241. package/generator/api/schematics/init/schema.json +0 -19
  242. package/generator/api/schematics/ng-add/schema.json +0 -14
  243. package/generator/api/schematics/sdk/schema.json +0 -19
  244. package/generator/api/sdk.config.example.json +0 -24
  245. package/generator/guide/README.md +0 -84
  246. package/generator/guide/bin/package.json +0 -3
  247. package/generator/guide/bin/schematics/build/index.js +0 -35
  248. package/generator/guide/bin/schematics/init/index.js +0 -70
  249. package/generator/guide/bin/src/config/loader.js +0 -50
  250. package/generator/guide/bin/src/config/schema.js +0 -12
  251. package/generator/guide/bin/src/engine/component.js +0 -74
  252. package/generator/guide/bin/src/engine/frontmatter.js +0 -42
  253. package/generator/guide/bin/src/engine/index.js +0 -42
  254. package/generator/guide/bin/src/engine/naming.js +0 -39
  255. package/generator/guide/bin/src/engine/render.js +0 -31
  256. package/generator/guide/bin/src/engine/routes.js +0 -106
  257. package/generator/guide/bin/src/engine/walk.js +0 -35
  258. package/generator/guide/guide.config.example.json +0 -9
  259. package/generator/guide/schematics/build/schema.json +0 -14
  260. package/generator/guide/schematics/init/schema.json +0 -19
  261. package/layout/component/package.json +0 -4
  262. package/layout/empty/package.json +0 -4
  263. package/layout/horizontal/package.json +0 -4
  264. package/layout/package.json +0 -4
  265. package/layout/provider/package.json +0 -4
  266. package/layout/services/package.json +0 -4
  267. package/layout/shell/package.json +0 -4
  268. package/layout/token/directive/package.json +0 -4
  269. package/layout/token/package.json +0 -4
  270. package/layout/vertical/package.json +0 -4
  271. package/navigation/demo-data/package.json +0 -4
  272. package/navigation/icon/package.json +0 -4
  273. package/navigation/item/package.json +0 -4
  274. package/navigation/service/package.json +0 -4
  275. package/navigation/sidebar/package.json +0 -4
  276. package/navigation/topbar/package.json +0 -4
  277. package/navigation/types/package.json +0 -4
  278. package/theme/README.md +0 -67
  279. package/theme/package.json +0 -4
  280. package/theme/provider/package.json +0 -4
  281. package/theme/services/package.json +0 -4
  282. package/theme/styles/foundation/components.css +0 -81
  283. package/theme/styles/foundation/layers.css +0 -15
  284. package/theme/styles/foundation/tokens.css +0 -55
  285. package/theme/styles/index.css +0 -37
  286. package/theme/styles/integrations/material.css +0 -254
  287. package/theme/styles/integrations/tailwind.css +0 -114
  288. package/theme/styles/variants/color/amber.css +0 -31
  289. package/theme/styles/variants/color/base.css +0 -36
  290. package/theme/styles/variants/color/blue.css +0 -31
  291. package/theme/styles/variants/color/cyan.css +0 -31
  292. package/theme/styles/variants/color/emerald.css +0 -31
  293. package/theme/styles/variants/color/fuchsia.css +0 -31
  294. package/theme/styles/variants/color/green.css +0 -31
  295. package/theme/styles/variants/color/index.css +0 -22
  296. package/theme/styles/variants/color/indigo.css +0 -31
  297. package/theme/styles/variants/color/lime.css +0 -31
  298. package/theme/styles/variants/color/orange.css +0 -31
  299. package/theme/styles/variants/color/pink.css +0 -31
  300. package/theme/styles/variants/color/purple.css +0 -31
  301. package/theme/styles/variants/color/red.css +0 -31
  302. package/theme/styles/variants/color/rose.css +0 -31
  303. package/theme/styles/variants/color/sky.css +0 -31
  304. package/theme/styles/variants/color/teal.css +0 -31
  305. package/theme/styles/variants/color/violet.css +0 -31
  306. package/theme/styles/variants/color/yellow.css +0 -31
  307. package/theme/styles/variants/mode/dark.css +0 -20
  308. package/theme/styles/variants/mode/index.css +0 -6
  309. package/theme/styles/variants/mode/light.css +0 -24
  310. package/theme/styles/variants/style/brutal.css +0 -50
  311. package/theme/styles/variants/style/default.css +0 -54
  312. package/theme/styles/variants/style/index.css +0 -8
  313. package/theme/styles/variants/style/sharp.css +0 -50
  314. package/theme/styles/variants/style/soft.css +0 -50
  315. package/theme/token/package.json +0 -4
  316. package/types/ojiepermana-angular-component-accordion.d.ts +0 -51
  317. package/types/ojiepermana-angular-component-alert-dialog.d.ts +0 -93
  318. package/types/ojiepermana-angular-component-alert.d.ts +0 -37
  319. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +0 -12
  320. package/types/ojiepermana-angular-component-avatar.d.ts +0 -51
  321. package/types/ojiepermana-angular-component-badge.d.ts +0 -19
  322. package/types/ojiepermana-angular-component-breadcrumb.d.ts +0 -46
  323. package/types/ojiepermana-angular-component-button-group.d.ts +0 -26
  324. package/types/ojiepermana-angular-component-button.d.ts +0 -22
  325. package/types/ojiepermana-angular-component-calendar.d.ts +0 -33
  326. package/types/ojiepermana-angular-component-card.d.ts +0 -60
  327. package/types/ojiepermana-angular-component-carousel.d.ts +0 -86
  328. package/types/ojiepermana-angular-component-chart-area.d.ts +0 -1
  329. package/types/ojiepermana-angular-component-chart-bar.d.ts +0 -1
  330. package/types/ojiepermana-angular-component-chart-line.d.ts +0 -1
  331. package/types/ojiepermana-angular-component-chart-pie.d.ts +0 -1
  332. package/types/ojiepermana-angular-component-chart-radar.d.ts +0 -1
  333. package/types/ojiepermana-angular-component-chart-radial.d.ts +0 -1
  334. package/types/ojiepermana-angular-component-chart-scatter.d.ts +0 -1
  335. package/types/ojiepermana-angular-component-chart.d.ts +0 -1094
  336. package/types/ojiepermana-angular-component-checkbox.d.ts +0 -35
  337. package/types/ojiepermana-angular-component-collapsible.d.ts +0 -42
  338. package/types/ojiepermana-angular-component-combobox.d.ts +0 -51
  339. package/types/ojiepermana-angular-component-command.d.ts +0 -99
  340. package/types/ojiepermana-angular-component-context-menu.d.ts +0 -35
  341. package/types/ojiepermana-angular-component-date-picker.d.ts +0 -41
  342. package/types/ojiepermana-angular-component-dialog.d.ts +0 -87
  343. package/types/ojiepermana-angular-component-drawer.d.ts +0 -1
  344. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +0 -135
  345. package/types/ojiepermana-angular-component-form.d.ts +0 -92
  346. package/types/ojiepermana-angular-component-input-group.d.ts +0 -51
  347. package/types/ojiepermana-angular-component-input.d.ts +0 -16
  348. package/types/ojiepermana-angular-component-item.d.ts +0 -88
  349. package/types/ojiepermana-angular-component-label.d.ts +0 -11
  350. package/types/ojiepermana-angular-component-pagination.d.ts +0 -27
  351. package/types/ojiepermana-angular-component-popover.d.ts +0 -43
  352. package/types/ojiepermana-angular-component-progress.d.ts +0 -17
  353. package/types/ojiepermana-angular-component-radio.d.ts +0 -34
  354. package/types/ojiepermana-angular-component-scroll-area.d.ts +0 -19
  355. package/types/ojiepermana-angular-component-select.d.ts +0 -45
  356. package/types/ojiepermana-angular-component-separator.d.ts +0 -14
  357. package/types/ojiepermana-angular-component-sheet.d.ts +0 -74
  358. package/types/ojiepermana-angular-component-skeleton.d.ts +0 -10
  359. package/types/ojiepermana-angular-component-slider.d.ts +0 -16
  360. package/types/ojiepermana-angular-component-switch.d.ts +0 -30
  361. package/types/ojiepermana-angular-component-table.d.ts +0 -52
  362. package/types/ojiepermana-angular-component-tabs.d.ts +0 -92
  363. package/types/ojiepermana-angular-component-textarea.d.ts +0 -12
  364. package/types/ojiepermana-angular-component-toast.d.ts +0 -29
  365. package/types/ojiepermana-angular-component-tooltip.d.ts +0 -22
  366. package/types/ojiepermana-angular-component-utils.d.ts +0 -5
  367. package/types/ojiepermana-angular-generator-api.d.ts +0 -86
  368. package/types/ojiepermana-angular-layout-component.d.ts +0 -205
  369. package/types/ojiepermana-angular-layout-empty.d.ts +0 -22
  370. package/types/ojiepermana-angular-layout-horizontal.d.ts +0 -36
  371. package/types/ojiepermana-angular-layout-provider.d.ts +0 -6
  372. package/types/ojiepermana-angular-layout-services.d.ts +0 -25
  373. package/types/ojiepermana-angular-layout-shell.d.ts +0 -8
  374. package/types/ojiepermana-angular-layout-token-directive.d.ts +0 -13
  375. package/types/ojiepermana-angular-layout-token.d.ts +0 -36
  376. package/types/ojiepermana-angular-layout-vertical.d.ts +0 -38
  377. package/types/ojiepermana-angular-layout.d.ts +0 -164
  378. package/types/ojiepermana-angular-navigation-demo-data.d.ts +0 -5
  379. package/types/ojiepermana-angular-navigation-icon.d.ts +0 -17
  380. package/types/ojiepermana-angular-navigation-item.d.ts +0 -54
  381. package/types/ojiepermana-angular-navigation-service.d.ts +0 -77
  382. package/types/ojiepermana-angular-navigation-sidebar.d.ts +0 -75
  383. package/types/ojiepermana-angular-navigation-topbar.d.ts +0 -54
  384. package/types/ojiepermana-angular-navigation-types.d.ts +0 -129
  385. package/types/ojiepermana-angular-theme-provider.d.ts +0 -11
  386. package/types/ojiepermana-angular-theme-services.d.ts +0 -55
  387. package/types/ojiepermana-angular-theme-token.d.ts +0 -57
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.emitServices = emitServices;
4
- const template_1 = require("../render/template");
5
- /**
6
- * Emit one Injectable service per tag at `services/<tag-kebab>.service.ts`.
7
- *
8
- * Each method returns `Observable<T>` (body-only) plus a `<method>$Response`
9
- * variant that returns the full `StrictHttpResponse<T>`. Bodies are dispatched
10
- * through the tree-shakeable fn modules emitted by {@link emitOperations}, so
11
- * unused methods can be shaken out.
12
- */
13
- function emitServices(ir, target) {
14
- const byTag = groupByTag(ir.operations);
15
- const files = [];
16
- for (const [tag, ops] of byTag) {
17
- files.push({
18
- path: `services/${(0, template_1.kebabCase)(tag)}.service.ts`,
19
- content: (0, template_1.finalize)(renderService(tag, ops, target)),
20
- });
21
- }
22
- return files;
23
- }
24
- function groupByTag(operations) {
25
- const map = new Map();
26
- for (const op of operations) {
27
- const bucket = map.get(op.tag) ?? [];
28
- bucket.push(op);
29
- map.set(op.tag, bucket);
30
- }
31
- return map;
32
- }
33
- function renderService(tag, ops, target) {
34
- const className = `${(0, template_1.pascalCase)(tag)}Service`;
35
- const sorted = [...ops].sort((a, b) => a.operationId.localeCompare(b.operationId));
36
- const fnImports = [];
37
- const modelImports = new Set();
38
- for (const op of sorted) {
39
- const fnName = (0, template_1.camelCase)(op.operationId);
40
- const paramsName = `${(0, template_1.pascalCase)(op.operationId)}$Params`;
41
- fnImports.push(`import { ${fnName}, type ${paramsName} } from '../fn/${(0, template_1.kebabCase)(tag)}/${(0, template_1.kebabCase)(op.operationId)}';`);
42
- if (op.successRef)
43
- modelImports.add(op.successRef);
44
- }
45
- const modelImportLines = [...modelImports]
46
- .sort()
47
- .map((ref) => `import type { ${(0, template_1.pascalCase)(ref)} } from '../models/${(0, template_1.kebabCase)(ref)}';`);
48
- const methods = sorted.map((op) => renderMethod(op)).join('\n\n');
49
- return `${target.banner}
50
-
51
- import { HttpContext, HttpResponse } from '@angular/common/http';
52
- import { Injectable } from '@angular/core';
53
- import { Observable } from 'rxjs';
54
- import { filter, map } from 'rxjs/operators';
55
-
56
- import { BaseService } from '../base-service';
57
- import { StrictHttpResponse } from '../strict-http-response';
58
-
59
- ${fnImports.join('\n')}
60
- ${modelImportLines.length ? '\n' + modelImportLines.join('\n') : ''}
61
-
62
- @Injectable({ providedIn: 'root' })
63
- export class ${className} extends BaseService {
64
- ${methods}
65
- }
66
- `;
67
- }
68
- function renderMethod(op) {
69
- const fnName = (0, template_1.camelCase)(op.operationId);
70
- const paramsName = `${(0, template_1.pascalCase)(op.operationId)}$Params`;
71
- const responseType = op.successRef ? (0, template_1.pascalCase)(op.successRef) : 'unknown';
72
- const hasParams = op.params.length > 0 || Boolean(op.bodySchemaRef);
73
- const anyRequired = op.params.some((p) => p.required) || (op.bodySchemaRef != null && op.bodyRequired);
74
- const paramsSig = hasParams ? `params${anyRequired ? '' : '?'}: ${paramsName}` : `params?: ${paramsName}`;
75
- return ` /** ${op.summary ?? op.operationId} (${op.method.toUpperCase()} ${op.path}) */
76
- ${fnName}$Response(${paramsSig}, context?: HttpContext): Observable<StrictHttpResponse<${responseType}>> {
77
- return ${fnName}(this.http, this.rootUrl, params as ${paramsName}, context).pipe(
78
- filter((r: unknown): r is HttpResponse<unknown> => r instanceof HttpResponse),
79
- map((r) => r as StrictHttpResponse<${responseType}>),
80
- );
81
- }
82
-
83
- /** ${op.summary ?? op.operationId} (${op.method.toUpperCase()} ${op.path}) */
84
- ${fnName}(${paramsSig}, context?: HttpContext): Observable<${responseType}> {
85
- return this.${fnName}$Response(params as ${paramsName}, context).pipe(map((r) => r.body));
86
- }`;
87
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generate = generate;
4
- const node_path_1 = require("node:path");
5
- const client_1 = require("./emit/client");
6
- const metadata_1 = require("./emit/metadata");
7
- const models_1 = require("./emit/models");
8
- const navigation_1 = require("./emit/navigation");
9
- const operations_1 = require("./emit/operations");
10
- const public_api_1 = require("./emit/public-api");
11
- const services_1 = require("./emit/services");
12
- const per_domain_1 = require("./layout/per-domain");
13
- const ir_1 = require("./parser/ir");
14
- const bundle_1 = require("./parser/bundle");
15
- const index_1 = require("./writer/index");
16
- /**
17
- * Run the generator for a single resolved target. Pure in the sense that it
18
- * does **not** touch the filesystem — the caller is expected to materialize
19
- * `result.files` either into an Angular schematic `Tree` or onto disk.
20
- */
21
- async function generate(target, workspaceRoot) {
22
- const specPath = (0, node_path_1.isAbsolute)(target.input) ? target.input : (0, node_path_1.resolve)(workspaceRoot, target.input);
23
- const doc = await (0, bundle_1.loadSpec)(specPath);
24
- const ir = (0, ir_1.buildIR)(doc);
25
- const files = [];
26
- if (target.features.client)
27
- files.push(...(0, client_1.emitClient)(target));
28
- if (target.features.models)
29
- files.push(...(0, models_1.emitModels)(ir, target));
30
- if (target.features.operations)
31
- files.push(...(0, operations_1.emitOperations)(ir, target));
32
- if (target.features.services)
33
- files.push(...(0, services_1.emitServices)(ir, target));
34
- if (target.features.metadata)
35
- files.push(...(0, metadata_1.emitMetadata)(ir, target));
36
- if (target.features.navigation)
37
- files.push(...(0, navigation_1.emitNavigation)(ir, target));
38
- // public-api barrel is emitted last so it sees the final feature set.
39
- files.push(...(0, public_api_1.emitPublicApi)(ir, target));
40
- const laidOut = target.splitByDomain ? (0, per_domain_1.relayoutPerDomain)(files, ir, target) : files;
41
- const outputDir = (0, node_path_1.isAbsolute)(target.output) ? target.output : (0, node_path_1.resolve)(workspaceRoot, target.output);
42
- const wrapped = applyMode(laidOut, ir, target, workspaceRoot, outputDir);
43
- return {
44
- target,
45
- outputDir,
46
- files: wrapped,
47
- stats: {
48
- schemas: ir.schemas.length,
49
- operations: ir.operations.length,
50
- tags: new Set(ir.operations.map((o) => o.tag)).size,
51
- files: wrapped.length,
52
- },
53
- };
54
- }
55
- function applyMode(files, ir, target, workspaceRoot, outputDir) {
56
- switch (target.mode) {
57
- case 'library':
58
- return (0, index_1.writeLibrary)(files, ir, target, workspaceRoot, outputDir);
59
- case 'secondary-entrypoint':
60
- return (0, index_1.writeSecondaryEntrypoint)(files, ir, target, workspaceRoot, outputDir);
61
- case 'standalone':
62
- default:
63
- return (0, index_1.writeStandalone)(files);
64
- }
65
- }
@@ -1,359 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.relayoutPerDomain = relayoutPerDomain;
4
- /**
5
- * Post-emit transform that reorganises the flat generator output into a
6
- * per-domain layout:
7
- *
8
- * ```
9
- * <outputDir>/
10
- * shared/ client primitives, shared models, metadata types, validators
11
- * metadata.ts aggregate metadata barrel (root only)
12
- * openapi-helpers.ts metadata helpers (root only)
13
- * permissions/index.ts aggregate operation rules (root only)
14
- * <domain>/ one folder per OpenAPI tag (kebab-cased)
15
- * models/ models only referenced by this domain
16
- * fn/ tree-shakeable operation functions for this domain
17
- * services/ Injectable service class(es) for this domain
18
- * permissions/ per-tag permission rules
19
- * public-api.ts
20
- * public-api.ts aggregator: re-exports shared + every domain
21
- * ```
22
- *
23
- * The emitters themselves are not aware of the transform — they keep producing
24
- * flat paths and relative imports. This module walks the emitted virtual files,
25
- * rewrites their paths, and patches relative imports so everything still lines
26
- * up.
27
- */
28
- const node_path_1 = require("node:path");
29
- const template_1 = require("../render/template");
30
- const SHARED = 'shared';
31
- const VIRTUAL_ROOT = '/__sdk__';
32
- function relayoutPerDomain(files, ir, target) {
33
- const mapping = computeMapping(files, ir, target);
34
- // 1. Rewrite paths + relative imports, drop the original public-api.ts so we
35
- // can regenerate it with domain awareness.
36
- const rewritten = [];
37
- for (const file of files) {
38
- if (file.path === 'public-api.ts')
39
- continue;
40
- const newPath = mapping.oldToNew.get(file.path);
41
- if (!newPath)
42
- continue;
43
- rewritten.push({
44
- path: newPath,
45
- content: rewriteImports(file.content, file.path, newPath, mapping.oldToNew),
46
- });
47
- }
48
- // 2. Emit per-domain + root public-api.ts.
49
- rewritten.push(...emitPublicApis(ir, target, mapping));
50
- return rewritten;
51
- }
52
- function computeMapping(files, ir, target) {
53
- // Domain per tag. Two strategies are supported, selected by
54
- // `target.splitDepth`:
55
- //
56
- // 'service' (default): walk each tag's `parent` chain up to the root and
57
- // use the kebab-cased root name. Every tag collapses into its owning
58
- // backend service (e.g. `Role`, `Permission`, `Role Permission` →
59
- // `access`; `Approval Definition`, `Approval Stage`, ... → `approval`;
60
- // `GCS`, `S3` → `storage`).
61
- //
62
- // 'tag': emit one folder per leaf tag, nested under the parent chain so
63
- // related tags stay grouped (e.g. `storage/gcs`, `storage/s3`,
64
- // `access/role`, `access/role-permission`). Tags without a parent
65
- // become a single-segment path (e.g. `auth`).
66
- //
67
- // In both cases the resulting string may contain `/` and is treated as a
68
- // relative path. Collect operation + service lookups up front so callers
69
- // can iterate without re-scanning.
70
- const tagByName = new Map(ir.tags.map((t) => [t.name, t]));
71
- const tagChain = (name) => {
72
- const chain = [];
73
- const seen = new Set();
74
- let current = name;
75
- while (current && !seen.has(current)) {
76
- seen.add(current);
77
- chain.push(current);
78
- current = tagByName.get(current)?.parent;
79
- }
80
- return chain.reverse();
81
- };
82
- const domainForTag = (tag) => {
83
- const chain = tagChain(tag);
84
- if (chain.length === 0)
85
- return SHARED;
86
- if (target.splitDepth === 'tag') {
87
- return (chain
88
- .map((segment) => (0, template_1.kebabCase)(segment))
89
- .filter(Boolean)
90
- .join('/') || SHARED);
91
- }
92
- return (0, template_1.kebabCase)(chain[0]) || SHARED;
93
- };
94
- const domainOperations = new Map();
95
- const domainServices = new Map();
96
- const tagToDomain = new Map();
97
- for (const op of ir.operations) {
98
- const domain = domainForTag(op.tag);
99
- tagToDomain.set(op.tag, domain);
100
- const ops = domainOperations.get(domain) ?? [];
101
- ops.push(op.operationId);
102
- domainOperations.set(domain, ops);
103
- const svcs = domainServices.get(domain) ?? [];
104
- if (!svcs.includes(op.tag))
105
- svcs.push(op.tag);
106
- domainServices.set(domain, svcs);
107
- }
108
- const domains = [...domainOperations.keys()].sort();
109
- // Model ownership: a model belongs to a domain only if it is exclusively
110
- // referenced by that domain's operations (directly or transitively).
111
- const modelDomains = new Map();
112
- const markModel = (name, domain) => {
113
- let set = modelDomains.get(name);
114
- if (!set) {
115
- set = new Set();
116
- modelDomains.set(name, set);
117
- }
118
- set.add(domain);
119
- };
120
- for (const op of ir.operations) {
121
- const domain = tagToDomain.get(op.tag) ?? SHARED;
122
- for (const p of op.params) {
123
- if (p.rule.ref)
124
- markModel(p.rule.ref, domain);
125
- if (p.rule.itemsRef)
126
- markModel(p.rule.itemsRef, domain);
127
- }
128
- if (op.bodySchemaRef)
129
- markModel(op.bodySchemaRef, domain);
130
- if (op.successRef)
131
- markModel(op.successRef, domain);
132
- }
133
- // Transitive closure: a model's nested refs inherit its domain set.
134
- const schemaByName = new Map(ir.schemas.map((s) => [s.name, s]));
135
- let changed = true;
136
- while (changed) {
137
- changed = false;
138
- for (const [name, domains] of [...modelDomains]) {
139
- const schema = schemaByName.get(name);
140
- if (!schema)
141
- continue;
142
- const refs = new Set();
143
- if (schema.arrayItemRef)
144
- refs.add(schema.arrayItemRef);
145
- for (const rule of Object.values(schema.properties)) {
146
- if (rule.ref)
147
- refs.add(rule.ref);
148
- if (rule.itemsRef)
149
- refs.add(rule.itemsRef);
150
- }
151
- for (const ref of refs) {
152
- let target = modelDomains.get(ref);
153
- if (!target) {
154
- target = new Set();
155
- modelDomains.set(ref, target);
156
- }
157
- for (const d of domains) {
158
- if (!target.has(d)) {
159
- target.add(d);
160
- changed = true;
161
- }
162
- }
163
- }
164
- }
165
- }
166
- const modelOwner = new Map();
167
- for (const schema of ir.schemas) {
168
- const set = modelDomains.get(schema.name);
169
- if (!set || set.size !== 1)
170
- modelOwner.set(schema.name, SHARED);
171
- else
172
- modelOwner.set(schema.name, [...set][0]);
173
- }
174
- // Build old → new path map.
175
- const oldToNew = new Map();
176
- const kebabToSchema = new Map(ir.schemas.map((s) => [(0, template_1.kebabCase)(s.name), s.name]));
177
- for (const file of files) {
178
- const np = computeNewPath(file.path, {
179
- modelOwner,
180
- kebabToSchema,
181
- tagToDomain,
182
- });
183
- if (np)
184
- oldToNew.set(file.path, np);
185
- }
186
- return { oldToNew, modelOwner, domains, domainOperations, domainServices };
187
- }
188
- function computeNewPath(oldPath, ctx) {
189
- // Root-level client primitives → shared/.
190
- const rootShared = new Set([
191
- 'api-configuration.ts',
192
- 'base-service.ts',
193
- 'request-builder.ts',
194
- 'strict-http-response.ts',
195
- 'api.ts',
196
- 'api.navigation.ts',
197
- 'metadata-types.ts',
198
- ]);
199
- if (rootShared.has(oldPath))
200
- return `${SHARED}/${oldPath}`;
201
- if (oldPath === 'metadata.ts' || oldPath === 'openapi-helpers.ts') {
202
- return oldPath;
203
- }
204
- if (oldPath.startsWith('models/')) {
205
- const kebab = oldPath.slice('models/'.length).replace(/\.ts$/, '');
206
- const name = ctx.kebabToSchema.get(kebab);
207
- const owner = (name && ctx.modelOwner.get(name)) || SHARED;
208
- return `${owner}/models/${kebab}.ts`;
209
- }
210
- if (oldPath.startsWith('fn/')) {
211
- // fn/<tag-kebab>/<op-kebab>.ts → <domain>/fn/<op-kebab>.ts
212
- const parts = oldPath.split('/');
213
- if (parts.length < 3)
214
- return undefined;
215
- const tagKebab = parts[1];
216
- const fileName = parts.slice(2).join('/');
217
- const domain = findDomainFromKebab(tagKebab, ctx.tagToDomain);
218
- return `${domain}/fn/${fileName}`;
219
- }
220
- if (oldPath.startsWith('services/')) {
221
- const fileName = oldPath.slice('services/'.length);
222
- const tagKebab = fileName.replace(/\.service\.ts$/, '');
223
- const domain = findDomainFromKebab(tagKebab, ctx.tagToDomain);
224
- return `${domain}/services/${fileName}`;
225
- }
226
- if (oldPath === 'permissions/index.ts')
227
- return oldPath;
228
- if (oldPath.startsWith('permissions/')) {
229
- const fileName = oldPath.slice('permissions/'.length);
230
- const tagKebab = fileName.replace(/\.ts$/, '');
231
- const domain = findDomainFromKebab(tagKebab, ctx.tagToDomain);
232
- return `${domain}/permissions/${fileName}`;
233
- }
234
- if (oldPath.startsWith('validators/'))
235
- return `${SHARED}/${oldPath}`;
236
- return undefined;
237
- }
238
- function findDomainFromKebab(tagKebab, tagToDomain) {
239
- for (const [tag, domain] of tagToDomain) {
240
- if ((0, template_1.kebabCase)(tag) === tagKebab)
241
- return domain;
242
- }
243
- return tagKebab || SHARED;
244
- }
245
- function rewriteImports(content, oldPath, newPath, oldToNew) {
246
- const oldAbs = node_path_1.posix.join(VIRTUAL_ROOT, oldPath);
247
- const newAbs = node_path_1.posix.join(VIRTUAL_ROOT, newPath);
248
- const oldDir = (0, node_path_1.dirname)(oldAbs);
249
- const newDir = (0, node_path_1.dirname)(newAbs);
250
- const replaceRelative = (spec) => {
251
- if (!spec.startsWith('./') && !spec.startsWith('../'))
252
- return spec;
253
- // Resolve target old absolute (append `.ts` candidates).
254
- const resolved = node_path_1.posix.normalize(node_path_1.posix.join(oldDir, spec));
255
- const candidates = [`${resolved}.ts`, `${resolved}/index.ts`, resolved];
256
- for (const cand of candidates) {
257
- const rel = cand.startsWith(VIRTUAL_ROOT + '/') ? cand.slice(VIRTUAL_ROOT.length + 1) : null;
258
- if (!rel)
259
- continue;
260
- const np = oldToNew.get(rel);
261
- if (!np)
262
- continue;
263
- const targetAbs = node_path_1.posix.join(VIRTUAL_ROOT, np);
264
- let nextSpec = node_path_1.posix.relative(newDir, targetAbs).replace(/\.ts$/, '');
265
- if (!nextSpec.startsWith('.'))
266
- nextSpec = `./${nextSpec}`;
267
- return nextSpec;
268
- }
269
- return spec;
270
- };
271
- return content.replace(/(from\s+['"])([^'"]+)(['"])/g, (_m, a, spec, c) => `${a}${replaceRelative(spec)}${c}`);
272
- }
273
- function emitPublicApis(ir, target, mapping) {
274
- const out = [];
275
- const schemaNames = ir.schemas.map((s) => s.name);
276
- // shared/public-api.ts — shared primitives + shared models only.
277
- const sharedLines = [target.banner, ''];
278
- if (target.features.client) {
279
- sharedLines.push(`export { ApiConfiguration, provideApiConfiguration } from './api-configuration';`);
280
- sharedLines.push(`export { BaseService } from './base-service';`);
281
- sharedLines.push(`export { RequestBuilder } from './request-builder';`);
282
- sharedLines.push(`export type { StrictHttpResponse } from './strict-http-response';`);
283
- sharedLines.push(`export { ${target.clientName} } from './api';`);
284
- sharedLines.push('');
285
- }
286
- if (target.features.models) {
287
- const sharedModels = schemaNames.filter((n) => mapping.modelOwner.get(n) === SHARED);
288
- for (const name of sharedModels) {
289
- sharedLines.push(`export type { ${(0, template_1.pascalCase)(name)} } from './models/${(0, template_1.kebabCase)(name)}';`);
290
- }
291
- if (sharedModels.length)
292
- sharedLines.push('');
293
- }
294
- if (target.features.metadata) {
295
- sharedLines.push(`export * from './metadata-types';`);
296
- sharedLines.push(`export * from './validators/index';`);
297
- sharedLines.push('');
298
- }
299
- if (target.features.navigation) {
300
- sharedLines.push(`export { ApiNavigation } from './api.navigation';`);
301
- }
302
- out.push({ path: `${SHARED}/public-api.ts`, content: (0, template_1.finalize)(sharedLines.join('\n')) });
303
- // Per-domain public-api.ts.
304
- for (const domain of mapping.domains) {
305
- const lines = [target.banner, ''];
306
- // Keep each domain entrypoint scoped to its own surface. Re-exporting the
307
- // shared barrel here makes the root barrel publish the same names twice
308
- // once it also exports `./shared/public-api`.
309
- if (target.features.models) {
310
- const ownedModels = schemaNames.filter((n) => mapping.modelOwner.get(n) === domain);
311
- for (const name of ownedModels) {
312
- lines.push(`export type { ${(0, template_1.pascalCase)(name)} } from './models/${(0, template_1.kebabCase)(name)}';`);
313
- }
314
- if (ownedModels.length)
315
- lines.push('');
316
- }
317
- if (target.features.metadata) {
318
- const tags = (mapping.domainServices.get(domain) ?? []).slice().sort();
319
- for (const tag of tags) {
320
- lines.push(`export { ${(0, template_1.camelCase)(tag)}OperationRules } from './permissions/${(0, template_1.kebabCase)(tag)}';`);
321
- }
322
- if (tags.length)
323
- lines.push('');
324
- }
325
- if (target.features.services) {
326
- const tags = mapping.domainServices.get(domain) ?? [];
327
- for (const tag of tags.sort()) {
328
- lines.push(`export { ${(0, template_1.pascalCase)(tag)}Service } from './services/${(0, template_1.kebabCase)(tag)}.service';`);
329
- }
330
- if (tags.length)
331
- lines.push('');
332
- }
333
- if (target.features.operations) {
334
- const opIds = (mapping.domainOperations.get(domain) ?? []).slice().sort();
335
- for (const opId of opIds) {
336
- const fnName = (0, template_1.camelCase)(opId);
337
- const paramsName = `${(0, template_1.pascalCase)(opId)}$Params`;
338
- lines.push(`export { ${fnName}, type ${paramsName} } from './fn/${(0, template_1.kebabCase)(opId)}';`);
339
- }
340
- }
341
- out.push({ path: `${domain}/public-api.ts`, content: (0, template_1.finalize)(lines.join('\n')) });
342
- }
343
- // Root public-api.ts aggregates everything for non-library consumers. In
344
- // library mode, domain folders are real secondary entrypoints, so the root
345
- // stays focused on shared/global exports and consumers deep import domains.
346
- const rootLines = [target.banner, ''];
347
- rootLines.push(`export * from './${SHARED}/public-api';`);
348
- if (target.features.metadata) {
349
- rootLines.push(`export * from './metadata';`);
350
- rootLines.push(`export * from './openapi-helpers';`);
351
- }
352
- if (target.mode !== 'library') {
353
- for (const domain of mapping.domains) {
354
- rootLines.push(`export * from './${domain}/public-api';`);
355
- }
356
- }
357
- out.push({ path: 'public-api.ts', content: (0, template_1.finalize)(rootLines.join('\n')) });
358
- return out;
359
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.loadSpec = loadSpec;
7
- const node_fs_1 = require("node:fs");
8
- const node_path_1 = require("node:path");
9
- const yaml_1 = __importDefault(require("yaml"));
10
- /**
11
- * Load an OpenAPI spec from disk. We deliberately do NOT run Swagger Parser's
12
- * strict validator here because it rejects OpenAPI 3.2.x, while the rest of
13
- * the pipeline only needs structural access to `components` + `paths` (which
14
- * is version-stable across 3.x). Specs that rely on external `$ref`s should
15
- * be bundled first with a separate tool.
16
- *
17
- * Accepts `.yaml`/`.yml`/`.json`.
18
- */
19
- async function loadSpec(path) {
20
- const text = (0, node_fs_1.readFileSync)(path, 'utf8');
21
- const ext = (0, node_path_1.extname)(path).toLowerCase();
22
- if (ext === '.json')
23
- return JSON.parse(text);
24
- return yaml_1.default.parse(text);
25
- }