@revisium/core 2.5.0-alpha.5 → 2.5.0-alpha.7

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 (360) hide show
  1. package/dist/package.json +9 -4
  2. package/dist/prisma/seed/permissions/update-user.json +5 -0
  3. package/dist/prisma/seed/roles/organizationAdmin.json +1 -0
  4. package/dist/prisma/seed/roles/organizationOwner.json +1 -0
  5. package/dist/prisma/seed/roles/systemAdmin.json +24 -2
  6. package/dist/prisma/sql/countRowChangesBetweenRevisions.sql +68 -0
  7. package/dist/prisma/sql/countTableDiffsBetweenRevisions.sql +23 -13
  8. package/dist/prisma/sql/getRowChangesPaginatedBetweenRevisions.sql +155 -0
  9. package/dist/prisma/sql/getRowChangesStatsBetweenRevisions.sql +54 -0
  10. package/dist/prisma/sql/getTableDiffsPaginatedBetweenRevisions.sql +22 -8
  11. package/dist/prisma/sql/getTableDiffsStatsBetweenRevisions.sql +41 -0
  12. package/dist/src/__generated__/client/internal/class.js +2 -2
  13. package/dist/src/__generated__/client/internal/prismaNamespace.js +2 -2
  14. package/dist/src/__generated__/client/sql/countRowChangesBetweenRevisions.d.ts +8 -0
  15. package/dist/src/__generated__/client/sql/countRowChangesBetweenRevisions.js +39 -0
  16. package/dist/src/__generated__/client/sql/countRowChangesBetweenRevisions.js.map +1 -0
  17. package/dist/src/__generated__/client/sql/countTableDiffsBetweenRevisions.d.ts +2 -2
  18. package/dist/src/__generated__/client/sql/countTableDiffsBetweenRevisions.js +1 -1
  19. package/dist/src/__generated__/client/sql/countTableDiffsBetweenRevisions.js.map +1 -1
  20. package/dist/src/__generated__/client/sql/getRowChangesPaginatedBetweenRevisions.d.ts +46 -0
  21. package/dist/src/__generated__/client/sql/getRowChangesPaginatedBetweenRevisions.js +39 -0
  22. package/dist/src/__generated__/client/sql/getRowChangesPaginatedBetweenRevisions.js.map +1 -0
  23. package/dist/src/__generated__/client/sql/getRowChangesStatsBetweenRevisions.d.ts +12 -0
  24. package/dist/src/__generated__/client/sql/getRowChangesStatsBetweenRevisions.js +39 -0
  25. package/dist/src/__generated__/client/sql/getRowChangesStatsBetweenRevisions.js.map +1 -0
  26. package/dist/src/__generated__/client/sql/getTableDiffsPaginatedBetweenRevisions.d.ts +2 -2
  27. package/dist/src/__generated__/client/sql/getTableDiffsPaginatedBetweenRevisions.js +1 -1
  28. package/dist/src/__generated__/client/sql/getTableDiffsPaginatedBetweenRevisions.js.map +1 -1
  29. package/dist/src/__generated__/client/sql/getTableDiffsStatsBetweenRevisions.d.ts +12 -0
  30. package/dist/src/__generated__/client/sql/getTableDiffsStatsBetweenRevisions.js +39 -0
  31. package/dist/src/__generated__/client/sql/getTableDiffsStatsBetweenRevisions.js.map +1 -0
  32. package/dist/src/__generated__/client/sql.d.ts +4 -0
  33. package/dist/src/__generated__/client/sql.js +4 -0
  34. package/dist/src/__generated__/client/sql.js.map +1 -1
  35. package/dist/src/api/graphql-api/endpoint/endpoint.resolver.d.ts +2 -1
  36. package/dist/src/api/graphql-api/endpoint/endpoint.resolver.js +14 -2
  37. package/dist/src/api/graphql-api/endpoint/endpoint.resolver.js.map +1 -1
  38. package/dist/src/api/graphql-api/endpoint/inputs/get-project-endpoints.input.d.ts +9 -0
  39. package/dist/src/api/graphql-api/endpoint/inputs/get-project-endpoints.input.js +45 -0
  40. package/dist/src/api/graphql-api/endpoint/inputs/get-project-endpoints.input.js.map +1 -0
  41. package/dist/src/api/graphql-api/endpoint/inputs/index.d.ts +1 -0
  42. package/dist/src/api/graphql-api/endpoint/inputs/index.js +1 -0
  43. package/dist/src/api/graphql-api/endpoint/inputs/index.js.map +1 -1
  44. package/dist/src/api/graphql-api/endpoint/model/endpoint.model.d.ts +1 -0
  45. package/dist/src/api/graphql-api/endpoint/model/endpoint.model.js +4 -0
  46. package/dist/src/api/graphql-api/endpoint/model/endpoint.model.js.map +1 -1
  47. package/dist/src/api/graphql-api/endpoint/model/endpoints-connection.model.d.ts +5 -0
  48. package/dist/src/api/graphql-api/endpoint/model/endpoints-connection.model.js +19 -0
  49. package/dist/src/api/graphql-api/endpoint/model/endpoints-connection.model.js.map +1 -0
  50. package/dist/src/api/graphql-api/endpoint/model/index.d.ts +1 -0
  51. package/dist/src/api/graphql-api/endpoint/model/index.js +1 -0
  52. package/dist/src/api/graphql-api/endpoint/model/index.js.map +1 -1
  53. package/dist/src/api/graphql-api/graphql-api.module.js +16 -0
  54. package/dist/src/api/graphql-api/graphql-api.module.js.map +1 -1
  55. package/dist/src/api/graphql-api/organization/model/organization.model.d.ts +6 -0
  56. package/dist/src/api/graphql-api/organization/model/organization.model.js +33 -0
  57. package/dist/src/api/graphql-api/organization/model/organization.model.js.map +1 -0
  58. package/dist/src/api/graphql-api/organization/model/users-organization.model.d.ts +1 -0
  59. package/dist/src/api/graphql-api/organization/model/users-organization.model.js.map +1 -1
  60. package/dist/src/api/graphql-api/organization/organization.resolver.d.ts +6 -2
  61. package/dist/src/api/graphql-api/organization/organization.resolver.js +21 -3
  62. package/dist/src/api/graphql-api/organization/organization.resolver.js.map +1 -1
  63. package/dist/src/api/graphql-api/organization/users-organization.resolver.d.ts +7 -0
  64. package/dist/src/api/graphql-api/organization/users-organization.resolver.js +40 -0
  65. package/dist/src/api/graphql-api/organization/users-organization.resolver.js.map +1 -0
  66. package/dist/src/api/graphql-api/permission/model/permission.model.d.ts +6 -0
  67. package/dist/src/api/graphql-api/permission/model/permission.model.js +37 -0
  68. package/dist/src/api/graphql-api/permission/model/permission.model.js.map +1 -0
  69. package/dist/src/api/graphql-api/project/inputs/index.d.ts +1 -0
  70. package/dist/src/api/graphql-api/project/inputs/index.js +1 -0
  71. package/dist/src/api/graphql-api/project/inputs/index.js.map +1 -1
  72. package/dist/src/api/graphql-api/project/inputs/update-user-project-role.input.d.ts +7 -0
  73. package/dist/src/api/graphql-api/project/inputs/update-user-project-role.input.js +37 -0
  74. package/dist/src/api/graphql-api/project/inputs/update-user-project-role.input.js.map +1 -0
  75. package/dist/src/api/graphql-api/project/model/project.model.d.ts +4 -0
  76. package/dist/src/api/graphql-api/project/model/project.model.js +10 -0
  77. package/dist/src/api/graphql-api/project/model/project.model.js.map +1 -1
  78. package/dist/src/api/graphql-api/project/model/users-project.model.d.ts +1 -0
  79. package/dist/src/api/graphql-api/project/model/users-project.model.js.map +1 -1
  80. package/dist/src/api/graphql-api/project/project.resolver.d.ts +13 -2
  81. package/dist/src/api/graphql-api/project/project.resolver.js +50 -2
  82. package/dist/src/api/graphql-api/project/project.resolver.js.map +1 -1
  83. package/dist/src/api/graphql-api/project/users-project.resolver.d.ts +7 -0
  84. package/dist/src/api/graphql-api/project/users-project.resolver.js +46 -0
  85. package/dist/src/api/graphql-api/project/users-project.resolver.js.map +1 -0
  86. package/dist/src/api/graphql-api/revision/model/revision.model.d.ts +2 -0
  87. package/dist/src/api/graphql-api/revision/model/revision.model.js +5 -0
  88. package/dist/src/api/graphql-api/revision/model/revision.model.js.map +1 -1
  89. package/dist/src/api/graphql-api/revision/revision.resolver.d.ts +4 -1
  90. package/dist/src/api/graphql-api/revision/revision.resolver.js +17 -2
  91. package/dist/src/api/graphql-api/revision/revision.resolver.js.map +1 -1
  92. package/dist/src/api/graphql-api/revision-changes/input/get-revision-changes.input.d.ts +5 -0
  93. package/dist/src/api/graphql-api/revision-changes/input/get-revision-changes.input.js +32 -0
  94. package/dist/src/api/graphql-api/revision-changes/input/get-revision-changes.input.js.map +1 -0
  95. package/dist/src/api/graphql-api/revision-changes/input/get-row-changes.input.d.ts +8 -0
  96. package/dist/src/api/graphql-api/revision-changes/input/get-row-changes.input.js +41 -0
  97. package/dist/src/api/graphql-api/revision-changes/input/get-row-changes.input.js.map +1 -0
  98. package/dist/src/api/graphql-api/revision-changes/input/get-table-changes.input.d.ts +8 -0
  99. package/dist/src/api/graphql-api/revision-changes/input/get-table-changes.input.js +41 -0
  100. package/dist/src/api/graphql-api/revision-changes/input/get-table-changes.input.js.map +1 -0
  101. package/dist/src/api/graphql-api/revision-changes/input/index.d.ts +5 -0
  102. package/dist/src/api/graphql-api/revision-changes/input/index.js +22 -0
  103. package/dist/src/api/graphql-api/revision-changes/input/index.js.map +1 -0
  104. package/dist/src/api/graphql-api/revision-changes/input/row-changes-filters.input.d.ts +7 -0
  105. package/dist/src/api/graphql-api/revision-changes/input/row-changes-filters.input.js +37 -0
  106. package/dist/src/api/graphql-api/revision-changes/input/row-changes-filters.input.js.map +1 -0
  107. package/dist/src/api/graphql-api/revision-changes/input/table-changes-filters.input.d.ts +7 -0
  108. package/dist/src/api/graphql-api/revision-changes/input/table-changes-filters.input.js +37 -0
  109. package/dist/src/api/graphql-api/revision-changes/input/table-changes-filters.input.js.map +1 -0
  110. package/dist/src/api/graphql-api/revision-changes/model/enums.model.d.ts +26 -0
  111. package/dist/src/api/graphql-api/revision-changes/model/enums.model.js +39 -0
  112. package/dist/src/api/graphql-api/revision-changes/model/enums.model.js.map +1 -0
  113. package/dist/src/api/graphql-api/revision-changes/model/field-change.model.d.ts +12 -0
  114. package/dist/src/api/graphql-api/revision-changes/model/field-change.model.js +56 -0
  115. package/dist/src/api/graphql-api/revision-changes/model/field-change.model.js.map +1 -0
  116. package/dist/src/api/graphql-api/revision-changes/model/index.d.ts +6 -0
  117. package/dist/src/api/graphql-api/revision-changes/model/index.js +23 -0
  118. package/dist/src/api/graphql-api/revision-changes/model/index.js.map +1 -0
  119. package/dist/src/api/graphql-api/revision-changes/model/revision-changes.model.d.ts +14 -0
  120. package/dist/src/api/graphql-api/revision-changes/model/revision-changes.model.js +66 -0
  121. package/dist/src/api/graphql-api/revision-changes/model/revision-changes.model.js.map +1 -0
  122. package/dist/src/api/graphql-api/revision-changes/model/row-change.model.d.ts +56 -0
  123. package/dist/src/api/graphql-api/revision-changes/model/row-change.model.js +227 -0
  124. package/dist/src/api/graphql-api/revision-changes/model/row-change.model.js.map +1 -0
  125. package/dist/src/api/graphql-api/revision-changes/model/schema-change.model.d.ts +34 -0
  126. package/dist/src/api/graphql-api/revision-changes/model/schema-change.model.js +138 -0
  127. package/dist/src/api/graphql-api/revision-changes/model/schema-change.model.js.map +1 -0
  128. package/dist/src/api/graphql-api/revision-changes/model/table-change.model.d.ts +21 -0
  129. package/dist/src/api/graphql-api/revision-changes/model/table-change.model.js +81 -0
  130. package/dist/src/api/graphql-api/revision-changes/model/table-change.model.js.map +1 -0
  131. package/dist/src/api/graphql-api/revision-changes/revision-changes.resolver.d.ts +10 -0
  132. package/dist/src/api/graphql-api/revision-changes/revision-changes.resolver.js +88 -0
  133. package/dist/src/api/graphql-api/revision-changes/revision-changes.resolver.js.map +1 -0
  134. package/dist/src/api/graphql-api/role/model/role.model.d.ts +2 -0
  135. package/dist/src/api/graphql-api/role/model/role.model.js +5 -0
  136. package/dist/src/api/graphql-api/role/model/role.model.js.map +1 -1
  137. package/dist/src/api/graphql-api/role/role.resolver.d.ts +7 -0
  138. package/dist/src/api/graphql-api/role/role.resolver.js +40 -0
  139. package/dist/src/api/graphql-api/role/role.resolver.js.map +1 -0
  140. package/dist/src/api/graphql-api/user/inputs/index.d.ts +1 -0
  141. package/dist/src/api/graphql-api/user/inputs/index.js +1 -0
  142. package/dist/src/api/graphql-api/user/inputs/index.js.map +1 -1
  143. package/dist/src/api/graphql-api/user/inputs/search-users.input.d.ts +5 -0
  144. package/dist/src/api/graphql-api/user/inputs/search-users.input.js +32 -0
  145. package/dist/src/api/graphql-api/user/inputs/search-users.input.js.map +1 -0
  146. package/dist/src/api/graphql-api/user/model/user.model.d.ts +3 -0
  147. package/dist/src/api/graphql-api/user/model/user.model.js +5 -0
  148. package/dist/src/api/graphql-api/user/model/user.model.js.map +1 -1
  149. package/dist/src/api/graphql-api/user/model/users.connection.d.ts +5 -0
  150. package/dist/src/api/graphql-api/user/model/users.connection.js +19 -0
  151. package/dist/src/api/graphql-api/user/model/users.connection.js.map +1 -0
  152. package/dist/src/api/graphql-api/user/user.resolver.d.ts +8 -4
  153. package/dist/src/api/graphql-api/user/user.resolver.js +35 -3
  154. package/dist/src/api/graphql-api/user/user.resolver.js.map +1 -1
  155. package/dist/src/core/core.module.js +2 -0
  156. package/dist/src/core/core.module.js.map +1 -1
  157. package/dist/src/features/auth/commands/handlers/check-project-permission.handler.d.ts +1 -0
  158. package/dist/src/features/auth/commands/handlers/check-project-permission.handler.js +8 -0
  159. package/dist/src/features/auth/commands/handlers/check-project-permission.handler.js.map +1 -1
  160. package/dist/src/features/auth/commands/impl/check-project-permission.command.d.ts +4 -0
  161. package/dist/src/features/auth/commands/impl/check-project-permission.command.js.map +1 -1
  162. package/dist/src/features/auth/guards/project.guard.d.ts +14 -0
  163. package/dist/src/features/auth/guards/project.guard.js +7 -0
  164. package/dist/src/features/auth/guards/project.guard.js.map +1 -1
  165. package/dist/src/features/endpoint/queries/handlers/get-project-endpoints.handler.d.ts +12 -0
  166. package/dist/src/features/endpoint/queries/handlers/get-project-endpoints.handler.js +77 -0
  167. package/dist/src/features/endpoint/queries/handlers/get-project-endpoints.handler.js.map +1 -0
  168. package/dist/src/features/endpoint/queries/handlers/index.d.ts +2 -1
  169. package/dist/src/features/endpoint/queries/handlers/index.js +2 -0
  170. package/dist/src/features/endpoint/queries/handlers/index.js.map +1 -1
  171. package/dist/src/features/endpoint/queries/impl/get-project-endpoints.query.d.ts +20 -0
  172. package/dist/src/features/endpoint/queries/impl/get-project-endpoints.query.js +10 -0
  173. package/dist/src/features/endpoint/queries/impl/get-project-endpoints.query.js.map +1 -0
  174. package/dist/src/features/endpoint/queries/impl/index.d.ts +1 -0
  175. package/dist/src/features/endpoint/queries/impl/index.js +1 -0
  176. package/dist/src/features/endpoint/queries/impl/index.js.map +1 -1
  177. package/dist/src/features/organization/organization-api.service.d.ts +10 -0
  178. package/dist/src/features/organization/organization-api.service.js +29 -0
  179. package/dist/src/features/organization/organization-api.service.js.map +1 -0
  180. package/dist/src/features/organization/organization.module.js +7 -1
  181. package/dist/src/features/organization/organization.module.js.map +1 -1
  182. package/dist/src/features/organization/queries/handlers/get-organization.handler.d.ts +11 -0
  183. package/dist/src/features/organization/queries/handlers/get-organization.handler.js +33 -0
  184. package/dist/src/features/organization/queries/handlers/get-organization.handler.js.map +1 -0
  185. package/dist/src/features/organization/queries/handlers/index.d.ts +1 -0
  186. package/dist/src/features/organization/queries/handlers/index.js +1 -0
  187. package/dist/src/features/organization/queries/handlers/index.js.map +1 -1
  188. package/dist/src/features/organization/queries/impl/get-organization.query.d.ts +11 -0
  189. package/dist/src/features/organization/queries/impl/get-organization.query.js +10 -0
  190. package/dist/src/features/organization/queries/impl/get-organization.query.js.map +1 -0
  191. package/dist/src/features/organization/queries/impl/index.d.ts +1 -0
  192. package/dist/src/features/organization/queries/impl/index.js +1 -0
  193. package/dist/src/features/organization/queries/impl/index.js.map +1 -1
  194. package/dist/src/features/organization/queries/index.d.ts +2 -1
  195. package/dist/src/features/organization/queries/index.js +2 -0
  196. package/dist/src/features/organization/queries/index.js.map +1 -1
  197. package/dist/src/features/project/commands/handlers/index.d.ts +2 -1
  198. package/dist/src/features/project/commands/handlers/index.js +2 -0
  199. package/dist/src/features/project/commands/handlers/index.js.map +1 -1
  200. package/dist/src/features/project/commands/handlers/update-user-project-role.handler.d.ts +9 -0
  201. package/dist/src/features/project/commands/handlers/update-user-project-role.handler.js +65 -0
  202. package/dist/src/features/project/commands/handlers/update-user-project-role.handler.js.map +1 -0
  203. package/dist/src/features/project/commands/impl/index.d.ts +1 -0
  204. package/dist/src/features/project/commands/impl/index.js +1 -0
  205. package/dist/src/features/project/commands/impl/index.js.map +1 -1
  206. package/dist/src/features/project/commands/impl/update-user-project-role.command.d.ts +15 -0
  207. package/dist/src/features/project/commands/impl/update-user-project-role.command.js +10 -0
  208. package/dist/src/features/project/commands/impl/update-user-project-role.command.js.map +1 -0
  209. package/dist/src/features/revision-changes/mappers/row-change.mapper.d.ts +13 -0
  210. package/dist/src/features/revision-changes/mappers/row-change.mapper.js +111 -0
  211. package/dist/src/features/revision-changes/mappers/row-change.mapper.js.map +1 -0
  212. package/dist/src/features/revision-changes/mappers/table-change.mapper.d.ts +19 -0
  213. package/dist/src/features/revision-changes/mappers/table-change.mapper.js +73 -0
  214. package/dist/src/features/revision-changes/mappers/table-change.mapper.js.map +1 -0
  215. package/dist/src/features/revision-changes/queries/handlers/get-revision-changes.handler.d.ts +14 -0
  216. package/dist/src/features/revision-changes/queries/handlers/get-revision-changes.handler.js +68 -0
  217. package/dist/src/features/revision-changes/queries/handlers/get-revision-changes.handler.js.map +1 -0
  218. package/dist/src/features/revision-changes/queries/handlers/get-row-changes.handler.d.ts +23 -0
  219. package/dist/src/features/revision-changes/queries/handlers/get-row-changes.handler.js +141 -0
  220. package/dist/src/features/revision-changes/queries/handlers/get-row-changes.handler.js.map +1 -0
  221. package/dist/src/features/revision-changes/queries/handlers/get-table-changes.handler.d.ts +17 -0
  222. package/dist/src/features/revision-changes/queries/handlers/get-table-changes.handler.js +78 -0
  223. package/dist/src/features/revision-changes/queries/handlers/get-table-changes.handler.js.map +1 -0
  224. package/dist/src/features/revision-changes/queries/handlers/index.d.ts +3 -0
  225. package/dist/src/features/revision-changes/queries/handlers/index.js +20 -0
  226. package/dist/src/features/revision-changes/queries/handlers/index.js.map +1 -0
  227. package/dist/src/features/revision-changes/queries/impl/get-revision-changes.query.d.ts +15 -0
  228. package/dist/src/features/revision-changes/queries/impl/get-revision-changes.query.js +10 -0
  229. package/dist/src/features/revision-changes/queries/impl/get-revision-changes.query.js.map +1 -0
  230. package/dist/src/features/revision-changes/queries/impl/get-row-changes.query.d.ts +20 -0
  231. package/dist/src/features/revision-changes/queries/impl/get-row-changes.query.js +10 -0
  232. package/dist/src/features/revision-changes/queries/impl/get-row-changes.query.js.map +1 -0
  233. package/dist/src/features/revision-changes/queries/impl/get-table-changes.query.d.ts +20 -0
  234. package/dist/src/features/revision-changes/queries/impl/get-table-changes.query.js +10 -0
  235. package/dist/src/features/revision-changes/queries/impl/get-table-changes.query.js.map +1 -0
  236. package/dist/src/features/revision-changes/queries/impl/index.d.ts +3 -0
  237. package/dist/src/features/revision-changes/queries/impl/index.js +20 -0
  238. package/dist/src/features/revision-changes/queries/impl/index.js.map +1 -0
  239. package/dist/src/features/revision-changes/revision-changes-api.service.d.ts +9 -0
  240. package/dist/src/features/revision-changes/revision-changes-api.service.js +35 -0
  241. package/dist/src/features/revision-changes/revision-changes-api.service.js.map +1 -0
  242. package/dist/src/features/revision-changes/revision-changes.module.d.ts +2 -0
  243. package/dist/src/features/revision-changes/revision-changes.module.js +46 -0
  244. package/dist/src/features/revision-changes/revision-changes.module.js.map +1 -0
  245. package/dist/src/features/revision-changes/services/index.d.ts +3 -0
  246. package/dist/src/features/revision-changes/services/index.js +20 -0
  247. package/dist/src/features/revision-changes/services/index.js.map +1 -0
  248. package/dist/src/features/revision-changes/services/revision-comparison.service.d.ts +12 -0
  249. package/dist/src/features/revision-changes/services/revision-comparison.service.js +99 -0
  250. package/dist/src/features/revision-changes/services/revision-comparison.service.js.map +1 -0
  251. package/dist/src/features/revision-changes/services/row-diff.service.d.ts +9 -0
  252. package/dist/src/features/revision-changes/services/row-diff.service.js +140 -0
  253. package/dist/src/features/revision-changes/services/row-diff.service.js.map +1 -0
  254. package/dist/src/features/revision-changes/services/schema-impact.service.d.ts +11 -0
  255. package/dist/src/features/revision-changes/services/schema-impact.service.js +136 -0
  256. package/dist/src/features/revision-changes/services/schema-impact.service.js.map +1 -0
  257. package/dist/src/features/revision-changes/types/enums.d.ts +26 -0
  258. package/dist/src/features/revision-changes/types/enums.js +34 -0
  259. package/dist/src/features/revision-changes/types/enums.js.map +1 -0
  260. package/dist/src/features/revision-changes/types/field-change.types.d.ts +12 -0
  261. package/dist/src/features/revision-changes/types/field-change.types.js +3 -0
  262. package/dist/src/features/revision-changes/types/field-change.types.js.map +1 -0
  263. package/dist/src/features/revision-changes/types/filters.types.d.ts +13 -0
  264. package/dist/src/features/revision-changes/types/filters.types.js +3 -0
  265. package/dist/src/features/revision-changes/types/filters.types.js.map +1 -0
  266. package/dist/src/features/revision-changes/types/index.d.ts +7 -0
  267. package/dist/src/features/revision-changes/types/index.js +24 -0
  268. package/dist/src/features/revision-changes/types/index.js.map +1 -0
  269. package/dist/src/features/revision-changes/types/revision-changes.types.d.ts +14 -0
  270. package/dist/src/features/revision-changes/types/revision-changes.types.js +3 -0
  271. package/dist/src/features/revision-changes/types/revision-changes.types.js.map +1 -0
  272. package/dist/src/features/revision-changes/types/row-change.types.d.ts +31 -0
  273. package/dist/src/features/revision-changes/types/row-change.types.js +11 -0
  274. package/dist/src/features/revision-changes/types/row-change.types.js.map +1 -0
  275. package/dist/src/features/revision-changes/types/schema-change.types.d.ts +40 -0
  276. package/dist/src/features/revision-changes/types/schema-change.types.js +11 -0
  277. package/dist/src/features/revision-changes/types/schema-change.types.js.map +1 -0
  278. package/dist/src/features/revision-changes/types/table-change.types.d.ts +17 -0
  279. package/dist/src/features/revision-changes/types/table-change.types.js +3 -0
  280. package/dist/src/features/revision-changes/types/table-change.types.js.map +1 -0
  281. package/dist/src/features/revision-changes/utils/empty-responses.d.ts +4 -0
  282. package/dist/src/features/revision-changes/utils/empty-responses.js +36 -0
  283. package/dist/src/features/revision-changes/utils/empty-responses.js.map +1 -0
  284. package/dist/src/features/role/queries/handlers/get-role-permissions.handler.d.ts +14 -0
  285. package/dist/src/features/role/queries/handlers/get-role-permissions.handler.js +37 -0
  286. package/dist/src/features/role/queries/handlers/get-role-permissions.handler.js.map +1 -0
  287. package/dist/src/features/role/queries/handlers/get-role.handler.d.ts +14 -0
  288. package/dist/src/features/role/queries/handlers/get-role.handler.js +33 -0
  289. package/dist/src/features/role/queries/handlers/get-role.handler.js.map +1 -0
  290. package/dist/src/features/role/queries/handlers/index.d.ts +2 -0
  291. package/dist/src/features/role/queries/handlers/index.js +19 -0
  292. package/dist/src/features/role/queries/handlers/index.js.map +1 -0
  293. package/dist/src/features/role/queries/impl/get-role-permissions.query.d.ts +11 -0
  294. package/dist/src/features/role/queries/impl/get-role-permissions.query.js +10 -0
  295. package/dist/src/features/role/queries/impl/get-role-permissions.query.js.map +1 -0
  296. package/dist/src/features/role/queries/impl/get-role.query.d.ts +11 -0
  297. package/dist/src/features/role/queries/impl/get-role.query.js +10 -0
  298. package/dist/src/features/role/queries/impl/get-role.query.js.map +1 -0
  299. package/dist/src/features/role/queries/impl/index.d.ts +2 -0
  300. package/dist/src/features/role/queries/impl/index.js +19 -0
  301. package/dist/src/features/role/queries/impl/index.js.map +1 -0
  302. package/dist/src/features/role/queries/index.d.ts +3 -0
  303. package/dist/src/features/role/queries/index.js +7 -0
  304. package/dist/src/features/role/queries/index.js.map +1 -0
  305. package/dist/src/features/role/role-api.service.d.ts +7 -0
  306. package/dist/src/features/role/role-api.service.js +29 -0
  307. package/dist/src/features/role/role-api.service.js.map +1 -0
  308. package/dist/src/features/role/role.module.d.ts +2 -0
  309. package/dist/src/features/role/role.module.js +25 -0
  310. package/dist/src/features/role/role.module.js.map +1 -0
  311. package/dist/src/features/row/queries/handlers/search-rows.handler.js.map +1 -1
  312. package/dist/src/features/share/commands/handlers/transactional/move-endpoints.handler.d.ts +1 -0
  313. package/dist/src/features/share/commands/handlers/transactional/move-endpoints.handler.js +7 -1
  314. package/dist/src/features/share/commands/handlers/transactional/move-endpoints.handler.js.map +1 -1
  315. package/dist/src/features/share/diff.service.d.ts +19 -2
  316. package/dist/src/features/share/diff.service.js +30 -3
  317. package/dist/src/features/share/diff.service.js.map +1 -1
  318. package/dist/src/features/user/queries/handlers/deprecated-get-owned-user-organization.handler.d.ts +14 -0
  319. package/dist/src/features/user/queries/handlers/deprecated-get-owned-user-organization.handler.js +35 -0
  320. package/dist/src/features/user/queries/handlers/deprecated-get-owned-user-organization.handler.js.map +1 -0
  321. package/dist/src/features/user/queries/handlers/get-user-organization.handler.d.ts +9 -3
  322. package/dist/src/features/user/queries/handlers/get-user-organization.handler.js +6 -9
  323. package/dist/src/features/user/queries/handlers/get-user-organization.handler.js.map +1 -1
  324. package/dist/src/features/user/queries/handlers/get-user-project.handler.d.ts +14 -0
  325. package/dist/src/features/user/queries/handlers/get-user-project.handler.js +36 -0
  326. package/dist/src/features/user/queries/handlers/get-user-project.handler.js.map +1 -0
  327. package/dist/src/features/user/queries/handlers/get-user.handler.d.ts +1 -0
  328. package/dist/src/features/user/queries/handlers/get-user.handler.js +1 -0
  329. package/dist/src/features/user/queries/handlers/get-user.handler.js.map +1 -1
  330. package/dist/src/features/user/queries/handlers/index.d.ts +5 -1
  331. package/dist/src/features/user/queries/handlers/index.js +5 -1
  332. package/dist/src/features/user/queries/handlers/index.js.map +1 -1
  333. package/dist/src/features/user/queries/handlers/search-users.handler.d.ts +15 -0
  334. package/dist/src/features/user/queries/handlers/search-users.handler.js +61 -0
  335. package/dist/src/features/user/queries/handlers/search-users.handler.js.map +1 -0
  336. package/dist/src/features/user/queries/impl/deprecated-get-owned-user-organization.query.d.ts +11 -0
  337. package/dist/src/features/user/queries/impl/deprecated-get-owned-user-organization.query.js +10 -0
  338. package/dist/src/features/user/queries/impl/deprecated-get-owned-user-organization.query.js.map +1 -0
  339. package/dist/src/features/user/queries/impl/get-user-organization.query.d.ts +5 -1
  340. package/dist/src/features/user/queries/impl/get-user-organization.query.js.map +1 -1
  341. package/dist/src/features/user/queries/impl/get-user-project.query.d.ts +13 -0
  342. package/dist/src/features/user/queries/impl/get-user-project.query.js +10 -0
  343. package/dist/src/features/user/queries/impl/get-user-project.query.js.map +1 -0
  344. package/dist/src/features/user/queries/impl/get-user.query.d.ts +1 -1
  345. package/dist/src/features/user/queries/impl/index.d.ts +3 -0
  346. package/dist/src/features/user/queries/impl/index.js +3 -0
  347. package/dist/src/features/user/queries/impl/index.js.map +1 -1
  348. package/dist/src/features/user/queries/impl/search-users.query.d.ts +15 -0
  349. package/dist/src/features/user/queries/impl/search-users.query.js +10 -0
  350. package/dist/src/features/user/queries/impl/search-users.query.js.map +1 -0
  351. package/dist/src/features/user/queries/index.d.ts +2 -2
  352. package/dist/src/features/user/queries/index.js +4 -1
  353. package/dist/src/features/user/queries/index.js.map +1 -1
  354. package/dist/src/features/user/user-api.service.d.ts +9 -0
  355. package/dist/src/features/user/user-api.service.js +35 -0
  356. package/dist/src/features/user/user-api.service.js.map +1 -0
  357. package/dist/src/features/user/user.module.js +3 -1
  358. package/dist/src/features/user/user.module.js.map +1 -1
  359. package/dist/tsconfig.build.tsbuildinfo +1 -1
  360. package/package.json +9 -4
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revisium/core",
3
- "version": "2.5.0-alpha.5",
3
+ "version": "2.5.0-alpha.7",
4
4
  "description": "Revisium is a tool (UI/API) inspired by JSON (JSON Schema) and Git, designed to provide a flexible and low-level headless CMS solution.",
5
5
  "private": false,
6
6
  "homepage": "https://revisium.io",
@@ -66,8 +66,8 @@
66
66
  "@nestjs/serve-static": "^5.0.4",
67
67
  "@nestjs/swagger": "^11.2.3",
68
68
  "@nestjs/terminus": "^11.0.0",
69
- "@prisma/adapter-pg": "^7.0.0",
70
- "@prisma/client": "^7.0.0",
69
+ "@prisma/adapter-pg": "^7.0.1",
70
+ "@prisma/client": "^7.0.1",
71
71
  "@revisium/prisma-pg-json": "^1.0.1",
72
72
  "@revisium/schema-toolkit": "^0.2.2",
73
73
  "ajv": "^8.17.1",
@@ -77,6 +77,7 @@
77
77
  "class-transformer": "^0.5.1",
78
78
  "class-validator": "^0.14.2",
79
79
  "dotenv": "^17.2.3",
80
+ "fast-json-patch": "^3.1.1",
80
81
  "graphql": "^16.12.0",
81
82
  "graphql-scalars": "^1.24.2",
82
83
  "handlebars": "^4.7.8",
@@ -119,7 +120,7 @@
119
120
  "jest": "^29.7.0",
120
121
  "jest-mock-extended": "^3.0.7",
121
122
  "prettier": "^3.5.3",
122
- "prisma": "^7.0.0",
123
+ "prisma": "^7.0.1",
123
124
  "shx": "^0.4.0",
124
125
  "source-map-support": "^0.5.21",
125
126
  "supertest": "^7.1.4",
@@ -132,6 +133,10 @@
132
133
  "typescript": "^5.8.3",
133
134
  "typescript-eslint": "^8.32.1"
134
135
  },
136
+ "overrides": {
137
+ "hono": "^4.10.3",
138
+ "valibot": "^1.2.0"
139
+ },
135
140
  "jest": {
136
141
  "modulePaths": [
137
142
  "<rootDir>"
@@ -0,0 +1,5 @@
1
+ {
2
+ "action": "update",
3
+ "subject": "User",
4
+ "condition": {}
5
+ }
@@ -18,6 +18,7 @@
18
18
  "create-endpoint",
19
19
  "delete-endpoint",
20
20
  "add-user",
21
+ "update-user",
21
22
  "delete-user",
22
23
  "read-user",
23
24
  "read-project-private",
@@ -20,6 +20,7 @@
20
20
  "create-endpoint",
21
21
  "delete-endpoint",
22
22
  "add-user",
23
+ "update-user",
23
24
  "delete-user",
24
25
  "read-user",
25
26
  "read-project-private",
@@ -3,6 +3,28 @@
3
3
  "level": "System",
4
4
  "permissions": [
5
5
  "read-organization",
6
- "create-user"
6
+ "update-organization",
7
+ "delete-organization",
8
+ "create-project",
9
+ "update-project",
10
+ "delete-project",
11
+ "create-branch",
12
+ "create-revision",
13
+ "revert-revision",
14
+ "create-table",
15
+ "update-table",
16
+ "delete-table",
17
+ "create-row",
18
+ "update-row",
19
+ "delete-row",
20
+ "create-endpoint",
21
+ "delete-endpoint",
22
+ "add-user",
23
+ "create-user",
24
+ "update-user",
25
+ "delete-user",
26
+ "read-user",
27
+ "read-project-private",
28
+ "read-project-public"
7
29
  ]
8
- }
30
+ }
@@ -0,0 +1,68 @@
1
+ -- @param {String} $1:fromRevisionId
2
+ -- @param {String} $2:toRevisionId
3
+ -- @param {String} $3:tableCreatedId (optional, NULL for all tables)
4
+ -- @param {String} $4:searchTerm (optional, for searching by rowId, NULL to disable)
5
+ -- @param {Json} $5:changeTypes (optional, array of change types to filter, NULL for all)
6
+ -- @param {Boolean} $6:includeSystem (optional, whether to include system tables, default FALSE)
7
+
8
+ WITH parent_rows AS (
9
+ SELECT
10
+ r."id",
11
+ r."createdId",
12
+ r."hash",
13
+ r."schemaHash"
14
+ FROM "Row" r
15
+ INNER JOIN "_RowToTable" rt ON r."versionId" = rt."A"
16
+ INNER JOIN "Table" t ON t."versionId" = rt."B"
17
+ INNER JOIN "_RevisionToTable" revt ON t."versionId" = revt."B"
18
+ WHERE revt."A" = $1
19
+ AND ($3::text IS NULL OR t."createdId" = $3)
20
+ AND ($6::boolean IS TRUE OR t."system" = FALSE)
21
+ ),
22
+ child_rows AS (
23
+ SELECT
24
+ r."id",
25
+ r."createdId",
26
+ r."hash",
27
+ r."schemaHash"
28
+ FROM "Row" r
29
+ INNER JOIN "_RowToTable" rt ON r."versionId" = rt."A"
30
+ INNER JOIN "Table" t ON t."versionId" = rt."B"
31
+ INNER JOIN "_RevisionToTable" revt ON t."versionId" = revt."B"
32
+ WHERE revt."A" = $2
33
+ AND ($3::text IS NULL OR t."createdId" = $3)
34
+ AND ($6::boolean IS TRUE OR t."system" = FALSE)
35
+ ),
36
+ all_changes AS (
37
+ SELECT
38
+ CASE
39
+ WHEN pr."createdId" IS NULL THEN 'ADDED'
40
+ WHEN cr."createdId" IS NULL THEN 'REMOVED'
41
+ WHEN pr."id" != cr."id" AND cr."hash" != pr."hash" THEN 'RENAMED_AND_MODIFIED'
42
+ WHEN pr."id" != cr."id" THEN 'RENAMED'
43
+ WHEN cr."hash" != pr."hash" THEN 'MODIFIED'
44
+ END AS "changeType",
45
+ pr."id" AS "fromRowId",
46
+ cr."id" AS "toRowId"
47
+ FROM child_rows cr
48
+ FULL OUTER JOIN parent_rows pr USING ("createdId")
49
+ WHERE
50
+ (pr."createdId" IS NULL OR
51
+ cr."createdId" IS NULL OR
52
+ pr."id" != cr."id" OR
53
+ cr."hash" != pr."hash")
54
+ )
55
+ SELECT
56
+ COUNT(*) AS "count"
57
+ FROM all_changes
58
+ WHERE
59
+ ($4::text IS NULL OR
60
+ "fromRowId" ILIKE '%' || $4 || '%' OR
61
+ "toRowId" ILIKE '%' || $4 || '%')
62
+ AND ($5::jsonb IS NULL OR (
63
+ "changeType" = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))
64
+ OR ("changeType" = 'RENAMED_AND_MODIFIED' AND (
65
+ 'RENAMED' = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))
66
+ OR 'MODIFIED' = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))
67
+ ))
68
+ ))
@@ -1,26 +1,36 @@
1
1
  -- @param {String} $1:fromRevisionId The id of the revision
2
2
  -- @param {String} $2:toRevisionId The id of the revision
3
+ -- @param {Json} $3:changeTypes (optional, array of change types to filter, NULL for all)
4
+ -- @param {Boolean} $4:includeSystem Whether to include system tables (default false)
3
5
 
4
6
  WITH parent_tables AS (SELECT "id", "createdId", "versionId"
5
7
  FROM "Table"
6
- WHERE ("public"."Table"."versionId") IN (SELECT "t1"."B"
7
- FROM "public"."_RevisionToTable" AS "t1"
8
- INNER JOIN "public"."Revision" AS "j1" ON ("j1"."id") = ("t1"."A")
9
- WHERE ("j1"."id" = $1 AND "t1"."B" IS NOT NULL))),
8
+ WHERE ("Table"."versionId") IN (SELECT "t1"."B"
9
+ FROM "_RevisionToTable" AS "t1"
10
+ INNER JOIN "Revision" AS "j1" ON ("j1"."id") = ("t1"."A")
11
+ WHERE ("j1"."id" = $1 AND "t1"."B" IS NOT NULL))
12
+ AND ($4::boolean IS TRUE OR "Table"."system" = FALSE)),
10
13
  child_tables AS (SELECT "id", "createdId", "versionId"
11
14
  FROM "Table"
12
- WHERE ("public"."Table"."versionId") IN (SELECT "t1"."B"
13
- FROM "public"."_RevisionToTable" AS "t1"
14
- INNER JOIN "public"."Revision" AS "j1" ON ("j1"."id") = ("t1"."A")
15
- WHERE ("j1"."id" = $2 AND "t1"."B" IS NOT NULL)))
15
+ WHERE ("Table"."versionId") IN (SELECT "t1"."B"
16
+ FROM "_RevisionToTable" AS "t1"
17
+ INNER JOIN "Revision" AS "j1" ON ("j1"."id") = ("t1"."A")
18
+ WHERE ("j1"."id" = $2 AND "t1"."B" IS NOT NULL))
19
+ AND ($4::boolean IS TRUE OR "Table"."system" = FALSE))
16
20
  SELECT COUNT(*) ::integer AS count
17
21
  FROM
18
22
  child_tables ct
19
23
  FULL OUTER JOIN parent_tables pt USING ("createdId")
20
24
  WHERE
21
- pt."createdId" IS NULL
22
- OR
23
- ct."createdId" IS NULL
24
- OR
25
- ct."versionId" != pt."versionId"
25
+ (pt."createdId" IS NULL
26
+ OR ct."createdId" IS NULL
27
+ OR pt."id" != ct."id"
28
+ OR ct."versionId" != pt."versionId")
29
+ AND ($3::jsonb IS NULL OR LOWER(CASE
30
+ WHEN pt."createdId" IS NULL THEN 'added'
31
+ WHEN ct."createdId" IS NULL THEN 'removed'
32
+ WHEN pt."id" != ct."id" AND ct."versionId" != pt."versionId" THEN 'renamed_and_modified'
33
+ WHEN pt."id" != ct."id" THEN 'renamed'
34
+ WHEN ct."versionId" != pt."versionId" THEN 'modified'
35
+ END) = ANY(ARRAY(SELECT LOWER(jsonb_array_elements_text($3::jsonb)))))
26
36
 
@@ -0,0 +1,155 @@
1
+ -- @param {String} $1:fromRevisionId
2
+ -- @param {String} $2:toRevisionId
3
+ -- @param {String} $3:tableCreatedId (optional, for filtering, NULL for all tables)
4
+ -- @param {String} $4:searchTerm (optional, for searching by rowId, NULL to disable)
5
+ -- @param {Json} $5:changeTypes (optional, array of change types to filter, NULL for all)
6
+ -- @param {Int} $6:limit
7
+ -- @param {Int} $7:offset
8
+ -- @param {Boolean} $8:includeSystem (optional, whether to include system tables, default FALSE)
9
+
10
+ WITH parent_rows AS (
11
+ SELECT
12
+ -- Row fields
13
+ r."id" AS "rowId",
14
+ r."createdId" AS "rowCreatedId",
15
+ r."versionId" AS "rowVersionId",
16
+ r."data",
17
+ r."hash",
18
+ r."schemaHash",
19
+ r."readonly",
20
+ r."meta",
21
+ r."createdAt" AS "rowCreatedAt",
22
+ r."updatedAt" AS "rowUpdatedAt",
23
+ r."publishedAt" AS "rowPublishedAt",
24
+ -- Table fields
25
+ t."id" AS "tableId",
26
+ t."createdId" AS "tableCreatedId",
27
+ t."versionId" AS "tableVersionId",
28
+ t."readonly" AS "tableReadonly",
29
+ t."system" AS "tableSystem",
30
+ t."createdAt" AS "tableCreatedAt",
31
+ t."updatedAt" AS "tableUpdatedAt"
32
+ FROM "Row" r
33
+ INNER JOIN "_RowToTable" rt ON r."versionId" = rt."A"
34
+ INNER JOIN "Table" t ON t."versionId" = rt."B"
35
+ INNER JOIN "_RevisionToTable" revt ON t."versionId" = revt."B"
36
+ WHERE revt."A" = $1
37
+ AND ($3::text IS NULL OR t."createdId" = $3)
38
+ AND ($8::boolean IS TRUE OR t."system" = FALSE)
39
+ ),
40
+ child_rows AS (
41
+ SELECT
42
+ -- Row fields
43
+ r."id" AS "rowId",
44
+ r."createdId" AS "rowCreatedId",
45
+ r."versionId" AS "rowVersionId",
46
+ r."data",
47
+ r."hash",
48
+ r."schemaHash",
49
+ r."readonly",
50
+ r."meta",
51
+ r."createdAt" AS "rowCreatedAt",
52
+ r."updatedAt" AS "rowUpdatedAt",
53
+ r."publishedAt" AS "rowPublishedAt",
54
+ -- Table fields
55
+ t."id" AS "tableId",
56
+ t."createdId" AS "tableCreatedId",
57
+ t."versionId" AS "tableVersionId",
58
+ t."readonly" AS "tableReadonly",
59
+ t."system" AS "tableSystem",
60
+ t."createdAt" AS "tableCreatedAt",
61
+ t."updatedAt" AS "tableUpdatedAt"
62
+ FROM "Row" r
63
+ INNER JOIN "_RowToTable" rt ON r."versionId" = rt."A"
64
+ INNER JOIN "Table" t ON t."versionId" = rt."B"
65
+ INNER JOIN "_RevisionToTable" revt ON t."versionId" = revt."B"
66
+ WHERE revt."A" = $2
67
+ AND ($3::text IS NULL OR t."createdId" = $3)
68
+ AND ($8::boolean IS TRUE OR t."system" = FALSE)
69
+ ),
70
+ all_changes AS (
71
+ SELECT
72
+ -- fromRow (all Row fields)
73
+ pr."rowId" AS "fromRowId",
74
+ pr."rowCreatedId" AS "fromRowCreatedId",
75
+ pr."rowVersionId" AS "fromRowVersionId",
76
+ pr."data" AS "fromData",
77
+ pr."hash" AS "fromHash",
78
+ pr."schemaHash" AS "fromSchemaHash",
79
+ pr."readonly" AS "fromReadonly",
80
+ pr."meta" AS "fromMeta",
81
+ pr."rowCreatedAt" AS "fromRowCreatedAt",
82
+ pr."rowUpdatedAt" AS "fromRowUpdatedAt",
83
+ pr."rowPublishedAt" AS "fromRowPublishedAt",
84
+
85
+ -- toRow (all Row fields)
86
+ cr."rowId" AS "toRowId",
87
+ cr."rowCreatedId" AS "toRowCreatedId",
88
+ cr."rowVersionId" AS "toRowVersionId",
89
+ cr."data" AS "toData",
90
+ cr."hash" AS "toHash",
91
+ cr."schemaHash" AS "toSchemaHash",
92
+ cr."readonly" AS "toReadonly",
93
+ cr."meta" AS "toMeta",
94
+ cr."rowCreatedAt" AS "toRowCreatedAt",
95
+ cr."rowUpdatedAt" AS "toRowUpdatedAt",
96
+ cr."rowPublishedAt" AS "toRowPublishedAt",
97
+
98
+ -- fromTable (all Table fields)
99
+ pr."tableId" AS "fromTableId",
100
+ pr."tableCreatedId" AS "fromTableCreatedId",
101
+ pr."tableVersionId" AS "fromTableVersionId",
102
+ pr."tableReadonly" AS "fromTableReadonly",
103
+ pr."tableSystem" AS "fromTableSystem",
104
+ pr."tableCreatedAt" AS "fromTableCreatedAt",
105
+ pr."tableUpdatedAt" AS "fromTableUpdatedAt",
106
+
107
+ -- toTable (all Table fields)
108
+ cr."tableId" AS "toTableId",
109
+ cr."tableCreatedId" AS "toTableCreatedId",
110
+ cr."tableVersionId" AS "toTableVersionId",
111
+ cr."tableReadonly" AS "toTableReadonly",
112
+ cr."tableSystem" AS "toTableSystem",
113
+ cr."tableCreatedAt" AS "toTableCreatedAt",
114
+ cr."tableUpdatedAt" AS "toTableUpdatedAt",
115
+
116
+ -- Stable IDs for JOIN/sorting
117
+ COALESCE(cr."rowCreatedId", pr."rowCreatedId") AS "rowCreatedId",
118
+ COALESCE(cr."tableCreatedId", pr."tableCreatedId") AS "tableCreatedId",
119
+
120
+ -- Change metadata
121
+ CASE
122
+ WHEN pr."rowCreatedId" IS NULL THEN 'ADDED'
123
+ WHEN cr."rowCreatedId" IS NULL THEN 'REMOVED'
124
+ WHEN pr."rowId" != cr."rowId" AND cr."hash" != pr."hash" THEN 'RENAMED_AND_MODIFIED'
125
+ WHEN pr."rowId" != cr."rowId" THEN 'RENAMED'
126
+ WHEN cr."hash" != pr."hash" THEN 'MODIFIED'
127
+ END AS "changeType"
128
+
129
+ FROM child_rows cr
130
+ FULL OUTER JOIN parent_rows pr ON cr."rowCreatedId" = pr."rowCreatedId"
131
+ WHERE
132
+ (pr."rowCreatedId" IS NULL OR
133
+ cr."rowCreatedId" IS NULL OR
134
+ pr."rowId" != cr."rowId" OR
135
+ cr."hash" != pr."hash")
136
+ )
137
+ SELECT * FROM all_changes
138
+ WHERE
139
+ -- Search by rowId
140
+ ($4::text IS NULL OR
141
+ "fromRowId" ILIKE '%' || $4 || '%' OR
142
+ "toRowId" ILIKE '%' || $4 || '%')
143
+ -- Filter by changeTypes
144
+ AND ($5::jsonb IS NULL OR (
145
+ "changeType" = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))
146
+ OR ("changeType" = 'RENAMED_AND_MODIFIED' AND (
147
+ 'RENAMED' = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))
148
+ OR 'MODIFIED' = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))
149
+ ))
150
+ ))
151
+ ORDER BY
152
+ COALESCE("toRowUpdatedAt", "fromRowUpdatedAt") DESC,
153
+ "rowCreatedId" ASC
154
+ LIMIT $6
155
+ OFFSET $7
@@ -0,0 +1,54 @@
1
+ -- @param {String} $1:fromRevisionId
2
+ -- @param {String} $2:toRevisionId
3
+ -- @param {String} $3:tableCreatedId (optional, NULL for all tables)
4
+ -- @param {Boolean} $4:includeSystem (optional, whether to include system tables, default FALSE)
5
+
6
+ WITH parent_rows AS (
7
+ SELECT
8
+ r."id",
9
+ r."createdId",
10
+ r."hash",
11
+ r."schemaHash",
12
+ t."createdId" as "tableCreatedId"
13
+ FROM "Row" r
14
+ INNER JOIN "_RowToTable" rt ON r."versionId" = rt."A"
15
+ INNER JOIN "Table" t ON t."versionId" = rt."B"
16
+ INNER JOIN "_RevisionToTable" revt ON t."versionId" = revt."B"
17
+ WHERE revt."A" = $1
18
+ AND ($3::text IS NULL OR t."createdId" = $3)
19
+ AND ($4::boolean IS TRUE OR t."system" = FALSE)
20
+ ),
21
+ child_rows AS (
22
+ SELECT
23
+ r."id",
24
+ r."createdId",
25
+ r."hash",
26
+ r."schemaHash",
27
+ t."createdId" as "tableCreatedId"
28
+ FROM "Row" r
29
+ INNER JOIN "_RowToTable" rt ON r."versionId" = rt."A"
30
+ INNER JOIN "Table" t ON t."versionId" = rt."B"
31
+ INNER JOIN "_RevisionToTable" revt ON t."versionId" = revt."B"
32
+ WHERE revt."A" = $2
33
+ AND ($3::text IS NULL OR t."createdId" = $3)
34
+ AND ($4::boolean IS TRUE OR t."system" = FALSE)
35
+ )
36
+ SELECT
37
+ COUNT(*) AS "total",
38
+ COUNT(*) FILTER (WHERE pr."createdId" IS NULL) AS "added",
39
+ COUNT(*) FILTER (WHERE cr."createdId" IS NULL) AS "removed",
40
+ COUNT(*) FILTER (
41
+ WHERE (pr."id" != cr."id" AND cr."hash" = pr."hash" AND pr."createdId" IS NOT NULL AND cr."createdId" IS NOT NULL)
42
+ OR (pr."id" != cr."id" AND cr."hash" != pr."hash" AND pr."createdId" IS NOT NULL AND cr."createdId" IS NOT NULL)
43
+ ) AS "renamed",
44
+ COUNT(*) FILTER (
45
+ WHERE (pr."id" = cr."id" AND cr."hash" != pr."hash")
46
+ OR (pr."id" != cr."id" AND cr."hash" != pr."hash" AND pr."createdId" IS NOT NULL AND cr."createdId" IS NOT NULL)
47
+ ) AS "modified"
48
+ FROM child_rows cr
49
+ FULL OUTER JOIN parent_rows pr USING ("createdId")
50
+ WHERE
51
+ pr."createdId" IS NULL OR
52
+ cr."createdId" IS NULL OR
53
+ pr."id" != cr."id" OR
54
+ cr."hash" != pr."hash"
@@ -1,20 +1,24 @@
1
1
  -- @param {String} $1:fromRevisionId The id of the revision
2
2
  -- @param {String} $2:toRevisionId The id of the revision
3
- -- @param {Int} $3:limit
4
- -- @param {Int} $4:offset
3
+ -- @param {Json} $3:changeTypes (optional, array of change types to filter, NULL for all)
4
+ -- @param {Int} $4:limit
5
+ -- @param {Int} $5:offset
6
+ -- @param {Boolean} $6:includeSystem Whether to include system tables (default false)
5
7
 
6
8
  WITH parent_tables AS (SELECT "id", "createdId", "versionId"
7
9
  FROM "Table"
8
10
  WHERE ("Table"."versionId") IN (SELECT "t1"."B"
9
11
  FROM "_RevisionToTable" AS "t1"
10
12
  INNER JOIN "Revision" AS "j1" ON ("j1"."id") = ("t1"."A")
11
- WHERE ("j1"."id" = $1 AND "t1"."B" IS NOT NULL))),
13
+ WHERE ("j1"."id" = $1 AND "t1"."B" IS NOT NULL))
14
+ AND ($6::boolean IS TRUE OR "Table"."system" = FALSE)),
12
15
  child_tables AS (SELECT "id", "createdId", "versionId"
13
16
  FROM "Table"
14
17
  WHERE ("Table"."versionId") IN (SELECT "t1"."B"
15
18
  FROM "_RevisionToTable" AS "t1"
16
19
  INNER JOIN "Revision" AS "j1" ON ("j1"."id") = ("t1"."A")
17
- WHERE ("j1"."id" = $2 AND "t1"."B" IS NOT NULL)))
20
+ WHERE ("j1"."id" = $2 AND "t1"."B" IS NOT NULL))
21
+ AND ($6::boolean IS TRUE OR "Table"."system" = FALSE))
18
22
  SELECT pt."id" AS "fromId",
19
23
  pt."createdId" AS "fromCreatedId",
20
24
  pt."versionId" AS "fromVersionId",
@@ -24,14 +28,24 @@ SELECT pt."id" AS "fromId",
24
28
  CASE
25
29
  WHEN pt."createdId" IS NULL THEN 'added'
26
30
  WHEN ct."createdId" IS NULL THEN 'removed'
31
+ WHEN pt."id" != ct."id" AND ct."versionId" != pt."versionId" THEN 'renamed_and_modified'
32
+ WHEN pt."id" != ct."id" THEN 'renamed'
27
33
  WHEN ct."versionId" != pt."versionId" THEN 'modified'
28
34
  END AS "changeType"
29
35
  FROM child_tables ct
30
36
  FULL OUTER JOIN parent_tables pt USING ("createdId")
31
- WHERE pt."createdId" IS NULL
37
+ WHERE (pt."createdId" IS NULL
32
38
  OR ct."createdId" IS NULL
33
- OR ct."versionId" != pt."versionId"
39
+ OR pt."id" != ct."id"
40
+ OR ct."versionId" != pt."versionId")
41
+ AND ($3::jsonb IS NULL OR LOWER(CASE
42
+ WHEN pt."createdId" IS NULL THEN 'added'
43
+ WHEN ct."createdId" IS NULL THEN 'removed'
44
+ WHEN pt."id" != ct."id" AND ct."versionId" != pt."versionId" THEN 'renamed_and_modified'
45
+ WHEN pt."id" != ct."id" THEN 'renamed'
46
+ WHEN ct."versionId" != pt."versionId" THEN 'modified'
47
+ END) = ANY(ARRAY(SELECT LOWER(jsonb_array_elements_text($3::jsonb)))))
34
48
 
35
- LIMIT $3
36
- OFFSET $4
49
+ LIMIT $4
50
+ OFFSET $5
37
51
 
@@ -0,0 +1,41 @@
1
+ -- @param {String} $1:fromRevisionId The id of the revision
2
+ -- @param {String} $2:toRevisionId The id of the revision
3
+ -- @param {Boolean} $3:includeSystem Whether to include system tables (default false)
4
+
5
+ WITH parent_tables AS (SELECT "id", "createdId", "versionId"
6
+ FROM "Table"
7
+ WHERE ("Table"."versionId") IN (SELECT "t1"."B"
8
+ FROM "_RevisionToTable" AS "t1"
9
+ INNER JOIN "Revision" AS "j1" ON ("j1"."id") = ("t1"."A")
10
+ WHERE ("j1"."id" = $1 AND "t1"."B" IS NOT NULL))
11
+ AND ($3::boolean IS TRUE OR "Table"."system" = FALSE)),
12
+ child_tables AS (SELECT "id", "createdId", "versionId"
13
+ FROM "Table"
14
+ WHERE ("Table"."versionId") IN (SELECT "t1"."B"
15
+ FROM "_RevisionToTable" AS "t1"
16
+ INNER JOIN "Revision" AS "j1" ON ("j1"."id") = ("t1"."A")
17
+ WHERE ("j1"."id" = $2 AND "t1"."B" IS NOT NULL))
18
+ AND ($3::boolean IS TRUE OR "Table"."system" = FALSE))
19
+ SELECT
20
+ COUNT(*) ::integer AS total,
21
+ COUNT(*) FILTER (WHERE pt."createdId" IS NULL) ::integer AS added,
22
+ COUNT(*) FILTER (WHERE ct."createdId" IS NULL) ::integer AS removed,
23
+ COUNT(*) FILTER (
24
+ WHERE (pt."id" != ct."id" AND ct."versionId" = pt."versionId" AND pt."createdId" IS NOT NULL AND ct."createdId" IS NOT NULL)
25
+ OR (pt."id" != ct."id" AND ct."versionId" != pt."versionId" AND pt."createdId" IS NOT NULL AND ct."createdId" IS NOT NULL)
26
+ ) ::integer AS renamed,
27
+ COUNT(*) FILTER (
28
+ WHERE (pt."id" = ct."id" AND ct."versionId" != pt."versionId")
29
+ OR (pt."id" != ct."id" AND ct."versionId" != pt."versionId" AND pt."createdId" IS NOT NULL AND ct."createdId" IS NOT NULL)
30
+ ) ::integer AS modified
31
+ FROM
32
+ child_tables ct
33
+ FULL OUTER JOIN parent_tables pt USING ("createdId")
34
+ WHERE
35
+ pt."createdId" IS NULL
36
+ OR
37
+ ct."createdId" IS NULL
38
+ OR
39
+ pt."id" != ct."id"
40
+ OR
41
+ ct."versionId" != pt."versionId"
@@ -40,8 +40,8 @@ const config = {
40
40
  "fullTextSearchPostgres",
41
41
  "typedSql"
42
42
  ],
43
- "clientVersion": "7.0.0",
44
- "engineVersion": "0c19ccc313cf9911a90d99d2ac2eb0280c76c513",
43
+ "clientVersion": "7.0.1",
44
+ "engineVersion": "f09f2815f091dbba658cdcd2264306d88bb5bda6",
45
45
  "activeProvider": "postgresql",
46
46
  "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../src/__generated__/client\"\n moduleFormat = \"cjs\"\n previewFeatures = [\"fullTextSearchPostgres\", \"typedSql\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel Instance {\n id String @id\n}\n\nmodel User {\n id String @id\n createdAt DateTime @default(now())\n email String? @unique\n username String? @unique\n password String\n\n isEmailConfirmed Boolean @default(false)\n emailCode String @default(\"\")\n\n role Role @relation(fields: [roleId], references: [id])\n roleId String\n\n userOrganizations UserOrganization[]\n userProjects UserProject[]\n}\n\nenum RoleLevel {\n System\n Organization\n Project\n}\n\nmodel Role {\n id String @id\n createdAt DateTime @default(now())\n name String\n level RoleLevel\n isCustom Boolean @default(false)\n\n userOrganizations UserOrganization[]\n userProjects UserProject[]\n permissions Permission[]\n users User[]\n}\n\nmodel Permission {\n id String @id\n createdAt DateTime @default(now())\n\n action String\n subject String\n condition Json?\n\n roles Role[]\n}\n\nmodel Organization {\n id String @id\n createdId String @unique\n projects Project[]\n\n userOrganizations UserOrganization[]\n}\n\nmodel UserOrganization {\n id String @id\n createdAt DateTime @default(now())\n\n organization Organization @relation(fields: [organizationId], references: [id])\n organizationId String\n\n user User @relation(fields: [userId], references: [id])\n userId String\n\n role Role @relation(fields: [roleId], references: [id])\n roleId String\n\n @@unique([organizationId, userId])\n}\n\nmodel Project {\n id String @id\n createdAt DateTime @default(now())\n name String\n isPublic Boolean @default(false)\n isDeleted Boolean @default(false)\n\n branches Branch[]\n organization Organization @relation(fields: [organizationId], references: [id])\n organizationId String\n userProjects UserProject[]\n}\n\nmodel UserProject {\n id String @id\n createdAt DateTime @default(now())\n\n project Project @relation(fields: [projectId], references: [id])\n projectId String\n\n user User @relation(fields: [userId], references: [id])\n userId String\n\n role Role @relation(fields: [roleId], references: [id])\n roleId String\n\n @@unique([projectId, userId])\n}\n\nmodel Branch {\n id String @id\n createdAt DateTime @default(now())\n isRoot Boolean @default(false)\n name String\n projectId String\n project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)\n revisions Revision[]\n\n @@unique([name, projectId])\n}\n\nmodel Revision {\n id String @id\n sequence Int @unique @default(autoincrement())\n createdAt DateTime @default(now())\n comment String @default(\"\")\n isHead Boolean @default(false)\n isDraft Boolean @default(false)\n isStart Boolean @default(false)\n hasChanges Boolean @default(false)\n\n branchId String\n branch Branch @relation(fields: [branchId], references: [id], onDelete: Cascade)\n parentId String?\n parent Revision? @relation(\"parentRevision\", fields: [parentId], references: [id], onDelete: SetNull)\n children Revision[] @relation(\"parentRevision\")\n tables Table[]\n endpoints Endpoint[]\n\n @@index([branchId])\n}\n\nenum EndpointType {\n GRAPHQL\n REST_API\n}\n\nmodel EndpointVersion {\n id String @id\n type EndpointType\n version Int @default(1)\n endpoint Endpoint[]\n\n @@unique([type, version])\n}\n\nmodel Endpoint {\n id String @id\n createdAt DateTime @default(now())\n type EndpointType\n revisionId String\n isDeleted Boolean @default(false)\n\n versionId String\n version EndpointVersion @relation(fields: [versionId], references: [id])\n\n revision Revision @relation(fields: [revisionId], references: [id], onDelete: Cascade)\n\n @@unique([revisionId, type])\n}\n\nmodel Table {\n versionId String @id\n createdId String\n id String\n\n readonly Boolean @default(false)\n\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n\n system Boolean @default(false)\n\n revisions Revision[]\n rows Row[]\n\n @@index([id])\n}\n\nmodel Row {\n versionId String @id\n createdId String\n id String\n\n readonly Boolean @default(false)\n\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n publishedAt DateTime @default(now())\n\n data Json\n meta Json @default(\"{}\")\n hash String\n schemaHash String\n\n tables Table[]\n\n @@index([data], type: Gin)\n @@index([id])\n @@index([hash])\n @@index([schemaHash])\n @@index([publishedAt])\n}\n",
47
47
  "runtimeDataModel": {
@@ -49,8 +49,8 @@ exports.Sql = runtime.Sql;
49
49
  exports.Decimal = runtime.Decimal;
50
50
  exports.getExtensionContext = runtime.Extensions.getExtensionContext;
51
51
  exports.prismaVersion = {
52
- client: "7.0.0",
53
- engine: "0c19ccc313cf9911a90d99d2ac2eb0280c76c513"
52
+ client: "7.0.1",
53
+ engine: "f09f2815f091dbba658cdcd2264306d88bb5bda6"
54
54
  };
55
55
  exports.NullTypes = {
56
56
  DbNull: runtime.NullTypes.DbNull,
@@ -0,0 +1,8 @@
1
+ import * as $runtime from "@prisma/client/runtime/client";
2
+ export declare const countRowChangesBetweenRevisions: (fromRevisionId: string, toRevisionId: string, tableCreatedId: string, searchTerm: string, changeTypes: $runtime.InputJsonObject, includeSystem: boolean) => $runtime.TypedSql<countRowChangesBetweenRevisions.Parameters, countRowChangesBetweenRevisions.Result>;
3
+ export declare namespace countRowChangesBetweenRevisions {
4
+ type Parameters = [fromRevisionId: string, toRevisionId: string, tableCreatedId: string, searchTerm: string, changeTypes: $runtime.InputJsonObject, includeSystem: boolean];
5
+ type Result = {
6
+ count: bigint | null;
7
+ };
8
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.countRowChangesBetweenRevisions = void 0;
37
+ const $runtime = __importStar(require("@prisma/client/runtime/client"));
38
+ exports.countRowChangesBetweenRevisions = $runtime.makeTypedQueryFactory("\nWITH parent_rows AS (\nSELECT\nr.\"id\",\nr.\"createdId\",\nr.\"hash\",\nr.\"schemaHash\"\nFROM \"Row\" r\nINNER JOIN \"_RowToTable\" rt ON r.\"versionId\" = rt.\"A\"\nINNER JOIN \"Table\" t ON t.\"versionId\" = rt.\"B\"\nINNER JOIN \"_RevisionToTable\" revt ON t.\"versionId\" = revt.\"B\"\nWHERE revt.\"A\" = $1\nAND ($3::text IS NULL OR t.\"createdId\" = $3)\nAND ($6::boolean IS TRUE OR t.\"system\" = FALSE)\n),\nchild_rows AS (\nSELECT\nr.\"id\",\nr.\"createdId\",\nr.\"hash\",\nr.\"schemaHash\"\nFROM \"Row\" r\nINNER JOIN \"_RowToTable\" rt ON r.\"versionId\" = rt.\"A\"\nINNER JOIN \"Table\" t ON t.\"versionId\" = rt.\"B\"\nINNER JOIN \"_RevisionToTable\" revt ON t.\"versionId\" = revt.\"B\"\nWHERE revt.\"A\" = $2\nAND ($3::text IS NULL OR t.\"createdId\" = $3)\nAND ($6::boolean IS TRUE OR t.\"system\" = FALSE)\n),\nall_changes AS (\nSELECT\nCASE\nWHEN pr.\"createdId\" IS NULL THEN 'ADDED'\nWHEN cr.\"createdId\" IS NULL THEN 'REMOVED'\nWHEN pr.\"id\" != cr.\"id\" AND cr.\"hash\" != pr.\"hash\" THEN 'RENAMED_AND_MODIFIED'\nWHEN pr.\"id\" != cr.\"id\" THEN 'RENAMED'\nWHEN cr.\"hash\" != pr.\"hash\" THEN 'MODIFIED'\nEND AS \"changeType\",\npr.\"id\" AS \"fromRowId\",\ncr.\"id\" AS \"toRowId\"\nFROM child_rows cr\nFULL OUTER JOIN parent_rows pr USING (\"createdId\")\nWHERE\n(pr.\"createdId\" IS NULL OR\ncr.\"createdId\" IS NULL OR\npr.\"id\" != cr.\"id\" OR\ncr.\"hash\" != pr.\"hash\")\n)\nSELECT\nCOUNT(*) AS \"count\"\nFROM all_changes\nWHERE\n($4::text IS NULL OR\n\"fromRowId\" ILIKE '%' || $4 || '%' OR\n\"toRowId\" ILIKE '%' || $4 || '%')\nAND ($5::jsonb IS NULL OR (\n\"changeType\" = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))\nOR (\"changeType\" = 'RENAMED_AND_MODIFIED' AND (\n'RENAMED' = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))\nOR 'MODIFIED' = ANY(ARRAY(SELECT jsonb_array_elements_text($5::jsonb)))\n))\n))");
39
+ //# sourceMappingURL=countRowChangesBetweenRevisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countRowChangesBetweenRevisions.js","sourceRoot":"","sources":["../../../../../src/__generated__/client/sql/countRowChangesBetweenRevisions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wEAAyD;AAU5C,QAAA,+BAA+B,GAAG,QAAQ,CAAC,qBAAqB,CAAC,i1DAAi1D,CAAuQ,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import * as $runtime from "@prisma/client/runtime/client";
2
- export declare const countTableDiffsBetweenRevisions: (fromRevisionId: string, toRevisionId: string) => $runtime.TypedSql<countTableDiffsBetweenRevisions.Parameters, countTableDiffsBetweenRevisions.Result>;
2
+ export declare const countTableDiffsBetweenRevisions: (fromRevisionId: string, toRevisionId: string, changeTypes: $runtime.InputJsonObject, includeSystem: boolean) => $runtime.TypedSql<countTableDiffsBetweenRevisions.Parameters, countTableDiffsBetweenRevisions.Result>;
3
3
  export declare namespace countTableDiffsBetweenRevisions {
4
- type Parameters = [fromRevisionId: string, toRevisionId: string];
4
+ type Parameters = [fromRevisionId: string, toRevisionId: string, changeTypes: $runtime.InputJsonObject, includeSystem: boolean];
5
5
  type Result = {
6
6
  count: number | null;
7
7
  };