@things-factory/dataset 10.1.246 → 10.1.248

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 (351) hide show
  1. package/package.json +12 -12
  2. package/dist-client/activities/activity-data-collect-edit.d.ts +0 -26
  3. package/dist-client/activities/activity-data-collect-edit.js +0 -156
  4. package/dist-client/activities/activity-data-collect-edit.js.map +0 -1
  5. package/dist-client/activities/activity-data-collect-view.d.ts +0 -16
  6. package/dist-client/activities/activity-data-collect-view.js +0 -94
  7. package/dist-client/activities/activity-data-collect-view.js.map +0 -1
  8. package/dist-client/activities/activity-data-review-edit.d.ts +0 -20
  9. package/dist-client/activities/activity-data-review-edit.js +0 -300
  10. package/dist-client/activities/activity-data-review-edit.js.map +0 -1
  11. package/dist-client/activities/activity-data-review-view.d.ts +0 -16
  12. package/dist-client/activities/activity-data-review-view.js +0 -247
  13. package/dist-client/activities/activity-data-review-view.js.map +0 -1
  14. package/dist-client/activities/activity-ooc-resolve-edit.d.ts +0 -2
  15. package/dist-client/activities/activity-ooc-resolve-edit.js +0 -203
  16. package/dist-client/activities/activity-ooc-resolve-edit.js.map +0 -1
  17. package/dist-client/activities/activity-ooc-resolve-view.d.ts +0 -14
  18. package/dist-client/activities/activity-ooc-resolve-view.js +0 -154
  19. package/dist-client/activities/activity-ooc-resolve-view.js.map +0 -1
  20. package/dist-client/activities/activity-ooc-review-edit.d.ts +0 -3
  21. package/dist-client/activities/activity-ooc-review-edit.js +0 -197
  22. package/dist-client/activities/activity-ooc-review-edit.js.map +0 -1
  23. package/dist-client/activities/activity-ooc-review-view.d.ts +0 -1
  24. package/dist-client/activities/activity-ooc-review-view.js +0 -139
  25. package/dist-client/activities/activity-ooc-review-view.js.map +0 -1
  26. package/dist-client/bootstrap.d.ts +0 -10
  27. package/dist-client/bootstrap.js +0 -26
  28. package/dist-client/bootstrap.js.map +0 -1
  29. package/dist-client/components/checklist-entry-form.d.ts +0 -21
  30. package/dist-client/components/checklist-entry-form.js +0 -107
  31. package/dist-client/components/checklist-entry-form.js.map +0 -1
  32. package/dist-client/components/data-entry-form.d.ts +0 -21
  33. package/dist-client/components/data-entry-form.js +0 -107
  34. package/dist-client/components/data-entry-form.js.map +0 -1
  35. package/dist-client/index.d.ts +0 -1
  36. package/dist-client/index.js +0 -2
  37. package/dist-client/index.js.map +0 -1
  38. package/dist-client/pages/data-archive/data-archive-list-page.d.ts +0 -55
  39. package/dist-client/pages/data-archive/data-archive-list-page.js +0 -234
  40. package/dist-client/pages/data-archive/data-archive-list-page.js.map +0 -1
  41. package/dist-client/pages/data-archive/data-archive-request-popup.d.ts +0 -1
  42. package/dist-client/pages/data-archive/data-archive-request-popup.js +0 -160
  43. package/dist-client/pages/data-archive/data-archive-request-popup.js.map +0 -1
  44. package/dist-client/pages/data-entry/data-entry-list-page.d.ts +0 -31
  45. package/dist-client/pages/data-entry/data-entry-list-page.js +0 -383
  46. package/dist-client/pages/data-entry/data-entry-list-page.js.map +0 -1
  47. package/dist-client/pages/data-key-set/data-key-item-list.d.ts +0 -19
  48. package/dist-client/pages/data-key-set/data-key-item-list.js +0 -183
  49. package/dist-client/pages/data-key-set/data-key-item-list.js.map +0 -1
  50. package/dist-client/pages/data-key-set/data-key-set-importer.d.ts +0 -10
  51. package/dist-client/pages/data-key-set/data-key-set-importer.js +0 -93
  52. package/dist-client/pages/data-key-set/data-key-set-importer.js.map +0 -1
  53. package/dist-client/pages/data-key-set/data-key-set-list-page.d.ts +0 -56
  54. package/dist-client/pages/data-key-set/data-key-set-list-page.js +0 -335
  55. package/dist-client/pages/data-key-set/data-key-set-list-page.js.map +0 -1
  56. package/dist-client/pages/data-ooc/data-ooc-list-page.d.ts +0 -67
  57. package/dist-client/pages/data-ooc/data-ooc-list-page.js +0 -484
  58. package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +0 -1
  59. package/dist-client/pages/data-ooc/data-ooc-page.d.ts +0 -18
  60. package/dist-client/pages/data-ooc/data-ooc-page.js +0 -166
  61. package/dist-client/pages/data-ooc/data-ooc-page.js.map +0 -1
  62. package/dist-client/pages/data-ooc/data-ooc-view.d.ts +0 -19
  63. package/dist-client/pages/data-ooc/data-ooc-view.js +0 -234
  64. package/dist-client/pages/data-ooc/data-ooc-view.js.map +0 -1
  65. package/dist-client/pages/data-ooc/data-oocs-page.d.ts +0 -18
  66. package/dist-client/pages/data-ooc/data-oocs-page.js +0 -198
  67. package/dist-client/pages/data-ooc/data-oocs-page.js.map +0 -1
  68. package/dist-client/pages/data-report/data-report-embed-page.d.ts +0 -36
  69. package/dist-client/pages/data-report/data-report-embed-page.js +0 -104
  70. package/dist-client/pages/data-report/data-report-embed-page.js.map +0 -1
  71. package/dist-client/pages/data-report/data-report-list-page.d.ts +0 -30
  72. package/dist-client/pages/data-report/data-report-list-page.js +0 -370
  73. package/dist-client/pages/data-report/data-report-list-page.js.map +0 -1
  74. package/dist-client/pages/data-report/data-report-samples-page.d.ts +0 -26
  75. package/dist-client/pages/data-report/data-report-samples-page.js +0 -151
  76. package/dist-client/pages/data-report/data-report-samples-page.js.map +0 -1
  77. package/dist-client/pages/data-report/jasper-report-oocs-page.d.ts +0 -2
  78. package/dist-client/pages/data-report/jasper-report-oocs-page.js +0 -104
  79. package/dist-client/pages/data-report/jasper-report-oocs-page.js.map +0 -1
  80. package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.d.ts +0 -2
  81. package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js +0 -104
  82. package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js.map +0 -1
  83. package/dist-client/pages/data-report/jasper-report-samples-page.d.ts +0 -2
  84. package/dist-client/pages/data-report/jasper-report-samples-page.js +0 -104
  85. package/dist-client/pages/data-report/jasper-report-samples-page.js.map +0 -1
  86. package/dist-client/pages/data-sample/data-sample-list-page.d.ts +0 -62
  87. package/dist-client/pages/data-sample/data-sample-list-page.js +0 -372
  88. package/dist-client/pages/data-sample/data-sample-list-page.js.map +0 -1
  89. package/dist-client/pages/data-sample/data-sample-page.d.ts +0 -17
  90. package/dist-client/pages/data-sample/data-sample-page.js +0 -57
  91. package/dist-client/pages/data-sample/data-sample-page.js.map +0 -1
  92. package/dist-client/pages/data-sample/data-sample-search-page.d.ts +0 -51
  93. package/dist-client/pages/data-sample/data-sample-search-page.js +0 -364
  94. package/dist-client/pages/data-sample/data-sample-search-page.js.map +0 -1
  95. package/dist-client/pages/data-sample/data-sample-view.d.ts +0 -23
  96. package/dist-client/pages/data-sample/data-sample-view.js +0 -309
  97. package/dist-client/pages/data-sample/data-sample-view.js.map +0 -1
  98. package/dist-client/pages/data-sample/data-samples-page.d.ts +0 -21
  99. package/dist-client/pages/data-sample/data-samples-page.js +0 -247
  100. package/dist-client/pages/data-sample/data-samples-page.js.map +0 -1
  101. package/dist-client/pages/data-sensor/data-sensor-list-page.d.ts +0 -50
  102. package/dist-client/pages/data-sensor/data-sensor-list-page.js +0 -395
  103. package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +0 -1
  104. package/dist-client/pages/data-set/data-item-list.d.ts +0 -1
  105. package/dist-client/pages/data-set/data-item-list.js +0 -321
  106. package/dist-client/pages/data-set/data-item-list.js.map +0 -1
  107. package/dist-client/pages/data-set/data-set-importer.d.ts +0 -11
  108. package/dist-client/pages/data-set/data-set-importer.js +0 -96
  109. package/dist-client/pages/data-set/data-set-importer.js.map +0 -1
  110. package/dist-client/pages/data-set/data-set-list-page.d.ts +0 -77
  111. package/dist-client/pages/data-set/data-set-list-page.js +0 -1065
  112. package/dist-client/pages/data-set/data-set-list-page.js.map +0 -1
  113. package/dist-client/pages/data-summary/data-summary-list-page.d.ts +0 -51
  114. package/dist-client/pages/data-summary/data-summary-list-page.js +0 -308
  115. package/dist-client/pages/data-summary/data-summary-list-page.js.map +0 -1
  116. package/dist-client/pages/data-summary/data-summary-period-page.d.ts +0 -73
  117. package/dist-client/pages/data-summary/data-summary-period-page.js +0 -413
  118. package/dist-client/pages/data-summary/data-summary-period-page.js.map +0 -1
  119. package/dist-client/pages/data-summary/data-summary-search-page.d.ts +0 -70
  120. package/dist-client/pages/data-summary/data-summary-search-page.js +0 -360
  121. package/dist-client/pages/data-summary/data-summary-search-page.js.map +0 -1
  122. package/dist-client/pages/data-summary/data-summary-view.d.ts +0 -1
  123. package/dist-client/pages/data-summary/data-summary-view.js +0 -114
  124. package/dist-client/pages/data-summary/data-summary-view.js.map +0 -1
  125. package/dist-client/pages/sure-to.d.ts +0 -1
  126. package/dist-client/pages/sure-to.js +0 -10
  127. package/dist-client/pages/sure-to.js.map +0 -1
  128. package/dist-client/route.d.ts +0 -1
  129. package/dist-client/route.js +0 -71
  130. package/dist-client/route.js.map +0 -1
  131. package/dist-client/tsconfig.tsbuildinfo +0 -1
  132. package/dist-server/activities/activity-data-collect.d.ts +0 -42
  133. package/dist-server/activities/activity-data-collect.js +0 -89
  134. package/dist-server/activities/activity-data-collect.js.map +0 -1
  135. package/dist-server/activities/activity-data-review.d.ts +0 -42
  136. package/dist-server/activities/activity-data-review.js +0 -101
  137. package/dist-server/activities/activity-data-review.js.map +0 -1
  138. package/dist-server/activities/activity-ooc-resolve.d.ts +0 -42
  139. package/dist-server/activities/activity-ooc-resolve.js +0 -110
  140. package/dist-server/activities/activity-ooc-resolve.js.map +0 -1
  141. package/dist-server/activities/activity-ooc-review.d.ts +0 -42
  142. package/dist-server/activities/activity-ooc-review.js +0 -91
  143. package/dist-server/activities/activity-ooc-review.js.map +0 -1
  144. package/dist-server/activities/index.d.ts +0 -1
  145. package/dist-server/activities/index.js +0 -11
  146. package/dist-server/activities/index.js.map +0 -1
  147. package/dist-server/controllers/create-data-ooc.d.ts +0 -4
  148. package/dist-server/controllers/create-data-ooc.js +0 -73
  149. package/dist-server/controllers/create-data-ooc.js.map +0 -1
  150. package/dist-server/controllers/create-data-sample.d.ts +0 -3
  151. package/dist-server/controllers/create-data-sample.js +0 -341
  152. package/dist-server/controllers/create-data-sample.js.map +0 -1
  153. package/dist-server/controllers/data-use-case.d.ts +0 -36
  154. package/dist-server/controllers/data-use-case.js +0 -62
  155. package/dist-server/controllers/data-use-case.js.map +0 -1
  156. package/dist-server/controllers/finalize-data-collection.d.ts +0 -4
  157. package/dist-server/controllers/finalize-data-collection.js +0 -354
  158. package/dist-server/controllers/finalize-data-collection.js.map +0 -1
  159. package/dist-server/controllers/index.d.ts +0 -6
  160. package/dist-server/controllers/index.js +0 -10
  161. package/dist-server/controllers/index.js.map +0 -1
  162. package/dist-server/controllers/issue-data-collection-task.d.ts +0 -2
  163. package/dist-server/controllers/issue-data-collection-task.js +0 -64
  164. package/dist-server/controllers/issue-data-collection-task.js.map +0 -1
  165. package/dist-server/controllers/issue-ooc-resolve.d.ts +0 -3
  166. package/dist-server/controllers/issue-ooc-resolve.js +0 -55
  167. package/dist-server/controllers/issue-ooc-resolve.js.map +0 -1
  168. package/dist-server/controllers/issue-ooc-review.d.ts +0 -3
  169. package/dist-server/controllers/issue-ooc-review.js +0 -52
  170. package/dist-server/controllers/issue-ooc-review.js.map +0 -1
  171. package/dist-server/controllers/jasper-report.d.ts +0 -1
  172. package/dist-server/controllers/jasper-report.js +0 -166
  173. package/dist-server/controllers/jasper-report.js.map +0 -1
  174. package/dist-server/controllers/query-data-summary-by-period.d.ts +0 -3
  175. package/dist-server/controllers/query-data-summary-by-period.js +0 -163
  176. package/dist-server/controllers/query-data-summary-by-period.js.map +0 -1
  177. package/dist-server/controllers/shiny-report.d.ts +0 -1
  178. package/dist-server/controllers/shiny-report.js +0 -40
  179. package/dist-server/controllers/shiny-report.js.map +0 -1
  180. package/dist-server/engine/index.d.ts +0 -1
  181. package/dist-server/engine/index.js +0 -4
  182. package/dist-server/engine/index.js.map +0 -1
  183. package/dist-server/engine/task/create-data-sample.d.ts +0 -1
  184. package/dist-server/engine/task/create-data-sample.js +0 -81
  185. package/dist-server/engine/task/create-data-sample.js.map +0 -1
  186. package/dist-server/engine/task/index.d.ts +0 -2
  187. package/dist-server/engine/task/index.js +0 -5
  188. package/dist-server/engine/task/index.js.map +0 -1
  189. package/dist-server/engine/task/issue-collect-data.d.ts +0 -1
  190. package/dist-server/engine/task/issue-collect-data.js +0 -40
  191. package/dist-server/engine/task/issue-collect-data.js.map +0 -1
  192. package/dist-server/index.d.ts +0 -6
  193. package/dist-server/index.js +0 -10
  194. package/dist-server/index.js.map +0 -1
  195. package/dist-server/routes.d.ts +0 -1
  196. package/dist-server/routes.js +0 -152
  197. package/dist-server/routes.js.map +0 -1
  198. package/dist-server/service/data-archive/data-archive-mutation.d.ts +0 -16
  199. package/dist-server/service/data-archive/data-archive-mutation.js +0 -278
  200. package/dist-server/service/data-archive/data-archive-mutation.js.map +0 -1
  201. package/dist-server/service/data-archive/data-archive-query.d.ts +0 -11
  202. package/dist-server/service/data-archive/data-archive-query.js +0 -97
  203. package/dist-server/service/data-archive/data-archive-query.js.map +0 -1
  204. package/dist-server/service/data-archive/data-archive-type.d.ts +0 -23
  205. package/dist-server/service/data-archive/data-archive-type.js +0 -77
  206. package/dist-server/service/data-archive/data-archive-type.js.map +0 -1
  207. package/dist-server/service/data-archive/data-archive.d.ts +0 -19
  208. package/dist-server/service/data-archive/data-archive.js +0 -84
  209. package/dist-server/service/data-archive/data-archive.js.map +0 -1
  210. package/dist-server/service/data-archive/index.d.ts +0 -5
  211. package/dist-server/service/data-archive/index.js +0 -9
  212. package/dist-server/service/data-archive/index.js.map +0 -1
  213. package/dist-server/service/data-key-set/data-key-item-type.d.ts +0 -12
  214. package/dist-server/service/data-key-set/data-key-item-type.js +0 -52
  215. package/dist-server/service/data-key-set/data-key-item-type.js.map +0 -1
  216. package/dist-server/service/data-key-set/data-key-set-mutation.d.ts +0 -10
  217. package/dist-server/service/data-key-set/data-key-set-mutation.js +0 -203
  218. package/dist-server/service/data-key-set/data-key-set-mutation.js.map +0 -1
  219. package/dist-server/service/data-key-set/data-key-set-query.d.ts +0 -12
  220. package/dist-server/service/data-key-set/data-key-set-query.js +0 -117
  221. package/dist-server/service/data-key-set/data-key-set-query.js.map +0 -1
  222. package/dist-server/service/data-key-set/data-key-set-type.d.ts +0 -28
  223. package/dist-server/service/data-key-set/data-key-set-type.js +0 -106
  224. package/dist-server/service/data-key-set/data-key-set-type.js.map +0 -1
  225. package/dist-server/service/data-key-set/data-key-set.d.ts +0 -22
  226. package/dist-server/service/data-key-set/data-key-set.js +0 -104
  227. package/dist-server/service/data-key-set/data-key-set.js.map +0 -1
  228. package/dist-server/service/data-key-set/index.d.ts +0 -5
  229. package/dist-server/service/data-key-set/index.js +0 -9
  230. package/dist-server/service/data-key-set/index.js.map +0 -1
  231. package/dist-server/service/data-ooc/data-ooc-mutation.d.ts +0 -6
  232. package/dist-server/service/data-ooc/data-ooc-mutation.js +0 -96
  233. package/dist-server/service/data-ooc/data-ooc-mutation.js.map +0 -1
  234. package/dist-server/service/data-ooc/data-ooc-query.d.ts +0 -23
  235. package/dist-server/service/data-ooc/data-ooc-query.js +0 -209
  236. package/dist-server/service/data-ooc/data-ooc-query.js.map +0 -1
  237. package/dist-server/service/data-ooc/data-ooc-subscription.d.ts +0 -12
  238. package/dist-server/service/data-ooc/data-ooc-subscription.js +0 -64
  239. package/dist-server/service/data-ooc/data-ooc-subscription.js.map +0 -1
  240. package/dist-server/service/data-ooc/data-ooc-type.d.ts +0 -27
  241. package/dist-server/service/data-ooc/data-ooc-type.js +0 -111
  242. package/dist-server/service/data-ooc/data-ooc-type.js.map +0 -1
  243. package/dist-server/service/data-ooc/data-ooc.d.ts +0 -63
  244. package/dist-server/service/data-ooc/data-ooc.js +0 -310
  245. package/dist-server/service/data-ooc/data-ooc.js.map +0 -1
  246. package/dist-server/service/data-ooc/index.d.ts +0 -6
  247. package/dist-server/service/data-ooc/index.js +0 -10
  248. package/dist-server/service/data-ooc/index.js.map +0 -1
  249. package/dist-server/service/data-sample/data-sample-mutation.d.ts +0 -5
  250. package/dist-server/service/data-sample/data-sample-mutation.js +0 -30
  251. package/dist-server/service/data-sample/data-sample-mutation.js.map +0 -1
  252. package/dist-server/service/data-sample/data-sample-query.d.ts +0 -22
  253. package/dist-server/service/data-sample/data-sample-query.js +0 -274
  254. package/dist-server/service/data-sample/data-sample-query.js.map +0 -1
  255. package/dist-server/service/data-sample/data-sample-type.d.ts +0 -18
  256. package/dist-server/service/data-sample/data-sample-type.js +0 -68
  257. package/dist-server/service/data-sample/data-sample-type.js.map +0 -1
  258. package/dist-server/service/data-sample/data-sample.d.ts +0 -45
  259. package/dist-server/service/data-sample/data-sample.js +0 -226
  260. package/dist-server/service/data-sample/data-sample.js.map +0 -1
  261. package/dist-server/service/data-sample/index.d.ts +0 -5
  262. package/dist-server/service/data-sample/index.js +0 -9
  263. package/dist-server/service/data-sample/index.js.map +0 -1
  264. package/dist-server/service/data-sensor/data-sensor-mutation.d.ts +0 -9
  265. package/dist-server/service/data-sensor/data-sensor-mutation.js +0 -137
  266. package/dist-server/service/data-sensor/data-sensor-mutation.js.map +0 -1
  267. package/dist-server/service/data-sensor/data-sensor-query.d.ts +0 -16
  268. package/dist-server/service/data-sensor/data-sensor-query.js +0 -137
  269. package/dist-server/service/data-sensor/data-sensor-query.js.map +0 -1
  270. package/dist-server/service/data-sensor/data-sensor-type.d.ts +0 -42
  271. package/dist-server/service/data-sensor/data-sensor-type.js +0 -162
  272. package/dist-server/service/data-sensor/data-sensor-type.js.map +0 -1
  273. package/dist-server/service/data-sensor/data-sensor.d.ts +0 -33
  274. package/dist-server/service/data-sensor/data-sensor.js +0 -160
  275. package/dist-server/service/data-sensor/data-sensor.js.map +0 -1
  276. package/dist-server/service/data-sensor/index.d.ts +0 -5
  277. package/dist-server/service/data-sensor/index.js +0 -9
  278. package/dist-server/service/data-sensor/index.js.map +0 -1
  279. package/dist-server/service/data-set/data-item-type.d.ts +0 -321
  280. package/dist-server/service/data-set/data-item-type.js +0 -458
  281. package/dist-server/service/data-set/data-item-type.js.map +0 -1
  282. package/dist-server/service/data-set/data-set-mutation.d.ts +0 -20
  283. package/dist-server/service/data-set/data-set-mutation.js +0 -551
  284. package/dist-server/service/data-set/data-set-mutation.js.map +0 -1
  285. package/dist-server/service/data-set/data-set-query.d.ts +0 -39
  286. package/dist-server/service/data-set/data-set-query.js +0 -565
  287. package/dist-server/service/data-set/data-set-query.js.map +0 -1
  288. package/dist-server/service/data-set/data-set-type.d.ts +0 -75
  289. package/dist-server/service/data-set/data-set-type.js +0 -276
  290. package/dist-server/service/data-set/data-set-type.js.map +0 -1
  291. package/dist-server/service/data-set/data-set.d.ts +0 -96
  292. package/dist-server/service/data-set/data-set.js +0 -380
  293. package/dist-server/service/data-set/data-set.js.map +0 -1
  294. package/dist-server/service/data-set/index.d.ts +0 -5
  295. package/dist-server/service/data-set/index.js +0 -9
  296. package/dist-server/service/data-set/index.js.map +0 -1
  297. package/dist-server/service/data-set-history/data-set-history-query.d.ts +0 -21
  298. package/dist-server/service/data-set-history/data-set-history-query.js +0 -183
  299. package/dist-server/service/data-set-history/data-set-history-query.js.map +0 -1
  300. package/dist-server/service/data-set-history/data-set-history-type.d.ts +0 -5
  301. package/dist-server/service/data-set-history/data-set-history-type.js +0 -21
  302. package/dist-server/service/data-set-history/data-set-history-type.js.map +0 -1
  303. package/dist-server/service/data-set-history/data-set-history.d.ts +0 -53
  304. package/dist-server/service/data-set-history/data-set-history.js +0 -265
  305. package/dist-server/service/data-set-history/data-set-history.js.map +0 -1
  306. package/dist-server/service/data-set-history/event-subscriber.d.ts +0 -7
  307. package/dist-server/service/data-set-history/event-subscriber.js +0 -21
  308. package/dist-server/service/data-set-history/event-subscriber.js.map +0 -1
  309. package/dist-server/service/data-set-history/index.d.ts +0 -6
  310. package/dist-server/service/data-set-history/index.js +0 -10
  311. package/dist-server/service/data-set-history/index.js.map +0 -1
  312. package/dist-server/service/data-spec/data-spec-manager.d.ts +0 -10
  313. package/dist-server/service/data-spec/data-spec-manager.js +0 -20
  314. package/dist-server/service/data-spec/data-spec-manager.js.map +0 -1
  315. package/dist-server/service/data-spec/data-spec-query.d.ts +0 -5
  316. package/dist-server/service/data-spec/data-spec-query.js +0 -37
  317. package/dist-server/service/data-spec/data-spec-query.js.map +0 -1
  318. package/dist-server/service/data-spec/data-spec.d.ts +0 -19
  319. package/dist-server/service/data-spec/data-spec.js +0 -79
  320. package/dist-server/service/data-spec/data-spec.js.map +0 -1
  321. package/dist-server/service/data-spec/index.d.ts +0 -4
  322. package/dist-server/service/data-spec/index.js +0 -8
  323. package/dist-server/service/data-spec/index.js.map +0 -1
  324. package/dist-server/service/data-summary/data-summary-mutation.d.ts +0 -6
  325. package/dist-server/service/data-summary/data-summary-mutation.js +0 -76
  326. package/dist-server/service/data-summary/data-summary-mutation.js.map +0 -1
  327. package/dist-server/service/data-summary/data-summary-query.d.ts +0 -19
  328. package/dist-server/service/data-summary/data-summary-query.js +0 -237
  329. package/dist-server/service/data-summary/data-summary-query.js.map +0 -1
  330. package/dist-server/service/data-summary/data-summary-type.d.ts +0 -33
  331. package/dist-server/service/data-summary/data-summary-type.js +0 -139
  332. package/dist-server/service/data-summary/data-summary-type.js.map +0 -1
  333. package/dist-server/service/data-summary/data-summary.d.ts +0 -38
  334. package/dist-server/service/data-summary/data-summary.js +0 -202
  335. package/dist-server/service/data-summary/data-summary.js.map +0 -1
  336. package/dist-server/service/data-summary/index.d.ts +0 -6
  337. package/dist-server/service/data-summary/index.js +0 -10
  338. package/dist-server/service/data-summary/index.js.map +0 -1
  339. package/dist-server/service/index.d.ts +0 -14
  340. package/dist-server/service/index.js +0 -54
  341. package/dist-server/service/index.js.map +0 -1
  342. package/dist-server/tsconfig.tsbuildinfo +0 -1
  343. package/dist-server/utils/config-resolver.d.ts +0 -1
  344. package/dist-server/utils/config-resolver.js +0 -32
  345. package/dist-server/utils/config-resolver.js.map +0 -1
  346. package/dist-server/utils/index.d.ts +0 -2
  347. package/dist-server/utils/index.js +0 -6
  348. package/dist-server/utils/index.js.map +0 -1
  349. package/dist-server/utils/media-validation.d.ts +0 -51
  350. package/dist-server/utils/media-validation.js +0 -148
  351. package/dist-server/utils/media-validation.js.map +0 -1
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDataOoc = createDataOoc;
4
- const shell_1 = require("@things-factory/shell");
5
- const typeorm_1 = require("typeorm");
6
- const integration_base_1 = require("@things-factory/integration-base");
7
- const data_ooc_js_1 = require("../service/data-ooc/data-ooc.js");
8
- async function createDataOoc(dataSample, dataSet, context) {
9
- const { domain, user, tx } = context.state;
10
- const { collectedAt, data, ooc, oos, judgment, workDate, workShift } = dataSample;
11
- const dataOoc = await tx.getRepository(data_ooc_js_1.DataOoc).save({
12
- ...dataSample,
13
- history: [
14
- {
15
- user: {
16
- id: user?.id,
17
- username: user?.username || user?.email,
18
- name: user?.name
19
- },
20
- state: data_ooc_js_1.DataOocStatus.ISSUED,
21
- timestamp: collectedAt
22
- }
23
- ],
24
- state: data_ooc_js_1.DataOocStatus.ISSUED,
25
- dataSample: dataSample
26
- });
27
- if (dataSet.outlierScenarioId) {
28
- const domainIds = await (0, shell_1.getDomainIdsWithAncestors)(domain);
29
- var scenarios = await tx.getRepository(integration_base_1.Scenario).find({
30
- where: {
31
- domain: { id: (0, typeorm_1.In)(domainIds) },
32
- id: dataSet.outlierScenarioId
33
- },
34
- relations: ['domain', 'steps', 'updater']
35
- });
36
- const scenario = [...scenarios].sort((a, b) => domainIds.indexOf(a.domain.id) - domainIds.indexOf(b.domain.id))[0];
37
- if (scenario) {
38
- scenario.start({
39
- instanceName: scenario.name + ':' + dataSet.name + ':' + dataSample.id,
40
- domain,
41
- user,
42
- variables: {
43
- dataOocId: dataOoc.id,
44
- dataSampleId: dataSample.id,
45
- dataSet: dataSet.id,
46
- data,
47
- ooc,
48
- oos,
49
- judgment,
50
- collectedAt,
51
- workDate,
52
- workShift,
53
- domain: {
54
- id: domain.id,
55
- subdomain: domain.subdomain,
56
- name: domain.name
57
- },
58
- updator: {
59
- id: user.id,
60
- username: user.username || user.email,
61
- email: user.email,
62
- name: user.name
63
- }
64
- }
65
- });
66
- }
67
- else {
68
- console.error(`Cannot find the set outlier-scenario for the dataset(${dataSet.name}).`);
69
- }
70
- }
71
- return dataOoc;
72
- }
73
- //# sourceMappingURL=create-data-ooc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-data-ooc.js","sourceRoot":"","sources":["../../server/controllers/create-data-ooc.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDomainIdsWithAncestors } from '@things-factory/shell'\nimport { In } from 'typeorm'\n\nimport { Scenario } from '@things-factory/integration-base'\n\nimport { DataSet } from '../service/data-set/data-set.js'\nimport { DataSample } from '../service/data-sample/data-sample.js'\nimport { DataOoc, DataOocStatus } from '../service/data-ooc/data-ooc.js'\n\nexport async function createDataOoc(\n dataSample: DataSample,\n dataSet: DataSet,\n context: ResolverContext\n): Promise<DataOoc> {\n const { domain, user, tx } = context.state\n const { collectedAt, data, ooc, oos, judgment, workDate, workShift } = dataSample\n\n const dataOoc = await tx.getRepository(DataOoc).save({\n ...dataSample,\n history: [\n {\n user: {\n id: user?.id,\n username: user?.username || user?.email,\n name: user?.name\n },\n state: DataOocStatus.ISSUED,\n timestamp: collectedAt\n }\n ],\n state: DataOocStatus.ISSUED,\n dataSample: dataSample\n })\n\n if (dataSet.outlierScenarioId) {\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n var scenarios = await tx.getRepository(Scenario).find({\n where: {\n domain: { id: In(domainIds) },\n id: dataSet.outlierScenarioId\n },\n relations: ['domain', 'steps', 'updater']\n })\n\n const scenario = [...scenarios].sort(\n (a, b) => domainIds.indexOf(a.domain.id) - domainIds.indexOf(b.domain.id)\n )[0]\n\n if (scenario) {\n scenario.start({\n instanceName: scenario.name + ':' + dataSet.name + ':' + dataSample.id,\n domain,\n user,\n variables: {\n dataOocId: dataOoc.id,\n dataSampleId: dataSample.id,\n dataSet: dataSet.id,\n data,\n ooc,\n oos,\n judgment,\n collectedAt,\n workDate,\n workShift,\n domain: {\n id: domain.id,\n subdomain: domain.subdomain,\n name: domain.name\n },\n updator: {\n id: user.id,\n username: user.username || user.email,\n email: user.email,\n name: user.name\n }\n }\n })\n } else {\n console.error(`Cannot find the set outlier-scenario for the dataset(${dataSet.name}).`)\n }\n }\n\n return dataOoc\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { DataSample } from '../service/data-sample/data-sample.js';
2
- import { NewDataSample } from '../service/data-sample/data-sample-type.js';
3
- export declare function createDataSample(newDataSample: NewDataSample, context: ResolverContext): Promise<DataSample>;
@@ -1,341 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDataSample = createDataSample;
4
- const tslib_1 = require("tslib");
5
- const moment_timezone_1 = tslib_1.__importDefault(require("moment-timezone"));
6
- const typeorm_1 = require("typeorm");
7
- const attachment_base_1 = require("@things-factory/attachment-base");
8
- const auth_base_1 = require("@things-factory/auth-base");
9
- const env_1 = require("@things-factory/env");
10
- const shell_1 = require("@things-factory/shell");
11
- const work_shift_1 = require("@things-factory/work-shift");
12
- const integration_base_1 = require("@things-factory/integration-base");
13
- const worklist_1 = require("@things-factory/worklist");
14
- const issue_1 = require("@things-factory/worklist/issue");
15
- const data_sample_js_1 = require("../service/data-sample/data-sample.js");
16
- const data_set_js_1 = require("../service/data-set/data-set.js");
17
- const create_data_ooc_js_1 = require("./create-data-ooc.js");
18
- const issue_ooc_review_js_1 = require("./issue-ooc-review.js");
19
- const data_use_case_js_1 = require("./data-use-case.js");
20
- const index_js_1 = require("../utils/index.js");
21
- // See README.md at ## Data Samples
22
- process.env.TZ = 'UTC';
23
- const fillDataKeys = (dataKeySet, data = {}) => {
24
- const keys = dataKeySet?.dataKeyItems || [];
25
- return keys.reduce((sum, key, index) => {
26
- const value = data[key.dataKey];
27
- if (value != null) {
28
- sum[`key0${index + 1}`] = value instanceof Array ? value[0] : value;
29
- }
30
- return sum;
31
- }, {});
32
- };
33
- // parse variable javascript string pattern
34
- const replaceVariables = (keys, dic) => {
35
- for (const k in keys) {
36
- const matches = keys[k].match(/\$\{\w*\}/g);
37
- matches &&
38
- matches.forEach(m => {
39
- keys[k] = keys[k].replace(m, dic[m.slice(2, -1)]);
40
- });
41
- }
42
- return keys;
43
- };
44
- // It is required UTC date for Partitioning File System like AWS S3 from Athena.
45
- // ex) %YYYY, %MM, %DD
46
- const formatDate = (keys, _moment) => {
47
- for (const k in keys) {
48
- const matches = keys[k].match(/%\w*/g);
49
- matches &&
50
- matches.forEach(m => {
51
- keys[k] = keys[k].replace(m, _moment.format(m.substr(1)));
52
- });
53
- }
54
- return keys;
55
- };
56
- async function createDataSample(newDataSample, context) {
57
- const { domain, user, tx } = context.state;
58
- const domainIds = await (0, shell_1.getDomainIdsWithAncestors)(domain);
59
- const dataSet = await (0, shell_1.getRepository)(data_set_js_1.DataSet, tx).findOne({
60
- where: { domain: { id: (0, typeorm_1.In)(domainIds) }, id: newDataSample.dataSet.id },
61
- relations: ['dataKeySet']
62
- });
63
- const { dataItems = [], tag: publishTag, normalScenarioId, outlierScenarioId } = dataSet;
64
- const collectedAt = newDataSample.collectedAt || new Date();
65
- const timezone = dataSet.timezone || domain.timezone || 'UTC';
66
- const format = 'YYYY-MM-DD';
67
- // workDate ex) 2022-04-04
68
- const { workDate, workShift } = await (0, work_shift_1.getWorkDateAndShift)(domain, collectedAt, { timezone, format });
69
- // local time dataSet timezone or domain timezone or default 'UTC'
70
- const localDateTz = (0, moment_timezone_1.default)(collectedAt).tz(timezone);
71
- const defaultPartitionKeys = {
72
- domain: domain.subdomain,
73
- datasetid: newDataSample.dataSet.id /* It should not be 'data_set_id' as column name duplicated for Glue */,
74
- date: localDateTz.format(format) /* local time date */,
75
- workdate: workDate /* working date */,
76
- workshift: workShift
77
- };
78
- var partitionKeys = {
79
- ...defaultPartitionKeys,
80
- ...dataSet.partitionKeys
81
- };
82
- partitionKeys = formatDate(partitionKeys, localDateTz);
83
- partitionKeys = replaceVariables(partitionKeys, newDataSample.data);
84
- const dataKeys = fillDataKeys(dataSet?.dataKeySet, newDataSample.data);
85
- const { ooc, oos, judgment } = data_use_case_js_1.DataUseCase.evaluate(dataSet, dataItems, newDataSample.data) || {};
86
- const old = await (0, shell_1.getRepository)(data_sample_js_1.DataSample, tx).findOne({
87
- where: {
88
- domain: { id: domain.id },
89
- dataSet: { id: dataSet.id },
90
- collectedAt,
91
- ...dataKeys
92
- }
93
- });
94
- /*
95
- Pre-processing for file and media attachments.
96
- - file type: supports multiple files + quota (array processing)
97
- - media types (image, video, audio): single file only (like signature)
98
- - Validates MIME types for media files
99
- - Enforces options constraints (accept, maxSize, etc.)
100
- - Creates Attachment records for all uploaded files
101
- */
102
- const data = newDataSample.data;
103
- const attachments = [];
104
- for (let dataItem of dataItems) {
105
- const tag = dataItem.tag;
106
- // Handle file type (multiple + quota support, array processing)
107
- if (dataItem.type === 'file') {
108
- const filesArray = data[tag];
109
- if (tag && filesArray && filesArray.length > 0) {
110
- let pathsArray = [];
111
- for (let files of filesArray) {
112
- let paths = [];
113
- if (files instanceof Array) {
114
- for (let file of files) {
115
- if (file) {
116
- const attachment = await (0, attachment_base_1.createAttachment)(null, {
117
- attachment: {
118
- file: file.file,
119
- refType: data_sample_js_1.DataSample.name
120
- }
121
- }, context);
122
- const fetched = await (0, shell_1.getRepository)(attachment_base_1.Attachment, tx).findOneBy({ id: attachment.id });
123
- if (fetched) {
124
- attachments.push(fetched);
125
- paths.push({
126
- id: fetched.id,
127
- mimetype: fetched.mimetype,
128
- name: fetched.name,
129
- fullpath: fetched.fullpath
130
- });
131
- }
132
- else {
133
- throw `Failed to save file(${attachment.name})`;
134
- }
135
- }
136
- else {
137
- paths.push(null);
138
- }
139
- }
140
- }
141
- pathsArray.push(paths);
142
- }
143
- data[tag] = pathsArray;
144
- }
145
- }
146
- // Handle media types (image, video, audio): single file only
147
- else if ((0, index_js_1.isMediaType)(dataItem.type)) {
148
- let fileValue = data[tag];
149
- // Frontend sends as array, extract first element
150
- if (Array.isArray(fileValue)) {
151
- fileValue = fileValue[0];
152
- }
153
- if (tag && fileValue) {
154
- // Handle both File object directly and {file: File} structure
155
- const actualFile = fileValue.file || fileValue;
156
- // Skip if file is already an attachment object (has fullpath)
157
- if (actualFile.fullpath) {
158
- continue;
159
- }
160
- // Get MIME type from various possible property names
161
- const mimeType = actualFile.mimetype || actualFile.type || actualFile.contentType;
162
- // Validate media file against options
163
- const validation = (0, index_js_1.validateMediaFile)({
164
- mimetype: mimeType,
165
- size: actualFile.size,
166
- name: actualFile.filename || actualFile.name
167
- }, dataItem.type, dataItem.options);
168
- if (!validation.valid) {
169
- throw new Error(`Media validation failed for '${tag}' (${dataItem.type}): ${validation.errors.join(', ')}`);
170
- }
171
- const attachment = await (0, attachment_base_1.createAttachment)(null, {
172
- attachment: {
173
- file: actualFile,
174
- refType: data_sample_js_1.DataSample.name
175
- }
176
- }, context);
177
- const fetched = await (0, shell_1.getRepository)(attachment_base_1.Attachment, tx).findOneBy({ id: attachment.id });
178
- if (fetched) {
179
- attachments.push(fetched);
180
- // Store as single attachment object (like signature)
181
- data[tag] = {
182
- id: fetched.id,
183
- mimetype: fetched.mimetype,
184
- name: fetched.name,
185
- fullpath: fetched.fullpath
186
- };
187
- }
188
- else {
189
- throw `Failed to save file(${attachment.name})`;
190
- }
191
- }
192
- }
193
- }
194
- const dataSample = await (0, shell_1.getRepository)(data_sample_js_1.DataSample, tx).save({
195
- ...old,
196
- name: dataSet.name,
197
- description: dataSet.description,
198
- useCase: dataSet.useCase,
199
- type: dataSet.type,
200
- ...newDataSample,
201
- ...dataKeys,
202
- dataSetVersion: dataSet.version,
203
- domain,
204
- partitionKeys,
205
- ooc,
206
- oos,
207
- judgment,
208
- collectedAt,
209
- workDate,
210
- workShift,
211
- creator: user,
212
- updater: user
213
- });
214
- if (publishTag) {
215
- (0, integration_base_1.publishData)(publishTag, data, { domain, user });
216
- }
217
- /* post-process for for file attachment. */
218
- if (attachments.length > 0) {
219
- attachments.forEach(attachment => (attachment.refId = dataSample.id));
220
- (0, shell_1.getRepository)(attachment_base_1.Attachment, tx).save(attachments);
221
- }
222
- if (ooc || oos) {
223
- const dataOoc = await (0, create_data_ooc_js_1.createDataOoc)(dataSample, dataSet, context);
224
- await (0, issue_ooc_review_js_1.issueOocReview)(dataOoc, dataSet, context);
225
- try {
226
- shell_1.pubsub.publish('notification', {
227
- notification: {
228
- domain,
229
- type: 'error',
230
- title: `[OOC] ${dataSet.name}`,
231
- body: `Data OOC occurred on '${dataSet.name}'`,
232
- url: (0, shell_1.getRedirectSubdomainPath)(context, domain, `/data-ooc/${dataOoc.id}`),
233
- timestamp: collectedAt
234
- }
235
- });
236
- }
237
- catch (err) {
238
- env_1.logger.error('Notification', err);
239
- }
240
- }
241
- else {
242
- if (normalScenarioId) {
243
- const scenario = await (0, shell_1.getRepository)(integration_base_1.Scenario, tx).findOne({
244
- where: {
245
- domain: { id: (0, typeorm_1.In)(domainIds) },
246
- id: normalScenarioId
247
- },
248
- relations: ['domain', 'steps', 'updater']
249
- });
250
- if (scenario) {
251
- scenario.start({
252
- instanceName: scenario.name + ':' + dataSet.name + ':' + dataSample.id,
253
- domain,
254
- user,
255
- variables: {
256
- dataSampleId: dataSample.id,
257
- dataSet: dataSet.id,
258
- data,
259
- ooc,
260
- oos,
261
- judgment,
262
- collectedAt,
263
- workDate,
264
- workShift,
265
- domain: {
266
- id: domain.id,
267
- subdomain: domain.subdomain,
268
- name: domain.name
269
- },
270
- updator: {
271
- id: user.id,
272
- email: user.email,
273
- name: user.name
274
- }
275
- }
276
- });
277
- }
278
- else {
279
- console.error(`Cannot find the set normal-scenario for the dataset(${dataSet.name}).`);
280
- }
281
- }
282
- if (dataSet.requiresReview) {
283
- const activity = (await (0, shell_1.getRepository)(worklist_1.Activity, tx).findOneBy({
284
- domain: { id: (0, typeorm_1.In)(domainIds) },
285
- name: 'Data Review'
286
- }));
287
- if (activity) {
288
- const assigneeRole = dataSet.supervisoryRoleId &&
289
- (await (0, shell_1.getRepository)(auth_base_1.Role, tx).findOneBy({
290
- domain: { id: (0, typeorm_1.In)(domainIds) },
291
- id: dataSet.supervisoryRoleId
292
- }));
293
- // const assignees = dataSet.supervisoryRoleId
294
- // ? [{ type: 'Role', value: dataSet.supervisoryRoleId, assigneeRole }]
295
- // : []
296
- /* 해당 dataset의 supervisor로 하여금, data를 리뷰하고 instruction을 작성해서, approvalLine을 이용해서 승인을 한다. */
297
- if (assigneeRole) {
298
- dataSample.dataItems = dataItems;
299
- const activityInstance = {
300
- name: `[Data 검토] ${dataSet.name}`,
301
- description: dataSet.description,
302
- activityId: activity.id,
303
- dueAt: new Date(collectedAt.getTime() + (activity.standardTime || 24 * 60 * 60) * 1000),
304
- input: {
305
- dataSampleId: dataSample.id
306
- },
307
- assigneeRoles: [assigneeRole],
308
- threadsMin: 1,
309
- threadsMax: 1,
310
- approvalLine: dataSet.reviewApprovalLine
311
- };
312
- const reviewActivityInstance = await (0, issue_1.issue)(activityInstance, context);
313
- await (0, shell_1.getRepository)(data_sample_js_1.DataSample, tx).update({ id: dataSample.id }, { reviewActivityInstance });
314
- try {
315
- shell_1.pubsub.publish('notification', {
316
- notification: {
317
- domain,
318
- type: 'info',
319
- title: `[Data Review] ${dataSet.name}`,
320
- body: `Data Review occurred on '${dataSet.name}'`,
321
- url: (0, shell_1.getRedirectSubdomainPath)(context, domain, `/data-sample/${dataSample.id}`),
322
- timestamp: collectedAt
323
- }
324
- });
325
- }
326
- catch (err) {
327
- env_1.logger.error('Notification', err);
328
- }
329
- }
330
- else {
331
- console.error(`Assignees are not set. So Data Review task for ${dataSet.name}(${dataSet.id}) could not be issued.`);
332
- }
333
- }
334
- else {
335
- console.error('Data Review Activity not installed.');
336
- }
337
- }
338
- }
339
- return dataSample;
340
- }
341
- //# sourceMappingURL=create-data-sample.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-data-sample.js","sourceRoot":"","sources":["../../server/controllers/create-data-sample.ts"],"names":[],"mappings":"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","sourcesContent":["import moment from 'moment-timezone'\nimport { In } from 'typeorm'\n\nimport { Attachment, createAttachment } from '@things-factory/attachment-base'\nimport { Role } from '@things-factory/auth-base'\nimport { logger } from '@things-factory/env'\nimport { getRepository, getRedirectSubdomainPath, pubsub, getDomainIdsWithAncestors } from '@things-factory/shell'\nimport { getWorkDateAndShift } from '@things-factory/work-shift'\nimport { Scenario, publishData } from '@things-factory/integration-base'\nimport { Activity } from '@things-factory/worklist'\nimport { issue } from '@things-factory/worklist/issue'\n\nimport { DataSample } from '../service/data-sample/data-sample.js'\nimport { NewDataSample } from '../service/data-sample/data-sample-type.js'\nimport { DataSet } from '../service/data-set/data-set.js'\nimport { createDataOoc } from './create-data-ooc.js'\nimport { issueOocReview } from './issue-ooc-review.js'\nimport { DataUseCase } from './data-use-case.js'\nimport { isFileOrMediaType, validateMediaFile, isMediaType } from '../utils/index.js'\n\n// See README.md at ## Data Samples\nprocess.env.TZ = 'UTC'\n\nconst fillDataKeys = (dataKeySet, data = {}) => {\n const keys = dataKeySet?.dataKeyItems || []\n return keys.reduce((sum, key, index) => {\n const value = data[key.dataKey]\n if (value != null) {\n sum[`key0${index + 1}`] = value instanceof Array ? value[0] : value\n }\n return sum\n }, {})\n}\n\n// parse variable javascript string pattern\nconst replaceVariables = (keys, dic) => {\n for (const k in keys) {\n const matches = keys[k].match(/\\$\\{\\w*\\}/g)\n matches &&\n matches.forEach(m => {\n keys[k] = keys[k].replace(m, dic[m.slice(2, -1)])\n })\n }\n return keys\n}\n\n// It is required UTC date for Partitioning File System like AWS S3 from Athena.\n// ex) %YYYY, %MM, %DD\nconst formatDate = (keys, _moment) => {\n for (const k in keys) {\n const matches = keys[k].match(/%\\w*/g)\n matches &&\n matches.forEach(m => {\n keys[k] = keys[k].replace(m, _moment.format(m.substr(1)))\n })\n }\n return keys\n}\n\nexport async function createDataSample(newDataSample: NewDataSample, context: ResolverContext): Promise<DataSample> {\n const { domain, user, tx } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n const dataSet = await getRepository(DataSet, tx).findOne({\n where: { domain: { id: In(domainIds) }, id: newDataSample.dataSet.id },\n relations: ['dataKeySet']\n })\n\n const { dataItems = [], tag: publishTag, normalScenarioId, outlierScenarioId } = dataSet\n const collectedAt = newDataSample.collectedAt || new Date()\n\n const timezone = dataSet.timezone || domain.timezone || 'UTC'\n const format = 'YYYY-MM-DD'\n\n // workDate ex) 2022-04-04\n const { workDate, workShift } = await getWorkDateAndShift(domain, collectedAt, { timezone, format })\n\n // local time dataSet timezone or domain timezone or default 'UTC'\n\n const localDateTz = moment(collectedAt).tz(timezone)\n const defaultPartitionKeys = {\n domain: domain.subdomain,\n datasetid: newDataSample.dataSet.id /* It should not be 'data_set_id' as column name duplicated for Glue */,\n date: localDateTz.format(format) /* local time date */,\n workdate: workDate /* working date */,\n workshift: workShift\n }\n\n var partitionKeys = {\n ...defaultPartitionKeys,\n ...dataSet.partitionKeys\n }\n\n partitionKeys = formatDate(partitionKeys, localDateTz)\n partitionKeys = replaceVariables(partitionKeys, newDataSample.data)\n\n const dataKeys = fillDataKeys(dataSet?.dataKeySet, newDataSample.data)\n\n const { ooc, oos, judgment } = DataUseCase.evaluate(dataSet, dataItems, newDataSample.data) || {}\n\n const old = await getRepository(DataSample, tx).findOne({\n where: {\n domain: { id: domain.id },\n dataSet: { id: dataSet.id },\n collectedAt,\n ...dataKeys\n }\n })\n\n /*\n Pre-processing for file and media attachments.\n - file type: supports multiple files + quota (array processing)\n - media types (image, video, audio): single file only (like signature)\n - Validates MIME types for media files\n - Enforces options constraints (accept, maxSize, etc.)\n - Creates Attachment records for all uploaded files\n */\n\n const data = newDataSample.data\n const attachments = []\n\n for (let dataItem of dataItems) {\n const tag = dataItem.tag\n\n // Handle file type (multiple + quota support, array processing)\n if (dataItem.type === 'file') {\n const filesArray = data[tag]\n\n if (tag && filesArray && filesArray.length > 0) {\n let pathsArray = []\n\n for (let files of filesArray) {\n let paths = []\n\n if (files instanceof Array) {\n for (let file of files) {\n if (file) {\n const attachment = await createAttachment(\n null,\n {\n attachment: {\n file: file.file,\n refType: DataSample.name\n }\n },\n context\n )\n\n const fetched = await getRepository(Attachment, tx).findOneBy({ id: attachment.id })\n if (fetched) {\n attachments.push(fetched)\n paths.push({\n id: fetched.id,\n mimetype: fetched.mimetype,\n name: fetched.name,\n fullpath: fetched.fullpath\n })\n } else {\n throw `Failed to save file(${attachment.name})`\n }\n } else {\n paths.push(null)\n }\n }\n }\n\n pathsArray.push(paths)\n }\n\n data[tag] = pathsArray\n }\n }\n // Handle media types (image, video, audio): single file only\n else if (isMediaType(dataItem.type)) {\n let fileValue = data[tag]\n\n // Frontend sends as array, extract first element\n if (Array.isArray(fileValue)) {\n fileValue = fileValue[0]\n }\n\n if (tag && fileValue) {\n // Handle both File object directly and {file: File} structure\n const actualFile = fileValue.file || fileValue\n\n // Skip if file is already an attachment object (has fullpath)\n if (actualFile.fullpath) {\n continue\n }\n\n // Get MIME type from various possible property names\n const mimeType = actualFile.mimetype || actualFile.type || actualFile.contentType\n\n // Validate media file against options\n const validation = validateMediaFile(\n {\n mimetype: mimeType,\n size: actualFile.size,\n name: actualFile.filename || actualFile.name\n },\n dataItem.type,\n dataItem.options\n )\n\n if (!validation.valid) {\n throw new Error(\n `Media validation failed for '${tag}' (${dataItem.type}): ${validation.errors.join(', ')}`\n )\n }\n\n const attachment = await createAttachment(\n null,\n {\n attachment: {\n file: actualFile,\n refType: DataSample.name\n }\n },\n context\n )\n\n const fetched = await getRepository(Attachment, tx).findOneBy({ id: attachment.id })\n if (fetched) {\n attachments.push(fetched)\n // Store as single attachment object (like signature)\n data[tag] = {\n id: fetched.id,\n mimetype: fetched.mimetype,\n name: fetched.name,\n fullpath: fetched.fullpath\n }\n } else {\n throw `Failed to save file(${attachment.name})`\n }\n }\n }\n }\n\n const dataSample = await getRepository(DataSample, tx).save({\n ...old,\n name: dataSet.name,\n description: dataSet.description,\n useCase: dataSet.useCase,\n type: dataSet.type,\n ...newDataSample,\n ...dataKeys,\n dataSetVersion: dataSet.version,\n domain,\n partitionKeys,\n ooc,\n oos,\n judgment,\n collectedAt,\n workDate,\n workShift,\n creator: user,\n updater: user\n })\n\n if (publishTag) {\n publishData(publishTag, data, { domain, user })\n }\n\n /* post-process for for file attachment. */\n if (attachments.length > 0) {\n attachments.forEach(attachment => (attachment.refId = dataSample.id))\n getRepository(Attachment, tx).save(attachments)\n }\n\n if (ooc || oos) {\n const dataOoc = await createDataOoc(dataSample, dataSet, context)\n await issueOocReview(dataOoc, dataSet, context)\n\n try {\n pubsub.publish('notification', {\n notification: {\n domain,\n type: 'error',\n title: `[OOC] ${dataSet.name}`,\n body: `Data OOC occurred on '${dataSet.name}'`,\n url: getRedirectSubdomainPath(context, domain, `/data-ooc/${dataOoc.id}`),\n timestamp: collectedAt\n }\n })\n } catch (err) {\n logger.error('Notification', err)\n }\n } else {\n if (normalScenarioId) {\n const scenario = await getRepository(Scenario, tx).findOne({\n where: {\n domain: { id: In(domainIds) },\n id: normalScenarioId\n },\n relations: ['domain', 'steps', 'updater']\n })\n\n if (scenario) {\n scenario.start({\n instanceName: scenario.name + ':' + dataSet.name + ':' + dataSample.id,\n domain,\n user,\n variables: {\n dataSampleId: dataSample.id,\n dataSet: dataSet.id,\n data,\n ooc,\n oos,\n judgment,\n collectedAt,\n workDate,\n workShift,\n domain: {\n id: domain.id,\n subdomain: domain.subdomain,\n name: domain.name\n },\n updator: {\n id: user.id,\n email: user.email,\n name: user.name\n }\n }\n })\n } else {\n console.error(`Cannot find the set normal-scenario for the dataset(${dataSet.name}).`)\n }\n }\n\n if (dataSet.requiresReview) {\n const activity = (await getRepository(Activity, tx).findOneBy({\n domain: { id: In(domainIds) },\n name: 'Data Review'\n })) as Activity\n\n if (activity) {\n const assigneeRole =\n dataSet.supervisoryRoleId &&\n (await getRepository(Role, tx).findOneBy({\n domain: { id: In(domainIds) },\n id: dataSet.supervisoryRoleId\n }))\n\n // const assignees = dataSet.supervisoryRoleId\n // ? [{ type: 'Role', value: dataSet.supervisoryRoleId, assigneeRole }]\n // : []\n\n /* 해당 dataset의 supervisor로 하여금, data를 리뷰하고 instruction을 작성해서, approvalLine을 이용해서 승인을 한다. */\n if (assigneeRole) {\n dataSample.dataItems = dataItems\n const activityInstance = {\n name: `[Data 검토] ${dataSet.name}`,\n description: dataSet.description,\n activityId: activity.id,\n dueAt: new Date(collectedAt.getTime() + (activity.standardTime || 24 * 60 * 60) * 1000),\n input: {\n dataSampleId: dataSample.id\n },\n assigneeRoles: [assigneeRole],\n threadsMin: 1,\n threadsMax: 1,\n approvalLine: dataSet.reviewApprovalLine\n }\n\n const reviewActivityInstance = await issue(activityInstance as any, context)\n await getRepository(DataSample, tx).update({ id: dataSample.id }, { reviewActivityInstance })\n\n try {\n pubsub.publish('notification', {\n notification: {\n domain,\n type: 'info',\n title: `[Data Review] ${dataSet.name}`,\n body: `Data Review occurred on '${dataSet.name}'`,\n url: getRedirectSubdomainPath(context, domain, `/data-sample/${dataSample.id}`),\n timestamp: collectedAt\n }\n })\n } catch (err) {\n logger.error('Notification', err)\n }\n } else {\n console.error(\n `Assignees are not set. So Data Review task for ${dataSet.name}(${dataSet.id}) could not be issued.`\n )\n }\n } else {\n console.error('Data Review Activity not installed.')\n }\n }\n }\n\n return dataSample\n}\n"]}
@@ -1,36 +0,0 @@
1
- import { DataItem } from '../service/data-set/data-item-type.js';
2
- import { DataSet } from '../service/data-set/data-set.js';
3
- export type DataItemSpec = {
4
- type: string;
5
- label: string;
6
- name: string;
7
- property?: {
8
- [option: string]: any;
9
- };
10
- };
11
- export type DataItemSpecSet = {
12
- name: string;
13
- description: string;
14
- help?: string;
15
- specs: DataItemSpec[];
16
- };
17
- export type EvaluationResult = {
18
- oos: boolean;
19
- ooc: boolean;
20
- judgment?: {
21
- [tag: string]: {
22
- ooc: boolean;
23
- oos: boolean;
24
- };
25
- };
26
- };
27
- export declare abstract class DataUseCase {
28
- static registry: {
29
- [name: string]: DataUseCase;
30
- };
31
- static registerUseCase(name: string, provider: DataUseCase): void;
32
- static getUseCaseNames(): string[];
33
- static getUseCase(name: string): DataUseCase | undefined;
34
- static evaluate(dataSet: DataSet, dataItems: DataItem[], data: any): EvaluationResult;
35
- abstract evaluate(specs: any, values: any[]): EvaluationResult;
36
- }
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataUseCase = void 0;
4
- class DataUseCase {
5
- static { this.registry = {}; }
6
- static registerUseCase(name, provider) {
7
- DataUseCase.registry[name] = provider;
8
- }
9
- static getUseCaseNames() {
10
- return Object.keys(DataUseCase.registry);
11
- }
12
- static getUseCase(name) {
13
- return DataUseCase.registry[name];
14
- }
15
- static evaluate(dataSet, dataItems, data) {
16
- var ooc = false;
17
- var oos = false;
18
- var judgment = {};
19
- if (!dataSet.useCase) {
20
- return { ooc, oos };
21
- }
22
- const useCaseNames = dataSet.useCase.split(',').map(useCaseName => useCaseName.trim());
23
- const useCases = useCaseNames.map(useCaseName => DataUseCase.getUseCase(useCaseName)).filter(useCase => !!useCase);
24
- for (let i = 0; i < dataItems.length; i++) {
25
- const dataItem = dataItems[i];
26
- const { active, tag } = dataItem;
27
- if (!active || !tag) {
28
- continue;
29
- }
30
- let values = data && data[tag];
31
- if (values == null) {
32
- continue; // TODO what if in case no value ?
33
- }
34
- if (!(values instanceof Array)) {
35
- values = [values];
36
- }
37
- let oocForTag = false;
38
- let oosForTag = false;
39
- for (let j = 0; j < useCases.length; j++) {
40
- const useCase = useCases[j];
41
- const specs = dataItem.spec?.[dataSet.useCase];
42
- if (!specs) {
43
- continue;
44
- }
45
- const result = useCase.evaluate(specs, values);
46
- if (result) {
47
- oocForTag ||= result.ooc;
48
- oosForTag ||= result.oos;
49
- ooc ||= result.ooc;
50
- oos ||= result.oos;
51
- }
52
- }
53
- judgment[tag] = {
54
- ooc: oocForTag,
55
- oos: oosForTag
56
- };
57
- }
58
- return { ooc, oos, judgment };
59
- }
60
- }
61
- exports.DataUseCase = DataUseCase;
62
- //# sourceMappingURL=data-use-case.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-use-case.js","sourceRoot":"","sources":["../../server/controllers/data-use-case.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataItem } from '../service/data-set/data-item-type.js'\nimport { DataSet } from '../service/data-set/data-set.js'\n\nexport type DataItemSpec = {\n type: string\n label: string\n name: string\n property?: { [option: string]: any }\n}\n\nexport type DataItemSpecSet = {\n name: string\n description: string\n help?: string\n specs: DataItemSpec[]\n}\n\nexport type EvaluationResult = {\n oos: boolean\n ooc: boolean\n judgment?: { [tag: string]: { ooc: boolean; oos: boolean } }\n}\n\nexport abstract class DataUseCase {\n static registry: { [name: string]: DataUseCase } = {}\n\n public static registerUseCase(name: string, provider: DataUseCase) {\n DataUseCase.registry[name] = provider\n }\n\n public static getUseCaseNames() {\n return Object.keys(DataUseCase.registry)\n }\n\n public static getUseCase(name: string): DataUseCase | undefined {\n return DataUseCase.registry[name]\n }\n\n public static evaluate(dataSet: DataSet, dataItems: DataItem[], data: any): EvaluationResult {\n var ooc = false\n var oos = false\n var judgment: { [tag: string]: { ooc: boolean; oos: boolean } } = {}\n\n if (!dataSet.useCase) {\n return { ooc, oos }\n }\n\n const useCaseNames = dataSet.useCase.split(',').map(useCaseName => useCaseName.trim())\n const useCases = useCaseNames.map(useCaseName => DataUseCase.getUseCase(useCaseName)).filter(useCase => !!useCase)\n\n for (let i = 0; i < dataItems.length; i++) {\n const dataItem = dataItems[i]\n const { active, tag } = dataItem\n if (!active || !tag) {\n continue\n }\n\n let values: any | any[] = data && data[tag]\n if (values == null) {\n continue // TODO what if in case no value ?\n }\n\n if (!(values instanceof Array)) {\n values = [values]\n }\n\n let oocForTag = false\n let oosForTag = false\n\n for (let j = 0; j < useCases.length; j++) {\n const useCase = useCases[j]\n\n const specs = dataItem.spec?.[dataSet.useCase]\n if (!specs) {\n continue\n }\n\n const result = useCase.evaluate(specs, values)\n\n if (result) {\n oocForTag ||= result.ooc\n oosForTag ||= result.oos\n ooc ||= result.ooc\n oos ||= result.oos\n }\n }\n\n judgment[tag] = {\n ooc: oocForTag,\n oos: oosForTag\n }\n }\n\n return { ooc, oos, judgment }\n }\n\n public abstract evaluate(specs: any, values: any[]): EvaluationResult\n}\n"]}
@@ -1,4 +0,0 @@
1
- import { DataSet } from '../service/data-set/data-set.js';
2
- export declare function getDataFinalizeCrontabSchedule(dataSet: DataSet, context: ResolverContext): Promise<string>;
3
- export declare function finalizeLatestDataCollection(dataSetId: string, context: ResolverContext): Promise<boolean>;
4
- export declare function finalizeDataCollection(dataSetId: string, date: string, period: string, context: ResolverContext): Promise<boolean>;