subaya 1.0.0

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 (296) hide show
  1. package/README.md +156 -0
  2. package/dist/commands/api/OrpcGeneratorCommand.d.ts +16 -0
  3. package/dist/commands/api/OrpcGeneratorCommand.d.ts.map +1 -0
  4. package/dist/commands/api/OrpcGeneratorCommand.js +100 -0
  5. package/dist/commands/api/OrpcGeneratorCommand.js.map +1 -0
  6. package/dist/commands/api/generators/ApiMethodGenerator.d.ts +22 -0
  7. package/dist/commands/api/generators/ApiMethodGenerator.d.ts.map +1 -0
  8. package/dist/commands/api/generators/ApiMethodGenerator.js +73 -0
  9. package/dist/commands/api/generators/ApiMethodGenerator.js.map +1 -0
  10. package/dist/commands/api/generators/QueryStringGenerator.d.ts +7 -0
  11. package/dist/commands/api/generators/QueryStringGenerator.d.ts.map +1 -0
  12. package/dist/commands/api/generators/QueryStringGenerator.js +34 -0
  13. package/dist/commands/api/generators/QueryStringGenerator.js.map +1 -0
  14. package/dist/commands/api/generators/SchemaGenerator.d.ts +5 -0
  15. package/dist/commands/api/generators/SchemaGenerator.d.ts.map +1 -0
  16. package/dist/commands/api/generators/SchemaGenerator.js +61 -0
  17. package/dist/commands/api/generators/SchemaGenerator.js.map +1 -0
  18. package/dist/commands/api/services/ApiFileWriter.d.ts +9 -0
  19. package/dist/commands/api/services/ApiFileWriter.d.ts.map +1 -0
  20. package/dist/commands/api/services/ApiFileWriter.js +112 -0
  21. package/dist/commands/api/services/ApiFileWriter.js.map +1 -0
  22. package/dist/commands/api/services/DependencyChecker.d.ts +6 -0
  23. package/dist/commands/api/services/DependencyChecker.d.ts.map +1 -0
  24. package/dist/commands/api/services/DependencyChecker.js +63 -0
  25. package/dist/commands/api/services/DependencyChecker.js.map +1 -0
  26. package/dist/commands/api/utils/CommentGenerator.d.ts +6 -0
  27. package/dist/commands/api/utils/CommentGenerator.d.ts.map +1 -0
  28. package/dist/commands/api/utils/CommentGenerator.js +52 -0
  29. package/dist/commands/api/utils/CommentGenerator.js.map +1 -0
  30. package/dist/commands/api/utils/ParameterExtractor.d.ts +10 -0
  31. package/dist/commands/api/utils/ParameterExtractor.d.ts.map +1 -0
  32. package/dist/commands/api/utils/ParameterExtractor.js +29 -0
  33. package/dist/commands/api/utils/ParameterExtractor.js.map +1 -0
  34. package/dist/commands/api/utils/ResponseTypeExtractor.d.ts +9 -0
  35. package/dist/commands/api/utils/ResponseTypeExtractor.d.ts.map +1 -0
  36. package/dist/commands/api/utils/ResponseTypeExtractor.js +36 -0
  37. package/dist/commands/api/utils/ResponseTypeExtractor.js.map +1 -0
  38. package/dist/commands/api/utils/TypeResolver.d.ts +6 -0
  39. package/dist/commands/api/utils/TypeResolver.d.ts.map +1 -0
  40. package/dist/commands/api/utils/TypeResolver.js +38 -0
  41. package/dist/commands/api/utils/TypeResolver.js.map +1 -0
  42. package/dist/commands/axios/AxiosGeneratorCommand.d.ts +5 -0
  43. package/dist/commands/axios/AxiosGeneratorCommand.d.ts.map +1 -0
  44. package/dist/commands/axios/AxiosGeneratorCommand.js +56 -0
  45. package/dist/commands/axios/AxiosGeneratorCommand.js.map +1 -0
  46. package/dist/commands/env/EnvGeneratorCommand.d.ts +8 -0
  47. package/dist/commands/env/EnvGeneratorCommand.d.ts.map +1 -0
  48. package/dist/commands/env/EnvGeneratorCommand.js +62 -0
  49. package/dist/commands/env/EnvGeneratorCommand.js.map +1 -0
  50. package/dist/commands/icon/IconGenerateCommand.d.ts +6 -0
  51. package/dist/commands/icon/IconGenerateCommand.d.ts.map +1 -0
  52. package/dist/commands/icon/IconGenerateCommand.js +103 -0
  53. package/dist/commands/icon/IconGenerateCommand.js.map +1 -0
  54. package/dist/commands/image/BackgroundRemoveCommand.d.ts +7 -0
  55. package/dist/commands/image/BackgroundRemoveCommand.d.ts.map +1 -0
  56. package/dist/commands/image/BackgroundRemoveCommand.js +89 -0
  57. package/dist/commands/image/BackgroundRemoveCommand.js.map +1 -0
  58. package/dist/commands/image/ImageOptimizeCommand.d.ts +8 -0
  59. package/dist/commands/image/ImageOptimizeCommand.d.ts.map +1 -0
  60. package/dist/commands/image/ImageOptimizeCommand.js +161 -0
  61. package/dist/commands/image/ImageOptimizeCommand.js.map +1 -0
  62. package/dist/commands/image/ImageResizeCommand.d.ts +5 -0
  63. package/dist/commands/image/ImageResizeCommand.d.ts.map +1 -0
  64. package/dist/commands/image/ImageResizeCommand.js +64 -0
  65. package/dist/commands/image/ImageResizeCommand.js.map +1 -0
  66. package/dist/commands/index.d.ts +4 -0
  67. package/dist/commands/index.d.ts.map +1 -0
  68. package/dist/commands/index.js +4 -0
  69. package/dist/commands/index.js.map +1 -0
  70. package/dist/commands/localstorage/LocalstorageGeneratorCommand.d.ts +5 -0
  71. package/dist/commands/localstorage/LocalstorageGeneratorCommand.d.ts.map +1 -0
  72. package/dist/commands/localstorage/LocalstorageGeneratorCommand.js +45 -0
  73. package/dist/commands/localstorage/LocalstorageGeneratorCommand.js.map +1 -0
  74. package/dist/commands/provider/ProviderGeneratorCommand.d.ts +5 -0
  75. package/dist/commands/provider/ProviderGeneratorCommand.d.ts.map +1 -0
  76. package/dist/commands/provider/ProviderGeneratorCommand.js +54 -0
  77. package/dist/commands/provider/ProviderGeneratorCommand.js.map +1 -0
  78. package/dist/commands/route/NextRouteGeneratorCommand.d.ts +12 -0
  79. package/dist/commands/route/NextRouteGeneratorCommand.d.ts.map +1 -0
  80. package/dist/commands/route/NextRouteGeneratorCommand.js +126 -0
  81. package/dist/commands/route/NextRouteGeneratorCommand.js.map +1 -0
  82. package/dist/commands/share/ShareGeneratorCommand.d.ts +5 -0
  83. package/dist/commands/share/ShareGeneratorCommand.d.ts.map +1 -0
  84. package/dist/commands/share/ShareGeneratorCommand.js +44 -0
  85. package/dist/commands/share/ShareGeneratorCommand.js.map +1 -0
  86. package/dist/commands/state/StateGeneratorCommand.d.ts +10 -0
  87. package/dist/commands/state/StateGeneratorCommand.d.ts.map +1 -0
  88. package/dist/commands/state/StateGeneratorCommand.js +99 -0
  89. package/dist/commands/state/StateGeneratorCommand.js.map +1 -0
  90. package/dist/commands/supabase/SupabaseCommand.d.ts +7 -0
  91. package/dist/commands/supabase/SupabaseCommand.d.ts.map +1 -0
  92. package/dist/commands/supabase/SupabaseCommand.js +140 -0
  93. package/dist/commands/supabase/SupabaseCommand.js.map +1 -0
  94. package/dist/config/defaultConfig.d.ts +4 -0
  95. package/dist/config/defaultConfig.d.ts.map +1 -0
  96. package/dist/config/defaultConfig.js +15 -0
  97. package/dist/config/defaultConfig.js.map +1 -0
  98. package/dist/config/initial.d.ts +5 -0
  99. package/dist/config/initial.d.ts.map +1 -0
  100. package/dist/config/initial.js +32 -0
  101. package/dist/config/initial.js.map +1 -0
  102. package/dist/core/BaseCommand.d.ts +10 -0
  103. package/dist/core/BaseCommand.d.ts.map +1 -0
  104. package/dist/core/BaseCommand.js +36 -0
  105. package/dist/core/BaseCommand.js.map +1 -0
  106. package/dist/core/CommandRegistry.d.ts +15 -0
  107. package/dist/core/CommandRegistry.d.ts.map +1 -0
  108. package/dist/core/CommandRegistry.js +58 -0
  109. package/dist/core/CommandRegistry.js.map +1 -0
  110. package/dist/core/ConfigManager.d.ts +11 -0
  111. package/dist/core/ConfigManager.d.ts.map +1 -0
  112. package/dist/core/ConfigManager.js +42 -0
  113. package/dist/core/ConfigManager.js.map +1 -0
  114. package/dist/core/EnsureSystem.d.ts +10 -0
  115. package/dist/core/EnsureSystem.d.ts.map +1 -0
  116. package/dist/core/EnsureSystem.js +118 -0
  117. package/dist/core/EnsureSystem.js.map +1 -0
  118. package/dist/core/FileSystemService.d.ts +20 -0
  119. package/dist/core/FileSystemService.d.ts.map +1 -0
  120. package/dist/core/FileSystemService.js +97 -0
  121. package/dist/core/FileSystemService.js.map +1 -0
  122. package/dist/core/FrameworkDetector.d.ts +7 -0
  123. package/dist/core/FrameworkDetector.d.ts.map +1 -0
  124. package/dist/core/FrameworkDetector.js +33 -0
  125. package/dist/core/FrameworkDetector.js.map +1 -0
  126. package/dist/core/ProviderBuilder.d.ts +25 -0
  127. package/dist/core/ProviderBuilder.d.ts.map +1 -0
  128. package/dist/core/ProviderBuilder.js +227 -0
  129. package/dist/core/ProviderBuilder.js.map +1 -0
  130. package/dist/core/index.d.ts +7 -0
  131. package/dist/core/index.d.ts.map +1 -0
  132. package/dist/core/index.js +7 -0
  133. package/dist/core/index.js.map +1 -0
  134. package/dist/index.d.ts +3 -0
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/index.js +105 -0
  137. package/dist/index.js.map +1 -0
  138. package/dist/template/api/gen/httpClient.d.ts +2 -0
  139. package/dist/template/api/gen/httpClient.d.ts.map +1 -0
  140. package/dist/template/api/gen/httpClient.js +177 -0
  141. package/dist/template/api/gen/httpClient.js.map +1 -0
  142. package/dist/template/api/gen/queryApiClient.d.ts +2 -0
  143. package/dist/template/api/gen/queryApiClient.d.ts.map +1 -0
  144. package/dist/template/api/gen/queryApiClient.js +27 -0
  145. package/dist/template/api/gen/queryApiClient.js.map +1 -0
  146. package/dist/template/api/gen/queryReactQueryClient.d.ts +13 -0
  147. package/dist/template/api/gen/queryReactQueryClient.d.ts.map +1 -0
  148. package/dist/template/api/gen/queryReactQueryClient.js +159 -0
  149. package/dist/template/api/gen/queryReactQueryClient.js.map +1 -0
  150. package/dist/template/api/type/httpClientType.d.ts +2 -0
  151. package/dist/template/api/type/httpClientType.d.ts.map +1 -0
  152. package/dist/template/api/type/httpClientType.js +2 -0
  153. package/dist/template/api/type/httpClientType.js.map +1 -0
  154. package/dist/template/axios/instance.d.ts +2 -0
  155. package/dist/template/axios/instance.d.ts.map +1 -0
  156. package/dist/template/axios/instance.js +91 -0
  157. package/dist/template/axios/instance.js.map +1 -0
  158. package/dist/template/axios/refresh.d.ts +2 -0
  159. package/dist/template/axios/refresh.d.ts.map +1 -0
  160. package/dist/template/axios/refresh.js +81 -0
  161. package/dist/template/axios/refresh.js.map +1 -0
  162. package/dist/template/imageAsNext.d.ts +2 -0
  163. package/dist/template/imageAsNext.d.ts.map +1 -0
  164. package/dist/template/imageAsNext.js +104 -0
  165. package/dist/template/imageAsNext.js.map +1 -0
  166. package/dist/template/localstorage/LocalStorageManager.d.ts +2 -0
  167. package/dist/template/localstorage/LocalStorageManager.d.ts.map +1 -0
  168. package/dist/template/localstorage/LocalStorageManager.js +64 -0
  169. package/dist/template/localstorage/LocalStorageManager.js.map +1 -0
  170. package/dist/template/localstorage/localStorage.d.ts +2 -0
  171. package/dist/template/localstorage/localStorage.d.ts.map +1 -0
  172. package/dist/template/localstorage/localStorage.js +9 -0
  173. package/dist/template/localstorage/localStorage.js.map +1 -0
  174. package/dist/template/localstorage/localStorageType.d.ts +2 -0
  175. package/dist/template/localstorage/localStorageType.d.ts.map +1 -0
  176. package/dist/template/localstorage/localStorageType.js +6 -0
  177. package/dist/template/localstorage/localStorageType.js.map +1 -0
  178. package/dist/template/localstorage/useSharedStorage.d.ts +2 -0
  179. package/dist/template/localstorage/useSharedStorage.d.ts.map +1 -0
  180. package/dist/template/localstorage/useSharedStorage.js +24 -0
  181. package/dist/template/localstorage/useSharedStorage.js.map +1 -0
  182. package/dist/template/logger/api-logger.d.ts +2 -0
  183. package/dist/template/logger/api-logger.d.ts.map +1 -0
  184. package/dist/template/logger/api-logger.js +44 -0
  185. package/dist/template/logger/api-logger.js.map +1 -0
  186. package/dist/template/logger/styled-console.d.ts +2 -0
  187. package/dist/template/logger/styled-console.d.ts.map +1 -0
  188. package/dist/template/logger/styled-console.js +27 -0
  189. package/dist/template/logger/styled-console.js.map +1 -0
  190. package/dist/template/provider/defaultProvider.tsx +6 -0
  191. package/dist/template/provider/providerTemplates.d.ts +9 -0
  192. package/dist/template/provider/providerTemplates.d.ts.map +1 -0
  193. package/dist/template/provider/providerTemplates.js +40 -0
  194. package/dist/template/provider/providerTemplates.js.map +1 -0
  195. package/dist/template/provider/providerTemplates.ts +47 -0
  196. package/dist/template/share/copyText.d.ts +2 -0
  197. package/dist/template/share/copyText.d.ts.map +1 -0
  198. package/dist/template/share/copyText.js +12 -0
  199. package/dist/template/share/copyText.js.map +1 -0
  200. package/dist/template/share/sharer.d.ts +2 -0
  201. package/dist/template/share/sharer.d.ts.map +1 -0
  202. package/dist/template/share/sharer.js +211 -0
  203. package/dist/template/share/sharer.js.map +1 -0
  204. package/dist/template/share/useSharer.d.ts +2 -0
  205. package/dist/template/share/useSharer.d.ts.map +1 -0
  206. package/dist/template/share/useSharer.js +78 -0
  207. package/dist/template/share/useSharer.js.map +1 -0
  208. package/dist/template/state/zustand-persist.d.ts +2 -0
  209. package/dist/template/state/zustand-persist.d.ts.map +1 -0
  210. package/dist/template/state/zustand-persist.js +53 -0
  211. package/dist/template/state/zustand-persist.js.map +1 -0
  212. package/dist/template/state/zustand-provider-store.d.ts +2 -0
  213. package/dist/template/state/zustand-provider-store.d.ts.map +1 -0
  214. package/dist/template/state/zustand-provider-store.js +19 -0
  215. package/dist/template/state/zustand-provider-store.js.map +1 -0
  216. package/dist/template/state/zustand-provider.d.ts +2 -0
  217. package/dist/template/state/zustand-provider.d.ts.map +1 -0
  218. package/dist/template/state/zustand-provider.js +46 -0
  219. package/dist/template/state/zustand-provider.js.map +1 -0
  220. package/dist/template/state/zustand.d.ts +2 -0
  221. package/dist/template/state/zustand.d.ts.map +1 -0
  222. package/dist/template/state/zustand.js +38 -0
  223. package/dist/template/state/zustand.js.map +1 -0
  224. package/dist/template/supabase/actions/supabaseAdmin.d.ts +2 -0
  225. package/dist/template/supabase/actions/supabaseAdmin.d.ts.map +1 -0
  226. package/dist/template/supabase/actions/supabaseAdmin.js +21 -0
  227. package/dist/template/supabase/actions/supabaseAdmin.js.map +1 -0
  228. package/dist/template/supabase/actions/supabaseCrud.d.ts +3 -0
  229. package/dist/template/supabase/actions/supabaseCrud.d.ts.map +1 -0
  230. package/dist/template/supabase/actions/supabaseCrud.js +72 -0
  231. package/dist/template/supabase/actions/supabaseCrud.js.map +1 -0
  232. package/dist/template/supabase/actions/supabaseCrudWithAdmin.d.ts +2 -0
  233. package/dist/template/supabase/actions/supabaseCrudWithAdmin.d.ts.map +1 -0
  234. package/dist/template/supabase/actions/supabaseCrudWithAdmin.js +57 -0
  235. package/dist/template/supabase/actions/supabaseCrudWithAdmin.js.map +1 -0
  236. package/dist/template/supabase/supabaseAdminLayout.d.ts +2 -0
  237. package/dist/template/supabase/supabaseAdminLayout.d.ts.map +1 -0
  238. package/dist/template/supabase/supabaseAdminLayout.js +7 -0
  239. package/dist/template/supabase/supabaseAdminLayout.js.map +1 -0
  240. package/dist/template/supabase/supabaseAdminLoginLayout.d.ts +2 -0
  241. package/dist/template/supabase/supabaseAdminLoginLayout.d.ts.map +1 -0
  242. package/dist/template/supabase/supabaseAdminLoginLayout.js +121 -0
  243. package/dist/template/supabase/supabaseAdminLoginLayout.js.map +1 -0
  244. package/dist/template/supabase/supabaseProxy.d.ts +2 -0
  245. package/dist/template/supabase/supabaseProxy.d.ts.map +1 -0
  246. package/dist/template/supabase/supabaseProxy.js +42 -0
  247. package/dist/template/supabase/supabaseProxy.js.map +1 -0
  248. package/dist/template/supabase/utilBase.d.ts +3 -0
  249. package/dist/template/supabase/utilBase.d.ts.map +1 -0
  250. package/dist/template/supabase/utilBase.js +29 -0
  251. package/dist/template/supabase/utilBase.js.map +1 -0
  252. package/dist/types/BaseExtensionCommands.d.ts +38 -0
  253. package/dist/types/BaseExtensionCommands.d.ts.map +1 -0
  254. package/dist/types/BaseExtensionCommands.js +20 -0
  255. package/dist/types/BaseExtensionCommands.js.map +1 -0
  256. package/dist/types/config.d.ts +19 -0
  257. package/dist/types/config.d.ts.map +1 -0
  258. package/dist/types/config.js +2 -0
  259. package/dist/types/config.js.map +1 -0
  260. package/dist/types/env.d.ts +7 -0
  261. package/dist/types/env.d.ts.map +1 -0
  262. package/dist/types/env.js +5 -0
  263. package/dist/types/env.js.map +1 -0
  264. package/dist/types/index.d.ts +31 -0
  265. package/dist/types/index.d.ts.map +1 -0
  266. package/dist/types/index.js +2 -0
  267. package/dist/types/index.js.map +1 -0
  268. package/dist/utils/PathSearcher.d.ts +8 -0
  269. package/dist/utils/PathSearcher.d.ts.map +1 -0
  270. package/dist/utils/PathSearcher.js +40 -0
  271. package/dist/utils/PathSearcher.js.map +1 -0
  272. package/dist/utils/askInput.d.ts +10 -0
  273. package/dist/utils/askInput.d.ts.map +1 -0
  274. package/dist/utils/askInput.js +12 -0
  275. package/dist/utils/askInput.js.map +1 -0
  276. package/dist/utils/askSections.d.ts +13 -0
  277. package/dist/utils/askSections.d.ts.map +1 -0
  278. package/dist/utils/askSections.js +14 -0
  279. package/dist/utils/askSections.js.map +1 -0
  280. package/dist/utils/coverHyphenToQuotes.d.ts +2 -0
  281. package/dist/utils/coverHyphenToQuotes.d.ts.map +1 -0
  282. package/dist/utils/coverHyphenToQuotes.js +4 -0
  283. package/dist/utils/coverHyphenToQuotes.js.map +1 -0
  284. package/dist/utils/pathToAlias.d.ts +2 -0
  285. package/dist/utils/pathToAlias.d.ts.map +1 -0
  286. package/dist/utils/pathToAlias.js +4 -0
  287. package/dist/utils/pathToAlias.js.map +1 -0
  288. package/dist/utils/showSubaya.d.ts +2 -0
  289. package/dist/utils/showSubaya.d.ts.map +1 -0
  290. package/dist/utils/showSubaya.js +14 -0
  291. package/dist/utils/showSubaya.js.map +1 -0
  292. package/dist/utils/validateConfig.d.ts +3 -0
  293. package/dist/utils/validateConfig.d.ts.map +1 -0
  294. package/dist/utils/validateConfig.js +45 -0
  295. package/dist/utils/validateConfig.js.map +1 -0
  296. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiFileWriter.js","sourceRoot":"","sources":["../../../../src/commands/api/services/ApiFileWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAA;AAG7F,MAAM,OAAO,aAAa;IACxB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,OAAiB,EAAE,aAAuB;QACjF,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;QAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,iBAAiB,CAAC,eAAe,CAAC;YACtC,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,GAAG,IAAI,MAAM;YACnB,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;SACzD,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAW,EAAE,OAAwB,EAAE,YAAsB;QAC7F,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;QAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,iBAAiB,CAAC,eAAe,CAAC;YACtC,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,GAAG,IAAI,QAAQ;YACrB,OAAO,EAAE,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC;SAC/D,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;QACtE,MAAM,iBAAiB,CAAC,eAAe,CAAC;YACtC,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB;QAC/B,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDnB,CAAA;QACG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAChE,MAAM,iBAAiB,CAAC,eAAe,CAAC;YACtC,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,kBAAkB;YACxB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAe;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAChE,MAAM,iBAAiB,CAAC,eAAe,CAAC;YACtC,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,gBAAgB;YACtB,YAAY,EAAE,WAAW;YACzB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export declare class DependencyChecker {
2
+ static checkAndGenerateAxios(axiosDir: string): Promise<void>;
3
+ static checkAndGenerateStorage(storeDir: string, needGenerateAxios: boolean): Promise<void>;
4
+ static checkAndGenerateEnv(configsDir: string): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=DependencyChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyChecker.d.ts","sourceRoot":"","sources":["../../../../src/commands/api/services/DependencyChecker.ts"],"names":[],"mappings":"AAOA,qBAAa,iBAAiB;WACf,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAqBtD,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;WA4BpF,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBpE"}
@@ -0,0 +1,63 @@
1
+ import inquirer from "inquirer";
2
+ import path from "path";
3
+ import { FileSystemService } from "../../../core/FileSystemService.js";
4
+ import { AxiosGeneratorCommand } from "../../axios/AxiosGeneratorCommand.js";
5
+ import { EnvGeneratorCommand } from "../../env/EnvGeneratorCommand.js";
6
+ import { LocalstorageGeneratorCommand } from "../../localstorage/LocalstorageGeneratorCommand.js";
7
+ export class DependencyChecker {
8
+ static async checkAndGenerateAxios(axiosDir) {
9
+ const hasAxiosInstance = await FileSystemService.hasFile(axiosDir, "instance.ts");
10
+ if (hasAxiosInstance) {
11
+ return;
12
+ }
13
+ const { generate } = await inquirer.prompt([
14
+ {
15
+ type: "confirm",
16
+ name: "generate",
17
+ message: "axios instance is not set. Do you want to generate it?",
18
+ },
19
+ ]);
20
+ if (generate) {
21
+ const command = new AxiosGeneratorCommand();
22
+ await command.execute(true);
23
+ }
24
+ }
25
+ static async checkAndGenerateStorage(storeDir, needGenerateAxios) {
26
+ if (!needGenerateAxios) {
27
+ return;
28
+ }
29
+ const hasStorage = await FileSystemService.hasStringInFile(path.join(storeDir, "local/index.ts"), "export const tokenStorage");
30
+ if (hasStorage) {
31
+ return;
32
+ }
33
+ const { generate } = await inquirer.prompt([
34
+ {
35
+ type: "confirm",
36
+ name: "generate",
37
+ message: "Custom LocalStorage is not set. Do you want to generate it?",
38
+ },
39
+ ]);
40
+ if (generate) {
41
+ const command = new LocalstorageGeneratorCommand();
42
+ await command.execute(true);
43
+ }
44
+ }
45
+ static async checkAndGenerateEnv(configsDir) {
46
+ const hasEnvConfig = await FileSystemService.hasFile(configsDir, "env.ts");
47
+ if (hasEnvConfig) {
48
+ return;
49
+ }
50
+ const { generate } = await inquirer.prompt([
51
+ {
52
+ type: "confirm",
53
+ name: "generate",
54
+ message: "env configuration file is not set. Do you want to generate it?",
55
+ },
56
+ ]);
57
+ if (generate) {
58
+ const command = new EnvGeneratorCommand();
59
+ await command.execute(true);
60
+ }
61
+ }
62
+ }
63
+ //# sourceMappingURL=DependencyChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyChecker.js","sourceRoot":"","sources":["../../../../src/commands/api/services/DependencyChecker.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAA;AAEjG,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,QAAgB;QACjD,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAEjF,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACzC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,wDAAwD;aAClE;SACF,CAAC,CAAA;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,IAAI,qBAAqB,EAAE,CAAA;YAC3C,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,QAAgB,EAAE,iBAA0B;QAC/E,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,eAAe,CACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EACrC,2BAA2B,CAC5B,CAAA;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACzC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,6DAA6D;aACvE;SACF,CAAC,CAAA;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,IAAI,4BAA4B,EAAE,CAAA;YAClD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QACjD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE1E,IAAI,YAAY,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACzC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gEAAgE;aAC1E;SACF,CAAC,CAAA;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAA;YACzC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export declare class CommentGenerator {
2
+ static generate(comments: string[]): string;
3
+ static collectApiComments(data: any, tags: string[], pascalOpId: string, method: string, pathName: string): string[];
4
+ static collectPropertyComments(prop: any): string[];
5
+ }
6
+ //# sourceMappingURL=CommentGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentGenerator.d.ts","sourceRoot":"","sources":["../../../../src/commands/api/utils/CommentGenerator.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM;IAY3C,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAyBpH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE;CAcpD"}
@@ -0,0 +1,52 @@
1
+ export class CommentGenerator {
2
+ static generate(comments) {
3
+ if (comments.length === 0)
4
+ return "";
5
+ let output = "\n /**\n";
6
+ comments.forEach((comment) => {
7
+ output += ` * ${comment}\n`;
8
+ });
9
+ output += " */\n";
10
+ return output;
11
+ }
12
+ static collectApiComments(data, tags, pascalOpId, method, pathName) {
13
+ const comments = [];
14
+ if (data.description) {
15
+ comments.push(data.description.trim().replace(/\n/g, " "));
16
+ }
17
+ else {
18
+ comments.push("No description\n");
19
+ }
20
+ comments.push(`@tags ${tags.join(", ")}`);
21
+ comments.push(`@name ${pascalOpId}`);
22
+ if (data.summary) {
23
+ comments.push(`@summary ${data.summary}`);
24
+ }
25
+ comments.push(`@request ${method.toUpperCase()}:${pathName}`);
26
+ if (data.security) {
27
+ comments.push("@secure");
28
+ }
29
+ return comments;
30
+ }
31
+ static collectPropertyComments(prop) {
32
+ const comments = [];
33
+ if (prop.title)
34
+ comments.push(prop.title);
35
+ if (prop.description)
36
+ comments.push(...prop.description.split("\n"));
37
+ if (prop.format)
38
+ comments.push(`@format ${prop.format}`);
39
+ if (prop.minLength !== undefined)
40
+ comments.push(`@minLength ${prop.minLength}`);
41
+ if (prop.maxLength !== undefined)
42
+ comments.push(`@maxLength ${prop.maxLength}`);
43
+ if (prop.minimum !== undefined)
44
+ comments.push(`@min ${prop.minimum}`);
45
+ if (prop.maximum !== undefined)
46
+ comments.push(`@max ${prop.maximum}`);
47
+ if (prop.pattern)
48
+ comments.push(`@pattern ${prop.pattern}`);
49
+ return comments;
50
+ }
51
+ }
52
+ //# sourceMappingURL=CommentGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentGenerator.js","sourceRoot":"","sources":["../../../../src/commands/api/utils/CommentGenerator.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,QAAQ,CAAC,QAAkB;QAChC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAEpC,IAAI,MAAM,GAAG,YAAY,CAAA;QACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,IAAI,QAAQ,OAAO,IAAI,CAAA;QAC/B,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,SAAS,CAAA;QAEnB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,IAAS,EAAE,IAAc,EAAE,UAAkB,EAAE,MAAc,EAAE,QAAgB;QACvG,MAAM,QAAQ,GAAa,EAAE,CAAA;QAE7B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACnC,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACzC,QAAQ,CAAC,IAAI,CAAC,SAAS,UAAU,EAAE,CAAC,CAAA;QAEpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAA;QAE7D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAS;QACtC,MAAM,QAAQ,GAAa,EAAE,CAAA;QAE7B,IAAI,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzC,IAAI,IAAI,CAAC,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QACpE,IAAI,IAAI,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACxD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAC/E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAC/E,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACrE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACrE,IAAI,IAAI,CAAC,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAE3D,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ export interface ParameterInfo {
2
+ pathParams: string[];
3
+ queryParams: any[];
4
+ hasBody: boolean;
5
+ bodyType: string;
6
+ }
7
+ export declare class ParameterExtractor {
8
+ static extract(data: any): ParameterInfo;
9
+ }
10
+ //# sourceMappingURL=ParameterExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParameterExtractor.d.ts","sourceRoot":"","sources":["../../../../src/commands/api/utils/ParameterExtractor.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,GAAG,EAAE,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,aAAa;CA2BzC"}
@@ -0,0 +1,29 @@
1
+ import { TypeResolver } from "./TypeResolver.js";
2
+ export class ParameterExtractor {
3
+ static extract(data) {
4
+ const pathParams = [];
5
+ const queryParams = [];
6
+ let hasBody = false;
7
+ let bodyType = "any";
8
+ if (data.parameters) {
9
+ for (const param of data.parameters) {
10
+ if (param.in === "path") {
11
+ const pType = TypeResolver.resolve(param.schema || param, "", param.name);
12
+ pathParams.push(`${param.name}: ${pType}`);
13
+ }
14
+ else if (param.in === "query") {
15
+ queryParams.push(param);
16
+ }
17
+ }
18
+ }
19
+ if (data.requestBody) {
20
+ hasBody = true;
21
+ const content = data.requestBody.content?.["application/json"];
22
+ if (content?.schema) {
23
+ bodyType = TypeResolver.resolve(content.schema, "", "");
24
+ }
25
+ }
26
+ return { pathParams, queryParams, hasBody, bodyType };
27
+ }
28
+ }
29
+ //# sourceMappingURL=ParameterExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParameterExtractor.js","sourceRoot":"","sources":["../../../../src/commands/api/utils/ParameterExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAShD,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAC,OAAO,CAAC,IAAS;QACtB,MAAM,UAAU,GAAa,EAAE,CAAA;QAC/B,MAAM,WAAW,GAAU,EAAE,CAAA;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,QAAQ,GAAG,KAAK,CAAA;QAEpB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;oBACzE,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAA;gBAC5C,CAAC;qBAAM,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;oBAChC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAA;YAC9D,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;IACvD,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ export interface ResponseTypeInfo {
2
+ responseType: string;
3
+ errorType: string;
4
+ errorTypes: string[];
5
+ }
6
+ export declare class ResponseTypeExtractor {
7
+ static extract(responses: any): ResponseTypeInfo;
8
+ }
9
+ //# sourceMappingURL=ResponseTypeExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseTypeExtractor.d.ts","sourceRoot":"","sources":["../../../../src/commands/api/utils/ResponseTypeExtractor.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,qBAAa,qBAAqB;IAChC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,GAAG,gBAAgB;CAqCjD"}
@@ -0,0 +1,36 @@
1
+ import { TypeResolver } from "./TypeResolver.js";
2
+ export class ResponseTypeExtractor {
3
+ static extract(responses) {
4
+ let responseType = "any";
5
+ let errorType = "any";
6
+ const errorTypes = [];
7
+ if (!responses) {
8
+ return { responseType, errorType, errorTypes };
9
+ }
10
+ const successRes = responses["200"] || responses["201"];
11
+ if (successRes?.content?.["application/json"]?.schema) {
12
+ responseType = TypeResolver.resolve(successRes.content["application/json"].schema, "", "");
13
+ }
14
+ else if (responses["204"]) {
15
+ responseType = "void";
16
+ }
17
+ const errorTypeSet = new Set();
18
+ for (const [statusCode, response] of Object.entries(responses)) {
19
+ const isError = statusCode === "default" || (parseInt(statusCode, 10) >= 400 && parseInt(statusCode, 10) < 600);
20
+ if (isError) {
21
+ const errRes = response;
22
+ if (errRes?.content?.["application/json"]?.schema) {
23
+ const resolvedErrType = TypeResolver.resolve(errRes.content["application/json"].schema, "", "");
24
+ errorTypeSet.add(resolvedErrType);
25
+ }
26
+ }
27
+ }
28
+ if (errorTypeSet.size > 0) {
29
+ const errorTypesArr = Array.from(errorTypeSet);
30
+ errorType = errorTypesArr.join(" | ");
31
+ errorTypes.push(...errorTypesArr);
32
+ }
33
+ return { responseType, errorType, errorTypes };
34
+ }
35
+ }
36
+ //# sourceMappingURL=ResponseTypeExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseTypeExtractor.js","sourceRoot":"","sources":["../../../../src/commands/api/utils/ResponseTypeExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAQhD,MAAM,OAAO,qBAAqB;IAChC,MAAM,CAAC,OAAO,CAAC,SAAc;QAC3B,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,MAAM,UAAU,GAAa,EAAE,CAAA;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;QAChD,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAA;QACvD,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;YACtD,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC5F,CAAC;aAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,YAAY,GAAG,MAAM,CAAA;QACvB,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;QACtC,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAA;YAE/G,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,QAAe,CAAA;gBAC9B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAClD,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;oBAC/F,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC9C,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;IAChD,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export declare class TypeResolver {
2
+ static resolve(prop: any, schemaName: string, propName: string): string;
3
+ static shouldImport(type: string): boolean;
4
+ static addImportType(type: string, importArray: string[]): void;
5
+ }
6
+ //# sourceMappingURL=TypeResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeResolver.d.ts","sourceRoot":"","sources":["../../../../src/commands/api/utils/TypeResolver.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IA+BvE,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1C,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;CAKhE"}
@@ -0,0 +1,38 @@
1
+ export class TypeResolver {
2
+ static resolve(prop, schemaName, propName) {
3
+ if (prop.$ref) {
4
+ return prop.$ref.split("/").pop() + "Type";
5
+ }
6
+ if (prop.allOf?.length > 0) {
7
+ return this.resolve(prop.allOf[0], schemaName, propName);
8
+ }
9
+ if (prop.enum) {
10
+ const capitalizedProp = propName.charAt(0).toUpperCase() + propName.slice(1);
11
+ return `${schemaName}${capitalizedProp}Type`;
12
+ }
13
+ switch (prop.type) {
14
+ case "string":
15
+ return "string";
16
+ case "integer":
17
+ case "number":
18
+ return "number";
19
+ case "boolean":
20
+ return "boolean";
21
+ case "array":
22
+ return prop.items ? `${this.resolve(prop.items, schemaName, propName)}[]` : "any[]";
23
+ case "object":
24
+ return "Record<string, any>";
25
+ default:
26
+ return "any";
27
+ }
28
+ }
29
+ static shouldImport(type) {
30
+ return type !== "void" && type !== "any" && (type.endsWith("Type") || type.endsWith("Type[]"));
31
+ }
32
+ static addImportType(type, importArray) {
33
+ if (this.shouldImport(type)) {
34
+ importArray.push(type.replace("[]", "").replace("data: ", ""));
35
+ }
36
+ }
37
+ }
38
+ //# sourceMappingURL=TypeResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeResolver.js","sourceRoot":"","sources":["../../../../src/commands/api/utils/TypeResolver.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,IAAS,EAAE,UAAkB,EAAE,QAAgB;QAC5D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAA;QAC5C,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5E,OAAO,GAAG,UAAU,GAAG,eAAe,MAAM,CAAA;QAC9C,CAAC;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAA;YAClB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;YACrF,KAAK,QAAQ;gBACX,OAAO,qBAAqB,CAAA;YAC9B;gBACE,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY;QAC9B,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChG,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,WAAqB;QACtD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { BaseAxiosCommand } from "../../types/BaseExtensionCommands.js";
2
+ export declare class AxiosGeneratorCommand extends BaseAxiosCommand {
3
+ execute(isSilent?: boolean): Promise<void>;
4
+ }
5
+ //# sourceMappingURL=AxiosGeneratorCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxiosGeneratorCommand.d.ts","sourceRoot":"","sources":["../../../src/commands/axios/AxiosGeneratorCommand.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,qBAAa,qBAAsB,SAAQ,gBAAgB;IACnD,OAAO,CAAC,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAqDxD"}
@@ -0,0 +1,56 @@
1
+ import inquirer from "inquirer";
2
+ import ora from "ora";
3
+ import path from "path";
4
+ import { EnsureSystem } from "../../core/EnsureSystem.js";
5
+ import { FileSystemService } from "../../core/FileSystemService.js";
6
+ import { axiosInstance } from "../../template/axios/instance.js";
7
+ import { axiosRefresh } from "../../template/axios/refresh.js";
8
+ import { BaseAxiosCommand } from "../../types/BaseExtensionCommands.js";
9
+ export class AxiosGeneratorCommand extends BaseAxiosCommand {
10
+ async execute(isSilent = false) {
11
+ await this.getContext();
12
+ const utilsDir = FileSystemService.getOutputPath("utils");
13
+ const configsDir = FileSystemService.getOutputPath("configs");
14
+ const storeDir = FileSystemService.getOutputPath("store");
15
+ const framework = this.getFramework();
16
+ let needLocalStorageRefreshToken = true;
17
+ await EnsureSystem.ensureLogger(utilsDir, isSilent);
18
+ await EnsureSystem.ensureEnv({ configsDir, isSilent: true });
19
+ const { needRefresh = true } = await inquirer.prompt([
20
+ {
21
+ type: "confirm",
22
+ name: "needRefresh",
23
+ message: "Do you need refresh localStorage token feature? (Authentication)",
24
+ },
25
+ ]);
26
+ if (needRefresh) {
27
+ if (framework === "next") {
28
+ needLocalStorageRefreshToken = false;
29
+ console.warn(`๐Ÿ’ก Next.js doesn't support refresh token with localStorage`);
30
+ }
31
+ else {
32
+ await EnsureSystem.ensureLocalStorage(storeDir, true);
33
+ }
34
+ }
35
+ const spinner = !isSilent ? ora(`Generating Axios configuration... ๐Ÿš€`).start() : undefined;
36
+ const axiosDir = path.join(configsDir, "axios");
37
+ await FileSystemService.writeFileOrSkip({
38
+ dir: axiosDir,
39
+ file: "instance",
40
+ content: axiosInstance(!needRefresh),
41
+ isSilent,
42
+ });
43
+ if (needRefresh && needLocalStorageRefreshToken) {
44
+ await FileSystemService.writeFileOrSkip({
45
+ dir: axiosDir,
46
+ file: "refresh",
47
+ content: axiosRefresh(),
48
+ isSilent,
49
+ });
50
+ }
51
+ if (!isSilent) {
52
+ spinner?.succeed("Axios configuration generated successfully ๐ŸŽ‰");
53
+ }
54
+ }
55
+ }
56
+ //# sourceMappingURL=AxiosGeneratorCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxiosGeneratorCommand.js","sourceRoot":"","sources":["../../../src/commands/axios/AxiosGeneratorCommand.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,MAAM,OAAO,qBAAsB,SAAQ,gBAAgB;IACzD,KAAK,CAAC,OAAO,CAAC,WAAoB,KAAK;QACrC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAEvB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAErC,IAAI,4BAA4B,GAAG,IAAI,CAAA;QAEvC,MAAM,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACnD,MAAM,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAE5D,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACnD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,kEAAkE;aAC5E;SACF,CAAC,CAAA;QACF,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBACzB,4BAA4B,GAAG,KAAK,CAAA;gBAEpC,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;YAC5E,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YACvD,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAE3F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC/C,MAAM,iBAAiB,CAAC,eAAe,CAAC;YACtC,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,aAAa,CAAC,CAAC,WAAW,CAAC;YACpC,QAAQ;SACT,CAAC,CAAA;QAEF,IAAI,WAAW,IAAI,4BAA4B,EAAE,CAAC;YAChD,MAAM,iBAAiB,CAAC,eAAe,CAAC;gBACtC,GAAG,EAAE,QAAQ;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY,EAAE;gBACvB,QAAQ;aACT,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,CAAC,+CAA+C,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { BaseEnvCommand } from "../../types/BaseExtensionCommands.js";
2
+ export declare class EnvGeneratorCommand extends BaseEnvCommand {
3
+ protected validateEnvConfig(): {
4
+ hasEnvTxt: boolean;
5
+ };
6
+ execute(isSilent?: boolean): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=EnvGeneratorCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvGeneratorCommand.d.ts","sourceRoot":"","sources":["../../../src/commands/env/EnvGeneratorCommand.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAErE,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,SAAS,CAAC,iBAAiB,IAAI;QAC7B,SAAS,EAAE,OAAO,CAAA;KACnB;IAQK,OAAO,CAAC,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAoDxD"}
@@ -0,0 +1,62 @@
1
+ import fs from "fs-extra";
2
+ import ora from "ora";
3
+ import path from "path";
4
+ import { FileSystemService } from "../../core/FileSystemService.js";
5
+ import { BaseEnvCommand } from "../../types/BaseExtensionCommands.js";
6
+ export class EnvGeneratorCommand extends BaseEnvCommand {
7
+ validateEnvConfig() {
8
+ const envTxtPath = path.join(process.cwd(), ".env.txt");
9
+ const envTxtExists = fs.existsSync(envTxtPath);
10
+ return {
11
+ hasEnvTxt: !!envTxtExists,
12
+ };
13
+ }
14
+ async execute(isSilent = false) {
15
+ await this.getContext();
16
+ const framework = this.getFramework();
17
+ const spinner = !isSilent ? ora(`Generating Env configuration... ๐Ÿš€`).start() : undefined;
18
+ const { hasEnvTxt } = this.validateEnvConfig();
19
+ if (!hasEnvTxt) {
20
+ await FileSystemService.writeFileOrSkip({
21
+ dir: process.cwd(),
22
+ file: ".env",
23
+ ext: "txt",
24
+ content: `# For: App
25
+ ${framework === "next" ? "NEXT_PUBLIC_" : ""}API_BASE_URL=
26
+ ${framework === "next" ? "NEXT_PUBLIC_" : ""}APP_NAME=
27
+ ${framework === "next" ? "NEXT_PUBLIC_" : ""}DOMAIN=`,
28
+ });
29
+ }
30
+ const envText = await fs.readFile(path.join(process.cwd(), ".env.txt"), "utf-8");
31
+ const _envKeyList = envText
32
+ .split("\n")
33
+ .map((line) => line.trim())
34
+ .filter((line) => {
35
+ return !!line && !line.startsWith("#") && !line.startsWith("//");
36
+ })
37
+ .map((line) => line.split("=")[0]?.trim())
38
+ .filter((key) => typeof key === "string" && key && key.length > 0);
39
+ const envKeyList = ["NODE_ENV", ..._envKeyList];
40
+ const outputDir = FileSystemService.getOutputPath("configs");
41
+ let envFileString = "";
42
+ if (framework === "next") {
43
+ envFileString = `export const ENV = {
44
+ ${envKeyList.map((key) => (key === "NODE_ENV" ? `${key}: process.env.${key} as 'development' | 'production' | 'test'` : `${key.replace(/^NEXT_PUBLIC_/, "")}: process.env.${key}`)).join(",\n ")}
45
+ } as const\n`;
46
+ }
47
+ else if (framework === "react") {
48
+ envFileString = `export const ENV = {
49
+ ${envKeyList.map((key) => `${key}: process.env.${key} ${key === "NODE_ENV" ? "as 'development' | 'production' | 'test'" : ""}`).join(",\n ")}
50
+ } as const\n`;
51
+ }
52
+ else {
53
+ throw new Error(`Unsupported framework: ${framework}`);
54
+ }
55
+ const envFilePath = path.join(outputDir, "env.ts");
56
+ await fs.writeFile(envFilePath, envFileString);
57
+ if (!isSilent) {
58
+ spinner?.succeed("Env configuration generated successfully ๐ŸŽ‰");
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=EnvGeneratorCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvGeneratorCommand.js","sourceRoot":"","sources":["../../../src/commands/env/EnvGeneratorCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { BaseCommand } from "../../core/BaseCommand.js";
2
+ export declare class IconGenerateCommand extends BaseCommand {
3
+ private toPascalCase;
4
+ execute(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=IconGenerateCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconGenerateCommand.d.ts","sourceRoot":"","sources":["../../../src/commands/icon/IconGenerateCommand.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAGvD,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,OAAO,CAAC,YAAY;IAsBd,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA+F/B"}
@@ -0,0 +1,103 @@
1
+ import { transform } from "@svgr/core";
2
+ import fs from "fs-extra";
3
+ import { glob } from "glob";
4
+ import ora from "ora";
5
+ import path from "path";
6
+ import { BaseCommand } from "../../core/BaseCommand.js";
7
+ import { FileSystemService } from "../../core/FileSystemService.js";
8
+ export class IconGenerateCommand extends BaseCommand {
9
+ toPascalCase(existingConstants, name, dir) {
10
+ const folderName = dir ? dir.split(path.sep).pop() || "ROOT" : "ROOT";
11
+ const baseConstantName = name
12
+ .replace(/([-_\s]+[a-z])/gi, (s) => s.replace(/[-_\s]+/, "").toUpperCase())
13
+ .replace(/^[a-z]/, (s) => s.toUpperCase()) + "Icon";
14
+ let finalConstantName = baseConstantName;
15
+ if (existingConstants[finalConstantName]) {
16
+ finalConstantName = `${folderName.toUpperCase()}_${baseConstantName}`;
17
+ let index = 1;
18
+ while (existingConstants[finalConstantName]) {
19
+ finalConstantName = `${folderName.toUpperCase()}_${baseConstantName}_${index}`;
20
+ index++;
21
+ }
22
+ }
23
+ existingConstants[finalConstantName] = true;
24
+ return finalConstantName;
25
+ }
26
+ async execute() {
27
+ await this.getContext();
28
+ const publicDir = FileSystemService.getOutputPath("public");
29
+ const outputDir = FileSystemService.joinWithEnsureDir(FileSystemService.getOutputPath("generated"), "icons");
30
+ const spinner = ora(`Generating React Icon components... ๐Ÿš€`).start();
31
+ const successIconArray = [];
32
+ const failedIconArray = [];
33
+ const icons = await glob(`${publicDir}/**/*.svg`);
34
+ const outputFilePath = path.join(outputDir, `MyIcons.tsx`);
35
+ // 1. IconProps ์ •์˜: SVGProps๋ฅผ ์ƒ์†๋ฐ›์•„ width, height, className ๋“ฑ ๋ชจ๋“  ๊ธฐ๋ณธ ์†์„ฑ ์ง€์›
36
+ let fileContent = `import type { SVGProps } from "react";
37
+
38
+ export interface IconProps extends SVGProps<SVGSVGElement> {
39
+ color?: string;
40
+ }
41
+
42
+ `;
43
+ const existingConstants = {};
44
+ for (const icon of icons) {
45
+ try {
46
+ const relativePath = path.relative(publicDir, icon);
47
+ const { name, dir } = path.parse(relativePath);
48
+ const svgCode = await fs.readFile(icon);
49
+ const svgCodeString = svgCode.toString("utf8");
50
+ const componentName = this.toPascalCase(existingConstants, name, dir);
51
+ const jsCode = await transform(svgCodeString, {
52
+ plugins: ["@svgr/plugin-svgo", "@svgr/plugin-jsx"],
53
+ icon: true,
54
+ typescript: true,
55
+ // expandProps: "end" ๋•๋ถ„์— ์ตœ์ƒ๋‹จ <svg> ํƒœ๊ทธ์— {...props}๊ฐ€ ์ž๋™์œผ๋กœ ๋ถ™์Šต๋‹ˆ๋‹ค.
56
+ // ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ๋„˜๊ธด className, width, height๊ฐ€ ์ด ์‹œ์ ์— ๋ชจ๋‘ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
57
+ expandProps: "end",
58
+ svgoConfig: {
59
+ plugins: [
60
+ {
61
+ name: "preset-default",
62
+ params: {
63
+ overrides: {
64
+ removeViewBox: false,
65
+ },
66
+ },
67
+ },
68
+ "removeDimensions", // ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์‚ฌ์ด์ฆˆ ์ œ๊ฑฐ -> Tailwind์˜ w-*, h-* ๊ฐ€ ์ •์ƒ ์ž‘๋™ํ•˜๋„๋ก ํ•จ
69
+ ],
70
+ },
71
+ template: (variables, { tpl }) => {
72
+ return tpl `
73
+ export function ${variables.componentName}(props: IconProps) {
74
+ return ${variables.jsx};
75
+ }
76
+ `;
77
+ },
78
+ }, { componentName });
79
+ // 2. ์ƒ‰์ƒ ๋ฎ์–ด์“ฐ๊ธฐ ๋กœ์ง: props.color๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์„, ์—†์œผ๋ฉด ์›๋ณธ ์ƒ‰์ƒ์„ ์œ ์ง€
80
+ const modifiedJsCode = jsCode.replace(/(fill|stroke)="([^"]+)"/g, (match, attr, colorValue) => {
81
+ if (colorValue === "none" || colorValue === "transparent" || colorValue.startsWith("url(")) {
82
+ return match;
83
+ }
84
+ return `${attr}={props.color || "currentColor"}`;
85
+ });
86
+ fileContent += `${modifiedJsCode}\n\n`;
87
+ successIconArray.push(icon);
88
+ }
89
+ catch (error) {
90
+ failedIconArray.push(icon);
91
+ }
92
+ }
93
+ try {
94
+ await fs.writeFile(outputFilePath, fileContent);
95
+ }
96
+ catch (error) {
97
+ spinner.fail(`Failed to write output file: ${error}`);
98
+ return;
99
+ }
100
+ spinner.succeed(`Completed generating Icon components\nOutput: [${outputFilePath}]\nSuccessโœ… : ${successIconArray.length}\nFailedโŒ: ${failedIconArray.length === 0 ? "0" : failedIconArray.join("\n")}`);
101
+ }
102
+ }
103
+ //# sourceMappingURL=IconGenerateCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconGenerateCommand.js","sourceRoot":"","sources":["../../../src/commands/icon/IconGenerateCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BaseCommand } from "../../core/BaseCommand.js";
2
+ export declare class BackgroundRemoveCommand extends BaseCommand {
3
+ private removeBgWithApi;
4
+ private removeBgWithLibrary;
5
+ execute(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=BackgroundRemoveCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackgroundRemoveCommand.d.ts","sourceRoot":"","sources":["../../../src/commands/image/BackgroundRemoveCommand.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAMvD,qBAAa,uBAAwB,SAAQ,WAAW;YACxC,eAAe;YAkBf,mBAAmB;IAwB3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA+C/B"}