@things-factory/dataset 5.0.14 → 5.0.15
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/README.md +20 -0
- package/assets/data-report.jpg +0 -0
- package/assets/glue-table-indices.png +0 -0
- package/client/pages/data-archive/data-archive-list-page.js +290 -0
- package/client/pages/data-archive/data-archive-request-popup.js +198 -0
- package/client/pages/data-key-set/data-key-set-list-page.js +97 -2
- package/client/pages/data-report/data-report-embed-page.js +16 -12
- package/client/pages/data-report/data-report-list-page.js +16 -13
- package/client/pages/data-report/data-report-samples-page.js +186 -0
- package/client/pages/data-set/data-set-list-page.js +8 -0
- package/client/route.js +20 -12
- package/config/config.development.js +21 -0
- package/config/config.production.js +32 -11
- package/dist-server/controllers/create-data-sample.js +3 -1
- package/dist-server/controllers/create-data-sample.js.map +1 -1
- package/dist-server/controllers/jasper-report.js +17 -12
- package/dist-server/controllers/jasper-report.js.map +1 -1
- package/dist-server/controllers/shiny-report.js +44 -0
- package/dist-server/controllers/shiny-report.js.map +1 -0
- package/dist-server/routes.js +8 -0
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/data-archive/data-archive-mutation.js +211 -0
- package/dist-server/service/data-archive/data-archive-mutation.js.map +1 -0
- package/dist-server/service/data-archive/data-archive-query.js +85 -0
- package/dist-server/service/data-archive/data-archive-query.js.map +1 -0
- package/dist-server/service/data-archive/data-archive-type.js +74 -0
- package/dist-server/service/data-archive/data-archive-type.js.map +1 -0
- package/dist-server/service/data-archive/data-archive.js +80 -0
- package/dist-server/service/data-archive/data-archive.js.map +1 -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.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set-type.js +17 -0
- package/dist-server/service/data-key-set/data-key-set-type.js.map +1 -1
- package/dist-server/service/data-key-set/data-key-set.js +11 -0
- package/dist-server/service/data-key-set/data-key-set.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-mutation.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
- package/dist-server/service/data-sample/data-sample.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-mutation.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
- package/dist-server/service/data-set/data-item-type.js.map +1 -1
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/dist-server/service/data-set/data-set.js +2 -0
- package/dist-server/service/data-set/data-set.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history.js.map +1 -1
- package/dist-server/service/data-set-history/event-subscriber.js.map +1 -1
- package/dist-server/service/data-spec/data-spec-query.js.map +1 -1
- package/dist-server/service/data-spec/data-spec.js.map +1 -1
- package/dist-server/service/index.js +5 -2
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/dataset/data-archive.md +6 -0
- package/package.json +7 -7
- package/server/controllers/create-data-sample.ts +4 -0
- package/server/controllers/jasper-report.ts +17 -12
- package/server/controllers/shiny-report.ts +63 -0
- package/server/routes.ts +11 -0
- package/server/service/data-archive/data-archive-mutation.ts +234 -0
- package/server/service/data-archive/data-archive-query.ts +56 -0
- package/server/service/data-archive/data-archive-type.ts +49 -0
- package/server/service/data-archive/data-archive.ts +69 -0
- package/server/service/data-archive/index.ts +6 -0
- package/server/service/data-key-set/data-key-set-type.ts +13 -0
- package/server/service/data-key-set/data-key-set.ts +9 -0
- package/server/service/data-set/data-set.ts +3 -1
- package/server/service/index.ts +5 -2
- package/things-factory.config.js +20 -12
- package/translations/en.json +15 -1
- package/translations/ko.json +14 -1
- package/translations/ms.json +2 -0
- package/translations/zh.json +2 -0
- package/dist-server/service/data-item/data-item-mutation.js +0 -69
- package/dist-server/service/data-item/data-item-mutation.js.map +0 -1
- package/dist-server/service/data-item/data-item-query.js +0 -100
- package/dist-server/service/data-item/data-item-query.js.map +0 -1
- package/dist-server/service/data-item/data-item-type.js +0 -80
- package/dist-server/service/data-item/data-item-type.js.map +0 -1
- package/dist-server/service/data-item/data-item.js +0 -136
- package/dist-server/service/data-item/data-item.js.map +0 -1
- package/dist-server/service/data-item/index.js +0 -9
- package/dist-server/service/data-item/index.js.map +0 -1
@@ -0,0 +1,44 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.renderShinyReport = void 0;
|
4
|
+
const env_1 = require("@things-factory/env");
|
5
|
+
const querystring = require('querystring');
|
6
|
+
const debug = require('debug')('things-factory:dataset:shiny-report');
|
7
|
+
const dataReportConfig = env_1.config.get('dataReport');
|
8
|
+
const { shiny: { endpoint: { protocol: PROTOCOL, host: HOST, port: PORT }, datasource: { database: DATABASE } } } = Object.assign({
|
9
|
+
shiny: {
|
10
|
+
endpoint: {},
|
11
|
+
datasource: {}
|
12
|
+
}
|
13
|
+
}, dataReportConfig);
|
14
|
+
async function renderShinyReport(context) {
|
15
|
+
debug('render:context', context);
|
16
|
+
try {
|
17
|
+
const { access_token: token } = querystring.parse(context.header.cookie, ';');
|
18
|
+
const { state: { domain }, query, response, } = context;
|
19
|
+
const urlParams = querystring.stringify(Object.assign(Object.assign({ token }, query), { database: DATABASE,
|
20
|
+
domain: domain === null || domain === void 0 ? void 0 : domain.subdomain }));
|
21
|
+
// const jsonParams = JSON.stringify({
|
22
|
+
// ...query,
|
23
|
+
// ...{ database: DATABASE,
|
24
|
+
// domain: domain?.subdomain }
|
25
|
+
// })
|
26
|
+
const protocol = `${PROTOCOL || 'http'}://`;
|
27
|
+
const host = `${HOST}:${PORT}/`;
|
28
|
+
const subpath = (query === null || query === void 0 ? void 0 : query.reportView) || '';
|
29
|
+
if (!subpath) {
|
30
|
+
return context.body = '';
|
31
|
+
}
|
32
|
+
// filter not empty and join '/'
|
33
|
+
const url = host.split('/').concat(subpath.split('/'))
|
34
|
+
.filter(x => x).join('/');
|
35
|
+
// const reportUrl = `${protocol}${url}/?params=${jsonParams}`
|
36
|
+
const reportUrl = `${protocol}${url}/?${urlParams}`;
|
37
|
+
response.redirect(reportUrl);
|
38
|
+
}
|
39
|
+
catch (ex) {
|
40
|
+
context.body = `Error: ${ex.message} || ''`;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
exports.renderShinyReport = renderShinyReport;
|
44
|
+
//# sourceMappingURL=shiny-report.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shiny-report.js","sourceRoot":"","sources":["../../server/controllers/shiny-report.ts"],"names":[],"mappings":";;;AAEA,6CAA4C;AAE5C,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAA;AACrE,MAAM,gBAAgB,GAAG,YAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AACjD,MAAM,EACJ,KAAK,EAAE,EACL,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EACxD,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACnC,EACF,GAAG,MAAM,CAAC,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;KACf;CAAC,EAAE,gBAAgB,CAAC,CAAA;AAGhB,KAAK,UAAU,iBAAiB,CAAC,OAAY;IAClD,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;IAEhC,IAAI;QACF,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC7E,MAAM,EACJ,KAAK,EAAE,EAAE,MAAM,EAAE,EACjB,KAAK,EACL,QAAQ,GACT,GAAG,OAAO,CAAA;QAEX,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,+BACrC,KAAK,IACF,KAAK,GACL,EAAE,QAAQ,EAAE,QAAQ;YACvB,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE,EAC3B,CAAA;QAEF,uCAAuC;QACvC,eAAe;QACf,+BAA+B;QAC/B,gCAAgC;QAChC,KAAK;QAEL,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,MAAM,KAAK,CAAA;QAC3C,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,CAAA;QAC/B,MAAM,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,KAAI,EAAE,CAAA;QAEvC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA;SACzB;QAED,gCAAgC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACnD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC3B,8DAA8D;QAC9D,MAAM,SAAS,GAAG,GAAG,QAAQ,GAAG,GAAG,KAAK,SAAS,EAAE,CAAA;QAEnD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;KAC7B;IAAC,OAAM,EAAE,EAAE;QACV,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,OAAO,QAAQ,CAAA;KAC5C;AAEH,CAAC;AA3CD,8CA2CC","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { config } from '@things-factory/env'\n\nconst querystring = require('querystring')\nconst debug = require('debug')('things-factory:dataset:shiny-report')\nconst dataReportConfig = config.get('dataReport')\nconst {\n shiny: {\n endpoint: { protocol: PROTOCOL, host: HOST, port: PORT },\n datasource: { database: DATABASE }\n }\n} = Object.assign({\n shiny: {\n endpoint: {},\n datasource: {}\n }}, dataReportConfig)\n\n\nexport async function renderShinyReport(context: any) {\n debug('render:context', context)\n \n try {\n const { access_token: token } = querystring.parse(context.header.cookie, ';')\n const {\n state: { domain },\n query,\n response,\n } = context\n \n const urlParams = querystring.stringify({ \n token,\n ...query, \n ...{ database: DATABASE, \n domain: domain?.subdomain }\n })\n \n // const jsonParams = JSON.stringify({ \n // ...query, \n // ...{ database: DATABASE, \n // domain: domain?.subdomain }\n // })\n \n const protocol = `${PROTOCOL || 'http'}://`\n const host = `${HOST}:${PORT}/`\n const subpath = query?.reportView || ''\n\n if (!subpath) {\n return context.body = ''\n }\n\n // filter not empty and join '/'\n const url = host.split('/').concat(subpath.split('/'))\n .filter(x => x).join('/')\n // const reportUrl = `${protocol}${url}/?params=${jsonParams}`\n const reportUrl = `${protocol}${url}/?${urlParams}`\n\n response.redirect(reportUrl)\n } catch(ex) {\n context.body = `Error: ${ex.message} || ''`\n }\n \n}\n"]}
|
package/dist-server/routes.js
CHANGED
@@ -4,6 +4,7 @@ const typeorm_1 = require("typeorm");
|
|
4
4
|
const auth_base_1 = require("@things-factory/auth-base");
|
5
5
|
const create_data_sample_1 = require("./controllers/create-data-sample");
|
6
6
|
const jasper_report_1 = require("./controllers/jasper-report");
|
7
|
+
const shiny_report_1 = require("./controllers/shiny-report");
|
7
8
|
const data_sensor_1 = require("./service/data-sensor/data-sensor");
|
8
9
|
process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
|
9
10
|
/*
|
@@ -73,5 +74,12 @@ process.on('bootstrap-module-domain-private-route', (app, domainPrivateRouter) =
|
|
73
74
|
domainPrivateRouter.get('/data-report/jasper', async (context, next) => {
|
74
75
|
context.body = await (0, jasper_report_1.renderJasperReport)(context);
|
75
76
|
});
|
77
|
+
domainPrivateRouter.get('/data-report/shiny', async (context, next) => {
|
78
|
+
await (0, shiny_report_1.renderShinyReport)(context);
|
79
|
+
});
|
80
|
+
domainPrivateRouter.get('/data-report/:reportType', async (context, next) => {
|
81
|
+
let { reportType } = context.params;
|
82
|
+
context.body = `${reportType} Not Implemented.`;
|
83
|
+
});
|
76
84
|
});
|
77
85
|
//# sourceMappingURL=routes.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { getConnection } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\n\nimport { createDataSample } from './controllers/create-data-sample'\nimport { renderJasperReport } from './controllers/jasper-report'\nimport { renderShinyReport } from './controllers/shiny-report'\nimport { DataSensor } from './service/data-sensor/data-sensor'\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n /*\n * can add global public routes to application (auth not required, tenancy not required)\n *\n * ex) routes.get('/path', async(context, next) => {})\n * ex) routes.post('/path', async(context, next) => {})\n */\n\n globalPublicRouter.post('/sensor-data', async (context, next) => {\n // 데이타 검증\n const { deviceId, data, rawData, timestamp = Date.now() } = context.request.body\n if (!deviceId || !data) {\n throw new Error(`deviceId(${deviceId}) and data(${JSON.stringify(data)}) properties are mandatory`)\n }\n\n // make new data-sample\n await getConnection().transaction(async tx => {\n // find sensor through deviceId\n const sensor = await tx.getRepository(DataSensor).findOne({\n where: { deviceId },\n relations: ['domain', 'appliance', 'dataSet']\n })\n\n if (!sensor) {\n throw new Error(`Sensor having given deviceId(${deviceId}) not found`)\n }\n\n if (!sensor.active) {\n throw new Error(`State of the sensor given deviceId(${deviceId}) is not active`)\n }\n\n if (!sensor.appliance) {\n throw new Error(`Appliance of the sensor given deviceId(${deviceId}) is not set up`)\n }\n\n if (!sensor.dataSet) {\n throw new Error(`DataSet of the sensor given deviceId(${deviceId}) is not set up`)\n }\n\n const domain = sensor.domain\n const dataSet = sensor.dataSet\n const user: User = await tx.getRepository(User).findOne({\n where: {\n reference: sensor.appliance.id,\n userType: 'appliance'\n }\n })\n\n return await createDataSample(\n {\n dataSet,\n data,\n rawData,\n source: deviceId,\n collectedAt: new Date(timestamp)\n },\n { state: { domain, user, tx } }\n )\n })\n\n context.status = 200\n })\n})\n\nprocess.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {\n /*\n * can add global private routes to application (auth required, tenancy not required)\n */\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n /*\n * can add domain public routes to application (auth not required, tenancy required)\n */\n})\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n /*\n * can add domain private routes to application (auth required, tenancy required)\n */\n domainPrivateRouter.get('/data-report/jasper', async (context, next) => {\n context.body = await renderJasperReport(context)\n })\n\n domainPrivateRouter.get('/data-report/shiny', async (context, next) => {\n await renderShinyReport(context)\n })\n\n domainPrivateRouter.get('/data-report/:reportType', async (context, next) => {\n let { reportType } = context.params\n context.body = `${reportType} Not Implemented.`\n })\n \n})\n"]}
|
@@ -0,0 +1,211 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DataArchiveMutation = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
6
|
+
const typeorm_1 = require("typeorm");
|
7
|
+
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
8
|
+
const data_archive_1 = require("./data-archive");
|
9
|
+
const data_archive_type_1 = require("./data-archive-type");
|
10
|
+
const { config } = require('@things-factory/env');
|
11
|
+
const crypto = require('crypto');
|
12
|
+
let DataArchiveMutation = class DataArchiveMutation {
|
13
|
+
/**
|
14
|
+
* It may use 'func-[dev]-data-set-download' in https://github.com/operatochef/serverless
|
15
|
+
* This function requests athena query and save the result as csv.gz in s3
|
16
|
+
*/
|
17
|
+
async generatePresignedUrl(patch, context) {
|
18
|
+
const { domain, user, tx } = context.state;
|
19
|
+
// const dataArchiveRepo = tx.getRepository(DataArchive)
|
20
|
+
const { dataset: { endpoint: { host, port = 80 }, datasource: { database } } } = config.get('dataArchive');
|
21
|
+
const body = JSON.stringify(Object.assign({ domain: domain === null || domain === void 0 ? void 0 : domain.subdomain, database }, patch === null || patch === void 0 ? void 0 : patch.requestParams));
|
22
|
+
const fetched = await (0, node_fetch_1.default)(`${host}:${port}`, {
|
23
|
+
method: 'POST',
|
24
|
+
headers: { 'Content-Type': 'application/json' },
|
25
|
+
body
|
26
|
+
});
|
27
|
+
let result;
|
28
|
+
if (fetched.ok) {
|
29
|
+
const response = await fetched.json();
|
30
|
+
patch.downloadUrl = response['presignedUrl'];
|
31
|
+
patch.status = 'done';
|
32
|
+
result = await this.updateDataArchive(patch.id, patch, context);
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
console.log(fetched.text());
|
36
|
+
patch.status = 'error';
|
37
|
+
result = await this.updateDataArchive(patch.id, patch, context);
|
38
|
+
}
|
39
|
+
return result;
|
40
|
+
}
|
41
|
+
async createDataArchive(dataArchive, context) {
|
42
|
+
const { domain, user, tx } = context.state;
|
43
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
44
|
+
const result = await dataArchiveRepo.save(Object.assign(Object.assign({}, dataArchive), { domain, creator: user, updater: user }));
|
45
|
+
return result;
|
46
|
+
}
|
47
|
+
async updateDataArchive(id, patch, context) {
|
48
|
+
const { domain, user, tx } = context.state;
|
49
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
50
|
+
const dataArchive = await dataArchiveRepo.findOne({
|
51
|
+
where: { domain, id },
|
52
|
+
relations: ['domain', 'creator', 'updater']
|
53
|
+
});
|
54
|
+
const result = await dataArchiveRepo.save(Object.assign(Object.assign(Object.assign({}, dataArchive), patch), { updater: user }));
|
55
|
+
return result;
|
56
|
+
}
|
57
|
+
async updateMultipleDataArchive(patches, context) {
|
58
|
+
const { domain, user, tx } = context.state;
|
59
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
60
|
+
let results = [];
|
61
|
+
const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
|
62
|
+
const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
|
63
|
+
if (_createRecords.length > 0) {
|
64
|
+
const cuFlag = '+';
|
65
|
+
for (let i = 0; i < _createRecords.length; i++) {
|
66
|
+
const newRecord = _createRecords[i];
|
67
|
+
const result = await dataArchiveRepo.save(Object.assign(Object.assign({}, newRecord), { domain, creator: user, updater: user }));
|
68
|
+
results.push(Object.assign(Object.assign({}, result), { cuFlag }));
|
69
|
+
}
|
70
|
+
}
|
71
|
+
if (_updateRecords.length > 0) {
|
72
|
+
const cuFlag = 'M';
|
73
|
+
for (let i = 0; i < _updateRecords.length; i++) {
|
74
|
+
const newRecord = _updateRecords[i];
|
75
|
+
const dataArchive = await dataArchiveRepo.findOne(newRecord.id, {
|
76
|
+
relations: ['domain', 'creator', 'updater']
|
77
|
+
});
|
78
|
+
const result = await dataArchiveRepo.save(Object.assign(Object.assign(Object.assign({}, dataArchive), newRecord), { updater: user }));
|
79
|
+
results.push(Object.assign(Object.assign({}, result), { cuFlag }));
|
80
|
+
}
|
81
|
+
}
|
82
|
+
return results;
|
83
|
+
}
|
84
|
+
async deleteDataArchive(id, context) {
|
85
|
+
const { domain, tx } = context.state;
|
86
|
+
await tx.getRepository(data_archive_1.DataArchive).delete({ domain, id });
|
87
|
+
return true;
|
88
|
+
}
|
89
|
+
async deleteDataArchives(ids, context) {
|
90
|
+
const { domain, tx } = context.state;
|
91
|
+
await tx.getRepository(data_archive_1.DataArchive).delete({
|
92
|
+
domain,
|
93
|
+
id: (0, typeorm_1.In)(ids)
|
94
|
+
});
|
95
|
+
return true;
|
96
|
+
}
|
97
|
+
async importDataArchives(dataArchives, context) {
|
98
|
+
const { domain, tx } = context.state;
|
99
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
100
|
+
await Promise.all(dataArchives.map(async (dataArchive) => {
|
101
|
+
const createdDataArchive = await dataArchiveRepo.save(Object.assign({ domain }, dataArchive));
|
102
|
+
}));
|
103
|
+
return true;
|
104
|
+
}
|
105
|
+
async copyDataArchives(ids, context) {
|
106
|
+
const { domain, user, tx } = context.state;
|
107
|
+
const dataArchiveRepo = tx.getRepository(data_archive_1.DataArchive);
|
108
|
+
const originals = await dataArchiveRepo.find({
|
109
|
+
where: {
|
110
|
+
id: (0, typeorm_1.In)(ids),
|
111
|
+
domain
|
112
|
+
},
|
113
|
+
relations: ['domain']
|
114
|
+
});
|
115
|
+
if (originals.length == 0) {
|
116
|
+
return [];
|
117
|
+
}
|
118
|
+
var newCopys = originals.map(dataArchive => {
|
119
|
+
let dataArchiveId = crypto.randomUUID();
|
120
|
+
return Object.assign(Object.assign({}, dataArchive), { id: dataArchiveId, domain, creator: user, updater: user, updatedAt: undefined, createdAt: undefined });
|
121
|
+
});
|
122
|
+
var copiedDataArchives = await dataArchiveRepo.save(newCopys);
|
123
|
+
return copiedDataArchives;
|
124
|
+
}
|
125
|
+
};
|
126
|
+
tslib_1.__decorate([
|
127
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
128
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
129
|
+
(0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To create new DataArchive' }),
|
130
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('patch')),
|
131
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
132
|
+
tslib_1.__metadata("design:type", Function),
|
133
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_type_1.DataArchivePatch, Object]),
|
134
|
+
tslib_1.__metadata("design:returntype", Promise)
|
135
|
+
], DataArchiveMutation.prototype, "generatePresignedUrl", null);
|
136
|
+
tslib_1.__decorate([
|
137
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
138
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
139
|
+
(0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To create new DataArchive' }),
|
140
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataArchive')),
|
141
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
142
|
+
tslib_1.__metadata("design:type", Function),
|
143
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_type_1.NewDataArchive, Object]),
|
144
|
+
tslib_1.__metadata("design:returntype", Promise)
|
145
|
+
], DataArchiveMutation.prototype, "createDataArchive", null);
|
146
|
+
tslib_1.__decorate([
|
147
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
148
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
149
|
+
(0, type_graphql_1.Mutation)(returns => data_archive_1.DataArchive, { description: 'To modify DataArchive information' }),
|
150
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
151
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
|
152
|
+
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
153
|
+
tslib_1.__metadata("design:type", Function),
|
154
|
+
tslib_1.__metadata("design:paramtypes", [String, data_archive_type_1.DataArchivePatch, Object]),
|
155
|
+
tslib_1.__metadata("design:returntype", Promise)
|
156
|
+
], DataArchiveMutation.prototype, "updateDataArchive", null);
|
157
|
+
tslib_1.__decorate([
|
158
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
159
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
160
|
+
(0, type_graphql_1.Mutation)(returns => [data_archive_1.DataArchive], { description: "To modify multiple DataArchives' information" }),
|
161
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [data_archive_type_1.DataArchivePatch])),
|
162
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
163
|
+
tslib_1.__metadata("design:type", Function),
|
164
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
165
|
+
tslib_1.__metadata("design:returntype", Promise)
|
166
|
+
], DataArchiveMutation.prototype, "updateMultipleDataArchive", null);
|
167
|
+
tslib_1.__decorate([
|
168
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
169
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
170
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete DataArchive' }),
|
171
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
172
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
173
|
+
tslib_1.__metadata("design:type", Function),
|
174
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
175
|
+
tslib_1.__metadata("design:returntype", Promise)
|
176
|
+
], DataArchiveMutation.prototype, "deleteDataArchive", null);
|
177
|
+
tslib_1.__decorate([
|
178
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
179
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
180
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple dataArchives' }),
|
181
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
182
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
183
|
+
tslib_1.__metadata("design:type", Function),
|
184
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
185
|
+
tslib_1.__metadata("design:returntype", Promise)
|
186
|
+
], DataArchiveMutation.prototype, "deleteDataArchives", null);
|
187
|
+
tslib_1.__decorate([
|
188
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
189
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
190
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple data-archives' }),
|
191
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('dataArchives', type => [data_archive_type_1.DataArchivePatch])),
|
192
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
193
|
+
tslib_1.__metadata("design:type", Function),
|
194
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
195
|
+
tslib_1.__metadata("design:returntype", Promise)
|
196
|
+
], DataArchiveMutation.prototype, "importDataArchives", null);
|
197
|
+
tslib_1.__decorate([
|
198
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "mutation", domainOwnerGranted: true)'),
|
199
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
200
|
+
(0, type_graphql_1.Mutation)(returns => [data_archive_1.DataArchive], { description: 'To copy multiple data-archives' }),
|
201
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
202
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
203
|
+
tslib_1.__metadata("design:type", Function),
|
204
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
205
|
+
tslib_1.__metadata("design:returntype", Promise)
|
206
|
+
], DataArchiveMutation.prototype, "copyDataArchives", null);
|
207
|
+
DataArchiveMutation = tslib_1.__decorate([
|
208
|
+
(0, type_graphql_1.Resolver)(data_archive_1.DataArchive)
|
209
|
+
], DataArchiveMutation);
|
210
|
+
exports.DataArchiveMutation = DataArchiveMutation;
|
211
|
+
//# sourceMappingURL=data-archive-mutation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-archive-mutation.js","sourceRoot":"","sources":["../../../server/service/data-archive/data-archive-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\nimport fetch from 'node-fetch'\n\nimport { DataArchive } from './data-archive'\nimport { DataArchivePatch, NewDataArchive } from './data-archive-type'\n\nconst { config } = require('@things-factory/env')\nconst crypto = require('crypto')\n\n@Resolver(DataArchive)\nexport class DataArchiveMutation {\n\n /** \n * It may use 'func-[dev]-data-set-download' in https://github.com/operatochef/serverless \n * This function requests athena query and save the result as csv.gz in s3\n */\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataArchive, { description: 'To create new DataArchive' })\n async generatePresignedUrl(@Arg('patch') patch: DataArchivePatch, @Ctx() context: any): Promise<DataArchive> {\n const { domain, user, tx } = context.state\n // const dataArchiveRepo = tx.getRepository(DataArchive)\n\n const { dataset: { endpoint: { host, port=80 }, datasource: { database } }} = config.get('dataArchive')\n \n const body = JSON.stringify({ \n domain: domain?.subdomain,\n database,\n ...patch?.requestParams\n })\n\n const fetched = await fetch(`${host}:${port}`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body\n })\n \n let result\n if (fetched.ok) {\n const response = await fetched.json()\n patch.downloadUrl = response['presignedUrl']\n patch.status = 'done'\n\n result = await this.updateDataArchive(patch.id, patch, context)\n } else {\n console.log(fetched.text())\n patch.status = 'error'\n\n result = await this.updateDataArchive(patch.id, patch, context)\n }\n\n return result\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataArchive, { description: 'To create new DataArchive' })\n async createDataArchive(@Arg('dataArchive') dataArchive: NewDataArchive, @Ctx() context: any): Promise<DataArchive> {\n const { domain, user, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n const result = await dataArchiveRepo.save({\n ...dataArchive,\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => DataArchive, { description: 'To modify DataArchive information' })\n async updateDataArchive(@Arg('id') id: string, @Arg('patch') patch: DataArchivePatch, @Ctx() context: any): Promise<DataArchive> {\n const { domain, user, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n const dataArchive = await dataArchiveRepo.findOne({\n where: { domain, id },\n relations: ['domain', 'creator', 'updater']\n })\n\n const result = await dataArchiveRepo.save({\n ...dataArchive,\n ...patch,\n updater: user\n })\n\n return result\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [DataArchive], { description: \"To modify multiple DataArchives' information\" })\n async updateMultipleDataArchive(\n @Arg('patches', type => [DataArchivePatch]) patches: DataArchivePatch[],\n @Ctx() context: any\n ): Promise<DataArchive[]> {\n const { domain, user, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\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 dataArchiveRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\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 newRecord = _updateRecords[i]\n const dataArchive = await dataArchiveRepo.findOne(newRecord.id, {\n relations: ['domain', 'creator', 'updater']\n })\n\n const result = await dataArchiveRepo.save({\n ...dataArchive,\n ...newRecord,\n updater: user\n })\n\n results.push({\n ...result,\n cuFlag\n })\n }\n }\n\n return results\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete DataArchive' })\n async deleteDataArchive(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(DataArchive).delete({ domain, id })\n return true\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple dataArchives' })\n async deleteDataArchives(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(DataArchive).delete({\n domain,\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To import multiple data-archives' })\n async importDataArchives(\n @Arg('dataArchives', type => [DataArchivePatch]) dataArchives: DataArchive[],\n @Ctx() context: any\n ): Promise<boolean> {\n const { domain, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n await Promise.all(\n dataArchives.map(async (dataArchive: DataArchive) => {\n const createdDataArchive: DataArchive = await dataArchiveRepo.save({\n domain,\n ...dataArchive\n })\n })\n )\n\n return true\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => [DataArchive], { description: 'To copy multiple data-archives' })\n async copyDataArchives(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<DataArchive[]> {\n const { domain, user, tx } = context.state\n const dataArchiveRepo = tx.getRepository(DataArchive)\n\n const originals = await dataArchiveRepo.find({\n where: {\n id: In(ids),\n domain\n },\n relations: ['domain']\n })\n\n if (originals.length == 0) {\n return []\n }\n\n var newCopys = originals.map(dataArchive => {\n let dataArchiveId = crypto.randomUUID()\n\n return {\n ...dataArchive,\n id: dataArchiveId,\n domain,\n creator: user,\n updater: user,\n updatedAt: undefined,\n createdAt: undefined\n }\n })\n\n var copiedDataArchives = await dataArchiveRepo.save(newCopys)\n\n return copiedDataArchives\n }\n}\n"]}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
"use strict";
|
2
|
+
var _a;
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.DataArchiveQuery = void 0;
|
5
|
+
const tslib_1 = require("tslib");
|
6
|
+
const type_graphql_1 = require("type-graphql");
|
7
|
+
const typeorm_1 = require("typeorm");
|
8
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
9
|
+
const shell_1 = require("@things-factory/shell");
|
10
|
+
const data_archive_1 = require("./data-archive");
|
11
|
+
const data_archive_type_1 = require("./data-archive-type");
|
12
|
+
var parser = require('cron-parser');
|
13
|
+
let DataArchiveQuery = class DataArchiveQuery {
|
14
|
+
async dataArchive(id, context) {
|
15
|
+
const { domain } = context.state;
|
16
|
+
return await (0, typeorm_1.getRepository)(data_archive_1.DataArchive).findOne({
|
17
|
+
where: { domain, id }
|
18
|
+
});
|
19
|
+
}
|
20
|
+
async dataArchives(params, context) {
|
21
|
+
const { domain } = context.state;
|
22
|
+
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
23
|
+
repository: (0, typeorm_1.getRepository)(data_archive_1.DataArchive),
|
24
|
+
params,
|
25
|
+
domain,
|
26
|
+
alias: 'dataArchive',
|
27
|
+
searchables: []
|
28
|
+
});
|
29
|
+
const [items, total] = await queryBuilder.getManyAndCount();
|
30
|
+
return { items, total };
|
31
|
+
}
|
32
|
+
async domain(dataArchive) {
|
33
|
+
return await (0, typeorm_1.getRepository)(shell_1.Domain).findOne(dataArchive.domainId);
|
34
|
+
}
|
35
|
+
async updater(dataArchive) {
|
36
|
+
return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(dataArchive.updaterId);
|
37
|
+
}
|
38
|
+
async creator(dataArchive) {
|
39
|
+
return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(dataArchive.creatorId);
|
40
|
+
}
|
41
|
+
};
|
42
|
+
tslib_1.__decorate([
|
43
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "query", domainOwnerGranted: true)'),
|
44
|
+
(0, type_graphql_1.Query)(returns => data_archive_1.DataArchive, { description: 'To fetch a DataArchive' }),
|
45
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
46
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
47
|
+
tslib_1.__metadata("design:type", Function),
|
48
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
49
|
+
tslib_1.__metadata("design:returntype", Promise)
|
50
|
+
], DataArchiveQuery.prototype, "dataArchive", null);
|
51
|
+
tslib_1.__decorate([
|
52
|
+
(0, type_graphql_1.Directive)('@privilege(category: "data-archive", privilege: "query", domainOwnerGranted: true)'),
|
53
|
+
(0, type_graphql_1.Query)(returns => data_archive_type_1.DataArchiveList, { description: 'To fetch multiple DataArchives' }),
|
54
|
+
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
55
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
56
|
+
tslib_1.__metadata("design:type", Function),
|
57
|
+
tslib_1.__metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
|
58
|
+
tslib_1.__metadata("design:returntype", Promise)
|
59
|
+
], DataArchiveQuery.prototype, "dataArchives", null);
|
60
|
+
tslib_1.__decorate([
|
61
|
+
(0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
|
62
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
63
|
+
tslib_1.__metadata("design:type", Function),
|
64
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_1.DataArchive]),
|
65
|
+
tslib_1.__metadata("design:returntype", Promise)
|
66
|
+
], DataArchiveQuery.prototype, "domain", null);
|
67
|
+
tslib_1.__decorate([
|
68
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
69
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
70
|
+
tslib_1.__metadata("design:type", Function),
|
71
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_1.DataArchive]),
|
72
|
+
tslib_1.__metadata("design:returntype", Promise)
|
73
|
+
], DataArchiveQuery.prototype, "updater", null);
|
74
|
+
tslib_1.__decorate([
|
75
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
76
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
77
|
+
tslib_1.__metadata("design:type", Function),
|
78
|
+
tslib_1.__metadata("design:paramtypes", [data_archive_1.DataArchive]),
|
79
|
+
tslib_1.__metadata("design:returntype", Promise)
|
80
|
+
], DataArchiveQuery.prototype, "creator", null);
|
81
|
+
DataArchiveQuery = tslib_1.__decorate([
|
82
|
+
(0, type_graphql_1.Resolver)(data_archive_1.DataArchive)
|
83
|
+
], DataArchiveQuery);
|
84
|
+
exports.DataArchiveQuery = DataArchiveQuery;
|
85
|
+
//# sourceMappingURL=data-archive-query.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-archive-query.js","sourceRoot":"","sources":["../../../server/service/data-archive/data-archive-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { getRepository } from 'typeorm'\n\nimport { Role, User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'\n\nimport { DataArchive } from './data-archive'\nimport { DataArchiveList } from './data-archive-type'\n\nvar parser = require('cron-parser')\n\n@Resolver(DataArchive)\nexport class DataArchiveQuery {\n @Directive('@privilege(category: \"data-archive\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataArchive, { description: 'To fetch a DataArchive' })\n async dataArchive(@Arg('id') id: string, @Ctx() context: any): Promise<DataArchive> {\n const { domain } = context.state\n\n return await getRepository(DataArchive).findOne({\n where: { domain, id }\n })\n }\n\n @Directive('@privilege(category: \"data-archive\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataArchiveList, { description: 'To fetch multiple DataArchives' })\n async dataArchives(@Args() params: ListParam, @Ctx() context: any): Promise<DataArchiveList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataArchive),\n params,\n domain,\n alias: 'dataArchive',\n searchables: []\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() dataArchive: DataArchive): Promise<Domain> {\n return await getRepository(Domain).findOne(dataArchive.domainId)\n }\n\n @FieldResolver(type => User)\n async updater(@Root() dataArchive: DataArchive): Promise<User> {\n return await getRepository(User).findOne(dataArchive.updaterId)\n }\n\n @FieldResolver(type => User)\n async creator(@Root() dataArchive: DataArchive): Promise<User> {\n return await getRepository(User).findOne(dataArchive.creatorId)\n }\n}\n"]}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DataArchiveList = exports.DataArchivePatch = exports.NewDataArchive = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
6
|
+
const data_archive_1 = require("./data-archive");
|
7
|
+
const shell_1 = require("@things-factory/shell");
|
8
|
+
let NewDataArchive = class NewDataArchive {
|
9
|
+
};
|
10
|
+
tslib_1.__decorate([
|
11
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
12
|
+
tslib_1.__metadata("design:type", String)
|
13
|
+
], NewDataArchive.prototype, "type", void 0);
|
14
|
+
tslib_1.__decorate([
|
15
|
+
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
|
16
|
+
tslib_1.__metadata("design:type", Object)
|
17
|
+
], NewDataArchive.prototype, "requestParams", void 0);
|
18
|
+
tslib_1.__decorate([
|
19
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
20
|
+
tslib_1.__metadata("design:type", String)
|
21
|
+
], NewDataArchive.prototype, "downloadUrl", void 0);
|
22
|
+
tslib_1.__decorate([
|
23
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
24
|
+
tslib_1.__metadata("design:type", String)
|
25
|
+
], NewDataArchive.prototype, "status", void 0);
|
26
|
+
NewDataArchive = tslib_1.__decorate([
|
27
|
+
(0, type_graphql_1.InputType)()
|
28
|
+
], NewDataArchive);
|
29
|
+
exports.NewDataArchive = NewDataArchive;
|
30
|
+
let DataArchivePatch = class DataArchivePatch {
|
31
|
+
};
|
32
|
+
tslib_1.__decorate([
|
33
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
|
34
|
+
tslib_1.__metadata("design:type", String)
|
35
|
+
], DataArchivePatch.prototype, "id", void 0);
|
36
|
+
tslib_1.__decorate([
|
37
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
38
|
+
tslib_1.__metadata("design:type", String)
|
39
|
+
], DataArchivePatch.prototype, "type", void 0);
|
40
|
+
tslib_1.__decorate([
|
41
|
+
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
|
42
|
+
tslib_1.__metadata("design:type", Object)
|
43
|
+
], DataArchivePatch.prototype, "requestParams", void 0);
|
44
|
+
tslib_1.__decorate([
|
45
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
46
|
+
tslib_1.__metadata("design:type", String)
|
47
|
+
], DataArchivePatch.prototype, "downloadUrl", void 0);
|
48
|
+
tslib_1.__decorate([
|
49
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
50
|
+
tslib_1.__metadata("design:type", String)
|
51
|
+
], DataArchivePatch.prototype, "status", void 0);
|
52
|
+
tslib_1.__decorate([
|
53
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
54
|
+
tslib_1.__metadata("design:type", String)
|
55
|
+
], DataArchivePatch.prototype, "cuFlag", void 0);
|
56
|
+
DataArchivePatch = tslib_1.__decorate([
|
57
|
+
(0, type_graphql_1.InputType)()
|
58
|
+
], DataArchivePatch);
|
59
|
+
exports.DataArchivePatch = DataArchivePatch;
|
60
|
+
let DataArchiveList = class DataArchiveList {
|
61
|
+
};
|
62
|
+
tslib_1.__decorate([
|
63
|
+
(0, type_graphql_1.Field)(type => [data_archive_1.DataArchive]),
|
64
|
+
tslib_1.__metadata("design:type", Array)
|
65
|
+
], DataArchiveList.prototype, "items", void 0);
|
66
|
+
tslib_1.__decorate([
|
67
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int),
|
68
|
+
tslib_1.__metadata("design:type", Number)
|
69
|
+
], DataArchiveList.prototype, "total", void 0);
|
70
|
+
DataArchiveList = tslib_1.__decorate([
|
71
|
+
(0, type_graphql_1.ObjectType)()
|
72
|
+
], DataArchiveList);
|
73
|
+
exports.DataArchiveList = DataArchiveList;
|
74
|
+
//# sourceMappingURL=data-archive-type.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-archive-type.js","sourceRoot":"","sources":["../../../server/service/data-archive/data-archive-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,iDAA4C;AAC5C,iDAA+D;AAGxD,IAAM,cAAc,GAApB,MAAM,cAAc;CAa1B,CAAA;AAZC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACY;AAEtC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACV;AAEtC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACX;AAXJ,cAAc;IAD1B,IAAA,wBAAS,GAAE;GACC,cAAc,CAa1B;AAbY,wCAAc;AAgBpB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAkB5B,CAAA;AAjBC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACY;AAEtC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACV;AAEtC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACX;AAEf;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACZ;AAjBH,gBAAgB;IAD5B,IAAA,wBAAS,GAAE;GACC,gBAAgB,CAkB5B;AAlBY,4CAAgB;AAqBtB,IAAM,eAAe,GAArB,MAAM,eAAe;CAM3B,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAAW,CAAC,CAAC;;8CACT;AAEpB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;8CACN;AALF,eAAe;IAD3B,IAAA,yBAAU,GAAE;GACA,eAAe,CAM3B;AANY,0CAAe","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\nimport { DataArchive } from './data-archive'\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\n@InputType()\nexport class NewDataArchive {\n @Field({ nullable: true })\n type?: 'manual' | 'automatic' | string\n \n @Field(type => ScalarObject, { nullable: true })\n requestParams?: { [key: string]: any }\n\n @Field({ nullable: true })\n downloadUrl?: string\n\n @Field({ nullable: true })\n status?: string\n\n}\n\n@InputType()\nexport class DataArchivePatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n type?: 'manual' | 'automatic' | string\n\n @Field(type => ScalarObject, { nullable: true })\n requestParams?: { [key: string]: any }\n\n @Field({ nullable: true })\n downloadUrl?: string\n\n @Field({ nullable: true })\n status?: string\n\n @Field({ nullable: true })\n cuFlag: string\n}\n\n@ObjectType()\nexport class DataArchiveList {\n @Field(type => [DataArchive])\n items: DataArchive[]\n\n @Field(type => Int)\n total: number\n}\n"]}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
"use strict";
|
2
|
+
var _a, _b, _c;
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.DataArchive = void 0;
|
5
|
+
const tslib_1 = require("tslib");
|
6
|
+
const type_graphql_1 = require("type-graphql");
|
7
|
+
const typeorm_1 = require("typeorm");
|
8
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
9
|
+
const shell_1 = require("@things-factory/shell");
|
10
|
+
let DataArchive = class DataArchive {
|
11
|
+
};
|
12
|
+
tslib_1.__decorate([
|
13
|
+
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
14
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID),
|
15
|
+
tslib_1.__metadata("design:type", String)
|
16
|
+
], DataArchive.prototype, "id", void 0);
|
17
|
+
tslib_1.__decorate([
|
18
|
+
(0, typeorm_1.ManyToOne)(type => shell_1.Domain),
|
19
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
20
|
+
tslib_1.__metadata("design:type", typeof (_a = typeof shell_1.Domain !== "undefined" && shell_1.Domain) === "function" ? _a : Object)
|
21
|
+
], DataArchive.prototype, "domain", void 0);
|
22
|
+
tslib_1.__decorate([
|
23
|
+
(0, typeorm_1.RelationId)((dataArchive) => dataArchive.domain),
|
24
|
+
tslib_1.__metadata("design:type", String)
|
25
|
+
], DataArchive.prototype, "domainId", void 0);
|
26
|
+
tslib_1.__decorate([
|
27
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
28
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
29
|
+
tslib_1.__metadata("design:type", String)
|
30
|
+
], DataArchive.prototype, "type", void 0);
|
31
|
+
tslib_1.__decorate([
|
32
|
+
(0, typeorm_1.Column)('simple-json', { nullable: true }),
|
33
|
+
(0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
|
34
|
+
tslib_1.__metadata("design:type", Object)
|
35
|
+
], DataArchive.prototype, "requestParams", void 0);
|
36
|
+
tslib_1.__decorate([
|
37
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
38
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
39
|
+
tslib_1.__metadata("design:type", String)
|
40
|
+
], DataArchive.prototype, "downloadUrl", void 0);
|
41
|
+
tslib_1.__decorate([
|
42
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
43
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
44
|
+
tslib_1.__metadata("design:type", String)
|
45
|
+
], DataArchive.prototype, "status", void 0);
|
46
|
+
tslib_1.__decorate([
|
47
|
+
(0, typeorm_1.CreateDateColumn)(),
|
48
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
49
|
+
tslib_1.__metadata("design:type", Date)
|
50
|
+
], DataArchive.prototype, "createdAt", void 0);
|
51
|
+
tslib_1.__decorate([
|
52
|
+
(0, typeorm_1.UpdateDateColumn)(),
|
53
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
54
|
+
tslib_1.__metadata("design:type", Date)
|
55
|
+
], DataArchive.prototype, "updatedAt", void 0);
|
56
|
+
tslib_1.__decorate([
|
57
|
+
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
|
58
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
59
|
+
tslib_1.__metadata("design:type", typeof (_b = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _b : Object)
|
60
|
+
], DataArchive.prototype, "creator", void 0);
|
61
|
+
tslib_1.__decorate([
|
62
|
+
(0, typeorm_1.RelationId)((dataArchive) => dataArchive.creator),
|
63
|
+
tslib_1.__metadata("design:type", String)
|
64
|
+
], DataArchive.prototype, "creatorId", void 0);
|
65
|
+
tslib_1.__decorate([
|
66
|
+
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
|
67
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
68
|
+
tslib_1.__metadata("design:type", typeof (_c = typeof auth_base_1.User !== "undefined" && auth_base_1.User) === "function" ? _c : Object)
|
69
|
+
], DataArchive.prototype, "updater", void 0);
|
70
|
+
tslib_1.__decorate([
|
71
|
+
(0, typeorm_1.RelationId)((dataArchive) => dataArchive.creator),
|
72
|
+
tslib_1.__metadata("design:type", String)
|
73
|
+
], DataArchive.prototype, "updaterId", void 0);
|
74
|
+
DataArchive = tslib_1.__decorate([
|
75
|
+
(0, typeorm_1.Entity)(),
|
76
|
+
(0, typeorm_1.Index)('ix_data_archive_0', (dataArchive) => [dataArchive.id], { unique: true }),
|
77
|
+
(0, type_graphql_1.ObjectType)({ description: 'Entity for DataArchive' })
|
78
|
+
], DataArchive);
|
79
|
+
exports.DataArchive = DataArchive;
|
80
|
+
//# sourceMappingURL=data-archive.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-archive.js","sourceRoot":"","sources":["../../../server/service/data-archive/data-archive.ts"],"names":[],"mappings":";;;;;AAAA,+CAAsE;AACtE,qCAUgB;AAEhB,yDAAsD;AACtD,iDAA4D;AAKrD,IAAM,WAAW,GAAjB,MAAM,WAAW;CAiDvB,CAAA;AAhDC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;uCACC;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DACjB,cAAM,oBAAN,cAAM;2CAAA;AAEf;IAAC,IAAA,oBAAU,EAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;;6CAC5C;AAEjB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACY;AAEtC;IAAC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACV;AAEtC;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACN;AAEpB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACX;AAEf;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;8CAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;8CAAA;AAEhB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DAChB,gBAAI,oBAAJ,gBAAI;4CAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;;8CAC5C;AAElB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DAChB,gBAAI,oBAAJ,gBAAI;4CAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;;8CAC5C;AAhDP,WAAW;IAHvB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,mBAAmB,EAAE,CAAC,WAAwB,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5F,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;GACzC,WAAW,CAiDvB;AAjDY,kCAAW","sourcesContent":["import { Field, ID, ObjectType, registerEnumType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn,\n VersionColumn\n} from 'typeorm'\n\nimport { Role, User } from '@things-factory/auth-base'\nimport { Domain, ScalarObject } from '@things-factory/shell'\n\n@Entity()\n@Index('ix_data_archive_0', (dataArchive: DataArchive) => [dataArchive.id], { unique: true })\n@ObjectType({ description: 'Entity for DataArchive' })\nexport class DataArchive {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((dataArchive: DataArchive) => dataArchive.domain)\n domainId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n type?: 'manual' | 'automatic' | string\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n requestParams?: { [key: string]: any }\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n downloadUrl?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n status?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n creator?: User\n\n @RelationId((dataArchive: DataArchive) => dataArchive.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n updater?: User\n\n @RelationId((dataArchive: DataArchive) => dataArchive.creator)\n updaterId?: string\n}\n"]}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.resolvers = exports.entities = void 0;
|
4
|
+
const data_archive_1 = require("./data-archive");
|
5
|
+
const data_archive_mutation_1 = require("./data-archive-mutation");
|
6
|
+
const data_archive_query_1 = require("./data-archive-query");
|
7
|
+
exports.entities = [data_archive_1.DataArchive];
|
8
|
+
exports.resolvers = [data_archive_query_1.DataArchiveQuery, data_archive_mutation_1.DataArchiveMutation];
|
9
|
+
//# sourceMappingURL=index.js.map
|