@csbeker/medusa-product-attributes 2.2.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 (237) hide show
  1. package/.medusa/server/src/admin/index.js +9012 -0
  2. package/.medusa/server/src/admin/index.mjs +9010 -0
  3. package/.medusa/server/src/api/admin/middlewares.js +10 -0
  4. package/.medusa/server/src/api/admin/plugin/attribute-set/[id]/attributes/route.js +17 -0
  5. package/.medusa/server/src/api/admin/plugin/attribute-set/[id]/route.js +33 -0
  6. package/.medusa/server/src/api/admin/plugin/attribute-set/middlewares.js +44 -0
  7. package/.medusa/server/src/api/admin/plugin/attribute-set/query-config.js +22 -0
  8. package/.medusa/server/src/api/admin/plugin/attribute-set/route.js +25 -0
  9. package/.medusa/server/src/api/admin/plugin/attribute-set/validators.js +37 -0
  10. package/.medusa/server/src/api/admin/plugin/attributes/[id]/route.js +68 -0
  11. package/.medusa/server/src/api/admin/plugin/attributes/[id]/values/[valueId]/route.js +37 -0
  12. package/.medusa/server/src/api/admin/plugin/attributes/[id]/values/route.js +31 -0
  13. package/.medusa/server/src/api/admin/plugin/attributes/middlewares.js +103 -0
  14. package/.medusa/server/src/api/admin/plugin/attributes/query-config.js +41 -0
  15. package/.medusa/server/src/api/admin/plugin/attributes/route.js +28 -0
  16. package/.medusa/server/src/api/admin/plugin/attributes/validators.js +69 -0
  17. package/.medusa/server/src/api/admin/plugin/route.js +7 -0
  18. package/.medusa/server/src/api/middlewares.js +12 -0
  19. package/.medusa/server/src/api/store/middlewares.js +8 -0
  20. package/.medusa/server/src/api/store/plugin/attributes/middlewares.js +64 -0
  21. package/.medusa/server/src/api/store/plugin/attributes/products/middlewares.js +100 -0
  22. package/.medusa/server/src/api/store/plugin/attributes/products/query-config.js +20 -0
  23. package/.medusa/server/src/api/store/plugin/attributes/products/route.js +48 -0
  24. package/.medusa/server/src/api/store/plugin/attributes/products/validators.js +39 -0
  25. package/.medusa/server/src/api/store/plugin/attributes/query-config.js +21 -0
  26. package/.medusa/server/src/api/store/plugin/attributes/route.js +15 -0
  27. package/.medusa/server/src/api/store/plugin/attributes/validators.js +14 -0
  28. package/.medusa/server/src/api/store/plugin/route.js +7 -0
  29. package/.medusa/server/src/api/utils/common-validators.js +23 -0
  30. package/.medusa/server/src/api/utils/constants.js +6 -0
  31. package/.medusa/server/src/api/utils/middlewares.js +34 -0
  32. package/.medusa/server/src/links/attribute-product-category.js +16 -0
  33. package/.medusa/server/src/links/attribute-value-product.js +16 -0
  34. package/.medusa/server/src/modules/attribute/events/index.js +8 -0
  35. package/.medusa/server/src/modules/attribute/index.js +13 -0
  36. package/.medusa/server/src/modules/attribute/migrations/Migration20250319161229.js +24 -0
  37. package/.medusa/server/src/modules/attribute/migrations/Migration20250320182643.js +16 -0
  38. package/.medusa/server/src/modules/attribute/migrations/Migration20250321162638.js +14 -0
  39. package/.medusa/server/src/modules/attribute/migrations/Migration20250505144933.js +23 -0
  40. package/.medusa/server/src/modules/attribute/migrations/Migration20250505201747.js +21 -0
  41. package/.medusa/server/src/modules/attribute/migrations/Migration20250506162300.js +14 -0
  42. package/.medusa/server/src/modules/attribute/migrations/Migration20250611160552.js +14 -0
  43. package/.medusa/server/src/modules/attribute/migrations/Migration20250611173345.js +16 -0
  44. package/.medusa/server/src/modules/attribute/migrations/Migration20250612192857.js +16 -0
  45. package/.medusa/server/src/modules/attribute/models/attribute-possible-value.js +24 -0
  46. package/.medusa/server/src/modules/attribute/models/attribute-set.js +22 -0
  47. package/.medusa/server/src/modules/attribute/models/attribute-value.js +17 -0
  48. package/.medusa/server/src/modules/attribute/models/attribute.js +27 -0
  49. package/.medusa/server/src/modules/attribute/service.js +84 -0
  50. package/.medusa/server/src/modules/attribute/types/attribute/common.js +13 -0
  51. package/.medusa/server/src/modules/attribute/types/attribute/index.js +18 -0
  52. package/.medusa/server/src/modules/attribute/types/attribute-set/index.js +18 -0
  53. package/.medusa/server/src/modules/attribute/types/attribute-set/mutations.js +3 -0
  54. package/.medusa/server/src/modules/attribute/types/attribute-value/index.js +18 -0
  55. package/.medusa/server/src/modules/attribute/types/attribute-value/mutations.js +3 -0
  56. package/.medusa/server/src/modules/attribute/types/index.js +20 -0
  57. package/.medusa/server/src/types/attribute/common.js +3 -0
  58. package/.medusa/server/src/types/attribute/http/attribute/admin/index.js +3 -0
  59. package/.medusa/server/src/types/attribute/http/attribute/index.js +18 -0
  60. package/.medusa/server/src/types/attribute/http/attribute-set/index.js +3 -0
  61. package/.medusa/server/src/types/attribute/http/index.js +19 -0
  62. package/.medusa/server/src/types/attribute/index.js +19 -0
  63. package/.medusa/server/src/utils/index.js +18 -0
  64. package/.medusa/server/src/utils/products-created-handler.js +22 -0
  65. package/.medusa/server/src/utils/products-updated-handler.js +58 -0
  66. package/.medusa/server/src/utils/validate-attribute-values-to-link.js +43 -0
  67. package/.medusa/server/src/workflows/attribute/index.js +19 -0
  68. package/.medusa/server/src/workflows/attribute/steps/create-attribute-possible-values.js +18 -0
  69. package/.medusa/server/src/workflows/attribute/steps/create-attributes.js +27 -0
  70. package/.medusa/server/src/workflows/attribute/steps/delete-attribute.js +31 -0
  71. package/.medusa/server/src/workflows/attribute/steps/index.js +21 -0
  72. package/.medusa/server/src/workflows/attribute/steps/update-attributes.js +34 -0
  73. package/.medusa/server/src/workflows/attribute/workflows/create-attribute-possible-values.js +11 -0
  74. package/.medusa/server/src/workflows/attribute/workflows/create-attributes.js +46 -0
  75. package/.medusa/server/src/workflows/attribute/workflows/delete-attribute.js +10 -0
  76. package/.medusa/server/src/workflows/attribute/workflows/index.js +20 -0
  77. package/.medusa/server/src/workflows/attribute/workflows/update-attributes.js +73 -0
  78. package/.medusa/server/src/workflows/attribute-set/steps/batch-link-attribute-set-attributes.js +66 -0
  79. package/.medusa/server/src/workflows/attribute-set/steps/create-attribute-set.js +24 -0
  80. package/.medusa/server/src/workflows/attribute-set/steps/index.js +20 -0
  81. package/.medusa/server/src/workflows/attribute-set/steps/update-attribute-set.js +22 -0
  82. package/.medusa/server/src/workflows/attribute-set/workflows/batch-link-attribute-set-attributes.js +10 -0
  83. package/.medusa/server/src/workflows/attribute-set/workflows/create-attribute-set.js +11 -0
  84. package/.medusa/server/src/workflows/attribute-set/workflows/index.js +20 -0
  85. package/.medusa/server/src/workflows/attribute-set/workflows/update-attribute-set.js +10 -0
  86. package/.medusa/server/src/workflows/attribute-value/steps/create-attribute-value.js +18 -0
  87. package/.medusa/server/src/workflows/attribute-value/steps/delete-attribute-value.js +18 -0
  88. package/.medusa/server/src/workflows/attribute-value/steps/index.js +20 -0
  89. package/.medusa/server/src/workflows/attribute-value/steps/validate-attribute-value.js +53 -0
  90. package/.medusa/server/src/workflows/attribute-value/workflow/create-attribute-value.js +28 -0
  91. package/.medusa/server/src/workflows/attribute-value/workflow/delete-attribute-value.js +38 -0
  92. package/.medusa/server/src/workflows/attribute-value/workflow/index.js +19 -0
  93. package/.medusa/server/src/workflows/attribute_possible_value/index.js +19 -0
  94. package/.medusa/server/src/workflows/attribute_possible_value/steps/index.js +18 -0
  95. package/.medusa/server/src/workflows/attribute_possible_value/steps/update-attribute-possible-value.js +18 -0
  96. package/.medusa/server/src/workflows/attribute_possible_value/workflows/index.js +18 -0
  97. package/.medusa/server/src/workflows/attribute_possible_value/workflows/update-attribute-possible-value.js +11 -0
  98. package/.medusa/server/src/workflows/index.js +18 -0
  99. package/CHANGELOG.md +104 -0
  100. package/README.md +86 -0
  101. package/package.json +90 -0
  102. package/src/admin/README.md +31 -0
  103. package/src/admin/components/metadata-editor/index.tsx +101 -0
  104. package/src/admin/components/section-row.tsx +41 -0
  105. package/src/admin/hooks/api/attribute-set.ts +122 -0
  106. package/src/admin/hooks/api/attributes.ts +126 -0
  107. package/src/admin/hooks/table/columns/index.ts +1 -0
  108. package/src/admin/hooks/table/columns/use-attribute-table-columns.tsx +280 -0
  109. package/src/admin/layouts/single-column.tsx +11 -0
  110. package/src/admin/lib/config.ts +8 -0
  111. package/src/admin/lib/query-key-factory.ts +53 -0
  112. package/src/admin/routes/attributes/[id]/edit/page.tsx +133 -0
  113. package/src/admin/routes/attributes/[id]/edit-possible-value/page.tsx +174 -0
  114. package/src/admin/routes/attributes/[id]/page.tsx +127 -0
  115. package/src/admin/routes/attributes/components/AttributeForm.tsx +301 -0
  116. package/src/admin/routes/attributes/components/AttributeSetTable.tsx +108 -0
  117. package/src/admin/routes/attributes/components/category-selection-modal.tsx +82 -0
  118. package/src/admin/routes/attributes/components/possible-values-table.tsx +119 -0
  119. package/src/admin/routes/attributes/create/components/MultiSelectCategory.tsx +148 -0
  120. package/src/admin/routes/attributes/create/components/PossibleValuesList.tsx +151 -0
  121. package/src/admin/routes/attributes/create/page.tsx +123 -0
  122. package/src/admin/routes/attributes/create-set/page.tsx +110 -0
  123. package/src/admin/routes/attributes/page.tsx +346 -0
  124. package/src/admin/routes/attributes/set/[id]/attributes/page.tsx +35 -0
  125. package/src/admin/routes/attributes/set/[id]/components/AttributeSetAttributesSection.tsx +114 -0
  126. package/src/admin/routes/attributes/set/[id]/components/AttributeSetGeneralSection.tsx +42 -0
  127. package/src/admin/routes/attributes/set/[id]/components/attribute-set-attributes-form.tsx +143 -0
  128. package/src/admin/routes/attributes/set/[id]/components/index.ts +2 -0
  129. package/src/admin/routes/attributes/set/[id]/edit/page.tsx +119 -0
  130. package/src/admin/routes/attributes/set/[id]/page.tsx +45 -0
  131. package/src/admin/tsconfig.json +27 -0
  132. package/src/admin/types/global.d.ts +3 -0
  133. package/src/admin/vite-env.d.ts +1 -0
  134. package/src/api/README.md +133 -0
  135. package/src/api/admin/middlewares.ts +8 -0
  136. package/src/api/admin/plugin/attribute-set/[id]/attributes/route.ts +17 -0
  137. package/src/api/admin/plugin/attribute-set/[id]/route.ts +41 -0
  138. package/src/api/admin/plugin/attribute-set/middlewares.ts +42 -0
  139. package/src/api/admin/plugin/attribute-set/query-config.ts +20 -0
  140. package/src/api/admin/plugin/attribute-set/route.ts +34 -0
  141. package/src/api/admin/plugin/attribute-set/validators.ts +45 -0
  142. package/src/api/admin/plugin/attributes/[id]/route.ts +85 -0
  143. package/src/api/admin/plugin/attributes/[id]/values/[valueId]/route.ts +41 -0
  144. package/src/api/admin/plugin/attributes/[id]/values/route.ts +39 -0
  145. package/src/api/admin/plugin/attributes/middlewares.ts +91 -0
  146. package/src/api/admin/plugin/attributes/query-config.ts +42 -0
  147. package/src/api/admin/plugin/attributes/route.ts +33 -0
  148. package/src/api/admin/plugin/attributes/validators.ts +91 -0
  149. package/src/api/admin/plugin/route.ts +8 -0
  150. package/src/api/middlewares.ts +10 -0
  151. package/src/api/store/middlewares.ts +6 -0
  152. package/src/api/store/plugin/attributes/middlewares.ts +33 -0
  153. package/src/api/store/plugin/attributes/products/middlewares.ts +73 -0
  154. package/src/api/store/plugin/attributes/products/query-config.ts +19 -0
  155. package/src/api/store/plugin/attributes/products/route.ts +68 -0
  156. package/src/api/store/plugin/attributes/products/validators.ts +55 -0
  157. package/src/api/store/plugin/attributes/query-config.ts +19 -0
  158. package/src/api/store/plugin/attributes/route.ts +13 -0
  159. package/src/api/store/plugin/attributes/validators.ts +14 -0
  160. package/src/api/store/plugin/route.ts +8 -0
  161. package/src/api/utils/common-validators.ts +24 -0
  162. package/src/api/utils/constants.ts +2 -0
  163. package/src/api/utils/middlewares.ts +31 -0
  164. package/src/jobs/README.md +36 -0
  165. package/src/links/README.md +26 -0
  166. package/src/links/attribute-product-category.ts +14 -0
  167. package/src/links/attribute-value-product.ts +14 -0
  168. package/src/modules/README.md +116 -0
  169. package/src/modules/attribute/events/index.ts +4 -0
  170. package/src/modules/attribute/index.ts +8 -0
  171. package/src/modules/attribute/migrations/.snapshot-medusa-attribute.json +624 -0
  172. package/src/modules/attribute/migrations/Migration20250319161229.ts +27 -0
  173. package/src/modules/attribute/migrations/Migration20250320182643.ts +15 -0
  174. package/src/modules/attribute/migrations/Migration20250321162638.ts +13 -0
  175. package/src/modules/attribute/migrations/Migration20250505144933.ts +26 -0
  176. package/src/modules/attribute/migrations/Migration20250505201747.ts +23 -0
  177. package/src/modules/attribute/migrations/Migration20250506162300.ts +13 -0
  178. package/src/modules/attribute/migrations/Migration20250611160552.ts +13 -0
  179. package/src/modules/attribute/migrations/Migration20250611173345.ts +17 -0
  180. package/src/modules/attribute/migrations/Migration20250612192857.ts +17 -0
  181. package/src/modules/attribute/models/attribute-possible-value.ts +20 -0
  182. package/src/modules/attribute/models/attribute-set.ts +18 -0
  183. package/src/modules/attribute/models/attribute-value.ts +13 -0
  184. package/src/modules/attribute/models/attribute.ts +23 -0
  185. package/src/modules/attribute/service.ts +102 -0
  186. package/src/modules/attribute/types/attribute/common.ts +94 -0
  187. package/src/modules/attribute/types/attribute/index.ts +1 -0
  188. package/src/modules/attribute/types/attribute-set/index.ts +1 -0
  189. package/src/modules/attribute/types/attribute-set/mutations.ts +7 -0
  190. package/src/modules/attribute/types/attribute-value/index.ts +1 -0
  191. package/src/modules/attribute/types/attribute-value/mutations.ts +5 -0
  192. package/src/modules/attribute/types/index.ts +3 -0
  193. package/src/providers/README.md +30 -0
  194. package/src/subscribers/README.md +59 -0
  195. package/src/types/attribute/common.ts +173 -0
  196. package/src/types/attribute/http/attribute/admin/index.ts +0 -0
  197. package/src/types/attribute/http/attribute/index.ts +42 -0
  198. package/src/types/attribute/http/attribute-set/index.ts +10 -0
  199. package/src/types/attribute/http/index.ts +2 -0
  200. package/src/types/attribute/index.ts +2 -0
  201. package/src/utils/index.ts +1 -0
  202. package/src/utils/products-created-handler.ts +35 -0
  203. package/src/utils/products-updated-handler.ts +74 -0
  204. package/src/utils/validate-attribute-values-to-link.ts +67 -0
  205. package/src/workflows/README.md +79 -0
  206. package/src/workflows/attribute/index.ts +2 -0
  207. package/src/workflows/attribute/steps/create-attribute-possible-values.ts +29 -0
  208. package/src/workflows/attribute/steps/create-attributes.ts +35 -0
  209. package/src/workflows/attribute/steps/delete-attribute.ts +41 -0
  210. package/src/workflows/attribute/steps/index.ts +4 -0
  211. package/src/workflows/attribute/steps/update-attributes.ts +45 -0
  212. package/src/workflows/attribute/workflows/create-attribute-possible-values.ts +17 -0
  213. package/src/workflows/attribute/workflows/create-attributes.ts +56 -0
  214. package/src/workflows/attribute/workflows/delete-attribute.ts +15 -0
  215. package/src/workflows/attribute/workflows/index.ts +3 -0
  216. package/src/workflows/attribute/workflows/update-attributes.ts +103 -0
  217. package/src/workflows/attribute-set/steps/batch-link-attribute-set-attributes.ts +82 -0
  218. package/src/workflows/attribute-set/steps/create-attribute-set.ts +34 -0
  219. package/src/workflows/attribute-set/steps/index.ts +3 -0
  220. package/src/workflows/attribute-set/steps/update-attribute-set.ts +32 -0
  221. package/src/workflows/attribute-set/workflows/batch-link-attribute-set-attributes.ts +12 -0
  222. package/src/workflows/attribute-set/workflows/create-attribute-set.ts +17 -0
  223. package/src/workflows/attribute-set/workflows/index.ts +3 -0
  224. package/src/workflows/attribute-set/workflows/update-attribute-set.ts +14 -0
  225. package/src/workflows/attribute-value/steps/create-attribute-value.ts +26 -0
  226. package/src/workflows/attribute-value/steps/delete-attribute-value.ts +26 -0
  227. package/src/workflows/attribute-value/steps/index.ts +3 -0
  228. package/src/workflows/attribute-value/steps/validate-attribute-value.ts +95 -0
  229. package/src/workflows/attribute-value/workflow/create-attribute-value.ts +36 -0
  230. package/src/workflows/attribute-value/workflow/delete-attribute-value.ts +46 -0
  231. package/src/workflows/attribute-value/workflow/index.ts +2 -0
  232. package/src/workflows/attribute_possible_value/index.ts +2 -0
  233. package/src/workflows/attribute_possible_value/steps/index.ts +1 -0
  234. package/src/workflows/attribute_possible_value/steps/update-attribute-possible-value.ts +25 -0
  235. package/src/workflows/attribute_possible_value/workflows/index.ts +1 -0
  236. package/src/workflows/attribute_possible_value/workflows/update-attribute-possible-value.ts +15 -0
  237. package/src/workflows/index.ts +1 -0
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeMiddlewaresRoutes = void 0;
4
+ const middlewares_1 = require("./plugin/attributes/middlewares");
5
+ exports.storeMiddlewaresRoutes = [
6
+ ...middlewares_1.storeAttributesMiddlewaresRoute
7
+ ];
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlFQUFrRjtBQUVyRSxRQUFBLHNCQUFzQixHQUFzQjtJQUNyRCxHQUFHLDZDQUErQjtDQUNyQyxDQUFBIn0=
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.storeAttributesMiddlewaresRoute = void 0;
40
+ const framework_1 = require("@medusajs/framework");
41
+ const constants_1 = require("../../../utils/constants");
42
+ const validators_1 = require("./validators");
43
+ const QueryConfig = __importStar(require("./query-config"));
44
+ const middlewares_1 = require("./products/middlewares");
45
+ const attribute_product_category_1 = __importDefault(require("../../../../links/attribute-product-category"));
46
+ const middlewares_2 = require("../../../utils/middlewares");
47
+ exports.storeAttributesMiddlewaresRoute = [
48
+ {
49
+ methods: ["GET"],
50
+ matcher: constants_1.storeAttributesBaseRoute,
51
+ middlewares: [
52
+ (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetAttributesParams, QueryConfig.storeListAttributesQueryConfig),
53
+ (0, framework_1.maybeApplyLinkFilter)({
54
+ entryPoint: attribute_product_category_1.default.entryPoint,
55
+ resourceId: 'attribute_id',
56
+ filterableField: 'product_category_id'
57
+ }),
58
+ (0, middlewares_2.addGlobalAttributesIfNecessary)(),
59
+ (0, framework_1.clearFiltersByKey)(['include_globals']),
60
+ ],
61
+ },
62
+ ...middlewares_1.storeAttributesProductsMiddlewares,
63
+ ];
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BsdWdpbi9hdHRyaWJ1dGVzL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUs2QjtBQUM3Qix3REFBb0U7QUFDcEUsNkNBQXdEO0FBQ3hELDREQUE4QztBQUM5Qyx3REFBNEU7QUFDNUUsOEdBQW9GO0FBQ3BGLDREQUE0RTtBQUUvRCxRQUFBLCtCQUErQixHQUFzQjtJQUNoRTtRQUNFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNoQixPQUFPLEVBQUUsb0NBQXdCO1FBQ2pDLFdBQVcsRUFBRTtZQUNYLElBQUEscUNBQXlCLEVBQ3ZCLHFDQUF3QixFQUN4QixXQUFXLENBQUMsOEJBQThCLENBQzNDO1lBQ0QsSUFBQSxnQ0FBb0IsRUFBQztnQkFDbkIsVUFBVSxFQUFFLG9DQUF3QixDQUFDLFVBQVU7Z0JBQy9DLFVBQVUsRUFBRSxjQUFjO2dCQUMxQixlQUFlLEVBQUUscUJBQXFCO2FBQ3ZDLENBQUM7WUFDRixJQUFBLDRDQUE4QixHQUFFO1lBQ2hDLElBQUEsNkJBQWlCLEVBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3ZDO0tBQ0Y7SUFDRCxHQUFHLGdEQUFrQztDQUN0QyxDQUFDIn0=
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.storeAttributesProductsMiddlewares = void 0;
40
+ const framework_1 = require("@medusajs/framework");
41
+ const utils_1 = require("@medusajs/framework/utils");
42
+ const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
43
+ const OriginalQueryConfig = __importStar(require("@medusajs/medusa/api/store/products/query-config"));
44
+ const validators_1 = require("./validators");
45
+ const attribute_value_product_1 = __importDefault(require("../../../../../links/attribute-value-product"));
46
+ // TODO: Remove once https://github.com/medusajs/medusa/pull/13714 is merged and import instead
47
+ const IndexEngineFeatureFlag = {
48
+ key: "index_engine",
49
+ default_val: false,
50
+ env_key: "MEDUSA_FF_INDEX_ENGINE",
51
+ description: "Enable Medusa to use the index engine in some part of the core",
52
+ };
53
+ exports.storeAttributesProductsMiddlewares = [
54
+ {
55
+ method: ["GET"],
56
+ matcher: "/store/plugin/attributes/products",
57
+ middlewares: [
58
+ (0, framework_1.authenticate)("customer", ["session", "bearer"], {
59
+ allowUnauthenticated: true,
60
+ }),
61
+ (0, framework_1.validateAndTransformQuery)(validators_1.ExtendedStoreGetProductsParams, OriginalQueryConfig.listProductQueryConfig),
62
+ (0, index_1.filterByValidSalesChannels)(),
63
+ (req, res, next) => {
64
+ const canUseIndex = !((0, utils_1.isPresent)(req.filterableFields.tags) ||
65
+ (0, utils_1.isPresent)(req.filterableFields.categories));
66
+ if (utils_1.FeatureFlag.isFeatureEnabled(IndexEngineFeatureFlag.key) &&
67
+ canUseIndex) {
68
+ return next();
69
+ }
70
+ return (0, framework_1.maybeApplyLinkFilter)({
71
+ entryPoint: "product_sales_channel",
72
+ resourceId: "product_id",
73
+ filterableField: "sales_channel_id",
74
+ })(req, res, next);
75
+ },
76
+ (0, framework_1.applyDefaultFilters)({
77
+ status: utils_1.ProductStatus.PUBLISHED,
78
+ // TODO: the type here seems off and the implementation does not take into account $and and $or possible filters. Might be worth re working (original type used here was StoreGetProductsParamsType)
79
+ categories: (filters, fields) => {
80
+ const categoryIds = filters.category_id;
81
+ delete filters.category_id;
82
+ if (!(0, utils_1.isPresent)(categoryIds)) {
83
+ return;
84
+ }
85
+ return { id: categoryIds, is_internal: false, is_active: true };
86
+ },
87
+ }),
88
+ (0, framework_1.maybeApplyLinkFilter)({
89
+ entryPoint: attribute_value_product_1.default.entryPoint,
90
+ filterableField: 'attribute_value_id',
91
+ resourceId: 'product_id'
92
+ }),
93
+ (0, index_1.normalizeDataForContext)(),
94
+ (0, index_1.setPricingContext)(),
95
+ (0, index_1.setTaxContext)(),
96
+ (0, framework_1.clearFiltersByKey)(["region_id", "country_code", "province", "cart_id"]),
97
+ ],
98
+ },
99
+ ];
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BsdWdpbi9hdHRyaWJ1dGVzL3Byb2R1Y3RzL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUE2SjtBQUM3SixxREFBa0Y7QUFFbEYsd0VBQXFKO0FBQ3JKLHNHQUF1RjtBQUN2Riw2Q0FBOEQ7QUFDOUQsMkdBQWlGO0FBRWpGLCtGQUErRjtBQUMvRixNQUFNLHNCQUFzQixHQUFHO0lBQzdCLEdBQUcsRUFBRSxjQUFjO0lBQ25CLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLE9BQU8sRUFBRSx3QkFBd0I7SUFDakMsV0FBVyxFQUFFLGdFQUFnRTtDQUM5RSxDQUFDO0FBRVcsUUFBQSxrQ0FBa0MsR0FBc0I7SUFDakU7UUFDSSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDZixPQUFPLEVBQUUsbUNBQW1DO1FBQzVDLFdBQVcsRUFBRTtZQUNYLElBQUEsd0JBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzlDLG9CQUFvQixFQUFFLElBQUk7YUFDM0IsQ0FBQztZQUNGLElBQUEscUNBQXlCLEVBQ3ZCLDJDQUE4QixFQUM5QixtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FDM0M7WUFDRCxJQUFBLGtDQUEwQixHQUFFO1lBQzVCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUNuQixJQUFBLGlCQUFTLEVBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDcEMsSUFBQSxpQkFBUyxFQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FDM0MsQ0FBQTtnQkFDRCxJQUNFLG1CQUFXLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDO29CQUN4RCxXQUFXLEVBQ1gsQ0FBQztvQkFDRCxPQUFPLElBQUksRUFBRSxDQUFBO2dCQUNmLENBQUM7Z0JBRUQsT0FBTyxJQUFBLGdDQUFvQixFQUFDO29CQUMxQixVQUFVLEVBQUUsdUJBQXVCO29CQUNuQyxVQUFVLEVBQUUsWUFBWTtvQkFDeEIsZUFBZSxFQUFFLGtCQUFrQjtpQkFDcEMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDcEIsQ0FBQztZQUNELElBQUEsK0JBQW1CLEVBQUM7Z0JBQ2xCLE1BQU0sRUFBRSxxQkFBYSxDQUFDLFNBQVM7Z0JBQy9CLG9NQUFvTTtnQkFDcE0sVUFBVSxFQUFFLENBQUMsT0FBWSxFQUFFLE1BQWdCLEVBQUUsRUFBRTtvQkFDN0MsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtvQkFDdkMsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFBO29CQUUxQixJQUFJLENBQUMsSUFBQSxpQkFBUyxFQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7d0JBQzVCLE9BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQTtnQkFDakUsQ0FBQzthQUNGLENBQUM7WUFDRixJQUFBLGdDQUFvQixFQUFDO2dCQUNuQixVQUFVLEVBQUUsaUNBQXFCLENBQUMsVUFBVTtnQkFDNUMsZUFBZSxFQUFFLG9CQUFvQjtnQkFDckMsVUFBVSxFQUFFLFlBQVk7YUFDekIsQ0FBQztZQUNGLElBQUEsK0JBQXVCLEdBQUU7WUFDekIsSUFBQSx5QkFBaUIsR0FBRTtZQUNuQixJQUFBLHFCQUFhLEdBQUU7WUFDZixJQUFBLDZCQUFpQixFQUFDLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDeEU7S0FDRjtDQUNOLENBQUEifQ==
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listProductQueryConfig = exports.retrieveProductQueryConfig = void 0;
4
+ const query_config_1 = require("@medusajs/medusa/api/store/products/query-config");
5
+ const defaultExtendedStoreProductFields = [
6
+ '*attribute_values',
7
+ ];
8
+ exports.retrieveProductQueryConfig = {
9
+ defaults: [
10
+ ...query_config_1.defaultStoreProductFields,
11
+ ...defaultExtendedStoreProductFields
12
+ ],
13
+ isList: false,
14
+ };
15
+ exports.listProductQueryConfig = {
16
+ ...exports.retrieveProductQueryConfig,
17
+ isList: true,
18
+ defaultLimit: 50,
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9zdG9yZS9wbHVnaW4vYXR0cmlidXRlcy9wcm9kdWN0cy9xdWVyeS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUZBQTZGO0FBRTdGLE1BQU0saUNBQWlDLEdBQUc7SUFDdEMsbUJBQW1CO0NBQ3RCLENBQUE7QUFFWSxRQUFBLDBCQUEwQixHQUFHO0lBQ3RDLFFBQVEsRUFBRTtRQUNOLEdBQUcsd0NBQXlCO1FBQzVCLEdBQUcsaUNBQWlDO0tBQ3ZDO0lBQ0QsTUFBTSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQTtBQUVZLFFBQUEsc0JBQXNCLEdBQUc7SUFDbEMsR0FBRyxrQ0FBMEI7SUFDN0IsTUFBTSxFQUFFLElBQUk7SUFDWixZQUFZLEVBQUUsRUFBRTtDQUNuQixDQUFBIn0=
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ // TODO: This is messy, but since Medusa doesn't allow to extend Core GET routes
3
+ // params validators, the only way i see to query core routes with linked
4
+ // custom modules entities, is to recreate route (in a custom one) middleware and
5
+ // apply the custom params validator
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.GET = void 0;
8
+ const utils_1 = require("@medusajs/framework/utils");
9
+ const helpers_1 = require("@medusajs/medusa/api/store/products/helpers");
10
+ const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
11
+ const GET = async (req, res) => {
12
+ return await getProducts(req, res);
13
+ };
14
+ exports.GET = GET;
15
+ async function getProducts(req, res) {
16
+ const remoteQuery = req.scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
17
+ const context = {};
18
+ const withInventoryQuantity = req.queryConfig.fields.some((field) => field.includes("variants.inventory_quantity"));
19
+ if (withInventoryQuantity) {
20
+ req.queryConfig.fields = req.queryConfig.fields.filter((field) => !field.includes("variants.inventory_quantity"));
21
+ }
22
+ if ((0, utils_1.isPresent)(req.pricingContext)) {
23
+ context["variants.calculated_price"] = {
24
+ context: req.pricingContext,
25
+ };
26
+ }
27
+ const queryObject = (0, utils_1.remoteQueryObjectFromString)({
28
+ entryPoint: "product",
29
+ variables: {
30
+ filters: req.filterableFields,
31
+ ...req.queryConfig.pagination,
32
+ ...context,
33
+ },
34
+ fields: req.queryConfig.fields,
35
+ });
36
+ const { rows: products, metadata } = await remoteQuery(queryObject);
37
+ if (withInventoryQuantity) {
38
+ await (0, index_1.wrapVariantsWithInventoryQuantityForSalesChannel)(req, products.map((product) => product.variants).flat(1));
39
+ }
40
+ await (0, helpers_1.wrapProductsWithTaxPrices)(req, products);
41
+ res.json({
42
+ products,
43
+ count: metadata.count,
44
+ offset: metadata.skip,
45
+ limit: metadata.take,
46
+ });
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BsdWdpbi9hdHRyaWJ1dGVzL3Byb2R1Y3RzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxnRkFBZ0Y7QUFDaEYseUVBQXlFO0FBQ3pFLGlGQUFpRjtBQUNqRixvQ0FBb0M7OztBQUlwQyxxREFBOEc7QUFDOUcseUVBQTRHO0FBQzVHLHdFQUFnSDtBQUd6RyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQTJELEVBQzNELEdBQXVELEVBQ3ZELEVBQUU7SUFDRixPQUFPLE1BQU0sV0FBVyxDQUFDLEdBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUM7QUFMVyxRQUFBLEdBQUcsT0FLZDtBQUVGLEtBQUssVUFBVSxXQUFXLENBQ3hCLEdBQXlELEVBQ3pELEdBQXVEO0lBRXZELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlFLE1BQU0sT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUMzQixNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xFLEtBQUssQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FDOUMsQ0FBQztJQUVGLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUMxQixHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ3BELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLElBQUEsaUJBQVMsRUFBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsR0FBRztZQUNyQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGNBQWM7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1FBQzlDLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1lBQzdCLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVO1lBQzdCLEdBQUcsT0FBTztTQUNYO1FBQ0QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtLQUMvQixDQUFDLENBQUM7SUFFSCxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVwRSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFBLHdEQUFnRCxFQUNwRCxHQUFHLEVBQ0gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDcEQsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLElBQUEsbUNBQXlCLEVBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxRQUFRO1FBQ1IsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1FBQ3JCLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSTtRQUNyQixLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUk7S0FDckIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExtendedStoreGetProductsParams = void 0;
4
+ const validators_1 = require("@medusajs/medusa/api/store/products/validators");
5
+ const common_1 = require("@medusajs/medusa/api/utils/common-validators/common");
6
+ const index_1 = require("@medusajs/medusa/api/utils/common-validators/index");
7
+ const validators_2 = require("@medusajs/medusa/api/utils/validators");
8
+ const zod_1 = require("zod");
9
+ //TODO: this is messy, but since Medusa exports an effect, the only way (AFAIK) to extend the schema
10
+ // and to keep the logic of the effects at the same time, the only way is to recreate
11
+ // the Medusa zod object, merge with the custom one and apply the effect
12
+ const OriginalStoreGetProductsParamsWithoutEffect = (0, validators_2.createFindParams)({
13
+ offset: 0,
14
+ limit: 50,
15
+ })
16
+ .merge(validators_1.StoreGetProductsParamsFields)
17
+ .merge(zod_1.z
18
+ .object({
19
+ variants: zod_1.z
20
+ .object({
21
+ options: zod_1.z
22
+ .object({
23
+ value: zod_1.z.string().optional(),
24
+ option_id: zod_1.z.string().optional(),
25
+ })
26
+ .optional(),
27
+ })
28
+ .merge((0, common_1.applyAndAndOrOperators)(validators_1.StoreGetProductVariantsParamsFields))
29
+ .optional(),
30
+ })
31
+ .merge((0, common_1.applyAndAndOrOperators)(index_1.StoreGetProductParamsDirectFields))
32
+ .strict());
33
+ const CustomStoreGetProductsParams = zod_1.z.object({
34
+ attribute_value_id: zod_1.z.array(zod_1.z.string()).optional(),
35
+ });
36
+ exports.ExtendedStoreGetProductsParams = OriginalStoreGetProductsParamsWithoutEffect.merge(CustomStoreGetProductsParams)
37
+ // .merge(applyAndAndOrOperators(CustomStoreGetProductsParams))
38
+ .transform((0, common_1.recursivelyNormalizeSchema)(index_1.transformProductParams));
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvcGx1Z2luL2F0dHJpYnV0ZXMvcHJvZHVjdHMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrRUFHd0Q7QUFDeEQsZ0ZBRzZEO0FBQzdELDhFQUc0RDtBQUM1RCxzRUFBeUU7QUFDekUsNkJBQXdCO0FBRXhCLG9HQUFvRztBQUNwRyxxRkFBcUY7QUFDckYsd0VBQXdFO0FBQ3hFLE1BQU0sMkNBQTJDLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUNuRSxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQztLQUNDLEtBQUssQ0FBQyx5Q0FBNEIsQ0FBQztLQUNuQyxLQUFLLENBQ0osT0FBQztLQUNFLE1BQU0sQ0FBQztJQUNOLFFBQVEsRUFBRSxPQUFDO1NBQ1IsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLE9BQUM7YUFDUCxNQUFNLENBQUM7WUFDTixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUM1QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtTQUNqQyxDQUFDO2FBQ0QsUUFBUSxFQUFFO0tBQ2QsQ0FBQztTQUNELEtBQUssQ0FBQyxJQUFBLCtCQUFzQixFQUFDLGdEQUFtQyxDQUFDLENBQUM7U0FDbEUsUUFBUSxFQUFFO0NBQ2QsQ0FBQztLQUNELEtBQUssQ0FBQyxJQUFBLCtCQUFzQixFQUFDLHlDQUFpQyxDQUFDLENBQUM7S0FDaEUsTUFBTSxFQUFFLENBQ1osQ0FBQztBQUVKLE1BQU0sNEJBQTRCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxrQkFBa0IsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNuRCxDQUFDLENBQUM7QUFLVSxRQUFBLDhCQUE4QixHQUN6QywyQ0FBMkMsQ0FBQyxLQUFLLENBQy9DLDRCQUE0QixDQUM3QjtJQUNDLCtEQUErRDtLQUM5RCxTQUFTLENBQUMsSUFBQSxtQ0FBMEIsRUFBQyw4QkFBc0IsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeListAttributesQueryConfig = exports.retrieveStoreAttributesQueryConfig = exports.storeDefaultAttributeFields = void 0;
4
+ exports.storeDefaultAttributeFields = [
5
+ 'id',
6
+ 'name',
7
+ 'description',
8
+ 'handle',
9
+ 'metadata',
10
+ '*possible_values',
11
+ ];
12
+ exports.retrieveStoreAttributesQueryConfig = {
13
+ defaults: exports.storeDefaultAttributeFields,
14
+ isList: false,
15
+ };
16
+ exports.storeListAttributesQueryConfig = {
17
+ ...exports.retrieveStoreAttributesQueryConfig,
18
+ isList: true,
19
+ defaultLimit: 50,
20
+ };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9zdG9yZS9wbHVnaW4vYXR0cmlidXRlcy9xdWVyeS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSwyQkFBMkIsR0FBRztJQUN2QyxJQUFJO0lBQ0osTUFBTTtJQUNOLGFBQWE7SUFDYixRQUFRO0lBQ1IsVUFBVTtJQUNWLGtCQUFrQjtDQUNyQixDQUFBO0FBRVksUUFBQSxrQ0FBa0MsR0FBRztJQUM5QyxRQUFRLEVBQUUsbUNBQTJCO0lBQ3JDLE1BQU0sRUFBRSxLQUFLO0NBQ2hCLENBQUE7QUFFWSxRQUFBLDhCQUE4QixHQUFHO0lBQzFDLEdBQUcsMENBQWtDO0lBQ3JDLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLEVBQUU7Q0FDbkIsQ0FBQSJ9
@@ -0,0 +1,15 @@
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 { data: attributes, metadata } = await query.graph({
8
+ entity: 'attribute',
9
+ ...req.queryConfig,
10
+ filters: req.filterableFields,
11
+ });
12
+ return res.status(200).json({ attributes, count: metadata?.count, limit: metadata?.take, offset: metadata?.skip });
13
+ };
14
+ exports.GET = GET;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BsdWdpbi9hdHRyaWJ1dGVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFzRTtBQUcvRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBZ0QsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDL0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3JELE1BQU0sRUFBRSxXQUFXO1FBQ25CLEdBQUcsR0FBRyxDQUFDLFdBQVc7UUFDbEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7S0FDaEMsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDdEgsQ0FBQyxDQUFBO0FBUlksUUFBQSxHQUFHLE9BUWYifQ==
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StoreGetAttributesParams = exports.StoreGetAttributesParamsFields = void 0;
4
+ const validators_1 = require("@medusajs/medusa/api/utils/validators");
5
+ const common_validators_1 = require("../../../utils/common-validators");
6
+ const common_1 = require("@medusajs/medusa/api/utils/common-validators/common");
7
+ exports.StoreGetAttributesParamsFields = common_validators_1.GetAttributesParams.strict();
8
+ exports.StoreGetAttributesParams = (0, validators_1.createFindParams)({
9
+ offset: 0,
10
+ limit: 50,
11
+ })
12
+ .merge(exports.StoreGetAttributesParamsFields)
13
+ .merge((0, common_1.applyAndAndOrOperators)(common_validators_1.StoreGetAttributeParamsDirectFields).strict());
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvcGx1Z2luL2F0dHJpYnV0ZXMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzRUFBeUU7QUFFekUsd0VBQTRHO0FBQzVHLGdGQUE2RjtBQUVoRixRQUFBLDhCQUE4QixHQUFHLHVDQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO0FBRzlELFFBQUEsd0JBQXdCLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUN2RCxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQztLQUNDLEtBQUssQ0FBQyxzQ0FBOEIsQ0FBQztLQUNyQyxLQUFLLENBQUMsSUFBQSwrQkFBc0IsRUFBQyx1REFBbUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMifQ==
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ async function GET(req, res) {
5
+ res.sendStatus(200);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BsdWdpbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUtDO0FBTE0sS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QixDQUFDIn0=
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetAttributesParams = exports.StoreGetAttributeParamsDirectFields = void 0;
4
+ const validators_1 = require("@medusajs/medusa/api/utils/validators");
5
+ const zod_1 = require("zod");
6
+ exports.StoreGetAttributeParamsDirectFields = zod_1.z.object({
7
+ id: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
8
+ name: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
9
+ description: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
10
+ handle: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
11
+ created_at: (0, validators_1.createOperatorMap)().optional(),
12
+ updated_at: (0, validators_1.createOperatorMap)().optional(),
13
+ deleted_at: (0, validators_1.createOperatorMap)().optional(),
14
+ });
15
+ exports.GetAttributesParams = zod_1.z
16
+ .object({
17
+ product_category_id: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
18
+ include_globals: zod_1.z.preprocess((val) => {
19
+ return val === 'true';
20
+ }, zod_1.z.boolean().default(true))
21
+ })
22
+ .merge(exports.StoreGetAttributeParamsDirectFields);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3V0aWxzL2NvbW1vbi12YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUF5RTtBQUN6RSw2QkFBdUI7QUFFVixRQUFBLG1DQUFtQyxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEQsRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3pELElBQUksRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMzRCxXQUFXLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbEUsTUFBTSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzdELFVBQVUsRUFBRSxJQUFBLDhCQUFpQixHQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLFVBQVUsRUFBRSxJQUFBLDhCQUFpQixHQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLFVBQVUsRUFBRSxJQUFBLDhCQUFpQixHQUFFLENBQUMsUUFBUSxFQUFFO0NBQzdDLENBQUMsQ0FBQTtBQUVXLFFBQUEsbUJBQW1CLEdBQUcsT0FBQztLQUMvQixNQUFNLENBQUM7SUFDSixtQkFBbUIsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxRSxlQUFlLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FDekIsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNKLE9BQU8sR0FBRyxLQUFLLE1BQU0sQ0FBQTtJQUN6QixDQUFDLEVBQ0QsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FDNUI7Q0FDSixDQUFDO0tBQ0QsS0FBSyxDQUFDLDJDQUFtQyxDQUFDLENBQUEifQ==
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeAttributesBaseRoute = exports.adminAttributesRoutePath = void 0;
4
+ exports.adminAttributesRoutePath = '/admin/plugin/attributes';
5
+ exports.storeAttributesBaseRoute = '/store/plugin/attributes';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS91dGlscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSx3QkFBd0IsR0FBRywwQkFBMEIsQ0FBQTtBQUNyRCxRQUFBLHdCQUF3QixHQUFHLDBCQUEwQixDQUFBIn0=
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.addGlobalAttributesIfNecessary = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const attribute_product_category_1 = __importDefault(require("../../links/attribute-product-category"));
9
+ const addGlobalAttributesIfNecessary = () => async (req, res, next) => {
10
+ const filterableFields = req.filterableFields || {};
11
+ const shouldIncludeGlobals = filterableFields.include_globals;
12
+ if (!shouldIncludeGlobals) {
13
+ return next();
14
+ }
15
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
16
+ const { data: allAttributes } = await query.graph({
17
+ entity: 'attribute',
18
+ fields: ['id']
19
+ });
20
+ const { data: attributesWithCategories } = await query.graph({
21
+ entity: attribute_product_category_1.default.entryPoint,
22
+ fields: ['attribute_id']
23
+ });
24
+ const alreadyFilteredAttributeIds = (filterableFields.id || []);
25
+ const allAttributesIds = allAttributes.map(attr => attr.id);
26
+ const attributesWithCategoriesIds = (0, utils_1.deduplicate)(attributesWithCategories.map(attrCat => attrCat.attribute_id));
27
+ req.filterableFields.id = [
28
+ ...alreadyFilteredAttributeIds,
29
+ ...(0, utils_1.arrayDifference)(allAttributesIds, attributesWithCategoriesIds)
30
+ ];
31
+ return next();
32
+ };
33
+ exports.addGlobalAttributesIfNecessary = addGlobalAttributesIfNecessary;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3V0aWxzL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHFEQUFvRztBQUNwRyx3R0FBOEU7QUFFdkUsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLElBQXdCLEVBQUUsRUFBRTtJQUM1SCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUE7SUFDbkQsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUE7SUFFN0QsSUFBRyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLEVBQUUsQ0FBQTtJQUNqQixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDOUMsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO0tBQ2pCLENBQUMsQ0FBQTtJQUNGLE1BQU0sRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekQsTUFBTSxFQUFFLG9DQUF3QixDQUFDLFVBQVU7UUFDM0MsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDO0tBQzNCLENBQUMsQ0FBQTtJQUVGLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFhLENBQUE7SUFDM0UsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzNELE1BQU0sMkJBQTJCLEdBQUcsSUFBQSxtQkFBVyxFQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQzlHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUc7UUFDdEIsR0FBRywyQkFBMkI7UUFDOUIsR0FBRyxJQUFBLHVCQUFlLEVBQUMsZ0JBQWdCLEVBQUUsMkJBQTJCLENBQUM7S0FDcEUsQ0FBQTtJQUNELE9BQU8sSUFBSSxFQUFFLENBQUE7QUFDakIsQ0FBQyxDQUFBO0FBMUJZLFFBQUEsOEJBQThCLGtDQTBCMUMifQ==
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const attribute_1 = __importDefault(require("../modules/attribute"));
8
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: attribute_1.default.linkable.attribute,
11
+ isList: true
12
+ }, {
13
+ linkable: product_1.default.linkable.productCategory,
14
+ isList: true
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXByb2R1Y3QtY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvYXR0cmlidXRlLXByb2R1Y3QtY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBdUQ7QUFDdkQscUVBQWtEO0FBQ2xELHVFQUFxRDtBQUVyRCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3JCO0lBQ0ksUUFBUSxFQUFFLG1CQUFlLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDNUMsTUFBTSxFQUFFLElBQUk7Q0FDZixFQUNEO0lBQ0ksUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLGVBQWU7SUFDaEQsTUFBTSxFQUFFLElBQUk7Q0FDZixDQUNKLENBQUEifQ==
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const attribute_1 = __importDefault(require("../modules/attribute"));
8
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: attribute_1.default.linkable.attributeValue,
11
+ isList: true,
12
+ }, {
13
+ linkable: product_1.default.linkable.product,
14
+ isList: true,
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXZhbHVlLXByb2R1Y3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvYXR0cmlidXRlLXZhbHVlLXByb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBc0Q7QUFDdEQscUVBQWtEO0FBQ2xELHVFQUFvRDtBQUVwRCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3JCO0lBQ0ksUUFBUSxFQUFFLG1CQUFlLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFDakQsTUFBTSxFQUFFLElBQUk7Q0FDZixFQUNEO0lBQ0ksUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsTUFBTSxFQUFFLElBQUk7Q0FDZixDQUNKLENBQUEifQ==
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttributeWorkflowsEvents = void 0;
4
+ exports.AttributeWorkflowsEvents = {
5
+ CREATED: 'attribute.created',
6
+ UPDATED: 'attribute.updated',
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdHRyaWJ1dGUvZXZlbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsd0JBQXdCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixPQUFPLEVBQUUsbUJBQW1CO0NBQy9CLENBQUEifQ==
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ATTRIBUTE_MODULE = void 0;
7
+ const service_1 = __importDefault(require("./service"));
8
+ const utils_1 = require("@medusajs/framework/utils");
9
+ exports.ATTRIBUTE_MODULE = 'attribute';
10
+ exports.default = (0, utils_1.Module)(exports.ATTRIBUTE_MODULE, {
11
+ service: service_1.default,
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdHRyaWJ1dGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0RBQThDO0FBQzlDLHFEQUFrRDtBQUVyQyxRQUFBLGdCQUFnQixHQUFHLFdBQVcsQ0FBQTtBQUUzQyxrQkFBZSxJQUFBLGNBQU0sRUFBQyx3QkFBZ0IsRUFBRTtJQUNwQyxPQUFPLEVBQUUsaUJBQXNCO0NBQ2xDLENBQUMsQ0FBQSJ9
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250319161229 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250319161229 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "attribute" drop constraint if exists "attribute_handle_unique";`);
8
+ this.addSql(`create table if not exists "attribute" ("id" text not null, "name" text not null, "description" text null, "is_variant_defining" boolean not null default true, "is_filterable" boolean not null default true, "handle" text not null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "attribute_pkey" primary key ("id"));`);
9
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_ATTRIBUTE_NAME" ON "attribute" (name) WHERE deleted_at IS NULL;`);
10
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_attribute_handle_unique" ON "attribute" (handle) WHERE deleted_at IS NULL;`);
11
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_attribute_deleted_at" ON "attribute" (deleted_at) WHERE deleted_at IS NULL;`);
12
+ this.addSql(`create table if not exists "attribute_value" ("id" text not null, "value" text not null, "rank" integer not null, "metadata" jsonb null, "attribute_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "attribute_value_pkey" primary key ("id"));`);
13
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_attribute_value_attribute_id" ON "attribute_value" (attribute_id) WHERE deleted_at IS NULL;`);
14
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_attribute_value_deleted_at" ON "attribute_value" (deleted_at) WHERE deleted_at IS NULL;`);
15
+ this.addSql(`alter table if exists "attribute_value" add constraint "attribute_value_attribute_id_foreign" foreign key ("attribute_id") references "attribute" ("id") on update cascade on delete cascade;`);
16
+ }
17
+ async down() {
18
+ this.addSql(`alter table if exists "attribute_value" drop constraint if exists "attribute_value_attribute_id_foreign";`);
19
+ this.addSql(`drop table if exists "attribute" cascade;`);
20
+ this.addSql(`drop table if exists "attribute_value" cascade;`);
21
+ }
22
+ }
23
+ exports.Migration20250319161229 = Migration20250319161229;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTAzMTkxNjEyMjkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdHRyaWJ1dGUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDMxOTE2MTIyOS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsd0ZBQXdGLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsTUFBTSxDQUFDLGliQUFpYixDQUFDLENBQUM7UUFDL2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpR0FBaUcsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxNQUFNLENBQUMsbUhBQW1ILENBQUMsQ0FBQztRQUNqSSxJQUFJLENBQUMsTUFBTSxDQUFDLDZHQUE2RyxDQUFDLENBQUM7UUFFM0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnV0FBZ1csQ0FBQyxDQUFDO1FBQzlXLElBQUksQ0FBQyxNQUFNLENBQUMsNkhBQTZILENBQUMsQ0FBQztRQUMzSSxJQUFJLENBQUMsTUFBTSxDQUFDLHlIQUF5SCxDQUFDLENBQUM7UUFFdkksSUFBSSxDQUFDLE1BQU0sQ0FBQywrTEFBK0wsQ0FBQyxDQUFDO0lBQy9NLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLDJHQUEyRyxDQUFDLENBQUM7UUFFekgsSUFBSSxDQUFDLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxNQUFNLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUNqRSxDQUFDO0NBRUY7QUF4QkQsMERBd0JDIn0=
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250320182643 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250320182643 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "UQ_attribute_id_value" ON "attribute_value" (attribute_id, value) WHERE deleted_at IS NULL;`);
8
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "UQ_attribute_id_rank" ON "attribute_value" (attribute_id, rank) WHERE deleted_at IS NULL;`);
9
+ }
10
+ async down() {
11
+ this.addSql(`drop index if exists "UQ_attribute_id_value";`);
12
+ this.addSql(`drop index if exists "UQ_attribute_id_rank";`);
13
+ }
14
+ }
15
+ exports.Migration20250320182643 = Migration20250320182643;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTAzMjAxODI2NDMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdHRyaWJ1dGUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDMyMDE4MjY0My50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsZ0lBQWdJLENBQUMsQ0FBQztRQUM5SSxJQUFJLENBQUMsTUFBTSxDQUFDLDhIQUE4SCxDQUFDLENBQUM7SUFDOUksQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUVGO0FBWkQsMERBWUMifQ==
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250321162638 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250321162638 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`drop index if exists "UQ_attribute_id_rank";`);
8
+ }
9
+ async down() {
10
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "UQ_attribute_id_rank" ON "attribute_value" (attribute_id, rank) WHERE deleted_at IS NULL;`);
11
+ }
12
+ }
13
+ exports.Migration20250321162638 = Migration20250321162638;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTAzMjExNjI2MzguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdHRyaWJ1dGUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDMyMTE2MjYzOC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw4SEFBOEgsQ0FBQyxDQUFDO0lBQzlJLENBQUM7Q0FFRjtBQVZELDBEQVVDIn0=
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250505144933 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250505144933 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "attribute_set" drop constraint if exists "attribute_set_handle_unique";`);
8
+ this.addSql(`create table if not exists "attribute_set" ("id" text not null, "name" text not null, "description" text null, "handle" text not null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "attribute_set_pkey" primary key ("id"));`);
9
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_ATTRIBUTE_SET_NAME" ON "attribute_set" (name) WHERE deleted_at IS NULL;`);
10
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_attribute_set_handle_unique" ON "attribute_set" (handle) WHERE deleted_at IS NULL;`);
11
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_attribute_set_deleted_at" ON "attribute_set" (deleted_at) WHERE deleted_at IS NULL;`);
12
+ this.addSql(`create table if not exists "attribute_set_attributes" ("attribute_set_id" text not null, "attribute_id" text not null, constraint "attribute_set_attributes_pkey" primary key ("attribute_set_id", "attribute_id"));`);
13
+ this.addSql(`alter table if exists "attribute_set_attributes" add constraint "attribute_set_attributes_attribute_set_id_foreign" foreign key ("attribute_set_id") references "attribute_set" ("id") on update cascade on delete cascade;`);
14
+ this.addSql(`alter table if exists "attribute_set_attributes" add constraint "attribute_set_attributes_attribute_id_foreign" foreign key ("attribute_id") references "attribute" ("id") on update cascade on delete cascade;`);
15
+ }
16
+ async down() {
17
+ this.addSql(`alter table if exists "attribute_set_attributes" drop constraint if exists "attribute_set_attributes_attribute_set_id_foreign";`);
18
+ this.addSql(`drop table if exists "attribute_set" cascade;`);
19
+ this.addSql(`drop table if exists "attribute_set_attributes" cascade;`);
20
+ }
21
+ }
22
+ exports.Migration20250505144933 = Migration20250505144933;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA1MDUxNDQ5MzMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdHRyaWJ1dGUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDUwNTE0NDkzMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsZ0dBQWdHLENBQUMsQ0FBQztRQUM5RyxJQUFJLENBQUMsTUFBTSxDQUFDLHFWQUFxVixDQUFDLENBQUM7UUFDblcsSUFBSSxDQUFDLE1BQU0sQ0FBQyx5R0FBeUcsQ0FBQyxDQUFDO1FBQ3ZILElBQUksQ0FBQyxNQUFNLENBQUMsMkhBQTJILENBQUMsQ0FBQztRQUN6SSxJQUFJLENBQUMsTUFBTSxDQUFDLHFIQUFxSCxDQUFDLENBQUM7UUFFbkksSUFBSSxDQUFDLE1BQU0sQ0FBQyxzTkFBc04sQ0FBQyxDQUFDO1FBRXBPLElBQUksQ0FBQyxNQUFNLENBQUMsNk5BQTZOLENBQUMsQ0FBQztRQUMzTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlOQUFpTixDQUFDLENBQUM7SUFDak8sQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsaUlBQWlJLENBQUMsQ0FBQztRQUUvSSxJQUFJLENBQUMsTUFBTSxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FFRjtBQXZCRCwwREF1QkMifQ==
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250505201747 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250505201747 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`create table if not exists "attribute_possible_value" ("id" text not null, "value" text not null, "rank" integer not null, "metadata" jsonb null, "attribute_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "attribute_possible_value_pkey" primary key ("id"));`);
8
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_attribute_possible_value_attribute_id" ON "attribute_possible_value" (attribute_id) WHERE deleted_at IS NULL;`);
9
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_attribute_possible_value_deleted_at" ON "attribute_possible_value" (deleted_at) WHERE deleted_at IS NULL;`);
10
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "UQ_attribute_id_value" ON "attribute_possible_value" (attribute_id, value) WHERE deleted_at IS NULL;`);
11
+ this.addSql(`alter table if exists "attribute_possible_value" drop constraint if exists "attribute_possible_value_attribute_id_foreign";`);
12
+ this.addSql(`alter table if exists "attribute_possible_value" add constraint "attribute_possible_value_attribute_id_foreign" foreign key ("attribute_id") references "attribute" ("id") on update cascade;`);
13
+ this.addSql(`drop index if exists "UQ_attribute_id_value";`);
14
+ }
15
+ async down() {
16
+ this.addSql(`drop table if exists "attribute_possible_value" cascade;`);
17
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "UQ_attribute_id_value" ON "attribute_value" (attribute_id, value) WHERE deleted_at IS NULL;`);
18
+ }
19
+ }
20
+ exports.Migration20250505201747 = Migration20250505201747;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA1MDUyMDE3NDcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9hdHRyaWJ1dGUvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDUwNTIwMTc0Ny50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsa1hBQWtYLENBQUMsQ0FBQztRQUNoWSxJQUFJLENBQUMsTUFBTSxDQUFDLCtJQUErSSxDQUFDLENBQUM7UUFDN0osSUFBSSxDQUFDLE1BQU0sQ0FBQywySUFBMkksQ0FBQyxDQUFDO1FBQ3pKLElBQUksQ0FBQyxNQUFNLENBQUMseUlBQXlJLENBQUMsQ0FBQztRQUV2SixJQUFJLENBQUMsTUFBTSxDQUFDLDZIQUE2SCxDQUFDLENBQUM7UUFDM0ksSUFBSSxDQUFDLE1BQU0sQ0FBQywrTEFBK0wsQ0FBQyxDQUFDO1FBRTdNLElBQUksQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxNQUFNLENBQUMsZ0lBQWdJLENBQUMsQ0FBQztJQUNoSixDQUFDO0NBRUY7QUFwQkQsMERBb0JDIn0=