@solidxai/code-builder 0.0.2

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 (560) hide show
  1. package/README.md +28 -0
  2. package/dist/code-builder/index.d.ts +5 -0
  3. package/dist/code-builder/index.js +192 -0
  4. package/dist/code-builder/index.js.map +1 -0
  5. package/dist/code-builder/index_spec.d.ts +1 -0
  6. package/dist/code-builder/index_spec.js +56 -0
  7. package/dist/code-builder/index_spec.js.map +1 -0
  8. package/dist/code-builder/lib/field/FieldManager.d.ts +109 -0
  9. package/dist/code-builder/lib/field/FieldManager.js +262 -0
  10. package/dist/code-builder/lib/field/FieldManager.js.map +1 -0
  11. package/dist/code-builder/lib/field/add-fields.schema.json +30 -0
  12. package/dist/code-builder/lib/field/db-helpers.d.ts +5 -0
  13. package/dist/code-builder/lib/field/db-helpers.js +22 -0
  14. package/dist/code-builder/lib/field/db-helpers.js.map +1 -0
  15. package/dist/code-builder/lib/field/decorator-managers/dto/ApiPropertyDecoratorManager.d.ts +28 -0
  16. package/dist/code-builder/lib/field/decorator-managers/dto/ApiPropertyDecoratorManager.js +162 -0
  17. package/dist/code-builder/lib/field/decorator-managers/dto/ApiPropertyDecoratorManager.js.map +1 -0
  18. package/dist/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.d.ts +26 -0
  19. package/dist/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js +107 -0
  20. package/dist/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js.map +1 -0
  21. package/dist/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.d.ts +24 -0
  22. package/dist/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js +100 -0
  23. package/dist/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js.map +1 -0
  24. package/dist/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.d.ts +24 -0
  25. package/dist/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js +102 -0
  26. package/dist/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js.map +1 -0
  27. package/dist/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.d.ts +24 -0
  28. package/dist/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js +106 -0
  29. package/dist/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js.map +1 -0
  30. package/dist/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.d.ts +24 -0
  31. package/dist/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js +112 -0
  32. package/dist/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js.map +1 -0
  33. package/dist/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.d.ts +24 -0
  34. package/dist/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js +99 -0
  35. package/dist/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js.map +1 -0
  36. package/dist/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.d.ts +24 -0
  37. package/dist/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js +100 -0
  38. package/dist/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js.map +1 -0
  39. package/dist/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.d.ts +24 -0
  40. package/dist/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js +100 -0
  41. package/dist/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js.map +1 -0
  42. package/dist/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.d.ts +25 -0
  43. package/dist/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js +103 -0
  44. package/dist/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js.map +1 -0
  45. package/dist/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.d.ts +25 -0
  46. package/dist/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js +103 -0
  47. package/dist/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js.map +1 -0
  48. package/dist/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.d.ts +25 -0
  49. package/dist/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js +102 -0
  50. package/dist/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js.map +1 -0
  51. package/dist/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.d.ts +25 -0
  52. package/dist/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js +103 -0
  53. package/dist/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js.map +1 -0
  54. package/dist/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.d.ts +24 -0
  55. package/dist/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js +112 -0
  56. package/dist/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js.map +1 -0
  57. package/dist/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.d.ts +26 -0
  58. package/dist/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js +104 -0
  59. package/dist/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js.map +1 -0
  60. package/dist/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.d.ts +26 -0
  61. package/dist/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js +108 -0
  62. package/dist/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js.map +1 -0
  63. package/dist/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.d.ts +25 -0
  64. package/dist/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js +100 -0
  65. package/dist/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js.map +1 -0
  66. package/dist/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.d.ts +24 -0
  67. package/dist/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js +99 -0
  68. package/dist/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js.map +1 -0
  69. package/dist/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.d.ts +25 -0
  70. package/dist/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js +102 -0
  71. package/dist/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js.map +1 -0
  72. package/dist/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.d.ts +30 -0
  73. package/dist/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js +140 -0
  74. package/dist/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js.map +1 -0
  75. package/dist/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.d.ts +33 -0
  76. package/dist/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js +178 -0
  77. package/dist/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js.map +1 -0
  78. package/dist/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.d.ts +27 -0
  79. package/dist/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js +114 -0
  80. package/dist/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js.map +1 -0
  81. package/dist/code-builder/lib/field/decorator-managers/entity/JoinColumnDecoratorManager.d.ts +30 -0
  82. package/dist/code-builder/lib/field/decorator-managers/entity/JoinColumnDecoratorManager.js +119 -0
  83. package/dist/code-builder/lib/field/decorator-managers/entity/JoinColumnDecoratorManager.js.map +1 -0
  84. package/dist/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.d.ts +33 -0
  85. package/dist/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js +163 -0
  86. package/dist/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js.map +1 -0
  87. package/dist/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.d.ts +36 -0
  88. package/dist/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js +175 -0
  89. package/dist/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js.map +1 -0
  90. package/dist/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.d.ts +34 -0
  91. package/dist/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js +181 -0
  92. package/dist/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js.map +1 -0
  93. package/dist/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.d.ts +34 -0
  94. package/dist/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js +162 -0
  95. package/dist/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js.map +1 -0
  96. package/dist/code-builder/lib/field/decorator-managers/entity/PrimaryColumnDecoratorManager.d.ts +11 -0
  97. package/dist/code-builder/lib/field/decorator-managers/entity/PrimaryColumnDecoratorManager.js +16 -0
  98. package/dist/code-builder/lib/field/decorator-managers/entity/PrimaryColumnDecoratorManager.js.map +1 -0
  99. package/dist/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.d.ts +32 -0
  100. package/dist/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js +178 -0
  101. package/dist/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js.map +1 -0
  102. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.d.ts +56 -0
  103. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js +403 -0
  104. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js.map +1 -0
  105. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.d.ts +69 -0
  106. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js +424 -0
  107. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js.map +1 -0
  108. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.d.ts +13 -0
  109. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js +33 -0
  110. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js.map +1 -0
  111. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.d.ts +23 -0
  112. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js +81 -0
  113. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js.map +1 -0
  114. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.d.ts +13 -0
  115. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js +55 -0
  116. package/dist/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js.map +1 -0
  117. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.d.ts +13 -0
  118. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js +33 -0
  119. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js.map +1 -0
  120. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.d.ts +22 -0
  121. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js +75 -0
  122. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js.map +1 -0
  123. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.d.ts +13 -0
  124. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js +51 -0
  125. package/dist/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js.map +1 -0
  126. package/dist/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.d.ts +14 -0
  127. package/dist/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js +30 -0
  128. package/dist/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js.map +1 -0
  129. package/dist/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.d.ts +11 -0
  130. package/dist/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js +59 -0
  131. package/dist/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js.map +1 -0
  132. package/dist/code-builder/lib/field/field-managers/date/DateFieldHandler.d.ts +13 -0
  133. package/dist/code-builder/lib/field/field-managers/date/DateFieldHandler.js +33 -0
  134. package/dist/code-builder/lib/field/field-managers/date/DateFieldHandler.js.map +1 -0
  135. package/dist/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.d.ts +22 -0
  136. package/dist/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js +81 -0
  137. package/dist/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js.map +1 -0
  138. package/dist/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.d.ts +13 -0
  139. package/dist/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js +59 -0
  140. package/dist/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js.map +1 -0
  141. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.d.ts +13 -0
  142. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js +33 -0
  143. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js.map +1 -0
  144. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.d.ts +22 -0
  145. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js +77 -0
  146. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js.map +1 -0
  147. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.d.ts +13 -0
  148. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js +53 -0
  149. package/dist/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js.map +1 -0
  150. package/dist/code-builder/lib/field/field-managers/email/EmailFieldHandler.d.ts +14 -0
  151. package/dist/code-builder/lib/field/field-managers/email/EmailFieldHandler.js +34 -0
  152. package/dist/code-builder/lib/field/field-managers/email/EmailFieldHandler.js.map +1 -0
  153. package/dist/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.d.ts +22 -0
  154. package/dist/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js +72 -0
  155. package/dist/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js.map +1 -0
  156. package/dist/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.d.ts +12 -0
  157. package/dist/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js +44 -0
  158. package/dist/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js.map +1 -0
  159. package/dist/code-builder/lib/field/field-managers/int/IntFieldHandler.d.ts +13 -0
  160. package/dist/code-builder/lib/field/field-managers/int/IntFieldHandler.js +33 -0
  161. package/dist/code-builder/lib/field/field-managers/int/IntFieldHandler.js.map +1 -0
  162. package/dist/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.d.ts +22 -0
  163. package/dist/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js +76 -0
  164. package/dist/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js.map +1 -0
  165. package/dist/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.d.ts +13 -0
  166. package/dist/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js +52 -0
  167. package/dist/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js.map +1 -0
  168. package/dist/code-builder/lib/field/field-managers/json/JsonFieldHandler.d.ts +14 -0
  169. package/dist/code-builder/lib/field/field-managers/json/JsonFieldHandler.js +34 -0
  170. package/dist/code-builder/lib/field/field-managers/json/JsonFieldHandler.js.map +1 -0
  171. package/dist/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.d.ts +20 -0
  172. package/dist/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js +57 -0
  173. package/dist/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js.map +1 -0
  174. package/dist/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.d.ts +9 -0
  175. package/dist/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js +21 -0
  176. package/dist/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js.map +1 -0
  177. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.d.ts +15 -0
  178. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js +34 -0
  179. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js.map +1 -0
  180. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.d.ts +22 -0
  181. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js +63 -0
  182. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js.map +1 -0
  183. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.d.ts +12 -0
  184. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js +54 -0
  185. package/dist/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js.map +1 -0
  186. package/dist/code-builder/lib/field/field-managers/media/MediaFieldHandler.d.ts +13 -0
  187. package/dist/code-builder/lib/field/field-managers/media/MediaFieldHandler.js +33 -0
  188. package/dist/code-builder/lib/field/field-managers/media/MediaFieldHandler.js.map +1 -0
  189. package/dist/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.d.ts +23 -0
  190. package/dist/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js +72 -0
  191. package/dist/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js.map +1 -0
  192. package/dist/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.d.ts +12 -0
  193. package/dist/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js +57 -0
  194. package/dist/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js.map +1 -0
  195. package/dist/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.d.ts +13 -0
  196. package/dist/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js +27 -0
  197. package/dist/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js.map +1 -0
  198. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldHandler.d.ts +14 -0
  199. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js +34 -0
  200. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js.map +1 -0
  201. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.d.ts +29 -0
  202. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js +121 -0
  203. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js.map +1 -0
  204. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.d.ts +11 -0
  205. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js +37 -0
  206. package/dist/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js.map +1 -0
  207. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldHandler.d.ts +13 -0
  208. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldHandler.js +33 -0
  209. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldHandler.js.map +1 -0
  210. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForDto.d.ts +4 -0
  211. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForDto.js +9 -0
  212. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForDto.js.map +1 -0
  213. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForEntity.d.ts +4 -0
  214. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForEntity.js +8 -0
  215. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForEntity.js.map +1 -0
  216. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.d.ts +13 -0
  217. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js +33 -0
  218. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js.map +1 -0
  219. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.d.ts +36 -0
  220. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js +231 -0
  221. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js.map +1 -0
  222. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.d.ts +11 -0
  223. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js +49 -0
  224. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js.map +1 -0
  225. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.d.ts +13 -0
  226. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js +33 -0
  227. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js.map +1 -0
  228. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.d.ts +28 -0
  229. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js +127 -0
  230. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js.map +1 -0
  231. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.d.ts +10 -0
  232. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js +44 -0
  233. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js.map +1 -0
  234. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldHandler.d.ts +13 -0
  235. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldHandler.js +33 -0
  236. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldHandler.js.map +1 -0
  237. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForDto.d.ts +34 -0
  238. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForDto.js +207 -0
  239. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForDto.js.map +1 -0
  240. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForEntity.d.ts +9 -0
  241. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForEntity.js +43 -0
  242. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForEntity.js.map +1 -0
  243. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.d.ts +15 -0
  244. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js +34 -0
  245. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js.map +1 -0
  246. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.d.ts +22 -0
  247. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js +63 -0
  248. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js.map +1 -0
  249. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.d.ts +12 -0
  250. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js +53 -0
  251. package/dist/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js.map +1 -0
  252. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.d.ts +14 -0
  253. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js +34 -0
  254. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js.map +1 -0
  255. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.d.ts +22 -0
  256. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js +63 -0
  257. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js.map +1 -0
  258. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.d.ts +11 -0
  259. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js +37 -0
  260. package/dist/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js.map +1 -0
  261. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.d.ts +14 -0
  262. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js +34 -0
  263. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js.map +1 -0
  264. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.d.ts +8 -0
  265. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js +15 -0
  266. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js.map +1 -0
  267. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.d.ts +11 -0
  268. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js +33 -0
  269. package/dist/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js.map +1 -0
  270. package/dist/code-builder/lib/field/remove-fields.schema.json +30 -0
  271. package/dist/code-builder/lib/field/update-fields.schema.json +30 -0
  272. package/dist/code-builder/lib/model/add-model.schema.json +42 -0
  273. package/dist/code-builder/lib/model/helpers.d.ts +63 -0
  274. package/dist/code-builder/lib/model/helpers.js +559 -0
  275. package/dist/code-builder/lib/model/helpers.js.map +1 -0
  276. package/dist/code-builder/lib/model/refresh-model.schema.json +16 -0
  277. package/dist/code-builder/lib/module/add-module.schema.json +14 -0
  278. package/dist/collection.json +24 -0
  279. package/dist/files/generate-model/controllers/__model@dasherize__.controller.ts +93 -0
  280. package/dist/files/generate-model/dtos/create-__model@dasherize__.dto.ts +16 -0
  281. package/dist/files/generate-model/dtos/update-__model@dasherize__.dto.ts +20 -0
  282. package/dist/files/generate-model/entities/__model@dasherize__.entity.ts +5 -0
  283. package/dist/files/generate-model/repositories/__model@dasherize__.repository.ts +19 -0
  284. package/dist/files/generate-model/services/__model@dasherize__.service.ts +22 -0
  285. package/dist/files/generate-module/__name@dasherize__.module.ts +6 -0
  286. package/files/generate-model/controllers/__model@dasherize__.controller.ts +93 -0
  287. package/files/generate-model/dtos/create-__model@dasherize__.dto.ts +16 -0
  288. package/files/generate-model/dtos/update-__model@dasherize__.dto.ts +20 -0
  289. package/files/generate-model/entities/__model@dasherize__.entity.ts +5 -0
  290. package/files/generate-model/repositories/__model@dasherize__.repository.ts +19 -0
  291. package/files/generate-model/services/__model@dasherize__.service.ts +22 -0
  292. package/files/generate-module/__name@dasherize__.module.ts +6 -0
  293. package/package.json +46 -0
  294. package/publish.js +16 -0
  295. package/src/code-builder/index.d.ts +9 -0
  296. package/src/code-builder/index.js.map +1 -0
  297. package/src/code-builder/index.ts +218 -0
  298. package/src/code-builder/index_spec.d.ts +1 -0
  299. package/src/code-builder/index_spec.js.map +1 -0
  300. package/src/code-builder/index_spec.ts +14 -0
  301. package/src/code-builder/lib/field/FieldManager.d.ts +106 -0
  302. package/src/code-builder/lib/field/FieldManager.js.map +1 -0
  303. package/src/code-builder/lib/field/FieldManager.ts +336 -0
  304. package/src/code-builder/lib/field/add-fields.schema.json +30 -0
  305. package/src/code-builder/lib/field/db-helpers.ts +22 -0
  306. package/src/code-builder/lib/field/decorator-managers/dto/ApiPropertyDecoratorManager.ts +196 -0
  307. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.d.ts +26 -0
  308. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js.map +1 -0
  309. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.ts +130 -0
  310. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.d.ts +24 -0
  311. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js.map +1 -0
  312. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.ts +121 -0
  313. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.d.ts +24 -0
  314. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js.map +1 -0
  315. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.ts +125 -0
  316. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.d.ts +24 -0
  317. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js.map +1 -0
  318. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.ts +130 -0
  319. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.d.ts +24 -0
  320. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js.map +1 -0
  321. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.ts +131 -0
  322. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.d.ts +24 -0
  323. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js.map +1 -0
  324. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.ts +119 -0
  325. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.d.ts +24 -0
  326. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js.map +1 -0
  327. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.ts +123 -0
  328. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.d.ts +24 -0
  329. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js.map +1 -0
  330. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.ts +122 -0
  331. package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.d.ts +25 -0
  332. package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.js.map +1 -0
  333. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.d.ts +25 -0
  334. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js.map +1 -0
  335. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.ts +125 -0
  336. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.d.ts +25 -0
  337. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js.map +1 -0
  338. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.ts +128 -0
  339. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.d.ts +25 -0
  340. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js.map +1 -0
  341. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.ts +126 -0
  342. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.d.ts +25 -0
  343. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js.map +1 -0
  344. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.ts +128 -0
  345. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.d.ts +24 -0
  346. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js.map +1 -0
  347. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.ts +134 -0
  348. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.d.ts +26 -0
  349. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js.map +1 -0
  350. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.ts +127 -0
  351. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.d.ts +25 -0
  352. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js.map +1 -0
  353. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.ts +130 -0
  354. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.d.ts +25 -0
  355. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js.map +1 -0
  356. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.ts +120 -0
  357. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.d.ts +24 -0
  358. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js.map +1 -0
  359. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.ts +119 -0
  360. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.d.ts +25 -0
  361. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js.map +1 -0
  362. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.ts +132 -0
  363. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.d.ts +30 -0
  364. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js.map +1 -0
  365. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.ts +170 -0
  366. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.d.ts +34 -0
  367. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js.map +1 -0
  368. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.ts +219 -0
  369. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.d.ts +24 -0
  370. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js.map +1 -0
  371. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.ts +149 -0
  372. package/src/code-builder/lib/field/decorator-managers/entity/JoinColumnDecoratorManager.ts +176 -0
  373. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.d.ts +29 -0
  374. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js.map +1 -0
  375. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.ts +228 -0
  376. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.d.ts +37 -0
  377. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js.map +1 -0
  378. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.ts +241 -0
  379. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.d.ts +34 -0
  380. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js.map +1 -0
  381. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.ts +199 -0
  382. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.d.ts +33 -0
  383. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js.map +1 -0
  384. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.ts +224 -0
  385. package/src/code-builder/lib/field/decorator-managers/entity/PrimaryColumnDecoratorManager.ts +18 -0
  386. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.d.ts +31 -0
  387. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js.map +1 -0
  388. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.ts +209 -0
  389. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.d.ts +51 -0
  390. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js.map +1 -0
  391. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.ts +559 -0
  392. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.d.ts +58 -0
  393. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js.map +1 -0
  394. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.ts +578 -0
  395. package/src/code-builder/lib/field/field-managers/base/DeleteType.d.ts +6 -0
  396. package/src/code-builder/lib/field/field-managers/base/DeleteType.js.map +1 -0
  397. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.d.ts +13 -0
  398. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js.map +1 -0
  399. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.ts +52 -0
  400. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.d.ts +23 -0
  401. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js.map +1 -0
  402. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.ts +83 -0
  403. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.d.ts +13 -0
  404. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js.map +1 -0
  405. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.ts +58 -0
  406. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.d.ts +13 -0
  407. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js.map +1 -0
  408. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.ts +53 -0
  409. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.d.ts +22 -0
  410. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js.map +1 -0
  411. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.ts +78 -0
  412. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.d.ts +13 -0
  413. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js.map +1 -0
  414. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.ts +54 -0
  415. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.d.ts +14 -0
  416. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js.map +1 -0
  417. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.ts +43 -0
  418. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.d.ts +11 -0
  419. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js.map +1 -0
  420. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.ts +66 -0
  421. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.d.ts +13 -0
  422. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.js.map +1 -0
  423. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.ts +52 -0
  424. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.d.ts +22 -0
  425. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js.map +1 -0
  426. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.ts +91 -0
  427. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.d.ts +13 -0
  428. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js.map +1 -0
  429. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.ts +71 -0
  430. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.d.ts +13 -0
  431. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js.map +1 -0
  432. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.ts +52 -0
  433. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.d.ts +22 -0
  434. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js.map +1 -0
  435. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.ts +81 -0
  436. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.d.ts +13 -0
  437. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js.map +1 -0
  438. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.ts +57 -0
  439. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.d.ts +14 -0
  440. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.js.map +1 -0
  441. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.ts +59 -0
  442. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.d.ts +22 -0
  443. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js.map +1 -0
  444. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.ts +73 -0
  445. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.d.ts +12 -0
  446. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js.map +1 -0
  447. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.ts +45 -0
  448. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.d.ts +13 -0
  449. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.js.map +1 -0
  450. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.ts +53 -0
  451. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.d.ts +22 -0
  452. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js.map +1 -0
  453. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.ts +80 -0
  454. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.d.ts +13 -0
  455. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js.map +1 -0
  456. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.ts +56 -0
  457. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.d.ts +14 -0
  458. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.js.map +1 -0
  459. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.ts +59 -0
  460. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.d.ts +20 -0
  461. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js.map +1 -0
  462. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.ts +57 -0
  463. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.d.ts +9 -0
  464. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js.map +1 -0
  465. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.ts +62 -0
  466. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.d.ts +14 -0
  467. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js.map +1 -0
  468. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.ts +62 -0
  469. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.d.ts +22 -0
  470. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js.map +1 -0
  471. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.ts +66 -0
  472. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.d.ts +11 -0
  473. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js.map +1 -0
  474. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.ts +66 -0
  475. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.d.ts +13 -0
  476. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.js.map +1 -0
  477. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.ts +51 -0
  478. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.d.ts +23 -0
  479. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js.map +1 -0
  480. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.ts +77 -0
  481. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.d.ts +12 -0
  482. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js.map +1 -0
  483. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.ts +58 -0
  484. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.d.ts +13 -0
  485. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js.map +1 -0
  486. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.ts +29 -0
  487. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.d.ts +24 -0
  488. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.js.map +1 -0
  489. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.d.ts +12 -0
  490. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.js.map +1 -0
  491. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.d.ts +14 -0
  492. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js.map +1 -0
  493. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.ts +59 -0
  494. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.d.ts +29 -0
  495. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js.map +1 -0
  496. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.ts +141 -0
  497. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.d.ts +11 -0
  498. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js.map +1 -0
  499. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.ts +39 -0
  500. package/src/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldHandler.ts +53 -0
  501. package/src/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForDto.ts +8 -0
  502. package/src/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForEntity.ts +8 -0
  503. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.d.ts +13 -0
  504. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js.map +1 -0
  505. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.ts +52 -0
  506. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.d.ts +51 -0
  507. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js.map +1 -0
  508. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.ts +278 -0
  509. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.d.ts +30 -0
  510. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js.map +1 -0
  511. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.ts +59 -0
  512. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.d.ts +13 -0
  513. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js.map +1 -0
  514. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.ts +53 -0
  515. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.d.ts +43 -0
  516. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js.map +1 -0
  517. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.ts +152 -0
  518. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.d.ts +31 -0
  519. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js.map +1 -0
  520. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.ts +54 -0
  521. package/src/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldHandler.ts +53 -0
  522. package/src/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForDto.ts +252 -0
  523. package/src/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForEntity.ts +51 -0
  524. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.d.ts +14 -0
  525. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js.map +1 -0
  526. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.ts +61 -0
  527. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.d.ts +22 -0
  528. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js.map +1 -0
  529. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.ts +65 -0
  530. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.d.ts +11 -0
  531. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js.map +1 -0
  532. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.ts +63 -0
  533. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.d.ts +14 -0
  534. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js.map +1 -0
  535. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.ts +61 -0
  536. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.d.ts +22 -0
  537. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js.map +1 -0
  538. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.ts +65 -0
  539. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.d.ts +11 -0
  540. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js.map +1 -0
  541. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.ts +39 -0
  542. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.d.ts +14 -0
  543. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js.map +1 -0
  544. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.ts +59 -0
  545. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.d.ts +8 -0
  546. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js.map +1 -0
  547. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.ts +17 -0
  548. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.d.ts +11 -0
  549. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js.map +1 -0
  550. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.ts +37 -0
  551. package/src/code-builder/lib/field/remove-fields.schema.json +30 -0
  552. package/src/code-builder/lib/field/update-fields.schema.json +30 -0
  553. package/src/code-builder/lib/model/add-model.schema.json +42 -0
  554. package/src/code-builder/lib/model/helpers.d.ts +49 -0
  555. package/src/code-builder/lib/model/helpers.js.map +1 -0
  556. package/src/code-builder/lib/model/helpers.ts +643 -0
  557. package/src/code-builder/lib/model/refresh-model.schema.json +16 -0
  558. package/src/code-builder/lib/module/add-module.schema.json +14 -0
  559. package/src/collection.json +24 -0
  560. package/tsconfig.json +27 -0
@@ -0,0 +1,643 @@
1
+ import { classify, dasherize } from '@angular-devkit/core/src/utils/strings';
2
+ import { Tree } from '@angular-devkit/schematics';
3
+ import { MetadataManager } from '@nestjs/schematics';
4
+ import ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
5
+ import { insertImport } from '@schematics/angular/utility/ast-utils';
6
+ import { Change, InsertChange } from '@schematics/angular/utility/change';
7
+ import * as crypto from 'crypto';
8
+ import {
9
+ DtoSourceType,
10
+ FieldChange,
11
+ RemoveChangeSSS,
12
+ ReplaceChangeSSS,
13
+ getFieldHandler,
14
+ } from '../field/FieldManager';
15
+ import { SupportedDatabases } from '../field/db-helpers';
16
+
17
+ export const SOLID_CORE_MODULE_NAME = 'solid-core';
18
+ export const SOLID_CORE_MODULE_NPM_PACKAGE_NAME = '@solidxai/solid-core';
19
+
20
+
21
+ // export const CHECKSUM_FILE_PATH = 'code-builder/output/checksums.json';
22
+ export const CHECKSUM_HASH_ALGORITHM = 'md5';
23
+ export enum Command {
24
+ AddModule = 'add-module',
25
+ AddModel = 'add-model',
26
+ }
27
+
28
+ export enum SolidProviderType {
29
+ Entity = 'Entity',
30
+ Dto = 'Dto',
31
+ Service = 'Service',
32
+ Controller = 'Controller',
33
+ Repository = 'Repository'
34
+ }
35
+
36
+ export enum ModuleMetadataType {
37
+ TypeOrmImports = 'imports',
38
+ Service = 'service',
39
+ Controllers = 'controllers',
40
+ Repository = 'repository',
41
+ }
42
+
43
+ export type ImportData = {
44
+ symbolName: string;
45
+ importPath: string;
46
+ };
47
+
48
+ export type ModuleMetadata = {
49
+ metadata: string;
50
+ symbol: string;
51
+ };
52
+
53
+ export type Checksum = {
54
+ filePath: string;
55
+ checksum: string;
56
+ algorithm: string;
57
+ createdAt: Date;
58
+ updatedAt: Date;
59
+ }
60
+
61
+ export interface ModuleMetadataConfiguration {
62
+ checksums: Checksum[]; // Other metadata keys are not used, so only kept 1 key in the interface for now
63
+ }
64
+
65
+ export function getModuleMetadata(
66
+ modelName: string,
67
+ type: ModuleMetadataType,
68
+ ): ModuleMetadata {
69
+ switch (type) {
70
+ case ModuleMetadataType.TypeOrmImports:
71
+ // const symbols = [`TypeOrmModule.forFeature([${classify(modelName)}])`, `SolidCoreModule`];
72
+ return {
73
+ metadata: 'imports',
74
+ symbol: `TypeOrmModule.forFeature([${classify(modelName)}])`
75
+ };
76
+ case ModuleMetadataType.Service:
77
+ return { metadata: 'providers', symbol: `${classify(modelName)}Service` };
78
+ case ModuleMetadataType.Controllers:
79
+ return {
80
+ metadata: 'controllers',
81
+ symbol: `${classify(modelName)}Controller`,
82
+ };
83
+ case ModuleMetadataType.Repository:
84
+ return { metadata: 'providers', symbol: `${classify(modelName)}Repository` };
85
+ default:
86
+ throw Error('Invalid ModuleMetadataType');
87
+ }
88
+ }
89
+
90
+ export function getSolidImports(
91
+ modelName: string,
92
+ type: SolidProviderType,
93
+ ): ImportData {
94
+ switch (type) {
95
+ case SolidProviderType.Dto:
96
+ return {
97
+ symbolName: `Create${classify(modelName)}Dto`,
98
+ importPath: `./dtos/create-${dasherize(modelName)}.dto`,
99
+ };
100
+ case SolidProviderType.Service:
101
+ return {
102
+ symbolName: `${classify(modelName)}Service`,
103
+ importPath: `./services/${dasherize(modelName)}.service`,
104
+ };
105
+ case SolidProviderType.Controller:
106
+ return {
107
+ symbolName: `${classify(modelName)}Controller`,
108
+ importPath: `./controllers/${dasherize(modelName)}.controller`,
109
+ };
110
+ case SolidProviderType.Entity:
111
+ return {
112
+ symbolName: `${classify(modelName)}`,
113
+ importPath: `./entities/${dasherize(modelName)}.entity`,
114
+ };
115
+ case SolidProviderType.Repository:
116
+ return {
117
+ symbolName: `${classify(modelName)}Repository`,
118
+ importPath: `./repositories/${dasherize(modelName)}.repository`,
119
+ };
120
+ default:
121
+ throw Error('Invalid SolidProviderType');
122
+ }
123
+ }
124
+
125
+ export function addModuleMetadata(
126
+ tree: Tree,
127
+ moduleFilePath: string,
128
+ moduleMetadata: ModuleMetadata[],
129
+ ) {
130
+ let moduleFileContent = tree.readText(moduleFilePath);
131
+ if (moduleFileContent == '') {
132
+ throw new Error(`${moduleFilePath} seems to be empty`);
133
+ }
134
+ moduleMetadata.forEach((metadata) => {
135
+ const metadataManager = new MetadataManager(moduleFileContent);
136
+ moduleFileContent =
137
+ metadataManager.insert(metadata.metadata, metadata.symbol) ??
138
+ moduleFileContent;
139
+ });
140
+ tree.overwrite(moduleFilePath, moduleFileContent);
141
+ }
142
+
143
+ export function addImports(
144
+ tree: Tree,
145
+ filePath: string,
146
+ imports: ImportData[],
147
+ ) {
148
+ const fileContent = tree.readText(filePath);
149
+ if (fileContent == '') {
150
+ throw new Error(`${filePath} seems to be empty`);
151
+ }
152
+ const source = ts.createSourceFile(
153
+ filePath,
154
+ fileContent,
155
+ ts.ScriptTarget.Latest,
156
+ true,
157
+ );
158
+
159
+ const updateRecorder = tree.beginUpdate(filePath);
160
+ imports.forEach((importData) => {
161
+ const insertImportChange = insertImport(
162
+ source,
163
+ filePath,
164
+ importData.symbolName,
165
+ importData.importPath,
166
+ );
167
+ if (insertImportChange instanceof InsertChange) {
168
+ updateRecorder.insertRight(
169
+ insertImportChange.pos,
170
+ insertImportChange.toAdd,
171
+ );
172
+ }
173
+ });
174
+ tree.commitUpdate(updateRecorder);
175
+ }
176
+
177
+ function safeApplyChanges(
178
+ tree: Tree,
179
+ moduleName: string,
180
+ filePath: string,
181
+ changes: Change[],
182
+ generateChecksum: boolean = false
183
+ ) {
184
+ const uniqueChanges = deDuplicateByDescription(changes);
185
+
186
+ // Get all the insert changes
187
+ const insertChanges = uniqueChanges.filter((change) => change instanceof InsertChange);
188
+
189
+ // Get all the replace and remove changes
190
+ const replaceAndRemoveChanges = uniqueChanges.filter(
191
+ (change) => change instanceof ReplaceChangeSSS || change instanceof RemoveChangeSSS
192
+ );
193
+ const { replaceChangesArray, removeChangesArray } = deDuplicateByPosition(replaceAndRemoveChanges);
194
+
195
+ const safeChanges = [...insertChanges, ...replaceChangesArray, ...removeChangesArray];
196
+ applyChanges(tree, filePath, safeChanges)
197
+ generateChecksum ? handleUpdateChecksums(tree, moduleName, filePath) : "no-ops";
198
+ }
199
+
200
+ function deDuplicateByDescription(changes: Change[]) {
201
+ return changes.filter((item, index, self) => index === self.findIndex((c) => c.description === item.description)
202
+ );
203
+ }
204
+
205
+ // if there are multiple replace changes for the same position, then only the last replace change will be applied
206
+ function deDuplicateByPosition(replaceAndRemoveChanges: Change[]) {
207
+ const replaceChanges = replaceAndRemoveChanges.filter((change) => change instanceof ReplaceChangeSSS);
208
+ // de-duplicate the replace changes in the same position, using the last replace change
209
+ const replaceChangesMap = new Map<number, ReplaceChangeSSS>();
210
+ replaceChanges.forEach((change) => {
211
+ replaceChangesMap.set(change.replacePosition, change);
212
+ });
213
+ const replaceChangesArray = Array.from(replaceChangesMap.values());
214
+
215
+ // if there are multiple replace changes for the same position, then only the last replace change will be applied
216
+ const removeChanges = replaceAndRemoveChanges.filter((change) => change instanceof RemoveChangeSSS);
217
+ // de-duplicate the remove changes in the same position, using the last remove change
218
+ const removeChangesMap = new Map<number, RemoveChangeSSS>();
219
+ removeChanges.forEach((change) => {
220
+ removeChangesMap.set(change.removePosition, change);
221
+ });
222
+ const removeChangesArray = Array.from(removeChangesMap.values());
223
+ return { replaceChangesArray, removeChangesArray };
224
+ }
225
+
226
+ export function generateMD5Hash(input: string): string {
227
+ return crypto.createHash('md5').update(input).digest('hex');
228
+ }
229
+
230
+ function createBackup(tree: Tree, filePath: string, fileContent: string) {
231
+ const backupFilePath = `${filePath}.bkp`;
232
+ if (!tree.exists(backupFilePath)) {
233
+ tree.create(backupFilePath, fileContent);
234
+ }
235
+ else {
236
+ console.log('Backup file already exists...');
237
+ // throw new Error('Backup file already exists. Please delete this file and try again');
238
+ //tree.overwrite(backupFilePath, fileContent);
239
+ }
240
+ }
241
+
242
+ export function loadModuleMetadata(tree: Tree, moduleName: string): ModuleMetadataConfiguration {
243
+ const moduleMetadataFilePath = getModuleMetadataFilePath(moduleName);
244
+ const metadata: ModuleMetadataConfiguration = tree.exists(moduleMetadataFilePath) ? JSON.parse(tree.readText(moduleMetadataFilePath)) : null;
245
+ if (!metadata.checksums) metadata.checksums = [];
246
+ return metadata;
247
+ }
248
+
249
+ function getModuleMetadataFilePath(moduleName: string) {
250
+ if (moduleName === SOLID_CORE_MODULE_NAME) {
251
+ return `src/${moduleName}/seeders/seed-data/${moduleName}-metadata.json`
252
+ }
253
+ else {
254
+ return `module-metadata/${dasherize(moduleName)}/${dasherize(moduleName)}-metadata.json`;
255
+ }
256
+ }
257
+
258
+ // function getChecksum(tree: Tree, filePath: string, checksums?: Checksum[]) {
259
+ // if (!checksums) {
260
+ // checksums = loadChecksums(tree);
261
+ // }
262
+ // return checksums.filter((checksum: Checksum) => checksum.filePath === filePath).pop();
263
+ // }
264
+
265
+
266
+ function applyChanges(tree: Tree, filePath: string, changes: Change[]) {
267
+ /*
268
+ //Given the filePath, generate a checksum of the file from the content of the file
269
+ const fileContent = tree.readText(filePath);
270
+ const checksum = generateMD5Hash(fileContent);
271
+ console.log('checksum:', checksum, filePath);
272
+
273
+ // Compare the checksum in the existing checksums.json file. If they don't match then create a backup of the file
274
+ // const checksums: Checksum[] = loadChecksums(tree);
275
+ // console.log('checksums:', checksums);
276
+ const existingChecksum = getChecksum(tree, filePath);
277
+ console.log('existingChecksum:', existingChecksum);
278
+
279
+ if (existingChecksum && existingChecksum.checksum !== checksum) {
280
+ createBackup(tree, filePath, fileContent);
281
+ }*/
282
+
283
+ const updateRecorder = tree.beginUpdate(filePath);
284
+ changes.forEach((change) => {
285
+ if (change instanceof InsertChange) {
286
+ updateRecorder.insertLeft(change.pos, change.toAdd);
287
+ }
288
+ else if (change instanceof ReplaceChangeSSS) {
289
+ // console.log(`removing ${change.oldText.length} at ${change.replacePosition}`);
290
+ updateRecorder.remove(change.replacePosition, change.oldText.length);
291
+ // console.log(`inserting ${change.newText} at ${change.replacePosition}`);
292
+ updateRecorder.insertLeft(change.replacePosition, change.newText);
293
+ // console.log('source', updateRecorder.getText());
294
+ }
295
+ else if (change instanceof RemoveChangeSSS) {
296
+ updateRecorder.remove(change.removePosition, change.toRemove.length);
297
+ }
298
+ });
299
+ tree.commitUpdate(updateRecorder);
300
+ }
301
+
302
+ export function addField(tree: Tree, options: any, field: any) {
303
+ try {
304
+ const fieldHandler = getFieldHandler(
305
+ tree,
306
+ options.module,
307
+ options.model,
308
+ field,
309
+ options.modelEnableSoftDelete
310
+ );
311
+ const entityFieldChanges = fieldHandler.addEntityField();
312
+ applyFieldChanges(tree, options.module, entityFieldChanges, options?.generateChecksum)
313
+
314
+ const dtoFieldChanges = fieldHandler.addDtoField();
315
+ applyFieldChanges(tree, options.module, dtoFieldChanges, options?.generateChecksum)
316
+
317
+ }
318
+ catch (e) {
319
+ console.error('Error while adding field' + field.name, e);
320
+ }
321
+ }
322
+ export function removeField(tree: Tree, options: any, field: any) {
323
+ try {
324
+ const fieldHandler = getFieldHandler(
325
+ tree,
326
+ options.module,
327
+ options.model,
328
+ field,
329
+ options.modelEnableSoftDelete
330
+ );
331
+
332
+ const entityFieldChanges = fieldHandler.removeEntityField();
333
+ applyFieldChanges(tree, options.module, entityFieldChanges, options?.generateChecksum)
334
+
335
+ const dtoFieldChanges = fieldHandler.removeDtoField();
336
+ applyFieldChanges(tree, options.module, dtoFieldChanges, options?.generateChecksum)
337
+
338
+ } catch (e) {
339
+ console.error('Error while removing field' + field.name, e);
340
+ }
341
+ }
342
+
343
+ export function updateField(tree: Tree, options: any, field: any) {
344
+ try {
345
+ const fieldHandler = getFieldHandler(
346
+ tree,
347
+ options.module,
348
+ options.model,
349
+ field,
350
+ options.modelEnableSoftDelete,
351
+ options.dataSourceType as SupportedDatabases
352
+ );
353
+ const entityFieldChanges = fieldHandler.updateEntityField();
354
+ // console.log('entityFieldChanges:', entityFieldChanges.map((change) => change.changes));
355
+ applyFieldChanges(tree, options.module, entityFieldChanges, options?.generateChecksum)
356
+
357
+ const dtoFieldChanges = fieldHandler.updateDtoField();
358
+ // console.log('dtoFieldChanges:', dtoFieldChanges.map((change) => change.changes));
359
+ applyFieldChanges(tree, options.module, dtoFieldChanges, options?.generateChecksum)
360
+ }
361
+ catch (e) {
362
+ console.error('Error while updating field' + field.name, e);
363
+ }
364
+ }
365
+
366
+ function applyFieldChanges(tree: Tree, moduleName: string, fieldChanges: FieldChange[], generateChecksum: boolean = false) {
367
+ // Collect the changes file wise into a map, i.e all changes related to a file get applied together
368
+ const changesMap = new Map<string, Change[]>();
369
+ fieldChanges.forEach((fieldChange) => {
370
+ const changes = changesMap.get(fieldChange.filePath) ?? [];
371
+ changes.push(...fieldChange.changes);
372
+ changesMap.set(fieldChange.filePath, changes);
373
+ });
374
+
375
+ //Apply the changes to the file
376
+ changesMap.forEach((changes, filePath) => {
377
+ safeApplyChanges(
378
+ tree,
379
+ moduleName,
380
+ filePath,
381
+ changes,
382
+ generateChecksum
383
+ );
384
+ });
385
+ }
386
+
387
+ // Read all the files with the given fileNames and update the checksum in the checksum file
388
+ export function getUpdatedChecksums(filePaths: string[], existingChecksums: Checksum[], tree: Tree) {
389
+ filePaths.forEach((filePath) => {
390
+ // Find the checksum entry for the given file path
391
+ const checksumEntry = existingChecksums.find((checksum: Checksum) => checksum.filePath === filePath);
392
+
393
+ // If the checksum entry is found, update the checksum
394
+ if (checksumEntry) {
395
+ const updatedChecksum = generateMD5Hash(tree.readText(filePath));
396
+ if (checksumEntry.checksum !== updatedChecksum) {
397
+ checksumEntry.checksum = generateMD5Hash(tree.readText(filePath));
398
+ checksumEntry.updatedAt = new Date();
399
+ }
400
+ }
401
+ else {
402
+ // If the checksum entry is not found, create a new checksum entry
403
+ existingChecksums.push({
404
+ filePath: filePath,
405
+ checksum: generateMD5Hash(tree.readText(filePath)),
406
+ algorithm: CHECKSUM_HASH_ALGORITHM,
407
+ createdAt: new Date(),
408
+ updatedAt: new Date(),
409
+ });
410
+ }
411
+ });
412
+ return existingChecksums;
413
+ }
414
+
415
+ export function getSourceFilePathsAffected(command: Command, options: any): string[] {
416
+ const sourceFilePaths: string[] = [];
417
+ switch (command) {
418
+ case Command.AddModule:
419
+ sourceFilePaths.push(`src/${dasherize(options.module)}/${dasherize(options.module)}.module.ts`);
420
+ break;
421
+ case Command.AddModel:
422
+ sourceFilePaths.push(`src/${dasherize(options.module)}/${dasherize(options.module)}.module.ts`);
423
+ sourceFilePaths.push(`src/${dasherize(options.module)}/services/${dasherize(options.model)}.service.ts`);
424
+ sourceFilePaths.push(`src/${dasherize(options.module)}/controllers/${dasherize(options.model)}.controller.ts`);
425
+ sourceFilePaths.push(`src/${dasherize(options.module)}/entities/${dasherize(options.model)}.entity.ts`);
426
+ sourceFilePaths.push(`src/${dasherize(options.module)}/dtos/create-${dasherize(options.model)}.dto.ts`);
427
+ sourceFilePaths.push(`src/${dasherize(options.module)}/dtos/update-${dasherize(options.model)}.dto.ts`);
428
+ break;
429
+ default:
430
+ throw Error('Invalid command');
431
+ }
432
+ return sourceFilePaths;
433
+ }
434
+
435
+ export function handleUpdateChecksums(tree: any, moduleName: string, ...filePaths: string[]) {
436
+ // console.log('Updating checksums for the following files:', filePaths);
437
+ const metadata = loadModuleMetadata(tree, moduleName);
438
+ const updatedChecksums = getUpdatedChecksums(filePaths, metadata.checksums, tree);
439
+ metadata.checksums = updatedChecksums;
440
+ // Save the updated checksums to the checksum file, by overwriting the existing checksum file
441
+ tree.overwrite(getModuleMetadataFilePath(moduleName), JSON.stringify(metadata, null, 2));
442
+ return tree;
443
+ }
444
+
445
+ // Refer -> https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API
446
+ // https://learning-notes.mistermicheels.com/javascript/typescript/compiler-api/
447
+ export function removeUnusedImports(tree: Tree, filePath: string): string {
448
+ const sourceCode = tree.readText(filePath);
449
+ // const compilerOptions = {
450
+ // getScriptFileNames: () => [filePath],
451
+ // getScriptVersion: () => '0',
452
+ // getScriptSnapshot: (fileName: string) =>
453
+ // fileName === filePath
454
+ // ? ts.ScriptSnapshot.fromString(sourceCode)
455
+ // : undefined,
456
+ // getCurrentDirectory: () => '',
457
+ // getCompilationSettings: () => ({ module: ts.ModuleKind.CommonJS }),
458
+ // getDefaultLibFileName: (options: any) => ts.getDefaultLibFilePath(options),
459
+ // readFile: (filePath:string) => tree.readText(filePath),
460
+ // fileExists: (filePath:string) => tree.exists(filePath),
461
+ // };
462
+
463
+ // const languageService = ts.createLanguageService(compilerOptions);
464
+
465
+ // Create a language service
466
+ // const languageService = ts.createLanguageService({
467
+ // getScriptFileNames: () => ['temp.ts'],
468
+ // getScriptVersion: () => '0',
469
+ // getScriptSnapshot: (fileName: string) => fileName === 'temp.ts' ? ts.ScriptSnapshot.fromString(sourceCode) : undefined,
470
+ // getCurrentDirectory: () => '',
471
+ // getCompilationSettings: () => ({ module: ts.ModuleKind.CommonJS })
472
+ // });
473
+ const defaultCompilerHost = ts.createCompilerHost({});
474
+ console.log(
475
+ 'defaultCompilerHost:',
476
+ JSON.stringify(defaultCompilerHost.getCurrentDirectory()),
477
+ );
478
+
479
+ /*
480
+ const program = ts.createProgram([filePath],{}, defaultCompilerHost);
481
+ // const diagnostics = languageService.getSemanticDiagnostics(filePath);
482
+ const diagnostics = ts.getPreEmitDiagnostics(program);
483
+ const unusedImports: Set<string> = new Set();
484
+
485
+ if (!tree.exists(`output.diagnostics.json`)) {
486
+ tree.create(`output.diagnostics.json`, diagnostics.map(d => d.messageText).join('\n'));
487
+ }
488
+ // Find unused imports from diagnostics
489
+ for (const diagnostic of diagnostics) {
490
+ console.log('diagnostic:', diagnostic);
491
+ if (diagnostic.code === 6192 && diagnostic.start && diagnostic.length) {
492
+ // 6192: Unused import
493
+ const start = diagnostic.start;
494
+ const end = diagnostic.start + diagnostic.length;
495
+
496
+ // Get the text range of the unused import
497
+ const importText = sourceCode.substring(start, end);
498
+
499
+ // Extract the import specifier
500
+ const importSpecifier = importText.match(/import\s+(.*?)\s+from/)?.[1];
501
+
502
+ if (importSpecifier) {
503
+ unusedImports.add(importSpecifier);
504
+ }
505
+ }
506
+ }
507
+
508
+ console.log('Unused imports:', unusedImports);
509
+ // Remove unused imports
510
+ let result = sourceCode;
511
+ unusedImports.forEach((importSpecifier) => {
512
+ result = result.replace(
513
+ new RegExp(`import\\s+${importSpecifier}\\s+from\\s+.*?;`, 'g'),
514
+ '',
515
+ );
516
+ });
517
+
518
+ return result;*/
519
+ return sourceCode;
520
+ }
521
+
522
+ export function takeBackupIfChecksumsMismatch(tree: Tree, moduleName: string) {
523
+ const metadata = loadModuleMetadata(tree, moduleName);
524
+ metadata.checksums.forEach((checksum: Checksum) => {
525
+ const filePath = checksum.filePath;
526
+ const fileContent = tree.readText(filePath);
527
+ const fileHash = generateMD5Hash(fileContent);
528
+ if (checksum.checksum !== fileHash) {
529
+ createBackup(tree, filePath, fileContent);
530
+ }
531
+ });
532
+ }
533
+
534
+ export function calculateModuleFileImportPath(moduleName: string, internalPath: string) {
535
+ return (moduleName === SOLID_CORE_MODULE_NAME) ? internalPath : SOLID_CORE_MODULE_NPM_PACKAGE_NAME;
536
+ }
537
+
538
+ export function outputEntitySuperClassImport(module: string, isLegacyTable: boolean = false, isLegacyTableWithId: boolean = false, parentModel: string | null = null, parentModule: string = "solid-core") {
539
+ let importPath: string = isLegacyTableWithId ? calculateModuleFileImportPath(module, `src/entities/legacy-common-with-id.entity`) : isLegacyTable ? calculateModuleFileImportPath(module, `src/entities/legacy-common.entity`) : calculateModuleFileImportPath(module, `src/entities/common.entity`);
540
+ let importSymbol: string = isLegacyTableWithId ? "LegacyCommonWithIdEntity" : isLegacyTable ? "LegacyCommonEntity" : "CommonEntity";
541
+ if (parentModel != null) {
542
+ importPath = calculateModuleFileImportPath(parentModule, `src/${dasherize(parentModule)}/entities/${dasherize(parentModel)}.entity`);
543
+ importSymbol = `${classify(parentModel)}`;
544
+ }
545
+ return `import { ${importSymbol} } from '${importPath}';`;
546
+ }
547
+
548
+ export function outputParentImportPathForDto(parentModel: string | null = null, parentModule: string | null = null, context: string) {
549
+ if (parentModel == null || parentModule == null) {
550
+ return "";
551
+ }
552
+ let importPath = ``;
553
+ let importSymbol = ``;
554
+ if (context === DtoSourceType.Update) {
555
+ importPath = parentModule === SOLID_CORE_MODULE_NAME ? SOLID_CORE_MODULE_NPM_PACKAGE_NAME : `src/${dasherize(parentModule)}/dtos/update-${dasherize(parentModel)}.dto.ts`;
556
+ importSymbol = `Update${classify(parentModel)}Dto`;
557
+ } else if (context === DtoSourceType.Create) {
558
+ importPath = parentModule === SOLID_CORE_MODULE_NAME ? SOLID_CORE_MODULE_NPM_PACKAGE_NAME : `src/${dasherize(parentModule)}/dtos/create-${dasherize(parentModel)}.dto.ts`;
559
+ importSymbol = `Create${classify(parentModel)}Dto`;
560
+ }
561
+ return `import { ${importSymbol} } from '${importPath}';`;
562
+ }
563
+
564
+ export function unSnakeCase(name: string) {
565
+ return name.split("_").map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(" ")
566
+ }
567
+
568
+ export function readModelOptionsFromMetadata(tree: Tree, moduleName: string, modelName: string): any {
569
+ const metadataFilePath = getModuleMetadataFilePath(moduleName);
570
+ if (!tree.exists(metadataFilePath)) {
571
+ throw new Error(`Module metadata file not found at ${metadataFilePath}`);
572
+ }
573
+
574
+ const metadataJson = JSON.parse(tree.readText(metadataFilePath));
575
+ const moduleMetadata = metadataJson.moduleMetadata;
576
+ if (!moduleMetadata || !moduleMetadata.models) {
577
+ throw new Error(`Invalid metadata structure in ${metadataFilePath}: missing moduleMetadata.models`);
578
+ }
579
+
580
+ const model = moduleMetadata.models.find((m: any) => m.singularName === modelName);
581
+ if (!model) {
582
+ throw new Error(`Model '${modelName}' not found in module '${moduleName}' metadata. Available models: ${moduleMetadata.models.map((m: any) => m.singularName).join(', ')}`);
583
+ }
584
+
585
+ const options: any = {
586
+ module: moduleName,
587
+ model: modelName,
588
+ table: model.tableName,
589
+ moduleDisplayName: moduleMetadata.displayName,
590
+ dataSource: model.dataSource,
591
+ dataSourceType: model.dataSourceType,
592
+ modelEnableSoftDelete: model.enableSoftDelete,
593
+ draftPublishWorkflowEnabled: model.draftPublishWorkflow,
594
+ isLegacyTable: model.isLegacyTable ?? false,
595
+ isLegacyTableWithId: model.isLegacyTableWithId ?? false,
596
+ fields: model.fields.map((f: any) => JSON.stringify(f)),
597
+ };
598
+
599
+ if (model.isChild && model.parentModelUserKey) {
600
+ options.parentModel = model.parentModelUserKey;
601
+ }
602
+
603
+ return options;
604
+ }
605
+
606
+ export function readFieldOptionsFromMetadata(tree: Tree, moduleName: string, modelName: string, fieldNames: string[]): { fields: string[], modelEnableSoftDelete: boolean, dataSourceType: string } {
607
+ const metadataFilePath = getModuleMetadataFilePath(moduleName);
608
+ if (!tree.exists(metadataFilePath)) {
609
+ throw new Error(`Module metadata file not found at ${metadataFilePath}`);
610
+ }
611
+
612
+ const metadataJson = JSON.parse(tree.readText(metadataFilePath));
613
+ const moduleMetadata = metadataJson.moduleMetadata;
614
+ if (!moduleMetadata || !moduleMetadata.models) {
615
+ throw new Error(`Invalid metadata structure in ${metadataFilePath}: missing moduleMetadata.models`);
616
+ }
617
+
618
+ const model = moduleMetadata.models.find((m: any) => m.singularName === modelName);
619
+ if (!model) {
620
+ throw new Error(`Model '${modelName}' not found in module '${moduleName}' metadata. Available models: ${moduleMetadata.models.map((m: any) => m.singularName).join(', ')}`);
621
+ }
622
+
623
+ const matchedFields: any[] = [];
624
+ const notFound: string[] = [];
625
+ for (const name of fieldNames) {
626
+ const field = model.fields.find((f: any) => f.name === name);
627
+ if (field) {
628
+ matchedFields.push(field);
629
+ } else {
630
+ notFound.push(name);
631
+ }
632
+ }
633
+
634
+ if (notFound.length > 0) {
635
+ throw new Error(`Field(s) not found in model '${modelName}': ${notFound.join(', ')}. Available fields: ${model.fields.map((f: any) => f.name).join(', ')}`);
636
+ }
637
+
638
+ return {
639
+ fields: matchedFields.map((f: any) => JSON.stringify(f)),
640
+ modelEnableSoftDelete: model.enableSoftDelete ?? false,
641
+ dataSourceType: model.dataSourceType,
642
+ };
643
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "properties": {
3
+ "module": {
4
+ "type": "string",
5
+ "description": "The name of the existing module"
6
+ },
7
+ "model": {
8
+ "type": "string",
9
+ "description": "The name of the model within the module"
10
+ }
11
+ },
12
+ "required": [
13
+ "module",
14
+ "model"
15
+ ]
16
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "properties": {
3
+ "module": {
4
+ "type": "string",
5
+ "description": "The name of the module"
6
+ },
7
+ "generateChecksum": {
8
+ "type": "boolean",
9
+ "description": "Whether to generate a checksum for the module",
10
+ "default": false
11
+ }
12
+ },
13
+ "required": ["module"]
14
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "add-module": {
5
+ "description": "Adds a module",
6
+ "factory": "./code-builder/index#addModule",
7
+ "schema": "./code-builder/lib/module/add-module.schema.json"
8
+ },
9
+ "refresh-model": {
10
+ "description": "Adds / Updates model related files within an existing module",
11
+ "factory": "./code-builder/index#refreshModel",
12
+ "schema": "./code-builder/lib/model/refresh-model.schema.json"
13
+ },
14
+ "remove-fields": {
15
+ "description": "Removes fields on an existing model within an existing module",
16
+ "factory": "./code-builder/index#removeFields",
17
+ "schema": "./code-builder/lib/field/remove-fields.schema.json"
18
+ },
19
+ "showAST": {
20
+ "description": "shows the AST of the file",
21
+ "factory": "./code-builder/index#showAST"
22
+ }
23
+ }
24
+ }