@medusajs/medusa 1.1.62 → 1.1.63-adminc.21

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/dist/api/routes/admin/collections/list-collections.d.ts +16 -3
  2. package/dist/api/routes/admin/collections/list-collections.js +88 -10
  3. package/dist/api/routes/admin/collections/list-collections.js.map +1 -1
  4. package/dist/api/routes/admin/discounts/list-discounts.d.ts +6 -0
  5. package/dist/api/routes/admin/discounts/list-discounts.js +45 -8
  6. package/dist/api/routes/admin/discounts/list-discounts.js.map +1 -1
  7. package/dist/api/routes/admin/orders/list-orders.js +1 -1
  8. package/dist/api/routes/admin/orders/list-orders.js.map +1 -1
  9. package/dist/api/routes/admin/products/list-products.js +1 -2
  10. package/dist/api/routes/admin/products/list-products.js.map +1 -1
  11. package/dist/api/routes/admin/tax-rates/add-to-product-types.d.ts +29 -0
  12. package/dist/api/routes/admin/tax-rates/add-to-product-types.js +177 -0
  13. package/dist/api/routes/admin/tax-rates/add-to-product-types.js.map +1 -0
  14. package/dist/api/routes/admin/tax-rates/add-to-products.d.ts +29 -0
  15. package/dist/api/routes/admin/tax-rates/add-to-products.js +173 -0
  16. package/dist/api/routes/admin/tax-rates/add-to-products.js.map +1 -0
  17. package/dist/api/routes/admin/tax-rates/add-to-shipping-options.d.ts +29 -0
  18. package/dist/api/routes/admin/tax-rates/add-to-shipping-options.js +177 -0
  19. package/dist/api/routes/admin/tax-rates/add-to-shipping-options.js.map +1 -0
  20. package/dist/api/routes/admin/tax-rates/create-tax-rate.d.ts +35 -0
  21. package/dist/api/routes/admin/tax-rates/create-tax-rate.js +286 -0
  22. package/dist/api/routes/admin/tax-rates/create-tax-rate.js.map +1 -0
  23. package/dist/api/routes/admin/tax-rates/delete-tax-rate.d.ts +28 -0
  24. package/dist/api/routes/admin/tax-rates/delete-tax-rate.js +84 -0
  25. package/dist/api/routes/admin/tax-rates/delete-tax-rate.js.map +1 -0
  26. package/dist/api/routes/admin/tax-rates/get-tax-rate.d.ts +26 -0
  27. package/dist/api/routes/admin/tax-rates/get-tax-rate.js +106 -0
  28. package/dist/api/routes/admin/tax-rates/get-tax-rate.js.map +1 -0
  29. package/dist/api/routes/admin/tax-rates/index.d.ts +21 -0
  30. package/dist/api/routes/admin/tax-rates/index.js +74 -0
  31. package/dist/api/routes/admin/tax-rates/index.js.map +1 -0
  32. package/dist/api/routes/admin/tax-rates/list-tax-rates.d.ts +44 -0
  33. package/dist/api/routes/admin/tax-rates/list-tax-rates.js +178 -0
  34. package/dist/api/routes/admin/tax-rates/list-tax-rates.js.map +1 -0
  35. package/dist/api/routes/admin/tax-rates/update-tax-rate.d.ts +35 -0
  36. package/dist/api/routes/admin/tax-rates/update-tax-rate.js +286 -0
  37. package/dist/api/routes/admin/tax-rates/update-tax-rate.js.map +1 -0
  38. package/dist/api/routes/admin/tax-rates/utils/get-query-config.d.ts +7 -0
  39. package/dist/api/routes/admin/tax-rates/utils/get-query-config.js +91 -0
  40. package/dist/api/routes/admin/tax-rates/utils/get-query-config.js.map +1 -0
  41. package/dist/api/routes/store/carts/calculate-taxes.d.ts +24 -0
  42. package/dist/api/routes/store/carts/calculate-taxes.js +153 -0
  43. package/dist/api/routes/store/carts/calculate-taxes.js.map +1 -0
  44. package/dist/interfaces/cart-completion-strategy.d.ts +20 -0
  45. package/dist/interfaces/cart-completion-strategy.js +10 -0
  46. package/dist/interfaces/cart-completion-strategy.js.map +1 -0
  47. package/dist/interfaces/index.d.ts +3 -0
  48. package/dist/interfaces/index.js +16 -0
  49. package/dist/interfaces/index.js.map +1 -0
  50. package/dist/interfaces/tax-calculation-strategy.d.ts +16 -0
  51. package/dist/interfaces/tax-calculation-strategy.js +10 -0
  52. package/dist/interfaces/tax-calculation-strategy.js.map +1 -0
  53. package/dist/interfaces/tax-service.d.ts +51 -0
  54. package/dist/interfaces/tax-service.js +3 -0
  55. package/dist/interfaces/tax-service.js.map +1 -0
  56. package/dist/loaders/strategies.d.ts +12 -0
  57. package/dist/loaders/strategies.js +32 -0
  58. package/dist/loaders/strategies.js.map +1 -0
  59. package/dist/migrations/1641636508055-new_tax_system.d.ts +6 -0
  60. package/dist/migrations/1641636508055-new_tax_system.js +248 -0
  61. package/dist/migrations/1641636508055-new_tax_system.js.map +1 -0
  62. package/dist/models/discount.js +2 -1
  63. package/dist/models/discount.js.map +1 -1
  64. package/dist/models/line-item-tax-line.d.ts +7 -0
  65. package/dist/models/line-item-tax-line.js +65 -0
  66. package/dist/models/line-item-tax-line.js.map +1 -0
  67. package/dist/models/product-tax-rate.d.ts +40 -0
  68. package/dist/models/product-tax-rate.js +88 -0
  69. package/dist/models/product-tax-rate.js.map +1 -0
  70. package/dist/models/product-type-tax-rate.d.ts +40 -0
  71. package/dist/models/product-type-tax-rate.js +88 -0
  72. package/dist/models/product-type-tax-rate.js.map +1 -0
  73. package/dist/models/shipping-method-tax-line.d.ts +7 -0
  74. package/dist/models/shipping-method-tax-line.js +65 -0
  75. package/dist/models/shipping-method-tax-line.js.map +1 -0
  76. package/dist/models/shipping-tax-rate.d.ts +40 -0
  77. package/dist/models/shipping-tax-rate.js +88 -0
  78. package/dist/models/shipping-tax-rate.js.map +1 -0
  79. package/dist/models/tax-line.d.ts +39 -0
  80. package/dist/models/tax-line.js +79 -0
  81. package/dist/models/tax-line.js.map +1 -0
  82. package/dist/models/tax-provider.d.ts +17 -0
  83. package/dist/models/tax-provider.js +44 -0
  84. package/dist/models/tax-provider.js.map +1 -0
  85. package/dist/models/tax-rate.d.ts +58 -0
  86. package/dist/models/tax-rate.js +159 -0
  87. package/dist/models/tax-rate.js.map +1 -0
  88. package/dist/repositories/line-item-tax-line.d.ts +4 -0
  89. package/dist/repositories/line-item-tax-line.js +38 -0
  90. package/dist/repositories/line-item-tax-line.js.map +1 -0
  91. package/dist/repositories/product-tax-rate.d.ts +4 -0
  92. package/dist/repositories/product-tax-rate.js +38 -0
  93. package/dist/repositories/product-tax-rate.js.map +1 -0
  94. package/dist/repositories/shipping-method-tax-line.d.ts +4 -0
  95. package/dist/repositories/shipping-method-tax-line.js +38 -0
  96. package/dist/repositories/shipping-method-tax-line.js.map +1 -0
  97. package/dist/repositories/shipping-tax-rate.d.ts +4 -0
  98. package/dist/repositories/shipping-tax-rate.js +38 -0
  99. package/dist/repositories/shipping-tax-rate.js.map +1 -0
  100. package/dist/repositories/tax-rate.d.ts +18 -0
  101. package/dist/repositories/tax-rate.js +359 -0
  102. package/dist/repositories/tax-rate.js.map +1 -0
  103. package/dist/services/product-tax-rate.d.ts +25 -0
  104. package/dist/services/product-tax-rate.js +104 -0
  105. package/dist/services/product-tax-rate.js.map +1 -0
  106. package/dist/services/product-type.d.ts +27 -0
  107. package/dist/services/product-type.js +112 -0
  108. package/dist/services/product-type.js.map +1 -0
  109. package/dist/services/shipping-tax-rate.d.ts +26 -0
  110. package/dist/services/shipping-tax-rate.js +105 -0
  111. package/dist/services/shipping-tax-rate.js.map +1 -0
  112. package/dist/services/system-tax.d.ts +9 -0
  113. package/dist/services/system-tax.js +89 -0
  114. package/dist/services/system-tax.js.map +1 -0
  115. package/dist/services/tax-provider.d.ts +105 -0
  116. package/dist/services/tax-provider.js +455 -0
  117. package/dist/services/tax-provider.js.map +1 -0
  118. package/dist/services/tax-rate.d.ts +31 -0
  119. package/dist/services/tax-rate.js +405 -0
  120. package/dist/services/tax-rate.js.map +1 -0
  121. package/dist/strategies/cart-completion.d.ts +17 -0
  122. package/dist/strategies/cart-completion.js +336 -0
  123. package/dist/strategies/cart-completion.js.map +1 -0
  124. package/dist/strategies/tax-calculation.d.ts +11 -0
  125. package/dist/strategies/tax-calculation.js +147 -0
  126. package/dist/strategies/tax-calculation.js.map +1 -0
  127. package/dist/types/discount.js.map +1 -1
  128. package/dist/types/orders.js +1 -1
  129. package/dist/types/orders.js.map +1 -1
  130. package/dist/types/product-tax-rate.d.ts +10 -0
  131. package/dist/types/product-tax-rate.js +13 -0
  132. package/dist/types/product-tax-rate.js.map +1 -0
  133. package/dist/types/request.d.ts +3 -0
  134. package/dist/types/request.js +3 -0
  135. package/dist/types/request.js.map +1 -0
  136. package/dist/types/shipping-tax-rate.d.ts +10 -0
  137. package/dist/types/shipping-tax-rate.js +13 -0
  138. package/dist/types/shipping-tax-rate.js.map +1 -0
  139. package/dist/types/tax-rate.d.ts +25 -0
  140. package/dist/types/tax-rate.js +3 -0
  141. package/dist/types/tax-rate.js.map +1 -0
  142. package/dist/types/tax-service.d.ts +34 -0
  143. package/dist/types/tax-service.js +3 -0
  144. package/dist/types/tax-service.js.map +1 -0
  145. package/dist/types/totals.d.ts +42 -0
  146. package/dist/types/totals.js +3 -0
  147. package/dist/types/totals.js.map +1 -0
  148. package/jest.config.js +17 -0
  149. package/package.json +3 -3
  150. package/yarn-error.log +79 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-query-config.js","sourceRoot":"","sources":["../../../../../../src/api/routes/admin/tax-rates/utils/get-query-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA+E;AAC/E,iCAA6B;AAI7B,SAAgB,YAAY,CAC1B,GAAY,EACZ,MAAqB;;IAErB,IAAM,MAAM,0CAAO,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,kBAAK,CAAC,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE,CAAC,SAAC,CAAA;IAEtE,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,GAAG,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAA,aAAI,EAAC,CAAC,EAAE,MAAM,CAAC,EAAf,CAAe,CAAC,CAAA;SACvC;aAAM;YACL,OAAO,IAAA,aAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SACzB;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAdD,oCAcC;AAED,SAAgB,iBAAiB,CAC/B,MAA0B,EAC1B,MAAiB;IAEjB,IAAI,aAAa,GAAsB,EAAE,CAAA;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,IAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;QAChC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClB,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAsB,CAAA;KAC1D;IAED,IAAI,YAAY,GAAa,EAAE,CAAA;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,YAAY,GAAG,MAAM,CAAA;KACtB;IAED,OAAO;QACL,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,8BAA0B;QACzE,SAAS,EAAE,YAAY,CAAC,MAAM;YAC5B,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,iCAA6B;KAClC,CAAA;AACH,CAAC;AAtBD,8CAsBC;AAED,SAAgB,aAAa,CAC3B,MAA0B,EAC1B,MAAiB,EACjB,KAAU,EACV,MAAU,EACV,KAAuC;IAFvC,sBAAA,EAAA,UAAU;IACV,uBAAA,EAAA,UAAU;IAGV,IAAI,aAAa,GAAsB,EAAE,CAAA;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,IAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;QAChC,8DAA8D;QAC9D,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC1B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClB,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAsB,CAAA;KAC1D;IAED,IAAI,YAAY,GAAa,EAAE,CAAA;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,YAAY,GAAG,MAAM,CAAA;KACtB;IAED,IAAM,OAAO,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;IAE/C,OAAO;QACL,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,8BAA0B;QACzE,SAAS,EAAE,YAAY,CAAC,MAAM;YAC5B,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,iCAA6B;QACjC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,OAAO;KACf,CAAA;AACH,CAAC;AAhCD,sCAgCC"}
@@ -0,0 +1,24 @@
1
+ declare const _default: (req: any, res: any) => Promise<void>;
2
+ /**
3
+ * @oas [post] /carts/{id}/taxes
4
+ * summary: "Calculate Cart Taxes"
5
+ * operationId: "PostCartsCartTaxes"
6
+ * description: "Calculates taxes for a cart. Depending on the cart's region
7
+ * this may involve making 3rd party API calls to a Tax Provider service."
8
+ * parameters:
9
+ * - (path) id=* {String} The Cart id.
10
+ * tags:
11
+ * - Cart
12
+ * responses:
13
+ * 200:
14
+ * description: "A cart object with the tax_total field populated"
15
+ * content:
16
+ * application/json:
17
+ * schema:
18
+ * oneOf:
19
+ * - type: object
20
+ * properties:
21
+ * cart:
22
+ * $ref: "#/components/schemas/cart"
23
+ */
24
+ export default _default;
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ /**
40
+ * @oas [post] /carts/{id}/taxes
41
+ * summary: "Calculate Cart Taxes"
42
+ * operationId: "PostCartsCartTaxes"
43
+ * description: "Calculates taxes for a cart. Depending on the cart's region
44
+ * this may involve making 3rd party API calls to a Tax Provider service."
45
+ * parameters:
46
+ * - (path) id=* {String} The Cart id.
47
+ * tags:
48
+ * - Cart
49
+ * responses:
50
+ * 200:
51
+ * description: "A cart object with the tax_total field populated"
52
+ * content:
53
+ * application/json:
54
+ * schema:
55
+ * oneOf:
56
+ * - type: object
57
+ * properties:
58
+ * cart:
59
+ * $ref: "#/components/schemas/cart"
60
+ */
61
+ exports.default = (function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
62
+ var id, idempotencyKeyService, headerKey, idempotencyKey, error_1, cartService, inProgress, err, _a, _b, key, error;
63
+ return __generator(this, function (_c) {
64
+ switch (_c.label) {
65
+ case 0:
66
+ id = req.params.id;
67
+ idempotencyKeyService = req.scope.resolve("idempotencyKeyService");
68
+ headerKey = req.get("Idempotency-Key") || "";
69
+ _c.label = 1;
70
+ case 1:
71
+ _c.trys.push([1, 3, , 4]);
72
+ return [4 /*yield*/, idempotencyKeyService.initializeRequest(headerKey, req.method, req.params, req.path)];
73
+ case 2:
74
+ idempotencyKey = _c.sent();
75
+ return [3 /*break*/, 4];
76
+ case 3:
77
+ error_1 = _c.sent();
78
+ console.log(error_1);
79
+ res.status(409).send("Failed to create idempotency key");
80
+ return [2 /*return*/];
81
+ case 4:
82
+ res.setHeader("Access-Control-Expose-Headers", "Idempotency-Key");
83
+ res.setHeader("Idempotency-Key", idempotencyKey.idempotency_key);
84
+ cartService = req.scope.resolve("cartService");
85
+ inProgress = true;
86
+ err = false;
87
+ _c.label = 5;
88
+ case 5:
89
+ if (!inProgress) return [3 /*break*/, 12];
90
+ _a = idempotencyKey.recovery_point;
91
+ switch (_a) {
92
+ case "started": return [3 /*break*/, 6];
93
+ case "finished": return [3 /*break*/, 8];
94
+ }
95
+ return [3 /*break*/, 9];
96
+ case 6: return [4 /*yield*/, idempotencyKeyService.workStage(idempotencyKey.idempotency_key, function (manager) { return __awaiter(void 0, void 0, void 0, function () {
97
+ var cart;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0: return [4 /*yield*/, cartService.withTransaction(manager).retrieve(id, {
101
+ select: [
102
+ "total",
103
+ "subtotal",
104
+ "tax_total",
105
+ "discount_total",
106
+ "shipping_total",
107
+ "gift_card_total",
108
+ ],
109
+ }, { force_taxes: true })];
110
+ case 1:
111
+ cart = _a.sent();
112
+ return [2 /*return*/, {
113
+ response_code: 200,
114
+ response_body: { cart: cart },
115
+ }];
116
+ }
117
+ });
118
+ }); })];
119
+ case 7:
120
+ _b = _c.sent(), key = _b.key, error = _b.error;
121
+ if (error) {
122
+ inProgress = false;
123
+ err = error;
124
+ }
125
+ else {
126
+ idempotencyKey = key;
127
+ }
128
+ return [3 /*break*/, 11];
129
+ case 8:
130
+ {
131
+ inProgress = false;
132
+ return [3 /*break*/, 11];
133
+ }
134
+ _c.label = 9;
135
+ case 9: return [4 /*yield*/, idempotencyKeyService.update(idempotencyKey.idempotency_key, {
136
+ recovery_point: "finished",
137
+ response_code: 500,
138
+ response_body: { message: "Unknown recovery point" },
139
+ })];
140
+ case 10:
141
+ idempotencyKey = _c.sent();
142
+ return [3 /*break*/, 11];
143
+ case 11: return [3 /*break*/, 5];
144
+ case 12:
145
+ if (err) {
146
+ throw err;
147
+ }
148
+ res.status(idempotencyKey.response_code).json(idempotencyKey.response_body);
149
+ return [2 /*return*/];
150
+ }
151
+ });
152
+ }); });
153
+ //# sourceMappingURL=calculate-taxes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate-taxes.js","sourceRoot":"","sources":["../../../../../src/api/routes/store/carts/calculate-taxes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,mBAAe,UAAO,GAAG,EAAE,GAAG;;;;;gBACpB,EAAE,GAAK,GAAG,CAAC,MAAM,GAAf,CAAe;gBAEnB,qBAAqB,GAA0B,GAAG,CAAC,KAAK,CAAC,OAAO,CACpE,uBAAuB,CACxB,CAAA;gBAEK,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;;;;gBAI/B,qBAAM,qBAAqB,CAAC,iBAAiB,CAC5D,SAAS,EACT,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,IAAI,CACT,EAAA;;gBALD,cAAc,GAAG,SAKhB,CAAA;;;;gBAED,OAAO,CAAC,GAAG,CAAC,OAAK,CAAC,CAAA;gBAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;gBACxD,sBAAM;;gBAGR,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,iBAAiB,CAAC,CAAA;gBACjE,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,cAAc,CAAC,eAAe,CAAC,CAAA;gBAE1D,WAAW,GAAgB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;gBAE7D,UAAU,GAAG,IAAI,CAAA;gBACjB,GAAG,GAAG,KAAK,CAAA;;;qBAER,UAAU;gBACP,KAAA,cAAc,CAAC,cAAc,CAAA;;yBAC9B,SAAS,CAAC,CAAV,wBAAS;yBAmCT,UAAU,CAAC,CAAX,wBAAU;;;oBAlCU,qBAAM,qBAAqB,CAAC,SAAS,CAC1D,cAAc,CAAC,eAAe,EAC9B,UAAO,OAAsB;;;;oCACd,qBAAM,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,CAC9D,EAAE,EACF;oCACE,MAAM,EAAE;wCACN,OAAO;wCACP,UAAU;wCACV,WAAW;wCACX,gBAAgB;wCAChB,gBAAgB;wCAChB,iBAAiB;qCAClB;iCACF,EACD,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,EAAA;;gCAbK,IAAI,GAAG,SAaZ;gCAED,sBAAO;wCACL,aAAa,EAAE,GAAG;wCAClB,aAAa,EAAE,EAAE,IAAI,MAAA,EAAE;qCACxB,EAAA;;;qBACF,CACF,EAAA;;gBAvBK,KAAiB,SAuBtB,EAvBO,GAAG,SAAA,EAAE,KAAK,WAAA;gBAyBlB,IAAI,KAAK,EAAE;oBACT,UAAU,GAAG,KAAK,CAAA;oBAClB,GAAG,GAAG,KAAK,CAAA;iBACZ;qBAAM;oBACL,cAAc,GAAG,GAAG,CAAA;iBACrB;gBACD,yBAAK;;gBAGU;oBACf,UAAU,GAAG,KAAK,CAAA;oBAClB,yBAAK;iBACN;;oBAGkB,qBAAM,qBAAqB,CAAC,MAAM,CACjD,cAAc,CAAC,eAAe,EAC9B;oBACE,cAAc,EAAE,UAAU;oBAC1B,aAAa,EAAE,GAAG;oBAClB,aAAa,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE;iBACrD,CACF,EAAA;;gBAPD,cAAc,GAAG,SAOhB,CAAA;gBACD,yBAAK;;;gBAIX,IAAI,GAAG,EAAE;oBACP,MAAM,GAAG,CAAA;iBACV;gBAED,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;;;;KAC5E,EAAA"}
@@ -0,0 +1,20 @@
1
+ import { IdempotencyKey } from "../models/idempotency-key";
2
+ import { RequestContext } from "../types/request";
3
+ export declare type CartCompletionResponse = {
4
+ /** The response code for the completion request */
5
+ response_code: number;
6
+ /** The response body for the completion request */
7
+ response_body: object;
8
+ };
9
+ export interface ICartCompletionStrategy {
10
+ /**
11
+ * Takes a cart id and completes the cart. This for example takes place when
12
+ * creating an order or confirming a swap.
13
+ * @param cartId - the id of the Cart to complete.
14
+ * @param idempotencyKey - the idempotency key for the request
15
+ * @param context - the request context for the completion request
16
+ * @return the response for the completion request
17
+ */
18
+ complete(cartId: string, idempotencyKey: IdempotencyKey, context: RequestContext): Promise<CartCompletionResponse>;
19
+ }
20
+ export declare function isCartCompletionStrategy(object: any): object is ICartCompletionStrategy;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isCartCompletionStrategy = void 0;
4
+ function isCartCompletionStrategy(
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ object) {
7
+ return typeof object.complete === "function";
8
+ }
9
+ exports.isCartCompletionStrategy = isCartCompletionStrategy;
10
+ //# sourceMappingURL=cart-completion-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-completion-strategy.js","sourceRoot":"","sources":["../../src/interfaces/cart-completion-strategy.ts"],"names":[],"mappings":";;;AA2BA,SAAgB,wBAAwB;AACtC,8DAA8D;AAC9D,MAAW;IAEX,OAAO,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAA;AAC9C,CAAC;AALD,4DAKC"}
@@ -0,0 +1,3 @@
1
+ export * from "./tax-calculation-strategy";
2
+ export * from "./cart-completion-strategy";
3
+ export * from "./tax-service";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./tax-calculation-strategy"), exports);
14
+ __exportStar(require("./cart-completion-strategy"), exports);
15
+ __exportStar(require("./tax-service"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAA0C;AAC1C,6DAA0C;AAC1C,gDAA6B"}
@@ -0,0 +1,16 @@
1
+ import { LineItem } from "../models/line-item";
2
+ import { TaxCalculationContext } from "./tax-service";
3
+ import { LineItemTaxLine } from "../models/line-item-tax-line";
4
+ import { ShippingMethodTaxLine } from "../models/shipping-method-tax-line";
5
+ export interface ITaxCalculationStrategy {
6
+ /**
7
+ * Calculates the tax amount for a given set of line items under applicable
8
+ * tax conditions and calculation contexts.
9
+ * @param items - the line items to calculate the tax total for
10
+ * @param taxLines - the tax lines that applies to the calculation
11
+ * @param calculationContext - other details relevant for the calculation
12
+ * @return the tax total
13
+ */
14
+ calculate(items: LineItem[], taxLines: (ShippingMethodTaxLine | LineItemTaxLine)[], calculationContext: TaxCalculationContext): Promise<number>;
15
+ }
16
+ export declare function isTaxCalculationStrategy(object: any): object is ITaxCalculationStrategy;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTaxCalculationStrategy = void 0;
4
+ function isTaxCalculationStrategy(
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ object) {
7
+ return typeof object.calculate === "function";
8
+ }
9
+ exports.isTaxCalculationStrategy = isTaxCalculationStrategy;
10
+ //# sourceMappingURL=tax-calculation-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax-calculation-strategy.js","sourceRoot":"","sources":["../../src/interfaces/tax-calculation-strategy.ts"],"names":[],"mappings":";;;AAqBA,SAAgB,wBAAwB;AACtC,8DAA8D;AAC9D,MAAW;IAEX,OAAO,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,CAAA;AAC/C,CAAC;AALD,4DAKC"}
@@ -0,0 +1,51 @@
1
+ import { LineItem } from "../models/line-item";
2
+ import { Region } from "../models/region";
3
+ import { Address } from "../models/address";
4
+ import { ShippingMethod } from "../models/shipping-method";
5
+ import { Customer } from "../models/customer";
6
+ import { ProviderTaxLine, TaxServiceRate } from "../types/tax-service";
7
+ import { LineAllocationsMap } from "../types/totals";
8
+ /**
9
+ * A shipping method and the tax rates that have been configured to apply to the
10
+ * shipping method.
11
+ */
12
+ export declare type ShippingTaxCalculationLine = {
13
+ shipping_method: ShippingMethod;
14
+ rates: TaxServiceRate[];
15
+ };
16
+ /**
17
+ * A line item and the tax rates that have been configured to apply to the
18
+ * product contained in the line item.
19
+ */
20
+ export declare type ItemTaxCalculationLine = {
21
+ item: LineItem;
22
+ rates: TaxServiceRate[];
23
+ };
24
+ /**
25
+ * Information relevant to a tax calculation, such as the shipping address where
26
+ * the items are going.
27
+ */
28
+ export declare type TaxCalculationContext = {
29
+ shipping_address: Address | null;
30
+ customer: Customer;
31
+ region: Region;
32
+ is_return: boolean;
33
+ shipping_methods: ShippingMethod[];
34
+ allocation_map: LineAllocationsMap;
35
+ };
36
+ /**
37
+ * Interface to be implemented by tax provider plugins. The interface defines a
38
+ * single method `getTaxLines` that returns numerical rates to apply to line
39
+ * items and shipping methods.
40
+ */
41
+ export interface ITaxService {
42
+ /**
43
+ * Retrieves the numerical tax lines for a calculation context.
44
+ * @param itemLines - the line item calculation lines
45
+ * @param itemLines - the shipping calculation lines
46
+ * @param context - other details relevant to the tax determination
47
+ * @return numerical tax rates that should apply to the provided calculation
48
+ * lines
49
+ */
50
+ getTaxLines(itemLines: ItemTaxCalculationLine[], shippingLines: ShippingTaxCalculationLine[], context: TaxCalculationContext): Promise<ProviderTaxLine[]>;
51
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=tax-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax-service.js","sourceRoot":"","sources":["../../src/interfaces/tax-service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { AwilixContainer } from "awilix";
2
+ declare type LoaderOptions = {
3
+ container: AwilixContainer;
4
+ configModule: object;
5
+ isTest: boolean;
6
+ };
7
+ declare const _default: ({ container, configModule, isTest }: LoaderOptions) => void;
8
+ /**
9
+ * Registers all strategies in the strategies directory
10
+ * @returns void
11
+ */
12
+ export default _default;
@@ -0,0 +1,32 @@
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
+ var glob_1 = __importDefault(require("glob"));
7
+ var path_1 = __importDefault(require("path"));
8
+ var awilix_1 = require("awilix");
9
+ var format_registration_name_1 = __importDefault(require("../utils/format-registration-name"));
10
+ /**
11
+ * Registers all strategies in the strategies directory
12
+ * @returns void
13
+ */
14
+ exports.default = (function (_a) {
15
+ var container = _a.container, configModule = _a.configModule, isTest = _a.isTest;
16
+ var useMock = typeof isTest !== "undefined" ? isTest : process.env.NODE_ENV === "test";
17
+ var corePath = useMock
18
+ ? "../strategies/__mocks__/*.js"
19
+ : "../strategies/*.js";
20
+ var coreFull = path_1.default.join(__dirname, corePath);
21
+ var core = glob_1.default.sync(coreFull, { cwd: __dirname });
22
+ core.forEach(function (fn) {
23
+ var _a;
24
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
25
+ var loaded = require(fn).default;
26
+ var name = (0, format_registration_name_1.default)(fn);
27
+ container.register((_a = {},
28
+ _a[name] = (0, awilix_1.asFunction)(function (cradle) { return new loaded(cradle, configModule); }).singleton(),
29
+ _a));
30
+ });
31
+ });
32
+ //# sourceMappingURL=strategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/loaders/strategies.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AACvB,8CAAuB;AACvB,iCAAoD;AAEpD,+FAAsE;AAQtE;;;GAGG;AACH,mBAAe,UAAC,EAAkD;QAAhD,SAAS,eAAA,EAAE,YAAY,kBAAA,EAAE,MAAM,YAAA;IAC/C,IAAM,OAAO,GACX,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAA;IAE1E,IAAM,QAAQ,GAAG,OAAO;QACtB,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,oBAAoB,CAAA;IACxB,IAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAE/C,IAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAA;IACpD,IAAI,CAAC,OAAO,CAAC,UAAC,EAAE;;QACd,8DAA8D;QAC9D,IAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAA;QAClC,IAAM,IAAI,GAAG,IAAA,kCAAsB,EAAC,EAAE,CAAC,CAAA;QACvC,SAAS,CAAC,QAAQ;YAChB,GAAC,IAAI,IAAG,IAAA,mBAAU,EAChB,UAAC,MAAM,IAAK,OAAA,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAhC,CAAgC,CAC7C,CAAC,SAAS,EAAE;gBACb,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,EAAA"}
@@ -0,0 +1,6 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+ export declare class newTaxSystem1641636508055 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }