@things-factory/dataset 9.0.0-beta.25 → 9.0.0-beta.27

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 (345) hide show
  1. package/package.json +5 -5
  2. package/dist-client/activities/activity-data-collect-edit.d.ts +0 -19
  3. package/dist-client/activities/activity-data-collect-edit.js +0 -105
  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 -18
  9. package/dist-client/activities/activity-data-review-edit.js +0 -279
  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 -14
  12. package/dist-client/activities/activity-data-review-view.js +0 -224
  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 -196
  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 -146
  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 -2
  21. package/dist-client/activities/activity-ooc-review-edit.js +0 -176
  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 -133
  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/data-entry-form.d.ts +0 -20
  30. package/dist-client/components/data-entry-form.js +0 -108
  31. package/dist-client/components/data-entry-form.js.map +0 -1
  32. package/dist-client/index.d.ts +0 -1
  33. package/dist-client/index.js +0 -2
  34. package/dist-client/index.js.map +0 -1
  35. package/dist-client/pages/data-archive/data-archive-list-page.d.ts +0 -67
  36. package/dist-client/pages/data-archive/data-archive-list-page.js +0 -272
  37. package/dist-client/pages/data-archive/data-archive-list-page.js.map +0 -1
  38. package/dist-client/pages/data-archive/data-archive-request-popup.d.ts +0 -1
  39. package/dist-client/pages/data-archive/data-archive-request-popup.js +0 -160
  40. package/dist-client/pages/data-archive/data-archive-request-popup.js.map +0 -1
  41. package/dist-client/pages/data-entry/checklist-entry-page.d.ts +0 -21
  42. package/dist-client/pages/data-entry/checklist-entry-page.js +0 -209
  43. package/dist-client/pages/data-entry/checklist-entry-page.js.map +0 -1
  44. package/dist-client/pages/data-entry/data-entry-list-page.d.ts +0 -38
  45. package/dist-client/pages/data-entry/data-entry-list-page.js +0 -448
  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 -182
  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 -94
  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 -64
  54. package/dist-client/pages/data-key-set/data-key-set-list-page.js +0 -405
  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 -72
  57. package/dist-client/pages/data-ooc/data-ooc-list-page.js +0 -545
  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 -163
  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 -232
  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 -200
  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 -101
  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 -38
  72. package/dist-client/pages/data-report/data-report-list-page.js +0 -441
  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 -32
  75. package/dist-client/pages/data-report/data-report-samples-page.js +0 -166
  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 -101
  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 -101
  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 -101
  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 -70
  87. package/dist-client/pages/data-sample/data-sample-list-page.js +0 -437
  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 -59
  93. package/dist-client/pages/data-sample/data-sample-search-page.js +0 -421
  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 -21
  96. package/dist-client/pages/data-sample/data-sample-view.js +0 -285
  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 -249
  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 -58
  102. package/dist-client/pages/data-sensor/data-sensor-list-page.js +0 -455
  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 -306
  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 -97
  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 -83
  111. package/dist-client/pages/data-set/data-set-list-page.js +0 -1048
  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 -59
  114. package/dist-client/pages/data-summary/data-summary-list-page.js +0 -361
  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 -81
  117. package/dist-client/pages/data-summary/data-summary-period-page.js +0 -459
  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 -78
  120. package/dist-client/pages/data-summary/data-summary-search-page.js +0 -413
  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/route.d.ts +0 -1
  126. package/dist-client/route.js +0 -74
  127. package/dist-client/route.js.map +0 -1
  128. package/dist-client/tsconfig.tsbuildinfo +0 -1
  129. package/dist-server/activities/activity-data-collect.d.ts +0 -42
  130. package/dist-server/activities/activity-data-collect.js +0 -87
  131. package/dist-server/activities/activity-data-collect.js.map +0 -1
  132. package/dist-server/activities/activity-data-review.d.ts +0 -42
  133. package/dist-server/activities/activity-data-review.js +0 -87
  134. package/dist-server/activities/activity-data-review.js.map +0 -1
  135. package/dist-server/activities/activity-ooc-resolve.d.ts +0 -42
  136. package/dist-server/activities/activity-ooc-resolve.js +0 -104
  137. package/dist-server/activities/activity-ooc-resolve.js.map +0 -1
  138. package/dist-server/activities/activity-ooc-review.d.ts +0 -42
  139. package/dist-server/activities/activity-ooc-review.js +0 -82
  140. package/dist-server/activities/activity-ooc-review.js.map +0 -1
  141. package/dist-server/activities/index.d.ts +0 -1
  142. package/dist-server/activities/index.js +0 -11
  143. package/dist-server/activities/index.js.map +0 -1
  144. package/dist-server/controllers/create-data-ooc.d.ts +0 -4
  145. package/dist-server/controllers/create-data-ooc.js +0 -65
  146. package/dist-server/controllers/create-data-ooc.js.map +0 -1
  147. package/dist-server/controllers/create-data-sample.d.ts +0 -3
  148. package/dist-server/controllers/create-data-sample.js +0 -268
  149. package/dist-server/controllers/create-data-sample.js.map +0 -1
  150. package/dist-server/controllers/data-use-case.d.ts +0 -36
  151. package/dist-server/controllers/data-use-case.js +0 -63
  152. package/dist-server/controllers/data-use-case.js.map +0 -1
  153. package/dist-server/controllers/finalize-data-collection.d.ts +0 -4
  154. package/dist-server/controllers/finalize-data-collection.js +0 -328
  155. package/dist-server/controllers/finalize-data-collection.js.map +0 -1
  156. package/dist-server/controllers/index.d.ts +0 -6
  157. package/dist-server/controllers/index.js +0 -10
  158. package/dist-server/controllers/index.js.map +0 -1
  159. package/dist-server/controllers/issue-data-collection-task.d.ts +0 -2
  160. package/dist-server/controllers/issue-data-collection-task.js +0 -57
  161. package/dist-server/controllers/issue-data-collection-task.js.map +0 -1
  162. package/dist-server/controllers/issue-ooc-resolve.d.ts +0 -3
  163. package/dist-server/controllers/issue-ooc-resolve.js +0 -49
  164. package/dist-server/controllers/issue-ooc-resolve.js.map +0 -1
  165. package/dist-server/controllers/issue-ooc-review.d.ts +0 -3
  166. package/dist-server/controllers/issue-ooc-review.js +0 -47
  167. package/dist-server/controllers/issue-ooc-review.js.map +0 -1
  168. package/dist-server/controllers/jasper-report.d.ts +0 -1
  169. package/dist-server/controllers/jasper-report.js +0 -163
  170. package/dist-server/controllers/jasper-report.js.map +0 -1
  171. package/dist-server/controllers/query-data-summary-by-period.d.ts +0 -3
  172. package/dist-server/controllers/query-data-summary-by-period.js +0 -157
  173. package/dist-server/controllers/query-data-summary-by-period.js.map +0 -1
  174. package/dist-server/controllers/shiny-report.d.ts +0 -1
  175. package/dist-server/controllers/shiny-report.js +0 -35
  176. package/dist-server/controllers/shiny-report.js.map +0 -1
  177. package/dist-server/engine/index.d.ts +0 -1
  178. package/dist-server/engine/index.js +0 -4
  179. package/dist-server/engine/index.js.map +0 -1
  180. package/dist-server/engine/task/create-data-sample.d.ts +0 -1
  181. package/dist-server/engine/task/create-data-sample.js +0 -81
  182. package/dist-server/engine/task/create-data-sample.js.map +0 -1
  183. package/dist-server/engine/task/index.d.ts +0 -2
  184. package/dist-server/engine/task/index.js +0 -5
  185. package/dist-server/engine/task/index.js.map +0 -1
  186. package/dist-server/engine/task/issue-collect-data.d.ts +0 -1
  187. package/dist-server/engine/task/issue-collect-data.js +0 -40
  188. package/dist-server/engine/task/issue-collect-data.js.map +0 -1
  189. package/dist-server/index.d.ts +0 -6
  190. package/dist-server/index.js +0 -10
  191. package/dist-server/index.js.map +0 -1
  192. package/dist-server/routes.d.ts +0 -1
  193. package/dist-server/routes.js +0 -140
  194. package/dist-server/routes.js.map +0 -1
  195. package/dist-server/service/data-archive/data-archive-mutation.d.ts +0 -16
  196. package/dist-server/service/data-archive/data-archive-mutation.js +0 -227
  197. package/dist-server/service/data-archive/data-archive-mutation.js.map +0 -1
  198. package/dist-server/service/data-archive/data-archive-query.d.ts +0 -11
  199. package/dist-server/service/data-archive/data-archive-query.js +0 -83
  200. package/dist-server/service/data-archive/data-archive-query.js.map +0 -1
  201. package/dist-server/service/data-archive/data-archive-type.d.ts +0 -23
  202. package/dist-server/service/data-archive/data-archive-type.js +0 -74
  203. package/dist-server/service/data-archive/data-archive-type.js.map +0 -1
  204. package/dist-server/service/data-archive/data-archive.d.ts +0 -19
  205. package/dist-server/service/data-archive/data-archive.js +0 -79
  206. package/dist-server/service/data-archive/data-archive.js.map +0 -1
  207. package/dist-server/service/data-archive/index.d.ts +0 -5
  208. package/dist-server/service/data-archive/index.js +0 -9
  209. package/dist-server/service/data-archive/index.js.map +0 -1
  210. package/dist-server/service/data-key-set/data-key-item-type.d.ts +0 -12
  211. package/dist-server/service/data-key-set/data-key-item-type.js +0 -50
  212. package/dist-server/service/data-key-set/data-key-item-type.js.map +0 -1
  213. package/dist-server/service/data-key-set/data-key-set-mutation.d.ts +0 -10
  214. package/dist-server/service/data-key-set/data-key-set-mutation.js +0 -168
  215. package/dist-server/service/data-key-set/data-key-set-mutation.js.map +0 -1
  216. package/dist-server/service/data-key-set/data-key-set-query.d.ts +0 -12
  217. package/dist-server/service/data-key-set/data-key-set-query.js +0 -98
  218. package/dist-server/service/data-key-set/data-key-set-query.js.map +0 -1
  219. package/dist-server/service/data-key-set/data-key-set-type.d.ts +0 -28
  220. package/dist-server/service/data-key-set/data-key-set-type.js +0 -100
  221. package/dist-server/service/data-key-set/data-key-set-type.js.map +0 -1
  222. package/dist-server/service/data-key-set/data-key-set.d.ts +0 -22
  223. package/dist-server/service/data-key-set/data-key-set.js +0 -99
  224. package/dist-server/service/data-key-set/data-key-set.js.map +0 -1
  225. package/dist-server/service/data-key-set/index.d.ts +0 -5
  226. package/dist-server/service/data-key-set/index.js +0 -9
  227. package/dist-server/service/data-key-set/index.js.map +0 -1
  228. package/dist-server/service/data-ooc/data-ooc-mutation.d.ts +0 -6
  229. package/dist-server/service/data-ooc/data-ooc-mutation.js +0 -81
  230. package/dist-server/service/data-ooc/data-ooc-mutation.js.map +0 -1
  231. package/dist-server/service/data-ooc/data-ooc-query.d.ts +0 -22
  232. package/dist-server/service/data-ooc/data-ooc-query.js +0 -165
  233. package/dist-server/service/data-ooc/data-ooc-query.js.map +0 -1
  234. package/dist-server/service/data-ooc/data-ooc-subscription.d.ts +0 -7
  235. package/dist-server/service/data-ooc/data-ooc-subscription.js +0 -51
  236. package/dist-server/service/data-ooc/data-ooc-subscription.js.map +0 -1
  237. package/dist-server/service/data-ooc/data-ooc-type.d.ts +0 -27
  238. package/dist-server/service/data-ooc/data-ooc-type.js +0 -102
  239. package/dist-server/service/data-ooc/data-ooc-type.js.map +0 -1
  240. package/dist-server/service/data-ooc/data-ooc.d.ts +0 -63
  241. package/dist-server/service/data-ooc/data-ooc.js +0 -304
  242. package/dist-server/service/data-ooc/data-ooc.js.map +0 -1
  243. package/dist-server/service/data-ooc/index.d.ts +0 -6
  244. package/dist-server/service/data-ooc/index.js +0 -10
  245. package/dist-server/service/data-ooc/index.js.map +0 -1
  246. package/dist-server/service/data-sample/data-sample-mutation.d.ts +0 -5
  247. package/dist-server/service/data-sample/data-sample-mutation.js +0 -28
  248. package/dist-server/service/data-sample/data-sample-mutation.js.map +0 -1
  249. package/dist-server/service/data-sample/data-sample-query.d.ts +0 -22
  250. package/dist-server/service/data-sample/data-sample-query.js +0 -249
  251. package/dist-server/service/data-sample/data-sample-query.js.map +0 -1
  252. package/dist-server/service/data-sample/data-sample-type.d.ts +0 -18
  253. package/dist-server/service/data-sample/data-sample-type.js +0 -68
  254. package/dist-server/service/data-sample/data-sample-type.js.map +0 -1
  255. package/dist-server/service/data-sample/data-sample.d.ts +0 -45
  256. package/dist-server/service/data-sample/data-sample.js +0 -221
  257. package/dist-server/service/data-sample/data-sample.js.map +0 -1
  258. package/dist-server/service/data-sample/index.d.ts +0 -5
  259. package/dist-server/service/data-sample/index.js +0 -9
  260. package/dist-server/service/data-sample/index.js.map +0 -1
  261. package/dist-server/service/data-sensor/data-sensor-mutation.d.ts +0 -9
  262. package/dist-server/service/data-sensor/data-sensor-mutation.js +0 -109
  263. package/dist-server/service/data-sensor/data-sensor-mutation.js.map +0 -1
  264. package/dist-server/service/data-sensor/data-sensor-query.d.ts +0 -16
  265. package/dist-server/service/data-sensor/data-sensor-query.js +0 -115
  266. package/dist-server/service/data-sensor/data-sensor-query.js.map +0 -1
  267. package/dist-server/service/data-sensor/data-sensor-type.d.ts +0 -38
  268. package/dist-server/service/data-sensor/data-sensor-type.js +0 -146
  269. package/dist-server/service/data-sensor/data-sensor-type.js.map +0 -1
  270. package/dist-server/service/data-sensor/data-sensor.d.ts +0 -31
  271. package/dist-server/service/data-sensor/data-sensor.js +0 -148
  272. package/dist-server/service/data-sensor/data-sensor.js.map +0 -1
  273. package/dist-server/service/data-sensor/index.d.ts +0 -5
  274. package/dist-server/service/data-sensor/index.js +0 -9
  275. package/dist-server/service/data-sensor/index.js.map +0 -1
  276. package/dist-server/service/data-set/data-item-type.d.ts +0 -62
  277. package/dist-server/service/data-set/data-item-type.js +0 -199
  278. package/dist-server/service/data-set/data-item-type.js.map +0 -1
  279. package/dist-server/service/data-set/data-set-mutation.d.ts +0 -20
  280. package/dist-server/service/data-set/data-set-mutation.js +0 -474
  281. package/dist-server/service/data-set/data-set-mutation.js.map +0 -1
  282. package/dist-server/service/data-set/data-set-query.d.ts +0 -39
  283. package/dist-server/service/data-set/data-set-query.js +0 -545
  284. package/dist-server/service/data-set/data-set-query.js.map +0 -1
  285. package/dist-server/service/data-set/data-set-type.d.ts +0 -75
  286. package/dist-server/service/data-set/data-set-type.js +0 -274
  287. package/dist-server/service/data-set/data-set-type.js.map +0 -1
  288. package/dist-server/service/data-set/data-set.d.ts +0 -95
  289. package/dist-server/service/data-set/data-set.js +0 -375
  290. package/dist-server/service/data-set/data-set.js.map +0 -1
  291. package/dist-server/service/data-set/index.d.ts +0 -5
  292. package/dist-server/service/data-set/index.js +0 -9
  293. package/dist-server/service/data-set/index.js.map +0 -1
  294. package/dist-server/service/data-set-history/data-set-history-query.d.ts +0 -21
  295. package/dist-server/service/data-set-history/data-set-history-query.js +0 -177
  296. package/dist-server/service/data-set-history/data-set-history-query.js.map +0 -1
  297. package/dist-server/service/data-set-history/data-set-history-type.d.ts +0 -5
  298. package/dist-server/service/data-set-history/data-set-history-type.js +0 -21
  299. package/dist-server/service/data-set-history/data-set-history-type.js.map +0 -1
  300. package/dist-server/service/data-set-history/data-set-history.d.ts +0 -53
  301. package/dist-server/service/data-set-history/data-set-history.js +0 -246
  302. package/dist-server/service/data-set-history/data-set-history.js.map +0 -1
  303. package/dist-server/service/data-set-history/event-subscriber.d.ts +0 -7
  304. package/dist-server/service/data-set-history/event-subscriber.js +0 -21
  305. package/dist-server/service/data-set-history/event-subscriber.js.map +0 -1
  306. package/dist-server/service/data-set-history/index.d.ts +0 -6
  307. package/dist-server/service/data-set-history/index.js +0 -10
  308. package/dist-server/service/data-set-history/index.js.map +0 -1
  309. package/dist-server/service/data-spec/data-spec-manager.d.ts +0 -10
  310. package/dist-server/service/data-spec/data-spec-manager.js +0 -20
  311. package/dist-server/service/data-spec/data-spec-manager.js.map +0 -1
  312. package/dist-server/service/data-spec/data-spec-query.d.ts +0 -5
  313. package/dist-server/service/data-spec/data-spec-query.js +0 -37
  314. package/dist-server/service/data-spec/data-spec-query.js.map +0 -1
  315. package/dist-server/service/data-spec/data-spec.d.ts +0 -19
  316. package/dist-server/service/data-spec/data-spec.js +0 -69
  317. package/dist-server/service/data-spec/data-spec.js.map +0 -1
  318. package/dist-server/service/data-spec/index.d.ts +0 -4
  319. package/dist-server/service/data-spec/index.js +0 -8
  320. package/dist-server/service/data-spec/index.js.map +0 -1
  321. package/dist-server/service/data-summary/data-summary-mutation.d.ts +0 -6
  322. package/dist-server/service/data-summary/data-summary-mutation.js +0 -72
  323. package/dist-server/service/data-summary/data-summary-mutation.js.map +0 -1
  324. package/dist-server/service/data-summary/data-summary-query.d.ts +0 -19
  325. package/dist-server/service/data-summary/data-summary-query.js +0 -214
  326. package/dist-server/service/data-summary/data-summary-query.js.map +0 -1
  327. package/dist-server/service/data-summary/data-summary-type.d.ts +0 -33
  328. package/dist-server/service/data-summary/data-summary-type.js +0 -137
  329. package/dist-server/service/data-summary/data-summary-type.js.map +0 -1
  330. package/dist-server/service/data-summary/data-summary.d.ts +0 -38
  331. package/dist-server/service/data-summary/data-summary.js +0 -200
  332. package/dist-server/service/data-summary/data-summary.js.map +0 -1
  333. package/dist-server/service/data-summary/index.d.ts +0 -6
  334. package/dist-server/service/data-summary/index.js +0 -10
  335. package/dist-server/service/data-summary/index.js.map +0 -1
  336. package/dist-server/service/index.d.ts +0 -14
  337. package/dist-server/service/index.js +0 -54
  338. package/dist-server/service/index.js.map +0 -1
  339. package/dist-server/tsconfig.tsbuildinfo +0 -1
  340. package/dist-server/utils/config-resolver.d.ts +0 -1
  341. package/dist-server/utils/config-resolver.js +0 -32
  342. package/dist-server/utils/config-resolver.js.map +0 -1
  343. package/dist-server/utils/index.d.ts +0 -1
  344. package/dist-server/utils/index.js +0 -5
  345. package/dist-server/utils/index.js.map +0 -1
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDataOoc = createDataOoc;
4
- const typeorm_1 = require("typeorm");
5
- const integration_base_1 = require("@things-factory/integration-base");
6
- const data_ooc_js_1 = require("../service/data-ooc/data-ooc.js");
7
- async function createDataOoc(dataSample, dataSet, context) {
8
- const { domain, user, tx } = context.state;
9
- const { collectedAt, data, ooc, oos, judgment, workDate, workShift } = dataSample;
10
- const dataOoc = await tx.getRepository(data_ooc_js_1.DataOoc).save(Object.assign(Object.assign({}, dataSample), { history: [
11
- {
12
- user: {
13
- id: user === null || user === void 0 ? void 0 : user.id,
14
- username: (user === null || user === void 0 ? void 0 : user.username) || (user === null || user === void 0 ? void 0 : user.email),
15
- name: user === null || user === void 0 ? void 0 : user.name
16
- },
17
- state: data_ooc_js_1.DataOocStatus.ISSUED,
18
- timestamp: collectedAt
19
- }
20
- ], state: data_ooc_js_1.DataOocStatus.ISSUED, dataSample: dataSample }));
21
- if (dataSet.outlierScenarioId) {
22
- const scenario = await tx.getRepository(integration_base_1.Scenario).findOne({
23
- where: {
24
- domain: domain.parentId ? { id: (0, typeorm_1.In)([domain.id, domain.parentId]) } : { id: domain.id },
25
- id: dataSet.outlierScenarioId
26
- },
27
- relations: ['domain', 'steps', 'updater']
28
- });
29
- if (scenario) {
30
- scenario.start({
31
- instanceName: scenario.name + ':' + dataSet.name + ':' + dataSample.id,
32
- domain,
33
- user,
34
- variables: {
35
- dataOocId: dataOoc.id,
36
- dataSampleId: dataSample.id,
37
- dataSet: dataSet.id,
38
- data,
39
- ooc,
40
- oos,
41
- judgment,
42
- collectedAt,
43
- workDate,
44
- workShift,
45
- domain: {
46
- id: domain.id,
47
- subdomain: domain.subdomain,
48
- name: domain.name
49
- },
50
- updator: {
51
- id: user.id,
52
- username: user.username || user.email,
53
- email: user.email,
54
- name: user.name
55
- }
56
- }
57
- });
58
- }
59
- else {
60
- console.error(`Cannot find the set outlier-scenario for the dataset(${dataSet.name}).`);
61
- }
62
- }
63
- return dataOoc;
64
- }
65
- //# 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":";;AAQA,sCAqEC;AA7ED,qCAA4B;AAE5B,uEAA2D;AAI3D,iEAAwE;AAEjE,KAAK,UAAU,aAAa,CACjC,UAAsB,EACtB,OAAgB,EAChB,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,CAAA;IAEjF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,qBAAO,CAAC,CAAC,IAAI,iCAC/C,UAAU,KACb,OAAO,EAAE;YACP;gBACE,IAAI,EAAE;oBACJ,EAAE,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE;oBACZ,QAAQ,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA;oBACvC,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI;iBACjB;gBACD,KAAK,EAAE,2BAAa,CAAC,MAAM;gBAC3B,SAAS,EAAE,WAAW;aACvB;SACF,EACD,KAAK,EAAE,2BAAa,CAAC,MAAM,EAC3B,UAAU,EAAE,UAAU,IACtB,CAAA;IAEF,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,2BAAQ,CAAC,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACtF,EAAE,EAAE,OAAO,CAAC,iBAAiB;aAC9B;YACD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;SAC1C,CAAC,CAAA;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC;gBACb,YAAY,EAAE,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,EAAE;gBACtE,MAAM;gBACN,IAAI;gBACJ,SAAS,EAAE;oBACT,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,YAAY,EAAE,UAAU,CAAC,EAAE;oBAC3B,OAAO,EAAE,OAAO,CAAC,EAAE;oBACnB,IAAI;oBACJ,GAAG;oBACH,GAAG;oBACH,QAAQ;oBACR,WAAW;oBACX,QAAQ;oBACR,SAAS;oBACT,MAAM,EAAE;wBACN,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;qBAClB;oBACD,OAAO,EAAE;wBACP,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK;wBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;qBAChB;iBACF;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,wDAAwD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAA;QACzF,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { 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 scenario = await tx.getRepository(Scenario).findOne({\n where: {\n domain: domain.parentId ? { id: In([domain.id, domain.parentId]) } : { id: domain.id },\n id: dataSet.outlierScenarioId\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 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,268 +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/dist-server/controllers/activity-instance/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
- // See README.md at ## Data Samples
21
- process.env.TZ = 'UTC';
22
- const fillDataKeys = (dataKeySet, data = {}) => {
23
- const keys = (dataKeySet === null || dataKeySet === void 0 ? void 0 : dataKeySet.dataKeyItems) || [];
24
- return keys.reduce((sum, key, index) => {
25
- const value = data[key.dataKey];
26
- if (value != null) {
27
- sum[`key0${index + 1}`] = value instanceof Array ? value[0] : value;
28
- }
29
- return sum;
30
- }, {});
31
- };
32
- // parse variable javascript string pattern
33
- const replaceVariables = (keys, dic) => {
34
- for (const k in keys) {
35
- const matches = keys[k].match(/\$\{\w*\}/g);
36
- matches &&
37
- matches.forEach(m => {
38
- keys[k] = keys[k].replace(m, dic[m.slice(2, -1)]);
39
- });
40
- }
41
- return keys;
42
- };
43
- // It is required UTC date for Partitioning File System like AWS S3 from Athena.
44
- // ex) %YYYY, %MM, %DD
45
- const formatDate = (keys, _moment) => {
46
- for (const k in keys) {
47
- const matches = keys[k].match(/%\w*/g);
48
- matches &&
49
- matches.forEach(m => {
50
- keys[k] = keys[k].replace(m, _moment.format(m.substr(1)));
51
- });
52
- }
53
- return keys;
54
- };
55
- async function createDataSample(newDataSample, context) {
56
- const { domain, user, tx } = context.state;
57
- const dataSet = await (0, shell_1.getRepository)(data_set_js_1.DataSet, tx).findOne({
58
- where: { domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) }, id: newDataSample.dataSet.id },
59
- relations: ['dataKeySet']
60
- });
61
- const { dataItems = [], tag: publishTag, normalScenarioId, outlierScenarioId } = dataSet;
62
- const collectedAt = newDataSample.collectedAt || new Date();
63
- const timezone = dataSet.timezone || domain.timezone || 'UTC';
64
- const format = 'YYYY-MM-DD';
65
- // workDate ex) 2022-04-04
66
- const { workDate, workShift } = await (0, work_shift_1.getWorkDateAndShift)(domain, collectedAt, { timezone, format });
67
- // local time dataSet timezone or domain timezone or default 'UTC'
68
- const localDateTz = (0, moment_timezone_1.default)(collectedAt).tz(timezone);
69
- const defaultPartitionKeys = {
70
- domain: domain.subdomain,
71
- datasetid: newDataSample.dataSet.id /* It should not be 'data_set_id' as column name duplicated for Glue */,
72
- date: localDateTz.format(format) /* local time date */,
73
- workdate: workDate /* working date */,
74
- workshift: workShift
75
- };
76
- var partitionKeys = Object.assign(Object.assign({}, defaultPartitionKeys), dataSet.partitionKeys);
77
- partitionKeys = formatDate(partitionKeys, localDateTz);
78
- partitionKeys = replaceVariables(partitionKeys, newDataSample.data);
79
- const dataKeys = fillDataKeys(dataSet === null || dataSet === void 0 ? void 0 : dataSet.dataKeySet, newDataSample.data);
80
- const { ooc, oos, judgment } = data_use_case_js_1.DataUseCase.evaluate(dataSet, dataItems, newDataSample.data) || {};
81
- const old = await (0, shell_1.getRepository)(data_sample_js_1.DataSample, tx).findOne({
82
- where: Object.assign({ domain: { id: domain.id }, dataSet: { id: dataSet.id }, collectedAt }, dataKeys)
83
- });
84
- /*
85
- pre-processing for file attachment.
86
- currently only support type of [FileUpload].
87
- If [FileUpload[]] type needed, add 'files' type for dataset
88
- */
89
- const data = newDataSample.data;
90
- const attachments = [];
91
- for (let dataItem of dataItems) {
92
- if (dataItem.type == 'file') {
93
- const tag = dataItem.tag;
94
- const filesArray = data[tag];
95
- if (tag && filesArray && filesArray.length > 0) {
96
- let pathsArray = [];
97
- for (let files of filesArray) {
98
- let paths = [];
99
- if (files instanceof Array) {
100
- for (let file of files) {
101
- if (file) {
102
- const attachment = await (0, attachment_base_1.createAttachment)(null, {
103
- attachment: {
104
- file: file.file,
105
- refType: data_sample_js_1.DataSample.name
106
- }
107
- }, context);
108
- const fetched = await (0, shell_1.getRepository)(attachment_base_1.Attachment, tx).findOneBy({ id: attachment.id });
109
- if (fetched) {
110
- attachments.push(fetched);
111
- paths.push({
112
- id: fetched.id,
113
- mimetype: fetched.mimetype,
114
- name: fetched.name,
115
- fullpath: fetched.fullpath
116
- });
117
- }
118
- else {
119
- throw `Failed to save file(${attachment.name})`;
120
- }
121
- }
122
- else {
123
- paths.push(null);
124
- }
125
- }
126
- }
127
- pathsArray.push(paths);
128
- }
129
- data[tag] = pathsArray;
130
- }
131
- }
132
- }
133
- const dataSample = await (0, shell_1.getRepository)(data_sample_js_1.DataSample, tx).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, old), { name: dataSet.name, description: dataSet.description, useCase: dataSet.useCase, type: dataSet.type }), newDataSample), dataKeys), { dataSetVersion: dataSet.version, domain,
134
- partitionKeys,
135
- ooc,
136
- oos,
137
- judgment,
138
- collectedAt,
139
- workDate,
140
- workShift, creator: user, updater: user }));
141
- if (publishTag) {
142
- (0, integration_base_1.publishData)(publishTag, data, { domain, user });
143
- }
144
- /* post-process for for file attachment. */
145
- if (attachments.length > 0) {
146
- attachments.forEach(attachment => (attachment.refId = dataSample.id));
147
- (0, shell_1.getRepository)(attachment_base_1.Attachment, tx).save(attachments);
148
- }
149
- if (ooc || oos) {
150
- const dataOoc = await (0, create_data_ooc_js_1.createDataOoc)(dataSample, dataSet, context);
151
- await (0, issue_ooc_review_js_1.issueOocReview)(dataOoc, dataSet, context);
152
- try {
153
- shell_1.pubsub.publish('notification', {
154
- notification: {
155
- domain,
156
- type: 'error',
157
- title: `[OOC] ${dataSet.name}`,
158
- body: `Data OOC occurred on '${dataSet.name}'`,
159
- url: (0, shell_1.getRedirectSubdomainPath)(context, domain, `/data-ooc/${dataOoc.id}`),
160
- timestamp: collectedAt
161
- }
162
- });
163
- }
164
- catch (err) {
165
- env_1.logger.error('Notification', err);
166
- }
167
- }
168
- else {
169
- if (normalScenarioId) {
170
- const scenario = await (0, shell_1.getRepository)(integration_base_1.Scenario, tx).findOne({
171
- where: {
172
- domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) },
173
- id: normalScenarioId
174
- },
175
- relations: ['domain', 'steps', 'updater']
176
- });
177
- if (scenario) {
178
- scenario.start({
179
- instanceName: scenario.name + ':' + dataSet.name + ':' + dataSample.id,
180
- domain,
181
- user,
182
- variables: {
183
- dataSampleId: dataSample.id,
184
- dataSet: dataSet.id,
185
- data,
186
- ooc,
187
- oos,
188
- judgment,
189
- collectedAt,
190
- workDate,
191
- workShift,
192
- domain: {
193
- id: domain.id,
194
- subdomain: domain.subdomain,
195
- name: domain.name
196
- },
197
- updator: {
198
- id: user.id,
199
- email: user.email,
200
- name: user.name
201
- }
202
- }
203
- });
204
- }
205
- else {
206
- console.error(`Cannot find the set normal-scenario for the dataset(${dataSet.name}).`);
207
- }
208
- }
209
- if (dataSet.requiresReview) {
210
- const activity = (await (0, shell_1.getRepository)(worklist_1.Activity, tx).findOneBy({
211
- domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) },
212
- name: 'Data Review'
213
- }));
214
- if (activity) {
215
- const assigneeRole = dataSet.supervisoryRoleId &&
216
- (await (0, shell_1.getRepository)(auth_base_1.Role, tx).findOneBy({
217
- domain: { id: (0, typeorm_1.In)([domain.id, domain.parentId].filter(Boolean)) },
218
- id: dataSet.supervisoryRoleId
219
- }));
220
- // const assignees = dataSet.supervisoryRoleId
221
- // ? [{ type: 'Role', value: dataSet.supervisoryRoleId, assigneeRole }]
222
- // : []
223
- /* 해당 dataset의 supervisor로 하여금, data를 리뷰하고 instruction을 작성해서, approvalLine을 이용해서 승인을 한다. */
224
- if (assigneeRole) {
225
- dataSample.dataItems = dataItems;
226
- const activityInstance = {
227
- name: `[Data 검토] ${dataSet.name}`,
228
- description: dataSet.description,
229
- activityId: activity.id,
230
- dueAt: new Date(collectedAt.getTime() + (activity.standardTime || 24 * 60 * 60) * 1000),
231
- input: {
232
- dataSampleId: dataSample.id
233
- },
234
- assigneeRole,
235
- threadsMin: 1,
236
- threadsMax: 1,
237
- approvalLine: dataSet.reviewApprovalLine
238
- };
239
- dataSample.reviewActivityInstance = await (0, issue_1.issue)(activityInstance, context);
240
- await (0, shell_1.getRepository)(data_sample_js_1.DataSample, tx).save(dataSample);
241
- try {
242
- shell_1.pubsub.publish('notification', {
243
- notification: {
244
- domain,
245
- type: 'info',
246
- title: `[Data Review] ${dataSet.name}`,
247
- body: `Data Review occurred on '${dataSet.name}'`,
248
- url: (0, shell_1.getRedirectSubdomainPath)(context, domain, `/data-sample/${dataSample.id}`),
249
- timestamp: collectedAt
250
- }
251
- });
252
- }
253
- catch (err) {
254
- env_1.logger.error('Notification', err);
255
- }
256
- }
257
- else {
258
- console.error(`Assignees are not set. So Data Review task for ${dataSet.name}(${dataSet.id}) could not be issued.`);
259
- }
260
- }
261
- else {
262
- console.error('Data Review Activity not installed.');
263
- }
264
- }
265
- }
266
- return dataSample;
267
- }
268
- //# 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 } 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/dist-server/controllers/activity-instance/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'\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\n const dataSet = await getRepository(DataSet, tx).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, 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 attachment.\n currently only support type of [FileUpload].\n If [FileUpload[]] type needed, add 'files' type for dataset\n */\n\n const data = newDataSample.data\n const attachments = []\n\n for (let dataItem of dataItems) {\n if (dataItem.type == 'file') {\n const tag = dataItem.tag\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 }\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([domain.id, domain.parentId].filter(Boolean)) },\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([domain.id, domain.parentId].filter(Boolean)) },\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([domain.id, domain.parentId].filter(Boolean)) },\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 assigneeRole,\n threadsMin: 1,\n threadsMax: 1,\n approvalLine: dataSet.reviewApprovalLine\n }\n\n dataSample.reviewActivityInstance = await issue(activityInstance as any, context)\n await getRepository(DataSample, tx).save(dataSample)\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,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataUseCase = void 0;
4
- class DataUseCase {
5
- static registerUseCase(name, provider) {
6
- DataUseCase.registry[name] = provider;
7
- }
8
- static getUseCaseNames() {
9
- return Object.keys(DataUseCase.registry);
10
- }
11
- static getUseCase(name) {
12
- return DataUseCase.registry[name];
13
- }
14
- static evaluate(dataSet, dataItems, data) {
15
- var _a;
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 = (_a = dataItem.spec) === null || _a === void 0 ? void 0 : _a[dataSet.useCase];
42
- if (!specs) {
43
- continue;
44
- }
45
- const result = useCase.evaluate(specs, values);
46
- if (result) {
47
- oocForTag || (oocForTag = result.ooc);
48
- oosForTag || (oosForTag = result.oos);
49
- ooc || (ooc = result.ooc);
50
- oos || (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
- DataUseCase.registry = {};
63
- //# 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":";;;AAuBA,MAAsB,WAAW;IAGxB,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,QAAqB;QAC/D,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;IACvC,CAAC;IAEM,MAAM,CAAC,eAAe;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAY;QACnC,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,OAAgB,EAAE,SAAqB,EAAE,IAAS;;QACvE,IAAI,GAAG,GAAG,KAAK,CAAA;QACf,IAAI,GAAG,GAAG,KAAK,CAAA;QACf,IAAI,QAAQ,GAAsD,EAAE,CAAA;QAEpE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;QACtF,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAElH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAA;YAChC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpB,SAAQ;YACV,CAAC;YAED,IAAI,MAAM,GAAgB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;YAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,SAAQ,CAAC,kCAAkC;YAC7C,CAAC;YAED,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA;YACnB,CAAC;YAED,IAAI,SAAS,GAAG,KAAK,CAAA;YACrB,IAAI,SAAS,GAAG,KAAK,CAAA;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAE3B,MAAM,KAAK,GAAG,MAAA,QAAQ,CAAC,IAAI,0CAAG,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,SAAQ;gBACV,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gBAE9C,IAAI,MAAM,EAAE,CAAC;oBACX,SAAS,KAAT,SAAS,GAAK,MAAM,CAAC,GAAG,EAAA;oBACxB,SAAS,KAAT,SAAS,GAAK,MAAM,CAAC,GAAG,EAAA;oBACxB,GAAG,KAAH,GAAG,GAAK,MAAM,CAAC,GAAG,EAAA;oBAClB,GAAG,KAAH,GAAG,GAAK,MAAM,CAAC,GAAG,EAAA;gBACpB,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,GAAG,CAAC,GAAG;gBACd,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,SAAS;aACf,CAAA;QACH,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAA;IAC/B,CAAC;;AAvEH,kCA0EC;AAzEQ,oBAAQ,GAAoC,EAAE,CAAA","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>;