@things-factory/compliance 0.0.0-stage → 10.1.254

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 (356) hide show
  1. package/dist-client/bootstrap.d.ts +2 -0
  2. package/dist-client/bootstrap.js +28 -0
  3. package/dist-client/bootstrap.js.map +1 -0
  4. package/dist-client/components/compliance-case-form.d.ts +42 -0
  5. package/dist-client/components/compliance-case-form.js +313 -0
  6. package/dist-client/components/compliance-case-form.js.map +1 -0
  7. package/dist-client/components/compliance-case-sheet.d.ts +35 -0
  8. package/dist-client/components/compliance-case-sheet.js +335 -0
  9. package/dist-client/components/compliance-case-sheet.js.map +1 -0
  10. package/dist-client/components/compliance-my-inventions.d.ts +17 -0
  11. package/dist-client/components/compliance-my-inventions.js +133 -0
  12. package/dist-client/components/compliance-my-inventions.js.map +1 -0
  13. package/dist-client/components/compliance-my-privacy-requests.d.ts +34 -0
  14. package/dist-client/components/compliance-my-privacy-requests.js +232 -0
  15. package/dist-client/components/compliance-my-privacy-requests.js.map +1 -0
  16. package/dist-client/components/compliance-my-reports.d.ts +19 -0
  17. package/dist-client/components/compliance-my-reports.js +137 -0
  18. package/dist-client/components/compliance-my-reports.js.map +1 -0
  19. package/dist-client/components/guide-link.d.ts +13 -0
  20. package/dist-client/components/guide-link.js +55 -0
  21. package/dist-client/components/guide-link.js.map +1 -0
  22. package/dist-client/components/invention-report-form.d.ts +30 -0
  23. package/dist-client/components/invention-report-form.js +188 -0
  24. package/dist-client/components/invention-report-form.js.map +1 -0
  25. package/dist-client/components/legal-todo.d.ts +10 -0
  26. package/dist-client/components/legal-todo.js +43 -0
  27. package/dist-client/components/legal-todo.js.map +1 -0
  28. package/dist-client/components/my-trainings.d.ts +18 -0
  29. package/dist-client/components/my-trainings.js +149 -0
  30. package/dist-client/components/my-trainings.js.map +1 -0
  31. package/dist-client/components/regulation-form.d.ts +26 -0
  32. package/dist-client/components/regulation-form.js +161 -0
  33. package/dist-client/components/regulation-form.js.map +1 -0
  34. package/dist-client/components/seal-use-form.d.ts +47 -0
  35. package/dist-client/components/seal-use-form.js +300 -0
  36. package/dist-client/components/seal-use-form.js.map +1 -0
  37. package/dist-client/components/training-attendance-form.d.ts +37 -0
  38. package/dist-client/components/training-attendance-form.js +186 -0
  39. package/dist-client/components/training-attendance-form.js.map +1 -0
  40. package/dist-client/components/training-certificate-form.d.ts +41 -0
  41. package/dist-client/components/training-certificate-form.js +198 -0
  42. package/dist-client/components/training-certificate-form.js.map +1 -0
  43. package/dist-client/components/training-session-form.d.ts +39 -0
  44. package/dist-client/components/training-session-form.js +270 -0
  45. package/dist-client/components/training-session-form.js.map +1 -0
  46. package/dist-client/components/training-setting-form.d.ts +45 -0
  47. package/dist-client/components/training-setting-form.js +175 -0
  48. package/dist-client/components/training-setting-form.js.map +1 -0
  49. package/dist-client/index.d.ts +4 -0
  50. package/dist-client/index.js +8 -0
  51. package/dist-client/index.js.map +1 -0
  52. package/dist-client/legal-record/dispute-calendar-source.d.ts +1 -0
  53. package/dist-client/legal-record/dispute-calendar-source.js +51 -0
  54. package/dist-client/legal-record/dispute-calendar-source.js.map +1 -0
  55. package/dist-client/legal-record/legal-child-grid.d.ts +31 -0
  56. package/dist-client/legal-record/legal-child-grid.js +76 -0
  57. package/dist-client/legal-record/legal-child-grid.js.map +1 -0
  58. package/dist-client/legal-record/legal-codes.d.ts +3 -0
  59. package/dist-client/legal-record/legal-codes.js +5 -0
  60. package/dist-client/legal-record/legal-codes.js.map +1 -0
  61. package/dist-client/legal-record/legal-grid.d.ts +59 -0
  62. package/dist-client/legal-record/legal-grid.js +68 -0
  63. package/dist-client/legal-record/legal-grid.js.map +1 -0
  64. package/dist-client/legal-record/legal-record-files.d.ts +26 -0
  65. package/dist-client/legal-record/legal-record-files.js +162 -0
  66. package/dist-client/legal-record/legal-record-files.js.map +1 -0
  67. package/dist-client/pages/compliance-case-list.d.ts +35 -0
  68. package/dist-client/pages/compliance-case-list.js +112 -0
  69. package/dist-client/pages/compliance-case-list.js.map +1 -0
  70. package/dist-client/pages/dispute-list.d.ts +57 -0
  71. package/dist-client/pages/dispute-list.js +156 -0
  72. package/dist-client/pages/dispute-list.js.map +1 -0
  73. package/dist-client/pages/invention-list.d.ts +57 -0
  74. package/dist-client/pages/invention-list.js +166 -0
  75. package/dist-client/pages/invention-list.js.map +1 -0
  76. package/dist-client/pages/legal-registration-list.d.ts +63 -0
  77. package/dist-client/pages/legal-registration-list.js +206 -0
  78. package/dist-client/pages/legal-registration-list.js.map +1 -0
  79. package/dist-client/pages/privacy-record-list.d.ts +52 -0
  80. package/dist-client/pages/privacy-record-list.js +225 -0
  81. package/dist-client/pages/privacy-record-list.js.map +1 -0
  82. package/dist-client/pages/regulation-detail.d.ts +43 -0
  83. package/dist-client/pages/regulation-detail.js +370 -0
  84. package/dist-client/pages/regulation-detail.js.map +1 -0
  85. package/dist-client/pages/regulation-list.d.ts +52 -0
  86. package/dist-client/pages/regulation-list.js +144 -0
  87. package/dist-client/pages/regulation-list.js.map +1 -0
  88. package/dist-client/pages/regulations.d.ts +49 -0
  89. package/dist-client/pages/regulations.js +412 -0
  90. package/dist-client/pages/regulations.js.map +1 -0
  91. package/dist-client/pages/seal-use-list.d.ts +57 -0
  92. package/dist-client/pages/seal-use-list.js +168 -0
  93. package/dist-client/pages/seal-use-list.js.map +1 -0
  94. package/dist-client/pages/training-list.d.ts +51 -0
  95. package/dist-client/pages/training-list.js +333 -0
  96. package/dist-client/pages/training-list.js.map +1 -0
  97. package/dist-client/regulation/regulation-fragments.d.ts +1 -0
  98. package/dist-client/regulation/regulation-fragments.js +37 -0
  99. package/dist-client/regulation/regulation-fragments.js.map +1 -0
  100. package/dist-client/regulation/regulation-guide.d.ts +19 -0
  101. package/dist-client/regulation/regulation-guide.js +48 -0
  102. package/dist-client/regulation/regulation-guide.js.map +1 -0
  103. package/dist-client/route.d.ts +1 -0
  104. package/dist-client/route.js +36 -0
  105. package/dist-client/route.js.map +1 -0
  106. package/dist-client/training-words.d.ts +11 -0
  107. package/dist-client/training-words.js +11 -0
  108. package/dist-client/training-words.js.map +1 -0
  109. package/dist-client/tsconfig.tsbuildinfo +1 -0
  110. package/dist-client/words.d.ts +15 -0
  111. package/dist-client/words.js +20 -0
  112. package/dist-client/words.js.map +1 -0
  113. package/dist-server/activities/index.d.ts +6 -0
  114. package/dist-server/activities/index.js +35 -0
  115. package/dist-server/activities/index.js.map +1 -0
  116. package/dist-server/activities/legal-todo-activity-names.d.ts +1 -0
  117. package/dist-server/activities/legal-todo-activity-names.js +5 -0
  118. package/dist-server/activities/legal-todo-activity-names.js.map +1 -0
  119. package/dist-server/activities/legal-todo-activity.d.ts +37 -0
  120. package/dist-server/activities/legal-todo-activity.js +41 -0
  121. package/dist-server/activities/legal-todo-activity.js.map +1 -0
  122. package/dist-server/activities/regulation-activity-names.d.ts +1 -0
  123. package/dist-server/activities/regulation-activity-names.js +5 -0
  124. package/dist-server/activities/regulation-activity-names.js.map +1 -0
  125. package/dist-server/activities/regulation-activity.d.ts +48 -0
  126. package/dist-server/activities/regulation-activity.js +47 -0
  127. package/dist-server/activities/regulation-activity.js.map +1 -0
  128. package/dist-server/activities/seal-use-activity-names.d.ts +2 -0
  129. package/dist-server/activities/seal-use-activity-names.js +6 -0
  130. package/dist-server/activities/seal-use-activity-names.js.map +1 -0
  131. package/dist-server/activities/seal-use-activity.d.ts +48 -0
  132. package/dist-server/activities/seal-use-activity.js +47 -0
  133. package/dist-server/activities/seal-use-activity.js.map +1 -0
  134. package/dist-server/index.d.ts +2 -0
  135. package/dist-server/index.js +21 -0
  136. package/dist-server/index.js.map +1 -0
  137. package/dist-server/role-tasks.d.ts +2 -0
  138. package/dist-server/role-tasks.js +28 -0
  139. package/dist-server/role-tasks.js.map +1 -0
  140. package/dist-server/service/common/correction.d.ts +32 -0
  141. package/dist-server/service/common/correction.js +98 -0
  142. package/dist-server/service/common/correction.js.map +1 -0
  143. package/dist-server/service/common/employee-reader.d.ts +11 -0
  144. package/dist-server/service/common/employee-reader.js +46 -0
  145. package/dist-server/service/common/employee-reader.js.map +1 -0
  146. package/dist-server/service/common/legal-todo.d.ts +19 -0
  147. package/dist-server/service/common/legal-todo.js +37 -0
  148. package/dist-server/service/common/legal-todo.js.map +1 -0
  149. package/dist-server/service/compliance-case/compliance-case-mutation.d.ts +9 -0
  150. package/dist-server/service/compliance-case/compliance-case-mutation.js +73 -0
  151. package/dist-server/service/compliance-case/compliance-case-mutation.js.map +1 -0
  152. package/dist-server/service/compliance-case/compliance-case-query.d.ts +28 -0
  153. package/dist-server/service/compliance-case/compliance-case-query.js +212 -0
  154. package/dist-server/service/compliance-case/compliance-case-query.js.map +1 -0
  155. package/dist-server/service/compliance-case/compliance-case-rules.d.ts +71 -0
  156. package/dist-server/service/compliance-case/compliance-case-rules.js +111 -0
  157. package/dist-server/service/compliance-case/compliance-case-rules.js.map +1 -0
  158. package/dist-server/service/compliance-case/compliance-case-service.d.ts +76 -0
  159. package/dist-server/service/compliance-case/compliance-case-service.js +425 -0
  160. package/dist-server/service/compliance-case/compliance-case-service.js.map +1 -0
  161. package/dist-server/service/compliance-case/compliance-case-type.d.ts +56 -0
  162. package/dist-server/service/compliance-case/compliance-case-type.js +200 -0
  163. package/dist-server/service/compliance-case/compliance-case-type.js.map +1 -0
  164. package/dist-server/service/compliance-case/compliance-case.d.ts +76 -0
  165. package/dist-server/service/compliance-case/compliance-case.js +260 -0
  166. package/dist-server/service/compliance-case/compliance-case.js.map +1 -0
  167. package/dist-server/service/compliance-case/index.d.ts +7 -0
  168. package/dist-server/service/compliance-case/index.js +17 -0
  169. package/dist-server/service/compliance-case/index.js.map +1 -0
  170. package/dist-server/service/dispute/dispute-mutation.d.ts +9 -0
  171. package/dist-server/service/dispute/dispute-mutation.js +64 -0
  172. package/dist-server/service/dispute/dispute-mutation.js.map +1 -0
  173. package/dist-server/service/dispute/dispute-query.d.ts +16 -0
  174. package/dist-server/service/dispute/dispute-query.js +124 -0
  175. package/dist-server/service/dispute/dispute-query.js.map +1 -0
  176. package/dist-server/service/dispute/dispute-rules.d.ts +20 -0
  177. package/dist-server/service/dispute/dispute-rules.js +42 -0
  178. package/dist-server/service/dispute/dispute-rules.js.map +1 -0
  179. package/dist-server/service/dispute/dispute-service.d.ts +17 -0
  180. package/dist-server/service/dispute/dispute-service.js +96 -0
  181. package/dist-server/service/dispute/dispute-service.js.map +1 -0
  182. package/dist-server/service/dispute/dispute-type.d.ts +39 -0
  183. package/dist-server/service/dispute/dispute-type.js +149 -0
  184. package/dist-server/service/dispute/dispute-type.js.map +1 -0
  185. package/dist-server/service/dispute/dispute.d.ts +48 -0
  186. package/dist-server/service/dispute/dispute.js +198 -0
  187. package/dist-server/service/dispute/dispute.js.map +1 -0
  188. package/dist-server/service/dispute/index.d.ts +5 -0
  189. package/dist-server/service/dispute/index.js +9 -0
  190. package/dist-server/service/dispute/index.js.map +1 -0
  191. package/dist-server/service/index.d.ts +46 -0
  192. package/dist-server/service/index.js +112 -0
  193. package/dist-server/service/index.js.map +1 -0
  194. package/dist-server/service/invention/index.d.ts +5 -0
  195. package/dist-server/service/invention/index.js +9 -0
  196. package/dist-server/service/invention/index.js.map +1 -0
  197. package/dist-server/service/invention/invention-mutation.d.ts +10 -0
  198. package/dist-server/service/invention/invention-mutation.js +79 -0
  199. package/dist-server/service/invention/invention-mutation.js.map +1 -0
  200. package/dist-server/service/invention/invention-query.d.ts +18 -0
  201. package/dist-server/service/invention/invention-query.js +141 -0
  202. package/dist-server/service/invention/invention-query.js.map +1 -0
  203. package/dist-server/service/invention/invention-rules.d.ts +28 -0
  204. package/dist-server/service/invention/invention-rules.js +54 -0
  205. package/dist-server/service/invention/invention-rules.js.map +1 -0
  206. package/dist-server/service/invention/invention-service.d.ts +25 -0
  207. package/dist-server/service/invention/invention-service.js +176 -0
  208. package/dist-server/service/invention/invention-service.js.map +1 -0
  209. package/dist-server/service/invention/invention-type.d.ts +34 -0
  210. package/dist-server/service/invention/invention-type.js +129 -0
  211. package/dist-server/service/invention/invention-type.js.map +1 -0
  212. package/dist-server/service/invention/invention.d.ts +55 -0
  213. package/dist-server/service/invention/invention.js +214 -0
  214. package/dist-server/service/invention/invention.js.map +1 -0
  215. package/dist-server/service/legal-record/attachment-readers.d.ts +1 -0
  216. package/dist-server/service/legal-record/attachment-readers.js +27 -0
  217. package/dist-server/service/legal-record/attachment-readers.js.map +1 -0
  218. package/dist-server/service/legal-record/days.d.ts +7 -0
  219. package/dist-server/service/legal-record/days.js +26 -0
  220. package/dist-server/service/legal-record/days.js.map +1 -0
  221. package/dist-server/service/legal-record/legal-record-support.d.ts +24 -0
  222. package/dist-server/service/legal-record/legal-record-support.js +51 -0
  223. package/dist-server/service/legal-record/legal-record-support.js.map +1 -0
  224. package/dist-server/service/legal-registration/centre-change-subscriber.d.ts +9 -0
  225. package/dist-server/service/legal-registration/centre-change-subscriber.js +50 -0
  226. package/dist-server/service/legal-registration/centre-change-subscriber.js.map +1 -0
  227. package/dist-server/service/legal-registration/index.d.ts +7 -0
  228. package/dist-server/service/legal-registration/index.js +11 -0
  229. package/dist-server/service/legal-registration/index.js.map +1 -0
  230. package/dist-server/service/legal-registration/legal-registration-mutation.d.ts +10 -0
  231. package/dist-server/service/legal-registration/legal-registration-mutation.js +77 -0
  232. package/dist-server/service/legal-registration/legal-registration-mutation.js.map +1 -0
  233. package/dist-server/service/legal-registration/legal-registration-query.d.ts +26 -0
  234. package/dist-server/service/legal-registration/legal-registration-query.js +199 -0
  235. package/dist-server/service/legal-registration/legal-registration-query.js.map +1 -0
  236. package/dist-server/service/legal-registration/legal-registration-rules.d.ts +80 -0
  237. package/dist-server/service/legal-registration/legal-registration-rules.js +106 -0
  238. package/dist-server/service/legal-registration/legal-registration-rules.js.map +1 -0
  239. package/dist-server/service/legal-registration/legal-registration-service.d.ts +37 -0
  240. package/dist-server/service/legal-registration/legal-registration-service.js +248 -0
  241. package/dist-server/service/legal-registration/legal-registration-service.js.map +1 -0
  242. package/dist-server/service/legal-registration/legal-registration-type.d.ts +55 -0
  243. package/dist-server/service/legal-registration/legal-registration-type.js +207 -0
  244. package/dist-server/service/legal-registration/legal-registration-type.js.map +1 -0
  245. package/dist-server/service/legal-registration/legal-registration.d.ts +76 -0
  246. package/dist-server/service/legal-registration/legal-registration.js +311 -0
  247. package/dist-server/service/legal-registration/legal-registration.js.map +1 -0
  248. package/dist-server/service/privacy-record/index.d.ts +5 -0
  249. package/dist-server/service/privacy-record/index.js +9 -0
  250. package/dist-server/service/privacy-record/index.js.map +1 -0
  251. package/dist-server/service/privacy-record/privacy-record-mutation.d.ts +7 -0
  252. package/dist-server/service/privacy-record/privacy-record-mutation.js +56 -0
  253. package/dist-server/service/privacy-record/privacy-record-mutation.js.map +1 -0
  254. package/dist-server/service/privacy-record/privacy-record-query.d.ts +18 -0
  255. package/dist-server/service/privacy-record/privacy-record-query.js +131 -0
  256. package/dist-server/service/privacy-record/privacy-record-query.js.map +1 -0
  257. package/dist-server/service/privacy-record/privacy-record-rules.d.ts +52 -0
  258. package/dist-server/service/privacy-record/privacy-record-rules.js +91 -0
  259. package/dist-server/service/privacy-record/privacy-record-rules.js.map +1 -0
  260. package/dist-server/service/privacy-record/privacy-record-service.d.ts +33 -0
  261. package/dist-server/service/privacy-record/privacy-record-service.js +133 -0
  262. package/dist-server/service/privacy-record/privacy-record-service.js.map +1 -0
  263. package/dist-server/service/privacy-record/privacy-record-type.d.ts +40 -0
  264. package/dist-server/service/privacy-record/privacy-record-type.js +153 -0
  265. package/dist-server/service/privacy-record/privacy-record-type.js.map +1 -0
  266. package/dist-server/service/privacy-record/privacy-record.d.ts +69 -0
  267. package/dist-server/service/privacy-record/privacy-record.js +245 -0
  268. package/dist-server/service/privacy-record/privacy-record.js.map +1 -0
  269. package/dist-server/service/regulation/index.d.ts +5 -0
  270. package/dist-server/service/regulation/index.js +9 -0
  271. package/dist-server/service/regulation/index.js.map +1 -0
  272. package/dist-server/service/regulation/regulation-mutation.d.ts +15 -0
  273. package/dist-server/service/regulation/regulation-mutation.js +152 -0
  274. package/dist-server/service/regulation/regulation-mutation.js.map +1 -0
  275. package/dist-server/service/regulation/regulation-query.d.ts +10 -0
  276. package/dist-server/service/regulation/regulation-query.js +109 -0
  277. package/dist-server/service/regulation/regulation-query.js.map +1 -0
  278. package/dist-server/service/regulation/regulation-read.d.ts +21 -0
  279. package/dist-server/service/regulation/regulation-read.js +111 -0
  280. package/dist-server/service/regulation/regulation-read.js.map +1 -0
  281. package/dist-server/service/regulation/regulation-rules.d.ts +83 -0
  282. package/dist-server/service/regulation/regulation-rules.js +170 -0
  283. package/dist-server/service/regulation/regulation-rules.js.map +1 -0
  284. package/dist-server/service/regulation/regulation-service.d.ts +63 -0
  285. package/dist-server/service/regulation/regulation-service.js +365 -0
  286. package/dist-server/service/regulation/regulation-service.js.map +1 -0
  287. package/dist-server/service/regulation/regulation-type.d.ts +61 -0
  288. package/dist-server/service/regulation/regulation-type.js +226 -0
  289. package/dist-server/service/regulation/regulation-type.js.map +1 -0
  290. package/dist-server/service/regulation/regulation.d.ts +113 -0
  291. package/dist-server/service/regulation/regulation.js +382 -0
  292. package/dist-server/service/regulation/regulation.js.map +1 -0
  293. package/dist-server/service/seal-use/index.d.ts +5 -0
  294. package/dist-server/service/seal-use/index.js +9 -0
  295. package/dist-server/service/seal-use/index.js.map +1 -0
  296. package/dist-server/service/seal-use/seal-use-mutation.d.ts +8 -0
  297. package/dist-server/service/seal-use/seal-use-mutation.js +69 -0
  298. package/dist-server/service/seal-use/seal-use-mutation.js.map +1 -0
  299. package/dist-server/service/seal-use/seal-use-query.d.ts +14 -0
  300. package/dist-server/service/seal-use/seal-use-query.js +100 -0
  301. package/dist-server/service/seal-use/seal-use-query.js.map +1 -0
  302. package/dist-server/service/seal-use/seal-use-rules.d.ts +35 -0
  303. package/dist-server/service/seal-use/seal-use-rules.js +64 -0
  304. package/dist-server/service/seal-use/seal-use-rules.js.map +1 -0
  305. package/dist-server/service/seal-use/seal-use-service.d.ts +20 -0
  306. package/dist-server/service/seal-use/seal-use-service.js +168 -0
  307. package/dist-server/service/seal-use/seal-use-service.js.map +1 -0
  308. package/dist-server/service/seal-use/seal-use-type.d.ts +24 -0
  309. package/dist-server/service/seal-use/seal-use-type.js +93 -0
  310. package/dist-server/service/seal-use/seal-use-type.js.map +1 -0
  311. package/dist-server/service/seal-use/seal-use.d.ts +57 -0
  312. package/dist-server/service/seal-use/seal-use.js +181 -0
  313. package/dist-server/service/seal-use/seal-use.js.map +1 -0
  314. package/dist-server/service/training/index.d.ts +5 -0
  315. package/dist-server/service/training/index.js +9 -0
  316. package/dist-server/service/training/index.js.map +1 -0
  317. package/dist-server/service/training/training-checks.d.ts +20 -0
  318. package/dist-server/service/training/training-checks.js +56 -0
  319. package/dist-server/service/training/training-checks.js.map +1 -0
  320. package/dist-server/service/training/training-kinds.d.ts +24 -0
  321. package/dist-server/service/training/training-kinds.js +42 -0
  322. package/dist-server/service/training/training-kinds.js.map +1 -0
  323. package/dist-server/service/training/training-mutation.d.ts +14 -0
  324. package/dist-server/service/training/training-mutation.js +140 -0
  325. package/dist-server/service/training/training-mutation.js.map +1 -0
  326. package/dist-server/service/training/training-query.d.ts +21 -0
  327. package/dist-server/service/training/training-query.js +196 -0
  328. package/dist-server/service/training/training-query.js.map +1 -0
  329. package/dist-server/service/training/training-read.d.ts +5 -0
  330. package/dist-server/service/training/training-read.js +35 -0
  331. package/dist-server/service/training/training-read.js.map +1 -0
  332. package/dist-server/service/training/training-register.d.ts +1 -0
  333. package/dist-server/service/training/training-register.js +27 -0
  334. package/dist-server/service/training/training-register.js.map +1 -0
  335. package/dist-server/service/training/training-rules.d.ts +72 -0
  336. package/dist-server/service/training/training-rules.js +143 -0
  337. package/dist-server/service/training/training-rules.js.map +1 -0
  338. package/dist-server/service/training/training-service.d.ts +98 -0
  339. package/dist-server/service/training/training-service.js +455 -0
  340. package/dist-server/service/training/training-service.js.map +1 -0
  341. package/dist-server/service/training/training-type.d.ts +94 -0
  342. package/dist-server/service/training/training-type.js +352 -0
  343. package/dist-server/service/training/training-type.js.map +1 -0
  344. package/dist-server/service/training/training.d.ts +127 -0
  345. package/dist-server/service/training/training.js +448 -0
  346. package/dist-server/service/training/training.js.map +1 -0
  347. package/dist-server/tsconfig.tsbuildinfo +1 -0
  348. package/package.json +61 -4
  349. package/things-factory.config.js +19 -0
  350. package/translations/en.json +610 -0
  351. package/translations/es.json +610 -0
  352. package/translations/ja.json +610 -0
  353. package/translations/ko.json +610 -0
  354. package/translations/ms.json +610 -0
  355. package/translations/zh.json +610 -0
  356. package/README.md +0 -3
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DisputeMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const GraphQLUpload_js_1 = tslib_1.__importDefault(require("graphql-upload/GraphQLUpload.js"));
6
+ const type_graphql_1 = require("type-graphql");
7
+ const attachment_base_1 = require("@things-factory/attachment-base");
8
+ const shell_1 = require("@things-factory/shell");
9
+ const legal_record_support_1 = require("../legal-record/legal-record-support");
10
+ const dispute_1 = require("./dispute");
11
+ const dispute_service_1 = require("./dispute-service");
12
+ const dispute_type_1 = require("./dispute-type");
13
+ let DisputeMutation = class DisputeMutation {
14
+ async updateMultipleDispute(patches, context) {
15
+ return await (0, dispute_service_1.saveDisputes)(patches, context);
16
+ }
17
+ async updateMultipleDisputeHearing(disputeId, patches, context) {
18
+ return await (0, dispute_service_1.saveDisputeHearings)(disputeId, patches, context);
19
+ }
20
+ async attachDisputeFiles(id, files, context) {
21
+ const { domain, tx } = context.state;
22
+ if (!(await tx.getRepository(dispute_1.Dispute).count({ where: { id, domain: { id: domain.id } } })))
23
+ throw new shell_1.Refusal('dispute-not-found', {}, 'the dispute was not found. reload and try again.');
24
+ return await (0, legal_record_support_1.attachFilesTo)(dispute_service_1.DISPUTE_REF_TYPE, id, files, context);
25
+ }
26
+ };
27
+ exports.DisputeMutation = DisputeMutation;
28
+ tslib_1.__decorate([
29
+ (0, type_graphql_1.Directive)('@privilege(category: "dispute", privilege: "mutation", domainOwnerGranted: true)'),
30
+ (0, type_graphql_1.Directive)('@transaction'),
31
+ (0, type_graphql_1.Mutation)(returns => [dispute_1.Dispute], { description: 'To write the new and changed disputes - a dispute is never deleted, it is closed' }),
32
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [dispute_type_1.DisputePatch])),
33
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
34
+ tslib_1.__metadata("design:type", Function),
35
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
36
+ tslib_1.__metadata("design:returntype", Promise)
37
+ ], DisputeMutation.prototype, "updateMultipleDispute", null);
38
+ tslib_1.__decorate([
39
+ (0, type_graphql_1.Directive)('@privilege(category: "dispute", privilege: "mutation", domainOwnerGranted: true)'),
40
+ (0, type_graphql_1.Directive)('@transaction'),
41
+ (0, type_graphql_1.Mutation)(returns => [dispute_1.DisputeHearing], { description: 'To write the hearings of a dispute' }),
42
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('disputeId')),
43
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('patches', type => [dispute_type_1.DisputeHearingPatch])),
44
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
45
+ tslib_1.__metadata("design:type", Function),
46
+ tslib_1.__metadata("design:paramtypes", [String, Array, Object]),
47
+ tslib_1.__metadata("design:returntype", Promise)
48
+ ], DisputeMutation.prototype, "updateMultipleDisputeHearing", null);
49
+ tslib_1.__decorate([
50
+ (0, type_graphql_1.Directive)('@privilege(category: "dispute", privilege: "mutation", domainOwnerGranted: true)'),
51
+ (0, type_graphql_1.Directive)('@transaction'),
52
+ (0, type_graphql_1.Mutation)(returns => [attachment_base_1.Attachment], { description: 'To attach files to a dispute - a file attached is kept' }),
53
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
54
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('files', type => [GraphQLUpload_js_1.default])),
55
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
56
+ tslib_1.__metadata("design:type", Function),
57
+ tslib_1.__metadata("design:paramtypes", [String, Array, Object]),
58
+ tslib_1.__metadata("design:returntype", Promise)
59
+ ], DisputeMutation.prototype, "attachDisputeFiles", null);
60
+ exports.DisputeMutation = DisputeMutation = tslib_1.__decorate([
61
+ (0, type_graphql_1.Resolver)(dispute_1.Dispute),
62
+ (0, type_graphql_1.UseMiddleware)(shell_1.SpeakRefusals)
63
+ ], DisputeMutation);
64
+ //# sourceMappingURL=dispute-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispute-mutation.js","sourceRoot":"","sources":["../../../server/service/dispute/dispute-mutation.ts"],"names":[],"mappings":";;;;AACA,+FAA2D;AAC3D,+CAAqF;AAErF,qEAA4D;AAC5D,iDAA8D;AAE9D,+EAAoE;AACpE,uCAAmD;AACnD,uDAAuF;AACvF,iDAAkE;AAI3D,IAAM,eAAe,GAArB,MAAM,eAAe;IAIpB,AAAN,KAAK,CAAC,qBAAqB,CAAyC,OAAuB,EAAS,OAAwB;QAC1H,OAAO,MAAM,IAAA,8BAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAKK,AAAN,KAAK,CAAC,4BAA4B,CACd,SAAiB,EACY,OAA8B,EACtE,OAAwB;QAE/B,OAAO,MAAM,IAAA,qCAAmB,EAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAKK,AAAN,KAAK,CAAC,kBAAkB,CAAY,EAAU,EAAyC,KAAmB,EAAS,OAAwB;QACzI,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACpC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,iBAAO,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAS,EAAE,CAAC,CAAC;YAAE,MAAM,IAAI,eAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,kDAAkD,CAAC,CAAA;QACjM,OAAO,MAAM,IAAA,oCAAa,EAAC,kCAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC;CACF,CAAA;AA3BY,0CAAe;AAIpB;IAHL,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,iBAAO,CAAC,EAAE,EAAE,WAAW,EAAE,kFAAkF,EAAE,CAAC;IACvG,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,2BAAY,CAAC,CAAC,CAAA;IAA2B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;4DAElG;AAKK;IAHL,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAc,CAAC,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;IAE1F,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,kCAAmB,CAAC,CAAC,CAAA;IAC7C,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mEAGP;AAKK;IAHL,IAAA,wBAAS,EAAC,kFAAkF,CAAC;IAC7F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,4BAAU,CAAC,EAAE,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;IACnF,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,0BAAa,CAAC,CAAC,CAAA;IAAuB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;yDAIjH;0BA1BU,eAAe;IAF3B,IAAA,uBAAQ,EAAC,iBAAO,CAAC;IACjB,IAAA,4BAAa,EAAC,qBAAa,CAAC;GAChB,eAAe,CA2B3B","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver, UseMiddleware } from 'type-graphql'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Refusal, SpeakRefusals } from '@things-factory/shell'\n\nimport { attachFilesTo } from '../legal-record/legal-record-support'\nimport { Dispute, DisputeHearing } from './dispute'\nimport { DISPUTE_REF_TYPE, saveDisputeHearings, saveDisputes } from './dispute-service'\nimport { DisputeHearingPatch, DisputePatch } from './dispute-type'\n\n@Resolver(Dispute)\n@UseMiddleware(SpeakRefusals)\nexport class DisputeMutation {\n @Directive('@privilege(category: \"dispute\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [Dispute], { description: 'To write the new and changed disputes - a dispute is never deleted, it is closed' })\n async updateMultipleDispute(@Arg('patches', type => [DisputePatch]) patches: DisputePatch[], @Ctx() context: ResolverContext): Promise<Dispute[]> {\n return await saveDisputes(patches, context)\n }\n\n @Directive('@privilege(category: \"dispute\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [DisputeHearing], { description: 'To write the hearings of a dispute' })\n async updateMultipleDisputeHearing(\n @Arg('disputeId') disputeId: string,\n @Arg('patches', type => [DisputeHearingPatch]) patches: DisputeHearingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<DisputeHearing[]> {\n return await saveDisputeHearings(disputeId, patches, context)\n }\n\n @Directive('@privilege(category: \"dispute\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [Attachment], { description: 'To attach files to a dispute - a file attached is kept' })\n async attachDisputeFiles(@Arg('id') id: string, @Arg('files', type => [GraphQLUpload]) files: FileUpload[], @Ctx() context: ResolverContext): Promise<Attachment[]> {\n const { domain, tx } = context.state\n if (!(await tx.getRepository(Dispute).count({ where: { id, domain: { id: domain.id } } as any }))) throw new Refusal('dispute-not-found', {}, 'the dispute was not found. reload and try again.')\n return await attachFilesTo(DISPUTE_REF_TYPE, id, files, context)\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { Attachment } from '@things-factory/attachment-base';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { ListParam } from '@things-factory/shell';
4
+ import { Dispute, DisputeHearing } from './dispute';
5
+ import { DisputeCounterparty, DisputeHearingList, DisputeList } from './dispute-type';
6
+ export declare class DisputeQuery {
7
+ disputes(params: ListParam, context: ResolverContext): Promise<DisputeList>;
8
+ disputeHearings(disputeId: string, from: string, to: string, context: ResolverContext): Promise<DisputeHearingList>;
9
+ disputeFiles(id: string, context: ResolverContext): Promise<Attachment[]>;
10
+ counterparty(row: Dispute): Promise<DisputeCounterparty | null>;
11
+ creator(row: Dispute): Promise<User | null>;
12
+ updater(row: Dispute): Promise<User | null>;
13
+ }
14
+ export declare class DisputeHearingQuery {
15
+ dispute(row: DisputeHearing): Promise<Dispute | null>;
16
+ }
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DisputeHearingQuery = exports.DisputeQuery = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const attachment_base_1 = require("@things-factory/attachment-base");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const biz_base_1 = require("@things-factory/biz-base");
9
+ const shell_1 = require("@things-factory/shell");
10
+ const days_1 = require("../legal-record/days");
11
+ const legal_record_support_1 = require("../legal-record/legal-record-support");
12
+ const dispute_1 = require("./dispute");
13
+ const dispute_service_1 = require("./dispute-service");
14
+ const dispute_type_1 = require("./dispute-type");
15
+ let DisputeQuery = class DisputeQuery {
16
+ async disputes(params, context) {
17
+ const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
18
+ domain: context.state.domain,
19
+ params,
20
+ repository: (0, shell_1.getRepository)(dispute_1.Dispute),
21
+ searchables: ['title', 'caseNo', 'otherParty', 'counsel', 'notes'],
22
+ alias: 'dispute',
23
+ defaultSortings: [{ name: 'startedOn', desc: true }]
24
+ });
25
+ const [items, total] = await queryBuilder.getManyAndCount();
26
+ return { items, total };
27
+ }
28
+ async disputeHearings(disputeId, from, to, context) {
29
+ const { domain } = context.state;
30
+ let items;
31
+ if (disputeId)
32
+ items = await (0, shell_1.getRepository)(dispute_1.DisputeHearing).find({ where: { domain: { id: domain.id }, dispute: { id: disputeId } }, order: { heldOn: 'ASC', heldAt: 'ASC' } });
33
+ else if (days_1.DAY.test(from ?? '') && days_1.DAY.test(to ?? ''))
34
+ items = await (0, dispute_service_1.disputeHearingsBetween)((0, legal_record_support_1.managerOf)(context), domain, from, to);
35
+ else
36
+ throw new shell_1.Refusal('dispute-hearings-range-required', {}, 'name the dispute, or give from and to, YYYY-MM-DD');
37
+ return { items, total: items.length };
38
+ }
39
+ async disputeFiles(id, context) {
40
+ return await (0, legal_record_support_1.filesOf)((0, legal_record_support_1.managerOf)(context), context.state.domain, dispute_service_1.DISPUTE_REF_TYPE, id);
41
+ }
42
+ async counterparty(row) {
43
+ const one = row.counterpartyId ? await (0, shell_1.getRepository)(biz_base_1.Counterparty).findOne({ where: { id: row.counterpartyId } }) : null;
44
+ return one ? { id: one.id, name: one.name, businessNumber: one.businessNumber } : null;
45
+ }
46
+ async creator(row) {
47
+ return row.creatorId ? await (0, shell_1.getRepository)(auth_base_1.User).findOne({ where: { id: row.creatorId } }) : null;
48
+ }
49
+ async updater(row) {
50
+ return row.updaterId ? await (0, shell_1.getRepository)(auth_base_1.User).findOne({ where: { id: row.updaterId } }) : null;
51
+ }
52
+ };
53
+ exports.DisputeQuery = DisputeQuery;
54
+ tslib_1.__decorate([
55
+ (0, type_graphql_1.Directive)('@privilege(category: "dispute", privilege: "query", domainOwnerGranted: true)'),
56
+ (0, type_graphql_1.Query)(returns => dispute_type_1.DisputeList, { description: '분쟁 · 소송 - the disputes of the company (ADR-0187 decision 25)' }),
57
+ tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
58
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
59
+ tslib_1.__metadata("design:type", Function),
60
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
61
+ tslib_1.__metadata("design:returntype", Promise)
62
+ ], DisputeQuery.prototype, "disputes", null);
63
+ tslib_1.__decorate([
64
+ (0, type_graphql_1.Directive)('@privilege(category: "dispute", privilege: "query", domainOwnerGranted: true)'),
65
+ (0, type_graphql_1.Query)(returns => dispute_type_1.DisputeHearingList, { description: 'The hearings of one dispute, or of every dispute from a day to a day - both days in' }),
66
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('disputeId', { nullable: true })),
67
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('from', { nullable: true, description: 'YYYY-MM-DD' })),
68
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('to', { nullable: true, description: 'YYYY-MM-DD' })),
69
+ tslib_1.__param(3, (0, type_graphql_1.Ctx)()),
70
+ tslib_1.__metadata("design:type", Function),
71
+ tslib_1.__metadata("design:paramtypes", [String, String, String, Object]),
72
+ tslib_1.__metadata("design:returntype", Promise)
73
+ ], DisputeQuery.prototype, "disputeHearings", null);
74
+ tslib_1.__decorate([
75
+ (0, type_graphql_1.Directive)('@privilege(category: "dispute", privilege: "query", domainOwnerGranted: true)'),
76
+ (0, type_graphql_1.Query)(returns => [attachment_base_1.Attachment], { description: 'The files of a dispute - letters, pleadings, decisions' }),
77
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
78
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
79
+ tslib_1.__metadata("design:type", Function),
80
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
81
+ tslib_1.__metadata("design:returntype", Promise)
82
+ ], DisputeQuery.prototype, "disputeFiles", null);
83
+ tslib_1.__decorate([
84
+ (0, type_graphql_1.FieldResolver)(type => dispute_type_1.DisputeCounterparty, { nullable: true, description: 'The counterparty - which one, nothing about it' }),
85
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
86
+ tslib_1.__metadata("design:type", Function),
87
+ tslib_1.__metadata("design:paramtypes", [dispute_1.Dispute]),
88
+ tslib_1.__metadata("design:returntype", Promise)
89
+ ], DisputeQuery.prototype, "counterparty", null);
90
+ tslib_1.__decorate([
91
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User, { nullable: true, description: 'Who wrote it' }),
92
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
93
+ tslib_1.__metadata("design:type", Function),
94
+ tslib_1.__metadata("design:paramtypes", [dispute_1.Dispute]),
95
+ tslib_1.__metadata("design:returntype", Promise)
96
+ ], DisputeQuery.prototype, "creator", null);
97
+ tslib_1.__decorate([
98
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User, { nullable: true, description: 'Who last changed it' }),
99
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
100
+ tslib_1.__metadata("design:type", Function),
101
+ tslib_1.__metadata("design:paramtypes", [dispute_1.Dispute]),
102
+ tslib_1.__metadata("design:returntype", Promise)
103
+ ], DisputeQuery.prototype, "updater", null);
104
+ exports.DisputeQuery = DisputeQuery = tslib_1.__decorate([
105
+ (0, type_graphql_1.Resolver)(dispute_1.Dispute),
106
+ (0, type_graphql_1.UseMiddleware)(shell_1.SpeakRefusals)
107
+ ], DisputeQuery);
108
+ let DisputeHearingQuery = class DisputeHearingQuery {
109
+ async dispute(row) {
110
+ return row.disputeId ? await (0, shell_1.getRepository)(dispute_1.Dispute).findOne({ where: { id: row.disputeId } }) : null;
111
+ }
112
+ };
113
+ exports.DisputeHearingQuery = DisputeHearingQuery;
114
+ tslib_1.__decorate([
115
+ (0, type_graphql_1.FieldResolver)(type => dispute_1.Dispute, { nullable: true, description: 'The dispute' }),
116
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
117
+ tslib_1.__metadata("design:type", Function),
118
+ tslib_1.__metadata("design:paramtypes", [dispute_1.DisputeHearing]),
119
+ tslib_1.__metadata("design:returntype", Promise)
120
+ ], DisputeHearingQuery.prototype, "dispute", null);
121
+ exports.DisputeHearingQuery = DisputeHearingQuery = tslib_1.__decorate([
122
+ (0, type_graphql_1.Resolver)(dispute_1.DisputeHearing)
123
+ ], DisputeHearingQuery);
124
+ //# sourceMappingURL=dispute-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispute-query.js","sourceRoot":"","sources":["../../../server/service/dispute/dispute-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root, UseMiddleware } from 'type-graphql'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Counterparty } from '@things-factory/biz-base'\nimport { getQueryBuilderFromListParams, getRepository, ListParam, Refusal, SpeakRefusals } from '@things-factory/shell'\n\nimport { DAY } from '../legal-record/days'\nimport { filesOf, managerOf } from '../legal-record/legal-record-support'\nimport { Dispute, DisputeHearing } from './dispute'\nimport { DISPUTE_REF_TYPE, disputeHearingsBetween } from './dispute-service'\nimport { DisputeCounterparty, DisputeHearingList, DisputeList } from './dispute-type'\n\n@Resolver(Dispute)\n@UseMiddleware(SpeakRefusals)\nexport class DisputeQuery {\n @Directive('@privilege(category: \"dispute\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DisputeList, { description: '분쟁 · 소송 - the disputes of the company (ADR-0187 decision 25)' })\n async disputes(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<DisputeList> {\n const queryBuilder = getQueryBuilderFromListParams({\n domain: context.state.domain,\n params,\n repository: getRepository(Dispute),\n searchables: ['title', 'caseNo', 'otherParty', 'counsel', 'notes'],\n alias: 'dispute',\n defaultSortings: [{ name: 'startedOn', desc: true }]\n })\n const [items, total] = await queryBuilder.getManyAndCount()\n return { items, total }\n }\n\n @Directive('@privilege(category: \"dispute\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DisputeHearingList, { description: 'The hearings of one dispute, or of every dispute from a day to a day - both days in' })\n async disputeHearings(\n @Arg('disputeId', { nullable: true }) disputeId: string,\n @Arg('from', { nullable: true, description: 'YYYY-MM-DD' }) from: string,\n @Arg('to', { nullable: true, description: 'YYYY-MM-DD' }) to: string,\n @Ctx() context: ResolverContext\n ): Promise<DisputeHearingList> {\n const { domain } = context.state\n let items: DisputeHearing[]\n if (disputeId) items = await getRepository(DisputeHearing).find({ where: { domain: { id: domain.id }, dispute: { id: disputeId } } as any, order: { heldOn: 'ASC', heldAt: 'ASC' } as any })\n else if (DAY.test(from ?? '') && DAY.test(to ?? '')) items = await disputeHearingsBetween(managerOf(context), domain, from, to)\n else throw new Refusal('dispute-hearings-range-required', {}, 'name the dispute, or give from and to, YYYY-MM-DD')\n return { items, total: items.length }\n }\n\n @Directive('@privilege(category: \"dispute\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [Attachment], { description: 'The files of a dispute - letters, pleadings, decisions' })\n async disputeFiles(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Attachment[]> {\n return await filesOf(managerOf(context), context.state.domain, DISPUTE_REF_TYPE, id)\n }\n\n @FieldResolver(type => DisputeCounterparty, { nullable: true, description: 'The counterparty - which one, nothing about it' })\n async counterparty(@Root() row: Dispute): Promise<DisputeCounterparty | null> {\n const one = row.counterpartyId ? await getRepository(Counterparty).findOne({ where: { id: row.counterpartyId } }) : null\n return one ? { id: one.id, name: one.name, businessNumber: one.businessNumber } : null\n }\n\n @FieldResolver(type => User, { nullable: true, description: 'Who wrote it' })\n async creator(@Root() row: Dispute): Promise<User | null> {\n return row.creatorId ? await getRepository(User).findOne({ where: { id: row.creatorId } }) : null\n }\n\n @FieldResolver(type => User, { nullable: true, description: 'Who last changed it' })\n async updater(@Root() row: Dispute): Promise<User | null> {\n return row.updaterId ? await getRepository(User).findOne({ where: { id: row.updaterId } }) : null\n }\n}\n\n@Resolver(DisputeHearing)\nexport class DisputeHearingQuery {\n @FieldResolver(type => Dispute, { nullable: true, description: 'The dispute' })\n async dispute(@Root() row: DisputeHearing): Promise<Dispute | null> {\n return row.disputeId ? await getRepository(Dispute).findOne({ where: { id: row.disputeId } }) : null\n }\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { Refusal } from '@things-factory/shell';
2
+ export declare const DISPUTE_KINDS: string[];
3
+ export declare const DISPUTE_STATUSES: string[];
4
+ /** How far ahead a hearing is raised by the management check. */
5
+ export declare const DISPUTE_HEARING_NOTICE_DAYS = 14;
6
+ export interface DisputeInput {
7
+ kind?: string | null;
8
+ title?: string | null;
9
+ status?: string | null;
10
+ startedOn?: string | null;
11
+ closedOn?: string | null;
12
+ }
13
+ /** What a dispute asks for before it is kept, or nothing. */
14
+ export declare function disputeRefusal(input: DisputeInput): Refusal | null;
15
+ /** What a hearing asks for, or nothing: a day, and a time when one is known. */
16
+ export declare function disputeHearingRefusal(input: {
17
+ heldOn?: string | null;
18
+ heldAt?: string | null;
19
+ name?: string | null;
20
+ }): Refusal | null;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DISPUTE_HEARING_NOTICE_DAYS = exports.DISPUTE_STATUSES = exports.DISPUTE_KINDS = void 0;
4
+ exports.disputeRefusal = disputeRefusal;
5
+ exports.disputeHearingRefusal = disputeHearingRefusal;
6
+ const shell_1 = require("@things-factory/shell");
7
+ const days_1 = require("../legal-record/days");
8
+ /*
9
+ * 분쟁 · 소송 (ADR-0187 decision 25). Pure - the service reads the rows, these say yes or no.
10
+ */
11
+ exports.DISPUTE_KINDS = ['CERTIFIED_LETTER_SENT', 'CERTIFIED_LETTER_RECEIVED', 'LAWSUIT', 'MEDIATION', 'ADMINISTRATIVE_ACTION'];
12
+ exports.DISPUTE_STATUSES = ['OPEN', 'CLOSED'];
13
+ /** How far ahead a hearing is raised by the management check. */
14
+ exports.DISPUTE_HEARING_NOTICE_DAYS = 14;
15
+ const TIME = /^([01]\d|2[0-3]):[0-5]\d$/;
16
+ /** What a dispute asks for before it is kept, or nothing. */
17
+ function disputeRefusal(input) {
18
+ if (!exports.DISPUTE_KINDS.includes(input.kind ?? ''))
19
+ return new shell_1.Refusal('dispute-kind-required', {}, 'pick the kind - a certified letter sent or received, a lawsuit, a mediation, an administrative action');
20
+ if (!input.title?.trim())
21
+ return new shell_1.Refusal('dispute-title-required', {}, 'say what the dispute is about');
22
+ if (!exports.DISPUTE_STATUSES.includes(input.status ?? ''))
23
+ return new shell_1.Refusal('dispute-status-invalid', {}, 'the status is open or closed');
24
+ if (!(0, days_1.isDay)(input.startedOn))
25
+ return new shell_1.Refusal('dispute-started-on-required', {}, 'give the day it started, YYYY-MM-DD');
26
+ if (input.closedOn && (!(0, days_1.isDay)(input.closedOn) || input.closedOn < input.startedOn))
27
+ return new shell_1.Refusal('dispute-closed-on-invalid', { startedOn: input.startedOn }, `it closes on or after ${input.startedOn}, YYYY-MM-DD`);
28
+ if (input.status === 'CLOSED' && !input.closedOn)
29
+ return new shell_1.Refusal('dispute-closed-on-required', {}, 'give the day it closed');
30
+ return null;
31
+ }
32
+ /** What a hearing asks for, or nothing: a day, and a time when one is known. */
33
+ function disputeHearingRefusal(input) {
34
+ if (!(0, days_1.isDay)(input.heldOn))
35
+ return new shell_1.Refusal('dispute-hearing-day-required', {}, 'give the day of the hearing, YYYY-MM-DD');
36
+ if (input.heldAt && !TIME.test(input.heldAt))
37
+ return new shell_1.Refusal('dispute-hearing-time-invalid', {}, 'the time is HH:MM');
38
+ if (!input.name?.trim())
39
+ return new shell_1.Refusal('dispute-hearing-name-required', {}, 'say what the hearing is - 변론기일, 조정기일 ...');
40
+ return null;
41
+ }
42
+ //# sourceMappingURL=dispute-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispute-rules.js","sourceRoot":"","sources":["../../../server/service/dispute/dispute-rules.ts"],"names":[],"mappings":";;;AAwBA,wCAQC;AAGD,sDAKC;AAxCD,iDAA+C;AAE/C,+CAA4C;AAE5C;;GAEG;AAEU,QAAA,aAAa,GAAG,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,CAAC,CAAA;AACvH,QAAA,gBAAgB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAClD,iEAAiE;AACpD,QAAA,2BAA2B,GAAG,EAAE,CAAA;AAE7C,MAAM,IAAI,GAAG,2BAA2B,CAAA;AAUxC,6DAA6D;AAC7D,SAAgB,cAAc,CAAC,KAAmB;IAChD,IAAI,CAAC,qBAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,eAAO,CAAC,uBAAuB,EAAE,EAAE,EAAE,uGAAuG,CAAC,CAAA;IACvM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;QAAE,OAAO,IAAI,eAAO,CAAC,wBAAwB,EAAE,EAAE,EAAE,+BAA+B,CAAC,CAAA;IAC3G,IAAI,CAAC,wBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,eAAO,CAAC,wBAAwB,EAAE,EAAE,EAAE,8BAA8B,CAAC,CAAA;IACpI,IAAI,CAAC,IAAA,YAAK,EAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,eAAO,CAAC,6BAA6B,EAAE,EAAE,EAAE,qCAAqC,CAAC,CAAA;IACzH,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAA,YAAK,EAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,eAAO,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,yBAAyB,KAAK,CAAC,SAAS,cAAc,CAAC,CAAA;IAC3N,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,IAAI,eAAO,CAAC,4BAA4B,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAA;IAChI,OAAO,IAAI,CAAA;AACb,CAAC;AAED,gFAAgF;AAChF,SAAgB,qBAAqB,CAAC,KAA+E;IACnH,IAAI,CAAC,IAAA,YAAK,EAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,eAAO,CAAC,8BAA8B,EAAE,EAAE,EAAE,yCAAyC,CAAC,CAAA;IAC3H,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,eAAO,CAAC,8BAA8B,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAA;IACzH,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,IAAI,eAAO,CAAC,+BAA+B,EAAE,EAAE,EAAE,0CAA0C,CAAC,CAAA;IAC5H,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { Refusal } from '@things-factory/shell'\n\nimport { isDay } from '../legal-record/days'\n\n/*\n * 분쟁 · 소송 (ADR-0187 decision 25). Pure - the service reads the rows, these say yes or no.\n */\n\nexport const DISPUTE_KINDS = ['CERTIFIED_LETTER_SENT', 'CERTIFIED_LETTER_RECEIVED', 'LAWSUIT', 'MEDIATION', 'ADMINISTRATIVE_ACTION']\nexport const DISPUTE_STATUSES = ['OPEN', 'CLOSED']\n/** How far ahead a hearing is raised by the management check. */\nexport const DISPUTE_HEARING_NOTICE_DAYS = 14\n\nconst TIME = /^([01]\\d|2[0-3]):[0-5]\\d$/\n\nexport interface DisputeInput {\n kind?: string | null\n title?: string | null\n status?: string | null\n startedOn?: string | null\n closedOn?: string | null\n}\n\n/** What a dispute asks for before it is kept, or nothing. */\nexport function disputeRefusal(input: DisputeInput): Refusal | null {\n if (!DISPUTE_KINDS.includes(input.kind ?? '')) return new Refusal('dispute-kind-required', {}, 'pick the kind - a certified letter sent or received, a lawsuit, a mediation, an administrative action')\n if (!input.title?.trim()) return new Refusal('dispute-title-required', {}, 'say what the dispute is about')\n if (!DISPUTE_STATUSES.includes(input.status ?? '')) return new Refusal('dispute-status-invalid', {}, 'the status is open or closed')\n if (!isDay(input.startedOn)) return new Refusal('dispute-started-on-required', {}, 'give the day it started, YYYY-MM-DD')\n if (input.closedOn && (!isDay(input.closedOn) || input.closedOn < input.startedOn)) return new Refusal('dispute-closed-on-invalid', { startedOn: input.startedOn }, `it closes on or after ${input.startedOn}, YYYY-MM-DD`)\n if (input.status === 'CLOSED' && !input.closedOn) return new Refusal('dispute-closed-on-required', {}, 'give the day it closed')\n return null\n}\n\n/** What a hearing asks for, or nothing: a day, and a time when one is known. */\nexport function disputeHearingRefusal(input: { heldOn?: string | null; heldAt?: string | null; name?: string | null }): Refusal | null {\n if (!isDay(input.heldOn)) return new Refusal('dispute-hearing-day-required', {}, 'give the day of the hearing, YYYY-MM-DD')\n if (input.heldAt && !TIME.test(input.heldAt)) return new Refusal('dispute-hearing-time-invalid', {}, 'the time is HH:MM')\n if (!input.name?.trim()) return new Refusal('dispute-hearing-name-required', {}, 'say what the hearing is - 변론기일, 조정기일 ...')\n return null\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import { EntityManager } from 'typeorm';
2
+ import { Dispute, DisputeHearing } from './dispute';
3
+ import { DisputeHearingPatch, DisputePatch } from './dispute-type';
4
+ export declare const DISPUTE_CATEGORY = "dispute";
5
+ export declare const DISPUTE_REF_TYPE = "compliance-dispute";
6
+ /** Writes the new and changed disputes - a deleted one is refused. */
7
+ export declare function saveDisputes(patches: DisputePatch[], context: ResolverContext): Promise<Dispute[]>;
8
+ /** Writes a dispute's hearings - a hearing is never deleted, a wrong one is corrected. */
9
+ export declare function saveDisputeHearings(disputeId: string, patches: DisputeHearingPatch[], context: ResolverContext): Promise<DisputeHearing[]>;
10
+ /** The hearings held from `from` to `to`, both days in, in order. */
11
+ export declare function disputeHearingsBetween(tx: EntityManager, domain: {
12
+ id: string;
13
+ }, from: string, to: string): Promise<DisputeHearing[]>;
14
+ /** The management check (ADR-0146): hearings of open disputes from today to 14 days on. */
15
+ export declare function disputeHearingsSoon(tx: EntityManager, domain: {
16
+ id: string;
17
+ }, today: string): Promise<DisputeHearing[]>;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DISPUTE_REF_TYPE = exports.DISPUTE_CATEGORY = void 0;
4
+ exports.saveDisputes = saveDisputes;
5
+ exports.saveDisputeHearings = saveDisputeHearings;
6
+ exports.disputeHearingsBetween = disputeHearingsBetween;
7
+ exports.disputeHearingsSoon = disputeHearingsSoon;
8
+ const typeorm_1 = require("typeorm");
9
+ const biz_base_1 = require("@things-factory/biz-base");
10
+ const shell_1 = require("@things-factory/shell");
11
+ const correction_1 = require("../common/correction");
12
+ const days_1 = require("../legal-record/days");
13
+ const legal_record_support_1 = require("../legal-record/legal-record-support");
14
+ const dispute_1 = require("./dispute");
15
+ const dispute_rules_1 = require("./dispute-rules");
16
+ /*
17
+ * 분쟁 · 소송 (ADR-0187 decision 25): written and corrected by those who keep the records, never deleted.
18
+ */
19
+ exports.DISPUTE_CATEGORY = 'dispute';
20
+ exports.DISPUTE_REF_TYPE = 'compliance-dispute';
21
+ const WRITABLE = ['kind', 'title', 'caseNo', 'otherParty', 'counsel', 'status', 'startedOn', 'closedOn', 'outcome', 'costs', 'notes'];
22
+ const notFound = () => new shell_1.Refusal('dispute-not-found', {}, 'the dispute was not found. reload and try again.');
23
+ const notDeletable = () => new shell_1.Refusal('legal-record-not-deletable', {}, 'a legal record is never deleted - end it, or correct it');
24
+ /** Writes the new and changed disputes - a deleted one is refused. */
25
+ async function saveDisputes(patches, context) {
26
+ const { domain, user, tx } = context.state;
27
+ const repository = tx.getRepository(dispute_1.Dispute);
28
+ const saved = [];
29
+ for (const patch of patches) {
30
+ if (patch.cuFlag === '-')
31
+ throw notDeletable();
32
+ const row = patch.id ? await repository.findOne({ where: { id: patch.id, domain: { id: domain.id } } }) : repository.create({ domain, status: 'OPEN', creator: user });
33
+ if (!row)
34
+ throw notFound();
35
+ const before = { ...row };
36
+ const given = new Set((0, legal_record_support_1.fieldsOf)(patch));
37
+ for (const field of WRITABLE)
38
+ if (given.has(field))
39
+ row[field] = (0, legal_record_support_1.text)(patch[field]);
40
+ row.status ??= 'OPEN';
41
+ if (given.has('counterpartyId')) {
42
+ const id = (0, legal_record_support_1.text)(patch.counterpartyId);
43
+ row.counterparty = id ? await tx.getRepository(biz_base_1.Counterparty).findOne({ where: { id, domain: { id: domain.id } } }) : null;
44
+ if (id && !row.counterparty)
45
+ throw new shell_1.Refusal('dispute-counterparty-unknown', {}, 'the counterparty must be of this domain');
46
+ }
47
+ const refusal = (0, dispute_rules_1.disputeRefusal)(row);
48
+ if (refusal)
49
+ throw refusal;
50
+ row.updater = user;
51
+ saved.push(await repository.save(row));
52
+ const after = { ...row, counterpartyId: given.has('counterpartyId') ? (row.counterparty?.id ?? null) : row.counterpartyId };
53
+ await (0, correction_1.recordCorrections)(tx, domain, user, { kind: 'Dispute', id: row.id }, before, after, [...WRITABLE, 'counterpartyId']);
54
+ }
55
+ return saved;
56
+ }
57
+ /** Writes a dispute's hearings - a hearing is never deleted, a wrong one is corrected. */
58
+ async function saveDisputeHearings(disputeId, patches, context) {
59
+ const { domain, user, tx } = context.state;
60
+ const dispute = await tx.getRepository(dispute_1.Dispute).findOne({ where: { id: disputeId, domain: { id: domain.id } } });
61
+ if (!dispute)
62
+ throw notFound();
63
+ const repository = tx.getRepository(dispute_1.DisputeHearing);
64
+ const saved = [];
65
+ for (const patch of patches) {
66
+ if (patch.cuFlag === '-')
67
+ throw notDeletable();
68
+ const row = patch.id ? await repository.findOne({ where: { id: patch.id, dispute: { id: dispute.id } } }) : repository.create({ domain, dispute, creator: user });
69
+ if (!row)
70
+ throw notFound();
71
+ const before = { ...row };
72
+ for (const field of ['heldOn', 'heldAt', 'name', 'place', 'notes'])
73
+ if (patch[field] !== undefined)
74
+ row[field] = (0, legal_record_support_1.text)(patch[field]);
75
+ const refusal = (0, dispute_rules_1.disputeHearingRefusal)(row);
76
+ if (refusal)
77
+ throw refusal;
78
+ row.updater = user;
79
+ saved.push(await repository.save(row));
80
+ await (0, correction_1.recordCorrections)(tx, domain, user, { kind: 'DisputeHearing', id: row.id }, before, row, ['heldOn', 'heldAt', 'name', 'place', 'notes']);
81
+ }
82
+ return saved;
83
+ }
84
+ /** The hearings held from `from` to `to`, both days in, in order. */
85
+ async function disputeHearingsBetween(tx, domain, from, to) {
86
+ return await tx.getRepository(dispute_1.DisputeHearing).find({ where: { domain: { id: domain.id }, heldOn: (0, typeorm_1.Between)(from, to) }, order: { heldOn: 'ASC', heldAt: 'ASC' } });
87
+ }
88
+ /** The management check (ADR-0146): hearings of open disputes from today to 14 days on. */
89
+ async function disputeHearingsSoon(tx, domain, today) {
90
+ const hearings = await disputeHearingsBetween(tx, domain, today, (0, days_1.addDays)(today, dispute_rules_1.DISPUTE_HEARING_NOTICE_DAYS));
91
+ if (!hearings.length)
92
+ return [];
93
+ const open = new Set((await tx.getRepository(dispute_1.Dispute).find({ where: { domain: { id: domain.id }, status: 'OPEN' } })).map(one => one.id));
94
+ return hearings.filter(one => open.has(one.disputeId));
95
+ }
96
+ //# sourceMappingURL=dispute-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispute-service.js","sourceRoot":"","sources":["../../../server/service/dispute/dispute-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Between, EntityManager } from 'typeorm'\n\nimport { Counterparty } from '@things-factory/biz-base'\nimport { Refusal } from '@things-factory/shell'\n\nimport { recordCorrections } from '../common/correction'\nimport { addDays } from '../legal-record/days'\nimport { fieldsOf, text } from '../legal-record/legal-record-support'\nimport { Dispute, DisputeHearing } from './dispute'\nimport { disputeRefusal, DISPUTE_HEARING_NOTICE_DAYS, disputeHearingRefusal } from './dispute-rules'\nimport { DisputeHearingPatch, DisputePatch } from './dispute-type'\n\n/*\n * 분쟁 · 소송 (ADR-0187 decision 25): written and corrected by those who keep the records, never deleted.\n */\n\nexport const DISPUTE_CATEGORY = 'dispute'\nexport const DISPUTE_REF_TYPE = 'compliance-dispute'\nconst WRITABLE = ['kind', 'title', 'caseNo', 'otherParty', 'counsel', 'status', 'startedOn', 'closedOn', 'outcome', 'costs', 'notes'] as const\n\nconst notFound = () => new Refusal('dispute-not-found', {}, 'the dispute was not found. reload and try again.')\nconst notDeletable = () => new Refusal('legal-record-not-deletable', {}, 'a legal record is never deleted - end it, or correct it')\n\n/** Writes the new and changed disputes - a deleted one is refused. */\nexport async function saveDisputes(patches: DisputePatch[], context: ResolverContext): Promise<Dispute[]> {\n const { domain, user, tx } = context.state\n const repository = tx.getRepository(Dispute)\n const saved: Dispute[] = []\n for (const patch of patches) {\n if (patch.cuFlag === '-') throw notDeletable()\n const row: Dispute = patch.id ? await repository.findOne({ where: { id: patch.id, domain: { id: domain.id } } as any }) : (repository.create({ domain, status: 'OPEN', creator: user } as any) as any)\n if (!row) throw notFound()\n const before = { ...row }\n const given = new Set(fieldsOf(patch))\n for (const field of WRITABLE) if (given.has(field)) (row as any)[field] = text((patch as any)[field])\n row.status ??= 'OPEN'\n if (given.has('counterpartyId')) {\n const id = text(patch.counterpartyId)\n row.counterparty = id ? await tx.getRepository(Counterparty).findOne({ where: { id, domain: { id: domain.id } } as any }) : null\n if (id && !row.counterparty) throw new Refusal('dispute-counterparty-unknown', {}, 'the counterparty must be of this domain')\n }\n const refusal = disputeRefusal(row)\n if (refusal) throw refusal\n row.updater = user\n saved.push(await repository.save(row))\n const after = { ...row, counterpartyId: given.has('counterpartyId') ? (row.counterparty?.id ?? null) : row.counterpartyId }\n await recordCorrections(tx, domain, user, { kind: 'Dispute', id: row.id }, before, after, [...WRITABLE, 'counterpartyId'])\n }\n return saved\n}\n\n/** Writes a dispute's hearings - a hearing is never deleted, a wrong one is corrected. */\nexport async function saveDisputeHearings(disputeId: string, patches: DisputeHearingPatch[], context: ResolverContext): Promise<DisputeHearing[]> {\n const { domain, user, tx } = context.state\n const dispute = await tx.getRepository(Dispute).findOne({ where: { id: disputeId, domain: { id: domain.id } } as any })\n if (!dispute) throw notFound()\n const repository = tx.getRepository(DisputeHearing)\n const saved: DisputeHearing[] = []\n for (const patch of patches) {\n if (patch.cuFlag === '-') throw notDeletable()\n const row: DisputeHearing = patch.id ? await repository.findOne({ where: { id: patch.id, dispute: { id: dispute.id } } as any }) : (repository.create({ domain, dispute, creator: user } as any) as any)\n if (!row) throw notFound()\n const before = { ...row }\n for (const field of ['heldOn', 'heldAt', 'name', 'place', 'notes'] as const) if (patch[field] !== undefined) (row as any)[field] = text(patch[field])\n const refusal = disputeHearingRefusal(row)\n if (refusal) throw refusal\n row.updater = user\n saved.push(await repository.save(row))\n await recordCorrections(tx, domain, user, { kind: 'DisputeHearing', id: row.id }, before, row, ['heldOn', 'heldAt', 'name', 'place', 'notes'])\n }\n return saved\n}\n\n/** The hearings held from `from` to `to`, both days in, in order. */\nexport async function disputeHearingsBetween(tx: EntityManager, domain: { id: string }, from: string, to: string): Promise<DisputeHearing[]> {\n return await tx.getRepository(DisputeHearing).find({ where: { domain: { id: domain.id }, heldOn: Between(from, to) } as any, order: { heldOn: 'ASC', heldAt: 'ASC' } as any })\n}\n\n/** The management check (ADR-0146): hearings of open disputes from today to 14 days on. */\nexport async function disputeHearingsSoon(tx: EntityManager, domain: { id: string }, today: string): Promise<DisputeHearing[]> {\n const hearings = await disputeHearingsBetween(tx, domain, today, addDays(today, DISPUTE_HEARING_NOTICE_DAYS))\n if (!hearings.length) return []\n const open = new Set((await tx.getRepository(Dispute).find({ where: { domain: { id: domain.id }, status: 'OPEN' } as any })).map(one => one.id))\n return hearings.filter(one => open.has(one.disputeId))\n}\n"]}
@@ -0,0 +1,39 @@
1
+ import { Dispute, DisputeHearing } from './dispute';
2
+ export declare class DisputePatch {
3
+ id?: string;
4
+ kind?: string;
5
+ title?: string;
6
+ caseNo?: string;
7
+ counterpartyId?: string;
8
+ otherParty?: string;
9
+ counsel?: string;
10
+ status?: string;
11
+ startedOn?: string;
12
+ closedOn?: string;
13
+ outcome?: string;
14
+ costs?: string;
15
+ notes?: string;
16
+ cuFlag?: string;
17
+ }
18
+ export declare class DisputeHearingPatch {
19
+ id?: string;
20
+ heldOn?: string;
21
+ heldAt?: string;
22
+ name?: string;
23
+ place?: string;
24
+ notes?: string;
25
+ cuFlag?: string;
26
+ }
27
+ export declare class DisputeCounterparty {
28
+ id: string;
29
+ name: string;
30
+ businessNumber?: string;
31
+ }
32
+ export declare class DisputeList {
33
+ items: Dispute[];
34
+ total: number;
35
+ }
36
+ export declare class DisputeHearingList {
37
+ items: DisputeHearing[];
38
+ total: number;
39
+ }