@devx-commerce/plugin-product-reviews-svaraa 3.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/.medusa/server/plugins/product-reviews/src/api/store/product-reviews/middlewares.d.ts +175 -0
  2. package/.medusa/server/plugins/product-reviews/src/api/store/product-reviews/middlewares.js +75 -0
  3. package/.medusa/server/src/admin/index.js +20 -0
  4. package/.medusa/server/src/admin/index.mjs +21 -0
  5. package/.medusa/server/src/api/admin/product-review-stats/middlewares.d.ts +118 -0
  6. package/.medusa/server/src/api/admin/product-review-stats/middlewares.js +46 -0
  7. package/.medusa/server/src/api/admin/product-review-stats/refresh/route.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/product-review-stats/refresh/route.js +19 -0
  9. package/.medusa/server/src/api/admin/product-review-stats/route.d.ts +2 -0
  10. package/.medusa/server/src/api/admin/product-review-stats/route.js +16 -0
  11. package/.medusa/server/src/api/admin/product-reviews/[id]/response/middlewares.d.ts +11 -0
  12. package/.medusa/server/src/api/admin/product-reviews/[id]/response/middlewares.js +26 -0
  13. package/.medusa/server/src/api/admin/product-reviews/[id]/response/route.d.ts +5 -0
  14. package/.medusa/server/src/api/admin/product-reviews/[id]/response/route.js +66 -0
  15. package/.medusa/server/src/api/admin/product-reviews/[id]/route.d.ts +3 -0
  16. package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +30 -0
  17. package/.medusa/server/src/api/admin/product-reviews/[id]/status/middlewares.d.ts +11 -0
  18. package/.medusa/server/src/api/admin/product-reviews/[id]/status/middlewares.js +16 -0
  19. package/.medusa/server/src/api/admin/product-reviews/[id]/status/route.d.ts +3 -0
  20. package/.medusa/server/src/api/admin/product-reviews/[id]/status/route.js +15 -0
  21. package/.medusa/server/src/api/admin/product-reviews/bulk-upload/route.d.ts +3 -0
  22. package/.medusa/server/src/api/admin/product-reviews/bulk-upload/route.js +28 -0
  23. package/.medusa/server/src/api/admin/product-reviews/config/route.d.ts +4 -0
  24. package/.medusa/server/src/api/admin/product-reviews/config/route.js +33 -0
  25. package/.medusa/server/src/api/admin/product-reviews/delete/route.d.ts +3 -0
  26. package/.medusa/server/src/api/admin/product-reviews/delete/route.js +14 -0
  27. package/.medusa/server/src/api/admin/product-reviews/middlewares.d.ts +149 -0
  28. package/.medusa/server/src/api/admin/product-reviews/middlewares.js +84 -0
  29. package/.medusa/server/src/api/admin/product-reviews/route.d.ts +4 -0
  30. package/.medusa/server/src/api/admin/product-reviews/route.js +62 -0
  31. package/.medusa/server/src/api/admin/product-reviews/validators.d.ts +87 -0
  32. package/.medusa/server/src/api/admin/product-reviews/validators.js +25 -0
  33. package/.medusa/server/src/api/middlewares.d.ts +2 -0
  34. package/.medusa/server/src/api/middlewares.js +21 -0
  35. package/.medusa/server/src/api/store/product-review-stats/middlewares.d.ts +118 -0
  36. package/.medusa/server/src/api/store/product-review-stats/middlewares.js +44 -0
  37. package/.medusa/server/src/api/store/product-review-stats/route.d.ts +2 -0
  38. package/.medusa/server/src/api/store/product-review-stats/route.js +16 -0
  39. package/.medusa/server/src/api/store/product-reviews/[id]/route.d.ts +3 -0
  40. package/.medusa/server/src/api/store/product-reviews/[id]/route.js +20 -0
  41. package/.medusa/server/src/api/store/product-reviews/eligibility/route.d.ts +3 -0
  42. package/.medusa/server/src/api/store/product-reviews/eligibility/route.js +25 -0
  43. package/.medusa/server/src/api/store/product-reviews/middlewares.d.ts +322 -0
  44. package/.medusa/server/src/api/store/product-reviews/middlewares.js +139 -0
  45. package/.medusa/server/src/api/store/product-reviews/route.d.ts +4 -0
  46. package/.medusa/server/src/api/store/product-reviews/route.js +42 -0
  47. package/.medusa/server/src/jobs/refresh-all-product-review-stats.d.ts +9 -0
  48. package/.medusa/server/src/jobs/refresh-all-product-review-stats.js +43 -0
  49. package/.medusa/server/src/lib/api-response.d.ts +75 -0
  50. package/.medusa/server/src/lib/api-response.js +102 -0
  51. package/.medusa/server/src/links/product-review-product.d.ts +2 -0
  52. package/.medusa/server/src/links/product-review-product.js +14 -0
  53. package/.medusa/server/src/links/product-review-stats-product.d.ts +2 -0
  54. package/.medusa/server/src/links/product-review-stats-product.js +13 -0
  55. package/.medusa/server/src/modules/product-review/index.d.ts +77 -0
  56. package/.medusa/server/src/modules/product-review/index.js +13 -0
  57. package/.medusa/server/src/modules/product-review/migrations/Migration20250408075709.d.ts +5 -0
  58. package/.medusa/server/src/modules/product-review/migrations/Migration20250408075709.js +27 -0
  59. package/.medusa/server/src/modules/product-review/migrations/Migration20250425092433.d.ts +5 -0
  60. package/.medusa/server/src/modules/product-review/migrations/Migration20250425092433.js +31 -0
  61. package/.medusa/server/src/modules/product-review/migrations/Migration20250428134029.d.ts +5 -0
  62. package/.medusa/server/src/modules/product-review/migrations/Migration20250428134029.js +20 -0
  63. package/.medusa/server/src/modules/product-review/migrations/Migration20250430123125.d.ts +5 -0
  64. package/.medusa/server/src/modules/product-review/migrations/Migration20250430123125.js +25 -0
  65. package/.medusa/server/src/modules/product-review/migrations/Migration20250501112941.d.ts +5 -0
  66. package/.medusa/server/src/modules/product-review/migrations/Migration20250501112941.js +16 -0
  67. package/.medusa/server/src/modules/product-review/migrations/Migration20250612122020.d.ts +5 -0
  68. package/.medusa/server/src/modules/product-review/migrations/Migration20250612122020.js +14 -0
  69. package/.medusa/server/src/modules/product-review/models/index.d.ts +6 -0
  70. package/.medusa/server/src/modules/product-review/models/index.js +14 -0
  71. package/.medusa/server/src/modules/product-review/models/product-review-config.d.ts +5 -0
  72. package/.medusa/server/src/modules/product-review/models/product-review-config.js +10 -0
  73. package/.medusa/server/src/modules/product-review/models/product-review-response.d.ts +24 -0
  74. package/.medusa/server/src/modules/product-review/models/product-review-response.js +14 -0
  75. package/.medusa/server/src/modules/product-review/models/product-review-stats.d.ts +11 -0
  76. package/.medusa/server/src/modules/product-review/models/product-review-stats.js +16 -0
  77. package/.medusa/server/src/modules/product-review/models/product-review.d.ts +29 -0
  78. package/.medusa/server/src/modules/product-review/models/product-review.js +34 -0
  79. package/.medusa/server/src/modules/product-review/models/review-associated-media.d.ts +29 -0
  80. package/.medusa/server/src/modules/product-review/models/review-associated-media.js +14 -0
  81. package/.medusa/server/src/modules/product-review/service.d.ts +145 -0
  82. package/.medusa/server/src/modules/product-review/service.js +211 -0
  83. package/.medusa/server/src/modules/product-review/types/common.d.ts +7 -0
  84. package/.medusa/server/src/modules/product-review/types/common.js +3 -0
  85. package/.medusa/server/src/modules/product-review/types/index.d.ts +2 -0
  86. package/.medusa/server/src/modules/product-review/types/index.js +19 -0
  87. package/.medusa/server/src/modules/product-review/types/mutations.d.ts +36 -0
  88. package/.medusa/server/src/modules/product-review/types/mutations.js +3 -0
  89. package/.medusa/server/src/subscribers/product-review-bulk-upload.d.ts +8 -0
  90. package/.medusa/server/src/subscribers/product-review-bulk-upload.js +132 -0
  91. package/.medusa/server/src/utils/types/product-reviews.d.ts +110 -0
  92. package/.medusa/server/src/utils/types/product-reviews.js +3 -0
  93. package/.medusa/server/src/workflows/customer/find-or-create-customer.d.ts +14 -0
  94. package/.medusa/server/src/workflows/customer/find-or-create-customer.js +106 -0
  95. package/.medusa/server/src/workflows/order/steps/validate-order-item-exists.d.ts +12 -0
  96. package/.medusa/server/src/workflows/order/steps/validate-order-item-exists.js +37 -0
  97. package/.medusa/server/src/workflows/product/steps/validate-product-exists.d.ts +10 -0
  98. package/.medusa/server/src/workflows/product/steps/validate-product-exists.js +28 -0
  99. package/.medusa/server/src/workflows/product-reviews/steps/check-review-eligibility.d.ts +15 -0
  100. package/.medusa/server/src/workflows/product-reviews/steps/check-review-eligibility.js +78 -0
  101. package/.medusa/server/src/workflows/product-reviews/steps/create-product-review-response.d.ts +37 -0
  102. package/.medusa/server/src/workflows/product-reviews/steps/create-product-review-response.js +17 -0
  103. package/.medusa/server/src/workflows/product-reviews/steps/create-product-reviews.d.ts +40 -0
  104. package/.medusa/server/src/workflows/product-reviews/steps/create-product-reviews.js +79 -0
  105. package/.medusa/server/src/workflows/product-reviews/steps/delete-product-review-responses.d.ts +6 -0
  106. package/.medusa/server/src/workflows/product-reviews/steps/delete-product-review-responses.js +23 -0
  107. package/.medusa/server/src/workflows/product-reviews/steps/delete-review-step.d.ts +4 -0
  108. package/.medusa/server/src/workflows/product-reviews/steps/delete-review-step.js +13 -0
  109. package/.medusa/server/src/workflows/product-reviews/steps/download-and-parse-csv.d.ts +6 -0
  110. package/.medusa/server/src/workflows/product-reviews/steps/download-and-parse-csv.js +63 -0
  111. package/.medusa/server/src/workflows/product-reviews/steps/recalculate-product-review-stats.d.ts +16 -0
  112. package/.medusa/server/src/workflows/product-reviews/steps/recalculate-product-review-stats.js +15 -0
  113. package/.medusa/server/src/workflows/product-reviews/steps/throw-error-step.d.ts +3 -0
  114. package/.medusa/server/src/workflows/product-reviews/steps/throw-error-step.js +9 -0
  115. package/.medusa/server/src/workflows/product-reviews/steps/update-product-review-config.d.ts +5 -0
  116. package/.medusa/server/src/workflows/product-reviews/steps/update-product-review-config.js +38 -0
  117. package/.medusa/server/src/workflows/product-reviews/steps/update-product-review-response.d.ts +3 -0
  118. package/.medusa/server/src/workflows/product-reviews/steps/update-product-review-response.js +36 -0
  119. package/.medusa/server/src/workflows/product-reviews/steps/update-product-review.d.ts +53 -0
  120. package/.medusa/server/src/workflows/product-reviews/steps/update-product-review.js +65 -0
  121. package/.medusa/server/src/workflows/product-reviews/steps/validate-review-csv-headers.d.ts +10 -0
  122. package/.medusa/server/src/workflows/product-reviews/steps/validate-review-csv-headers.js +55 -0
  123. package/.medusa/server/src/workflows/product-reviews/steps/verify-purchase-history.d.ts +10 -0
  124. package/.medusa/server/src/workflows/product-reviews/steps/verify-purchase-history.js +70 -0
  125. package/.medusa/server/src/workflows/product-reviews/workflows/bulk-upload-product-reviews.d.ts +9 -0
  126. package/.medusa/server/src/workflows/product-reviews/workflows/bulk-upload-product-reviews.js +25 -0
  127. package/.medusa/server/src/workflows/product-reviews/workflows/check-review-eligibility.d.ts +2 -0
  128. package/.medusa/server/src/workflows/product-reviews/workflows/check-review-eligibility.js +10 -0
  129. package/.medusa/server/src/workflows/product-reviews/workflows/create-product-review-response.d.ts +36 -0
  130. package/.medusa/server/src/workflows/product-reviews/workflows/create-product-review-response.js +10 -0
  131. package/.medusa/server/src/workflows/product-reviews/workflows/create-product-review.d.ts +51 -0
  132. package/.medusa/server/src/workflows/product-reviews/workflows/create-product-review.js +43 -0
  133. package/.medusa/server/src/workflows/product-reviews/workflows/delete-product-review-responses.d.ts +5 -0
  134. package/.medusa/server/src/workflows/product-reviews/workflows/delete-product-review-responses.js +10 -0
  135. package/.medusa/server/src/workflows/product-reviews/workflows/delete-product-review.d.ts +3 -0
  136. package/.medusa/server/src/workflows/product-reviews/workflows/delete-product-review.js +10 -0
  137. package/.medusa/server/src/workflows/product-reviews/workflows/download-csv.d.ts +6 -0
  138. package/.medusa/server/src/workflows/product-reviews/workflows/download-csv.js +13 -0
  139. package/.medusa/server/src/workflows/product-reviews/workflows/refresh-product-review-stats.d.ts +17 -0
  140. package/.medusa/server/src/workflows/product-reviews/workflows/refresh-product-review-stats.js +10 -0
  141. package/.medusa/server/src/workflows/product-reviews/workflows/update-product-review-config.d.ts +6 -0
  142. package/.medusa/server/src/workflows/product-reviews/workflows/update-product-review-config.js +10 -0
  143. package/.medusa/server/src/workflows/product-reviews/workflows/update-product-review-responses.d.ts +2 -0
  144. package/.medusa/server/src/workflows/product-reviews/workflows/update-product-review-responses.js +10 -0
  145. package/.medusa/server/src/workflows/product-reviews/workflows/update-product-review.d.ts +52 -0
  146. package/.medusa/server/src/workflows/product-reviews/workflows/update-product-review.js +15 -0
  147. package/.medusa/server/src/workflows/product-reviews/workflows/verify-purchase-history.d.ts +12 -0
  148. package/.medusa/server/src/workflows/product-reviews/workflows/verify-purchase-history.js +10 -0
  149. package/README.md +205 -0
  150. package/package.json +104 -0
@@ -0,0 +1,5 @@
1
+ export declare const deleteProductReviewResponseWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<{
2
+ id: string;
3
+ }, {
4
+ success: boolean;
5
+ }, []>;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteProductReviewResponseWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
5
+ const delete_product_review_responses_1 = require("../steps/delete-product-review-responses");
6
+ exports.deleteProductReviewResponseWorkflow = (0, workflows_sdk_1.createWorkflow)("delete-product-review-response-workflow", (input) => {
7
+ const result = (0, delete_product_review_responses_1.deleteProductReviewResponseStep)(input);
8
+ return new workflows_sdk_1.WorkflowResponse(result);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXByb2R1Y3QtcmV2aWV3LXJlc3BvbnNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC1yZXZpZXdzL3dvcmtmbG93cy9kZWxldGUtcHJvZHVjdC1yZXZpZXctcmVzcG9uc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUEyRTtBQUUzRSw4RkFBMkY7QUFFOUUsUUFBQSxtQ0FBbUMsR0FBRyxJQUFBLDhCQUFjLEVBQy9ELHlDQUF5QyxFQUN6QyxDQUFDLEtBQXFCLEVBQUUsRUFBRTtJQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFBLGlFQUErQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXRELE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ export declare const deleteProductReviewWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<{
2
+ id: string;
3
+ }, boolean, []>;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteProductReviewWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
5
+ const delete_review_step_1 = require("../steps/delete-review-step");
6
+ exports.deleteProductReviewWorkflow = (0, workflows_sdk_1.createWorkflow)("delete-product-review-workflow", (input) => {
7
+ const result = (0, delete_review_step_1.deleteProductReviewStep)(input);
8
+ return new workflows_sdk_1.WorkflowResponse(result);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXByb2R1Y3QtcmV2aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0LXJldmlld3Mvd29ya2Zsb3dzL2RlbGV0ZS1wcm9kdWN0LXJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBMkU7QUFDM0Usb0VBQXNFO0FBRXpELFFBQUEsMkJBQTJCLEdBQUcsSUFBQSw4QkFBYyxFQUN2RCxnQ0FBZ0MsRUFDaEMsQ0FBQyxLQUFxQixFQUFFLEVBQUU7SUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBQSw0Q0FBdUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,6 @@
1
+ type DownloadCsvInput = {
2
+ csv_url: string;
3
+ headersOnly?: boolean;
4
+ };
5
+ export declare const downloadCsvWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<DownloadCsvInput, import("../steps/download-and-parse-csv").ParsedCsvRow[], []>;
6
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.downloadCsvWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
5
+ const download_and_parse_csv_1 = require("../steps/download-and-parse-csv");
6
+ exports.downloadCsvWorkflow = (0, workflows_sdk_1.createWorkflow)("download-csv", (input) => {
7
+ const parsedCsv = (0, download_and_parse_csv_1.downloadAndParseCsvStep)({
8
+ csv_url: input.csv_url,
9
+ headersOnly: input.headersOnly,
10
+ });
11
+ return new workflows_sdk_1.WorkflowResponse(parsedCsv);
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtY3N2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0LXJldmlld3Mvd29ya2Zsb3dzL2Rvd25sb2FkLWNzdi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBMkU7QUFDM0UsNEVBQTBFO0FBTzdELFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQyxjQUFjLEVBQ2QsQ0FBQyxLQUF1QixFQUFFLEVBQUU7SUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBQSxnREFBdUIsRUFBQztRQUN4QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO0tBQy9CLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,17 @@
1
+ export declare const refreshProductReviewStatsWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<{
2
+ productIds: string[];
3
+ }, {
4
+ id: string;
5
+ product_id: string;
6
+ average_rating: number | null;
7
+ review_count: number;
8
+ rating_count_1: number;
9
+ rating_count_2: number;
10
+ rating_count_3: number;
11
+ rating_count_4: number;
12
+ rating_count_5: number;
13
+ raw_average_rating: Record<string, unknown> | null;
14
+ created_at: Date;
15
+ updated_at: Date;
16
+ deleted_at: Date | null;
17
+ }[], []>;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.refreshProductReviewStatsWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
5
+ const recalculate_product_review_stats_1 = require("../steps/recalculate-product-review-stats");
6
+ exports.refreshProductReviewStatsWorkflow = (0, workflows_sdk_1.createWorkflow)("refresh-product-review-stats-workflow", (input) => {
7
+ const stats = (0, recalculate_product_review_stats_1.recalculateProductReviewStatsStep)(input.productIds);
8
+ return new workflows_sdk_1.WorkflowResponse(stats);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaC1wcm9kdWN0LXJldmlldy1zdGF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC1yZXZpZXdzL3dvcmtmbG93cy9yZWZyZXNoLXByb2R1Y3QtcmV2aWV3LXN0YXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUlpQztBQUVqQyxnR0FBOEY7QUFFakYsUUFBQSxpQ0FBaUMsR0FBRyxJQUFBLDhCQUFjLEVBQzdELHVDQUF1QyxFQUN2QyxDQUFDLEtBQTZDLEVBQUUsRUFBRTtJQUNoRCxNQUFNLEtBQUssR0FBRyxJQUFBLG9FQUFpQyxFQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVsRSxPQUFPLElBQUksZ0NBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,6 @@
1
+ type UpdateProductReviewConfigInput = {
2
+ key: string;
3
+ value: boolean;
4
+ };
5
+ export declare const updateProductReviewConfigWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<UpdateProductReviewConfigInput, any, []>;
6
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateProductReviewConfigWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
5
+ const update_product_review_config_1 = require("../steps/update-product-review-config");
6
+ exports.updateProductReviewConfigWorkflow = (0, workflows_sdk_1.createWorkflow)("update-product-review-config-workflow", (input) => {
7
+ const result = (0, update_product_review_config_1.updateProductReviewConfigStep)(input);
8
+ return new workflows_sdk_1.WorkflowResponse(result);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3QtcmV2aWV3LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC1yZXZpZXdzL3dvcmtmbG93cy91cGRhdGUtcHJvZHVjdC1yZXZpZXctY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUlpQztBQUNqQyx3RkFBc0Y7QUFPekUsUUFBQSxpQ0FBaUMsR0FBRyxJQUFBLDhCQUFjLEVBQzdELHVDQUF1QyxFQUN2QyxDQUFDLEtBQW1ELEVBQUUsRUFBRTtJQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFBLDREQUE2QixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBELE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ import type { CreateProductReviewResponseInput } from "../../../modules/product-review/types/mutations";
2
+ export declare const updateProductReviewResponseWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<CreateProductReviewResponseInput, any[], []>;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateProductReviewResponseWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
5
+ const update_product_review_response_1 = require("../steps/update-product-review-response");
6
+ exports.updateProductReviewResponseWorkflow = (0, workflows_sdk_1.createWorkflow)("update-product-review-response-workflow", (input) => {
7
+ const updatedProductReviewResponses = (0, update_product_review_response_1.updateProductReviewResponseStep)(input);
8
+ return new workflows_sdk_1.WorkflowResponse(updatedProductReviewResponses);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3QtcmV2aWV3LXJlc3BvbnNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC1yZXZpZXdzL3dvcmtmbG93cy91cGRhdGUtcHJvZHVjdC1yZXZpZXctcmVzcG9uc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUlpQztBQUdqQyw0RkFBMEY7QUFFN0UsUUFBQSxtQ0FBbUMsR0FBRyxJQUFBLDhCQUFjLEVBQy9ELHlDQUF5QyxFQUN6QyxDQUFDLEtBQXFELEVBQUUsRUFBRTtJQUN4RCxNQUFNLDZCQUE2QixHQUNqQyxJQUFBLGdFQUErQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXpDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,52 @@
1
+ export declare const updateProductReviewWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<{
2
+ rating?: number | undefined;
3
+ title?: string | undefined;
4
+ description?: string | undefined;
5
+ medias?: {
6
+ url: string;
7
+ type: "IMAGE" | "VIDEO";
8
+ }[] | undefined;
9
+ } & {
10
+ id: string;
11
+ name?: string;
12
+ email?: string;
13
+ phone?: string;
14
+ is_admin_verified?: boolean;
15
+ is_verified_purchase?: boolean;
16
+ created_at?: Date;
17
+ updated_at?: Date;
18
+ }, {
19
+ id: string;
20
+ name: string | null;
21
+ email: string | null;
22
+ phone: string | null;
23
+ rating: number;
24
+ title: string | null;
25
+ description: string | null;
26
+ product_id: string | null;
27
+ associated_medias: {
28
+ id: string;
29
+ url: string;
30
+ type: "IMAGE" | "VIDEO";
31
+ product_review: /*elided*/ any;
32
+ created_at: Date;
33
+ updated_at: Date;
34
+ deleted_at: Date | null;
35
+ product_review_id: string;
36
+ }[];
37
+ response: {
38
+ id: string;
39
+ content: string;
40
+ admin_user_id: string;
41
+ product_review: /*elided*/ any;
42
+ created_at: Date;
43
+ updated_at: Date;
44
+ deleted_at: Date | null;
45
+ product_review_id: string;
46
+ };
47
+ is_verified_purchase: boolean;
48
+ is_admin_verified: boolean;
49
+ created_at: Date;
50
+ updated_at: Date;
51
+ deleted_at: Date | null;
52
+ }, []>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateProductReviewWorkflow = void 0;
4
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
5
+ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
6
+ const update_product_review_1 = require("../steps/update-product-review");
7
+ exports.updateProductReviewWorkflow = (0, workflows_sdk_1.createWorkflow)("update-product-review-workflow", (input) => {
8
+ const productReview = (0, update_product_review_1.updateProductReviewStep)(input);
9
+ (0, core_flows_1.emitEventStep)({
10
+ eventName: "product_review.updated",
11
+ data: { id: productReview.id },
12
+ });
13
+ return new workflows_sdk_1.WorkflowResponse(productReview);
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3QtcmV2aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0LXJldmlld3Mvd29ya2Zsb3dzL3VwZGF0ZS1wcm9kdWN0LXJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFBNEQ7QUFDNUQsMkRBSWlDO0FBRWpDLDBFQUF5RTtBQUU1RCxRQUFBLDJCQUEyQixHQUFHLElBQUEsOEJBQWMsRUFDdkQsZ0NBQWdDLEVBQ2hDLENBQ0UsS0FXQyxFQUNELEVBQUU7SUFDRixNQUFNLGFBQWEsR0FBRyxJQUFBLCtDQUF1QixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXJELElBQUEsMEJBQWEsRUFBQztRQUNaLFNBQVMsRUFBRSx3QkFBd0I7UUFDbkMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7S0FDL0IsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLGdDQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,12 @@
1
+ type VerifyPurchaseInput = {
2
+ customer_id: string;
3
+ product_id: string;
4
+ order_id?: string;
5
+ order_item_id?: string;
6
+ };
7
+ export declare const verifyPurchaseHistoryWorkflow: import("@medusajs/workflows-sdk").ReturnWorkflow<VerifyPurchaseInput, {
8
+ isVerified: boolean;
9
+ order_id: any;
10
+ order_item_id: any;
11
+ }, []>;
12
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyPurchaseHistoryWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/workflows-sdk");
5
+ const verify_purchase_history_1 = require("../steps/verify-purchase-history");
6
+ exports.verifyPurchaseHistoryWorkflow = (0, workflows_sdk_1.createWorkflow)("verify-purchase-history-workflow", (input) => {
7
+ const verificationResult = (0, verify_purchase_history_1.verifyPurchaseHistoryStep)(input);
8
+ return new workflows_sdk_1.WorkflowResponse(verificationResult);
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXB1cmNoYXNlLWhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtcmV2aWV3cy93b3JrZmxvd3MvdmVyaWZ5LXB1cmNoYXNlLWhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBSWlDO0FBQ2pDLDhFQUE2RTtBQVNoRSxRQUFBLDZCQUE2QixHQUFHLElBQUEsOEJBQWMsRUFDekQsa0NBQWtDLEVBQ2xDLENBQUMsS0FBd0MsRUFBRSxFQUFFO0lBQzNDLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSxtREFBeUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxPQUFPLElBQUksZ0NBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQ0YsQ0FBQyJ9
package/README.md ADDED
@@ -0,0 +1,205 @@
1
+ <p align="center">
2
+ <a href="https://www.medusajs.com">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/59018053/229103275-b5e482bb-4601-46e6-8142-244f531cebdb.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
6
+ <img alt="Medusa logo" src="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
7
+ </picture>
8
+ </a>
9
+ </p>
10
+ <h1 align="center">
11
+ Medusa Plugin - Product Reviews
12
+ </h1>
13
+
14
+ <h4 align="center">
15
+ <a href="https://docs.medusajs.com">Documentation</a> |
16
+ <a href="https://www.medusajs.com">Website</a>
17
+ </h4>
18
+
19
+ <p align="center">
20
+ A Medusa plugin that adds product review functionality to your Medusa store. This plugin allows customers to leave reviews for products, helping other customers make informed purchasing decisions.
21
+ </p>
22
+ <p align="center">
23
+ <a href="https://github.com/medusajs/medusa/blob/master/CONTRIBUTING.md">
24
+ <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat" alt="PRs welcome!" />
25
+ </a>
26
+ <a href="https://www.producthunt.com/posts/medusa"><img src="https://img.shields.io/badge/Product%20Hunt-%231%20Product%20of%20the%20Day-%23DA552E" alt="Product Hunt"></a>
27
+ <a href="https://discord.gg/xpCwq3Kfn8">
28
+ <img src="https://img.shields.io/badge/chat-on%20discord-7289DA.svg" alt="Discord Chat" />
29
+ </a>
30
+ <a href="https://twitter.com/intent/follow?screen_name=medusajs">
31
+ <img src="https://img.shields.io/twitter/follow/medusajs.svg?label=Follow%20@medusajs" alt="Follow @medusajs" />
32
+ </a>
33
+ </p>
34
+
35
+ ## Features
36
+
37
+ - Product review management
38
+ - Review submission and moderation
39
+ - Integration with Medusa admin dashboard
40
+ - Customizable review settings
41
+ - Review workflow management
42
+ - Review response system
43
+ - Review statistics and analytics
44
+ - Image attachments for reviews
45
+ - Rating system (1-5 stars)
46
+ - Review status management (pending, approved, flagged)
47
+
48
+ ## Technical Overview
49
+
50
+ ### Data Models
51
+
52
+ The plugin implements three main data models:
53
+
54
+ 1. **Product Review**
55
+
56
+ - Basic review information (name, email, rating, content)
57
+ - Product and order associations
58
+ - Image attachments
59
+ - Review status (pending/approved/flagged)
60
+ - Order line item reference
61
+
62
+ 2. **Product Review Response**
63
+
64
+ - Store owner responses to reviews
65
+ - Response content and metadata
66
+
67
+ 3. **Product Review Stats**
68
+ - Aggregated statistics for products
69
+ - Review counts
70
+ - Average ratings
71
+ - Rating distribution (1-5 stars)
72
+
73
+ ### Core Functionality
74
+
75
+ - **Review Management**
76
+
77
+ - Create, update, and delete reviews
78
+ - Moderate review status
79
+ - Attach images to reviews
80
+ - Respond to customer reviews
81
+
82
+ - **Statistics and Analytics**
83
+
84
+ - Automatic calculation of product review statistics
85
+ - Rating distribution tracking
86
+ - Average rating computation
87
+ - Review count tracking
88
+
89
+ - **Configuration Options**
90
+ - Default review status (pending/approved/flagged)
91
+ - Customizable review workflow
92
+ - Integration with Medusa's admin interface
93
+
94
+ ### Database Features
95
+
96
+ - Optimized indexes for product and order lookups
97
+ - Efficient statistics calculation using SQL aggregation
98
+ - Support for review search functionality
99
+ - Relationship management between reviews and products
100
+
101
+ ## Prerequisites
102
+
103
+ - Node.js >= 20
104
+ - Medusa v2.4.0 or higher
105
+ - PostgreSQL database
106
+
107
+ ## Installation
108
+
109
+ 1. Install the plugin:
110
+
111
+ ```bash
112
+ npm install @devx-commerce/product-reviews
113
+ # or
114
+ yarn add @devx-commerce/product-reviews
115
+ ```
116
+
117
+ 2. Add the plugin to your `medusa-config.js`:
118
+
119
+ ```javascript
120
+ const plugins = [
121
+ // ... other plugins
122
+ {
123
+ resolve: "@devx-commerce/product-reviews",
124
+ options: {
125
+ defaultReviewStatus: "approved", // or "pending" or "flagged"
126
+ },
127
+ },
128
+ ];
129
+ ```
130
+
131
+ ## API Endpoints
132
+
133
+ ### Admin API
134
+
135
+ #### Product Reviews
136
+
137
+ - `GET /admin/product-reviews` - List all product reviews
138
+ - Query parameters:
139
+ - `fields`: Fields to include in response
140
+ - `filters`: Filter criteria
141
+ - `limit`: Number of items per page
142
+ - `offset`: Page offset
143
+
144
+ #### Product Review Stats
145
+
146
+ - `GET /admin/product-review-stats` - List all product review statistics
147
+ - Query parameters:
148
+ - `fields`: Fields to include in response
149
+ - `filters`: Filter criteria
150
+ - `limit`: Number of items per page
151
+ - `offset`: Page offset
152
+
153
+ ### Store API
154
+
155
+ #### Product Reviews
156
+
157
+ - `GET /store/product-reviews` - List all product reviews
158
+ - Query parameters:
159
+ - `fields`: Fields to include in response
160
+ - `filters`: Filter criteria
161
+ - `limit`: Number of items per page
162
+ - `offset`: Page offset
163
+ - `POST /store/product-reviews` - Create or update product reviews
164
+ - Request body:
165
+ ```typescript
166
+ {
167
+ reviews: Array<{
168
+ id?: string;
169
+ name?: string;
170
+ email?: string;
171
+ rating: number;
172
+ content?: string;
173
+ order_line_item_id?: string;
174
+ product_id?: string;
175
+ order_id?: string;
176
+ images?: string[];
177
+ }>;
178
+ }
179
+ ```
180
+
181
+ #### Product Review Stats
182
+
183
+ - `GET /store/product-review-stats` - List all product review statistics
184
+ - Query parameters:
185
+ - `fields`: Fields to include in response
186
+ - `filters`: Filter criteria
187
+ - `limit`: Number of items per page
188
+ - `offset`: Page offset
189
+
190
+ ### Response Format
191
+
192
+ All list endpoints return data in the following format:
193
+
194
+ ```typescript
195
+ {
196
+ data: T[], // Array of items
197
+ count: number, // Total count of items
198
+ offset: number, // Current page offset
199
+ limit: number // Items per page
200
+ }
201
+ ```
202
+
203
+ ## License
204
+
205
+ MIT
package/package.json ADDED
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "@devx-commerce/plugin-product-reviews-svaraa",
3
+ "version": "3.3.0-beta.1",
4
+ "description": "Product Reviews Plugin for Medusa",
5
+ "author": "devx",
6
+ "license": "MIT",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/devx-commerce/plugin-reviews-svaraa"
13
+ },
14
+ "homepage": "https://github.com/devx-commerce/plugin-reviews-svaraa",
15
+ "files": [".medusa/server"],
16
+ "exports": {
17
+ "./package.json": "./package.json",
18
+ "./workflows": "./.medusa/server/src/workflows/index.js",
19
+ "./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
20
+ "./providers/*": "./.medusa/server/src/providers/*/index.js",
21
+ "./*": "./.medusa/server/src/*.js"
22
+ },
23
+ "keywords": [
24
+ "medusa",
25
+ "plugin",
26
+ "product-reviews",
27
+ "medusa-plugin-product-reviews",
28
+ "medusa-plugin",
29
+ "medusa-v2",
30
+ "devx",
31
+ "medusa-plugin-other"
32
+ ],
33
+ "scripts": {
34
+ "build": "medusa plugin:build",
35
+ "dev": "medusa plugin:develop",
36
+ "dev:publish": "medusa plugin:publish",
37
+ "prepublishOnly": "medusa plugin:build",
38
+ "db:generate": "DB_USERNAME=${DB_USERNAME:-postgres} DB_PASSWORD=${DB_PASSWORD:-postgres} medusa plugin:db:generate",
39
+ "typecheck": "tsc --noEmit",
40
+ "release": "yarn standard-version",
41
+ "format": "prettier --write .",
42
+ "format:check": "prettier --check ."
43
+ },
44
+ "devDependencies": {
45
+ "@medusajs/admin-sdk": "2.7.0",
46
+ "@medusajs/cli": "2.7.0",
47
+ "@medusajs/framework": "2.7.0",
48
+ "@medusajs/icons": "2.7.0",
49
+ "@medusajs/medusa": "2.7.0",
50
+ "@medusajs/test-utils": "2.7.0",
51
+ "@medusajs/ui": "4.0.0",
52
+ "@mikro-orm/cli": "6.4.3",
53
+ "@mikro-orm/core": "6.4.3",
54
+ "@mikro-orm/knex": "6.4.3",
55
+ "@mikro-orm/migrations": "6.4.3",
56
+ "@mikro-orm/postgresql": "6.4.3",
57
+ "@swc/core": "1.5.7",
58
+ "@types/node": "^20.0.0",
59
+ "@types/react": "^18.3.2",
60
+ "@types/react-dom": "^18.2.25",
61
+ "awilix": "^8.0.1",
62
+ "pg": "^8.13.0",
63
+ "prettier": "^3.5.3",
64
+ "prop-types": "^15.8.1",
65
+ "react": "^18.2.0",
66
+ "react-dom": "^18.2.0",
67
+ "standard-version": "^9.5.0",
68
+ "ts-node": "^10.9.2",
69
+ "typescript": "^5.6.2",
70
+ "vite": "^5.2.11",
71
+ "yalc": "^1.0.0-pre.53"
72
+ },
73
+ "peerDependencies": {
74
+ "@medusajs/admin-sdk": "2.7.0",
75
+ "@medusajs/cli": "2.7.0",
76
+ "@medusajs/framework": "2.7.0",
77
+ "@medusajs/icons": "2.7.0",
78
+ "@medusajs/medusa": "2.7.0",
79
+ "@medusajs/test-utils": "2.7.0",
80
+ "@medusajs/ui": "4.0.0",
81
+ "@mikro-orm/cli": "6.4.3",
82
+ "@mikro-orm/core": "6.4.3",
83
+ "@mikro-orm/knex": "6.4.3",
84
+ "@mikro-orm/migrations": "6.4.3",
85
+ "@mikro-orm/postgresql": "6.4.3",
86
+ "awilix": "^8.0.1",
87
+ "pg": "^8.13.0"
88
+ },
89
+ "engines": {
90
+ "node": ">=20"
91
+ },
92
+ "installConfig": {
93
+ "hoistingLimits": "workspaces"
94
+ },
95
+ "dependencies": {
96
+ "@medusajs/js-sdk": "2.7.0",
97
+ "@medusajs/workflows-sdk": "2.7.0",
98
+ "axios": "^1.9.0",
99
+ "csv-parse": "^5.6.0",
100
+ "user": "^0.0.0",
101
+ "zod": "3.22.4"
102
+ },
103
+ "packageManager": "yarn@3.2.3+sha512.f26f951f67de0c6a33ee381e5ff364709c87e70eb5e65c694e4facde3512f1fa80b8679e6ba31ce7d340fbb46f08dd683af9457e240f25a204be7427940d767e"
104
+ }