@rytass/wms-module-graphql 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -0
  3. package/index.cjs.js +6279 -0
  4. package/index.d.ts +1 -0
  5. package/index.js +1 -0
  6. package/lib/dto/allocate-inventory-order-item.dto.d.ts +12 -0
  7. package/lib/dto/allocate-inventory-order-item.dto.js +36 -0
  8. package/lib/dto/allocate-inventory-order.dto.d.ts +9 -0
  9. package/lib/dto/allocate-inventory-order.dto.js +31 -0
  10. package/lib/dto/batch.dto.d.ts +8 -0
  11. package/lib/dto/batch.dto.js +26 -0
  12. package/lib/dto/hold-inventory-order-item.dto.d.ts +15 -0
  13. package/lib/dto/hold-inventory-order-item.dto.js +37 -0
  14. package/lib/dto/hold-inventory-order.dto.d.ts +13 -0
  15. package/lib/dto/hold-inventory-order.dto.js +47 -0
  16. package/lib/dto/index.d.ts +24 -0
  17. package/lib/dto/loader-type.dto.d.ts +12 -0
  18. package/lib/dto/loader-type.dto.js +46 -0
  19. package/lib/dto/loader-unit.dto.d.ts +7 -0
  20. package/lib/dto/loader-unit.dto.js +21 -0
  21. package/lib/dto/loader.dto.d.ts +17 -0
  22. package/lib/dto/loader.dto.js +71 -0
  23. package/lib/dto/location.dto.d.ts +10 -0
  24. package/lib/dto/location.dto.js +36 -0
  25. package/lib/dto/material-unit.dto.d.ts +12 -0
  26. package/lib/dto/material-unit.dto.js +46 -0
  27. package/lib/dto/material.dto.d.ts +10 -0
  28. package/lib/dto/material.dto.js +36 -0
  29. package/lib/dto/merge-batch-order.dto.d.ts +11 -0
  30. package/lib/dto/merge-batch-order.dto.js +50 -0
  31. package/lib/dto/pagination.dto.d.ts +9 -0
  32. package/lib/dto/pagination.dto.js +51 -0
  33. package/lib/dto/quality-inspection-order-item.dto.d.ts +10 -0
  34. package/lib/dto/quality-inspection-order-item.dto.js +50 -0
  35. package/lib/dto/quality-inspection-order.dto.d.ts +12 -0
  36. package/lib/dto/quality-inspection-order.dto.js +42 -0
  37. package/lib/dto/receive-inventory-order-item.dto.d.ts +18 -0
  38. package/lib/dto/receive-inventory-order-item.dto.js +60 -0
  39. package/lib/dto/receive-inventory-order.dto.d.ts +16 -0
  40. package/lib/dto/receive-inventory-order.dto.js +58 -0
  41. package/lib/dto/reclassify-inventory-order.dto.d.ts +12 -0
  42. package/lib/dto/reclassify-inventory-order.dto.js +55 -0
  43. package/lib/dto/sale-order.dto.d.ts +4 -0
  44. package/lib/dto/sale-order.dto.js +20 -0
  45. package/lib/dto/scrape-order-item.dto.d.ts +14 -0
  46. package/lib/dto/scrape-order-item.dto.js +56 -0
  47. package/lib/dto/scrape-order.dto.d.ts +11 -0
  48. package/lib/dto/scrape-order.dto.js +37 -0
  49. package/lib/dto/ship-inventory-order-item.dto.d.ts +14 -0
  50. package/lib/dto/ship-inventory-order-item.dto.js +56 -0
  51. package/lib/dto/ship-inventory-order-reference.dto.d.ts +12 -0
  52. package/lib/dto/ship-inventory-order-reference.dto.js +48 -0
  53. package/lib/dto/ship-inventory-order.dto.d.ts +16 -0
  54. package/lib/dto/ship-inventory-order.dto.js +58 -0
  55. package/lib/dto/split-batch-order.dto.d.ts +11 -0
  56. package/lib/dto/split-batch-order.dto.js +50 -0
  57. package/lib/dto/stock.dto.d.ts +42 -0
  58. package/lib/dto/stock.dto.js +138 -0
  59. package/lib/dto/transfer-customer-order-item.dto.d.ts +15 -0
  60. package/lib/dto/transfer-customer-order-item.dto.js +61 -0
  61. package/lib/dto/transfer-customer-order.dto.d.ts +11 -0
  62. package/lib/dto/transfer-customer-order.dto.js +37 -0
  63. package/lib/dto/transfer-order-item.dto.d.ts +15 -0
  64. package/lib/dto/transfer-order-item.dto.js +41 -0
  65. package/lib/dto/transfer-order.dto.d.ts +15 -0
  66. package/lib/dto/transfer-order.dto.js +57 -0
  67. package/lib/dto/transfer-vendor-order-item.dto.d.ts +15 -0
  68. package/lib/dto/transfer-vendor-order-item.dto.js +61 -0
  69. package/lib/dto/transfer-vendor-order.dto.d.ts +11 -0
  70. package/lib/dto/transfer-vendor-order.dto.js +37 -0
  71. package/lib/dto/unit.dto.d.ts +4 -0
  72. package/lib/dto/unit.dto.js +20 -0
  73. package/lib/dto/warehouse-map.dto.d.ts +39 -0
  74. package/lib/dto/warehouse-map.dto.js +165 -0
  75. package/lib/graphql.module.d.ts +6 -0
  76. package/lib/graphql.module.js +157 -0
  77. package/lib/helpers/dataloader.type.d.ts +12 -0
  78. package/lib/helpers/helper.module.d.ts +2 -0
  79. package/lib/helpers/helper.module.js +15 -0
  80. package/lib/helpers/index.d.ts +4 -0
  81. package/lib/helpers/loader.service.d.ts +56 -0
  82. package/lib/helpers/loader.service.js +168 -0
  83. package/lib/helpers/query-path.d.ts +1 -0
  84. package/lib/helpers/query-path.js +19 -0
  85. package/lib/inputs/cancel-ship-order.args.d.ts +4 -0
  86. package/lib/inputs/cancel-ship-order.args.js +20 -0
  87. package/lib/inputs/cancel-transfer-order.args.d.ts +4 -0
  88. package/lib/inputs/cancel-transfer-order.args.js +23 -0
  89. package/lib/inputs/create-allocate-inventory-order-item.args.d.ts +13 -0
  90. package/lib/inputs/create-allocate-inventory-order-item.args.js +50 -0
  91. package/lib/inputs/create-allocate-inventory-order.args.d.ts +11 -0
  92. package/lib/inputs/create-allocate-inventory-order.args.js +36 -0
  93. package/lib/inputs/create-hold-inventory-order-item.args.d.ts +11 -0
  94. package/lib/inputs/create-hold-inventory-order-item.args.js +40 -0
  95. package/lib/inputs/create-hold-inventory-order.args.d.ts +12 -0
  96. package/lib/inputs/create-hold-inventory-order.args.js +41 -0
  97. package/lib/inputs/create-loader-type.args.d.ts +10 -0
  98. package/lib/inputs/create-loader-type.args.js +35 -0
  99. package/lib/inputs/create-loader.args.d.ts +30 -0
  100. package/lib/inputs/create-loader.args.js +130 -0
  101. package/lib/inputs/create-location.args.d.ts +11 -0
  102. package/lib/inputs/create-location.args.js +50 -0
  103. package/lib/inputs/create-material-unit.args.d.ts +5 -0
  104. package/lib/inputs/create-material-unit.args.js +25 -0
  105. package/lib/inputs/create-material.args.d.ts +14 -0
  106. package/lib/inputs/create-material.args.js +51 -0
  107. package/lib/inputs/create-quality-inspection-order.args.d.ts +11 -0
  108. package/lib/inputs/create-quality-inspection-order.args.js +50 -0
  109. package/lib/inputs/create-receive-inventory-order-item.args.d.ts +17 -0
  110. package/lib/inputs/create-receive-inventory-order-item.args.js +70 -0
  111. package/lib/inputs/create-receive-inventory-order.args.d.ts +14 -0
  112. package/lib/inputs/create-receive-inventory-order.args.js +51 -0
  113. package/lib/inputs/create-ship-inventory-order-item.args.d.ts +12 -0
  114. package/lib/inputs/create-ship-inventory-order-item.args.js +45 -0
  115. package/lib/inputs/create-ship-inventory-order-reference.args.d.ts +16 -0
  116. package/lib/inputs/create-ship-inventory-order-reference.args.js +65 -0
  117. package/lib/inputs/create-ship-inventory-order.args.d.ts +16 -0
  118. package/lib/inputs/create-ship-inventory-order.args.js +57 -0
  119. package/lib/inputs/create-transfer-customer-order-item.args.d.ts +11 -0
  120. package/lib/inputs/create-transfer-customer-order-item.args.js +40 -0
  121. package/lib/inputs/create-transfer-customer-order.args.d.ts +14 -0
  122. package/lib/inputs/create-transfer-customer-order.args.js +51 -0
  123. package/lib/inputs/create-transfer-order-item.args.d.ts +11 -0
  124. package/lib/inputs/create-transfer-order-item.args.js +40 -0
  125. package/lib/inputs/create-transfer-order.args.d.ts +16 -0
  126. package/lib/inputs/create-transfer-order.args.js +61 -0
  127. package/lib/inputs/create-transfer-vendor-order-item.args.d.ts +11 -0
  128. package/lib/inputs/create-transfer-vendor-order-item.args.js +40 -0
  129. package/lib/inputs/create-transfer-vendor-order.args.d.ts +14 -0
  130. package/lib/inputs/create-transfer-vendor-order.args.js +51 -0
  131. package/lib/inputs/date-range.args.d.ts +4 -0
  132. package/lib/inputs/date-range.args.js +20 -0
  133. package/lib/inputs/deallocate-order.args.d.ts +5 -0
  134. package/lib/inputs/deallocate-order.args.js +25 -0
  135. package/lib/inputs/find-allocate-inventory-order.args.d.ts +10 -0
  136. package/lib/inputs/find-allocate-inventory-order.args.js +42 -0
  137. package/lib/inputs/find-batch.args.d.ts +5 -0
  138. package/lib/inputs/find-batch.args.js +21 -0
  139. package/lib/inputs/find-hold-inventory-order.args.d.ts +10 -0
  140. package/lib/inputs/find-hold-inventory-order.args.js +42 -0
  141. package/lib/inputs/find-loader-type.args.d.ts +8 -0
  142. package/lib/inputs/find-loader-type.args.js +32 -0
  143. package/lib/inputs/find-loader.args.d.ts +16 -0
  144. package/lib/inputs/find-loader.args.js +72 -0
  145. package/lib/inputs/find-location.args.d.ts +6 -0
  146. package/lib/inputs/find-location.args.js +26 -0
  147. package/lib/inputs/find-material.args.d.ts +5 -0
  148. package/lib/inputs/find-material.args.js +21 -0
  149. package/lib/inputs/find-receive-inventory-order.args.d.ts +16 -0
  150. package/lib/inputs/find-receive-inventory-order.args.js +71 -0
  151. package/lib/inputs/find-sale-order.args.d.ts +4 -0
  152. package/lib/inputs/find-sale-order.args.js +16 -0
  153. package/lib/inputs/find-ship-inventory-order.args.d.ts +16 -0
  154. package/lib/inputs/find-ship-inventory-order.args.js +71 -0
  155. package/lib/inputs/find-stock.args.d.ts +15 -0
  156. package/lib/inputs/find-stock.args.js +67 -0
  157. package/lib/inputs/find-transfer-order.args.d.ts +18 -0
  158. package/lib/inputs/find-transfer-order.args.js +82 -0
  159. package/lib/inputs/index.d.ts +0 -0
  160. package/lib/inputs/merge-batch.args.d.ts +9 -0
  161. package/lib/inputs/merge-batch.args.js +40 -0
  162. package/lib/inputs/pagination.args.d.ts +4 -0
  163. package/lib/inputs/pagination.args.js +20 -0
  164. package/lib/inputs/receive-order.args.d.ts +8 -0
  165. package/lib/inputs/receive-order.args.js +40 -0
  166. package/lib/inputs/reclassify-inventory-order.args.d.ts +9 -0
  167. package/lib/inputs/reclassify-inventory-order.args.js +40 -0
  168. package/lib/inputs/release-order.args.d.ts +5 -0
  169. package/lib/inputs/release-order.args.js +25 -0
  170. package/lib/inputs/return-transfer-customer-order.args.d.ts +7 -0
  171. package/lib/inputs/return-transfer-customer-order.args.js +35 -0
  172. package/lib/inputs/return-transfer-vendor-order.args.d.ts +7 -0
  173. package/lib/inputs/return-transfer-vendor-order.args.js +35 -0
  174. package/lib/inputs/scrape-order.args.d.ts +8 -0
  175. package/lib/inputs/scrape-order.args.js +35 -0
  176. package/lib/inputs/ship-order.args.d.ts +4 -0
  177. package/lib/inputs/ship-order.args.js +20 -0
  178. package/lib/inputs/split-batch.args.d.ts +9 -0
  179. package/lib/inputs/split-batch.args.js +40 -0
  180. package/lib/inputs/transfer-order.args.d.ts +4 -0
  181. package/lib/inputs/transfer-order.args.js +20 -0
  182. package/lib/inputs/update-warehouse-map.args.d.ts +28 -0
  183. package/lib/inputs/update-warehouse-map.args.js +121 -0
  184. package/lib/mutations/allocate-inventory-order.mutation.d.ts +12 -0
  185. package/lib/mutations/allocate-inventory-order.mutation.js +81 -0
  186. package/lib/mutations/hold-inventory-order.mutation.d.ts +12 -0
  187. package/lib/mutations/hold-inventory-order.mutation.js +81 -0
  188. package/lib/mutations/loader.mutation.d.ts +13 -0
  189. package/lib/mutations/loader.mutation.js +105 -0
  190. package/lib/mutations/location.mutation.d.ts +8 -0
  191. package/lib/mutations/location.mutation.js +39 -0
  192. package/lib/mutations/material.mutation.d.ts +9 -0
  193. package/lib/mutations/material.mutation.js +62 -0
  194. package/lib/mutations/merge-batch.mutation.d.ts +9 -0
  195. package/lib/mutations/merge-batch.mutation.js +44 -0
  196. package/lib/mutations/quality-inspection-order.mutation.d.ts +9 -0
  197. package/lib/mutations/quality-inspection-order.mutation.js +44 -0
  198. package/lib/mutations/receive-inventory-order.mutation.d.ts +13 -0
  199. package/lib/mutations/receive-inventory-order.mutation.js +92 -0
  200. package/lib/mutations/reclassify-inventory-order.mutation.d.ts +9 -0
  201. package/lib/mutations/reclassify-inventory-order.mutation.js +45 -0
  202. package/lib/mutations/scrape-order.mutation.d.ts +9 -0
  203. package/lib/mutations/scrape-order.mutation.js +38 -0
  204. package/lib/mutations/ship-inventory-order.mutation.d.ts +14 -0
  205. package/lib/mutations/ship-inventory-order.mutation.js +107 -0
  206. package/lib/mutations/split-batch.mutation.d.ts +9 -0
  207. package/lib/mutations/split-batch.mutation.js +38 -0
  208. package/lib/mutations/transfer-customer-order.mutation.d.ts +12 -0
  209. package/lib/mutations/transfer-customer-order.mutation.js +81 -0
  210. package/lib/mutations/transfer-order.mutation.d.ts +14 -0
  211. package/lib/mutations/transfer-order.mutation.js +84 -0
  212. package/lib/mutations/transfer-vendor-order.mutation.d.ts +12 -0
  213. package/lib/mutations/transfer-vendor-order.mutation.js +81 -0
  214. package/lib/mutations/warehouse-map.mutation.d.ts +10 -0
  215. package/lib/mutations/warehouse-map.mutation.js +54 -0
  216. package/lib/queries/allocate-inventory-order.query.d.ts +8 -0
  217. package/lib/queries/allocate-inventory-order.query.js +30 -0
  218. package/lib/queries/batch.query.d.ts +8 -0
  219. package/lib/queries/batch.query.js +33 -0
  220. package/lib/queries/hold-inventory-order.query.d.ts +8 -0
  221. package/lib/queries/hold-inventory-order.query.js +30 -0
  222. package/lib/queries/loader.query.d.ts +17 -0
  223. package/lib/queries/loader.query.js +157 -0
  224. package/lib/queries/location.query.d.ts +9 -0
  225. package/lib/queries/location.query.js +47 -0
  226. package/lib/queries/material.query.d.ts +9 -0
  227. package/lib/queries/material.query.js +71 -0
  228. package/lib/queries/recieve-inventory-order.query.d.ts +9 -0
  229. package/lib/queries/recieve-inventory-order.query.js +69 -0
  230. package/lib/queries/sale-order.query.d.ts +8 -0
  231. package/lib/queries/sale-order.query.js +53 -0
  232. package/lib/queries/ship-inventory-order.query.d.ts +9 -0
  233. package/lib/queries/ship-inventory-order.query.js +69 -0
  234. package/lib/queries/stock.query.d.ts +12 -0
  235. package/lib/queries/stock.query.js +109 -0
  236. package/lib/queries/transfer-order.query.d.ts +9 -0
  237. package/lib/queries/transfer-order.query.js +42 -0
  238. package/lib/queries/unit.query.d.ts +7 -0
  239. package/lib/queries/unit.query.js +27 -0
  240. package/lib/queries/warehouse-map.query.d.ts +7 -0
  241. package/lib/queries/warehouse-map.query.js +29 -0
  242. package/lib/resolvers/aggregated-stock.resolver.d.ts +14 -0
  243. package/lib/resolvers/aggregated-stock.resolver.js +112 -0
  244. package/lib/resolvers/allocate-inventory-order.resolver.d.ts +6 -0
  245. package/lib/resolvers/allocate-inventory-order.resolver.js +27 -0
  246. package/lib/resolvers/change-log.resolver.d.ts +10 -0
  247. package/lib/resolvers/change-log.resolver.js +83 -0
  248. package/lib/resolvers/hold-inventory-order.resolver.d.ts +7 -0
  249. package/lib/resolvers/hold-inventory-order.resolver.js +27 -0
  250. package/lib/resolvers/loader-type.resolver.d.ts +5 -0
  251. package/lib/resolvers/loader-type.resolver.js +50 -0
  252. package/lib/resolvers/loader.resolver.d.ts +9 -0
  253. package/lib/resolvers/loader.resolver.js +86 -0
  254. package/lib/resolvers/location.resolver.d.ts +10 -0
  255. package/lib/resolvers/location.resolver.js +55 -0
  256. package/lib/resolvers/material.resolver.d.ts +11 -0
  257. package/lib/resolvers/material.resolver.js +84 -0
  258. package/lib/resolvers/merge-batch.resolver.d.ts +6 -0
  259. package/lib/resolvers/merge-batch.resolver.js +26 -0
  260. package/lib/resolvers/receive-inventory-order.resolver.d.ts +15 -0
  261. package/lib/resolvers/receive-inventory-order.resolver.js +140 -0
  262. package/lib/resolvers/ship-inventory-order.resolver.d.ts +25 -0
  263. package/lib/resolvers/ship-inventory-order.resolver.js +273 -0
  264. package/lib/resolvers/split-batch.resolver.d.ts +6 -0
  265. package/lib/resolvers/split-batch.resolver.js +26 -0
  266. package/lib/resolvers/stock.resolver.d.ts +10 -0
  267. package/lib/resolvers/stock.resolver.js +83 -0
  268. package/lib/resolvers/transfer-customer-order.resolver.d.ts +6 -0
  269. package/lib/resolvers/transfer-customer-order.resolver.js +27 -0
  270. package/lib/resolvers/transfer-order.resolver.d.ts +21 -0
  271. package/lib/resolvers/transfer-order.resolver.js +218 -0
  272. package/lib/resolvers/transfer-vendor-order.resolver.d.ts +6 -0
  273. package/lib/resolvers/transfer-vendor-order.resolver.js +27 -0
  274. package/lib/resolvers/warehouse-map.resolver.d.ts +6 -0
  275. package/lib/resolvers/warehouse-map.resolver.js +29 -0
  276. package/package.json +54 -0
@@ -0,0 +1,168 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { Injectable } from '@nestjs/common';
3
+ import { createHash } from 'crypto';
4
+ import _ from 'lodash';
5
+ import { LRUCache } from 'lru-cache';
6
+ import { DataSource, In } from 'typeorm';
7
+ import DataLoader from 'dataloader';
8
+
9
+ let LoaderService = class LoaderService {
10
+ dataSource;
11
+ cache;
12
+ constructor(dataSource) {
13
+ this.dataSource = dataSource;
14
+ this.cache = new LRUCache({
15
+ max: 10000,
16
+ ttlAutopurge: true,
17
+ ttl: 500,
18
+ });
19
+ }
20
+ /**
21
+ * create hash from `__entity` in loader option, and return option with `__hash` set with hash value.
22
+ * @param LoaderOptions
23
+ * @returns LoaderOptions
24
+ */
25
+ useHash(options) {
26
+ const algorithm = createHash('sha1');
27
+ algorithm.update(options.__entity.toString());
28
+ algorithm.update(_(Object.keys(options.__from)).sort().join(''));
29
+ if (options.__seed)
30
+ algorithm.update(options.__seed);
31
+ if (options.__conditions)
32
+ algorithm.update(options.__conditions.toString());
33
+ return { ...options, __hash: algorithm.digest('hex') };
34
+ }
35
+ /**
36
+ * generate index by queried data primary keys, which is defined in loader option `__from`
37
+ * @param object
38
+ * @param LoaderOptions
39
+ * @returns Map<string, data>
40
+ */
41
+ useIndex(data, { __hash, __from }) {
42
+ const fields = _(Object.keys(__from)).sort();
43
+ return `${__hash}_${fields.map((field) => data[field]).join('_')}`;
44
+ }
45
+ /**
46
+ * query data by collecting primary keys from options with same `__entity`
47
+ * @param LoaderOptions[]
48
+ * @returns object[]
49
+ */
50
+ async core(options) {
51
+ const [{ __entity, __from, __conditions }] = options;
52
+ const repo = this.dataSource.getRepository(__entity);
53
+ let qb = repo.createQueryBuilder('entity');
54
+ const primaryKeys = Object.keys(__from);
55
+ if (primaryKeys.length > 1)
56
+ qb.setFindOptions({ where: options.map(({ __from }) => __from) });
57
+ else {
58
+ const [primaryKey] = primaryKeys;
59
+ qb.setFindOptions({
60
+ where: {
61
+ [primaryKey]: In(options.map(({ __from }) => __from[primaryKey])),
62
+ },
63
+ });
64
+ }
65
+ if (__conditions)
66
+ qb = __conditions(qb);
67
+ return qb.getMany();
68
+ }
69
+ /**
70
+ * batch single entity to load function calls.
71
+ * @returns object
72
+ */
73
+ batchEntity() {
74
+ return new DataLoader(async (inputs) => {
75
+ const options = inputs.map((input) => this.useHash(input));
76
+ const dataMap = new Map();
77
+ const processMap = _(options)
78
+ .groupBy((x) => x.__hash)
79
+ .value();
80
+ await Promise.all(Object.keys(processMap).map(async (entityHash) => {
81
+ const options = processMap[entityHash];
82
+ const [option] = options;
83
+ const entities = await this.core(options);
84
+ entities.map((entity) => dataMap.set(this.useIndex(entity, option), entity));
85
+ }));
86
+ return options.map((option) => dataMap.get(this.useIndex(option.__from, option)));
87
+ }, {
88
+ batchScheduleFn: (callback) => setTimeout(callback, 50),
89
+ cacheKeyFn: (option) => this.useIndex(option.__from, this.useHash(option)),
90
+ cacheMap: this.cache,
91
+ });
92
+ }
93
+ /**
94
+ * batch many entities to load function calls.
95
+ * @returns object[]
96
+ */
97
+ batchEntities() {
98
+ return new DataLoader(async (inputs) => {
99
+ const options = inputs.map((input) => this.useHash(input));
100
+ const dataMap = new Map();
101
+ const processMap = _(options)
102
+ .groupBy((x) => x.__hash)
103
+ .value();
104
+ await Promise.all(Object.keys(processMap).map(async (entityHash) => {
105
+ const options = processMap[entityHash];
106
+ const [option] = options;
107
+ const entities = await this.core(options);
108
+ entities.map((entity) => {
109
+ const index = this.useIndex(entity, option);
110
+ const entities = dataMap.get(index) ?? [];
111
+ entities.push(entity);
112
+ dataMap.set(index, entities);
113
+ });
114
+ }));
115
+ return options.map((option) => {
116
+ const result = dataMap.get(this.useIndex(option.__from, option)) ?? [];
117
+ return option.__pagination
118
+ ? result.slice(option.__pagination.offset, option.__pagination.offset + option.__pagination.limit)
119
+ : result;
120
+ });
121
+ }, {
122
+ batchScheduleFn: (callback) => setTimeout(callback, 100),
123
+ cacheKeyFn: (option) => this.useIndex(option.__from, this.useHash(option)),
124
+ cacheMap: this.cache,
125
+ });
126
+ }
127
+ batchEntitiesWithPagination() {
128
+ return new DataLoader(async (inputs) => {
129
+ const options = inputs.map((input) => this.useHash(input));
130
+ const dataMap = new Map();
131
+ const processMap = _(options)
132
+ .groupBy((x) => x.__hash)
133
+ .value();
134
+ await Promise.all(Object.keys(processMap).map(async (entityHash) => {
135
+ const options = processMap[entityHash];
136
+ const [option] = options;
137
+ const entities = await this.core(options);
138
+ entities.map((entity) => {
139
+ const index = this.useIndex(entity, option);
140
+ const entities = dataMap.get(index) ?? [];
141
+ entities.push(entity);
142
+ dataMap.set(index, entities);
143
+ });
144
+ }));
145
+ return options.map((option) => {
146
+ const result = dataMap.get(this.useIndex(option.__from, option));
147
+ if (!result)
148
+ return { items: [], total: 0 };
149
+ return {
150
+ items: option.__pagination
151
+ ? result.slice(option.__pagination.offset, option.__pagination.offset + option.__pagination.limit)
152
+ : result,
153
+ total: result.length,
154
+ };
155
+ });
156
+ }, {
157
+ batchScheduleFn: (callback) => setTimeout(callback, 100),
158
+ cacheKeyFn: (option) => this.useIndex(option.__from, this.useHash(option)),
159
+ cacheMap: this.cache,
160
+ });
161
+ }
162
+ };
163
+ LoaderService = __decorate([
164
+ Injectable(),
165
+ __metadata("design:paramtypes", [DataSource])
166
+ ], LoaderService);
167
+
168
+ export { LoaderService };
@@ -0,0 +1 @@
1
+ export declare const QueryPath: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -0,0 +1,19 @@
1
+ import { createParamDecorator } from '@nestjs/common';
2
+ import { GqlExecutionContext } from '@nestjs/graphql';
3
+ import _ from 'lodash';
4
+
5
+ createParamDecorator((data, context) => {
6
+ if (context.getType().toString() === 'graphql') {
7
+ const ctx = GqlExecutionContext.create(context).getInfo();
8
+ const extractPath = ({ prev, key }, paths) => {
9
+ if (key && _.isString(key))
10
+ paths.unshift(key);
11
+ if (prev)
12
+ return extractPath(prev, paths);
13
+ return paths;
14
+ };
15
+ const paths = extractPath(ctx.path, []);
16
+ return paths.join('/');
17
+ }
18
+ return null;
19
+ });
@@ -0,0 +1,4 @@
1
+ export declare class CancelShipOrderArgs {
2
+ itemId: string;
3
+ quantity?: number;
4
+ }
@@ -0,0 +1,20 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { Field, ID, Int, InputType } from '@nestjs/graphql';
3
+
4
+ let CancelShipOrderArgs = class CancelShipOrderArgs {
5
+ itemId;
6
+ quantity;
7
+ };
8
+ __decorate([
9
+ Field(() => ID),
10
+ __metadata("design:type", String)
11
+ ], CancelShipOrderArgs.prototype, "itemId", void 0);
12
+ __decorate([
13
+ Field(() => Int, { nullable: true }),
14
+ __metadata("design:type", Number)
15
+ ], CancelShipOrderArgs.prototype, "quantity", void 0);
16
+ CancelShipOrderArgs = __decorate([
17
+ InputType()
18
+ ], CancelShipOrderArgs);
19
+
20
+ export { CancelShipOrderArgs };
@@ -0,0 +1,4 @@
1
+ export declare class CancelTransferOrderArgs {
2
+ itemId: string;
3
+ quantity?: number;
4
+ }
@@ -0,0 +1,23 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { Field, ID, Int, InputType } from '@nestjs/graphql';
3
+
4
+ let CancelTransferOrderArgs = class CancelTransferOrderArgs {
5
+ itemId;
6
+ quantity;
7
+ };
8
+ __decorate([
9
+ Field(() => ID, { description: 'The ID of transfer order item' }),
10
+ __metadata("design:type", String)
11
+ ], CancelTransferOrderArgs.prototype, "itemId", void 0);
12
+ __decorate([
13
+ Field(() => Int, {
14
+ nullable: true,
15
+ description: 'The quantity to cancel. If not provided, cancels all remaining cancellable quantity.',
16
+ }),
17
+ __metadata("design:type", Number)
18
+ ], CancelTransferOrderArgs.prototype, "quantity", void 0);
19
+ CancelTransferOrderArgs = __decorate([
20
+ InputType()
21
+ ], CancelTransferOrderArgs);
22
+
23
+ export { CancelTransferOrderArgs };
@@ -0,0 +1,13 @@
1
+ export declare class CreateAllocateInventoryOrderItemArgs {
2
+ aggregatedKey: string;
3
+ unitId?: string;
4
+ targetAllocatedQuantity: number;
5
+ saleId: string;
6
+ saleSerialId: string;
7
+ }
8
+ declare const UpdateAllocateInventoryOrderItemArgs_base: import("@nestjs/common").Type<Partial<CreateAllocateInventoryOrderItemArgs>>;
9
+ export declare class UpdateAllocateInventoryOrderItemArgs extends UpdateAllocateInventoryOrderItemArgs_base {
10
+ id?: string;
11
+ removedAt?: Date;
12
+ }
13
+ export {};
@@ -0,0 +1,50 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { Field, ID, InputType, PartialType } from '@nestjs/graphql';
3
+
4
+ let CreateAllocateInventoryOrderItemArgs = class CreateAllocateInventoryOrderItemArgs {
5
+ aggregatedKey;
6
+ unitId;
7
+ targetAllocatedQuantity;
8
+ saleId;
9
+ saleSerialId;
10
+ };
11
+ __decorate([
12
+ Field(() => ID),
13
+ __metadata("design:type", String)
14
+ ], CreateAllocateInventoryOrderItemArgs.prototype, "aggregatedKey", void 0);
15
+ __decorate([
16
+ Field(() => ID, { nullable: true }),
17
+ __metadata("design:type", String)
18
+ ], CreateAllocateInventoryOrderItemArgs.prototype, "unitId", void 0);
19
+ __decorate([
20
+ Field(() => Number),
21
+ __metadata("design:type", Number)
22
+ ], CreateAllocateInventoryOrderItemArgs.prototype, "targetAllocatedQuantity", void 0);
23
+ __decorate([
24
+ Field(() => String),
25
+ __metadata("design:type", String)
26
+ ], CreateAllocateInventoryOrderItemArgs.prototype, "saleId", void 0);
27
+ __decorate([
28
+ Field(() => String),
29
+ __metadata("design:type", String)
30
+ ], CreateAllocateInventoryOrderItemArgs.prototype, "saleSerialId", void 0);
31
+ CreateAllocateInventoryOrderItemArgs = __decorate([
32
+ InputType()
33
+ ], CreateAllocateInventoryOrderItemArgs);
34
+ let UpdateAllocateInventoryOrderItemArgs = class UpdateAllocateInventoryOrderItemArgs extends PartialType(CreateAllocateInventoryOrderItemArgs) {
35
+ id;
36
+ removedAt;
37
+ };
38
+ __decorate([
39
+ Field(() => ID, { nullable: true }),
40
+ __metadata("design:type", String)
41
+ ], UpdateAllocateInventoryOrderItemArgs.prototype, "id", void 0);
42
+ __decorate([
43
+ Field(() => Date, { nullable: true }),
44
+ __metadata("design:type", Date)
45
+ ], UpdateAllocateInventoryOrderItemArgs.prototype, "removedAt", void 0);
46
+ UpdateAllocateInventoryOrderItemArgs = __decorate([
47
+ InputType()
48
+ ], UpdateAllocateInventoryOrderItemArgs);
49
+
50
+ export { CreateAllocateInventoryOrderItemArgs, UpdateAllocateInventoryOrderItemArgs };
@@ -0,0 +1,11 @@
1
+ import { CreateAllocateInventoryOrderItemArgs, UpdateAllocateInventoryOrderItemArgs } from './create-allocate-inventory-order-item.args';
2
+ export declare class CreateAllocateInventoryOrderArgs {
3
+ items: CreateAllocateInventoryOrderItemArgs[];
4
+ }
5
+ declare const UpdateAllocateInventoryOrderArgs_base: import("@nestjs/common").Type<Partial<Omit<CreateAllocateInventoryOrderArgs, "items">>>;
6
+ export declare class UpdateAllocateInventoryOrderArgs extends UpdateAllocateInventoryOrderArgs_base {
7
+ id: string;
8
+ removedAt?: Date;
9
+ items?: UpdateAllocateInventoryOrderItemArgs[];
10
+ }
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { Field, ArgsType, PartialType, OmitType } from '@nestjs/graphql';
3
+ import { CreateAllocateInventoryOrderItemArgs, UpdateAllocateInventoryOrderItemArgs } from './create-allocate-inventory-order-item.args.js';
4
+
5
+ let CreateAllocateInventoryOrderArgs = class CreateAllocateInventoryOrderArgs {
6
+ items;
7
+ };
8
+ __decorate([
9
+ Field(() => [CreateAllocateInventoryOrderItemArgs]),
10
+ __metadata("design:type", Array)
11
+ ], CreateAllocateInventoryOrderArgs.prototype, "items", void 0);
12
+ CreateAllocateInventoryOrderArgs = __decorate([
13
+ ArgsType()
14
+ ], CreateAllocateInventoryOrderArgs);
15
+ let UpdateAllocateInventoryOrderArgs = class UpdateAllocateInventoryOrderArgs extends PartialType(OmitType(CreateAllocateInventoryOrderArgs, ['items'])) {
16
+ id;
17
+ removedAt;
18
+ items;
19
+ };
20
+ __decorate([
21
+ Field(() => String),
22
+ __metadata("design:type", String)
23
+ ], UpdateAllocateInventoryOrderArgs.prototype, "id", void 0);
24
+ __decorate([
25
+ Field(() => Date, { nullable: true }),
26
+ __metadata("design:type", Date)
27
+ ], UpdateAllocateInventoryOrderArgs.prototype, "removedAt", void 0);
28
+ __decorate([
29
+ Field(() => [UpdateAllocateInventoryOrderItemArgs], { nullable: true }),
30
+ __metadata("design:type", Array)
31
+ ], UpdateAllocateInventoryOrderArgs.prototype, "items", void 0);
32
+ UpdateAllocateInventoryOrderArgs = __decorate([
33
+ ArgsType()
34
+ ], UpdateAllocateInventoryOrderArgs);
35
+
36
+ export { CreateAllocateInventoryOrderArgs, UpdateAllocateInventoryOrderArgs };
@@ -0,0 +1,11 @@
1
+ export declare class CreateHoldInventoryOrderItemArgs {
2
+ aggregatedKey: string;
3
+ unitId?: string;
4
+ targetHeldQuantity: number;
5
+ }
6
+ declare const UpdateHoldInventoryOrderItemArgs_base: import("@nestjs/common").Type<Partial<CreateHoldInventoryOrderItemArgs>>;
7
+ export declare class UpdateHoldInventoryOrderItemArgs extends UpdateHoldInventoryOrderItemArgs_base {
8
+ id?: string;
9
+ removedAt?: Date;
10
+ }
11
+ export {};
@@ -0,0 +1,40 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { Field, ID, InputType, PartialType } from '@nestjs/graphql';
3
+
4
+ let CreateHoldInventoryOrderItemArgs = class CreateHoldInventoryOrderItemArgs {
5
+ aggregatedKey;
6
+ unitId;
7
+ targetHeldQuantity;
8
+ };
9
+ __decorate([
10
+ Field(() => ID),
11
+ __metadata("design:type", String)
12
+ ], CreateHoldInventoryOrderItemArgs.prototype, "aggregatedKey", void 0);
13
+ __decorate([
14
+ Field(() => ID, { nullable: true }),
15
+ __metadata("design:type", String)
16
+ ], CreateHoldInventoryOrderItemArgs.prototype, "unitId", void 0);
17
+ __decorate([
18
+ Field(() => Number),
19
+ __metadata("design:type", Number)
20
+ ], CreateHoldInventoryOrderItemArgs.prototype, "targetHeldQuantity", void 0);
21
+ CreateHoldInventoryOrderItemArgs = __decorate([
22
+ InputType()
23
+ ], CreateHoldInventoryOrderItemArgs);
24
+ let UpdateHoldInventoryOrderItemArgs = class UpdateHoldInventoryOrderItemArgs extends PartialType(CreateHoldInventoryOrderItemArgs) {
25
+ id;
26
+ removedAt;
27
+ };
28
+ __decorate([
29
+ Field(() => ID, { nullable: true }),
30
+ __metadata("design:type", String)
31
+ ], UpdateHoldInventoryOrderItemArgs.prototype, "id", void 0);
32
+ __decorate([
33
+ Field(() => Date, { nullable: true }),
34
+ __metadata("design:type", Date)
35
+ ], UpdateHoldInventoryOrderItemArgs.prototype, "removedAt", void 0);
36
+ UpdateHoldInventoryOrderItemArgs = __decorate([
37
+ InputType()
38
+ ], UpdateHoldInventoryOrderItemArgs);
39
+
40
+ export { CreateHoldInventoryOrderItemArgs, UpdateHoldInventoryOrderItemArgs };
@@ -0,0 +1,12 @@
1
+ import { CreateHoldInventoryOrderItemArgs, UpdateHoldInventoryOrderItemArgs } from './create-hold-inventory-order-item.args';
2
+ export declare class CreateHoldInventoryOrderArgs {
3
+ createdBy?: string;
4
+ items: CreateHoldInventoryOrderItemArgs[];
5
+ }
6
+ declare const UpdateHoldInventoryOrderArgs_base: import("@nestjs/common").Type<Partial<Omit<CreateHoldInventoryOrderArgs, "items">>>;
7
+ export declare class UpdateHoldInventoryOrderArgs extends UpdateHoldInventoryOrderArgs_base {
8
+ id: string;
9
+ removedAt?: Date;
10
+ items?: UpdateHoldInventoryOrderItemArgs[];
11
+ }
12
+ export {};
@@ -0,0 +1,41 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { Field, ArgsType, PartialType, OmitType } from '@nestjs/graphql';
3
+ import { CreateHoldInventoryOrderItemArgs, UpdateHoldInventoryOrderItemArgs } from './create-hold-inventory-order-item.args.js';
4
+
5
+ let CreateHoldInventoryOrderArgs = class CreateHoldInventoryOrderArgs {
6
+ createdBy;
7
+ items;
8
+ };
9
+ __decorate([
10
+ Field(() => String, { nullable: true }),
11
+ __metadata("design:type", String)
12
+ ], CreateHoldInventoryOrderArgs.prototype, "createdBy", void 0);
13
+ __decorate([
14
+ Field(() => [CreateHoldInventoryOrderItemArgs]),
15
+ __metadata("design:type", Array)
16
+ ], CreateHoldInventoryOrderArgs.prototype, "items", void 0);
17
+ CreateHoldInventoryOrderArgs = __decorate([
18
+ ArgsType()
19
+ ], CreateHoldInventoryOrderArgs);
20
+ let UpdateHoldInventoryOrderArgs = class UpdateHoldInventoryOrderArgs extends PartialType(OmitType(CreateHoldInventoryOrderArgs, ['items'])) {
21
+ id;
22
+ removedAt;
23
+ items;
24
+ };
25
+ __decorate([
26
+ Field(() => String),
27
+ __metadata("design:type", String)
28
+ ], UpdateHoldInventoryOrderArgs.prototype, "id", void 0);
29
+ __decorate([
30
+ Field(() => Date, { nullable: true }),
31
+ __metadata("design:type", Date)
32
+ ], UpdateHoldInventoryOrderArgs.prototype, "removedAt", void 0);
33
+ __decorate([
34
+ Field(() => [UpdateHoldInventoryOrderItemArgs], { nullable: true }),
35
+ __metadata("design:type", Array)
36
+ ], UpdateHoldInventoryOrderArgs.prototype, "items", void 0);
37
+ UpdateHoldInventoryOrderArgs = __decorate([
38
+ ArgsType()
39
+ ], UpdateHoldInventoryOrderArgs);
40
+
41
+ export { CreateHoldInventoryOrderArgs, UpdateHoldInventoryOrderArgs };
@@ -0,0 +1,10 @@
1
+ export declare class CreateLoaderTypeArgs {
2
+ description: string;
3
+ key: string;
4
+ }
5
+ declare const UpdateLoaderTypeArgs_base: import("@nestjs/common").Type<Partial<Omit<CreateLoaderTypeArgs, "key">>>;
6
+ export declare class UpdateLoaderTypeArgs extends UpdateLoaderTypeArgs_base {
7
+ id: string;
8
+ isActive?: boolean;
9
+ }
10
+ export {};
@@ -0,0 +1,35 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { Field, ArgsType, PartialType, OmitType, ID } from '@nestjs/graphql';
3
+
4
+ let CreateLoaderTypeArgs = class CreateLoaderTypeArgs {
5
+ description;
6
+ key;
7
+ };
8
+ __decorate([
9
+ Field(() => String),
10
+ __metadata("design:type", String)
11
+ ], CreateLoaderTypeArgs.prototype, "description", void 0);
12
+ __decorate([
13
+ Field(() => String),
14
+ __metadata("design:type", String)
15
+ ], CreateLoaderTypeArgs.prototype, "key", void 0);
16
+ CreateLoaderTypeArgs = __decorate([
17
+ ArgsType()
18
+ ], CreateLoaderTypeArgs);
19
+ let UpdateLoaderTypeArgs = class UpdateLoaderTypeArgs extends PartialType(OmitType(CreateLoaderTypeArgs, ['key'])) {
20
+ id;
21
+ isActive;
22
+ };
23
+ __decorate([
24
+ Field(() => ID),
25
+ __metadata("design:type", String)
26
+ ], UpdateLoaderTypeArgs.prototype, "id", void 0);
27
+ __decorate([
28
+ Field(() => Boolean, { nullable: true }),
29
+ __metadata("design:type", Boolean)
30
+ ], UpdateLoaderTypeArgs.prototype, "isActive", void 0);
31
+ UpdateLoaderTypeArgs = __decorate([
32
+ ArgsType()
33
+ ], UpdateLoaderTypeArgs);
34
+
35
+ export { CreateLoaderTypeArgs, UpdateLoaderTypeArgs };
@@ -0,0 +1,30 @@
1
+ export declare class CreateLoaderArgs {
2
+ typeId: string;
3
+ locationId: string;
4
+ quantity: number;
5
+ length?: number;
6
+ width?: number;
7
+ height?: number;
8
+ sizeUnit?: string;
9
+ volume?: number;
10
+ volumeUnit?: string;
11
+ note?: string;
12
+ }
13
+ declare const UpdateLoaderArgs_base: import("@nestjs/common").Type<Partial<Omit<CreateLoaderArgs, "locationId" | "typeId">>>;
14
+ export declare class UpdateLoaderArgs extends UpdateLoaderArgs_base {
15
+ id: string;
16
+ isActive?: boolean;
17
+ }
18
+ export declare class CreateLoadersArgs {
19
+ typeKey: string;
20
+ locationId: string;
21
+ quantity: number;
22
+ length?: number;
23
+ width?: number;
24
+ height?: number;
25
+ sizeUnit?: string;
26
+ volume?: number;
27
+ volumeUnit?: string;
28
+ note?: string;
29
+ }
30
+ export {};