@things-factory/reference-app 6.2.101 → 6.2.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/dist-server/constants/index.js +0 -5
- package/dist-server/constants/index.js.map +0 -1
- package/dist-server/constants/type-constants.js +0 -26
- package/dist-server/constants/type-constants.js.map +0 -1
- package/dist-server/controllers/create-data-sample-mockup.js +0 -240
- package/dist-server/controllers/create-data-sample-mockup.js.map +0 -1
- package/dist-server/controllers/index.js +0 -5
- package/dist-server/controllers/index.js.map +0 -1
- package/dist-server/index.js +0 -8
- package/dist-server/index.js.map +0 -1
- package/dist-server/middlewares/index.js +0 -8
- package/dist-server/middlewares/index.js.map +0 -1
- package/dist-server/migrations/index.js +0 -12
- package/dist-server/migrations/index.js.map +0 -1
- package/dist-server/routes.js +0 -24
- package/dist-server/routes.js.map +0 -1
- package/dist-server/service/data-sample-mockup/data-sample-mockup-mutation.js +0 -28
- package/dist-server/service/data-sample-mockup/data-sample-mockup-mutation.js.map +0 -1
- package/dist-server/service/data-sample-mockup/data-sample-mockup-type.js +0 -20
- package/dist-server/service/data-sample-mockup/data-sample-mockup-type.js.map +0 -1
- package/dist-server/service/data-sample-mockup/index.js +0 -7
- package/dist-server/service/data-sample-mockup/index.js.map +0 -1
- package/dist-server/service/index.js +0 -20
- package/dist-server/service/index.js.map +0 -1
- package/dist-server/service/reference/index.js +0 -8
- package/dist-server/service/reference/index.js.map +0 -1
- package/dist-server/service/reference/lambda-call.js +0 -68
- package/dist-server/service/reference/lambda-call.js.map +0 -1
- package/dist-server/service/reference/reference-mutation.js +0 -63
- package/dist-server/service/reference/reference-mutation.js.map +0 -1
- package/dist-server/service/reference/reference-query.js +0 -84
- package/dist-server/service/reference/reference-query.js.map +0 -1
- package/dist-server/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lambda-call.js","sourceRoot":"","sources":["../../../server/service/reference/lambda-call.ts"],"names":[],"mappings":";;;;AAAA,oEAA8B;AAE9B,6CAA4C;AAC5C,iDAAkD;AAElD,MAAM,aAAa,GAAG,YAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AAEvC,KAAK,UAAU,YAAY,CAAC,MAAM;IACvC,MAAM,UAAU,GAAG;QACjB,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE;YACN,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI;SACZ;KACF,CAAA;IACD,MAAM,KAAK,GAAG,kBAAU,CAAC,kBAAkB,CAAC;QAC1C,QAAQ,EAAE;YACR,YAAY,EAAE;gBACZ,MAAM,EAAE;oBACN,MAAM;iBACP;gBACD,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,UAAU;aACpB;SACF;KACF,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,qBAAqB;YACrC,WAAW,EAAE,aAAa,CAAC,QAAQ,CAAC;SACrC;QACD,IAAI;KACL,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACrC,OAAO,OAAO,CAAA;AAChB,CAAC;AAjCD,oCAiCC;AAED,cAAc;AACd,SAAS,cAAc,CAAC,MAAM;IAC5B,kDAAkD;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACjC,MAAM,IAAI,GAAG,EAAE,CAAA;QACf,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SACrC;QACD,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,4CAA4C;IAC5C,yBAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,KAAK,EAAE;uBACY,SAAS;;;;;;;;MAQ1B;KACH,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import fetch from 'node-fetch'\n\nimport { config } from '@things-factory/env'\nimport { gqlBuilder } from '@things-factory/utils'\n\nconst appSyncConfig = config.get('awsAppSync')\n\nexport async function extractInfos(images) {\n const extraction = {\n success_count: true,\n failure_count: true,\n result: {\n boundaries: true,\n texts: true\n }\n }\n const query = gqlBuilder.jsonToGraphQLQuery({\n mutation: {\n extractInfos: {\n __args: {\n images\n },\n ocr: extraction,\n barcode: extraction\n }\n }\n })\n\n const body = JSON.stringify({ query })\n const response = await fetch(appSyncConfig['apiUrl'], {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/graphql',\n 'x-api-key': appSyncConfig['apiKey']\n },\n body\n })\n\n const jsonRes = await response.json()\n return jsonRes\n}\n\n// @deprecated\nfunction getRequestBody(images) {\n // @things-factory/utils gqlBuilder.buildArgs 와 유사\n const imageArgs = images.map(obj => {\n const args = []\n for (let key in obj) {\n args.push(`${key}: \\\"${obj[key]}\\\"`)\n }\n return '{' + args.join(',') + '}'\n })\n\n // console.log(gqlBuilder.buildArgs(images))\n // console.log(imageArgs)\n\n const body = JSON.stringify({\n query: `mutation {\n upload(images: ${imageArgs}) { \n success_count\n failure_count\n results {\n boundaries\n texts\n } \n }\n }`\n })\n\n return body\n}\n"]}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReferenceMutation = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const GraphQLUpload_js_1 = tslib_1.__importDefault(require("graphql-upload/GraphQLUpload.js"));
|
|
6
|
-
const type_graphql_1 = require("type-graphql");
|
|
7
|
-
const attachment_base_1 = require("@things-factory/attachment-base");
|
|
8
|
-
const shell_1 = require("@things-factory/shell");
|
|
9
|
-
const utils_1 = require("@things-factory/utils");
|
|
10
|
-
let ReferenceMutation = class ReferenceMutation {
|
|
11
|
-
async referenceUpload(_, files, context) {
|
|
12
|
-
const { domain, user, tx } = context.state;
|
|
13
|
-
const all = Promise.all(files);
|
|
14
|
-
if ((files === null || files === void 0 ? void 0 : files.length) > 0) {
|
|
15
|
-
const attachments = files.map(attachment => {
|
|
16
|
-
return {
|
|
17
|
-
file: attachment,
|
|
18
|
-
refType: 'Reference',
|
|
19
|
-
refBy: 100,
|
|
20
|
-
category: 'Reference'
|
|
21
|
-
};
|
|
22
|
-
});
|
|
23
|
-
await (0, attachment_base_1.createAttachments)(_, { attachments }, context);
|
|
24
|
-
}
|
|
25
|
-
return 'success';
|
|
26
|
-
}
|
|
27
|
-
async referencePendingJob(_, tag, context) {
|
|
28
|
-
const { domain } = context.state;
|
|
29
|
-
for (var i = 0; i <= 100; i++) {
|
|
30
|
-
await (0, utils_1.sleep)(100);
|
|
31
|
-
(0, shell_1.publishProgress)({
|
|
32
|
-
domain,
|
|
33
|
-
tag,
|
|
34
|
-
progress: i,
|
|
35
|
-
message: `${i * 10} / 1000`
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
return 'success';
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
tslib_1.__decorate([
|
|
42
|
-
(0, type_graphql_1.Mutation)(returns => String, { description: 'To reference of file upload' }),
|
|
43
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
44
|
-
tslib_1.__param(1, (0, type_graphql_1.Arg)('files', () => [GraphQLUpload_js_1.default])),
|
|
45
|
-
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
46
|
-
tslib_1.__metadata("design:type", Function),
|
|
47
|
-
tslib_1.__metadata("design:paramtypes", [Object, Array, Object]),
|
|
48
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
49
|
-
], ReferenceMutation.prototype, "referenceUpload", null);
|
|
50
|
-
tslib_1.__decorate([
|
|
51
|
-
(0, type_graphql_1.Mutation)(returns => String, { description: 'To reference of pending job progress' }),
|
|
52
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
53
|
-
tslib_1.__param(1, (0, type_graphql_1.Arg)('tag')),
|
|
54
|
-
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
55
|
-
tslib_1.__metadata("design:type", Function),
|
|
56
|
-
tslib_1.__metadata("design:paramtypes", [Object, String, Object]),
|
|
57
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
58
|
-
], ReferenceMutation.prototype, "referencePendingJob", null);
|
|
59
|
-
ReferenceMutation = tslib_1.__decorate([
|
|
60
|
-
(0, type_graphql_1.Resolver)()
|
|
61
|
-
], ReferenceMutation);
|
|
62
|
-
exports.ReferenceMutation = ReferenceMutation;
|
|
63
|
-
//# sourceMappingURL=reference-mutation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reference-mutation.js","sourceRoot":"","sources":["../../../server/service/reference/reference-mutation.ts"],"names":[],"mappings":";;;;AACA,+FAA2D;AAC3D,+CAAiE;AAEjE,qEAA+E;AAC/E,iDAAuD;AACvD,iDAA6C;AAGtC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEtB,AAAN,KAAK,CAAC,eAAe,CACX,CAAC,EAET,KAAmB,EACZ,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAE9B,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,IAAG,CAAC,EAAE;YACrB,MAAM,WAAW,GAAiB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACvD,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,WAAW;oBACpB,KAAK,EAAE,GAAG;oBACV,QAAQ,EAAE,WAAW;iBACf,CAAA;YACV,CAAC,CAAC,CAAA;YACF,MAAM,IAAA,mCAAiB,EAAC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,CAAA;SACrD;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAGK,AAAN,KAAK,CAAC,mBAAmB,CAAS,CAAC,EAAc,GAAW,EAAS,OAAwB;QAC3F,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;YAC7B,MAAM,IAAA,aAAK,EAAC,GAAG,CAAC,CAAA;YAEhB,IAAA,uBAAe,EAAC;gBACd,MAAM;gBACN,GAAG;gBACH,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS;aAC5B,CAAC,CAAA;SACH;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CAAA;AAzCO;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IAEzE,mBAAA,IAAA,mBAAI,GAAE,CAAA;IACN,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,0BAAa,CAAC,CAAC,CAAA;IAEnC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;wDAkBP;AAGK;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IAC1D,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAK,mBAAA,IAAA,kBAAG,EAAC,KAAK,CAAC,CAAA;IAAe,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;4DAenE;AA1CU,iBAAiB;IAD7B,IAAA,uBAAQ,GAAE;GACE,iBAAiB,CA2C7B;AA3CY,8CAAiB","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Mutation, Resolver, Root } from 'type-graphql'\n\nimport { Attachment, createAttachments } from '@things-factory/attachment-base'\nimport { publishProgress } from '@things-factory/shell'\nimport { sleep } from '@things-factory/utils'\n\n@Resolver()\nexport class ReferenceMutation {\n @Mutation(returns => String, { description: 'To reference of file upload' })\n async referenceUpload(\n @Root() _,\n @Arg('files', () => [GraphQLUpload])\n files: FileUpload[],\n @Ctx() context: ResolverContext\n ): Promise<string> {\n const { domain, user, tx } = context.state\n const all = Promise.all(files)\n\n if (files?.length > 0) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: 'Reference',\n refBy: 100,\n category: 'Reference'\n } as any\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return 'success'\n }\n\n @Mutation(returns => String, { description: 'To reference of pending job progress' })\n async referencePendingJob(@Root() _, @Arg('tag') tag: string, @Ctx() context: ResolverContext): Promise<string> {\n const { domain } = context.state\n\n for (var i = 0; i <= 100; i++) {\n await sleep(100)\n\n publishProgress({\n domain,\n tag,\n progress: i,\n message: `${i * 10} / 1000`\n })\n }\n\n return 'success'\n }\n}\n"]}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReferenceQuery = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const GraphQLUpload_js_1 = tslib_1.__importDefault(require("graphql-upload/GraphQLUpload.js"));
|
|
6
|
-
const type_graphql_1 = require("type-graphql");
|
|
7
|
-
const attachment_base_1 = require("@things-factory/attachment-base");
|
|
8
|
-
const shell_1 = require("@things-factory/shell");
|
|
9
|
-
const utils_1 = require("@things-factory/utils");
|
|
10
|
-
const lambda_call_1 = require("./lambda-call");
|
|
11
|
-
let ReferenceQuery = class ReferenceQuery {
|
|
12
|
-
async ocrRequest(_, images, context) {
|
|
13
|
-
var _a;
|
|
14
|
-
const { domain, user, tx } = context.state;
|
|
15
|
-
const all = Promise.all(images);
|
|
16
|
-
if ((images === null || images === void 0 ? void 0 : images.length) > 0) {
|
|
17
|
-
const attachments = images.map(attachment => {
|
|
18
|
-
return {
|
|
19
|
-
file: attachment,
|
|
20
|
-
refType: 'Reference',
|
|
21
|
-
refBy: 100,
|
|
22
|
-
category: 'Reference'
|
|
23
|
-
};
|
|
24
|
-
});
|
|
25
|
-
await (0, attachment_base_1.createAttachments)(_, { attachments }, context);
|
|
26
|
-
const files = await Promise.all(images.map(async (file) => {
|
|
27
|
-
const { createReadStream, filename, mimetype } = await file;
|
|
28
|
-
const readStream = createReadStream();
|
|
29
|
-
const image = await this.streamToString(readStream);
|
|
30
|
-
// format is 'image/jpeg'
|
|
31
|
-
const formatArr = mimetype.split('/');
|
|
32
|
-
return { data: image, name: filename, format: formatArr[formatArr.length - 1] };
|
|
33
|
-
}));
|
|
34
|
-
const res = await (0, lambda_call_1.extractInfos)(files);
|
|
35
|
-
console.log('interpretImages response', JSON.stringify(res, null, ' '));
|
|
36
|
-
return (_a = res.data) === null || _a === void 0 ? void 0 : _a.extractInfos;
|
|
37
|
-
}
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
streamToString(stream) {
|
|
41
|
-
const chunks = [];
|
|
42
|
-
return new Promise((resolve, reject) => {
|
|
43
|
-
stream.on('data', chunk => chunks.push(Buffer.from(chunk)));
|
|
44
|
-
stream.on('error', err => reject(err));
|
|
45
|
-
stream.on('end', () => resolve(Buffer.concat(chunks).toString('base64')));
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
async ocrPendingJob(_, tag, context) {
|
|
49
|
-
const { domain } = context.state;
|
|
50
|
-
for (var i = 0; i <= 100; i++) {
|
|
51
|
-
await (0, utils_1.sleep)(100);
|
|
52
|
-
(0, shell_1.publishProgress)({
|
|
53
|
-
domain,
|
|
54
|
-
tag,
|
|
55
|
-
progress: i,
|
|
56
|
-
message: `${i * 10} / 1000`
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
return 'success';
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
tslib_1.__decorate([
|
|
63
|
-
(0, type_graphql_1.Query)(returns => [shell_1.ScalarAny], { description: 'To reference of ocr request' }),
|
|
64
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
65
|
-
tslib_1.__param(1, (0, type_graphql_1.Arg)('images', () => [GraphQLUpload_js_1.default])),
|
|
66
|
-
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
67
|
-
tslib_1.__metadata("design:type", Function),
|
|
68
|
-
tslib_1.__metadata("design:paramtypes", [Object, Array, Object]),
|
|
69
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
70
|
-
], ReferenceQuery.prototype, "ocrRequest", null);
|
|
71
|
-
tslib_1.__decorate([
|
|
72
|
-
(0, type_graphql_1.Query)(returns => String, { description: 'To reference of pending job progress' }),
|
|
73
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
74
|
-
tslib_1.__param(1, (0, type_graphql_1.Arg)('tag')),
|
|
75
|
-
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
76
|
-
tslib_1.__metadata("design:type", Function),
|
|
77
|
-
tslib_1.__metadata("design:paramtypes", [Object, String, Object]),
|
|
78
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
79
|
-
], ReferenceQuery.prototype, "ocrPendingJob", null);
|
|
80
|
-
ReferenceQuery = tslib_1.__decorate([
|
|
81
|
-
(0, type_graphql_1.Resolver)()
|
|
82
|
-
], ReferenceQuery);
|
|
83
|
-
exports.ReferenceQuery = ReferenceQuery;
|
|
84
|
-
//# sourceMappingURL=reference-query.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reference-query.js","sourceRoot":"","sources":["../../../server/service/reference/reference-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { GraphQLScalarType } from 'graphql'\nimport type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Query, Resolver, Root } from 'type-graphql'\n\nimport { Attachment, createAttachments } from '@things-factory/attachment-base'\nimport { publishProgress, ScalarAny } from '@things-factory/shell'\nimport { sleep } from '@things-factory/utils'\n\nimport { extractInfos } from './lambda-call'\n\n@Resolver()\nexport class ReferenceQuery {\n @Query(returns => [ScalarAny], { description: 'To reference of ocr request' })\n async ocrRequest(\n @Root() _,\n @Arg('images', () => [GraphQLUpload])\n images: FileUpload[],\n @Ctx() context: ResolverContext\n ): Promise<GraphQLScalarType[]> {\n const { domain, user, tx } = context.state\n const all = Promise.all(images)\n\n if (images?.length > 0) {\n const attachments: Attachment[] = images.map(attachment => {\n return {\n file: attachment,\n refType: 'Reference',\n refBy: 100,\n category: 'Reference'\n } as any\n })\n await createAttachments(_, { attachments }, context)\n\n const files = await Promise.all(\n images.map(async file => {\n const { createReadStream, filename, mimetype } = await file\n const readStream = createReadStream()\n const image = await this.streamToString(readStream)\n // format is 'image/jpeg'\n const formatArr = mimetype.split('/')\n return { data: image, name: filename, format: formatArr[formatArr.length - 1] }\n })\n )\n const res: any = await extractInfos(files)\n console.log('interpretImages response', JSON.stringify(res, null, ' '))\n return res.data?.extractInfos\n }\n\n return []\n }\n\n streamToString(stream) {\n const chunks = []\n return new Promise((resolve, reject) => {\n stream.on('data', chunk => chunks.push(Buffer.from(chunk)))\n stream.on('error', err => reject(err))\n stream.on('end', () => resolve(Buffer.concat(chunks).toString('base64')))\n })\n }\n\n @Query(returns => String, { description: 'To reference of pending job progress' })\n async ocrPendingJob(@Root() _, @Arg('tag') tag: string, @Ctx() context: ResolverContext): Promise<string> {\n const { domain } = context.state\n\n for (var i = 0; i <= 100; i++) {\n await sleep(100)\n\n publishProgress({\n domain,\n tag,\n progress: i,\n message: `${i * 10} / 1000`\n })\n }\n\n return 'success'\n }\n}\n"]}
|