@things-factory/reference-app 6.2.102 → 6.2.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist-server/constants/index.js +5 -0
  2. package/dist-server/constants/index.js.map +1 -0
  3. package/dist-server/constants/type-constants.js +26 -0
  4. package/dist-server/constants/type-constants.js.map +1 -0
  5. package/dist-server/controllers/create-data-sample-mockup.js +240 -0
  6. package/dist-server/controllers/create-data-sample-mockup.js.map +1 -0
  7. package/dist-server/controllers/index.js +5 -0
  8. package/dist-server/controllers/index.js.map +1 -0
  9. package/dist-server/index.js +8 -0
  10. package/dist-server/index.js.map +1 -0
  11. package/dist-server/middlewares/index.js +8 -0
  12. package/dist-server/middlewares/index.js.map +1 -0
  13. package/dist-server/migrations/index.js +12 -0
  14. package/dist-server/migrations/index.js.map +1 -0
  15. package/dist-server/routes.js +24 -0
  16. package/dist-server/routes.js.map +1 -0
  17. package/dist-server/service/data-sample-mockup/data-sample-mockup-mutation.js +28 -0
  18. package/dist-server/service/data-sample-mockup/data-sample-mockup-mutation.js.map +1 -0
  19. package/dist-server/service/data-sample-mockup/data-sample-mockup-type.js +20 -0
  20. package/dist-server/service/data-sample-mockup/data-sample-mockup-type.js.map +1 -0
  21. package/dist-server/service/data-sample-mockup/index.js +7 -0
  22. package/dist-server/service/data-sample-mockup/index.js.map +1 -0
  23. package/dist-server/service/index.js +20 -0
  24. package/dist-server/service/index.js.map +1 -0
  25. package/dist-server/service/reference/index.js +8 -0
  26. package/dist-server/service/reference/index.js.map +1 -0
  27. package/dist-server/service/reference/lambda-call.js +68 -0
  28. package/dist-server/service/reference/lambda-call.js.map +1 -0
  29. package/dist-server/service/reference/reference-mutation.js +63 -0
  30. package/dist-server/service/reference/reference-mutation.js.map +1 -0
  31. package/dist-server/service/reference/reference-query.js +84 -0
  32. package/dist-server/service/reference/reference-query.js.map +1 -0
  33. package/dist-server/tsconfig.tsbuildinfo +1 -0
  34. package/package.json +34 -34
@@ -0,0 +1,63 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,84 @@
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
@@ -0,0 +1 @@
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"]}