@things-factory/reference-app 5.0.10 → 5.0.13

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 (159) hide show
  1. package/_index.html +2 -0
  2. package/attachments/1aa35791-259f-42f3-9bab-faf4dc81c54a.png +0 -0
  3. package/attachments/39e79f93-f50c-4d0d-9016-12ef6fc72d04.pptx +0 -0
  4. package/attachments/5705d276-f428-44d6-a0b8-9667671fc011.png +0 -0
  5. package/attachments/5f63a469-132c-4ddd-a7a8-37d01f693c9d.png +0 -0
  6. package/attachments/69808491-8e6b-45e2-9bf8-dccea1c5b52e.png +0 -0
  7. package/attachments/6c3b55e5-8a42-4afa-a456-9f540972a4b5.png +0 -0
  8. package/attachments/7927fe8e-2246-453d-9869-7072b983437c.png +0 -0
  9. package/attachments/7d150574-01b8-4439-96a0-d57299f3ffcf.png +0 -0
  10. package/attachments/8bacec9a-bd5d-4dbf-bbcb-9f08dd7b60d5.png +0 -0
  11. package/attachments/a1cf142c-f3c2-442c-b8d5-a7f9cc6a59b3.png +0 -0
  12. package/attachments/aedcc3d7-a4ab-4ada-98bd-0db6fa5061ba.png +0 -0
  13. package/attachments/c1cd9051-bcf4-4711-89a2-63dfefbd969a.png +0 -0
  14. package/attachments/cb3ac834-ece0-4802-bef0-dfdc0fcd93bd.png +0 -0
  15. package/attachments/fb06c90b-df44-4ac7-b71c-056278439290.png +0 -0
  16. package/config.development.js +16 -2
  17. package/db.sqlite +0 -0
  18. package/dist-server/controllers/create-data-sample-mockup.js +0 -2
  19. package/dist-server/controllers/create-data-sample-mockup.js.map +1 -1
  20. package/dist-server/routes.js +0 -1
  21. package/dist-server/routes.js.map +1 -1
  22. package/dist-server/service/data-sample-mockup/data-sample-mockup-mutation.js +0 -1
  23. package/dist-server/service/data-sample-mockup/data-sample-mockup-mutation.js.map +1 -1
  24. package/dist-server/service/reference/reference-mutation.js.map +1 -1
  25. package/dist-server/service/reference/reference-query.js +1 -2
  26. package/dist-server/service/reference/reference-query.js.map +1 -1
  27. package/dist-server/tsconfig.tsbuildinfo +1 -1
  28. package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +8 -3
  29. package/logs/.33a2b6820ab05dbb0f8bea4849090e12685d0b36-audit.json +3 -8
  30. package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +56 -21
  31. package/logs/application-2022-06-16-13.log +4 -0
  32. package/logs/application-2022-06-16-20.log +4 -0
  33. package/logs/application-2022-06-16-21.log +7 -0
  34. package/logs/application-2022-08-09-08.log +8 -0
  35. package/logs/application-2022-08-10-23.log +5 -0
  36. package/logs/{connections-2022-01-17-14.log → connections-2022-01-01-00.log} +0 -0
  37. package/logs/{connections-2022-01-17-15.log → connections-2022-06-05-11.log} +0 -0
  38. package/logs/{connections-2022-06-20-13.log → connections-2022-06-08-11.log} +0 -0
  39. package/logs/{connections-2022-06-28-11.log → connections-2022-06-08-12.log} +0 -0
  40. package/logs/{connections-2022-06-28-14.log → connections-2022-06-08-13.log} +0 -0
  41. package/logs/{connections-2022-06-28-15.log → connections-2022-06-08-15.log} +0 -0
  42. package/logs/{connections-2022-06-28-16.log → connections-2022-06-08-16.log} +0 -0
  43. package/logs/{connections-2022-06-28-17.log → connections-2022-06-08-17.log} +0 -0
  44. package/logs/{connections-2022-06-28-18.log → connections-2022-06-08-18.log} +0 -0
  45. package/logs/{connections-2022-07-04-14.log → connections-2022-06-09-00.log} +0 -0
  46. package/logs/connections-2022-06-10-10.log +0 -0
  47. package/logs/connections-2022-06-10-15.log +0 -0
  48. package/logs/connections-2022-06-12-17.log +0 -0
  49. package/logs/connections-2022-06-12-19.log +0 -0
  50. package/logs/connections-2022-06-16-13.log +0 -0
  51. package/logs/connections-2022-06-16-20.log +0 -0
  52. package/logs/connections-2022-06-16-21.log +0 -0
  53. package/logs/connections-2022-07-28-08.log +0 -0
  54. package/logs/connections-2022-07-28-14.log +0 -0
  55. package/logs/connections-2022-07-28-15.log +0 -0
  56. package/logs/connections-2022-07-29-07.log +0 -0
  57. package/logs/connections-2022-07-29-16.log +0 -0
  58. package/logs/connections-2022-07-29-17.log +0 -0
  59. package/logs/connections-2022-08-05-00.log +0 -0
  60. package/logs/connections-2022-08-05-01.log +0 -0
  61. package/logs/connections-2022-08-05-06.log +0 -0
  62. package/logs/connections-2022-08-05-07.log +0 -0
  63. package/logs/connections-2022-08-08-16.log +0 -0
  64. package/logs/connections-2022-08-08-17.log +0 -0
  65. package/logs/connections-2022-08-09-08.log +0 -0
  66. package/logs/connections-2022-08-10-23.log +0 -0
  67. package/logs/system/.6da447827b9a5ea2ccd1f5f28a0b784317582531-audit.json +15 -0
  68. package/logs/system/.de213bae5e079f641b78bdb917979b79dcc8e501-audit.json +15 -0
  69. package/logs/system/scenario-1-2022-04-15-16.log +176 -0
  70. package/logs/system/scenario-pubsub-2-2022-08-08-17.log +36 -0
  71. package/package.json +31 -31
  72. package/server/controllers/create-data-sample-mockup.ts +0 -2
  73. package/server/routes.ts +0 -2
  74. package/server/service/data-sample-mockup/data-sample-mockup-mutation.ts +0 -2
  75. package/server/service/reference/reference-mutation.ts +1 -1
  76. package/server/service/reference/reference-query.ts +4 -5
  77. package/attachments/02d2c4ea-147a-411e-a34e-5dbd96eea3f8.jpeg +0 -0
  78. package/attachments/05284c84-1330-4b54-a698-bcd3020d9d90.png +0 -0
  79. package/attachments/0554c8c2-aefe-4ce5-b030-94c643976577.jpeg +0 -0
  80. package/attachments/0598f578-ddd9-4b8c-8726-74ea5fe13778.jpeg +0 -0
  81. package/attachments/09fd9f4d-1909-4fbb-b5bd-b3604dd44d83.pdf +0 -0
  82. package/attachments/0c759fb7-b15a-4eba-b55f-1c97c9320e12.jpeg +0 -0
  83. package/attachments/0ca13d71-3df4-4932-b834-0057a6454776.jpeg +0 -0
  84. package/attachments/0fe94be8-c2bf-44ea-b8bd-3b2e5d65cb07.png +0 -0
  85. package/attachments/105aff20-62d2-41ae-a9ab-8ea1eb03a064.jpeg +0 -0
  86. package/attachments/124d6ef2-6ab9-4963-8b0b-5f8607b79a5b.png +0 -0
  87. package/attachments/1a4edbc9-b06c-4e1b-8b7a-4af7a8a08720.jpeg +0 -0
  88. package/attachments/1aaa7721-7a6c-47fa-a375-b186b82dd3b1.jpeg +0 -0
  89. package/attachments/1e647161-13ff-4540-9115-0fe383860516.jpeg +0 -0
  90. package/attachments/1e7fec94-e08f-468e-af89-e108904e4401.png +0 -0
  91. package/attachments/1ee44a5b-b946-4609-bf09-bc4f741325f1.png +0 -0
  92. package/attachments/244fbab5-0821-4e57-8c7e-745feaac12b3.jpeg +0 -0
  93. package/attachments/2b1cfec6-4d1c-4130-8ac5-5dffa64ac4d5.png +0 -0
  94. package/attachments/3a328a7f-b7fd-4ea1-9c4c-005e24e1e897.png +0 -0
  95. package/attachments/3c562896-8cc8-489b-8760-5109602b631a.jpeg +0 -0
  96. package/attachments/426bd3d4-aaec-496c-8d20-a84692d574dc.jpeg +0 -0
  97. package/attachments/4412432a-b79b-49b8-81b2-af6b927703b4.png +0 -0
  98. package/attachments/5427ece0-13b3-48a8-ac14-b25dcfae3cd9.jpeg +0 -0
  99. package/attachments/56aad6a3-e99d-4186-985b-d8d3ccd4ab68.jpeg +0 -0
  100. package/attachments/5a4d23c9-6fa0-43ce-87d1-27fbb252438d.jpeg +0 -0
  101. package/attachments/5a564ed4-1858-4656-8d88-b6a490bc0309.jpeg +0 -0
  102. package/attachments/5ba01610-dc05-483e-8988-da9d34c141df.jpeg +0 -0
  103. package/attachments/5d34b97a-61b9-472f-a88f-636b85c1e45c.jpeg +0 -0
  104. package/attachments/5dc41b95-4970-4221-accb-86afa94b4f3b.png +0 -0
  105. package/attachments/60ca3d2a-cfa4-4f14-b952-a96be9f64f96.png +0 -0
  106. package/attachments/62232866-32ef-43fe-b84b-993d074c173d.png +0 -0
  107. package/attachments/6309383a-7c72-4a2c-8fb9-b14fe4f1905a.jpeg +0 -0
  108. package/attachments/63142721-6030-4889-b52d-d21e8ddd52cd.jpeg +0 -0
  109. package/attachments/6a284a40-de4a-4e79-adbb-fe2ac6f123d4.png +0 -0
  110. package/attachments/6b1839fa-098b-4881-9d26-f950282f0ee7.pdf +0 -0
  111. package/attachments/6cb59217-600f-47a1-91fc-299c27e5e248.png +0 -0
  112. package/attachments/6da5c66a-08a0-409b-8f35-1a953cf44c3f.jpeg +0 -0
  113. package/attachments/709a2c9d-c919-42ca-8001-6b1688daf978.jpeg +0 -0
  114. package/attachments/70bd97b9-0cfe-4c43-9cba-3c0dbedfff70.jpeg +0 -0
  115. package/attachments/71a71839-5521-456b-8eee-134b5f0a6c1c.jpeg +0 -0
  116. package/attachments/79d67c49-a3a0-4cd9-a78c-a012732d9d8b.jpeg +0 -0
  117. package/attachments/7f4f78ba-bfe5-466c-88b4-b31824263b84.png +0 -0
  118. package/attachments/82214212-6296-4c73-812f-18a509368247.jpeg +0 -0
  119. package/attachments/8488bba6-353a-4f77-84be-1526c92f7b7f.png +0 -0
  120. package/attachments/891d2e46-a01d-408d-b715-4513fcb52240.jpeg +0 -0
  121. package/attachments/8a240663-dffe-4c20-a6a0-51e4561c2037.png +0 -0
  122. package/attachments/8b82bd3d-10ed-4c9e-94d5-7f01400b1fe1.jpeg +0 -0
  123. package/attachments/8cee2fe7-1bb9-48b1-b759-1efd0164b8c9.jpeg +0 -0
  124. package/attachments/90ea058c-ed47-4802-a694-bce0e86c217f.png +0 -0
  125. package/attachments/92be3157-e6b1-4104-b86c-4e510895a71e.jpeg +0 -0
  126. package/attachments/93a9638b-34b6-4625-9a23-dc088d5ed615.jpeg +0 -0
  127. package/attachments/9c92e78d-afcb-4d62-b51e-f73f15211314.png +0 -0
  128. package/attachments/9edcd63b-39e9-4e0c-b3e4-b255ffadc037.jpeg +0 -0
  129. package/attachments/a64d028e-7e33-4455-a1c4-f294250b5650.png +0 -0
  130. package/attachments/b1008da4-9e8a-4360-9600-2aeca8e4503a.pdf +0 -0
  131. package/attachments/b174f420-3f33-463a-8efd-6abad2f709fe.jpeg +0 -0
  132. package/attachments/b27517ec-f2ac-4735-9d8a-353af2fa5f67.png +0 -0
  133. package/attachments/b3b99d3b-6e95-4ac8-a349-b4bcf5d78dcd.png +0 -0
  134. package/attachments/b6c2d24d-8f18-4925-bc2d-4d3bffad4a02.png +0 -0
  135. package/attachments/b8a5d357-e196-4c32-8059-6d9b94470672.jpeg +0 -0
  136. package/attachments/b93a5d06-7395-4409-8680-64e8fa9542bb.jpeg +0 -0
  137. package/attachments/bacf8fe2-a3ef-433b-a00d-f154378db75a.png +0 -0
  138. package/attachments/bcb6e85d-9dae-4271-9ff6-47a235c41488.jpeg +0 -0
  139. package/attachments/c3fdecd2-b06e-461e-b2c7-23c69a30e744.jpeg +0 -0
  140. package/attachments/c47bf238-810c-489b-bc2e-c942033b2ac3.png +0 -0
  141. package/attachments/c5953130-2bc7-4f73-ab00-835e10658027.png +0 -0
  142. package/attachments/c66e06b2-32d5-416e-bc8a-c057cf938491.png +0 -0
  143. package/attachments/c7e77261-cfa2-48e8-8135-383cb0487901.jpeg +0 -0
  144. package/attachments/cc7892b9-fca6-49f9-a10b-3febeef83fd2.png +0 -0
  145. package/attachments/d179dc14-baf5-4549-b79e-580ce6b9b897.jpeg +0 -0
  146. package/attachments/d5ac154b-8c03-4456-9296-e9ce0b24c9ac.png +0 -0
  147. package/attachments/dbf0459a-4f1a-44c6-a4fc-d73adc3e4cfa.png +0 -0
  148. package/attachments/de443f64-d2b8-4b10-9b8c-e55b9ab30944.png +0 -0
  149. package/attachments/de9e417e-9636-41c7-8e27-49ff2c759ddb.jpeg +0 -0
  150. package/attachments/e5bfd176-32ac-48c0-ad7c-d65478950e28.jpeg +0 -0
  151. package/attachments/e6fcee2a-cdda-4131-8f9c-90b1fa06a4f4.png +0 -0
  152. package/attachments/f8a9e56b-6205-4dc8-991e-eec568403810.jpeg +0 -0
  153. package/logs/application-2022-06-28-11.log +0 -31
  154. package/logs/application-2022-06-28-14.log +0 -29
  155. package/logs/application-2022-06-28-15.log +0 -37
  156. package/logs/application-2022-06-28-16.log +0 -4
  157. package/logs/application-2022-06-28-17.log +0 -47
  158. package/logs/application-2022-06-28-18.log +0 -22
  159. package/logs/application-2022-07-04-14.log +0 -14
package/_index.html CHANGED
@@ -63,6 +63,8 @@
63
63
  font-family: Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
64
64
  line-height: 1.5;
65
65
  -webkit-font-smoothing: antialiased;
66
+
67
+ accent-color: var(--primary-color);
66
68
  }
67
69
  </style>
68
70
 
@@ -1,7 +1,21 @@
1
1
  module.exports = {
2
2
  subdomain: 'system',
3
3
  awsAppSync: {
4
- apiUrl: 'https://leqzefuvzfhvzloqchxtt37opu.appsync-api.ap-northeast-2.amazonaws.com/graphql',
5
- apiKey: 'da2-lau46scnubb5pk3675e4shyky4'
4
+ apiUrl: '',
5
+ apiKey: ''
6
+ },
7
+ raygun: {
8
+ apiKey: 'VvPzjH0zKdOM0hynpycw'
9
+ },
10
+ ormconfig: {
11
+ name: 'default',
12
+ type: 'postgres',
13
+ database: 'reference_app',
14
+ username: 'ibex_master',
15
+ password: 'iBe10dev$%^',
16
+ host: 'localhost',
17
+ port: 5432,
18
+ synchronize: true,
19
+ logging: true
6
20
  }
7
21
  }
package/db.sqlite CHANGED
Binary file
@@ -8,7 +8,6 @@ const product_base_1 = require("@things-factory/product-base");
8
8
  const routing_base_1 = require("@things-factory/routing-base");
9
9
  const work_shift_1 = require("@things-factory/work-shift");
10
10
  const randomWords = require('random-words');
11
- const debug = require('debug')('things-factory:reference-app:controller/create-data-sample-mockup');
12
11
  const fillDataKeys = (dataKeySet, data) => {
13
12
  const keys = (dataKeySet === null || dataKeySet === void 0 ? void 0 : dataKeySet.dataKeyItems) || [];
14
13
  return keys.reduce((sum, key, index) => {
@@ -191,7 +190,6 @@ async function _generateMockupData(dataSources, tx) {
191
190
  productId: prod['id']
192
191
  };
193
192
  const sample = dataSet.dataItems.reduce((prev, next) => fillColumns(prev, next, dict), {});
194
- debug('sample', sample);
195
193
  partitionKeys = formatDate(partitionKeys, localDateTz);
196
194
  partitionKeys = replaceVariables(partitionKeys, Object.assign({}, sample));
197
195
  const dataKeys = fillDataKeys(dataSet === null || dataSet === void 0 ? void 0 : dataSet.dataKeySet, sample);
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-sample-mockup.js","sourceRoot":"","sources":["../../server/controllers/create-data-sample-mockup.ts"],"names":[],"mappings":"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","sourcesContent":["import moment from 'moment-timezone'\nimport { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { DataSample, DataSet, DataUseCase } from '@things-factory/dataset'\nimport { Product } from '@things-factory/product-base'\nimport { Operation } from '@things-factory/routing-base'\nimport { Domain } from '@things-factory/shell'\nimport { getWorkDateAndShift } from '@things-factory/work-shift'\n\nimport { DataSampleMockupInfo } from '../service/data-sample-mockup/data-sample-mockup-type'\n\nconst randomWords = require('random-words')\nconst debug = require('debug')('things-factory:reference-app:controller/create-data-sample-mockup')\n\nconst fillDataKeys = (dataKeySet, data) => {\n const keys = dataKeySet?.dataKeyItems || []\n return keys.reduce((sum, key, index) => {\n const value = data[key.dataKey]\n if (value != null) {\n sum[`key0${index + 1}`] = value instanceof Array ? value[0] : value\n }\n return sum\n }, {})\n}\n\n// parse variable javascript string pattern\nconst replaceVariables = (keys, dic) => {\n for (const k in keys) {\n const matches = keys[k].match(/\\$\\{\\w*\\}/g)\n matches &&\n matches.forEach(m => {\n keys[k] = keys[k].replace(m, dic[m.slice(2, -1)])\n })\n }\n return keys\n}\n\n// It is required UTC date for Partitioning File System like AWS S3 from Athena.\n// ex) %YYYY, %MM, %DD\nconst formatDate = (keys, _moment) => {\n for (const k in keys) {\n const matches = keys[k].match(/%\\w*/g)\n matches &&\n matches.forEach(m => {\n keys[k] = keys[k].replace(m, _moment.format(m.substr(1)))\n })\n }\n return keys\n}\n\n/**\n * Normal Distribution\n * https://stackoverflow.com/questions/25582882/javascript-math-random-normal-distribution-gaussian-bell-curve\n */\nfunction normal_dist(min, max, skew) {\n let u = 0,\n v = 0\n while (u === 0) u = Math.random() //Converting [0,1) to (0,1)\n while (v === 0) v = Math.random()\n let num = Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v)\n\n num = num / 10.0 + 0.5 // Translate to 0 -> 1\n if (num > 1 || num < 0) num = normal_dist(min, max, skew) // resample between 0 and 1 if out of range\n else {\n num = Math.pow(num, skew) // Skew\n num *= max - min // Stretch to fill range\n num += min // offset to min\n }\n return num\n}\n\nfunction randomIndex(max = 2) {\n return Math.floor(Math.random() * max)\n}\n\nfunction fillColumns(prev, next, dict) {\n let values = []\n try {\n const gap = 20\n const timeFormat = 'HH:mm'\n const dateFormat = 'YYYY-MM-DD'\n const atFormat = 'YYYY-MM-DD HH:mm:ss'\n const now = moment()\n const { type, spec, quota } = next\n const isValidSpec = spec && Object.keys(spec).length\n const arr = Array.from(Array(quota).keys())\n\n if (type == 'number') {\n if (isValidSpec) {\n /* generate values refer to spec info. */\n const {\n CCP: {\n criticalLimits: { minimum, maximum }\n }\n } = spec\n while (values.length < quota) {\n let value = 0\n if (typeof minimum === 'number' && typeof maximum === 'number') {\n value = Math.floor(normal_dist(minimum, maximum, 1))\n } else if (typeof minimum === 'number' && typeof maximum !== 'number') {\n const max = minimum + gap\n value = Math.floor(normal_dist(minimum, max, 1))\n } else if (typeof minimum !== 'number' && typeof maximum === 'number') {\n const min = maximum - gap\n value = Math.floor(normal_dist(min, maximum, 1))\n }\n values.push(value)\n }\n } else {\n /* random number */\n const p = Math.random()\n const q = () => randomIndex(10) + 1\n // fixed\n if (p > 0.33) {\n values = Array(quota).fill(q())\n } else if (p > 0.66) {\n /* or random */\n values = arr.map(i => q())\n } else {\n /* or incremental */\n values = arr.reduce((prev, i) => {\n prev.push(!!prev.length ? prev[0] + i : q())\n return prev\n }, [])\n }\n }\n } else if (type == 'select') {\n const options = next['options']['options']\n values = arr.map(i => options[randomIndex(options.length)]['value'])\n } else if (type == 'boolean') {\n values = arr.map(i => !!randomIndex())\n } else if (next['tag'].toLowerCase().indexOf('time') >= 0) {\n /* ex) startTime => 09:21 */\n arr.reduce(curr => {\n values.push(curr.format(timeFormat))\n curr.add(randomIndex(60), 'minutes')\n return curr\n }, now)\n } else if (next['tag'].indexOf('edAt') > 0) {\n /* ex) createdAt => '2022-06-15 09:21:30 */\n arr.reduce(curr => {\n values.push(curr.format(atFormat))\n curr.add(randomIndex(12), 'hours')\n return curr\n }, now)\n } else if (next['tag'].toLowerCase().indexOf('date') > 0) {\n /* ex) startDate => '2022-06-15 */\n arr.reduce(curr => {\n values.push(curr.format(dateFormat))\n curr.add(randomIndex(7), 'days')\n return curr\n }, now)\n } else if (dict.hasOwnProperty(next['tag'])) {\n values = Array(quota).fill(dict[next['tag']])\n } else {\n if (type == 'text') {\n values = randomWords(quota)\n }\n }\n } finally {\n prev[next['tag']] = values\n return prev\n }\n}\n\nasync function _generateMockupData(dataSources: any, tx: EntityManager) {\n const { user, domain, dataSet, spec, products, operations } = dataSources\n\n const collectedAt = new Date()\n\n const timezone = dataSet.timezone || domain.timezone || 'UTC'\n const format = 'YYYY-MM-DD'\n\n // workDate ex) 2022-04-04\n const { workDate, workShift } = await getWorkDateAndShift(domain, collectedAt, { timezone, format })\n\n // local time dataSet timezone or domain timezone or default 'UTC'\n\n // const collectedAt = dataSample.collectedAt || new Date()\n const localDateTz = moment(collectedAt).tz(timezone)\n const defaultPartitionKeys = {\n domain: domain.subdomain,\n datasetid: dataSet.id /* It should not be 'data_set_id' as column name duplicated for Glue */,\n date: localDateTz.format(format) /* local time date */,\n workdate: workDate /* working date */,\n workshift: workShift\n }\n\n var partitionKeys = {\n ...defaultPartitionKeys,\n ...dataSet.partitionKeys\n }\n\n // get product, operation as a map\n const oper = operations[Math.floor(Math.random() * operations.length)]\n const prod = products[Math.floor(Math.random() * products.length)]\n const dict = {\n operation: oper['name'],\n operationId: oper['id'],\n product: prod['name'],\n productId: prod['id']\n }\n\n const sample = dataSet.dataItems.reduce((prev, next) => fillColumns(prev, next, dict), {})\n debug('sample', sample)\n\n partitionKeys = formatDate(partitionKeys, localDateTz)\n partitionKeys = replaceVariables(partitionKeys, {\n ...sample\n })\n\n const dataKeys = fillDataKeys(dataSet?.dataKeySet, sample)\n\n const { ooc, oos, judgment } = DataUseCase.evaluate(dataSet, dataSet.dataItems, sample) || {}\n const result = await tx.getRepository(DataSample).save({\n name: dataSet.name,\n description: dataSet.description,\n useCase: dataSet.useCase,\n dataSet: dataSet,\n dataSetVersion: dataSet.version,\n data: sample,\n domain,\n partitionKeys,\n ...dataKeys,\n spec,\n ooc,\n oos,\n judgment,\n collectedAt,\n workDate,\n workShift,\n creator: user,\n updater: user\n })\n\n return true\n}\n\nexport async function generateMockupData(\n params: DataSampleMockupInfo,\n context: {\n state: {\n domain: Domain\n user: User\n tx: EntityManager\n }\n }\n): Promise<Boolean> {\n const { domain, user, tx } = context.state\n\n const dataSet: DataSet = await tx.getRepository(DataSet).findOne({\n where: { id: params.dataSetId },\n relations: ['dataKeySet']\n })\n\n const products = await tx.getRepository(Product).find({\n select: ['id', 'name', 'description'],\n where: {\n domain\n }\n })\n\n const operations = await tx.getRepository(Operation).find({\n select: ['id', 'name', 'description'],\n where: {\n domain\n }\n })\n\n const dataItems = dataSet.dataItems\n\n const spec = dataItems.reduce((spec, dataItem) => {\n spec[dataItem.tag] = {\n ...dataItem.spec,\n name: dataItem.name /* do we need ? */,\n hidden: dataItem.hidden\n }\n\n return spec\n }, {})\n\n const promises = Array(params.numSamples)\n .fill(0)\n .map(x => {\n return _generateMockupData({ domain, user, dataSet, products, operations, spec }, tx)\n })\n\n await Promise.all(promises)\n return true\n}\n"]}
1
+ {"version":3,"file":"create-data-sample-mockup.js","sourceRoot":"","sources":["../../server/controllers/create-data-sample-mockup.ts"],"names":[],"mappings":"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","sourcesContent":["import moment from 'moment-timezone'\nimport { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { DataSample, DataSet, DataUseCase } from '@things-factory/dataset'\nimport { Product } from '@things-factory/product-base'\nimport { Operation } from '@things-factory/routing-base'\nimport { Domain } from '@things-factory/shell'\nimport { getWorkDateAndShift } from '@things-factory/work-shift'\n\nimport { DataSampleMockupInfo } from '../service/data-sample-mockup/data-sample-mockup-type'\n\nconst randomWords = require('random-words')\n\nconst fillDataKeys = (dataKeySet, data) => {\n const keys = dataKeySet?.dataKeyItems || []\n return keys.reduce((sum, key, index) => {\n const value = data[key.dataKey]\n if (value != null) {\n sum[`key0${index + 1}`] = value instanceof Array ? value[0] : value\n }\n return sum\n }, {})\n}\n\n// parse variable javascript string pattern\nconst replaceVariables = (keys, dic) => {\n for (const k in keys) {\n const matches = keys[k].match(/\\$\\{\\w*\\}/g)\n matches &&\n matches.forEach(m => {\n keys[k] = keys[k].replace(m, dic[m.slice(2, -1)])\n })\n }\n return keys\n}\n\n// It is required UTC date for Partitioning File System like AWS S3 from Athena.\n// ex) %YYYY, %MM, %DD\nconst formatDate = (keys, _moment) => {\n for (const k in keys) {\n const matches = keys[k].match(/%\\w*/g)\n matches &&\n matches.forEach(m => {\n keys[k] = keys[k].replace(m, _moment.format(m.substr(1)))\n })\n }\n return keys\n}\n\n/**\n * Normal Distribution\n * https://stackoverflow.com/questions/25582882/javascript-math-random-normal-distribution-gaussian-bell-curve\n */\nfunction normal_dist(min, max, skew) {\n let u = 0,\n v = 0\n while (u === 0) u = Math.random() //Converting [0,1) to (0,1)\n while (v === 0) v = Math.random()\n let num = Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v)\n\n num = num / 10.0 + 0.5 // Translate to 0 -> 1\n if (num > 1 || num < 0) num = normal_dist(min, max, skew) // resample between 0 and 1 if out of range\n else {\n num = Math.pow(num, skew) // Skew\n num *= max - min // Stretch to fill range\n num += min // offset to min\n }\n return num\n}\n\nfunction randomIndex(max = 2) {\n return Math.floor(Math.random() * max)\n}\n\nfunction fillColumns(prev, next, dict) {\n let values = []\n try {\n const gap = 20\n const timeFormat = 'HH:mm'\n const dateFormat = 'YYYY-MM-DD'\n const atFormat = 'YYYY-MM-DD HH:mm:ss'\n const now = moment()\n const { type, spec, quota } = next\n const isValidSpec = spec && Object.keys(spec).length\n const arr = Array.from(Array(quota).keys())\n\n if (type == 'number') {\n if (isValidSpec) {\n /* generate values refer to spec info. */\n const {\n CCP: {\n criticalLimits: { minimum, maximum }\n }\n } = spec\n while (values.length < quota) {\n let value = 0\n if (typeof minimum === 'number' && typeof maximum === 'number') {\n value = Math.floor(normal_dist(minimum, maximum, 1))\n } else if (typeof minimum === 'number' && typeof maximum !== 'number') {\n const max = minimum + gap\n value = Math.floor(normal_dist(minimum, max, 1))\n } else if (typeof minimum !== 'number' && typeof maximum === 'number') {\n const min = maximum - gap\n value = Math.floor(normal_dist(min, maximum, 1))\n }\n values.push(value)\n }\n } else {\n /* random number */\n const p = Math.random()\n const q = () => randomIndex(10) + 1\n // fixed\n if (p > 0.33) {\n values = Array(quota).fill(q())\n } else if (p > 0.66) {\n /* or random */\n values = arr.map(i => q())\n } else {\n /* or incremental */\n values = arr.reduce((prev, i) => {\n prev.push(!!prev.length ? prev[0] + i : q())\n return prev\n }, [])\n }\n }\n } else if (type == 'select') {\n const options = next['options']['options']\n values = arr.map(i => options[randomIndex(options.length)]['value'])\n } else if (type == 'boolean') {\n values = arr.map(i => !!randomIndex())\n } else if (next['tag'].toLowerCase().indexOf('time') >= 0) {\n /* ex) startTime => 09:21 */\n arr.reduce(curr => {\n values.push(curr.format(timeFormat))\n curr.add(randomIndex(60), 'minutes')\n return curr\n }, now)\n } else if (next['tag'].indexOf('edAt') > 0) {\n /* ex) createdAt => '2022-06-15 09:21:30 */\n arr.reduce(curr => {\n values.push(curr.format(atFormat))\n curr.add(randomIndex(12), 'hours')\n return curr\n }, now)\n } else if (next['tag'].toLowerCase().indexOf('date') > 0) {\n /* ex) startDate => '2022-06-15 */\n arr.reduce(curr => {\n values.push(curr.format(dateFormat))\n curr.add(randomIndex(7), 'days')\n return curr\n }, now)\n } else if (dict.hasOwnProperty(next['tag'])) {\n values = Array(quota).fill(dict[next['tag']])\n } else {\n if (type == 'text') {\n values = randomWords(quota)\n }\n }\n } finally {\n prev[next['tag']] = values\n return prev\n }\n}\n\nasync function _generateMockupData(dataSources: any, tx: EntityManager) {\n const { user, domain, dataSet, spec, products, operations } = dataSources\n\n const collectedAt = new Date()\n\n const timezone = dataSet.timezone || domain.timezone || 'UTC'\n const format = 'YYYY-MM-DD'\n\n // workDate ex) 2022-04-04\n const { workDate, workShift } = await getWorkDateAndShift(domain, collectedAt, { timezone, format })\n\n // local time dataSet timezone or domain timezone or default 'UTC'\n\n // const collectedAt = dataSample.collectedAt || new Date()\n const localDateTz = moment(collectedAt).tz(timezone)\n const defaultPartitionKeys = {\n domain: domain.subdomain,\n datasetid: dataSet.id /* It should not be 'data_set_id' as column name duplicated for Glue */,\n date: localDateTz.format(format) /* local time date */,\n workdate: workDate /* working date */,\n workshift: workShift\n }\n\n var partitionKeys = {\n ...defaultPartitionKeys,\n ...dataSet.partitionKeys\n }\n\n // get product, operation as a map\n const oper = operations[Math.floor(Math.random() * operations.length)]\n const prod = products[Math.floor(Math.random() * products.length)]\n const dict = {\n operation: oper['name'],\n operationId: oper['id'],\n product: prod['name'],\n productId: prod['id']\n }\n\n const sample = dataSet.dataItems.reduce((prev, next) => fillColumns(prev, next, dict), {})\n\n partitionKeys = formatDate(partitionKeys, localDateTz)\n partitionKeys = replaceVariables(partitionKeys, {\n ...sample\n })\n\n const dataKeys = fillDataKeys(dataSet?.dataKeySet, sample)\n\n const { ooc, oos, judgment } = DataUseCase.evaluate(dataSet, dataSet.dataItems, sample) || {}\n const result = await tx.getRepository(DataSample).save({\n name: dataSet.name,\n description: dataSet.description,\n useCase: dataSet.useCase,\n dataSet: dataSet,\n dataSetVersion: dataSet.version,\n data: sample,\n domain,\n partitionKeys,\n ...dataKeys,\n spec,\n ooc,\n oos,\n judgment,\n collectedAt,\n workDate,\n workShift,\n creator: user,\n updater: user\n })\n\n return true\n}\n\nexport async function generateMockupData(\n params: DataSampleMockupInfo,\n context: {\n state: {\n domain: Domain\n user: User\n tx: EntityManager\n }\n }\n): Promise<Boolean> {\n const { domain, user, tx } = context.state\n\n const dataSet: DataSet = await tx.getRepository(DataSet).findOne({\n where: { id: params.dataSetId },\n relations: ['dataKeySet']\n })\n\n const products = await tx.getRepository(Product).find({\n select: ['id', 'name', 'description'],\n where: {\n domain\n }\n })\n\n const operations = await tx.getRepository(Operation).find({\n select: ['id', 'name', 'description'],\n where: {\n domain\n }\n })\n\n const dataItems = dataSet.dataItems\n\n const spec = dataItems.reduce((spec, dataItem) => {\n spec[dataItem.tag] = {\n ...dataItem.spec,\n name: dataItem.name /* do we need ? */,\n hidden: dataItem.hidden\n }\n\n return spec\n }, {})\n\n const promises = Array(params.numSamples)\n .fill(0)\n .map(x => {\n return _generateMockupData({ domain, user, dataSet, products, operations, spec }, tx)\n })\n\n await Promise.all(promises)\n return true\n}\n"]}
@@ -1,4 +1,3 @@
1
- const debug = require('debug')('things-factory:reference-app:routes');
2
1
  process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
3
2
  /*
4
3
  * can add global public routes to application (auth not required, tenancy not required)
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAA;AAErE,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;;;;OAKG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA","sourcesContent":["const debug = require('debug')('things-factory:reference-app:routes')\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\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})\n"]}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;;;;OAKG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF;;OAEG;AACL,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF;;OAEG;AACL,CAAC,CAAC,CAAA","sourcesContent":["process.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\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})\n"]}
@@ -6,7 +6,6 @@ const type_graphql_1 = require("type-graphql");
6
6
  const dataset_1 = require("@things-factory/dataset");
7
7
  const create_data_sample_mockup_1 = require("../../controllers/create-data-sample-mockup");
8
8
  const data_sample_mockup_type_1 = require("./data-sample-mockup-type");
9
- const debug = require('debug')('things-factory:dataset:data-sample:data-sample-mutation');
10
9
  let DataSampleMockupMutation = class DataSampleMockupMutation {
11
10
  async generateMockupData(params, context) {
12
11
  return await (0, create_data_sample_mockup_1.generateMockupData)(params, context);
@@ -1 +1 @@
1
- {"version":3,"file":"data-sample-mockup-mutation.js","sourceRoot":"","sources":["../../../server/service/data-sample-mockup/data-sample-mockup-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,qDAAoD;AAEpD,2FAAgF;AAChF,uEAAgE;AAEhE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,yDAAyD,CAAC,CAAA;AAGzF,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,KAAK,CAAC,kBAAkB,CAAgB,MAA4B,EAAS,OAAY;QACvF,OAAO,MAAM,IAAA,8CAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;CACF,CAAA;AAHC;IAHC,IAAA,wBAAS,EAAC,sFAAsF,CAAC;IACjG,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IACnD,mBAAA,IAAA,kBAAG,EAAC,QAAQ,CAAC,CAAA;IAAgC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAA5B,8CAAoB;;kEAEnE;AANU,wBAAwB;IADpC,IAAA,uBAAQ,EAAC,oBAAU,CAAC;GACR,wBAAwB,CAOpC;AAPY,4DAAwB","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { DataSample } from '@things-factory/dataset'\n\nimport { generateMockupData } from '../../controllers/create-data-sample-mockup'\nimport { DataSampleMockupInfo } from './data-sample-mockup-type'\n\nconst debug = require('debug')('things-factory:dataset:data-sample:data-sample-mutation')\n\n@Resolver(DataSample)\nexport class DataSampleMockupMutation {\n @Directive('@privilege(category: \"data-sample\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To generate data sample one' })\n async generateMockupData(@Arg('params') params: DataSampleMockupInfo, @Ctx() context: any): Promise<Boolean> {\n return await generateMockupData(params, context)\n }\n}\n"]}
1
+ {"version":3,"file":"data-sample-mockup-mutation.js","sourceRoot":"","sources":["../../../server/service/data-sample-mockup/data-sample-mockup-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,qDAAoD;AAEpD,2FAAgF;AAChF,uEAAgE;AAGhE,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,KAAK,CAAC,kBAAkB,CAAgB,MAA4B,EAAS,OAAY;QACvF,OAAO,MAAM,IAAA,8CAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;CACF,CAAA;AAHC;IAHC,IAAA,wBAAS,EAAC,sFAAsF,CAAC;IACjG,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IACnD,mBAAA,IAAA,kBAAG,EAAC,QAAQ,CAAC,CAAA;IAAgC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAA5B,8CAAoB;;kEAEnE;AANU,wBAAwB;IADpC,IAAA,uBAAQ,EAAC,oBAAU,CAAC;GACR,wBAAwB,CAOpC;AAPY,4DAAwB","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { DataSample } from '@things-factory/dataset'\n\nimport { generateMockupData } from '../../controllers/create-data-sample-mockup'\nimport { DataSampleMockupInfo } from './data-sample-mockup-type'\n\n@Resolver(DataSample)\nexport class DataSampleMockupMutation {\n @Directive('@privilege(category: \"data-sample\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To generate data sample one' })\n async generateMockupData(@Arg('params') params: DataSampleMockupInfo, @Ctx() context: any): Promise<Boolean> {\n return await generateMockupData(params, context)\n }\n}\n"]}
@@ -1 +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;AAG7C,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAE5B,KAAK,CAAC,eAAe,CACX,CAAC,EAET,KAAmB,EACZ,OAAY;QAEnB,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;iBACtB,CAAA;YACH,CAAC,CAAC,CAAA;YACF,MAAM,IAAA,mCAAiB,EAAC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,CAAA;SACrD;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAGD,KAAK,CAAC,mBAAmB,CAAS,CAAC,EAAc,GAAW,EAAS,OAAY;QAC/E,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;AAzCC;IADC,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;AAGD;IADC,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: any\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 }\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: any): 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
+ {"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;AAG7C,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAE5B,KAAK,CAAC,eAAe,CACX,CAAC,EAET,KAAmB,EACZ,OAAY;QAEnB,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;IAGD,KAAK,CAAC,mBAAmB,CAAS,CAAC,EAAc,GAAW,EAAS,OAAY;QAC/E,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;AAzCC;IADC,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;AAGD;IADC,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: any\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: any): 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"]}
@@ -8,7 +8,6 @@ const attachment_base_1 = require("@things-factory/attachment-base");
8
8
  const shell_1 = require("@things-factory/shell");
9
9
  const utils_1 = require("@things-factory/utils");
10
10
  const lambda_call_1 = require("./lambda-call");
11
- const debug = require('debug')('things-factory:reference-app');
12
11
  let ReferenceQuery = class ReferenceQuery {
13
12
  async ocrRequest(_, images, context) {
14
13
  var _a;
@@ -61,7 +60,7 @@ let ReferenceQuery = class ReferenceQuery {
61
60
  }
62
61
  };
63
62
  tslib_1.__decorate([
64
- (0, type_graphql_1.Query)(returns => shell_1.ScalarAny, { description: 'To reference of ocr request' }),
63
+ (0, type_graphql_1.Query)(returns => [shell_1.ScalarAny], { description: 'To reference of ocr request' }),
65
64
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
66
65
  tslib_1.__param(1, (0, type_graphql_1.Arg)('images', () => [GraphQLUpload_js_1.default])),
67
66
  tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
@@ -1 +1 @@
1
- {"version":3,"file":"reference-query.js","sourceRoot":"","sources":["../../../server/service/reference/reference-query.ts"],"names":[],"mappings":"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","sourcesContent":["import 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\nconst debug = require('debug')('things-factory:reference-app')\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: any\n ): Promise<ScalarAny> {\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 }\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: any): 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
+ {"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: any\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: any): 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"]}