@unchainedshop/api 2.0.0-beta5 → 2.0.0-beta7

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 (79) hide show
  1. package/lib/api-index.d.ts +3 -3
  2. package/lib/api-index.js +21 -3
  3. package/lib/api-index.js.map +1 -1
  4. package/lib/context.d.ts +1 -1
  5. package/lib/context.js +5 -4
  6. package/lib/context.js.map +1 -1
  7. package/lib/createERCMetadataServer.js +8 -12
  8. package/lib/createERCMetadataServer.js.map +1 -1
  9. package/lib/createGraphQLServer.d.ts +2 -2
  10. package/lib/createGraphQLServer.js +25 -35
  11. package/lib/createGraphQLServer.js.map +1 -1
  12. package/lib/errors.js +8 -3
  13. package/lib/errors.js.map +1 -1
  14. package/lib/loaders/index.js +50 -0
  15. package/lib/loaders/index.js.map +1 -1
  16. package/lib/resolvers/index.js +1 -1
  17. package/lib/resolvers/index.js.map +1 -1
  18. package/lib/resolvers/mutations/filters/updateFilter.js +2 -1
  19. package/lib/resolvers/mutations/filters/updateFilter.js.map +1 -1
  20. package/lib/resolvers/queries/products/product.js +1 -1
  21. package/lib/resolvers/queries/products/productCatalogPrices.d.ts +1 -1
  22. package/lib/resolvers/queries/products/productCatalogPrices.js +5 -2
  23. package/lib/resolvers/queries/products/productCatalogPrices.js.map +1 -1
  24. package/lib/resolvers/queries/products/products.js +1 -1
  25. package/lib/resolvers/queries/products/products.js.map +1 -1
  26. package/lib/resolvers/scalars/LowerCaseString.d.ts +1 -1
  27. package/lib/resolvers/scalars/index.d.ts +1 -1
  28. package/lib/resolvers/type/assortment/assortment-filter-types.js +13 -6
  29. package/lib/resolvers/type/assortment/assortment-filter-types.js.map +1 -1
  30. package/lib/resolvers/type/assortment/assortment-link-types.js +14 -6
  31. package/lib/resolvers/type/assortment/assortment-link-types.js.map +1 -1
  32. package/lib/resolvers/type/assortment/assortment-product-types.js +14 -6
  33. package/lib/resolvers/type/assortment/assortment-product-types.js.map +1 -1
  34. package/lib/resolvers/type/bookmark-types.js +6 -2
  35. package/lib/resolvers/type/bookmark-types.js.map +1 -1
  36. package/lib/resolvers/type/enrollment/enrollment-plan-tyes.js +6 -2
  37. package/lib/resolvers/type/enrollment/enrollment-plan-tyes.js.map +1 -1
  38. package/lib/resolvers/type/order/order-item-types.js +13 -6
  39. package/lib/resolvers/type/order/order-item-types.js.map +1 -1
  40. package/lib/resolvers/type/product/product-bundle-item-types.js +4 -2
  41. package/lib/resolvers/type/product/product-bundle-item-types.js.map +1 -1
  42. package/lib/resolvers/type/product/product-review-types.js +6 -2
  43. package/lib/resolvers/type/product/product-review-types.js.map +1 -1
  44. package/lib/resolvers/type/product/product-tokenized-types.js +1 -0
  45. package/lib/resolvers/type/product/product-tokenized-types.js.map +1 -1
  46. package/lib/resolvers/type/product/product-variation-assignment-types.js +4 -2
  47. package/lib/resolvers/type/product/product-variation-assignment-types.js.map +1 -1
  48. package/lib/resolvers/type/quotation-types.js +7 -3
  49. package/lib/resolvers/type/quotation-types.js.map +1 -1
  50. package/lib/resolvers/type/token-types.js +2 -1
  51. package/lib/resolvers/type/token-types.js.map +1 -1
  52. package/lib/schema/types/product/tokenized-product.js +2 -0
  53. package/lib/schema/types/product/tokenized-product.js.map +1 -1
  54. package/package.json +16 -17
  55. package/src/api-index.ts +24 -7
  56. package/src/context.ts +15 -16
  57. package/src/createERCMetadataServer.ts +8 -14
  58. package/src/createGraphQLServer.ts +35 -37
  59. package/src/errors.ts +8 -3
  60. package/src/loaders/index.ts +63 -3
  61. package/src/resolvers/index.ts +1 -1
  62. package/src/resolvers/mutations/filters/updateFilter.ts +3 -1
  63. package/src/resolvers/queries/products/product.ts +1 -1
  64. package/src/resolvers/queries/products/productCatalogPrices.ts +5 -2
  65. package/src/resolvers/queries/products/products.ts +1 -1
  66. package/src/resolvers/type/assortment/assortment-filter-types.ts +11 -6
  67. package/src/resolvers/type/assortment/assortment-link-types.ts +12 -6
  68. package/src/resolvers/type/assortment/assortment-product-types.ts +12 -6
  69. package/src/resolvers/type/bookmark-types.ts +7 -2
  70. package/src/resolvers/type/enrollment/enrollment-plan-tyes.ts +6 -2
  71. package/src/resolvers/type/order/order-item-types.ts +13 -6
  72. package/src/resolvers/type/product/product-bundle-item-types.ts +4 -2
  73. package/src/resolvers/type/product/product-review-types.ts +6 -2
  74. package/src/resolvers/type/product/product-tokenized-types.ts +1 -0
  75. package/src/resolvers/type/product/product-variation-assignment-types.ts +4 -2
  76. package/src/resolvers/type/quotation-types.ts +6 -3
  77. package/src/resolvers/type/token-types.ts +2 -1
  78. package/src/schema/types/product/tokenized-product.js +2 -0
  79. package/tsconfig.json +1 -0
@@ -1,9 +1,17 @@
1
1
  export const AssortmentProduct = {
2
- assortment: (obj, _, { modules }) => modules.assortments.findAssortment({
3
- assortmentId: obj.assortmentId,
4
- }),
5
- product: (obj, _, { modules }) => modules.products.findProduct({
6
- productId: obj.productId,
7
- }),
2
+ assortment: async (obj, _, { loaders }) => {
3
+ const assortment = await loaders.assortmentLoader.load({
4
+ assortmentId: obj.assortmentId,
5
+ includeInactive: true,
6
+ });
7
+ return assortment;
8
+ },
9
+ product: async (obj, _, { loaders }) => {
10
+ const product = await loaders.productLoader.load({
11
+ productId: obj.productId,
12
+ includeDrafts: true,
13
+ });
14
+ return product;
15
+ },
8
16
  };
9
17
  //# sourceMappingURL=assortment-product-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assortment-product-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/assortment/assortment-product-types.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,iBAAiB,GAAiC;IAC7D,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAClC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC;QACjC,YAAY,EAAE,GAAG,CAAC,YAAY;KAC/B,CAAC;IAEJ,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3B,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"assortment-product-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/assortment/assortment-product-types.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,iBAAiB,GAAiC;IAC7D,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACrD,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
@@ -1,6 +1,10 @@
1
1
  export const Bookmark = {
2
- product: async (obj, _, { modules }) => {
3
- return modules.products.findProduct({ productId: obj.productId });
2
+ product: async (obj, _, { loaders }) => {
3
+ const product = await loaders.productLoader.load({
4
+ productId: obj.productId,
5
+ includeDrafts: true,
6
+ });
7
+ return product;
4
8
  },
5
9
  user: async (obj, _, { modules }) => {
6
10
  return modules.users.findUserById(obj.userId);
@@ -1 +1 @@
1
- {"version":3,"file":"bookmark-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/bookmark-types.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,QAAQ,GAAwB;IAC3C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACrC,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"bookmark-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/bookmark-types.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,QAAQ,GAAwB;IAC3C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACF,CAAC"}
@@ -1,6 +1,10 @@
1
1
  export const EnrollmentPlan = {
2
- product: async (plan, _, { modules }) => {
3
- return modules.products.findProduct({ productId: plan.productId });
2
+ product: async (plan, _, { loaders }) => {
3
+ const product = await loaders.productLoader.load({
4
+ productId: plan.productId,
5
+ includeDrafts: true,
6
+ });
7
+ return product;
4
8
  },
5
9
  };
6
10
  //# sourceMappingURL=enrollment-plan-tyes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enrollment-plan-tyes.js","sourceRoot":"","sources":["../../../../src/resolvers/type/enrollment/enrollment-plan-tyes.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,cAAc,GAA8B;IACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"enrollment-plan-tyes.js","sourceRoot":"","sources":["../../../../src/resolvers/type/enrollment/enrollment-plan-tyes.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,cAAc,GAA8B;IACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
@@ -19,7 +19,7 @@ export const OrderItem = {
19
19
  }
20
20
  return [];
21
21
  },
22
- dispatches: async (obj, _, { modules }) => {
22
+ dispatches: async (obj, _, { modules, loaders }) => {
23
23
  const scheduling = obj.scheduling || [];
24
24
  const order = await modules.orders.findOrder({ orderId: obj.orderId });
25
25
  const { countryCode, userId } = order;
@@ -29,8 +29,9 @@ export const OrderItem = {
29
29
  const deliveryProvider = await modules.delivery.findProvider({
30
30
  deliveryProviderId: orderDelivery.deliveryProviderId,
31
31
  });
32
- const product = await modules.products.findProduct({
32
+ const product = await loaders.productLoader.load({
33
33
  productId: obj.productId,
34
+ includeDrafts: true,
34
35
  });
35
36
  return Promise.all(scheduling.map(async (schedule) => {
36
37
  const warehousingProvider = await modules.warehousing.findProvider({
@@ -54,13 +55,19 @@ export const OrderItem = {
54
55
  order: async (obj, _, { modules }) => {
55
56
  return modules.orders.findOrder({ orderId: obj.orderId });
56
57
  },
57
- originalProduct: async (obj, _, { modules }) => {
58
- return modules.products.findProduct({
58
+ originalProduct: async (obj, _, { loaders }) => {
59
+ const product = await loaders.productLoader.load({
59
60
  productId: obj.originalProductId,
61
+ includeDrafts: true,
60
62
  });
63
+ return product;
61
64
  },
62
- product: async (obj, _, { modules }) => {
63
- return modules.products.findProduct({ productId: obj.productId });
65
+ product: async (obj, _, { loaders }) => {
66
+ const product = await loaders.productLoader.load({
67
+ productId: obj.productId,
68
+ includeDrafts: true,
69
+ });
70
+ return product;
64
71
  },
65
72
  quotation: async (obj, _, { modules }) => {
66
73
  if (!obj.quotationId)
@@ -1 +1 @@
1
- {"version":3,"file":"order-item-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/order/order-item-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"order-item-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/order/order-item-types.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  export const ProductBundleItem = {
2
- product: async (productItem, _, { modules }) => {
3
- return modules.products.findProduct({
2
+ product: async (productItem, _, { loaders }) => {
3
+ const product = await loaders.productLoader.load({
4
4
  productId: productItem.productId,
5
+ includeDrafts: true,
5
6
  });
7
+ return product;
6
8
  },
7
9
  };
8
10
  //# sourceMappingURL=product-bundle-item-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-bundle-item-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-bundle-item-types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAiC;IAC7D,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7C,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"product-bundle-item-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-bundle-item-types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAiC;IAC7D,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
@@ -2,8 +2,12 @@ export const ProductReview = {
2
2
  author: async (obj, _, { modules }) => {
3
3
  return modules.users.findUserById(obj.authorId);
4
4
  },
5
- product: async (obj, _, { modules }) => {
6
- return modules.products.findProduct({ productId: obj.productId });
5
+ product: async (review, _, { loaders }) => {
6
+ const product = await loaders.productLoader.load({
7
+ productId: review.productId,
8
+ includeDrafts: true,
9
+ });
10
+ return product;
7
11
  },
8
12
  ownVotes: async (obj, _, { modules, userId }) => {
9
13
  return modules.products.reviews.votes.ownVotes(obj, { userId });
@@ -1 +1 @@
1
- {"version":3,"file":"product-review-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-review-types.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,aAAa,GAA6B;IACrD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACrC,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC/E,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"product-review-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-review-types.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,aAAa,GAA6B;IACrD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9C,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC/E,CAAC;CACF,CAAC"}
@@ -10,6 +10,7 @@ export const TokenizedProduct = {
10
10
  return {
11
11
  supply: product.tokenization.supply,
12
12
  tokenId: product.tokenization.tokenId,
13
+ ercMetadataProperties: product.tokenization.ercMetadataProperties,
13
14
  };
14
15
  },
15
16
  contractStandard(product) {
@@ -1 +1 @@
1
- {"version":3,"file":"product-tokenized-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-tokenized-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAgC;IAC3D,GAAG,WAAW;IAEd,eAAe,CAAC,OAAO;QACrB,OAAO,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC;IAC/C,CAAC;IAED,qBAAqB,CAAC,OAAO;QAC3B,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;YACnC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO;SACtC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,OAAO;QACtB,OAAO,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAChD,CAAC;IAED,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;QACrD,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACnC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QAEjC,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAEnE,OAAO,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE;YACpE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAE/B,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CAClE;gBACE,OAAO,EAAE,GAAG;gBACZ,gBAAgB;aACjB,EACD,cAAc,CACf,CAAC;YAEF,MAAM,0BAA0B,GAAG,MAAM,OAAO,CAAC,GAAG,CAClD,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE;gBACrD,MAAM,kBAAkB,GAAuB;oBAC7C,gBAAgB;oBAChB,OAAO,EAAE,GAAG;oBACZ,aAAa;iBACd,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CACpD,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,CACf,CAAC;gBAEF,OAAO;oBACL,mBAAmB;oBACnB,GAAG,kBAAkB;oBACrB,GAAG,KAAK;iBACT,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;QAC3D,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC;AAEF,OAAO,gBAAgB,CAAC,SAAS,CAAC;AAClC,OAAO,gBAAgB,CAAC,oBAAoB,CAAC;AAC7C,OAAO,gBAAgB,CAAC,oBAAoB,CAAC"}
1
+ {"version":3,"file":"product-tokenized-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-tokenized-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAgC;IAC3D,GAAG,WAAW;IAEd,eAAe,CAAC,OAAO;QACrB,OAAO,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC;IAC/C,CAAC;IAED,qBAAqB,CAAC,OAAO;QAC3B,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;YACnC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO;YACrC,qBAAqB,EAAE,OAAO,CAAC,YAAY,CAAC,qBAAqB;SAClE,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,OAAO;QACtB,OAAO,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAChD,CAAC;IAED,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;QACrD,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACnC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QAEjC,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAEnE,OAAO,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE;YACpE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAE/B,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CAClE;gBACE,OAAO,EAAE,GAAG;gBACZ,gBAAgB;aACjB,EACD,cAAc,CACf,CAAC;YAEF,MAAM,0BAA0B,GAAG,MAAM,OAAO,CAAC,GAAG,CAClD,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE;gBACrD,MAAM,kBAAkB,GAAuB;oBAC7C,gBAAgB;oBAChB,OAAO,EAAE,GAAG;oBACZ,aAAa;iBACd,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CACpD,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,CACf,CAAC;gBAEF,OAAO;oBACL,mBAAmB;oBACnB,GAAG,kBAAkB;oBACrB,GAAG,KAAK;iBACT,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;QAC3D,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC;AAEF,OAAO,gBAAgB,CAAC,SAAS,CAAC;AAClC,OAAO,gBAAgB,CAAC,oBAAoB,CAAC;AAC7C,OAAO,gBAAgB,CAAC,oBAAoB,CAAC"}
@@ -9,10 +9,12 @@ export const ProductVariationAssignment = {
9
9
  product,
10
10
  }));
11
11
  },
12
- product: async ({ assignment }, _, { modules }) => {
13
- return modules.products.findProduct({
12
+ product: async ({ assignment }, _, { loaders }) => {
13
+ const product = await loaders.productLoader.load({
14
14
  productId: assignment.productId,
15
+ includeDrafts: true,
15
16
  });
17
+ return product;
16
18
  },
17
19
  };
18
20
  //# sourceMappingURL=product-variation-assignment-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-variation-assignment-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-variation-assignment-types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAA0C;IAC/E,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxD,GAAG;YACH,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;YAC7B,OAAO;SACR,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"product-variation-assignment-types.js","sourceRoot":"","sources":["../../../../src/resolvers/type/product/product-variation-assignment-types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAA0C;IAC/E,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxD,GAAG;YACH,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;YAC7B,OAAO;SACR,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
@@ -2,9 +2,13 @@ export const Quotation = {
2
2
  country: async (obj, _, { modules }) => modules.countries.findCountry({ isoCode: obj.countryCode }),
3
3
  currency: async (obj, _, { modules }) => modules.currencies.findCurrency({ isoCode: obj.currency }),
4
4
  isExpired: (obj, { referenceDate }, { modules }) => modules.quotations.isExpired(obj, { referenceDate }),
5
- product: (obj, _, { modules }) => modules.products.findProduct({
6
- productId: obj.productId,
7
- }),
5
+ product: async (obj, _, { loaders }) => {
6
+ const product = await loaders.productLoader.load({
7
+ productId: obj.productId,
8
+ includeDrafts: true,
9
+ });
10
+ return product;
11
+ },
8
12
  status: (obj, _, { modules }) => modules.quotations.normalizedStatus(obj),
9
13
  user: (obj, _, { modules }) => modules.users.findUserById(obj.userId),
10
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"quotation-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/quotation-types.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,SAAS,GAAyB;IAC7C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;IAEnG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEnG,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CACjD,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC;IAEtD,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3B,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;IAEJ,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC;IAEzE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;CACtE,CAAC"}
1
+ {"version":3,"file":"quotation-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/quotation-types.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,SAAS,GAAyB;IAC7C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;IAEnG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEnG,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CACjD,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC;IAEtD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC;IAEzE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;CACtE,CAAC"}
@@ -26,7 +26,8 @@ export const Token = {
26
26
  ercMetadata: async (token, { forceLocale }, context) => {
27
27
  const { modules } = context;
28
28
  const product = await modules.products.findProduct({ productId: token.productId });
29
- const ercMetadata = await modules.warehousing.tokenMetadata(token, {
29
+ const ercMetadata = await modules.warehousing.tokenMetadata(token.chainTokenId, {
30
+ token,
30
31
  product,
31
32
  referenceDate: new Date(),
32
33
  }, { ...context, localeContext: new Locale(forceLocale) });
@@ -1 +1 @@
1
- {"version":3,"file":"token-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/token-types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAkB,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,SAAS,MAAM,QAAQ,CAAC;AAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;AAe7B,MAAM,CAAC,MAAM,KAAK,GAAqB;IACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7C,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5C,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACxC,OAAO,WAAW,CAAC,aAAa,CAAC;SAClC;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;YACnD,KAAK,EAAE,CAAC,cAAc,CAAC;YACvB,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC;SAC/C,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,WAAW,CAAC,SAAS,CAAC;QACjG,OAAO,WAAW,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE;QACrD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CACzD,KAAK,EACL;YACE,OAAO;YACP,aAAa,EAAE,IAAI,IAAI,EAAE;SAC1B,EACD,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CACvD,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"token-types.js","sourceRoot":"","sources":["../../../src/resolvers/type/token-types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAkB,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,SAAS,MAAM,QAAQ,CAAC;AAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;AAe7B,MAAM,CAAC,MAAM,KAAK,GAAqB;IACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7C,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5C,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACxC,OAAO,WAAW,CAAC,aAAa,CAAC;SAClC;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;YACnD,KAAK,EAAE,CAAC,cAAc,CAAC;YACvB,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC;SAC/C,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,WAAW,CAAC,SAAS,CAAC;QACjG,OAAO,WAAW,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE;QACrD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CACzD,KAAK,CAAC,YAAY,EAClB;YACE,KAAK;YACL,OAAO;YACP,aAAa,EAAE,IAAI,IAAI,EAAE;SAC1B,EACD,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CACvD,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAC"}
@@ -5,6 +5,7 @@ export default [
5
5
  contractStandard: SmartContractStandard!
6
6
  tokenId: String
7
7
  supply: Int
8
+ ercMetadataProperties: JSON
8
9
  }
9
10
 
10
11
  enum SmartContractStandard {
@@ -15,6 +16,7 @@ export default [
15
16
  type ContractConfiguration {
16
17
  tokenId: String
17
18
  supply: Int
19
+ ercMetadataProperties: JSON
18
20
  }
19
21
 
20
22
  """
@@ -1 +1 @@
1
- {"version":3,"file":"tokenized-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/tokenized-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDb;CACF,CAAC"}
1
+ {"version":3,"file":"tokenized-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/tokenized-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDb;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/api",
3
- "version": "2.0.0-beta5",
3
+ "version": "2.0.0-beta7",
4
4
  "main": "lib/api-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/api-index.js",
@@ -30,33 +30,32 @@
30
30
  },
31
31
  "homepage": "https://github.com/unchainedshop/unchained#readme",
32
32
  "peerDependencies": {
33
- "apollo-server-express": "2.x",
33
+ "@apollo/server": "^4.1.1",
34
34
  "cookie": "^0.5.0",
35
- "graphql": "^15.x"
35
+ "graphql": "^16.6.0"
36
36
  },
37
37
  "dependencies": {
38
- "@metamask/eth-sig-util": "^5.0.0",
39
- "@unchainedshop/core": "^2.0.0-beta5",
40
- "@unchainedshop/events": "^2.0.0-beta5",
41
- "@unchainedshop/logger": "^2.0.0-beta5",
42
- "@unchainedshop/roles": "^2.0.0-beta5",
43
- "@unchainedshop/utils": "^2.0.0-beta5",
38
+ "@metamask/eth-sig-util": "^5.0.2",
39
+ "@unchainedshop/core": "^2.0.0-beta7",
40
+ "@unchainedshop/events": "^2.0.0-beta7",
41
+ "@unchainedshop/logger": "^2.0.0-beta7",
42
+ "@unchainedshop/roles": "^2.0.0-beta7",
43
+ "@unchainedshop/utils": "^2.0.0-beta7",
44
44
  "accounting": "0.4.1",
45
45
  "dataloader": "^2.1.0",
46
- "graphql-scalars": "^1.20.0",
47
- "graphql-upload": "^13.0.0",
46
+ "graphql-scalars": "^1.20.1",
47
+ "graphql-upload": "^16.0.2",
48
48
  "locale": "0.1.0",
49
49
  "lodash.isnumber": "3.0.3",
50
- "lru-cache": "^7.14.0"
50
+ "lru-cache": "^7.14.1"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/graphql-upload": "^8.0.12",
54
54
  "@types/locale": "^0.1.1",
55
- "@types/node": "^16.18.2",
56
- "@unchainedshop/types": "^2.0.0-beta5",
57
- "apollo-server-express": "^2.26.0",
58
- "graphql": "^15.8.0",
59
- "jest": "^29.2.2",
55
+ "@types/node": "^18.11.9",
56
+ "@unchainedshop/types": "^2.0.0-beta7",
57
+ "graphql": "^16.6.0",
58
+ "jest": "^29.3.1",
60
59
  "ts-jest": "^29.0.3",
61
60
  "typescript": "^4.8.4"
62
61
  }
package/src/api-index.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { UnchainedServerOptions } from '@unchainedshop/types/api';
2
- import { ApolloServer } from 'apollo-server-express';
2
+ import type { ApolloServer } from '@apollo/server';
3
+ import fs from 'fs';
4
+ import path from 'path';
3
5
  import createBulkImportServer from './createBulkImportServer';
4
6
  import createGraphQLServer from './createGraphQLServer';
5
7
  import { createContextResolver, getCurrentContextResolver, setCurrentContextResolver } from './context';
@@ -10,18 +12,33 @@ export * as acl from './acl';
10
12
  export * as errors from './errors';
11
13
  export { hashPassword } from './hashPassword';
12
14
  export * as roles from './roles';
13
-
14
15
  export { createContextResolver, getCurrentContextResolver, setCurrentContextResolver };
15
16
 
16
- const UNCHAINED_API_VERSION = '1.2.0'; // eslint-disable-line
17
+ const loadJSON = (filename) => {
18
+ try {
19
+ const base = typeof __filename !== 'undefined' && __filename;
20
+ if (!base)
21
+ return {
22
+ version: process.env.npm_package_version,
23
+ };
24
+ const absolutePath = path.resolve(path.dirname(base), filename);
25
+ const data = JSON.parse(fs.readFileSync(absolutePath, 'utf-8'));
26
+ return data;
27
+ } catch (e) {
28
+ return null;
29
+ }
30
+ };
31
+ const packageJson = loadJSON('../package.json');
32
+
33
+ const UNCHAINED_API_VERSION = process.env.UNCHAINED_API_VERSION || packageJson?.version || '1.2.x';
17
34
 
18
- export const startAPIServer = (
35
+ export const startAPIServer = async (
19
36
  options: UnchainedServerOptions,
20
- ): {
37
+ ): Promise<{
21
38
  apolloGraphQLServer: ApolloServer;
22
39
  bulkImportServer: any;
23
40
  ercMetadataServer: any;
24
- } => {
41
+ }> => {
25
42
  const {
26
43
  unchainedAPI,
27
44
  roles,
@@ -40,7 +57,7 @@ export const startAPIServer = (
40
57
  : contextResolver,
41
58
  );
42
59
 
43
- const apolloGraphQLServer = createGraphQLServer(expressApp, apolloServerOptions);
60
+ const apolloGraphQLServer = await createGraphQLServer(expressApp, apolloServerOptions);
44
61
  const bulkImportServer = createBulkImportServer(expressApp);
45
62
  const ercMetadataServer = createERCMetadataServer(expressApp);
46
63
 
package/src/context.ts CHANGED
@@ -33,20 +33,19 @@ export const createContextResolver =
33
33
  };
34
34
  };
35
35
 
36
- export const useMiddlewareWithCurrentContext = (expressApp, path, middleware) => {
37
- expressApp.use(
38
- path,
39
- async function middlewareWithContext(
40
- req: IncomingMessage & { unchainedContext?: UnchainedCore },
41
- res: OutgoingMessage,
42
- next,
43
- ) {
44
- try {
45
- req.unchainedContext = await context({ req, res });
46
- await middleware(req, res, next);
47
- } catch (error) {
48
- next(error);
49
- }
50
- },
51
- );
36
+ export const useMiddlewareWithCurrentContext = (expressApp, path, ...middleware) => {
37
+ const addContext = async function middlewareWithContext(
38
+ req: IncomingMessage & { unchainedContext?: UnchainedCore },
39
+ res: OutgoingMessage,
40
+ next,
41
+ ) {
42
+ try {
43
+ req.unchainedContext = await context({ req, res });
44
+ next();
45
+ } catch (error) {
46
+ next(error);
47
+ }
48
+ };
49
+
50
+ expressApp.use(path, addContext, ...middleware);
52
51
  };
@@ -38,30 +38,24 @@ const ercMetadataMiddleware = async (req: IncomingMessage & { unchainedContext?:
38
38
 
39
39
  if (parsedPath.ext !== '.json') throw new Error('Invalid ERC Metadata URI');
40
40
 
41
- const [, productIdOrContractAddress, localeOrTokenFilename, tokenFileName] = url.pathname.split('/');
41
+ const [, productId, localeOrTokenFilename, tokenFileName] = url.pathname.split('/');
42
42
 
43
43
  const locale = tokenFileName ? localeOrTokenFilename : systemLocale.language;
44
44
  const chainTokenId = parsedPath.name;
45
45
 
46
- const productByProductId = await resolvedContext.modules.products.findProduct({
47
- productId: productIdOrContractAddress,
46
+ const product = await resolvedContext.modules.products.findProduct({
47
+ productId,
48
48
  });
49
49
 
50
- const selector: any = {
50
+ const [token] = await resolvedContext.modules.warehousing.findTokens({
51
51
  chainTokenId,
52
- contractAddress: productByProductId?.tokenization?.contractAddress || productIdOrContractAddress,
53
- };
54
- const [token] = await resolvedContext.modules.warehousing.findTokens(selector);
55
-
56
- const product =
57
- productByProductId ||
58
- (await resolvedContext.modules.products.findProduct({
59
- productId: token?.productId,
60
- }));
52
+ contractAddress: product?.tokenization?.contractAddress,
53
+ });
61
54
 
62
55
  const ercMetadata = await resolvedContext.modules.warehousing.tokenMetadata(
63
- token,
56
+ chainTokenId,
64
57
  {
58
+ token,
65
59
  product,
66
60
  referenceDate: new Date(),
67
61
  },
@@ -1,21 +1,16 @@
1
- import { ApolloServer, ApolloError } from 'apollo-server-express';
2
- import { processRequest } from 'graphql-upload';
1
+ import { ApolloServer } from '@apollo/server';
2
+ import { expressMiddleware } from '@apollo/server/express4';
3
+ import { GraphQLError } from 'graphql';
4
+ import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.mjs';
3
5
  import { log, LogLevel } from '@unchainedshop/logger';
6
+ import cors from 'cors';
7
+ import bodyParser from 'body-parser';
4
8
  import typeDefs from './schema';
5
9
  import resolvers from './resolvers';
6
10
  import { getCurrentContextResolver } from './context';
7
11
 
8
12
  const { APOLLO_ENGINE_KEY } = process.env;
9
13
 
10
- const handleUploads = (options) => async (req, res, next) => {
11
- const contentType = req.headers['content-type'];
12
- const isUpload = contentType && contentType.startsWith('multipart/form-data');
13
- if (isUpload) {
14
- req.body = await processRequest(req, res, options);
15
- }
16
- next();
17
- };
18
-
19
14
  const logGraphQLServerError = (error) => {
20
15
  try {
21
16
  const {
@@ -35,7 +30,7 @@ const logGraphQLServerError = (error) => {
35
30
  } catch (e) {} // eslint-disable-line
36
31
  };
37
32
 
38
- export default (expressApp, options) => {
33
+ export default async (expressApp, options) => {
39
34
  const {
40
35
  corsOrigins = null, // no cookie handling
41
36
  typeDefs: additionalTypeDefs = [],
@@ -45,11 +40,10 @@ export default (expressApp, options) => {
45
40
  } = options || {};
46
41
 
47
42
  const context = getCurrentContextResolver();
43
+
48
44
  const server = new ApolloServer({
49
45
  typeDefs: [...typeDefs, ...additionalTypeDefs],
50
46
  resolvers: [resolvers, ...additionalResolvers],
51
- context,
52
- uploads: false,
53
47
  formatError: (error) => {
54
48
  logGraphQLServerError(error);
55
49
  const {
@@ -57,18 +51,20 @@ export default (expressApp, options) => {
57
51
  path,
58
52
  extensions: { exception, code, ...extensions }, // eslint-disable-line
59
53
  } = error;
60
- const apolloError = new ApolloError(message, code as string, {
61
- code,
62
- ...extensions,
54
+ const apolloError = new GraphQLError(message, {
55
+ extensions: {
56
+ code,
57
+ ...extensions,
58
+ },
63
59
  });
64
60
  // eslint-disable-next-line
65
61
  // @ts-ignore
66
62
  apolloError.path = path;
67
63
  return apolloError;
68
64
  },
69
- engine: APOLLO_ENGINE_KEY
65
+ apollo: APOLLO_ENGINE_KEY
70
66
  ? {
71
- apiKey: APOLLO_ENGINE_KEY,
67
+ key: APOLLO_ENGINE_KEY,
72
68
  privateVariables: ['email', 'plainPassword', 'oldPlainPassword', 'newPlainPassword'],
73
69
  ...engine,
74
70
  }
@@ -76,6 +72,8 @@ export default (expressApp, options) => {
76
72
  ...apolloServerOptions,
77
73
  });
78
74
 
75
+ await server.start();
76
+
79
77
  const originFn =
80
78
  corsOrigins && Array.isArray(corsOrigins)
81
79
  ? (origin, callback) => {
@@ -91,25 +89,25 @@ export default (expressApp, options) => {
91
89
  }
92
90
  : corsOrigins;
93
91
 
94
- // server.start().then(() => {
95
- //
96
- // });
97
-
98
- const middleware = server.getMiddleware({
99
- path: '/graphql',
100
- cors: !originFn
101
- ? undefined
102
- : {
103
- origin: originFn,
104
- credentials: true,
105
- },
106
- bodyParserConfig: {
107
- limit: '5mb',
108
- },
109
- });
92
+ expressApp.use(
93
+ '/graphql',
94
+ cors(
95
+ !originFn
96
+ ? undefined
97
+ : {
98
+ origin: originFn,
99
+ credentials: true,
100
+ },
101
+ ),
102
+ bodyParser.json(),
103
+ graphqlUploadExpress(),
104
+ expressMiddleware(server, {
105
+ context,
106
+ }),
107
+ );
110
108
 
111
- expressApp.use(handleUploads({ maxFileSize: 10000000, maxFiles: 10 }));
112
- expressApp.use(middleware);
109
+ // expressApp.use(handleUploads({ maxFileSize: 10000000, maxFiles: 10 }));
110
+ // expressApp.use(middleware);
113
111
 
114
112
  return server;
115
113
  };