@things-factory/dataset 10.0.0-zeta.7 → 10.0.0
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/dist-client/activities/activity-data-collect-edit.d.ts +26 -0
- package/dist-client/activities/activity-data-collect-edit.js +156 -0
- package/dist-client/activities/activity-data-collect-edit.js.map +1 -0
- package/dist-client/activities/activity-data-collect-view.d.ts +16 -0
- package/dist-client/activities/activity-data-collect-view.js +94 -0
- package/dist-client/activities/activity-data-collect-view.js.map +1 -0
- package/dist-client/activities/activity-data-review-edit.d.ts +20 -0
- package/dist-client/activities/activity-data-review-edit.js +300 -0
- package/dist-client/activities/activity-data-review-edit.js.map +1 -0
- package/dist-client/activities/activity-data-review-view.d.ts +16 -0
- package/dist-client/activities/activity-data-review-view.js +247 -0
- package/dist-client/activities/activity-data-review-view.js.map +1 -0
- package/dist-client/activities/activity-ooc-resolve-edit.d.ts +2 -0
- package/dist-client/activities/activity-ooc-resolve-edit.js +203 -0
- package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -0
- package/dist-client/activities/activity-ooc-resolve-view.d.ts +14 -0
- package/dist-client/activities/activity-ooc-resolve-view.js +154 -0
- package/dist-client/activities/activity-ooc-resolve-view.js.map +1 -0
- package/dist-client/activities/activity-ooc-review-edit.d.ts +3 -0
- package/dist-client/activities/activity-ooc-review-edit.js +197 -0
- package/dist-client/activities/activity-ooc-review-edit.js.map +1 -0
- package/dist-client/activities/activity-ooc-review-view.d.ts +1 -0
- package/dist-client/activities/activity-ooc-review-view.js +139 -0
- package/dist-client/activities/activity-ooc-review-view.js.map +1 -0
- package/dist-client/bootstrap.d.ts +10 -0
- package/dist-client/bootstrap.js +26 -0
- package/dist-client/bootstrap.js.map +1 -0
- package/dist-client/components/checklist-entry-form.d.ts +21 -0
- package/dist-client/components/checklist-entry-form.js +107 -0
- package/dist-client/components/checklist-entry-form.js.map +1 -0
- package/dist-client/components/data-entry-form.d.ts +21 -0
- package/dist-client/components/data-entry-form.js +107 -0
- package/dist-client/components/data-entry-form.js.map +1 -0
- package/dist-client/index.d.ts +1 -0
- package/dist-client/index.js +2 -0
- package/dist-client/index.js.map +1 -0
- package/dist-client/pages/data-archive/data-archive-list-page.d.ts +61 -0
- package/dist-client/pages/data-archive/data-archive-list-page.js +238 -0
- package/dist-client/pages/data-archive/data-archive-list-page.js.map +1 -0
- package/dist-client/pages/data-archive/data-archive-request-popup.d.ts +1 -0
- package/dist-client/pages/data-archive/data-archive-request-popup.js +160 -0
- package/dist-client/pages/data-archive/data-archive-request-popup.js.map +1 -0
- package/dist-client/pages/data-entry/data-entry-list-page.d.ts +33 -0
- package/dist-client/pages/data-entry/data-entry-list-page.js +390 -0
- package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -0
- package/dist-client/pages/data-key-set/data-key-item-list.d.ts +19 -0
- package/dist-client/pages/data-key-set/data-key-item-list.js +182 -0
- package/dist-client/pages/data-key-set/data-key-item-list.js.map +1 -0
- package/dist-client/pages/data-key-set/data-key-set-importer.d.ts +10 -0
- package/dist-client/pages/data-key-set/data-key-set-importer.js +93 -0
- package/dist-client/pages/data-key-set/data-key-set-importer.js.map +1 -0
- package/dist-client/pages/data-key-set/data-key-set-list-page.d.ts +58 -0
- package/dist-client/pages/data-key-set/data-key-set-list-page.js +342 -0
- package/dist-client/pages/data-key-set/data-key-set-list-page.js.map +1 -0
- package/dist-client/pages/data-ooc/data-ooc-list-page.d.ts +66 -0
- package/dist-client/pages/data-ooc/data-ooc-list-page.js +467 -0
- package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -0
- package/dist-client/pages/data-ooc/data-ooc-page.d.ts +18 -0
- package/dist-client/pages/data-ooc/data-ooc-page.js +166 -0
- package/dist-client/pages/data-ooc/data-ooc-page.js.map +1 -0
- package/dist-client/pages/data-ooc/data-ooc-view.d.ts +19 -0
- package/dist-client/pages/data-ooc/data-ooc-view.js +234 -0
- package/dist-client/pages/data-ooc/data-ooc-view.js.map +1 -0
- package/dist-client/pages/data-ooc/data-oocs-page.d.ts +18 -0
- package/dist-client/pages/data-ooc/data-oocs-page.js +198 -0
- package/dist-client/pages/data-ooc/data-oocs-page.js.map +1 -0
- package/dist-client/pages/data-report/data-report-embed-page.d.ts +36 -0
- package/dist-client/pages/data-report/data-report-embed-page.js +104 -0
- package/dist-client/pages/data-report/data-report-embed-page.js.map +1 -0
- package/dist-client/pages/data-report/data-report-list-page.d.ts +32 -0
- package/dist-client/pages/data-report/data-report-list-page.js +378 -0
- package/dist-client/pages/data-report/data-report-list-page.js.map +1 -0
- package/dist-client/pages/data-report/data-report-samples-page.d.ts +26 -0
- package/dist-client/pages/data-report/data-report-samples-page.js +151 -0
- package/dist-client/pages/data-report/data-report-samples-page.js.map +1 -0
- package/dist-client/pages/data-report/jasper-report-oocs-page.d.ts +2 -0
- package/dist-client/pages/data-report/jasper-report-oocs-page.js +104 -0
- package/dist-client/pages/data-report/jasper-report-oocs-page.js.map +1 -0
- package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.d.ts +2 -0
- package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js +104 -0
- package/dist-client/pages/data-report/jasper-report-samples-crosstab-page.js.map +1 -0
- package/dist-client/pages/data-report/jasper-report-samples-page.d.ts +2 -0
- package/dist-client/pages/data-report/jasper-report-samples-page.js +104 -0
- package/dist-client/pages/data-report/jasper-report-samples-page.js.map +1 -0
- package/dist-client/pages/data-sample/data-sample-list-page.d.ts +64 -0
- package/dist-client/pages/data-sample/data-sample-list-page.js +377 -0
- package/dist-client/pages/data-sample/data-sample-list-page.js.map +1 -0
- package/dist-client/pages/data-sample/data-sample-page.d.ts +17 -0
- package/dist-client/pages/data-sample/data-sample-page.js +57 -0
- package/dist-client/pages/data-sample/data-sample-page.js.map +1 -0
- package/dist-client/pages/data-sample/data-sample-search-page.d.ts +53 -0
- package/dist-client/pages/data-sample/data-sample-search-page.js +369 -0
- package/dist-client/pages/data-sample/data-sample-search-page.js.map +1 -0
- package/dist-client/pages/data-sample/data-sample-view.d.ts +23 -0
- package/dist-client/pages/data-sample/data-sample-view.js +309 -0
- package/dist-client/pages/data-sample/data-sample-view.js.map +1 -0
- package/dist-client/pages/data-sample/data-samples-page.d.ts +21 -0
- package/dist-client/pages/data-sample/data-samples-page.js +247 -0
- package/dist-client/pages/data-sample/data-samples-page.js.map +1 -0
- package/dist-client/pages/data-sensor/data-sensor-list-page.d.ts +52 -0
- package/dist-client/pages/data-sensor/data-sensor-list-page.js +400 -0
- package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -0
- package/dist-client/pages/data-set/data-item-list.d.ts +1 -0
- package/dist-client/pages/data-set/data-item-list.js +320 -0
- package/dist-client/pages/data-set/data-item-list.js.map +1 -0
- package/dist-client/pages/data-set/data-set-importer.d.ts +11 -0
- package/dist-client/pages/data-set/data-set-importer.js +96 -0
- package/dist-client/pages/data-set/data-set-importer.js.map +1 -0
- package/dist-client/pages/data-set/data-set-list-page.d.ts +79 -0
- package/dist-client/pages/data-set/data-set-list-page.js +1075 -0
- package/dist-client/pages/data-set/data-set-list-page.js.map +1 -0
- package/dist-client/pages/data-summary/data-summary-list-page.d.ts +53 -0
- package/dist-client/pages/data-summary/data-summary-list-page.js +314 -0
- package/dist-client/pages/data-summary/data-summary-list-page.js.map +1 -0
- package/dist-client/pages/data-summary/data-summary-period-page.d.ts +75 -0
- package/dist-client/pages/data-summary/data-summary-period-page.js +419 -0
- package/dist-client/pages/data-summary/data-summary-period-page.js.map +1 -0
- package/dist-client/pages/data-summary/data-summary-search-page.d.ts +72 -0
- package/dist-client/pages/data-summary/data-summary-search-page.js +364 -0
- package/dist-client/pages/data-summary/data-summary-search-page.js.map +1 -0
- package/dist-client/pages/data-summary/data-summary-view.d.ts +1 -0
- package/dist-client/pages/data-summary/data-summary-view.js +114 -0
- package/dist-client/pages/data-summary/data-summary-view.js.map +1 -0
- package/dist-client/route.d.ts +1 -0
- package/dist-client/route.js +71 -0
- package/dist-client/route.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -0
- package/dist-server/activities/activity-data-collect.d.ts +42 -0
- package/dist-server/activities/activity-data-collect.js +89 -0
- package/dist-server/activities/activity-data-collect.js.map +1 -0
- package/dist-server/activities/activity-data-review.d.ts +42 -0
- package/dist-server/activities/activity-data-review.js +101 -0
- package/dist-server/activities/activity-data-review.js.map +1 -0
- package/dist-server/activities/activity-ooc-resolve.d.ts +42 -0
- package/dist-server/activities/activity-ooc-resolve.js +110 -0
- package/dist-server/activities/activity-ooc-resolve.js.map +1 -0
- package/dist-server/activities/activity-ooc-review.d.ts +42 -0
- package/dist-server/activities/activity-ooc-review.js +91 -0
- package/dist-server/activities/activity-ooc-review.js.map +1 -0
- package/dist-server/activities/index.d.ts +1 -0
- package/dist-server/activities/index.js +11 -0
- package/dist-server/activities/index.js.map +1 -0
- package/dist-server/controllers/create-data-ooc.d.ts +4 -0
- package/dist-server/controllers/create-data-ooc.js +73 -0
- package/dist-server/controllers/create-data-ooc.js.map +1 -0
- package/dist-server/controllers/create-data-sample.d.ts +3 -0
- package/dist-server/controllers/create-data-sample.js +342 -0
- package/dist-server/controllers/create-data-sample.js.map +1 -0
- package/dist-server/controllers/data-use-case.d.ts +36 -0
- package/dist-server/controllers/data-use-case.js +62 -0
- package/dist-server/controllers/data-use-case.js.map +1 -0
- package/dist-server/controllers/finalize-data-collection.d.ts +4 -0
- package/dist-server/controllers/finalize-data-collection.js +355 -0
- package/dist-server/controllers/finalize-data-collection.js.map +1 -0
- package/dist-server/controllers/index.d.ts +6 -0
- package/dist-server/controllers/index.js +10 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/controllers/issue-data-collection-task.d.ts +2 -0
- package/dist-server/controllers/issue-data-collection-task.js +65 -0
- package/dist-server/controllers/issue-data-collection-task.js.map +1 -0
- package/dist-server/controllers/issue-ooc-resolve.d.ts +3 -0
- package/dist-server/controllers/issue-ooc-resolve.js +55 -0
- package/dist-server/controllers/issue-ooc-resolve.js.map +1 -0
- package/dist-server/controllers/issue-ooc-review.d.ts +3 -0
- package/dist-server/controllers/issue-ooc-review.js +52 -0
- package/dist-server/controllers/issue-ooc-review.js.map +1 -0
- package/dist-server/controllers/jasper-report.d.ts +1 -0
- package/dist-server/controllers/jasper-report.js +166 -0
- package/dist-server/controllers/jasper-report.js.map +1 -0
- package/dist-server/controllers/query-data-summary-by-period.d.ts +3 -0
- package/dist-server/controllers/query-data-summary-by-period.js +162 -0
- package/dist-server/controllers/query-data-summary-by-period.js.map +1 -0
- package/dist-server/controllers/shiny-report.d.ts +1 -0
- package/dist-server/controllers/shiny-report.js +40 -0
- package/dist-server/controllers/shiny-report.js.map +1 -0
- package/dist-server/engine/index.d.ts +1 -0
- package/dist-server/engine/index.js +4 -0
- package/dist-server/engine/index.js.map +1 -0
- package/dist-server/engine/task/create-data-sample.d.ts +1 -0
- package/dist-server/engine/task/create-data-sample.js +81 -0
- package/dist-server/engine/task/create-data-sample.js.map +1 -0
- package/dist-server/engine/task/index.d.ts +2 -0
- package/dist-server/engine/task/index.js +5 -0
- package/dist-server/engine/task/index.js.map +1 -0
- package/dist-server/engine/task/issue-collect-data.d.ts +1 -0
- package/dist-server/engine/task/issue-collect-data.js +40 -0
- package/dist-server/engine/task/issue-collect-data.js.map +1 -0
- package/dist-server/index.d.ts +6 -0
- package/dist-server/index.js +10 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +153 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/data-archive/data-archive-mutation.d.ts +16 -0
- package/dist-server/service/data-archive/data-archive-mutation.js +278 -0
- package/dist-server/service/data-archive/data-archive-mutation.js.map +1 -0
- package/dist-server/service/data-archive/data-archive-query.d.ts +11 -0
- package/dist-server/service/data-archive/data-archive-query.js +98 -0
- package/dist-server/service/data-archive/data-archive-query.js.map +1 -0
- package/dist-server/service/data-archive/data-archive-type.d.ts +23 -0
- package/dist-server/service/data-archive/data-archive-type.js +77 -0
- package/dist-server/service/data-archive/data-archive-type.js.map +1 -0
- package/dist-server/service/data-archive/data-archive.d.ts +19 -0
- package/dist-server/service/data-archive/data-archive.js +84 -0
- package/dist-server/service/data-archive/data-archive.js.map +1 -0
- package/dist-server/service/data-archive/index.d.ts +5 -0
- package/dist-server/service/data-archive/index.js +9 -0
- package/dist-server/service/data-archive/index.js.map +1 -0
- package/dist-server/service/data-key-set/data-key-item-type.d.ts +12 -0
- package/dist-server/service/data-key-set/data-key-item-type.js +52 -0
- package/dist-server/service/data-key-set/data-key-item-type.js.map +1 -0
- package/dist-server/service/data-key-set/data-key-set-mutation.d.ts +10 -0
- package/dist-server/service/data-key-set/data-key-set-mutation.js +198 -0
- package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -0
- package/dist-server/service/data-key-set/data-key-set-query.d.ts +12 -0
- package/dist-server/service/data-key-set/data-key-set-query.js +118 -0
- package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -0
- package/dist-server/service/data-key-set/data-key-set-type.d.ts +28 -0
- package/dist-server/service/data-key-set/data-key-set-type.js +106 -0
- package/dist-server/service/data-key-set/data-key-set-type.js.map +1 -0
- package/dist-server/service/data-key-set/data-key-set.d.ts +22 -0
- package/dist-server/service/data-key-set/data-key-set.js +104 -0
- package/dist-server/service/data-key-set/data-key-set.js.map +1 -0
- package/dist-server/service/data-key-set/index.d.ts +5 -0
- package/dist-server/service/data-key-set/index.js +9 -0
- package/dist-server/service/data-key-set/index.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc-mutation.d.ts +6 -0
- package/dist-server/service/data-ooc/data-ooc-mutation.js +96 -0
- package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc-query.d.ts +22 -0
- package/dist-server/service/data-ooc/data-ooc-query.js +190 -0
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc-subscription.d.ts +12 -0
- package/dist-server/service/data-ooc/data-ooc-subscription.js +64 -0
- package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc-type.d.ts +27 -0
- package/dist-server/service/data-ooc/data-ooc-type.js +111 -0
- package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc.d.ts +63 -0
- package/dist-server/service/data-ooc/data-ooc.js +310 -0
- package/dist-server/service/data-ooc/data-ooc.js.map +1 -0
- package/dist-server/service/data-ooc/index.d.ts +6 -0
- package/dist-server/service/data-ooc/index.js +10 -0
- package/dist-server/service/data-ooc/index.js.map +1 -0
- package/dist-server/service/data-sample/data-sample-mutation.d.ts +5 -0
- package/dist-server/service/data-sample/data-sample-mutation.js +30 -0
- package/dist-server/service/data-sample/data-sample-mutation.js.map +1 -0
- package/dist-server/service/data-sample/data-sample-query.d.ts +22 -0
- package/dist-server/service/data-sample/data-sample-query.js +275 -0
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -0
- package/dist-server/service/data-sample/data-sample-type.d.ts +18 -0
- package/dist-server/service/data-sample/data-sample-type.js +68 -0
- package/dist-server/service/data-sample/data-sample-type.js.map +1 -0
- package/dist-server/service/data-sample/data-sample.d.ts +45 -0
- package/dist-server/service/data-sample/data-sample.js +226 -0
- package/dist-server/service/data-sample/data-sample.js.map +1 -0
- package/dist-server/service/data-sample/index.d.ts +5 -0
- package/dist-server/service/data-sample/index.js +9 -0
- package/dist-server/service/data-sample/index.js.map +1 -0
- package/dist-server/service/data-sensor/data-sensor-mutation.d.ts +9 -0
- package/dist-server/service/data-sensor/data-sensor-mutation.js +137 -0
- package/dist-server/service/data-sensor/data-sensor-mutation.js.map +1 -0
- package/dist-server/service/data-sensor/data-sensor-query.d.ts +16 -0
- package/dist-server/service/data-sensor/data-sensor-query.js +138 -0
- package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -0
- package/dist-server/service/data-sensor/data-sensor-type.d.ts +42 -0
- package/dist-server/service/data-sensor/data-sensor-type.js +162 -0
- package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -0
- package/dist-server/service/data-sensor/data-sensor.d.ts +33 -0
- package/dist-server/service/data-sensor/data-sensor.js +160 -0
- package/dist-server/service/data-sensor/data-sensor.js.map +1 -0
- package/dist-server/service/data-sensor/index.d.ts +5 -0
- package/dist-server/service/data-sensor/index.js +9 -0
- package/dist-server/service/data-sensor/index.js.map +1 -0
- package/dist-server/service/data-set/data-item-type.d.ts +321 -0
- package/dist-server/service/data-set/data-item-type.js +458 -0
- package/dist-server/service/data-set/data-item-type.js.map +1 -0
- package/dist-server/service/data-set/data-set-mutation.d.ts +20 -0
- package/dist-server/service/data-set/data-set-mutation.js +552 -0
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -0
- package/dist-server/service/data-set/data-set-query.d.ts +39 -0
- package/dist-server/service/data-set/data-set-query.js +566 -0
- package/dist-server/service/data-set/data-set-query.js.map +1 -0
- package/dist-server/service/data-set/data-set-type.d.ts +75 -0
- package/dist-server/service/data-set/data-set-type.js +276 -0
- package/dist-server/service/data-set/data-set-type.js.map +1 -0
- package/dist-server/service/data-set/data-set.d.ts +96 -0
- package/dist-server/service/data-set/data-set.js +380 -0
- package/dist-server/service/data-set/data-set.js.map +1 -0
- package/dist-server/service/data-set/index.d.ts +5 -0
- package/dist-server/service/data-set/index.js +9 -0
- package/dist-server/service/data-set/index.js.map +1 -0
- package/dist-server/service/data-set-history/data-set-history-query.d.ts +21 -0
- package/dist-server/service/data-set-history/data-set-history-query.js +184 -0
- package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -0
- package/dist-server/service/data-set-history/data-set-history-type.d.ts +5 -0
- package/dist-server/service/data-set-history/data-set-history-type.js +21 -0
- package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -0
- package/dist-server/service/data-set-history/data-set-history.d.ts +53 -0
- package/dist-server/service/data-set-history/data-set-history.js +265 -0
- package/dist-server/service/data-set-history/data-set-history.js.map +1 -0
- package/dist-server/service/data-set-history/event-subscriber.d.ts +7 -0
- package/dist-server/service/data-set-history/event-subscriber.js +21 -0
- package/dist-server/service/data-set-history/event-subscriber.js.map +1 -0
- package/dist-server/service/data-set-history/index.d.ts +6 -0
- package/dist-server/service/data-set-history/index.js +10 -0
- package/dist-server/service/data-set-history/index.js.map +1 -0
- package/dist-server/service/data-spec/data-spec-manager.d.ts +10 -0
- package/dist-server/service/data-spec/data-spec-manager.js +20 -0
- package/dist-server/service/data-spec/data-spec-manager.js.map +1 -0
- package/dist-server/service/data-spec/data-spec-query.d.ts +5 -0
- package/dist-server/service/data-spec/data-spec-query.js +37 -0
- package/dist-server/service/data-spec/data-spec-query.js.map +1 -0
- package/dist-server/service/data-spec/data-spec.d.ts +19 -0
- package/dist-server/service/data-spec/data-spec.js +79 -0
- package/dist-server/service/data-spec/data-spec.js.map +1 -0
- package/dist-server/service/data-spec/index.d.ts +4 -0
- package/dist-server/service/data-spec/index.js +8 -0
- package/dist-server/service/data-spec/index.js.map +1 -0
- package/dist-server/service/data-summary/data-summary-mutation.d.ts +6 -0
- package/dist-server/service/data-summary/data-summary-mutation.js +76 -0
- package/dist-server/service/data-summary/data-summary-mutation.js.map +1 -0
- package/dist-server/service/data-summary/data-summary-query.d.ts +19 -0
- package/dist-server/service/data-summary/data-summary-query.js +238 -0
- package/dist-server/service/data-summary/data-summary-query.js.map +1 -0
- package/dist-server/service/data-summary/data-summary-type.d.ts +33 -0
- package/dist-server/service/data-summary/data-summary-type.js +139 -0
- package/dist-server/service/data-summary/data-summary-type.js.map +1 -0
- package/dist-server/service/data-summary/data-summary.d.ts +38 -0
- package/dist-server/service/data-summary/data-summary.js +202 -0
- package/dist-server/service/data-summary/data-summary.js.map +1 -0
- package/dist-server/service/data-summary/index.d.ts +6 -0
- package/dist-server/service/data-summary/index.js +10 -0
- package/dist-server/service/data-summary/index.js.map +1 -0
- package/dist-server/service/index.d.ts +14 -0
- package/dist-server/service/index.js +54 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/dist-server/utils/config-resolver.d.ts +1 -0
- package/dist-server/utils/config-resolver.js +32 -0
- package/dist-server/utils/config-resolver.js.map +1 -0
- package/dist-server/utils/domain-inheritance.d.ts +2 -0
- package/dist-server/utils/domain-inheritance.js +31 -0
- package/dist-server/utils/domain-inheritance.js.map +1 -0
- package/dist-server/utils/index.d.ts +2 -0
- package/dist-server/utils/index.js +6 -0
- package/dist-server/utils/index.js.map +1 -0
- package/dist-server/utils/media-validation.d.ts +51 -0
- package/dist-server/utils/media-validation.js +148 -0
- package/dist-server/utils/media-validation.js.map +1 -0
- package/package.json +26 -26
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataSpecList = exports.DataSpec = exports.DataSpecItem = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
|
6
|
+
const shell_1 = require("@things-factory/shell");
|
|
7
|
+
let DataSpecItem = class DataSpecItem {
|
|
8
|
+
};
|
|
9
|
+
exports.DataSpecItem = DataSpecItem;
|
|
10
|
+
tslib_1.__decorate([
|
|
11
|
+
(0, type_graphql_1.Field)({ description: 'The data type of the specification item.' }),
|
|
12
|
+
tslib_1.__metadata("design:type", String)
|
|
13
|
+
], DataSpecItem.prototype, "type", void 0);
|
|
14
|
+
tslib_1.__decorate([
|
|
15
|
+
(0, type_graphql_1.Field)({ description: 'The display label for the specification item.' }),
|
|
16
|
+
tslib_1.__metadata("design:type", String)
|
|
17
|
+
], DataSpecItem.prototype, "label", void 0);
|
|
18
|
+
tslib_1.__decorate([
|
|
19
|
+
(0, type_graphql_1.Field)({ description: 'The unique name identifier for the specification item.' }),
|
|
20
|
+
tslib_1.__metadata("design:type", String)
|
|
21
|
+
], DataSpecItem.prototype, "name", void 0);
|
|
22
|
+
tslib_1.__decorate([
|
|
23
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Placeholder text for the input field.' }),
|
|
24
|
+
tslib_1.__metadata("design:type", String)
|
|
25
|
+
], DataSpecItem.prototype, "placeholder", void 0);
|
|
26
|
+
tslib_1.__decorate([
|
|
27
|
+
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, {
|
|
28
|
+
nullable: true,
|
|
29
|
+
description: 'Additional properties and configuration for the specification item.'
|
|
30
|
+
}),
|
|
31
|
+
tslib_1.__metadata("design:type", Object)
|
|
32
|
+
], DataSpecItem.prototype, "property", void 0);
|
|
33
|
+
exports.DataSpecItem = DataSpecItem = tslib_1.__decorate([
|
|
34
|
+
(0, type_graphql_1.ObjectType)({
|
|
35
|
+
description: 'Represents a specification item that defines the structure and validation rules for a data field.'
|
|
36
|
+
})
|
|
37
|
+
], DataSpecItem);
|
|
38
|
+
let DataSpec = class DataSpec {
|
|
39
|
+
};
|
|
40
|
+
exports.DataSpec = DataSpec;
|
|
41
|
+
tslib_1.__decorate([
|
|
42
|
+
(0, type_graphql_1.Field)({ description: 'The unique name identifier for the data specification.' }),
|
|
43
|
+
tslib_1.__metadata("design:type", String)
|
|
44
|
+
], DataSpec.prototype, "name", void 0);
|
|
45
|
+
tslib_1.__decorate([
|
|
46
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'A description of the data specification and its purpose.' }),
|
|
47
|
+
tslib_1.__metadata("design:type", String)
|
|
48
|
+
], DataSpec.prototype, "description", void 0);
|
|
49
|
+
tslib_1.__decorate([
|
|
50
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Help text or documentation for the data specification.' }),
|
|
51
|
+
tslib_1.__metadata("design:type", String)
|
|
52
|
+
], DataSpec.prototype, "help", void 0);
|
|
53
|
+
tslib_1.__decorate([
|
|
54
|
+
(0, type_graphql_1.Field)(type => [DataSpecItem], {
|
|
55
|
+
nullable: true,
|
|
56
|
+
description: 'The specification items that define the data structure and validation rules.'
|
|
57
|
+
}),
|
|
58
|
+
tslib_1.__metadata("design:type", Array)
|
|
59
|
+
], DataSpec.prototype, "specItems", void 0);
|
|
60
|
+
exports.DataSpec = DataSpec = tslib_1.__decorate([
|
|
61
|
+
(0, type_graphql_1.ObjectType)({
|
|
62
|
+
description: 'Represents a data specification that defines the structure, validation rules, and metadata for a dataset.'
|
|
63
|
+
})
|
|
64
|
+
], DataSpec);
|
|
65
|
+
let DataSpecList = class DataSpecList {
|
|
66
|
+
};
|
|
67
|
+
exports.DataSpecList = DataSpecList;
|
|
68
|
+
tslib_1.__decorate([
|
|
69
|
+
(0, type_graphql_1.Field)(type => [DataSpec], { description: 'List of data specifications.' }),
|
|
70
|
+
tslib_1.__metadata("design:type", Array)
|
|
71
|
+
], DataSpecList.prototype, "items", void 0);
|
|
72
|
+
tslib_1.__decorate([
|
|
73
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Total number of data specifications in the list.' }),
|
|
74
|
+
tslib_1.__metadata("design:type", Number)
|
|
75
|
+
], DataSpecList.prototype, "total", void 0);
|
|
76
|
+
exports.DataSpecList = DataSpecList = tslib_1.__decorate([
|
|
77
|
+
(0, type_graphql_1.ObjectType)({ description: 'Represents a paginated list of data specifications.' })
|
|
78
|
+
], DataSpecList);
|
|
79
|
+
//# sourceMappingURL=data-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-spec.js","sourceRoot":"","sources":["../../../server/service/data-spec/data-spec.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AAErD,iDAAoD;AAK7C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAkBxB,CAAA;AAlBY,oCAAY;AAEvB;IADC,IAAA,oBAAK,EAAC,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;;0CACvD;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;;2CAC3D;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;;0CACrE;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;;iDAC5D;AAMpB;IAJC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,qEAAqE;KACnF,CAAC;;8CAC+B;uBAjBtB,YAAY;IAHxB,IAAA,yBAAU,EAAC;QACV,WAAW,EAAE,mGAAmG;KACjH,CAAC;GACW,YAAY,CAkBxB;AAMM,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAepB,CAAA;AAfY,4BAAQ;AAEnB;IADC,IAAA,oBAAK,EAAC,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;;sCACrE;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0DAA0D,EAAE,CAAC;;6CAChF;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;;sCACrF;AAMZ;IAJC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE;QAC7B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,8EAA8E;KAC5F,CAAC;;2CACuB;mBAdd,QAAQ;IAJpB,IAAA,yBAAU,EAAC;QACV,WAAW,EACT,2GAA2G;KAC9G,CAAC;GACW,QAAQ,CAepB;AAGM,IAAM,YAAY,GAAlB,MAAM,YAAY;CAMxB,CAAA;AANY,oCAAY;AAEvB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;;2CAC1D;AAGjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;;2CAC3E;uBALF,YAAY;IADxB,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;GACtE,YAAY,CAMxB","sourcesContent":["import { Field, Int, ObjectType } from 'type-graphql'\n\nimport { ScalarObject } from '@things-factory/shell'\n\n@ObjectType({\n description: 'Represents a specification item that defines the structure and validation rules for a data field.'\n})\nexport class DataSpecItem {\n @Field({ description: 'The data type of the specification item.' })\n type: string\n\n @Field({ description: 'The display label for the specification item.' })\n label: string\n\n @Field({ description: 'The unique name identifier for the specification item.' })\n name: string\n\n @Field({ nullable: true, description: 'Placeholder text for the input field.' })\n placeholder?: string\n\n @Field(type => ScalarObject, {\n nullable: true,\n description: 'Additional properties and configuration for the specification item.'\n })\n property?: { [key: string]: any }\n}\n\n@ObjectType({\n description:\n 'Represents a data specification that defines the structure, validation rules, and metadata for a dataset.'\n})\nexport class DataSpec {\n @Field({ description: 'The unique name identifier for the data specification.' })\n name: string\n\n @Field({ nullable: true, description: 'A description of the data specification and its purpose.' })\n description: string\n\n @Field({ nullable: true, description: 'Help text or documentation for the data specification.' })\n help: string\n\n @Field(type => [DataSpecItem], {\n nullable: true,\n description: 'The specification items that define the data structure and validation rules.'\n })\n specItems: DataSpecItem[]\n}\n\n@ObjectType({ description: 'Represents a paginated list of data specifications.' })\nexport class DataSpecList {\n @Field(type => [DataSpec], { description: 'List of data specifications.' })\n items: DataSpec[]\n\n @Field(type => Int, { description: 'Total number of data specifications in the list.' })\n total: number\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvers = exports.entities = void 0;
|
|
4
|
+
const data_spec_js_1 = require("./data-spec.js");
|
|
5
|
+
const data_spec_query_js_1 = require("./data-spec-query.js");
|
|
6
|
+
exports.entities = [data_spec_js_1.DataSpec];
|
|
7
|
+
exports.resolvers = [data_spec_query_js_1.DataSpecQuery];
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/data-spec/index.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AACzC,6DAAoD;AAEvC,QAAA,QAAQ,GAAG,CAAC,uBAAQ,CAAC,CAAA;AACrB,QAAA,SAAS,GAAG,CAAC,kCAAa,CAAC,CAAA","sourcesContent":["import { DataSpec } from './data-spec.js'\nimport { DataSpecQuery } from './data-spec-query.js'\n\nexport const entities = [DataSpec]\nexport const resolvers = [DataSpecQuery]\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare class DataSummaryMutation {
|
|
2
|
+
generateLatestDataSummaries(dataSetId: string, context: ResolverContext): Promise<boolean>;
|
|
3
|
+
finalizeLatestDataCollection(dataSetId: string, context: ResolverContext): Promise<boolean>;
|
|
4
|
+
generateDataSummaries(dataSetId: string, date: string, period: string, context: ResolverContext): Promise<boolean>;
|
|
5
|
+
finalizeDataCollection(dataSetId: string, date: string, period: string, context: ResolverContext): Promise<boolean>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataSummaryMutation = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
|
6
|
+
const data_summary_js_1 = require("./data-summary.js");
|
|
7
|
+
const finalize_data_collection_js_1 = require("../../controllers/finalize-data-collection.js");
|
|
8
|
+
let DataSummaryMutation = class DataSummaryMutation {
|
|
9
|
+
async generateLatestDataSummaries(dataSetId, context) {
|
|
10
|
+
return await (0, finalize_data_collection_js_1.finalizeLatestDataCollection)(dataSetId, context);
|
|
11
|
+
}
|
|
12
|
+
async finalizeLatestDataCollection(dataSetId, context) {
|
|
13
|
+
return await (0, finalize_data_collection_js_1.finalizeLatestDataCollection)(dataSetId, context);
|
|
14
|
+
}
|
|
15
|
+
async generateDataSummaries(dataSetId, date, period, context) {
|
|
16
|
+
return await (0, finalize_data_collection_js_1.finalizeDataCollection)(dataSetId, date, period, context);
|
|
17
|
+
}
|
|
18
|
+
async finalizeDataCollection(dataSetId, date, period, context) {
|
|
19
|
+
return await (0, finalize_data_collection_js_1.finalizeDataCollection)(dataSetId, date, period, context);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
exports.DataSummaryMutation = DataSummaryMutation;
|
|
23
|
+
tslib_1.__decorate([
|
|
24
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
25
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, {
|
|
26
|
+
description: 'Deprecated. Use finalizeLatestDataCollection',
|
|
27
|
+
deprecationReason: 'This resolver has been replaced by finalizeLatestDataCollection'
|
|
28
|
+
}),
|
|
29
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
30
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
31
|
+
tslib_1.__metadata("design:type", Function),
|
|
32
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
33
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
34
|
+
], DataSummaryMutation.prototype, "generateLatestDataSummaries", null);
|
|
35
|
+
tslib_1.__decorate([
|
|
36
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
37
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, {
|
|
38
|
+
description: 'Finalizes and generates the latest data summaries for the specified dataset. This operation aggregates collected data into summary records for reporting and analysis.'
|
|
39
|
+
}),
|
|
40
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
41
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
42
|
+
tslib_1.__metadata("design:type", Function),
|
|
43
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
44
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
45
|
+
], DataSummaryMutation.prototype, "finalizeLatestDataCollection", null);
|
|
46
|
+
tslib_1.__decorate([
|
|
47
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
48
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, {
|
|
49
|
+
description: 'Deprecated. Use finalizeDataCollection',
|
|
50
|
+
deprecationReason: 'This resolver has been replaced by finalizeDataCollection'
|
|
51
|
+
}),
|
|
52
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
53
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('date')),
|
|
54
|
+
tslib_1.__param(2, (0, type_graphql_1.Arg)('period')),
|
|
55
|
+
tslib_1.__param(3, (0, type_graphql_1.Ctx)()),
|
|
56
|
+
tslib_1.__metadata("design:type", Function),
|
|
57
|
+
tslib_1.__metadata("design:paramtypes", [String, String, String, Object]),
|
|
58
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
59
|
+
], DataSummaryMutation.prototype, "generateDataSummaries", null);
|
|
60
|
+
tslib_1.__decorate([
|
|
61
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
62
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, {
|
|
63
|
+
description: 'Finalizes data collection for a specific period and generates summary records. This operation processes all collected data within the specified time range.'
|
|
64
|
+
}),
|
|
65
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
66
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('date')),
|
|
67
|
+
tslib_1.__param(2, (0, type_graphql_1.Arg)('period')),
|
|
68
|
+
tslib_1.__param(3, (0, type_graphql_1.Ctx)()),
|
|
69
|
+
tslib_1.__metadata("design:type", Function),
|
|
70
|
+
tslib_1.__metadata("design:paramtypes", [String, String, String, Object]),
|
|
71
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
72
|
+
], DataSummaryMutation.prototype, "finalizeDataCollection", null);
|
|
73
|
+
exports.DataSummaryMutation = DataSummaryMutation = tslib_1.__decorate([
|
|
74
|
+
(0, type_graphql_1.Resolver)(data_summary_js_1.DataSummary)
|
|
75
|
+
], DataSummaryMutation);
|
|
76
|
+
//# sourceMappingURL=data-summary-mutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-summary-mutation.js","sourceRoot":"","sources":["../../../server/service/data-summary/data-summary-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,uDAA+C;AAC/C,+FAAoH;AAG7G,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAMxB,AAAN,KAAK,CAAC,2BAA2B,CACb,SAAiB,EAC5B,OAAwB;QAE/B,OAAO,MAAM,IAAA,0DAA4B,EAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAOK,AAAN,KAAK,CAAC,4BAA4B,CACd,SAAiB,EAC5B,OAAwB;QAE/B,OAAO,MAAM,IAAA,0DAA4B,EAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAOK,AAAN,KAAK,CAAC,qBAAqB,CACP,SAAiB,EACtB,IAAY,EACV,MAAc,EACtB,OAAwB;QAE/B,OAAO,MAAM,IAAA,oDAAsB,EAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACvE,CAAC;IAOK,AAAN,KAAK,CAAC,sBAAsB,CACR,SAAiB,EACtB,IAAY,EACV,MAAc,EACtB,OAAwB;QAE/B,OAAO,MAAM,IAAA,oDAAsB,EAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACvE,CAAC;CACF,CAAA;AApDY,kDAAmB;AAMxB;IALL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,8CAA8C;QAC3D,iBAAiB,EAAE,iEAAiE;KACrF,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;sEAGP;AAOK;IALL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,WAAW,EACT,wKAAwK;KAC3K,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uEAGP;AAOK;IALL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,wCAAwC;QACrD,iBAAiB,EAAE,2DAA2D;KAC/E,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,QAAQ,CAAC,CAAA;IACb,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;gEAGP;AAOK;IALL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5B,WAAW,EACT,6JAA6J;KAChK,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,QAAQ,CAAC,CAAA;IACb,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;iEAGP;8BAnDU,mBAAmB;IAD/B,IAAA,uBAAQ,EAAC,6BAAW,CAAC;GACT,mBAAmB,CAoD/B","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\n\nimport { DataSummary } from './data-summary.js'\nimport { finalizeDataCollection, finalizeLatestDataCollection } from '../../controllers/finalize-data-collection.js'\n\n@Resolver(DataSummary)\nexport class DataSummaryMutation {\n @Directive('@transaction')\n @Mutation(returns => Boolean, {\n description: 'Deprecated. Use finalizeLatestDataCollection',\n deprecationReason: 'This resolver has been replaced by finalizeLatestDataCollection'\n })\n async generateLatestDataSummaries(\n @Arg('dataSetId') dataSetId: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n return await finalizeLatestDataCollection(dataSetId, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, {\n description:\n 'Finalizes and generates the latest data summaries for the specified dataset. This operation aggregates collected data into summary records for reporting and analysis.'\n })\n async finalizeLatestDataCollection(\n @Arg('dataSetId') dataSetId: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n return await finalizeLatestDataCollection(dataSetId, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, {\n description: 'Deprecated. Use finalizeDataCollection',\n deprecationReason: 'This resolver has been replaced by finalizeDataCollection'\n })\n async generateDataSummaries(\n @Arg('dataSetId') dataSetId: string,\n @Arg('date') date: string,\n @Arg('period') period: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n return await finalizeDataCollection(dataSetId, date, period, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, {\n description:\n 'Finalizes data collection for a specific period and generates summary records. This operation processes all collected data within the specified time range.'\n })\n async finalizeDataCollection(\n @Arg('dataSetId') dataSetId: string,\n @Arg('date') date: string,\n @Arg('period') period: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n return await finalizeDataCollection(dataSetId, date, period, context)\n }\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Domain, ListParam } from '@things-factory/shell';
|
|
2
|
+
import { User } from '@things-factory/auth-base';
|
|
3
|
+
import { DataItem } from '../data-set/data-item-type.js';
|
|
4
|
+
import { DataSet } from '../data-set/data-set.js';
|
|
5
|
+
import { DataSummary } from './data-summary.js';
|
|
6
|
+
import { DataSummaryList, DynamicDataSummary } from './data-summary-type.js';
|
|
7
|
+
export declare class DataSummaryQuery {
|
|
8
|
+
dataSummary(id: string, context: ResolverContext): Promise<DataSummary>;
|
|
9
|
+
dataSummaries(params: ListParam, context: ResolverContext): Promise<DataSummaryList>;
|
|
10
|
+
dataSummaryByPeriod(period: 'today' | 'this month' | '30 days' | 'this year' | '12 months' | 'date range' | 'month', dataSetName: string, dataKeys: string[] | null, params: ListParam, context: ResolverContext): Promise<DynamicDataSummary[]>;
|
|
11
|
+
dataSummariesByDataSetName(dataSetName: string, params: ListParam, context: ResolverContext): Promise<DataSummaryList>;
|
|
12
|
+
dataSummariesByDataSet(dataSetId: string, params: ListParam, context: ResolverContext): Promise<DataSummaryList>;
|
|
13
|
+
dataSummariesByDataKeySet(dataKeySetId: string, params: ListParam, context: ResolverContext): Promise<DataSummaryList>;
|
|
14
|
+
dataItems(dataSummary: DataSummary): Promise<DataItem[]>;
|
|
15
|
+
dataSet(dataSummary: DataSummary): Promise<DataSet>;
|
|
16
|
+
domain(dataSummary: DataSummary): Promise<Domain>;
|
|
17
|
+
updater(dataSummary: DataSummary): Promise<User>;
|
|
18
|
+
creator(dataSummary: DataSummary): Promise<User>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataSummaryQuery = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const type_graphql_1 = require("type-graphql");
|
|
7
|
+
const shell_1 = require("@things-factory/shell");
|
|
8
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
9
|
+
const data_key_set_js_1 = require("../data-key-set/data-key-set.js");
|
|
10
|
+
const data_item_type_js_1 = require("../data-set/data-item-type.js");
|
|
11
|
+
const data_set_js_1 = require("../data-set/data-set.js");
|
|
12
|
+
const data_summary_js_1 = require("./data-summary.js");
|
|
13
|
+
const data_summary_type_js_1 = require("./data-summary-type.js");
|
|
14
|
+
const query_data_summary_by_period_js_1 = require("../../controllers/query-data-summary-by-period.js");
|
|
15
|
+
const domain_inheritance_js_1 = require("../../utils/domain-inheritance.js");
|
|
16
|
+
let DataSummaryQuery = class DataSummaryQuery {
|
|
17
|
+
async dataSummary(id, context) {
|
|
18
|
+
const { domain } = context.state;
|
|
19
|
+
const domainIds = await (0, domain_inheritance_js_1.getDomainIdsWithAncestors)(domain);
|
|
20
|
+
return await (0, shell_1.getRepository)(data_summary_js_1.DataSummary).findOne({
|
|
21
|
+
where: { domain: { id: (0, typeorm_1.In)(domainIds) }, id }
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async dataSummaries(params, context) {
|
|
25
|
+
const { domain } = context.state;
|
|
26
|
+
const domainIds = await (0, domain_inheritance_js_1.getDomainIdsWithAncestors)(domain);
|
|
27
|
+
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
28
|
+
domain: undefined,
|
|
29
|
+
params,
|
|
30
|
+
repository: (0, shell_1.getRepository)(data_summary_js_1.DataSummary),
|
|
31
|
+
searchables: ['name', 'description']
|
|
32
|
+
});
|
|
33
|
+
queryBuilder.andWhere(`${queryBuilder.alias}.domain IN (:...ancestorDomainIds)`, {
|
|
34
|
+
ancestorDomainIds: domainIds
|
|
35
|
+
});
|
|
36
|
+
const [items, total] = await queryBuilder.getManyAndCount();
|
|
37
|
+
return { items, total };
|
|
38
|
+
}
|
|
39
|
+
async dataSummaryByPeriod(period, dataSetName, dataKeys, params, context) {
|
|
40
|
+
return await (0, query_data_summary_by_period_js_1.queryDataSummaryByPeriod)(period, dataSetName, dataKeys, params, context);
|
|
41
|
+
}
|
|
42
|
+
async dataSummariesByDataSetName(dataSetName, params, context) {
|
|
43
|
+
const { domain } = context.state;
|
|
44
|
+
const domainIds = await (0, domain_inheritance_js_1.getDomainIdsWithAncestors)(domain);
|
|
45
|
+
const dataSet = await (0, shell_1.getRepository)(data_set_js_1.DataSet).findOne({
|
|
46
|
+
where: { domain: { id: (0, typeorm_1.In)(domainIds) }, name: dataSetName },
|
|
47
|
+
relations: ['dataKeySet']
|
|
48
|
+
});
|
|
49
|
+
if (!dataSet) {
|
|
50
|
+
throw new Error(`dataSet not found by the given dataSetName(${dataSetName})`);
|
|
51
|
+
}
|
|
52
|
+
const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || [];
|
|
53
|
+
const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`);
|
|
54
|
+
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
55
|
+
repository: (0, shell_1.getRepository)(data_summary_js_1.DataSummary),
|
|
56
|
+
params,
|
|
57
|
+
domain: undefined,
|
|
58
|
+
alias: 'summary',
|
|
59
|
+
searchables: ['name', 'description'].concat(searchables)
|
|
60
|
+
})
|
|
61
|
+
.andWhere('summary.domain IN (:...ancestorDomainIds)', { ancestorDomainIds: domainIds })
|
|
62
|
+
.innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetName', { dataSetName: dataSet.id });
|
|
63
|
+
const [items, total] = await queryBuilder.getManyAndCount();
|
|
64
|
+
return { items, total };
|
|
65
|
+
}
|
|
66
|
+
async dataSummariesByDataSet(dataSetId, params, context) {
|
|
67
|
+
const { domain } = context.state;
|
|
68
|
+
const domainIds = await (0, domain_inheritance_js_1.getDomainIdsWithAncestors)(domain);
|
|
69
|
+
const dataSet = await (0, shell_1.getRepository)(data_set_js_1.DataSet).findOne({
|
|
70
|
+
where: { domain: { id: (0, typeorm_1.In)(domainIds) }, id: dataSetId },
|
|
71
|
+
relations: ['dataKeySet']
|
|
72
|
+
});
|
|
73
|
+
if (!dataSet) {
|
|
74
|
+
throw new Error(`dataSet not found by the given dataSetId(${dataSetId})`);
|
|
75
|
+
}
|
|
76
|
+
const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || [];
|
|
77
|
+
const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`);
|
|
78
|
+
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
79
|
+
repository: (0, shell_1.getRepository)(data_summary_js_1.DataSummary),
|
|
80
|
+
params,
|
|
81
|
+
domain: undefined,
|
|
82
|
+
alias: 'summary',
|
|
83
|
+
searchables: ['name', 'description'].concat(searchables)
|
|
84
|
+
})
|
|
85
|
+
.andWhere('summary.domain IN (:...ancestorDomainIds)', { ancestorDomainIds: domainIds })
|
|
86
|
+
.innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetId', { dataSetId });
|
|
87
|
+
const [items, total] = await queryBuilder.getManyAndCount();
|
|
88
|
+
return { items, total };
|
|
89
|
+
}
|
|
90
|
+
async dataSummariesByDataKeySet(dataKeySetId, params, context) {
|
|
91
|
+
const { domain } = context.state;
|
|
92
|
+
const domainIds = await (0, domain_inheritance_js_1.getDomainIdsWithAncestors)(domain);
|
|
93
|
+
const dataKeySet = await (0, shell_1.getRepository)(data_key_set_js_1.DataKeySet).findOneBy({ id: dataKeySetId });
|
|
94
|
+
const dataKeyItems = dataKeySet?.dataKeyItems || [];
|
|
95
|
+
const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`);
|
|
96
|
+
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
97
|
+
repository: (0, shell_1.getRepository)(data_summary_js_1.DataSummary),
|
|
98
|
+
params,
|
|
99
|
+
domain: undefined,
|
|
100
|
+
alias: 'summary',
|
|
101
|
+
searchables: ['name', 'description'].concat(searchables)
|
|
102
|
+
})
|
|
103
|
+
.andWhere('summary.domain IN (:...ancestorDomainIds)', { ancestorDomainIds: domainIds })
|
|
104
|
+
.innerJoin('summary.dataSet', 'ds', 'ds.dataKeySet = :dataKeySetId', { dataKeySetId });
|
|
105
|
+
const [items, total] = await queryBuilder.getManyAndCount();
|
|
106
|
+
return { items, total };
|
|
107
|
+
}
|
|
108
|
+
async dataItems(dataSummary) {
|
|
109
|
+
const dataSet = dataSummary.dataSetId && (await (0, shell_1.getRepository)(data_set_js_1.DataSet).findOneBy({ id: dataSummary.dataSetId }));
|
|
110
|
+
return dataSet?.dataItems.filter(item => item.active) || [];
|
|
111
|
+
}
|
|
112
|
+
async dataSet(dataSummary) {
|
|
113
|
+
return dataSummary.dataSetId && (await (0, shell_1.getRepository)(data_set_js_1.DataSet).findOneBy({ id: dataSummary.dataSetId }));
|
|
114
|
+
}
|
|
115
|
+
async domain(dataSummary) {
|
|
116
|
+
return dataSummary.domainId && (await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: dataSummary.domainId }));
|
|
117
|
+
}
|
|
118
|
+
async updater(dataSummary) {
|
|
119
|
+
return dataSummary.updaterId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: dataSummary.updaterId }));
|
|
120
|
+
}
|
|
121
|
+
async creator(dataSummary) {
|
|
122
|
+
return dataSummary.creatorId && (await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: dataSummary.creatorId }));
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
exports.DataSummaryQuery = DataSummaryQuery;
|
|
126
|
+
tslib_1.__decorate([
|
|
127
|
+
(0, type_graphql_1.Query)(returns => data_summary_js_1.DataSummary, {
|
|
128
|
+
nullable: true,
|
|
129
|
+
description: 'Retrieves a single data summary by its unique identifier. This query fetches aggregated statistical information about data samples including averages, counts, and other summary statistics for a specific time period.'
|
|
130
|
+
}),
|
|
131
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
132
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
133
|
+
tslib_1.__metadata("design:type", Function),
|
|
134
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
135
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
136
|
+
], DataSummaryQuery.prototype, "dataSummary", null);
|
|
137
|
+
tslib_1.__decorate([
|
|
138
|
+
(0, type_graphql_1.Query)(returns => data_summary_type_js_1.DataSummaryList, {
|
|
139
|
+
description: 'Retrieves multiple data summaries with pagination and filtering support. This query allows searching summaries by name and description, and is used for listing and browsing aggregated statistical data across all datasets.'
|
|
140
|
+
}),
|
|
141
|
+
tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
142
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
143
|
+
tslib_1.__metadata("design:type", Function),
|
|
144
|
+
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
145
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
146
|
+
], DataSummaryQuery.prototype, "dataSummaries", null);
|
|
147
|
+
tslib_1.__decorate([
|
|
148
|
+
(0, type_graphql_1.Query)(returns => [data_summary_type_js_1.DynamicDataSummary], {
|
|
149
|
+
description: 'Retrieves dynamically grouped data summaries for a specific time period and dataset. This query provides aggregated statistical information grouped by data keys, enabling trend analysis and performance monitoring across different dimensions.'
|
|
150
|
+
}),
|
|
151
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('period')),
|
|
152
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('dataSetName')),
|
|
153
|
+
tslib_1.__param(2, (0, type_graphql_1.Arg)('dataKeys', type => [String], { nullable: true })),
|
|
154
|
+
tslib_1.__param(3, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
155
|
+
tslib_1.__param(4, (0, type_graphql_1.Ctx)()),
|
|
156
|
+
tslib_1.__metadata("design:type", Function),
|
|
157
|
+
tslib_1.__metadata("design:paramtypes", [String, String, Array, shell_1.ListParam, Object]),
|
|
158
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
159
|
+
], DataSummaryQuery.prototype, "dataSummaryByPeriod", null);
|
|
160
|
+
tslib_1.__decorate([
|
|
161
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-summary", privilege: "query", domainOwnerGranted: true)'),
|
|
162
|
+
(0, type_graphql_1.Query)(returns => data_summary_type_js_1.DataSummaryList, {
|
|
163
|
+
description: "Retrieves data summaries that belong to a specific dataset by dataset name. This query filters summaries by dataset name and includes searchable fields based on the dataset's key configuration, enabling targeted statistical analysis within a particular dataset context."
|
|
164
|
+
}),
|
|
165
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetName')),
|
|
166
|
+
tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
167
|
+
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
168
|
+
tslib_1.__metadata("design:type", Function),
|
|
169
|
+
tslib_1.__metadata("design:paramtypes", [String, shell_1.ListParam, Object]),
|
|
170
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
171
|
+
], DataSummaryQuery.prototype, "dataSummariesByDataSetName", null);
|
|
172
|
+
tslib_1.__decorate([
|
|
173
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-summary", privilege: "query", domainOwnerGranted: true)'),
|
|
174
|
+
(0, type_graphql_1.Query)(returns => data_summary_type_js_1.DataSummaryList, {
|
|
175
|
+
description: "Retrieves data summaries that belong to a specific dataset by dataset ID. This query filters summaries by dataset ID and includes searchable fields based on the dataset's key configuration, enabling targeted statistical analysis within a particular dataset context."
|
|
176
|
+
}),
|
|
177
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataSetId')),
|
|
178
|
+
tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
179
|
+
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
180
|
+
tslib_1.__metadata("design:type", Function),
|
|
181
|
+
tslib_1.__metadata("design:paramtypes", [String, shell_1.ListParam, Object]),
|
|
182
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
183
|
+
], DataSummaryQuery.prototype, "dataSummariesByDataSet", null);
|
|
184
|
+
tslib_1.__decorate([
|
|
185
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-summary", privilege: "query", domainOwnerGranted: true)'),
|
|
186
|
+
(0, type_graphql_1.Query)(returns => data_summary_type_js_1.DataSummaryList, {
|
|
187
|
+
description: 'Retrieves data summaries that belong to datasets using a specific data key set. This query filters summaries by key set ID and enables cross-dataset statistical analysis based on shared key configurations, useful for comparing aggregated data across related datasets.'
|
|
188
|
+
}),
|
|
189
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataKeySetId')),
|
|
190
|
+
tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
191
|
+
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
192
|
+
tslib_1.__metadata("design:type", Function),
|
|
193
|
+
tslib_1.__metadata("design:paramtypes", [String, shell_1.ListParam, Object]),
|
|
194
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
195
|
+
], DataSummaryQuery.prototype, "dataSummariesByDataKeySet", null);
|
|
196
|
+
tslib_1.__decorate([
|
|
197
|
+
(0, type_graphql_1.FieldResolver)(type => [data_item_type_js_1.DataItem], {
|
|
198
|
+
description: 'Retrieves the data items (field definitions) associated with this data summary. These items define the structure and validation rules for the summary data, including field names, types, and constraints.'
|
|
199
|
+
}),
|
|
200
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
201
|
+
tslib_1.__metadata("design:type", Function),
|
|
202
|
+
tslib_1.__metadata("design:paramtypes", [data_summary_js_1.DataSummary]),
|
|
203
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
204
|
+
], DataSummaryQuery.prototype, "dataItems", null);
|
|
205
|
+
tslib_1.__decorate([
|
|
206
|
+
(0, type_graphql_1.FieldResolver)(type => data_set_js_1.DataSet, {
|
|
207
|
+
description: 'Retrieves the dataset that this data summary belongs to. This field resolver provides access to the dataset configuration and settings associated with the summary.'
|
|
208
|
+
}),
|
|
209
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
210
|
+
tslib_1.__metadata("design:type", Function),
|
|
211
|
+
tslib_1.__metadata("design:paramtypes", [data_summary_js_1.DataSummary]),
|
|
212
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
213
|
+
], DataSummaryQuery.prototype, "dataSet", null);
|
|
214
|
+
tslib_1.__decorate([
|
|
215
|
+
(0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
|
|
216
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
217
|
+
tslib_1.__metadata("design:type", Function),
|
|
218
|
+
tslib_1.__metadata("design:paramtypes", [data_summary_js_1.DataSummary]),
|
|
219
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
220
|
+
], DataSummaryQuery.prototype, "domain", null);
|
|
221
|
+
tslib_1.__decorate([
|
|
222
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
223
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
224
|
+
tslib_1.__metadata("design:type", Function),
|
|
225
|
+
tslib_1.__metadata("design:paramtypes", [data_summary_js_1.DataSummary]),
|
|
226
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
227
|
+
], DataSummaryQuery.prototype, "updater", null);
|
|
228
|
+
tslib_1.__decorate([
|
|
229
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
230
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
231
|
+
tslib_1.__metadata("design:type", Function),
|
|
232
|
+
tslib_1.__metadata("design:paramtypes", [data_summary_js_1.DataSummary]),
|
|
233
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
234
|
+
], DataSummaryQuery.prototype, "creator", null);
|
|
235
|
+
exports.DataSummaryQuery = DataSummaryQuery = tslib_1.__decorate([
|
|
236
|
+
(0, type_graphql_1.Resolver)(data_summary_js_1.DataSummary)
|
|
237
|
+
], DataSummaryQuery);
|
|
238
|
+
//# sourceMappingURL=data-summary-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-summary-query.js","sourceRoot":"","sources":["../../../server/service/data-summary/data-summary-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { DataKeySet } from '../data-key-set/data-key-set.js'\nimport { DataItem } from '../data-set/data-item-type.js'\nimport { DataSet } from '../data-set/data-set.js'\nimport { DataSummary } from './data-summary.js'\nimport { DataSummaryList, DynamicDataSummary } from './data-summary-type.js'\nimport { queryDataSummaryByPeriod } from '../../controllers/query-data-summary-by-period.js'\nimport { getDomainIdsWithAncestors } from '../../utils/domain-inheritance.js'\n\n@Resolver(DataSummary)\nexport class DataSummaryQuery {\n @Query(returns => DataSummary!, {\n nullable: true,\n description:\n 'Retrieves a single data summary by its unique identifier. This query fetches aggregated statistical information about data samples including averages, counts, and other summary statistics for a specific time period.'\n })\n async dataSummary(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataSummary> {\n const { domain } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n return await getRepository(DataSummary).findOne({\n where: { domain: { id: In(domainIds) }, id }\n })\n }\n\n @Query(returns => DataSummaryList, {\n description:\n 'Retrieves multiple data summaries with pagination and filtering support. This query allows searching summaries by name and description, and is used for listing and browsing aggregated statistical data across all datasets.'\n })\n async dataSummaries(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain: undefined,\n params,\n repository: getRepository(DataSummary),\n searchables: ['name', 'description']\n })\n\n queryBuilder.andWhere(`${queryBuilder.alias}.domain IN (:...ancestorDomainIds)`, {\n ancestorDomainIds: domainIds\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => [DynamicDataSummary], {\n description:\n 'Retrieves dynamically grouped data summaries for a specific time period and dataset. This query provides aggregated statistical information grouped by data keys, enabling trend analysis and performance monitoring across different dimensions.'\n })\n async dataSummaryByPeriod(\n @Arg('period') period: 'today' | 'this month' | '30 days' | 'this year' | '12 months' | 'date range' | 'month',\n @Arg('dataSetName') dataSetName: string,\n @Arg('dataKeys', type => [String], { nullable: true }) dataKeys: string[] | null,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DynamicDataSummary[]> {\n return await queryDataSummaryByPeriod(period, dataSetName, dataKeys, params, context)\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, {\n description:\n \"Retrieves data summaries that belong to a specific dataset by dataset name. This query filters summaries by dataset name and includes searchable fields based on the dataset's key configuration, enabling targeted statistical analysis within a particular dataset context.\"\n })\n async dataSummariesByDataSetName(\n @Arg('dataSetName') dataSetName: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In(domainIds) }, name: dataSetName },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetName(${dataSetName})`)\n }\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain: undefined,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n })\n .andWhere('summary.domain IN (:...ancestorDomainIds)', { ancestorDomainIds: domainIds })\n .innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetName', { dataSetName: dataSet.id })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, {\n description:\n \"Retrieves data summaries that belong to a specific dataset by dataset ID. This query filters summaries by dataset ID and includes searchable fields based on the dataset's key configuration, enabling targeted statistical analysis within a particular dataset context.\"\n })\n async dataSummariesByDataSet(\n @Arg('dataSetId') dataSetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n const dataSet = await getRepository(DataSet).findOne({\n where: { domain: { id: In(domainIds) }, id: dataSetId },\n relations: ['dataKeySet']\n })\n\n if (!dataSet) {\n throw new Error(`dataSet not found by the given dataSetId(${dataSetId})`)\n }\n\n const dataKeyItems = dataSet.dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain: undefined,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n })\n .andWhere('summary.domain IN (:...ancestorDomainIds)', { ancestorDomainIds: domainIds })\n .innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetId', { dataSetId })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"data-summary\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSummaryList, {\n description:\n 'Retrieves data summaries that belong to datasets using a specific data key set. This query filters summaries by key set ID and enables cross-dataset statistical analysis based on shared key configurations, useful for comparing aggregated data across related datasets.'\n })\n async dataSummariesByDataKeySet(\n @Arg('dataKeySetId') dataKeySetId: string,\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSummaryList> {\n const { domain } = context.state\n const domainIds = await getDomainIdsWithAncestors(domain)\n\n const dataKeySet = await getRepository(DataKeySet).findOneBy({ id: dataKeySetId })\n const dataKeyItems = dataKeySet?.dataKeyItems || []\n const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSummary),\n params,\n domain: undefined,\n alias: 'summary',\n searchables: ['name', 'description'].concat(searchables)\n })\n .andWhere('summary.domain IN (:...ancestorDomainIds)', { ancestorDomainIds: domainIds })\n .innerJoin('summary.dataSet', 'ds', 'ds.dataKeySet = :dataKeySetId', { dataKeySetId })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [DataItem], {\n description:\n 'Retrieves the data items (field definitions) associated with this data summary. These items define the structure and validation rules for the summary data, including field names, types, and constraints.'\n })\n async dataItems(@Root() dataSummary: DataSummary): Promise<DataItem[]> {\n const dataSet = dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))\n\n return dataSet?.dataItems.filter(item => item.active) || []\n }\n\n @FieldResolver(type => DataSet, {\n description:\n 'Retrieves the dataset that this data summary belongs to. This field resolver provides access to the dataset configuration and settings associated with the summary.'\n })\n async dataSet(@Root() dataSummary: DataSummary): Promise<DataSet> {\n return dataSummary.dataSetId && (await getRepository(DataSet).findOneBy({ id: dataSummary.dataSetId }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() dataSummary: DataSummary): Promise<Domain> {\n return dataSummary.domainId && (await getRepository(Domain).findOneBy({ id: dataSummary.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() dataSummary: DataSummary): Promise<User> {\n return dataSummary.updaterId && (await getRepository(User).findOneBy({ id: dataSummary.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() dataSummary: DataSummary): Promise<User> {\n return dataSummary.creatorId && (await getRepository(User).findOneBy({ id: dataSummary.creatorId }))\n }\n}\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { DataSummary } from './data-summary.js';
|
|
2
|
+
export declare class NewDataSummary {
|
|
3
|
+
name: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class DataSummaryPatch {
|
|
7
|
+
id?: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
cuFlag?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class DynamicDataSummary {
|
|
13
|
+
month?: string;
|
|
14
|
+
date?: string;
|
|
15
|
+
period?: string;
|
|
16
|
+
count?: number;
|
|
17
|
+
countOoc?: number;
|
|
18
|
+
countOos?: number;
|
|
19
|
+
key01?: string;
|
|
20
|
+
key02?: string;
|
|
21
|
+
key03?: string;
|
|
22
|
+
key04?: string;
|
|
23
|
+
key05?: string;
|
|
24
|
+
data01?: number;
|
|
25
|
+
data02?: number;
|
|
26
|
+
data03?: number;
|
|
27
|
+
data04?: number;
|
|
28
|
+
data05?: number;
|
|
29
|
+
}
|
|
30
|
+
export declare class DataSummaryList {
|
|
31
|
+
items: DataSummary[];
|
|
32
|
+
total: number;
|
|
33
|
+
}
|