medusa-plugin-tracing 0.1.1

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 (73) hide show
  1. package/.medusa/server/medusa-config.d.ts +1 -0
  2. package/.medusa/server/medusa-config.js +23 -0
  3. package/.medusa/server/src/admin/index.js +6576 -0
  4. package/.medusa/server/src/admin/index.mjs +6574 -0
  5. package/.medusa/server/src/api/admin/invalidation-reasons/[id]/route.d.ts +5 -0
  6. package/.medusa/server/src/api/admin/invalidation-reasons/[id]/route.js +34 -0
  7. package/.medusa/server/src/api/admin/invalidation-reasons/route.d.ts +5 -0
  8. package/.medusa/server/src/api/admin/invalidation-reasons/route.js +37 -0
  9. package/.medusa/server/src/api/admin/serial-numbers/[id]/route.d.ts +5 -0
  10. package/.medusa/server/src/api/admin/serial-numbers/[id]/route.js +34 -0
  11. package/.medusa/server/src/api/admin/serial-numbers/route.d.ts +5 -0
  12. package/.medusa/server/src/api/admin/serial-numbers/route.js +40 -0
  13. package/.medusa/server/src/api/admin/stock-lots/[id]/route.d.ts +5 -0
  14. package/.medusa/server/src/api/admin/stock-lots/[id]/route.js +39 -0
  15. package/.medusa/server/src/api/admin/stock-lots/[id]/serial-numbers/route.d.ts +2 -0
  16. package/.medusa/server/src/api/admin/stock-lots/[id]/serial-numbers/route.js +21 -0
  17. package/.medusa/server/src/api/admin/stock-lots/disable/route.d.ts +3 -0
  18. package/.medusa/server/src/api/admin/stock-lots/disable/route.js +16 -0
  19. package/.medusa/server/src/api/admin/stock-lots/enable/route.d.ts +3 -0
  20. package/.medusa/server/src/api/admin/stock-lots/enable/route.js +16 -0
  21. package/.medusa/server/src/api/admin/stock-lots/route.d.ts +5 -0
  22. package/.medusa/server/src/api/admin/stock-lots/route.js +43 -0
  23. package/.medusa/server/src/api/middlewares.d.ts +2 -0
  24. package/.medusa/server/src/api/middlewares.js +149 -0
  25. package/.medusa/server/src/api/validators.d.ts +316 -0
  26. package/.medusa/server/src/api/validators.js +128 -0
  27. package/.medusa/server/src/links/inventory-item-stock-lot.d.ts +2 -0
  28. package/.medusa/server/src/links/inventory-item-stock-lot.js +18 -0
  29. package/.medusa/server/src/links/order-serial-number.d.ts +2 -0
  30. package/.medusa/server/src/links/order-serial-number.js +18 -0
  31. package/.medusa/server/src/links/serial-number-order.d.ts +2 -0
  32. package/.medusa/server/src/links/serial-number-order.js +15 -0
  33. package/.medusa/server/src/links/stock-location-stock-lot.d.ts +2 -0
  34. package/.medusa/server/src/links/stock-location-stock-lot.js +18 -0
  35. package/.medusa/server/src/links/stock-lot-inventory-item.d.ts +2 -0
  36. package/.medusa/server/src/links/stock-lot-inventory-item.js +15 -0
  37. package/.medusa/server/src/links/stock-lot-stock-location.d.ts +2 -0
  38. package/.medusa/server/src/links/stock-lot-stock-location.js +15 -0
  39. package/.medusa/server/src/modules/tracing/index.d.ts +50 -0
  40. package/.medusa/server/src/modules/tracing/index.js +25 -0
  41. package/.medusa/server/src/modules/tracing/migrations/Migration20260409171919.d.ts +5 -0
  42. package/.medusa/server/src/modules/tracing/migrations/Migration20260409171919.js +29 -0
  43. package/.medusa/server/src/modules/tracing/models/invalidation-reason.d.ts +25 -0
  44. package/.medusa/server/src/modules/tracing/models/invalidation-reason.js +14 -0
  45. package/.medusa/server/src/modules/tracing/models/serial-number.d.ts +30 -0
  46. package/.medusa/server/src/modules/tracing/models/serial-number.js +23 -0
  47. package/.medusa/server/src/modules/tracing/models/stock-lot-activity.d.ts +1 -0
  48. package/.medusa/server/src/modules/tracing/models/stock-lot-activity.js +3 -0
  49. package/.medusa/server/src/modules/tracing/models/stock-lot.d.ts +30 -0
  50. package/.medusa/server/src/modules/tracing/models/stock-lot.js +20 -0
  51. package/.medusa/server/src/modules/tracing/service.d.ts +109 -0
  52. package/.medusa/server/src/modules/tracing/service.js +52 -0
  53. package/.medusa/server/src/subscribers/fulfillment-created.d.ts +8 -0
  54. package/.medusa/server/src/subscribers/fulfillment-created.js +52 -0
  55. package/.medusa/server/src/workflows/tracing/adjust-stock-order.d.ts +7 -0
  56. package/.medusa/server/src/workflows/tracing/adjust-stock-order.js +47 -0
  57. package/.medusa/server/src/workflows/tracing/create-stock-lot.d.ts +45 -0
  58. package/.medusa/server/src/workflows/tracing/create-stock-lot.js +34 -0
  59. package/.medusa/server/src/workflows/tracing/delete-stock-lot.d.ts +38 -0
  60. package/.medusa/server/src/workflows/tracing/delete-stock-lot.js +36 -0
  61. package/.medusa/server/src/workflows/tracing/steps/assign-from-stock-lot.d.ts +1 -0
  62. package/.medusa/server/src/workflows/tracing/steps/assign-from-stock-lot.js +48 -0
  63. package/.medusa/server/src/workflows/tracing/steps/assign-serial-number.d.ts +1 -0
  64. package/.medusa/server/src/workflows/tracing/steps/assign-serial-number.js +3 -0
  65. package/.medusa/server/src/workflows/tracing/steps/invalidate-serial-number.d.ts +1 -0
  66. package/.medusa/server/src/workflows/tracing/steps/invalidate-serial-number.js +3 -0
  67. package/.medusa/server/src/workflows/tracing/steps/return-to-stock-lot.d.ts +1 -0
  68. package/.medusa/server/src/workflows/tracing/steps/return-to-stock-lot.js +3 -0
  69. package/.medusa/server/src/workflows/tracing/update-stock-lot.d.ts +46 -0
  70. package/.medusa/server/src/workflows/tracing/update-stock-lot.js +42 -0
  71. package/LICENSE +21 -0
  72. package/README.md +52 -0
  73. package/package.json +89 -0
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminGetInvalidationReasonType, AdminUpdateInvalidationReasonType } from '../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetInvalidationReasonType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateInvalidationReasonType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const tracing_1 = require("../../../../modules/tracing");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { id } = req.params;
9
+ const { data: [invalidationReason] } = await query.graph({
10
+ entity: 'invalidation_reason',
11
+ fields: req.queryConfig.fields,
12
+ filters: { id }
13
+ }, { throwIfKeyNotFound: true });
14
+ res.json({ invalidation_reason: invalidationReason });
15
+ };
16
+ exports.GET = GET;
17
+ const POST = async (req, res) => {
18
+ const { id } = req.params;
19
+ const tracingService = req.scope.resolve(tracing_1.TRACING_MODULE);
20
+ const invalidationReason = await tracingService.updateInvalidationReasons({
21
+ id,
22
+ ...req.validatedBody
23
+ });
24
+ res.json({ invalidation_reason: invalidationReason });
25
+ };
26
+ exports.POST = POST;
27
+ const DELETE = async (req, res) => {
28
+ const { id } = req.params;
29
+ const tracingService = req.scope.resolve(tracing_1.TRACING_MODULE);
30
+ await tracingService.deleteInvalidationReasons([id]);
31
+ res.json({ deleted: [id] });
32
+ };
33
+ exports.DELETE = DELETE;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2ludmFsaWRhdGlvbi1yZWFzb25zL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXFFO0FBS3JFLHlEQUE0RDtBQUdyRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3ZCLEdBQStELEVBQy9ELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixNQUFNLEVBQ0wsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFDMUIsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQ3BCO1FBQ0MsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRTtLQUNmLEVBQ0QsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQTtJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUE7QUFDdEQsQ0FBQyxDQUFBO0FBbkJZLFFBQUEsR0FBRyxPQW1CZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBa0UsRUFDbEUsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0sY0FBYyxHQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUE7SUFDeEUsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQztRQUN6RSxFQUFFO1FBQ0YsR0FBRyxHQUFHLENBQUMsYUFBYTtLQUNwQixDQUFDLENBQUE7SUFDRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0FBQ3RELENBQUMsQ0FBQTtBQVhZLFFBQUEsSUFBSSxRQVdoQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxHQUErQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNwRixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGNBQWMsR0FBbUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsd0JBQWMsQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sY0FBYyxDQUFDLHlCQUF5QixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNwRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQzVCLENBQUMsQ0FBQTtBQUxZLFFBQUEsTUFBTSxVQUtsQiJ9
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateInvalidationReasonType, AdminDeleteInvalidationReasonsType, AdminGetInvalidationReasonsType } from '../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetInvalidationReasonsType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateInvalidationReasonType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<AdminDeleteInvalidationReasonsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const tracing_1 = require("../../../modules/tracing");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { q } = req.validatedQuery;
9
+ const { data: invalidationReasons, metadata } = await query.graph({
10
+ entity: 'invalidation_reason',
11
+ ...req.queryConfig,
12
+ filters: {
13
+ ...(q ? { value: { $ilike: `%${q}%` } } : {})
14
+ }
15
+ });
16
+ res.json({
17
+ invalidation_reasons: invalidationReasons,
18
+ count: metadata?.count,
19
+ limit: metadata?.take,
20
+ offset: metadata?.skip
21
+ });
22
+ };
23
+ exports.GET = GET;
24
+ const POST = async (req, res) => {
25
+ const tracingService = req.scope.resolve(tracing_1.TRACING_MODULE);
26
+ const invalidationReason = await tracingService.createInvalidationReasons(req.validatedBody);
27
+ res.json({ invalidation_reason: invalidationReason });
28
+ };
29
+ exports.POST = POST;
30
+ const DELETE = async (req, res) => {
31
+ const { ids } = req.validatedBody;
32
+ const tracingService = req.scope.resolve(tracing_1.TRACING_MODULE);
33
+ await tracingService.deleteInvalidationReasons(ids);
34
+ res.json({ deleted: ids });
35
+ };
36
+ exports.DELETE = DELETE;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2ludmFsaWRhdGlvbi1yZWFzb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFxRTtBQU1yRSxzREFBeUQ7QUFHbEQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN2QixHQUFnRSxFQUNoRSxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUVqQixDQUFBO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakUsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1FBQ2xCLE9BQU8sRUFBRTtZQUNSLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0M7S0FDRCxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1Isb0JBQW9CLEVBQUUsbUJBQW1CO1FBQ3pDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSztRQUN0QixLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUk7UUFDckIsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJO0tBQ3RCLENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQXhCWSxRQUFBLEdBQUcsT0F3QmY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQWtFLEVBQ2xFLEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLGNBQWMsR0FBbUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsd0JBQWMsQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxjQUFjLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUE7QUFDdEQsQ0FBQyxDQUFBO0FBUFksUUFBQSxJQUFJLFFBT2hCO0FBRU0sTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUMxQixHQUFtRSxFQUNuRSxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFDakMsTUFBTSxjQUFjLEdBQW1CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHdCQUFjLENBQUMsQ0FBQTtJQUN4RSxNQUFNLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNuRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFDM0IsQ0FBQyxDQUFBO0FBUlksUUFBQSxNQUFNLFVBUWxCIn0=
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminGetSerialNumberType, AdminUpdateSerialNumberType } from '../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetSerialNumberType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateSerialNumberType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const tracing_1 = require("../../../../modules/tracing");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { id } = req.params;
9
+ const { data: [serialNumber] } = await query.graph({
10
+ entity: 'serial_number',
11
+ fields: req.queryConfig.fields,
12
+ filters: { id }
13
+ }, { throwIfKeyNotFound: true });
14
+ res.json({ serial_number: serialNumber });
15
+ };
16
+ exports.GET = GET;
17
+ const POST = async (req, res) => {
18
+ const { id } = req.params;
19
+ const tracingService = req.scope.resolve(tracing_1.TRACING_MODULE);
20
+ const serialNumber = await tracingService.updateSerialNumbers({
21
+ id,
22
+ ...req.validatedBody
23
+ });
24
+ res.json({ serial_number: serialNumber });
25
+ };
26
+ exports.POST = POST;
27
+ const DELETE = async (req, res) => {
28
+ const { id } = req.params;
29
+ const tracingService = req.scope.resolve(tracing_1.TRACING_MODULE);
30
+ await tracingService.deleteSerialNumbers([id]);
31
+ res.json({ deleted: [id] });
32
+ };
33
+ exports.DELETE = DELETE;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3NlcmlhbC1udW1iZXJzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXFFO0FBRXJFLHlEQUE0RDtBQUdyRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3ZCLEdBQXlELEVBQ3pELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixNQUFNLEVBQ0wsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQ3BCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUNwQjtRQUNDLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFO0tBQ2YsRUFDRCxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFBO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0FBQzFDLENBQUMsQ0FBQTtBQW5CWSxRQUFBLEdBQUcsT0FtQmY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQTRELEVBQzVELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGNBQWMsR0FBbUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsd0JBQWMsQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sWUFBWSxHQUFHLE1BQU0sY0FBYyxDQUFDLG1CQUFtQixDQUFDO1FBQzdELEVBQUU7UUFDRixHQUFHLEdBQUcsQ0FBQyxhQUFhO0tBQ3BCLENBQUMsQ0FBQTtJQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtBQUMxQyxDQUFDLENBQUE7QUFYWSxRQUFBLElBQUksUUFXaEI7QUFFTSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsR0FBK0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDcEYsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDekIsTUFBTSxjQUFjLEdBQW1CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHdCQUFjLENBQUMsQ0FBQTtJQUN4RSxNQUFNLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDOUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUM1QixDQUFDLENBQUE7QUFMWSxRQUFBLE1BQU0sVUFLbEIifQ==
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminGetSerialNumbersType, AdminCreateSerialNumberType, AdminDeleteSerialNumbersType } from '../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetSerialNumbersType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateSerialNumberType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<AdminDeleteSerialNumbersType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const tracing_1 = require("../../../modules/tracing");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { stock_lot_id, order_id, invalidated, q } = req.validatedQuery;
9
+ const { data: serialNumbers, metadata } = await query.graph({
10
+ entity: 'serial_number',
11
+ ...req.queryConfig,
12
+ filters: {
13
+ ...(stock_lot_id ? { stock_lot_id } : {}),
14
+ ...(order_id ? { order_id } : {}),
15
+ ...(invalidated != null ? { invalidated } : {}),
16
+ ...(q ? { value: { $ilike: `%${q}%` } } : {})
17
+ }
18
+ });
19
+ res.json({
20
+ serial_numbers: serialNumbers,
21
+ count: metadata?.count,
22
+ limit: metadata?.take,
23
+ offset: metadata?.skip
24
+ });
25
+ };
26
+ exports.GET = GET;
27
+ const POST = async (req, res) => {
28
+ const tracingService = req.scope.resolve(tracing_1.TRACING_MODULE);
29
+ const serialNumber = await tracingService.createSerialNumbers(req.validatedBody);
30
+ res.json({ serial_number: serialNumber });
31
+ };
32
+ exports.POST = POST;
33
+ const DELETE = async (req, res) => {
34
+ const { ids } = req.validatedBody;
35
+ const tracingService = req.scope.resolve(tracing_1.TRACING_MODULE);
36
+ await tracingService.deleteSerialNumbers(ids);
37
+ res.json({ deleted: ids });
38
+ };
39
+ exports.DELETE = DELETE;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3NlcmlhbC1udW1iZXJzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFxRTtBQU1yRSxzREFBeUQ7QUFHbEQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN2QixHQUEwRCxFQUMxRCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUE7SUFFckUsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzNELE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLEdBQUcsR0FBRyxDQUFDLFdBQVc7UUFDbEIsT0FBTyxFQUFFO1lBQ1IsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0M7S0FDRCxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1IsY0FBYyxFQUFFLGFBQWE7UUFDN0IsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLO1FBQ3RCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSTtRQUNyQixNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUk7S0FDdEIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBekJZLFFBQUEsR0FBRyxPQXlCZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBNEQsRUFDNUQsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sY0FBYyxHQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUE7SUFDeEUsTUFBTSxZQUFZLEdBQUcsTUFBTSxjQUFjLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ2hGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtBQUMxQyxDQUFDLENBQUE7QUFQWSxRQUFBLElBQUksUUFPaEI7QUFFTSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQzFCLEdBQTZELEVBQzdELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUNqQyxNQUFNLGNBQWMsR0FBbUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsd0JBQWMsQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sY0FBYyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzdDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtBQUMzQixDQUFDLENBQUE7QUFSWSxRQUFBLE1BQU0sVUFRbEIifQ==
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminGetStockLotType, AdminUpdateStockLotType } from '../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetStockLotType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateStockLotType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const update_stock_lot_1 = require("../../../../workflows/tracing/update-stock-lot");
6
+ const delete_stock_lot_1 = require("../../../../workflows/tracing/delete-stock-lot");
7
+ const GET = async (req, res) => {
8
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
9
+ const { id } = req.params;
10
+ const { data: [stockLot] } = await query.graph({
11
+ entity: 'stock_lot',
12
+ fields: req.queryConfig.fields,
13
+ filters: { id }
14
+ }, { throwIfKeyNotFound: true });
15
+ res.json({ stock_lot: stockLot });
16
+ };
17
+ exports.GET = GET;
18
+ const POST = async (req, res) => {
19
+ const { id } = req.params;
20
+ const { result } = await (0, update_stock_lot_1.updateStockLotWorkflow)(req.scope).run({
21
+ input: {
22
+ id,
23
+ ...req.validatedBody
24
+ }
25
+ });
26
+ res.json({ stock_lot: result });
27
+ };
28
+ exports.POST = POST;
29
+ const DELETE = async (req, res) => {
30
+ const { id } = req.params;
31
+ const { result } = await (0, delete_stock_lot_1.deleteStockLotWorkflow)(req.scope).run({
32
+ input: {
33
+ id
34
+ }
35
+ });
36
+ res.json({ stock_lot: result });
37
+ };
38
+ exports.DELETE = DELETE;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N0b2NrLWxvdHMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFFckUscUZBQXVGO0FBQ3ZGLHFGQUF1RjtBQUVoRixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3ZCLEdBQXFELEVBQ3JELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixNQUFNLEVBQ0wsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQ2hCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUNwQjtRQUNDLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFO0tBQ2YsRUFDRCxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFBO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0FBQ2xDLENBQUMsQ0FBQTtBQW5CWSxRQUFBLEdBQUcsT0FtQmY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQXdELEVBQ3hELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLHlDQUFzQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDOUQsS0FBSyxFQUFFO1lBQ04sRUFBRTtZQUNGLEdBQUcsR0FBRyxDQUFDLGFBQWE7U0FDcEI7S0FDRCxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7QUFDaEMsQ0FBQyxDQUFBO0FBZFksUUFBQSxJQUFJLFFBY2hCO0FBRU0sTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLEdBQStCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BGLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEseUNBQXNCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM5RCxLQUFLLEVBQUU7WUFDTixFQUFFO1NBQ0Y7S0FDRCxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7QUFDaEMsQ0FBQyxDQUFBO0FBVlksUUFBQSxNQUFNLFVBVWxCIn0=
@@ -0,0 +1,2 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ export declare const GET: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const GET = async (req, res) => {
6
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
7
+ const { id } = req.params;
8
+ const { data: serialNumbers, metadata } = await query.graph({
9
+ entity: 'serial_number',
10
+ ...req.queryConfig,
11
+ filters: { stock_lot: { id } }
12
+ });
13
+ res.json({
14
+ serial_numbers: serialNumbers,
15
+ count: metadata?.count,
16
+ limit: metadata?.take,
17
+ offset: metadata?.skip
18
+ });
19
+ };
20
+ exports.GET = GET;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N0b2NrLWxvdHMvW2lkXS9zZXJpYWwtbnVtYmVycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFFOUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQStCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ2pGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMzRCxNQUFNLEVBQUUsZUFBZTtRQUN2QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1FBQ2xCLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0tBQzlCLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUixjQUFjLEVBQUUsYUFBYTtRQUM3QixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUs7UUFDdEIsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUN0QixDQUFDLENBQUE7QUFDSCxDQUFDLENBQUE7QUFoQlksUUFBQSxHQUFHLE9BZ0JmIn0=
@@ -0,0 +1,3 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminDeleteStockLotsType } from '../../../validators';
3
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminDeleteStockLotsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const update_stock_lot_1 = require("../../../../workflows/tracing/update-stock-lot");
5
+ const POST = async (req, res) => {
6
+ const { ids } = req.validatedBody;
7
+ await Promise.all(ids.map(id => (0, update_stock_lot_1.updateStockLotWorkflow)(req.scope).run({
8
+ input: {
9
+ id,
10
+ enabled: false
11
+ }
12
+ })));
13
+ res.json({ disabled: ids });
14
+ };
15
+ exports.POST = POST;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N0b2NrLWxvdHMvZGlzYWJsZS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxRkFBdUY7QUFFaEYsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN4QixHQUF5RCxFQUN6RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFDakMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNoQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQ1osSUFBQSx5Q0FBc0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3JDLEtBQUssRUFBRTtZQUNOLEVBQUU7WUFDRixPQUFPLEVBQUUsS0FBSztTQUNkO0tBQ0QsQ0FBQyxDQUNGLENBQ0QsQ0FBQTtJQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtBQUM1QixDQUFDLENBQUE7QUFoQlksUUFBQSxJQUFJLFFBZ0JoQiJ9
@@ -0,0 +1,3 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminDeleteStockLotsType } from '../../../validators';
3
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminDeleteStockLotsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const update_stock_lot_1 = require("../../../../workflows/tracing/update-stock-lot");
5
+ const POST = async (req, res) => {
6
+ const { ids } = req.validatedBody;
7
+ await Promise.all(ids.map(id => (0, update_stock_lot_1.updateStockLotWorkflow)(req.scope).run({
8
+ input: {
9
+ id,
10
+ enabled: true
11
+ }
12
+ })));
13
+ res.json({ enabled: ids });
14
+ };
15
+ exports.POST = POST;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N0b2NrLWxvdHMvZW5hYmxlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFGQUF1RjtBQUVoRixNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQXlELEVBQ3pELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUNqQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FDWixJQUFBLHlDQUFzQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDckMsS0FBSyxFQUFFO1lBQ04sRUFBRTtZQUNGLE9BQU8sRUFBRSxJQUFJO1NBQ2I7S0FDRCxDQUFDLENBQ0YsQ0FDRCxDQUFBO0lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0FBQzNCLENBQUMsQ0FBQTtBQWhCWSxRQUFBLElBQUksUUFnQmhCIn0=
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateStockLotType, AdminDeleteStockLotsType, AdminGetStockLotsType } from '../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetStockLotsType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateStockLotType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<AdminDeleteStockLotsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const create_stock_lot_1 = require("../../../workflows/tracing/create-stock-lot");
6
+ const delete_stock_lot_1 = require("../../../workflows/tracing/delete-stock-lot");
7
+ const GET = async (req, res) => {
8
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
9
+ const { inventory_item_id, location_id, enabled, q } = req.validatedQuery;
10
+ const { data: stockLots, metadata } = await query.graph({
11
+ entity: 'stock_lot',
12
+ ...req.queryConfig,
13
+ filters: {
14
+ ...(inventory_item_id ? { inventory_item_id } : {}),
15
+ ...(location_id ? { location_id } : {}),
16
+ ...(enabled !== undefined ? { enabled } : {}),
17
+ ...(q ? { lot_number: { $ilike: `%${q}%` } } : {}) // search by lot_number
18
+ }
19
+ });
20
+ res.json({
21
+ stock_lots: stockLots,
22
+ count: metadata?.count,
23
+ limit: metadata?.take,
24
+ offset: metadata?.skip
25
+ });
26
+ };
27
+ exports.GET = GET;
28
+ const POST = async (req, res) => {
29
+ const { result } = await (0, create_stock_lot_1.createStockLotWorkflow)(req.scope).run({
30
+ input: req.validatedBody
31
+ });
32
+ res.json({ stock_lot: result });
33
+ };
34
+ exports.POST = POST;
35
+ const DELETE = async (req, res) => {
36
+ const { ids } = req.validatedBody;
37
+ await Promise.all(ids.map(id => (0, delete_stock_lot_1.deleteStockLotWorkflow)(req.scope).run({
38
+ input: { id }
39
+ })));
40
+ res.json({ deleted: ids });
41
+ };
42
+ exports.DELETE = DELETE;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N0b2NrLWxvdHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXFFO0FBTXJFLGtGQUFvRjtBQUNwRixrRkFBb0Y7QUFFN0UsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN2QixHQUFzRCxFQUN0RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBSzFELENBQUE7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDdkQsTUFBTSxFQUFFLFdBQVc7UUFDbkIsR0FBRyxHQUFHLENBQUMsV0FBVztRQUNsQixPQUFPLEVBQUU7WUFDUixHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25ELEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxHQUFHLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyx1QkFBdUI7U0FDMUU7S0FDRCxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1IsVUFBVSxFQUFFLFNBQVM7UUFDckIsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLO1FBQ3RCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSTtRQUNyQixNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUk7S0FDdEIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBOUJZLFFBQUEsR0FBRyxPQThCZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBd0QsRUFDeEQsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEseUNBQXNCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM5RCxLQUFLLEVBQUUsR0FBRyxDQUFDLGFBQWE7S0FDeEIsQ0FBQyxDQUFBO0lBQ0YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0FBQ2hDLENBQUMsQ0FBQTtBQVJZLFFBQUEsSUFBSSxRQVFoQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDMUIsR0FBeUQsRUFDekQsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFBO0lBQ2pDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDaEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUNaLElBQUEseUNBQXNCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNyQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7S0FDYixDQUFDLENBQ0YsQ0FDRCxDQUFBO0lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0FBQzNCLENBQUMsQ0FBQTtBQWJZLFFBQUEsTUFBTSxVQWFsQiJ9
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/http").MiddlewaresConfig;
2
+ export default _default;
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const http_1 = require("@medusajs/framework/http");
4
+ const validators_1 = require("@medusajs/medusa/api/utils/validators");
5
+ const validators_2 = require("./validators");
6
+ exports.default = (0, http_1.defineMiddlewares)([
7
+ {
8
+ matcher: '/admin/stock-lots',
9
+ method: ['GET'],
10
+ middlewares: [
11
+ (0, http_1.validateAndTransformQuery)(validators_2.AdminGetStockLots, {
12
+ defaults: [
13
+ 'id', 'inventory_item_id', 'stock_location_id', 'lot_number',
14
+ 'description', 'enabled', 'stocked_quantity', 'created_at', 'updated_at'
15
+ ],
16
+ isList: true,
17
+ defaultLimit: 20
18
+ })
19
+ ]
20
+ },
21
+ {
22
+ matcher: '/admin/stock-lots',
23
+ method: ['POST'],
24
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminCreateStockLot)]
25
+ },
26
+ {
27
+ matcher: '/admin/stock-lots',
28
+ method: ['DELETE'],
29
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminDeleteStockLots)]
30
+ },
31
+ {
32
+ matcher: '/admin/stock-lots/enable',
33
+ method: ['POST'],
34
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminDeleteStockLots)]
35
+ },
36
+ {
37
+ matcher: '/admin/stock-lots/disable',
38
+ method: ['POST'],
39
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminDeleteStockLots)]
40
+ },
41
+ {
42
+ matcher: '/admin/stock-lots/:id',
43
+ method: ['GET'],
44
+ middlewares: [
45
+ (0, http_1.validateAndTransformQuery)(validators_2.AdminGetStockLot, {
46
+ defaults: [
47
+ 'id', 'inventory_item_id', 'stock_location_id', 'lot_number',
48
+ 'description', 'enabled', 'stocked_quantity', 'created_at', 'updated_at',
49
+ 'inventory_item.*', 'stock_location.*'
50
+ ],
51
+ isList: false
52
+ })
53
+ ]
54
+ },
55
+ {
56
+ matcher: '/admin/stock-lots/:id',
57
+ method: ['POST'],
58
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminUpdateStockLot)]
59
+ },
60
+ {
61
+ matcher: '/admin/stock-lots/:id/serial-numbers',
62
+ method: ['GET'],
63
+ middlewares: [
64
+ (0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
65
+ defaults: ['id', 'value', 'order_id', 'created_at', 'updated_at'],
66
+ isList: true,
67
+ defaultLimit: 10
68
+ })
69
+ ]
70
+ },
71
+ {
72
+ matcher: '/admin/serial-numbers',
73
+ method: ['GET'],
74
+ middlewares: [
75
+ (0, http_1.validateAndTransformQuery)(validators_2.AdminGetSerialNumbers, {
76
+ defaults: [
77
+ 'id', 'stock_lot_id', 'order_id', 'value', 'invalidated', 'created_at', 'updated_at'
78
+ ],
79
+ isList: true,
80
+ defaultLimit: 20
81
+ })
82
+ ]
83
+ },
84
+ {
85
+ matcher: '/admin/serial-numbers',
86
+ method: ['POST'],
87
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminCreateSerialNumber)]
88
+ },
89
+ {
90
+ matcher: '/admin/serial-numbers',
91
+ method: ['DELETE'],
92
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminDeleteSerialNumbers)]
93
+ },
94
+ {
95
+ matcher: '/admin/serial-numbers/:id',
96
+ method: ['GET'],
97
+ middlewares: [
98
+ (0, http_1.validateAndTransformQuery)(validators_2.AdminGetSerialNumber, {
99
+ defaults: [
100
+ 'id', 'stock_lot_id', 'order_id', 'value', 'invalidated',
101
+ 'created_at', 'updated_at', 'stock_lot.*', 'order.*'
102
+ ],
103
+ isList: false
104
+ })
105
+ ]
106
+ },
107
+ {
108
+ matcher: '/admin/serial-numbers/:id',
109
+ method: ['POST'],
110
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminUpdateSerialNumber)]
111
+ },
112
+ {
113
+ matcher: '/admin/invalidation-reasons',
114
+ method: ['GET'],
115
+ middlewares: [
116
+ (0, http_1.validateAndTransformQuery)(validators_2.AdminGetInvalidationReasons, {
117
+ defaults: ['id', 'value', 'created_at', 'updated_at'],
118
+ isList: true,
119
+ defaultLimit: 20
120
+ })
121
+ ]
122
+ },
123
+ {
124
+ matcher: '/admin/invalidation-reasons',
125
+ method: ['POST'],
126
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminCreateInvalidationReason)]
127
+ },
128
+ {
129
+ matcher: '/admin/invalidation-reasons',
130
+ method: ['DELETE'],
131
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminDeleteInvalidationReasons)]
132
+ },
133
+ {
134
+ matcher: '/admin/invalidation-reasons/:id',
135
+ method: ['GET'],
136
+ middlewares: [
137
+ (0, http_1.validateAndTransformQuery)(validators_2.AdminGetInvalidationReason, {
138
+ defaults: ['id', 'value', 'created_at', 'updated_at'],
139
+ isList: false
140
+ })
141
+ ]
142
+ },
143
+ {
144
+ matcher: '/admin/invalidation-reasons/:id',
145
+ method: ['POST'],
146
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_2.AdminUpdateInvalidationReason)]
147
+ }
148
+ ]);
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQWlIO0FBQ2pILHNFQUF3RTtBQUN4RSw2Q0FnQnFCO0FBRXJCLGtCQUFlLElBQUEsd0JBQWlCLEVBQUM7SUFDaEM7UUFDQyxPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLFdBQVcsRUFBRTtZQUNaLElBQUEsZ0NBQXlCLEVBQUMsOEJBQWlCLEVBQUU7Z0JBQzVDLFFBQVEsRUFBRTtvQkFDVCxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWTtvQkFDNUQsYUFBYSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsWUFBWTtpQkFDeEU7Z0JBQ0QsTUFBTSxFQUFFLElBQUk7Z0JBQ1osWUFBWSxFQUFFLEVBQUU7YUFDaEIsQ0FBQztTQUNGO0tBQ0Q7SUFDRDtRQUNDLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLFdBQVcsRUFBRSxDQUFDLElBQUEsK0JBQXdCLEVBQUMsZ0NBQW1CLENBQUMsQ0FBQztLQUM1RDtJQUNEO1FBQ0MsT0FBTyxFQUFFLG1CQUFtQjtRQUM1QixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFDbEIsV0FBVyxFQUFFLENBQUMsSUFBQSwrQkFBd0IsRUFBQyxpQ0FBb0IsQ0FBQyxDQUFDO0tBQzdEO0lBQ0Q7UUFDQyxPQUFPLEVBQUUsMEJBQTBCO1FBQ25DLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNoQixXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLGlDQUFvQixDQUFDLENBQUM7S0FDN0Q7SUFDRDtRQUNDLE9BQU8sRUFBRSwyQkFBMkI7UUFDcEMsTUFBTSxFQUFFLENBQUMsTUFBTSxD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