@things-factory/dataset 10.1.247 → 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.
- package/package.json +4 -4
- package/dist-client/activities/activity-data-collect-edit.d.ts +0 -26
- package/dist-client/activities/activity-data-collect-edit.js +0 -156
- package/dist-client/activities/activity-data-collect-edit.js.map +0 -1
- package/dist-client/activities/activity-data-collect-view.d.ts +0 -16
- package/dist-client/activities/activity-data-collect-view.js +0 -94
- package/dist-client/activities/activity-data-collect-view.js.map +0 -1
- package/dist-client/activities/activity-data-review-edit.d.ts +0 -20
- package/dist-client/activities/activity-data-review-edit.js +0 -300
- package/dist-client/activities/activity-data-review-edit.js.map +0 -1
- package/dist-client/activities/activity-data-review-view.d.ts +0 -16
- package/dist-client/activities/activity-data-review-view.js +0 -247
- package/dist-client/activities/activity-data-review-view.js.map +0 -1
- package/dist-client/activities/activity-ooc-resolve-edit.d.ts +0 -2
- package/dist-client/activities/activity-ooc-resolve-edit.js +0 -203
- package/dist-client/activities/activity-ooc-resolve-edit.js.map +0 -1
- package/dist-client/activities/activity-ooc-resolve-view.d.ts +0 -14
- package/dist-client/activities/activity-ooc-resolve-view.js +0 -154
- package/dist-client/activities/activity-ooc-resolve-view.js.map +0 -1
- package/dist-client/activities/activity-ooc-review-edit.d.ts +0 -3
- package/dist-client/activities/activity-ooc-review-edit.js +0 -197
- package/dist-client/activities/activity-ooc-review-edit.js.map +0 -1
- package/dist-client/activities/activity-ooc-review-view.d.ts +0 -1
- package/dist-client/activities/activity-ooc-review-view.js +0 -139
- package/dist-client/activities/activity-ooc-review-view.js.map +0 -1
- package/dist-client/bootstrap.d.ts +0 -10
- package/dist-client/bootstrap.js +0 -26
- package/dist-client/bootstrap.js.map +0 -1
- package/dist-client/components/checklist-entry-form.d.ts +0 -21
- package/dist-client/components/checklist-entry-form.js +0 -107
- package/dist-client/components/checklist-entry-form.js.map +0 -1
- package/dist-client/components/data-entry-form.d.ts +0 -21
- package/dist-client/components/data-entry-form.js +0 -107
- package/dist-client/components/data-entry-form.js.map +0 -1
- package/dist-client/index.d.ts +0 -1
- package/dist-client/index.js +0 -2
- package/dist-client/index.js.map +0 -1
- package/dist-client/pages/data-archive/data-archive-list-page.d.ts +0 -55
- package/dist-client/pages/data-archive/data-archive-list-page.js +0 -234
- package/dist-client/pages/data-archive/data-archive-list-page.js.map +0 -1
- package/dist-client/pages/data-archive/data-archive-request-popup.d.ts +0 -1
- package/dist-client/pages/data-archive/data-archive-request-popup.js +0 -160
- package/dist-client/pages/data-archive/data-archive-request-popup.js.map +0 -1
- package/dist-client/pages/data-entry/data-entry-list-page.d.ts +0 -31
- package/dist-client/pages/data-entry/data-entry-list-page.js +0 -383
- package/dist-client/pages/data-entry/data-entry-list-page.js.map +0 -1
- package/dist-client/pages/data-key-set/data-key-item-list.d.ts +0 -19
- package/dist-client/pages/data-key-set/data-key-item-list.js +0 -183
- package/dist-client/pages/data-key-set/data-key-item-list.js.map +0 -1
- package/dist-client/pages/data-key-set/data-key-set-importer.d.ts +0 -10
- package/dist-client/pages/data-key-set/data-key-set-importer.js +0 -93
- package/dist-client/pages/data-key-set/data-key-set-importer.js.map +0 -1
- package/dist-client/pages/data-key-set/data-key-set-list-page.d.ts +0 -56
- package/dist-client/pages/data-key-set/data-key-set-list-page.js +0 -335
- package/dist-client/pages/data-key-set/data-key-set-list-page.js.map +0 -1
- package/dist-client/pages/data-ooc/data-ooc-list-page.d.ts +0 -67
- package/dist-client/pages/data-ooc/data-ooc-list-page.js +0 -484
- package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +0 -1
- package/dist-client/pages/data-ooc/data-ooc-page.d.ts +0 -18
- package/dist-client/pages/data-ooc/data-ooc-page.js +0 -166
- package/dist-client/pages/data-ooc/data-ooc-page.js.map +0 -1
- package/dist-client/pages/data-ooc/data-ooc-view.d.ts +0 -19
- package/dist-client/pages/data-ooc/data-ooc-view.js +0 -234
- package/dist-client/pages/data-ooc/data-ooc-view.js.map +0 -1
- package/dist-client/pages/data-ooc/data-oocs-page.d.ts +0 -18
- package/dist-client/pages/data-ooc/data-oocs-page.js +0 -198
- package/dist-client/pages/data-ooc/data-oocs-page.js.map +0 -1
- package/dist-client/pages/data-report/data-report-embed-page.d.ts +0 -36
- package/dist-client/pages/data-report/data-report-embed-page.js +0 -104
- package/dist-client/pages/data-report/data-report-embed-page.js.map +0 -1
- package/dist-client/pages/data-report/data-report-list-page.d.ts +0 -30
- package/dist-client/pages/data-report/data-report-list-page.js +0 -370
- package/dist-client/pages/data-report/data-report-list-page.js.map +0 -1
- package/dist-client/pages/data-report/data-report-samples-page.d.ts +0 -26
- package/dist-client/pages/data-report/data-report-samples-page.js +0 -151
- package/dist-client/pages/data-report/data-report-samples-page.js.map +0 -1
- package/dist-client/pages/data-report/jasper-report-oocs-page.d.ts +0 -2
- package/dist-client/pages/data-report/jasper-report-oocs-page.js +0 -104
- package/dist-client/pages/data-report/jasper-report-oocs-page.js.map +0 -1
- package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.d.ts +0 -2
- package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js +0 -104
- package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js.map +0 -1
- package/dist-client/pages/data-report/jasper-report-samples-page.d.ts +0 -2
- package/dist-client/pages/data-report/jasper-report-samples-page.js +0 -104
- package/dist-client/pages/data-report/jasper-report-samples-page.js.map +0 -1
- package/dist-client/pages/data-sample/data-sample-list-page.d.ts +0 -62
- package/dist-client/pages/data-sample/data-sample-list-page.js +0 -372
- package/dist-client/pages/data-sample/data-sample-list-page.js.map +0 -1
- package/dist-client/pages/data-sample/data-sample-page.d.ts +0 -17
- package/dist-client/pages/data-sample/data-sample-page.js +0 -57
- package/dist-client/pages/data-sample/data-sample-page.js.map +0 -1
- package/dist-client/pages/data-sample/data-sample-search-page.d.ts +0 -51
- package/dist-client/pages/data-sample/data-sample-search-page.js +0 -364
- package/dist-client/pages/data-sample/data-sample-search-page.js.map +0 -1
- package/dist-client/pages/data-sample/data-sample-view.d.ts +0 -23
- package/dist-client/pages/data-sample/data-sample-view.js +0 -309
- package/dist-client/pages/data-sample/data-sample-view.js.map +0 -1
- package/dist-client/pages/data-sample/data-samples-page.d.ts +0 -21
- package/dist-client/pages/data-sample/data-samples-page.js +0 -247
- package/dist-client/pages/data-sample/data-samples-page.js.map +0 -1
- package/dist-client/pages/data-sensor/data-sensor-list-page.d.ts +0 -50
- package/dist-client/pages/data-sensor/data-sensor-list-page.js +0 -395
- package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +0 -1
- package/dist-client/pages/data-set/data-item-list.d.ts +0 -1
- package/dist-client/pages/data-set/data-item-list.js +0 -321
- package/dist-client/pages/data-set/data-item-list.js.map +0 -1
- package/dist-client/pages/data-set/data-set-importer.d.ts +0 -11
- package/dist-client/pages/data-set/data-set-importer.js +0 -96
- package/dist-client/pages/data-set/data-set-importer.js.map +0 -1
- package/dist-client/pages/data-set/data-set-list-page.d.ts +0 -77
- package/dist-client/pages/data-set/data-set-list-page.js +0 -1065
- package/dist-client/pages/data-set/data-set-list-page.js.map +0 -1
- package/dist-client/pages/data-summary/data-summary-list-page.d.ts +0 -51
- package/dist-client/pages/data-summary/data-summary-list-page.js +0 -308
- package/dist-client/pages/data-summary/data-summary-list-page.js.map +0 -1
- package/dist-client/pages/data-summary/data-summary-period-page.d.ts +0 -73
- package/dist-client/pages/data-summary/data-summary-period-page.js +0 -413
- package/dist-client/pages/data-summary/data-summary-period-page.js.map +0 -1
- package/dist-client/pages/data-summary/data-summary-search-page.d.ts +0 -70
- package/dist-client/pages/data-summary/data-summary-search-page.js +0 -360
- package/dist-client/pages/data-summary/data-summary-search-page.js.map +0 -1
- package/dist-client/pages/data-summary/data-summary-view.d.ts +0 -1
- package/dist-client/pages/data-summary/data-summary-view.js +0 -114
- package/dist-client/pages/data-summary/data-summary-view.js.map +0 -1
- package/dist-client/pages/sure-to.d.ts +0 -1
- package/dist-client/pages/sure-to.js +0 -10
- package/dist-client/pages/sure-to.js.map +0 -1
- package/dist-client/route.d.ts +0 -1
- package/dist-client/route.js +0 -71
- package/dist-client/route.js.map +0 -1
- package/dist-client/tsconfig.tsbuildinfo +0 -1
- package/dist-server/activities/activity-data-collect.d.ts +0 -42
- package/dist-server/activities/activity-data-collect.js +0 -89
- package/dist-server/activities/activity-data-collect.js.map +0 -1
- package/dist-server/activities/activity-data-review.d.ts +0 -42
- package/dist-server/activities/activity-data-review.js +0 -101
- package/dist-server/activities/activity-data-review.js.map +0 -1
- package/dist-server/activities/activity-ooc-resolve.d.ts +0 -42
- package/dist-server/activities/activity-ooc-resolve.js +0 -110
- package/dist-server/activities/activity-ooc-resolve.js.map +0 -1
- package/dist-server/activities/activity-ooc-review.d.ts +0 -42
- package/dist-server/activities/activity-ooc-review.js +0 -91
- package/dist-server/activities/activity-ooc-review.js.map +0 -1
- package/dist-server/activities/index.d.ts +0 -1
- package/dist-server/activities/index.js +0 -11
- package/dist-server/activities/index.js.map +0 -1
- package/dist-server/controllers/create-data-ooc.d.ts +0 -4
- package/dist-server/controllers/create-data-ooc.js +0 -73
- package/dist-server/controllers/create-data-ooc.js.map +0 -1
- package/dist-server/controllers/create-data-sample.d.ts +0 -3
- package/dist-server/controllers/create-data-sample.js +0 -341
- package/dist-server/controllers/create-data-sample.js.map +0 -1
- package/dist-server/controllers/data-use-case.d.ts +0 -36
- package/dist-server/controllers/data-use-case.js +0 -62
- package/dist-server/controllers/data-use-case.js.map +0 -1
- package/dist-server/controllers/finalize-data-collection.d.ts +0 -4
- package/dist-server/controllers/finalize-data-collection.js +0 -354
- package/dist-server/controllers/finalize-data-collection.js.map +0 -1
- package/dist-server/controllers/index.d.ts +0 -6
- package/dist-server/controllers/index.js +0 -10
- package/dist-server/controllers/index.js.map +0 -1
- package/dist-server/controllers/issue-data-collection-task.d.ts +0 -2
- package/dist-server/controllers/issue-data-collection-task.js +0 -64
- package/dist-server/controllers/issue-data-collection-task.js.map +0 -1
- package/dist-server/controllers/issue-ooc-resolve.d.ts +0 -3
- package/dist-server/controllers/issue-ooc-resolve.js +0 -55
- package/dist-server/controllers/issue-ooc-resolve.js.map +0 -1
- package/dist-server/controllers/issue-ooc-review.d.ts +0 -3
- package/dist-server/controllers/issue-ooc-review.js +0 -52
- package/dist-server/controllers/issue-ooc-review.js.map +0 -1
- package/dist-server/controllers/jasper-report.d.ts +0 -1
- package/dist-server/controllers/jasper-report.js +0 -166
- package/dist-server/controllers/jasper-report.js.map +0 -1
- package/dist-server/controllers/query-data-summary-by-period.d.ts +0 -3
- package/dist-server/controllers/query-data-summary-by-period.js +0 -163
- package/dist-server/controllers/query-data-summary-by-period.js.map +0 -1
- package/dist-server/controllers/shiny-report.d.ts +0 -1
- package/dist-server/controllers/shiny-report.js +0 -40
- package/dist-server/controllers/shiny-report.js.map +0 -1
- package/dist-server/engine/index.d.ts +0 -1
- package/dist-server/engine/index.js +0 -4
- package/dist-server/engine/index.js.map +0 -1
- package/dist-server/engine/task/create-data-sample.d.ts +0 -1
- package/dist-server/engine/task/create-data-sample.js +0 -81
- package/dist-server/engine/task/create-data-sample.js.map +0 -1
- package/dist-server/engine/task/index.d.ts +0 -2
- package/dist-server/engine/task/index.js +0 -5
- package/dist-server/engine/task/index.js.map +0 -1
- package/dist-server/engine/task/issue-collect-data.d.ts +0 -1
- package/dist-server/engine/task/issue-collect-data.js +0 -40
- package/dist-server/engine/task/issue-collect-data.js.map +0 -1
- package/dist-server/index.d.ts +0 -6
- package/dist-server/index.js +0 -10
- package/dist-server/index.js.map +0 -1
- package/dist-server/routes.d.ts +0 -1
- package/dist-server/routes.js +0 -152
- package/dist-server/routes.js.map +0 -1
- package/dist-server/service/data-archive/data-archive-mutation.d.ts +0 -16
- package/dist-server/service/data-archive/data-archive-mutation.js +0 -278
- package/dist-server/service/data-archive/data-archive-mutation.js.map +0 -1
- package/dist-server/service/data-archive/data-archive-query.d.ts +0 -11
- package/dist-server/service/data-archive/data-archive-query.js +0 -97
- package/dist-server/service/data-archive/data-archive-query.js.map +0 -1
- package/dist-server/service/data-archive/data-archive-type.d.ts +0 -23
- package/dist-server/service/data-archive/data-archive-type.js +0 -77
- package/dist-server/service/data-archive/data-archive-type.js.map +0 -1
- package/dist-server/service/data-archive/data-archive.d.ts +0 -19
- package/dist-server/service/data-archive/data-archive.js +0 -84
- package/dist-server/service/data-archive/data-archive.js.map +0 -1
- package/dist-server/service/data-archive/index.d.ts +0 -5
- package/dist-server/service/data-archive/index.js +0 -9
- package/dist-server/service/data-archive/index.js.map +0 -1
- package/dist-server/service/data-key-set/data-key-item-type.d.ts +0 -12
- package/dist-server/service/data-key-set/data-key-item-type.js +0 -52
- package/dist-server/service/data-key-set/data-key-item-type.js.map +0 -1
- package/dist-server/service/data-key-set/data-key-set-mutation.d.ts +0 -10
- package/dist-server/service/data-key-set/data-key-set-mutation.js +0 -203
- package/dist-server/service/data-key-set/data-key-set-mutation.js.map +0 -1
- package/dist-server/service/data-key-set/data-key-set-query.d.ts +0 -12
- package/dist-server/service/data-key-set/data-key-set-query.js +0 -117
- package/dist-server/service/data-key-set/data-key-set-query.js.map +0 -1
- package/dist-server/service/data-key-set/data-key-set-type.d.ts +0 -28
- package/dist-server/service/data-key-set/data-key-set-type.js +0 -106
- package/dist-server/service/data-key-set/data-key-set-type.js.map +0 -1
- package/dist-server/service/data-key-set/data-key-set.d.ts +0 -22
- package/dist-server/service/data-key-set/data-key-set.js +0 -104
- package/dist-server/service/data-key-set/data-key-set.js.map +0 -1
- package/dist-server/service/data-key-set/index.d.ts +0 -5
- package/dist-server/service/data-key-set/index.js +0 -9
- package/dist-server/service/data-key-set/index.js.map +0 -1
- package/dist-server/service/data-ooc/data-ooc-mutation.d.ts +0 -6
- package/dist-server/service/data-ooc/data-ooc-mutation.js +0 -96
- package/dist-server/service/data-ooc/data-ooc-mutation.js.map +0 -1
- package/dist-server/service/data-ooc/data-ooc-query.d.ts +0 -23
- package/dist-server/service/data-ooc/data-ooc-query.js +0 -209
- package/dist-server/service/data-ooc/data-ooc-query.js.map +0 -1
- package/dist-server/service/data-ooc/data-ooc-subscription.d.ts +0 -12
- package/dist-server/service/data-ooc/data-ooc-subscription.js +0 -64
- package/dist-server/service/data-ooc/data-ooc-subscription.js.map +0 -1
- package/dist-server/service/data-ooc/data-ooc-type.d.ts +0 -27
- package/dist-server/service/data-ooc/data-ooc-type.js +0 -111
- package/dist-server/service/data-ooc/data-ooc-type.js.map +0 -1
- package/dist-server/service/data-ooc/data-ooc.d.ts +0 -63
- package/dist-server/service/data-ooc/data-ooc.js +0 -310
- package/dist-server/service/data-ooc/data-ooc.js.map +0 -1
- package/dist-server/service/data-ooc/index.d.ts +0 -6
- package/dist-server/service/data-ooc/index.js +0 -10
- package/dist-server/service/data-ooc/index.js.map +0 -1
- package/dist-server/service/data-sample/data-sample-mutation.d.ts +0 -5
- package/dist-server/service/data-sample/data-sample-mutation.js +0 -30
- package/dist-server/service/data-sample/data-sample-mutation.js.map +0 -1
- package/dist-server/service/data-sample/data-sample-query.d.ts +0 -22
- package/dist-server/service/data-sample/data-sample-query.js +0 -274
- package/dist-server/service/data-sample/data-sample-query.js.map +0 -1
- package/dist-server/service/data-sample/data-sample-type.d.ts +0 -18
- package/dist-server/service/data-sample/data-sample-type.js +0 -68
- package/dist-server/service/data-sample/data-sample-type.js.map +0 -1
- package/dist-server/service/data-sample/data-sample.d.ts +0 -45
- package/dist-server/service/data-sample/data-sample.js +0 -226
- package/dist-server/service/data-sample/data-sample.js.map +0 -1
- package/dist-server/service/data-sample/index.d.ts +0 -5
- package/dist-server/service/data-sample/index.js +0 -9
- package/dist-server/service/data-sample/index.js.map +0 -1
- package/dist-server/service/data-sensor/data-sensor-mutation.d.ts +0 -9
- package/dist-server/service/data-sensor/data-sensor-mutation.js +0 -137
- package/dist-server/service/data-sensor/data-sensor-mutation.js.map +0 -1
- package/dist-server/service/data-sensor/data-sensor-query.d.ts +0 -16
- package/dist-server/service/data-sensor/data-sensor-query.js +0 -137
- package/dist-server/service/data-sensor/data-sensor-query.js.map +0 -1
- package/dist-server/service/data-sensor/data-sensor-type.d.ts +0 -42
- package/dist-server/service/data-sensor/data-sensor-type.js +0 -162
- package/dist-server/service/data-sensor/data-sensor-type.js.map +0 -1
- package/dist-server/service/data-sensor/data-sensor.d.ts +0 -33
- package/dist-server/service/data-sensor/data-sensor.js +0 -160
- package/dist-server/service/data-sensor/data-sensor.js.map +0 -1
- package/dist-server/service/data-sensor/index.d.ts +0 -5
- package/dist-server/service/data-sensor/index.js +0 -9
- package/dist-server/service/data-sensor/index.js.map +0 -1
- package/dist-server/service/data-set/data-item-type.d.ts +0 -321
- package/dist-server/service/data-set/data-item-type.js +0 -458
- package/dist-server/service/data-set/data-item-type.js.map +0 -1
- package/dist-server/service/data-set/data-set-mutation.d.ts +0 -20
- package/dist-server/service/data-set/data-set-mutation.js +0 -551
- package/dist-server/service/data-set/data-set-mutation.js.map +0 -1
- package/dist-server/service/data-set/data-set-query.d.ts +0 -39
- package/dist-server/service/data-set/data-set-query.js +0 -565
- package/dist-server/service/data-set/data-set-query.js.map +0 -1
- package/dist-server/service/data-set/data-set-type.d.ts +0 -75
- package/dist-server/service/data-set/data-set-type.js +0 -276
- package/dist-server/service/data-set/data-set-type.js.map +0 -1
- package/dist-server/service/data-set/data-set.d.ts +0 -96
- package/dist-server/service/data-set/data-set.js +0 -380
- package/dist-server/service/data-set/data-set.js.map +0 -1
- package/dist-server/service/data-set/index.d.ts +0 -5
- package/dist-server/service/data-set/index.js +0 -9
- package/dist-server/service/data-set/index.js.map +0 -1
- package/dist-server/service/data-set-history/data-set-history-query.d.ts +0 -21
- package/dist-server/service/data-set-history/data-set-history-query.js +0 -183
- package/dist-server/service/data-set-history/data-set-history-query.js.map +0 -1
- package/dist-server/service/data-set-history/data-set-history-type.d.ts +0 -5
- package/dist-server/service/data-set-history/data-set-history-type.js +0 -21
- package/dist-server/service/data-set-history/data-set-history-type.js.map +0 -1
- package/dist-server/service/data-set-history/data-set-history.d.ts +0 -53
- package/dist-server/service/data-set-history/data-set-history.js +0 -265
- package/dist-server/service/data-set-history/data-set-history.js.map +0 -1
- package/dist-server/service/data-set-history/event-subscriber.d.ts +0 -7
- package/dist-server/service/data-set-history/event-subscriber.js +0 -21
- package/dist-server/service/data-set-history/event-subscriber.js.map +0 -1
- package/dist-server/service/data-set-history/index.d.ts +0 -6
- package/dist-server/service/data-set-history/index.js +0 -10
- package/dist-server/service/data-set-history/index.js.map +0 -1
- package/dist-server/service/data-spec/data-spec-manager.d.ts +0 -10
- package/dist-server/service/data-spec/data-spec-manager.js +0 -20
- package/dist-server/service/data-spec/data-spec-manager.js.map +0 -1
- package/dist-server/service/data-spec/data-spec-query.d.ts +0 -5
- package/dist-server/service/data-spec/data-spec-query.js +0 -37
- package/dist-server/service/data-spec/data-spec-query.js.map +0 -1
- package/dist-server/service/data-spec/data-spec.d.ts +0 -19
- package/dist-server/service/data-spec/data-spec.js +0 -79
- package/dist-server/service/data-spec/data-spec.js.map +0 -1
- package/dist-server/service/data-spec/index.d.ts +0 -4
- package/dist-server/service/data-spec/index.js +0 -8
- package/dist-server/service/data-spec/index.js.map +0 -1
- package/dist-server/service/data-summary/data-summary-mutation.d.ts +0 -6
- package/dist-server/service/data-summary/data-summary-mutation.js +0 -76
- package/dist-server/service/data-summary/data-summary-mutation.js.map +0 -1
- package/dist-server/service/data-summary/data-summary-query.d.ts +0 -19
- package/dist-server/service/data-summary/data-summary-query.js +0 -237
- package/dist-server/service/data-summary/data-summary-query.js.map +0 -1
- package/dist-server/service/data-summary/data-summary-type.d.ts +0 -33
- package/dist-server/service/data-summary/data-summary-type.js +0 -139
- package/dist-server/service/data-summary/data-summary-type.js.map +0 -1
- package/dist-server/service/data-summary/data-summary.d.ts +0 -38
- package/dist-server/service/data-summary/data-summary.js +0 -202
- package/dist-server/service/data-summary/data-summary.js.map +0 -1
- package/dist-server/service/data-summary/index.d.ts +0 -6
- package/dist-server/service/data-summary/index.js +0 -10
- package/dist-server/service/data-summary/index.js.map +0 -1
- package/dist-server/service/index.d.ts +0 -14
- package/dist-server/service/index.js +0 -54
- package/dist-server/service/index.js.map +0 -1
- package/dist-server/tsconfig.tsbuildinfo +0 -1
- package/dist-server/utils/config-resolver.d.ts +0 -1
- package/dist-server/utils/config-resolver.js +0 -32
- package/dist-server/utils/config-resolver.js.map +0 -1
- package/dist-server/utils/index.d.ts +0 -2
- package/dist-server/utils/index.js +0 -6
- package/dist-server/utils/index.js.map +0 -1
- package/dist-server/utils/media-validation.d.ts +0 -51
- package/dist-server/utils/media-validation.js +0 -148
- package/dist-server/utils/media-validation.js.map +0 -1
|
@@ -1,551 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DataSetMutation = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const type_graphql_1 = require("type-graphql");
|
|
6
|
-
const typeorm_1 = require("typeorm");
|
|
7
|
-
const shell_1 = require("@things-factory/shell");
|
|
8
|
-
const auth_base_1 = require("@things-factory/auth-base");
|
|
9
|
-
const attachment_base_1 = require("@things-factory/attachment-base");
|
|
10
|
-
const organization_1 = require("@things-factory/organization");
|
|
11
|
-
const scheduler_client_1 = require("@things-factory/scheduler-client");
|
|
12
|
-
const finalize_data_collection_js_1 = require("../../controllers/finalize-data-collection.js");
|
|
13
|
-
const data_set_js_1 = require("./data-set.js");
|
|
14
|
-
const data_set_type_js_1 = require("./data-set-type.js");
|
|
15
|
-
const issue_data_collection_task_js_1 = require("../../controllers/issue-data-collection-task.js");
|
|
16
|
-
const crypto = require('crypto');
|
|
17
|
-
function getApprovalLineValue(patch) {
|
|
18
|
-
const { reviewApprovalLine } = patch;
|
|
19
|
-
if (!('reviewApprovalLine' in patch)) {
|
|
20
|
-
/* reviewApprovalLine 언급되지 않았다면, 업데이트하지 않는다. */
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
if (!reviewApprovalLine || !(reviewApprovalLine instanceof Array)) {
|
|
24
|
-
/* approvalLine의 값이 없거나 배열이 아니라면, 클리어시킨다. */
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
return reviewApprovalLine
|
|
28
|
-
.map(m => {
|
|
29
|
-
return {
|
|
30
|
-
type: m.type,
|
|
31
|
-
approver: m.approver
|
|
32
|
-
};
|
|
33
|
-
})
|
|
34
|
-
.filter(m => m.type)
|
|
35
|
-
.filter(m => {
|
|
36
|
-
switch (m.type) {
|
|
37
|
-
case organization_1.OrgMemberTargetType.Employee:
|
|
38
|
-
case organization_1.OrgMemberTargetType.Department:
|
|
39
|
-
case organization_1.OrgMemberTargetType.Role:
|
|
40
|
-
return !!m.approver?.id;
|
|
41
|
-
default:
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
function getOutlierApprovalLineValue(patch) {
|
|
47
|
-
const { outlierApprovalLine } = patch;
|
|
48
|
-
if (!('outlierApprovalLine' in patch)) {
|
|
49
|
-
/* approvalLine이 언급되지 않았다면, 업데이트하지 않는다. */
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
if (!outlierApprovalLine || !(outlierApprovalLine instanceof Array)) {
|
|
53
|
-
/* approvalLine의 값이 없거나 배열이 아니라면, 클리어시킨다. */
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
return outlierApprovalLine
|
|
57
|
-
.map(m => {
|
|
58
|
-
return {
|
|
59
|
-
type: m.type,
|
|
60
|
-
approver: m.approver
|
|
61
|
-
};
|
|
62
|
-
})
|
|
63
|
-
.filter(m => m.type)
|
|
64
|
-
.filter(m => {
|
|
65
|
-
switch (m.type) {
|
|
66
|
-
case organization_1.OrgMemberTargetType.Employee:
|
|
67
|
-
case organization_1.OrgMemberTargetType.Department:
|
|
68
|
-
case organization_1.OrgMemberTargetType.Role:
|
|
69
|
-
return !!m.approver?.id;
|
|
70
|
-
default:
|
|
71
|
-
return true;
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
let DataSetMutation = class DataSetMutation {
|
|
76
|
-
async createDataSet(dataSet, context) {
|
|
77
|
-
const { domain, user, tx } = context.state;
|
|
78
|
-
const dataSetRepo = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
79
|
-
const result = await dataSetRepo.save({
|
|
80
|
-
...dataSet,
|
|
81
|
-
approvalLine: getApprovalLineValue(dataSet),
|
|
82
|
-
outlierApprovalLineValue: getOutlierApprovalLineValue(dataSet),
|
|
83
|
-
version: 1,
|
|
84
|
-
domain,
|
|
85
|
-
creator: user,
|
|
86
|
-
updater: user
|
|
87
|
-
});
|
|
88
|
-
await this._createAttachment(context, dataSet.reportTemplate, { ref: result, cuFlag: '+' });
|
|
89
|
-
return result;
|
|
90
|
-
}
|
|
91
|
-
async updateDataSet(id, patch, context) {
|
|
92
|
-
const { domain, user, tx } = context.state;
|
|
93
|
-
const dataSetRepo = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
94
|
-
const dataSet = await dataSetRepo.findOne({
|
|
95
|
-
where: { domain: { id: domain.id }, id },
|
|
96
|
-
relations: ['domain', 'dataKeySet', 'entryRole', 'supervisoryRole', 'creator', 'updater']
|
|
97
|
-
/* history에 항상 반영될 수 있도록 relations가 있어야 함. */
|
|
98
|
-
});
|
|
99
|
-
const result = await dataSetRepo.save({
|
|
100
|
-
...dataSet,
|
|
101
|
-
...patch,
|
|
102
|
-
approvalLine: getApprovalLineValue(patch),
|
|
103
|
-
outlierApprovalLineValue: getOutlierApprovalLineValue(patch),
|
|
104
|
-
updater: user
|
|
105
|
-
});
|
|
106
|
-
await this._createAttachment(context, dataSet.reportTemplate, { ref: result, cuFlag: 'M' });
|
|
107
|
-
return result;
|
|
108
|
-
}
|
|
109
|
-
async updateMultipleDataSet(patches, context) {
|
|
110
|
-
const { domain, user, tx } = context.state;
|
|
111
|
-
const dataSetRepo = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
112
|
-
let results = [];
|
|
113
|
-
const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
|
|
114
|
-
const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
|
|
115
|
-
if (_createRecords.length > 0) {
|
|
116
|
-
const cuFlag = '+';
|
|
117
|
-
for (let i = 0; i < _createRecords.length; i++) {
|
|
118
|
-
const newRecord = _createRecords[i];
|
|
119
|
-
const result = await dataSetRepo.save({
|
|
120
|
-
...newRecord,
|
|
121
|
-
approvalLine: getApprovalLineValue(newRecord),
|
|
122
|
-
outlierApprovalLineValue: getOutlierApprovalLineValue(newRecord),
|
|
123
|
-
domain,
|
|
124
|
-
creator: user,
|
|
125
|
-
updater: user
|
|
126
|
-
});
|
|
127
|
-
await this._createAttachment(context, newRecord.reportTemplate, { ref: result, cuFlag });
|
|
128
|
-
results.push({
|
|
129
|
-
...result,
|
|
130
|
-
cuFlag
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
if (_updateRecords.length > 0) {
|
|
135
|
-
const cuFlag = 'M';
|
|
136
|
-
for (let i = 0; i < _updateRecords.length; i++) {
|
|
137
|
-
const updateRecord = _updateRecords[i];
|
|
138
|
-
const dataSet = await dataSetRepo.findOne({
|
|
139
|
-
where: { id: updateRecord.id },
|
|
140
|
-
/* history에 항상 반영될 수 있도록 relations가 있어야 함. */
|
|
141
|
-
relations: ['domain', 'dataKeySet', 'entryRole', 'supervisoryRole', 'creator', 'updater']
|
|
142
|
-
});
|
|
143
|
-
const result = await dataSetRepo.save({
|
|
144
|
-
...dataSet,
|
|
145
|
-
...updateRecord,
|
|
146
|
-
approvalLine: getApprovalLineValue(updateRecord),
|
|
147
|
-
outlierApprovalLineValue: getOutlierApprovalLineValue(updateRecord),
|
|
148
|
-
updater: user
|
|
149
|
-
});
|
|
150
|
-
await this._createAttachment(context, updateRecord.reportTemplate, { ref: result, cuFlag });
|
|
151
|
-
results.push({
|
|
152
|
-
...result,
|
|
153
|
-
cuFlag
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return results;
|
|
158
|
-
}
|
|
159
|
-
async deleteDataSet(id, context) {
|
|
160
|
-
const { domain, tx } = context.state;
|
|
161
|
-
await (0, shell_1.getRepository)(data_set_js_1.DataSet, tx).softDelete({ domain: { id: domain.id }, id });
|
|
162
|
-
await (0, attachment_base_1.deleteAttachmentsByRef)(null, { refBys: [`report-${id}`] }, context);
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
async deleteDataSets(ids, context) {
|
|
166
|
-
const { domain, tx } = context.state;
|
|
167
|
-
await (0, shell_1.getRepository)(data_set_js_1.DataSet, tx).softDelete({
|
|
168
|
-
domain: { id: domain.id },
|
|
169
|
-
id: (0, typeorm_1.In)(ids)
|
|
170
|
-
});
|
|
171
|
-
await (0, attachment_base_1.deleteAttachmentsByRef)(null, { refBys: ids.map(id => `report-${id}`) }, context);
|
|
172
|
-
return true;
|
|
173
|
-
}
|
|
174
|
-
async issueDataCollection(dataSetId, context) {
|
|
175
|
-
const { domain, tx, user } = context.state;
|
|
176
|
-
const domainIds = await (0, shell_1.getDomainIdsWithAncestors)(domain);
|
|
177
|
-
const dataSet = await (0, shell_1.getRepository)(data_set_js_1.DataSet, tx).findOne({
|
|
178
|
-
where: {
|
|
179
|
-
domain: {
|
|
180
|
-
id: (0, typeorm_1.In)(domainIds)
|
|
181
|
-
},
|
|
182
|
-
id: dataSetId
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
const { supervisoryRoleId, entryRoleId } = dataSet;
|
|
186
|
-
const allowedRoles = [supervisoryRoleId, entryRoleId].filter(Boolean);
|
|
187
|
-
const me = await (0, shell_1.getRepository)(auth_base_1.User, tx).findOne({
|
|
188
|
-
where: { id: user.id },
|
|
189
|
-
relations: ['roles']
|
|
190
|
-
});
|
|
191
|
-
if (!me.roles.find(role => allowedRoles.includes(role.id))) {
|
|
192
|
-
throw new Error(`You don't have permission to issue data collection task for this dataset.`);
|
|
193
|
-
}
|
|
194
|
-
const activityInstance = await (0, issue_data_collection_task_js_1.issueDataCollectionTask)(domain.id, dataSet.id, context);
|
|
195
|
-
return !!activityInstance;
|
|
196
|
-
}
|
|
197
|
-
async startDataCollectionSchedule(dataSetId, context) {
|
|
198
|
-
const { domain, tx } = context.state;
|
|
199
|
-
var repository = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
200
|
-
var dataSet = await repository.findOne({
|
|
201
|
-
where: { domain: { id: domain.id }, id: dataSetId }
|
|
202
|
-
});
|
|
203
|
-
if (!dataSet) {
|
|
204
|
-
throw new Error(context.t('error.data-set not found', {
|
|
205
|
-
dataSet: dataSetId
|
|
206
|
-
}));
|
|
207
|
-
}
|
|
208
|
-
try {
|
|
209
|
-
var handle = await (0, scheduler_client_1.registerSchedule)({
|
|
210
|
-
name: dataSet.name,
|
|
211
|
-
client: {
|
|
212
|
-
application: scheduler_client_1.Application,
|
|
213
|
-
group: `${domain.id}`,
|
|
214
|
-
type: 'data-set',
|
|
215
|
-
key: dataSet.id,
|
|
216
|
-
operation: 'schedule'
|
|
217
|
-
},
|
|
218
|
-
type: 'cron',
|
|
219
|
-
schedule: dataSet.schedule,
|
|
220
|
-
timezone: dataSet.timezone,
|
|
221
|
-
task: {
|
|
222
|
-
type: 'rest',
|
|
223
|
-
connection: {
|
|
224
|
-
host: `${scheduler_client_1.CallbackBase}/callback-schedule-for-dataset`,
|
|
225
|
-
headers: {
|
|
226
|
-
'Content-Type': 'application/json',
|
|
227
|
-
accept: '*/*'
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
data: {
|
|
231
|
-
domainId: domain.id,
|
|
232
|
-
dataSetId
|
|
233
|
-
},
|
|
234
|
-
history_check: true,
|
|
235
|
-
failed_policy: 'retry_dlq',
|
|
236
|
-
max_retry_count: 3,
|
|
237
|
-
retry_period: 60
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
return await repository.save({
|
|
241
|
-
...dataSet,
|
|
242
|
-
scheduleId: handle
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
catch (err) {
|
|
246
|
-
console.error('startDataCollectionSchedule', err);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
async stopDataCollectionSchedule(dataSetId, context) {
|
|
250
|
-
const { domain, tx } = context.state;
|
|
251
|
-
var repository = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
252
|
-
var dataSet = await repository.findOne({
|
|
253
|
-
where: { domain: { id: domain.id }, id: dataSetId }
|
|
254
|
-
});
|
|
255
|
-
if (!dataSet) {
|
|
256
|
-
throw new Error(context.t('error.data-set not found', {
|
|
257
|
-
dataSet: dataSetId
|
|
258
|
-
}));
|
|
259
|
-
}
|
|
260
|
-
try {
|
|
261
|
-
await (0, scheduler_client_1.unregisterSchedule)(dataSet.scheduleId);
|
|
262
|
-
return await repository.save({
|
|
263
|
-
...dataSet,
|
|
264
|
-
scheduleId: null
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
catch (err) {
|
|
268
|
-
console.error('stopDataCollectionSchedule', err);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
async startDataSummarySchedule(dataSetId, context) {
|
|
272
|
-
const { domain, tx } = context.state;
|
|
273
|
-
var repository = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
274
|
-
var dataSet = await repository.findOne({
|
|
275
|
-
where: { domain: { id: domain.id }, id: dataSetId }
|
|
276
|
-
});
|
|
277
|
-
if (!dataSet) {
|
|
278
|
-
throw new Error(context.t('error.data-set not found', {
|
|
279
|
-
dataSet: dataSetId
|
|
280
|
-
}));
|
|
281
|
-
}
|
|
282
|
-
if (!dataSet.summaryPeriod) {
|
|
283
|
-
throw new Error(context.t('error.data-set summary-period not set', {
|
|
284
|
-
dataSet: dataSetId
|
|
285
|
-
}));
|
|
286
|
-
}
|
|
287
|
-
const schedule = await (0, finalize_data_collection_js_1.getDataFinalizeCrontabSchedule)(dataSet, context);
|
|
288
|
-
try {
|
|
289
|
-
var handle = await (0, scheduler_client_1.registerSchedule)({
|
|
290
|
-
name: dataSet.name,
|
|
291
|
-
client: {
|
|
292
|
-
application: scheduler_client_1.Application,
|
|
293
|
-
group: `${domain.id}`,
|
|
294
|
-
type: 'data-set',
|
|
295
|
-
key: dataSet.id,
|
|
296
|
-
operation: 'summary'
|
|
297
|
-
},
|
|
298
|
-
type: 'cron',
|
|
299
|
-
schedule,
|
|
300
|
-
timezone: dataSet.timezone,
|
|
301
|
-
task: {
|
|
302
|
-
type: 'rest',
|
|
303
|
-
connection: {
|
|
304
|
-
host: `${scheduler_client_1.CallbackBase}/callback-schedule-for-dataset-summary`,
|
|
305
|
-
headers: {
|
|
306
|
-
'Content-Type': 'application/json',
|
|
307
|
-
accept: '*/*'
|
|
308
|
-
}
|
|
309
|
-
},
|
|
310
|
-
data: {
|
|
311
|
-
domainId: domain.id,
|
|
312
|
-
dataSetId
|
|
313
|
-
},
|
|
314
|
-
history_check: true,
|
|
315
|
-
failed_policy: 'retry_dlq',
|
|
316
|
-
max_retry_count: 3,
|
|
317
|
-
retry_period: 60
|
|
318
|
-
}
|
|
319
|
-
});
|
|
320
|
-
return await repository.save({
|
|
321
|
-
...dataSet,
|
|
322
|
-
summarySchedule: schedule,
|
|
323
|
-
summaryScheduleId: handle
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
catch (err) {
|
|
327
|
-
console.error('startDataSummarySchedule', err);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
async stopDataSummarySchedule(dataSetId, context) {
|
|
331
|
-
const { domain, tx } = context.state;
|
|
332
|
-
var repository = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
333
|
-
var dataSet = await repository.findOne({
|
|
334
|
-
where: { domain: { id: domain.id }, id: dataSetId }
|
|
335
|
-
});
|
|
336
|
-
if (!dataSet) {
|
|
337
|
-
throw new Error(context.t('error.data-set not found', {
|
|
338
|
-
dataSet: dataSetId
|
|
339
|
-
}));
|
|
340
|
-
}
|
|
341
|
-
try {
|
|
342
|
-
await (0, scheduler_client_1.unregisterSchedule)(dataSet.summaryScheduleId);
|
|
343
|
-
return await repository.save({
|
|
344
|
-
...dataSet,
|
|
345
|
-
summarySchedule: null,
|
|
346
|
-
summaryScheduleId: null
|
|
347
|
-
});
|
|
348
|
-
}
|
|
349
|
-
catch (err) {
|
|
350
|
-
console.error('stopDataSummarySchedule', err);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
async importDataSets(dataSets, context) {
|
|
354
|
-
const { domain, tx } = context.state;
|
|
355
|
-
const dataSetRepo = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
356
|
-
await Promise.all(dataSets.map(async (dataSet) => {
|
|
357
|
-
const createdDataSet = await dataSetRepo.save({
|
|
358
|
-
domain,
|
|
359
|
-
...dataSet
|
|
360
|
-
});
|
|
361
|
-
}));
|
|
362
|
-
return true;
|
|
363
|
-
}
|
|
364
|
-
async copyDataSets(ids, context) {
|
|
365
|
-
const { domain, user, tx } = context.state;
|
|
366
|
-
const domainIds = await (0, shell_1.getDomainIdsWithAncestors)(domain);
|
|
367
|
-
const dataSetRepo = (0, shell_1.getRepository)(data_set_js_1.DataSet, tx);
|
|
368
|
-
const originals = await dataSetRepo.find({
|
|
369
|
-
where: {
|
|
370
|
-
id: (0, typeorm_1.In)(ids),
|
|
371
|
-
domain: { id: (0, typeorm_1.In)(domainIds) }
|
|
372
|
-
},
|
|
373
|
-
relations: ['domain', 'supervisoryRole', 'entryRole', 'dataKeySet']
|
|
374
|
-
});
|
|
375
|
-
if (originals.length == 0) {
|
|
376
|
-
return [];
|
|
377
|
-
}
|
|
378
|
-
var newCopys = originals.map(dataSet => {
|
|
379
|
-
let dataSetId = crypto.randomUUID();
|
|
380
|
-
return {
|
|
381
|
-
...dataSet,
|
|
382
|
-
id: dataSetId,
|
|
383
|
-
name: dataSet.name + ' (' + dataSetId + ')',
|
|
384
|
-
active: false,
|
|
385
|
-
version: 1,
|
|
386
|
-
domain,
|
|
387
|
-
creator: user,
|
|
388
|
-
updater: user,
|
|
389
|
-
updatedAt: undefined,
|
|
390
|
-
createdAt: undefined
|
|
391
|
-
};
|
|
392
|
-
});
|
|
393
|
-
var copiedDataSets = await dataSetRepo.save(newCopys);
|
|
394
|
-
return copiedDataSets;
|
|
395
|
-
}
|
|
396
|
-
async _createAttachment(context, attachment, { ref, cuFlag }) {
|
|
397
|
-
if (attachment) {
|
|
398
|
-
cuFlag == 'M' && (await (0, attachment_base_1.deleteAttachmentsByRef)(null, { refBys: [ref.id] }, context));
|
|
399
|
-
await (0, attachment_base_1.createAttachment)(null, {
|
|
400
|
-
attachment: {
|
|
401
|
-
file: attachment,
|
|
402
|
-
refType: `${data_set_js_1.DataSet.name}-report-template`,
|
|
403
|
-
refBy: ref.id
|
|
404
|
-
}
|
|
405
|
-
}, context);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
};
|
|
409
|
-
exports.DataSetMutation = DataSetMutation;
|
|
410
|
-
tslib_1.__decorate([
|
|
411
|
-
(0, type_graphql_1.Directive)('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)'),
|
|
412
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
413
|
-
(0, type_graphql_1.Mutation)(returns => data_set_js_1.DataSet, {
|
|
414
|
-
description: 'Creates a new dataset with complete configuration including data items, roles, approval lines, and workflow settings. This mutation initializes the data collection structure and associated metadata.'
|
|
415
|
-
}),
|
|
416
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSet')),
|
|
417
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
418
|
-
tslib_1.__metadata("design:type", Function),
|
|
419
|
-
tslib_1.__metadata("design:paramtypes", [data_set_type_js_1.NewDataSet, Object]),
|
|
420
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
421
|
-
], DataSetMutation.prototype, "createDataSet", null);
|
|
422
|
-
tslib_1.__decorate([
|
|
423
|
-
(0, type_graphql_1.Directive)('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)'),
|
|
424
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
425
|
-
(0, type_graphql_1.Mutation)(returns => data_set_js_1.DataSet, {
|
|
426
|
-
description: 'Updates an existing dataset configuration. This mutation allows modification of data items, roles, approval lines, and other settings while maintaining version history.'
|
|
427
|
-
}),
|
|
428
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
429
|
-
tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
|
|
430
|
-
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
431
|
-
tslib_1.__metadata("design:type", Function),
|
|
432
|
-
tslib_1.__metadata("design:paramtypes", [String, data_set_type_js_1.DataSetPatch, Object]),
|
|
433
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
434
|
-
], DataSetMutation.prototype, "updateDataSet", null);
|
|
435
|
-
tslib_1.__decorate([
|
|
436
|
-
(0, type_graphql_1.Directive)('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)'),
|
|
437
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
438
|
-
(0, type_graphql_1.Mutation)(returns => [data_set_js_1.DataSet], {
|
|
439
|
-
description: 'Updates multiple datasets in a single operation. This mutation supports batch processing for efficient management of multiple dataset configurations.'
|
|
440
|
-
}),
|
|
441
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [data_set_type_js_1.DataSetPatch])),
|
|
442
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
443
|
-
tslib_1.__metadata("design:type", Function),
|
|
444
|
-
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
|
445
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
446
|
-
], DataSetMutation.prototype, "updateMultipleDataSet", null);
|
|
447
|
-
tslib_1.__decorate([
|
|
448
|
-
(0, type_graphql_1.Directive)('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)'),
|
|
449
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
450
|
-
(0, type_graphql_1.Mutation)(returns => Boolean, {
|
|
451
|
-
description: 'Deletes a dataset and all its associated data. This operation removes the dataset configuration, data samples, and related metadata from the system.'
|
|
452
|
-
}),
|
|
453
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
454
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
455
|
-
tslib_1.__metadata("design:type", Function),
|
|
456
|
-
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
457
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
458
|
-
], DataSetMutation.prototype, "deleteDataSet", null);
|
|
459
|
-
tslib_1.__decorate([
|
|
460
|
-
(0, type_graphql_1.Directive)('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)'),
|
|
461
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
462
|
-
(0, type_graphql_1.Mutation)(returns => Boolean, {
|
|
463
|
-
description: 'Deletes multiple datasets in a single operation. This mutation supports batch deletion for efficient cleanup of multiple datasets and their associated data.'
|
|
464
|
-
}),
|
|
465
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
|
466
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
467
|
-
tslib_1.__metadata("design:type", Function),
|
|
468
|
-
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
|
469
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
470
|
-
], DataSetMutation.prototype, "deleteDataSets", null);
|
|
471
|
-
tslib_1.__decorate([
|
|
472
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
473
|
-
(0, type_graphql_1.Mutation)(returns => Boolean, {
|
|
474
|
-
description: 'Issues a data collection task for the specified dataset. This mutation creates a worklist activity for manual data entry, allowing authorized users to input data samples according to the dataset configuration.'
|
|
475
|
-
}),
|
|
476
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
477
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
478
|
-
tslib_1.__metadata("design:type", Function),
|
|
479
|
-
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
480
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
481
|
-
], DataSetMutation.prototype, "issueDataCollection", null);
|
|
482
|
-
tslib_1.__decorate([
|
|
483
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
484
|
-
(0, type_graphql_1.Mutation)(returns => data_set_js_1.DataSet, {
|
|
485
|
-
description: 'Starts automated data collection scheduling for the specified dataset. This mutation registers a cron-based schedule that automatically triggers data collection tasks according to the dataset configuration.'
|
|
486
|
-
}),
|
|
487
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
488
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
489
|
-
tslib_1.__metadata("design:type", Function),
|
|
490
|
-
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
491
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
492
|
-
], DataSetMutation.prototype, "startDataCollectionSchedule", null);
|
|
493
|
-
tslib_1.__decorate([
|
|
494
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
495
|
-
(0, type_graphql_1.Mutation)(returns => data_set_js_1.DataSet, {
|
|
496
|
-
nullable: true,
|
|
497
|
-
description: 'Stops automated data collection scheduling for the specified dataset. This mutation unregisters the cron schedule and disables automatic data collection tasks.'
|
|
498
|
-
}),
|
|
499
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
500
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
501
|
-
tslib_1.__metadata("design:type", Function),
|
|
502
|
-
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
503
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
504
|
-
], DataSetMutation.prototype, "stopDataCollectionSchedule", null);
|
|
505
|
-
tslib_1.__decorate([
|
|
506
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
507
|
-
(0, type_graphql_1.Mutation)(returns => data_set_js_1.DataSet, {
|
|
508
|
-
description: 'Starts automated data summary scheduling for the specified dataset. This mutation registers a cron-based schedule that automatically generates statistical summaries of collected data according to the configured summary period.'
|
|
509
|
-
}),
|
|
510
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
511
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
512
|
-
tslib_1.__metadata("design:type", Function),
|
|
513
|
-
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
514
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
515
|
-
], DataSetMutation.prototype, "startDataSummarySchedule", null);
|
|
516
|
-
tslib_1.__decorate([
|
|
517
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
518
|
-
(0, type_graphql_1.Mutation)(returns => data_set_js_1.DataSet, {
|
|
519
|
-
nullable: true,
|
|
520
|
-
description: 'To stop data summary schedule for the given dataset'
|
|
521
|
-
}),
|
|
522
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
523
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
524
|
-
tslib_1.__metadata("design:type", Function),
|
|
525
|
-
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
526
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
527
|
-
], DataSetMutation.prototype, "stopDataSummarySchedule", null);
|
|
528
|
-
tslib_1.__decorate([
|
|
529
|
-
(0, type_graphql_1.Directive)('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)'),
|
|
530
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
531
|
-
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple data-sets' }),
|
|
532
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSets', type => [data_set_type_js_1.DataSetPatch])),
|
|
533
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
534
|
-
tslib_1.__metadata("design:type", Function),
|
|
535
|
-
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
|
536
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
537
|
-
], DataSetMutation.prototype, "importDataSets", null);
|
|
538
|
-
tslib_1.__decorate([
|
|
539
|
-
(0, type_graphql_1.Directive)('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)'),
|
|
540
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
541
|
-
(0, type_graphql_1.Mutation)(returns => [data_set_js_1.DataSet], { description: 'To copy multiple data-sets' }),
|
|
542
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
|
543
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
544
|
-
tslib_1.__metadata("design:type", Function),
|
|
545
|
-
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
|
546
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
547
|
-
], DataSetMutation.prototype, "copyDataSets", null);
|
|
548
|
-
exports.DataSetMutation = DataSetMutation = tslib_1.__decorate([
|
|
549
|
-
(0, type_graphql_1.Resolver)(data_set_js_1.DataSet)
|
|
550
|
-
], DataSetMutation);
|
|
551
|
-
//# sourceMappingURL=data-set-mutation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-set-mutation.js","sourceRoot":"","sources":["../../../server/service/data-set/data-set-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAE5B,iDAAgF;AAChF,yDAAgD;AAChD,qEAA0F;AAC1F,+DAAoF;AACpF,uEAAkH;AAElH,+FAA8F;AAC9F,+CAAuC;AACvC,yDAA6D;AAC7D,mGAAyF;AAEzF,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEhC,SAAS,oBAAoB,CAAC,KAAgC;IAC5D,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;IAEpC,IAAI,CAAC,CAAC,oBAAoB,IAAI,KAAK,CAAC,EAAE,CAAC;QACrC,+CAA+C;QAC/C,OAAM;IACR,CAAC;IAED,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,kBAAkB,YAAY,KAAK,CAAC,EAAE,CAAC;QAClE,4CAA4C;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,kBAAkB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACD,CAAA;IACvB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE;QACV,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,kCAAmB,CAAC,QAAQ,CAAC;YAClC,KAAK,kCAAmB,CAAC,UAAU,CAAC;YACpC,KAAK,kCAAmB,CAAC,IAAI;gBAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAA;YACzB;gBACE,OAAO,IAAI,CAAA;QACf,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAgC;IACnE,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAA;IAErC,IAAI,CAAC,CAAC,qBAAqB,IAAI,KAAK,CAAC,EAAE,CAAC;QACtC,0CAA0C;QAC1C,OAAM;IACR,CAAC;IAED,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,mBAAmB,YAAY,KAAK,CAAC,EAAE,CAAC;QACpE,4CAA4C;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,mBAAmB;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACD,CAAA;IACvB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE;QACV,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,kCAAmB,CAAC,QAAQ,CAAC;YAClC,KAAK,kCAAmB,CAAC,UAAU,CAAC;YACpC,KAAK,kCAAmB,CAAC,IAAI;gBAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAA;YACzB;gBACE,OAAO,IAAI,CAAA;QACf,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAGM,IAAM,eAAe,GAArB,MAAM,eAAe;IAOpB,AAAN,KAAK,CAAC,aAAa,CAAiB,OAAmB,EAAS,OAAwB;QACtF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAE9C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;YACpC,GAAG,OAAO;YACV,YAAY,EAAE,oBAAoB,CAAC,OAAO,CAAC;YAC3C,wBAAwB,EAAE,2BAA2B,CAAC,OAAO,CAAC;YAC9D,OAAO,EAAE,CAAC;YACV,MAAM;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAE3F,OAAO,MAAM,CAAA;IACf,CAAC;IAQK,AAAN,KAAK,CAAC,aAAa,CACN,EAAU,EACP,KAAmB,EAC1B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAE9C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;YACxC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;YACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC;YACzF,6CAA6C;SAC9C,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;YACpC,GAAG,OAAO;YACV,GAAG,KAAK;YACR,YAAY,EAAE,oBAAoB,CAAC,KAAK,CAAC;YACzC,wBAAwB,EAAE,2BAA2B,CAAC,KAAK,CAAC;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAE3F,OAAO,MAAM,CAAA;IACf,CAAC;IAQK,AAAN,KAAK,CAAC,qBAAqB,CACe,OAAuB,EACxD,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAE9C,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QAEzF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAA;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;oBACpC,GAAG,SAAS;oBACZ,YAAY,EAAE,oBAAoB,CAAC,SAAS,CAAC;oBAC7C,wBAAwB,EAAE,2BAA2B,CAAC,SAAS,CAAC;oBAChE,MAAM;oBACN,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;gBAExF,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG,MAAM;oBACT,MAAM;iBACP,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAA;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACtC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;oBACxC,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE;oBAC9B,6CAA6C;oBAC7C,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC;iBAC1F,CAAC,CAAA;gBAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;oBACpC,GAAG,OAAO;oBACV,GAAG,YAAY;oBACf,YAAY,EAAE,oBAAoB,CAAC,YAAY,CAAC;oBAChD,wBAAwB,EAAE,2BAA2B,CAAC,YAAY,CAAC;oBACnE,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;gBAE3F,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG,MAAM;oBACT,MAAM;iBACP,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAQK,AAAN,KAAK,CAAC,aAAa,CAAY,EAAU,EAAS,OAAwB;QACxE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC9E,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAEzE,OAAO,IAAI,CAAA;IACb,CAAC;IAQK,AAAN,KAAK,CAAC,cAAc,CAA+B,GAAa,EAAS,OAAwB;QAC/F,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC;YAC1C,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAEtF,OAAO,IAAI,CAAA;IACb,CAAC;IAOK,AAAN,KAAK,CAAC,mBAAmB,CAAmB,SAAiB,EAAS,OAAwB;QAC5F,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAA,iCAAyB,EAAC,MAAM,CAAC,CAAA;QAEzD,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;YACvD,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,EAAE,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC;iBAClB;gBACD,EAAE,EAAE,SAAS;aACd;SACF,CAAC,CAAA;QAEF,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAClD,MAAM,YAAY,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAErE,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAa,EAAC,gBAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,SAAS,EAAE,CAAC,OAAO,CAAC;SACrB,CAAC,CAAA;QAEF,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAA;QAC9F,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,uDAAuB,EAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAEtF,OAAO,CAAC,CAAC,gBAAgB,CAAA;IAC3B,CAAC;IAOK,AAAN,KAAK,CAAC,2BAA2B,CACb,SAAiB,EAC5B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,IAAI,UAAU,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAC3C,IAAI,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;SACpD,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE;gBACpC,OAAO,EAAE,SAAS;aACnB,CAAC,CACH,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC;gBAClC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE;oBACN,WAAW,EAAE,8BAAW;oBACxB,KAAK,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE;oBACrB,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,OAAO,CAAC,EAAE;oBACf,SAAS,EAAE,UAAU;iBACtB;gBACD,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE;wBACV,IAAI,EAAE,GAAG,+BAAY,gCAAgC;wBACrD,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,MAAM,EAAE,KAAK;yBACd;qBACF;oBACD,IAAI,EAAE;wBACJ,QAAQ,EAAE,MAAM,CAAC,EAAE;wBACnB,SAAS;qBACV;oBACD,aAAa,EAAE,IAAI;oBACnB,aAAa,EAAE,WAAW;oBAC1B,eAAe,EAAE,CAAC;oBAClB,YAAY,EAAE,EAAE;iBACjB;aACF,CAAC,CAAA;YAEF,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;gBAC3B,GAAG,OAAO;gBACV,UAAU,EAAE,MAAM;aACnB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAQK,AAAN,KAAK,CAAC,0BAA0B,CACZ,SAAiB,EAC5B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,IAAI,UAAU,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAC3C,IAAI,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;SACpD,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE;gBACpC,OAAO,EAAE,SAAS;aACnB,CAAC,CACH,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAA,qCAAkB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAE5C,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;gBAC3B,GAAG,OAAO;gBACV,UAAU,EAAE,IAAI;aACjB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAOK,AAAN,KAAK,CAAC,wBAAwB,CACV,SAAiB,EAC5B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,IAAI,UAAU,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAC3C,IAAI,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;SACpD,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE;gBACpC,OAAO,EAAE,SAAS;aACnB,CAAC,CACH,CAAA;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,uCAAuC,EAAE;gBACjD,OAAO,EAAE,SAAS;aACnB,CAAC,CACH,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,4DAA8B,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAEvE,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC;gBAClC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE;oBACN,WAAW,EAAE,8BAAW;oBACxB,KAAK,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE;oBACrB,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,OAAO,CAAC,EAAE;oBACf,SAAS,EAAE,SAAS;iBACrB;gBACD,IAAI,EAAE,MAAM;gBACZ,QAAQ;gBACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE;wBACV,IAAI,EAAE,GAAG,+BAAY,wCAAwC;wBAC7D,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,MAAM,EAAE,KAAK;yBACd;qBACF;oBACD,IAAI,EAAE;wBACJ,QAAQ,EAAE,MAAM,CAAC,EAAE;wBACnB,SAAS;qBACV;oBACD,aAAa,EAAE,IAAI;oBACnB,aAAa,EAAE,WAAW;oBAC1B,eAAe,EAAE,CAAC;oBAClB,YAAY,EAAE,EAAE;iBACjB;aACF,CAAC,CAAA;YAEF,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;gBAC3B,GAAG,OAAO;gBACV,eAAe,EAAE,QAAQ;gBACzB,iBAAiB,EAAE,MAAM;aAC1B,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAOK,AAAN,KAAK,CAAC,uBAAuB,CACT,SAAiB,EAC5B,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,IAAI,UAAU,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAC3C,IAAI,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;SACpD,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE;gBACpC,OAAO,EAAE,SAAS;aACnB,CAAC,CACH,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAA,qCAAkB,EAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YAEnD,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;gBAC3B,GAAG,OAAO;gBACV,eAAe,EAAE,IAAI;gBACrB,iBAAiB,EAAE,IAAI;aACxB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAKK,AAAN,KAAK,CAAC,cAAc,CACuB,QAAmB,EACrD,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACpC,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAE9C,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;YACtC,MAAM,cAAc,GAAY,MAAM,WAAW,CAAC,IAAI,CAAC;gBACrD,MAAM;gBACN,GAAG,OAAO;aACX,CAAC,CAAA;QACJ,CAAC,CAAC,CACH,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAKK,AAAN,KAAK,CAAC,YAAY,CAA+B,GAAa,EAAS,OAAwB;QAC7F,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAA,iCAAyB,EAAC,MAAM,CAAC,CAAA;QACzD,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAC,qBAAO,EAAE,EAAE,CAAC,CAAA;QAE9C,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;YACvC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;gBACX,MAAM,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC,EAAE;aAC9B;YACD,SAAS,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC;SACpE,CAAC,CAAA;QAEF,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAA;QACX,CAAC;QAED,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACrC,IAAI,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;YAEnC,OAAO;gBACL,GAAG,OAAO;gBACV,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG;gBAC3C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,CAAC;gBACV,MAAM;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;aACrB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,cAAc,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAErD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;QAC1D,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,IAAA,wCAAsB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;YACpF,MAAM,IAAA,kCAAgB,EACpB,IAAI,EACJ;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,GAAG,qBAAO,CAAC,IAAI,kBAAkB;oBAC1C,KAAK,EAAE,GAAG,CAAC,EAAE;iBACd;aACF,EACD,OAAO,CACR,CAAA;QACH,CAAC;IACH,CAAC;CACF,CAAA;AA/eY,0CAAe;AAOpB;IANL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAO,EAAE;QAC5B,WAAW,EACT,wMAAwM;KAC3M,CAAC;IACmB,mBAAA,IAAA,kBAAG,EAAC,SAAS,CAAC,CAAA;IAAuB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAlB,6BAAU;;oDAiBtD;AAQK;IANL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAO,EAAE;QAC5B,WAAW,EACT,0KAA0K;KAC7K,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,+BAAY;;oDAuBlC;AAQK;IANL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,qBAAO,CAAC,EAAE;QAC9B,WAAW,EACT,uJAAuJ;KAC1J,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,+BAAY,CAAC,CAAC,CAAA;IACtC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;4DA4DP;AAQK;IANL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,WAAW,EACT,sJAAsJ;KACzJ,CAAC;IACmB,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;oDAOhD;AAQK;IANL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,WAAW,EACT,8JAA8J;KACjK,CAAC;IACoB,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAAiB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;qDAWvE;AAOK;IALL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,WAAW,EACT,mNAAmN;KACtN,CAAC;IACyB,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;0DA4BpE;AAOK;IALL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAO,EAAE;QAC5B,WAAW,EACT,gNAAgN;KACnN,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;kEAyDP;AAQK;IANL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAO,EAAE;QAC5B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,iKAAiK;KACpK,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;iEA2BP;AAOK;IALL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAO,EAAE;QAC5B,WAAW,EACT,oOAAoO;KACvO,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;+DAoEP;AAOK;IALL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAO,EAAE;QAC5B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,qDAAqD;KACnE,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;8DA4BP;AAKK;IAHL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAE3E,mBAAA,IAAA,kBAAG,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,+BAAY,CAAC,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;qDAeP;AAKK;IAHL,IAAA,wBAAS,EAAC,mFAAmF,CAAC;IAC9F,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,qBAAO,CAAC,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IAC1D,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAAiB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;mDAqCrE;0BA7dU,eAAe;IAD3B,IAAA,uBAAQ,EAAC,qBAAO,CAAC;GACL,eAAe,CA+e3B","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository, getDomainIdsWithAncestors } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { ApprovalLineItem, OrgMemberTargetType } from '@things-factory/organization'\nimport { Application, CallbackBase, registerSchedule, unregisterSchedule } from '@things-factory/scheduler-client'\n\nimport { getDataFinalizeCrontabSchedule } from '../../controllers/finalize-data-collection.js'\nimport { DataSet } from './data-set.js'\nimport { DataSetPatch, NewDataSet } from './data-set-type.js'\nimport { issueDataCollectionTask } from '../../controllers/issue-data-collection-task.js'\n\nconst crypto = require('crypto')\n\nfunction getApprovalLineValue(patch: NewDataSet | DataSetPatch): ApprovalLineItem[] {\n const { reviewApprovalLine } = patch\n\n if (!('reviewApprovalLine' in patch)) {\n /* reviewApprovalLine 언급되지 않았다면, 업데이트하지 않는다. */\n return\n }\n\n if (!reviewApprovalLine || !(reviewApprovalLine instanceof Array)) {\n /* approvalLine의 값이 없거나 배열이 아니라면, 클리어시킨다. */\n return null\n }\n\n return reviewApprovalLine\n .map(m => {\n return {\n type: m.type,\n approver: m.approver\n } as ApprovalLineItem\n })\n .filter(m => m.type)\n .filter(m => {\n switch (m.type) {\n case OrgMemberTargetType.Employee:\n case OrgMemberTargetType.Department:\n case OrgMemberTargetType.Role:\n return !!m.approver?.id\n default:\n return true\n }\n })\n}\n\nfunction getOutlierApprovalLineValue(patch: NewDataSet | DataSetPatch): ApprovalLineItem[] {\n const { outlierApprovalLine } = patch\n\n if (!('outlierApprovalLine' in patch)) {\n /* approvalLine이 언급되지 않았다면, 업데이트하지 않는다. */\n return\n }\n\n if (!outlierApprovalLine || !(outlierApprovalLine instanceof Array)) {\n /* approvalLine의 값이 없거나 배열이 아니라면, 클리어시킨다. */\n return null\n }\n\n return outlierApprovalLine\n .map(m => {\n return {\n type: m.type,\n approver: m.approver\n } as ApprovalLineItem\n })\n .filter(m => m.type)\n .filter(m => {\n switch (m.type) {\n case OrgMemberTargetType.Employee:\n case OrgMemberTargetType.Department:\n case OrgMemberTargetType.Role:\n return !!m.approver?.id\n default:\n return true\n }\n })\n}\n\n@Resolver(DataSet)\nexport class DataSetMutation {\n @Directive('@privilege(category: \"data-set\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataSet, {\n description:\n 'Creates a new dataset with complete configuration including data items, roles, approval lines, and workflow settings. This mutation initializes the data collection structure and associated metadata.'\n })\n async createDataSet(@Arg('dataSet') dataSet: NewDataSet, @Ctx() context: ResolverContext): Promise<DataSet> {\n const { domain, user, tx } = context.state\n const dataSetRepo = getRepository(DataSet, tx)\n\n const result = await dataSetRepo.save({\n ...dataSet,\n approvalLine: getApprovalLineValue(dataSet),\n outlierApprovalLineValue: getOutlierApprovalLineValue(dataSet),\n version: 1,\n domain,\n creator: user,\n updater: user\n })\n\n await this._createAttachment(context, dataSet.reportTemplate, { ref: result, cuFlag: '+' })\n\n return result\n }\n\n @Directive('@privilege(category: \"data-set\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataSet, {\n description:\n 'Updates an existing dataset configuration. This mutation allows modification of data items, roles, approval lines, and other settings while maintaining version history.'\n })\n async updateDataSet(\n @Arg('id') id: string,\n @Arg('patch') patch: DataSetPatch,\n @Ctx() context: ResolverContext\n ): Promise<DataSet> {\n const { domain, user, tx } = context.state\n const dataSetRepo = getRepository(DataSet, tx)\n\n const dataSet = await dataSetRepo.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'dataKeySet', 'entryRole', 'supervisoryRole', 'creator', 'updater']\n /* history에 항상 반영될 수 있도록 relations가 있어야 함. */\n })\n\n const result = await dataSetRepo.save({\n ...dataSet,\n ...patch,\n approvalLine: getApprovalLineValue(patch),\n outlierApprovalLineValue: getOutlierApprovalLineValue(patch),\n updater: user\n })\n\n await this._createAttachment(context, dataSet.reportTemplate, { ref: result, cuFlag: 'M' })\n\n return result\n }\n\n @Directive('@privilege(category: \"data-set\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [DataSet], {\n description:\n 'Updates multiple datasets in a single operation. This mutation supports batch processing for efficient management of multiple dataset configurations.'\n })\n async updateMultipleDataSet(\n @Arg('patches', type => [DataSetPatch]) patches: DataSetPatch[],\n @Ctx() context: ResolverContext\n ): Promise<DataSet[]> {\n const { domain, user, tx } = context.state\n const dataSetRepo = getRepository(DataSet, tx)\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n\n if (_createRecords.length > 0) {\n const cuFlag = '+'\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await dataSetRepo.save({\n ...newRecord,\n approvalLine: getApprovalLineValue(newRecord),\n outlierApprovalLineValue: getOutlierApprovalLineValue(newRecord),\n domain,\n creator: user,\n updater: user\n })\n\n await this._createAttachment(context, newRecord.reportTemplate, { ref: result, cuFlag })\n\n results.push({\n ...result,\n cuFlag\n })\n }\n }\n\n if (_updateRecords.length > 0) {\n const cuFlag = 'M'\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const dataSet = await dataSetRepo.findOne({\n where: { id: updateRecord.id },\n /* history에 항상 반영될 수 있도록 relations가 있어야 함. */\n relations: ['domain', 'dataKeySet', 'entryRole', 'supervisoryRole', 'creator', 'updater']\n })\n\n const result = await dataSetRepo.save({\n ...dataSet,\n ...updateRecord,\n approvalLine: getApprovalLineValue(updateRecord),\n outlierApprovalLineValue: getOutlierApprovalLineValue(updateRecord),\n updater: user\n })\n\n await this._createAttachment(context, updateRecord.reportTemplate, { ref: result, cuFlag })\n\n results.push({\n ...result,\n cuFlag\n })\n }\n }\n\n return results\n }\n\n @Directive('@privilege(category: \"data-set\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, {\n description:\n 'Deletes a dataset and all its associated data. This operation removes the dataset configuration, data samples, and related metadata from the system.'\n })\n async deleteDataSet(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(DataSet, tx).softDelete({ domain: { id: domain.id }, id })\n await deleteAttachmentsByRef(null, { refBys: [`report-${id}`] }, context)\n\n return true\n }\n\n @Directive('@privilege(category: \"data-set\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, {\n description:\n 'Deletes multiple datasets in a single operation. This mutation supports batch deletion for efficient cleanup of multiple datasets and their associated data.'\n })\n async deleteDataSets(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(DataSet, tx).softDelete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n await deleteAttachmentsByRef(null, { refBys: ids.map(id => `report-${id}`) }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, {\n description:\n 'Issues a data collection task for the specified dataset. This mutation creates a worklist activity for manual data entry, allowing authorized users to input data samples according to the dataset configuration.'\n })\n async issueDataCollection(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx, user } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n const dataSet = await getRepository(DataSet, tx).findOne({\n where: {\n domain: {\n id: In(domainIds)\n },\n id: dataSetId\n }\n })\n\n const { supervisoryRoleId, entryRoleId } = dataSet\n const allowedRoles = [supervisoryRoleId, entryRoleId].filter(Boolean)\n\n const me = await getRepository(User, tx).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n if (!me.roles.find(role => allowedRoles.includes(role.id))) {\n throw new Error(`You don't have permission to issue data collection task for this dataset.`)\n }\n\n const activityInstance = await issueDataCollectionTask(domain.id, dataSet.id, context)\n\n return !!activityInstance\n }\n\n @Directive('@transaction')\n @Mutation(returns => DataSet, {\n description:\n 'Starts automated data collection scheduling for the specified dataset. This mutation registers a cron-based schedule that automatically triggers data collection tasks according to the dataset configuration.'\n })\n async startDataCollectionSchedule(\n @Arg('dataSetId') dataSetId: string,\n @Ctx() context: ResolverContext\n ): Promise<DataSet> {\n const { domain, tx } = context.state\n\n var repository = getRepository(DataSet, tx)\n var dataSet = await repository.findOne({\n where: { domain: { id: domain.id }, id: dataSetId }\n })\n\n if (!dataSet) {\n throw new Error(\n context.t('error.data-set not found', {\n dataSet: dataSetId\n })\n )\n }\n\n try {\n var handle = await registerSchedule({\n name: dataSet.name,\n client: {\n application: Application,\n group: `${domain.id}`,\n type: 'data-set',\n key: dataSet.id,\n operation: 'schedule'\n },\n type: 'cron',\n schedule: dataSet.schedule,\n timezone: dataSet.timezone,\n task: {\n type: 'rest',\n connection: {\n host: `${CallbackBase}/callback-schedule-for-dataset`,\n headers: {\n 'Content-Type': 'application/json',\n accept: '*/*'\n }\n },\n data: {\n domainId: domain.id,\n dataSetId\n },\n history_check: true,\n failed_policy: 'retry_dlq',\n max_retry_count: 3,\n retry_period: 60\n }\n })\n\n return await repository.save({\n ...dataSet,\n scheduleId: handle\n })\n } catch (err) {\n console.error('startDataCollectionSchedule', err)\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DataSet, {\n nullable: true,\n description:\n 'Stops automated data collection scheduling for the specified dataset. This mutation unregisters the cron schedule and disables automatic data collection tasks.'\n })\n async stopDataCollectionSchedule(\n @Arg('dataSetId') dataSetId: string,\n @Ctx() context: ResolverContext\n ): Promise<DataSet | undefined> {\n const { domain, tx } = context.state\n\n var repository = getRepository(DataSet, tx)\n var dataSet = await repository.findOne({\n where: { domain: { id: domain.id }, id: dataSetId }\n })\n\n if (!dataSet) {\n throw new Error(\n context.t('error.data-set not found', {\n dataSet: dataSetId\n })\n )\n }\n\n try {\n await unregisterSchedule(dataSet.scheduleId)\n\n return await repository.save({\n ...dataSet,\n scheduleId: null\n })\n } catch (err) {\n console.error('stopDataCollectionSchedule', err)\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DataSet, {\n description:\n 'Starts automated data summary scheduling for the specified dataset. This mutation registers a cron-based schedule that automatically generates statistical summaries of collected data according to the configured summary period.'\n })\n async startDataSummarySchedule(\n @Arg('dataSetId') dataSetId: string,\n @Ctx() context: ResolverContext\n ): Promise<DataSet> {\n const { domain, tx } = context.state\n\n var repository = getRepository(DataSet, tx)\n var dataSet = await repository.findOne({\n where: { domain: { id: domain.id }, id: dataSetId }\n })\n\n if (!dataSet) {\n throw new Error(\n context.t('error.data-set not found', {\n dataSet: dataSetId\n })\n )\n }\n\n if (!dataSet.summaryPeriod) {\n throw new Error(\n context.t('error.data-set summary-period not set', {\n dataSet: dataSetId\n })\n )\n }\n\n const schedule = await getDataFinalizeCrontabSchedule(dataSet, context)\n\n try {\n var handle = await registerSchedule({\n name: dataSet.name,\n client: {\n application: Application,\n group: `${domain.id}`,\n type: 'data-set',\n key: dataSet.id,\n operation: 'summary'\n },\n type: 'cron',\n schedule,\n timezone: dataSet.timezone,\n task: {\n type: 'rest',\n connection: {\n host: `${CallbackBase}/callback-schedule-for-dataset-summary`,\n headers: {\n 'Content-Type': 'application/json',\n accept: '*/*'\n }\n },\n data: {\n domainId: domain.id,\n dataSetId\n },\n history_check: true,\n failed_policy: 'retry_dlq',\n max_retry_count: 3,\n retry_period: 60\n }\n })\n\n return await repository.save({\n ...dataSet,\n summarySchedule: schedule,\n summaryScheduleId: handle\n })\n } catch (err) {\n console.error('startDataSummarySchedule', err)\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DataSet, {\n nullable: true,\n description: 'To stop data summary schedule for the given dataset'\n })\n async stopDataSummarySchedule(\n @Arg('dataSetId') dataSetId: string,\n @Ctx() context: ResolverContext\n ): Promise<DataSet | undefined> {\n const { domain, tx } = context.state\n\n var repository = getRepository(DataSet, tx)\n var dataSet = await repository.findOne({\n where: { domain: { id: domain.id }, id: dataSetId }\n })\n\n if (!dataSet) {\n throw new Error(\n context.t('error.data-set not found', {\n dataSet: dataSetId\n })\n )\n }\n\n try {\n await unregisterSchedule(dataSet.summaryScheduleId)\n\n return await repository.save({\n ...dataSet,\n summarySchedule: null,\n summaryScheduleId: null\n })\n } catch (err) {\n console.error('stopDataSummarySchedule', err)\n }\n }\n\n @Directive('@privilege(category: \"data-set\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To import multiple data-sets' })\n async importDataSets(\n @Arg('dataSets', type => [DataSetPatch]) dataSets: DataSet[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n const dataSetRepo = getRepository(DataSet, tx)\n\n await Promise.all(\n dataSets.map(async (dataSet: DataSet) => {\n const createdDataSet: DataSet = await dataSetRepo.save({\n domain,\n ...dataSet\n })\n })\n )\n\n return true\n }\n\n @Directive('@privilege(category: \"data-set\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [DataSet], { description: 'To copy multiple data-sets' })\n async copyDataSets(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<DataSet[]> {\n const { domain, user, tx } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n const dataSetRepo = getRepository(DataSet, tx)\n\n const originals = await dataSetRepo.find({\n where: {\n id: In(ids),\n domain: { id: In(domainIds) }\n },\n relations: ['domain', 'supervisoryRole', 'entryRole', 'dataKeySet']\n })\n\n if (originals.length == 0) {\n return []\n }\n\n var newCopys = originals.map(dataSet => {\n let dataSetId = crypto.randomUUID()\n\n return {\n ...dataSet,\n id: dataSetId,\n name: dataSet.name + ' (' + dataSetId + ')',\n active: false,\n version: 1,\n domain,\n creator: user,\n updater: user,\n updatedAt: undefined,\n createdAt: undefined\n }\n })\n\n var copiedDataSets = await dataSetRepo.save(newCopys)\n\n return copiedDataSets\n }\n\n async _createAttachment(context, attachment, { ref, cuFlag }) {\n if (attachment) {\n cuFlag == 'M' && (await deleteAttachmentsByRef(null, { refBys: [ref.id] }, context))\n await createAttachment(\n null,\n {\n attachment: {\n file: attachment,\n refType: `${DataSet.name}-report-template`,\n refBy: ref.id\n }\n },\n context\n )\n }\n }\n}\n"]}
|