@hartl-services/medusa-base 1.0.0 → 2.0.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 (79) hide show
  1. package/.medusa/server/src/admin/index.js +117 -1
  2. package/.medusa/server/src/admin/index.mjs +118 -2
  3. package/.medusa/server/src/documents/plugin-features.js +15 -1
  4. package/.medusa/server/src/documents/templates/financial-document.js +69 -51
  5. package/.medusa/server/src/documents/templates/format.js +44 -2
  6. package/.medusa/server/src/documents/templates/html-factory.js +7 -5
  7. package/.medusa/server/src/documents/templates/html-utils.js +12 -2
  8. package/.medusa/server/src/documents/templates/layout.js +115 -70
  9. package/.medusa/server/src/documents/templates/packing-list.js +10 -8
  10. package/.medusa/server/src/documents/utils/document-merchant.js +5 -5
  11. package/.medusa/server/src/documents/utils/document-render-settings.js +59 -0
  12. package/.medusa/server/src/email/application/handle-invite-event.js +8 -2
  13. package/.medusa/server/src/email/application/handle-password-reset-event.js +16 -4
  14. package/.medusa/server/src/email/domain/order-summary.js +103 -0
  15. package/.medusa/server/src/email/domain/refund-summary.js +43 -0
  16. package/.medusa/server/src/email/domain/return-summary.js +118 -0
  17. package/.medusa/server/src/email/domain/shipment-summary.js +74 -0
  18. package/.medusa/server/src/email/plugin-features.js +9 -1
  19. package/.medusa/server/src/email/rendering/default-templates.js +693 -65
  20. package/.medusa/server/src/email/rendering/load-email-shop-details.js +36 -0
  21. package/.medusa/server/src/email/rendering/render-email.js +16 -3
  22. package/.medusa/server/src/email/rendering/resolve-shop-configuration.js +20 -1
  23. package/.medusa/server/src/email/types/template-data.js +155 -2
  24. package/.medusa/server/src/modules/documents/domain/merchant.js +2 -33
  25. package/.medusa/server/src/modules/documents/domain/options.js +1 -7
  26. package/.medusa/server/src/modules/plugin-features/domain/plugin-settings.js +4 -3
  27. package/.medusa/server/src/public/descriptor.js +3 -1
  28. package/.medusa/server/src/public/shop-master-data.js +7 -7
  29. package/.medusa/server/src/shop-config/build-food-shop-config.js +6 -6
  30. package/.medusa/server/src/shop-config/options.js +5 -15
  31. package/.medusa/server/src/workflows/documents/issue-cancellation-after-refund.js +2 -3
  32. package/.medusa/server/src/workflows/documents/issue-document.js +6 -5
  33. package/.medusa/server/src/workflows/documents/issue-packing-list.js +9 -3
  34. package/.medusa/server/src/workflows/email/dispatch-email-message.js +4 -2
  35. package/.medusa/server/src/workflows/email/prepare-order-canceled-email.js +42 -4
  36. package/.medusa/server/src/workflows/email/prepare-order-received-email.js +31 -5
  37. package/.medusa/server/src/workflows/email/prepare-refund-email.js +25 -1
  38. package/.medusa/server/src/workflows/email/prepare-return-email.js +64 -3
  39. package/.medusa/server/src/workflows/email/prepare-shipment-email.js +36 -3
  40. package/README.md +180 -43
  41. package/dist/admin-components/features/plugin-features/components/ImageSettingInput.d.ts +15 -0
  42. package/dist/admin-components/features/plugin-features/components/ImageSettingInput.js +42 -0
  43. package/dist/admin-components/features/plugin-features/components/PluginSettingsForm.js +4 -2
  44. package/dist/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.d.ts +1 -1
  45. package/dist/admin-components/features/plugin-features/hooks/usePluginFeatures.d.ts +4 -4
  46. package/dist/admin-components/features/plugin-features/hooks/usePluginSettingsForm.d.ts +1 -1
  47. package/dist/admin-components/features/plugin-features/lib/image-upload.d.ts +6 -0
  48. package/dist/admin-components/features/plugin-features/lib/image-upload.js +17 -0
  49. package/dist/admin-components/features/plugin-features/lib/plugin-features-admin-client.d.ts +4 -4
  50. package/dist/admin-components/i18n/texts.d.ts +6 -0
  51. package/dist/admin-components/i18n/texts.js +6 -0
  52. package/dist/documents/templates/financial-document.d.ts +3 -3
  53. package/dist/documents/templates/financial-document.js +68 -50
  54. package/dist/documents/templates/format.d.ts +14 -0
  55. package/dist/documents/templates/format.js +43 -1
  56. package/dist/documents/templates/html-factory.d.ts +6 -2
  57. package/dist/documents/templates/html-factory.js +6 -4
  58. package/dist/documents/templates/html-utils.d.ts +6 -0
  59. package/dist/documents/templates/html-utils.js +11 -1
  60. package/dist/documents/templates/layout.d.ts +21 -3
  61. package/dist/documents/templates/layout.js +114 -69
  62. package/dist/documents/templates/packing-list.js +9 -7
  63. package/dist/documents/types/documents.d.ts +11 -16
  64. package/dist/documents/types/html-factory.d.ts +1 -0
  65. package/dist/email/types/shop-configuration.d.ts +25 -0
  66. package/dist/email/types/template-data.d.ts +509 -0
  67. package/dist/email/types/template-data.js +154 -1
  68. package/dist/modules/documents/domain/options.d.ts +1 -9
  69. package/dist/modules/documents/domain/options.js +0 -6
  70. package/dist/public/descriptor.js +2 -0
  71. package/dist/public/shop-master-data.d.ts +5 -6
  72. package/dist/public/shop-master-data.js +6 -6
  73. package/dist/public/types.d.ts +2 -1
  74. package/dist/shop-config/build-food-shop-config.js +5 -5
  75. package/dist/shop-config/options.d.ts +13 -8
  76. package/dist/shop-config/options.js +4 -14
  77. package/package.json +2 -2
  78. package/dist/modules/documents/domain/merchant.d.ts +0 -22
  79. package/dist/modules/documents/domain/merchant.js +0 -85
@@ -11,6 +11,7 @@ const failure_classification_1 = require("../domain/failure-classification");
11
11
  const business_keys_1 = require("../domain/business-keys");
12
12
  const event_schemas_1 = require("../domain/event-schemas");
13
13
  const email_1 = require("../../modules/email");
14
+ const load_email_shop_details_1 = require("../rendering/load-email-shop-details");
14
15
  const render_email_1 = require("../rendering/render-email");
15
16
  const dispatch_email_message_1 = require("../../workflows/email/dispatch-email-message");
16
17
  exports.PASSWORD_RESET_MAX_ATTEMPTS = 2;
@@ -139,7 +140,8 @@ const failClaim = async (email, claim, code, now, notificationId = null) => {
139
140
  status: "failed",
140
141
  };
141
142
  };
142
- const deliverPasswordReset = async (container, email, claim, token, expiresAt, getNow) => {
143
+ const deliverPasswordReset = async (container, email, claim, token, expiresAt, validMinutes, getNow) => {
144
+ const shop = await (0, load_email_shop_details_1.loadEmailShopDetails)(container);
143
145
  let rendered;
144
146
  try {
145
147
  const configuration = email.getDispatchConfiguration();
@@ -153,8 +155,9 @@ const deliverPasswordReset = async (container, email, claim, token, expiresAt, g
153
155
  data: {
154
156
  locale: resetData?.locale ?? null,
155
157
  reset_url: resetUrl.toString(),
158
+ ...(validMinutes ? { valid_minutes: validMinutes } : {}),
156
159
  },
157
- });
160
+ }, shop);
158
161
  }
159
162
  catch {
160
163
  return await failClaim(email, claim, "render_failed", getNow());
@@ -270,6 +273,15 @@ const deliverPasswordReset = async (container, email, claim, token, expiresAt, g
270
273
  status: "unknown",
271
274
  };
272
275
  };
276
+ /** The token's full lifetime in minutes (`exp` − `iat`); unknown without `iat`. */
277
+ const tokenValidMinutes = (claims) => {
278
+ const issuedAt = claims.iat;
279
+ if (typeof issuedAt !== "number" || !Number.isFinite(issuedAt)) {
280
+ return undefined;
281
+ }
282
+ const minutes = Math.round((claims.exp - issuedAt) / 60);
283
+ return minutes > 0 ? minutes : undefined;
284
+ };
273
285
  const handleVerifiedPasswordReset = async (container, event, claims, getNow) => {
274
286
  const now = getNow();
275
287
  const expiresAt = new Date(claims.exp * 1_000);
@@ -320,7 +332,7 @@ const handleVerifiedPasswordReset = async (container, event, claims, getNow) =>
320
332
  }
321
333
  return retry();
322
334
  }
323
- return await deliverPasswordReset(container, email, claim, event.token, expiresAt, getNow);
335
+ return await deliverPasswordReset(container, email, claim, event.token, expiresAt, tokenValidMinutes(claims), getNow);
324
336
  };
325
337
  const handlePasswordResetEvent = async (container, payload, clock = () => new Date()) => {
326
338
  const event = event_schemas_1.NativePasswordResetEventSchema.safeParse(payload);
@@ -351,4 +363,4 @@ const handlePasswordResetEvent = async (container, payload, clock = () => new Da
351
363
  }
352
364
  };
353
365
  exports.handlePasswordResetEvent = handlePasswordResetEvent;
354
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLXBhc3N3b3JkLXJlc2V0LWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VtYWlsL2FwcGxpY2F0aW9uL2hhbmRsZS1wYXNzd29yZC1yZXNldC1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxxREFBb0Q7QUFDcEQsaURBQTRDO0FBQzVDLGdFQUFvRDtBQUVwRCw2RUFHMEM7QUFDMUMsMkRBQW1FO0FBQ25FLDJEQUdpQztBQUNqQywrQ0FBbUQ7QUFNbkQsNERBQXdEO0FBRXhELHlGQUF1RjtBQUUxRSxRQUFBLDJCQUEyQixHQUFHLENBQUMsQ0FBQztBQUNoQyxRQUFBLDZCQUE2QixHQUFHLDRCQUE0QixDQUFDO0FBRTFFLE1BQU0sbUJBQW1CLEdBQUcsNEJBQTRCLENBQUM7QUFFekQsTUFBTSx5QkFBeUIsR0FBRyxPQUFDO0tBQ2hDLE1BQU0sQ0FBQztJQUNOLFVBQVUsRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkMsR0FBRyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsR0FBRyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdCLFFBQVEsRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNoQyxPQUFPLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Q0FDNUIsQ0FBQztLQUNELFdBQVcsRUFBRSxDQUFDO0FBZWpCLE1BQU0sS0FBSyxHQUFHLEdBQVUsRUFBRTtJQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUE2QixDQUFDLENB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
366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLXBhc3N3b3JkLXJlc2V0LWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VtYWlsL2FwcGxpY2F0aW9uL2hhbmRsZS1wYXNzd29yZC1yZXNldC1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxxREFBb0Q7QUFDcEQsaURBQTRDO0FBQzVDLGdFQUFvRDtBQUVwRCw2RUFHMEM7QUFDMUMsMkRBQW1FO0FBQ25FLDJEQUdpQztBQUNqQywrQ0FBbUQ7QUFNbkQsa0ZBQTRFO0FBQzVFLDREQUF3RDtBQUV4RCx5RkFBdUY7QUFFMUUsUUFBQSwyQkFBMkIsR0FBRyxDQUFDLENBQUM7QUFDaEMsUUFBQSw2QkFBNkIsR0FBRyw0QkFBNEIsQ0FBQztBQUUxRSxNQUFNLG1CQUFtQixHQUFHLDRCQUE0QixDQUFDO0FBRXpELE1BQU0seUJBQXlCLEdBQUcsT0FBQztLQUNoQyxNQUFNLENBQUM7SUFDTixVQUFVLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDakMsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLEdBQUcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLEdBQUcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QixRQUFRLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDaEMsT0FBTyxFQUFFLE9BQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0NBQzVCLENBQUM7S0FDRCxXQUFXLEVBQUUsQ0FBQztBQWVqQixNQUFNLEtBQUssR0FBRyxHQUFVLEVBQUU7SUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxx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
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toOrderSummary = exports.toIsoDateTime = exports.toOrderSummaryAddress = exports.ORDER_SUMMARY_FIELDS = void 0;
4
+ const types_1 = require("../types");
5
+ /** Order fields `toOrderSummary` reads; load them with `getOrderDetailWorkflow`. */
6
+ exports.ORDER_SUMMARY_FIELDS = [
7
+ "display_id",
8
+ "email",
9
+ "created_at",
10
+ "currency_code",
11
+ "items.title",
12
+ "items.variant_title",
13
+ "items.quantity",
14
+ "items.original_total",
15
+ "shipping_methods.name",
16
+ "original_item_total",
17
+ "original_shipping_total",
18
+ "discount_total",
19
+ "tax_total",
20
+ "total",
21
+ "billing_address.*",
22
+ "shipping_address.*",
23
+ ];
24
+ const asRecord = (value) => value && typeof value === "object" ? value : null;
25
+ const asText = (value) => typeof value === "string" && value.trim() ? value.trim() : null;
26
+ /** Medusa returns amounts as numbers, numeric strings or `{ value }` BigNumbers. */
27
+ const asAmount = (value) => {
28
+ const raw = asRecord(value)?.value ?? value;
29
+ if (typeof raw === "number" && Number.isFinite(raw)) {
30
+ return String(raw);
31
+ }
32
+ if (typeof raw === "string" && raw.trim()) {
33
+ return raw.trim();
34
+ }
35
+ return "0";
36
+ };
37
+ const asNumber = (value) => {
38
+ const raw = asRecord(value)?.value ?? value;
39
+ return typeof raw === "string" && raw.trim() ? Number(raw) : raw;
40
+ };
41
+ const toOrderSummaryAddress = (value) => {
42
+ const address = asRecord(value);
43
+ if (!address) {
44
+ return null;
45
+ }
46
+ return {
47
+ first_name: asText(address.first_name),
48
+ last_name: asText(address.last_name),
49
+ company: asText(address.company),
50
+ address_1: asText(address.address_1),
51
+ address_2: asText(address.address_2),
52
+ postal_code: asText(address.postal_code),
53
+ city: asText(address.city),
54
+ country_code: asText(address.country_code),
55
+ };
56
+ };
57
+ exports.toOrderSummaryAddress = toOrderSummaryAddress;
58
+ const asArray = (value) => Array.isArray(value) ? value : [];
59
+ const asIsoDate = (value) => {
60
+ const date = value instanceof Date
61
+ ? value
62
+ : typeof value === "string"
63
+ ? new Date(value)
64
+ : null;
65
+ return date && !Number.isNaN(date.getTime()) ? date.toISOString() : value;
66
+ };
67
+ /** An order timestamp as ISO 8601; `null` when missing or unreadable. */
68
+ const toIsoDateTime = (value) => {
69
+ const iso = asIsoDate(value);
70
+ return typeof iso === "string" && !Number.isNaN(Date.parse(iso)) ? iso : null;
71
+ };
72
+ exports.toIsoDateTime = toIsoDateTime;
73
+ /** Maps a Medusa order detail to the summary frozen into the order mails. */
74
+ const toOrderSummary = (rawOrder) => {
75
+ const order = asRecord(rawOrder) ?? {};
76
+ return types_1.OrderSummarySchema.parse({
77
+ display_id: asNumber(order.display_id) ?? null,
78
+ email: asText(order.email),
79
+ placed_at: asIsoDate(order.created_at),
80
+ currency_code: order.currency_code,
81
+ items: asArray(order.items).map((rawItem) => {
82
+ const item = asRecord(rawItem) ?? {};
83
+ return {
84
+ title: item.title,
85
+ variant_title: asText(item.variant_title),
86
+ quantity: asNumber(item.quantity),
87
+ original_total: asAmount(item.original_total),
88
+ };
89
+ }),
90
+ shipping_method_names: asArray(order.shipping_methods)
91
+ .map((method) => asText(asRecord(method)?.name))
92
+ .filter((name) => name !== null),
93
+ original_item_total: asAmount(order.original_item_total),
94
+ original_shipping_total: asAmount(order.original_shipping_total),
95
+ discount_total: asAmount(order.discount_total),
96
+ tax_total: asAmount(order.tax_total),
97
+ total: asAmount(order.total),
98
+ billing_address: (0, exports.toOrderSummaryAddress)(order.billing_address),
99
+ shipping_address: (0, exports.toOrderSummaryAddress)(order.shipping_address),
100
+ });
101
+ };
102
+ exports.toOrderSummary = toOrderSummary;
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItc3VtbWFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbWFpbC9kb21haW4vb3JkZXItc3VtbWFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FJa0I7QUFFbEIsb0ZBQW9GO0FBQ3ZFLFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsWUFBWTtJQUNaLE9BQU87SUFDUCxZQUFZO0lBQ1osZUFBZTtJQUNmLGFBQWE7SUFDYixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLHlCQUF5QjtJQUN6QixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLE9BQU87SUFDUCxtQkFBbUI7SUFDbkIsb0JBQW9CO0NBQ1osQ0FBQztBQUlYLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBYyxFQUFvQixFQUFFLENBQ3BELEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFFLEtBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUVuRSxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWMsRUFBaUIsRUFBRSxDQUMvQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUVsRSxvRkFBb0Y7QUFDcEYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQVUsRUFBRTtJQUMxQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUM1QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFD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
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toRefundSummary = exports.REFUND_PAYMENT_FIELDS = void 0;
4
+ const types_1 = require("../types");
5
+ const order_summary_1 = require("./order-summary");
6
+ /** Payment fields `toRefundSummary` reads; load them with Query. */
7
+ exports.REFUND_PAYMENT_FIELDS = [
8
+ "id",
9
+ "currency_code",
10
+ "refunds.id",
11
+ "refunds.amount",
12
+ "refunds.created_at",
13
+ "refunds.refund_reason.label",
14
+ ];
15
+ const asRecord = (value) => value && typeof value === "object" ? value : {};
16
+ const asText = (value) => typeof value === "string" && value.trim() ? value.trim() : null;
17
+ const asNumber = (value) => {
18
+ const raw = asRecord(value).value ?? value;
19
+ return typeof raw === "string" && raw.trim() ? Number(raw) : raw;
20
+ };
21
+ /** Medusa returns amounts as numbers, numeric strings or `{ value }` BigNumbers. */
22
+ const asAmount = (value) => {
23
+ const raw = asRecord(value).value ?? value;
24
+ return typeof raw === "number" && Number.isFinite(raw) ? String(raw) : raw;
25
+ };
26
+ /**
27
+ * Maps one refund of a payment and its order to the snapshot frozen into the
28
+ * refund confirmation. Fails when the payment has no such refund.
29
+ */
30
+ const toRefundSummary = (rawOrder, rawPayment, refundId) => {
31
+ const payment = asRecord(rawPayment);
32
+ const refunds = Array.isArray(payment.refunds) ? payment.refunds : [];
33
+ const refund = asRecord(refunds.find((candidate) => asRecord(candidate).id === refundId));
34
+ return types_1.RefundSummarySchema.parse({
35
+ order_display_id: asNumber(asRecord(rawOrder).display_id) ?? null,
36
+ amount: asAmount(refund.amount),
37
+ currency_code: payment.currency_code,
38
+ refunded_at: (0, order_summary_1.toIsoDateTime)(refund.created_at),
39
+ reason: asText(asRecord(refund.refund_reason).label),
40
+ });
41
+ };
42
+ exports.toRefundSummary = toRefundSummary;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZW1haWwvZG9tYWluL3JlZnVuZC1zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUFtRTtBQUNuRSxtREFBZ0Q7QUFFaEQsb0VBQW9FO0FBQ3ZELFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsSUFBSTtJQUNKLGVBQWU7SUFDZixZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQiw2QkFBNkI7Q0FDckIsQ0FBQztBQUlYLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBYyxFQUFhLEVBQUUsQ0FDN0MsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUUsS0FBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRWpFLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBYyxFQUFpQixFQUFFLENBQy9DLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBRWxFLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBYyxFQUFXLEVBQUU7SUFDM0MsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7SUFDM0MsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFFRixvRkFBb0Y7QUFDcEYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQVcsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUMzQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM3RSxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLGVBQWUsR0FBRyxDQUM3QixRQUFpQixFQUNqQixVQUFtQixFQUNuQixRQUFnQixFQUNELEVBQUU7SUFDakIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUNqRSxDQUFDO0lBQ0YsT0FBTywyQkFBbUIsQ0FBQyxLQUFLLENBQUM7UUFDL0IsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJO1FBQ2pFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUMvQixhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7UUFDcEMsV0FBVyxFQUFFLElBQUEsNkJBQWEsRUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQzdDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUM7S0FDckQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBakJXLFFBQUEsZUFBZSxtQkFpQjFCIn0=
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toReturnReceivedSummary = exports.toReturnSummary = exports.RETURN_LOCATION_FIELDS = exports.RETURN_RECEIVED_SUMMARY_FIELDS = exports.RETURN_SUMMARY_FIELDS = void 0;
4
+ const types_1 = require("../types");
5
+ const order_summary_1 = require("./order-summary");
6
+ /** Return fields `toReturnSummary` reads; load them with Query. */
7
+ exports.RETURN_SUMMARY_FIELDS = [
8
+ "id",
9
+ "display_id",
10
+ "location_id",
11
+ "order.display_id",
12
+ "items.quantity",
13
+ "items.item.title",
14
+ "items.item.variant_title",
15
+ "items.reason.label",
16
+ "shipping_methods.name",
17
+ ];
18
+ /** Return fields `toReturnReceivedSummary` reads; load them with Query. */
19
+ exports.RETURN_RECEIVED_SUMMARY_FIELDS = [
20
+ "id",
21
+ "display_id",
22
+ "received_at",
23
+ "order.display_id",
24
+ "items.received_quantity",
25
+ "items.damaged_quantity",
26
+ "items.item.title",
27
+ "items.item.variant_title",
28
+ ];
29
+ /** Stock location fields `toReturnSummary` reads; load them with Query. */
30
+ exports.RETURN_LOCATION_FIELDS = ["id", "address.*"];
31
+ const asRecord = (value) => value && typeof value === "object" ? value : {};
32
+ const asText = (value) => typeof value === "string" && value.trim() ? value.trim() : null;
33
+ const asArray = (value) => Array.isArray(value) ? value : [];
34
+ const asNumber = (value) => {
35
+ const raw = asRecord(value).value ?? value;
36
+ return typeof raw === "string" && raw.trim() ? Number(raw) : raw;
37
+ };
38
+ /**
39
+ * Where the customer sends the parcel: the return's stock location, else
40
+ * the company address from the shop master data. Both are addressed to the
41
+ * company (`legal_name`) unless the location names its own company.
42
+ */
43
+ const returnAddress = (rawLocation, shop) => {
44
+ const company = asText(shop.legal_name);
45
+ const location = (0, order_summary_1.toOrderSummaryAddress)(asRecord(rawLocation).address);
46
+ if (location?.address_1) {
47
+ return { ...location, company: location.company ?? company };
48
+ }
49
+ const street = asText(shop.address_line1);
50
+ if (!street) {
51
+ return null;
52
+ }
53
+ return {
54
+ first_name: null,
55
+ last_name: null,
56
+ company,
57
+ address_1: street,
58
+ address_2: asText(shop.address_line2),
59
+ postal_code: asText(shop.postal_code),
60
+ city: asText(shop.city),
61
+ country_code: asText(shop.country_code),
62
+ };
63
+ };
64
+ /**
65
+ * Maps a requested return, its stock location and the shop master data to
66
+ * the snapshot frozen into the return confirmation. Items carry the order
67
+ * line's product and variant title.
68
+ */
69
+ const toReturnSummary = (rawReturn, rawLocation, shop) => {
70
+ const orderReturn = asRecord(rawReturn);
71
+ const order = asRecord(orderReturn.order);
72
+ return types_1.ReturnSummarySchema.parse({
73
+ display_id: asNumber(orderReturn.display_id) ?? null,
74
+ order_display_id: asNumber(order.display_id) ?? null,
75
+ shipping_method_name: asArray(orderReturn.shipping_methods)
76
+ .map((method) => asText(asRecord(method).name))
77
+ .find((name) => name !== null) ?? null,
78
+ items: asArray(orderReturn.items).map((rawItem) => {
79
+ const item = asRecord(rawItem);
80
+ const line = asRecord(item.item);
81
+ return {
82
+ title: asText(line.title),
83
+ variant_title: asText(line.variant_title),
84
+ quantity: asNumber(item.quantity),
85
+ reason: asText(asRecord(item.reason).label),
86
+ };
87
+ }),
88
+ return_address: returnAddress(rawLocation, shop),
89
+ });
90
+ };
91
+ exports.toReturnSummary = toReturnSummary;
92
+ /**
93
+ * Maps a completely received return to the snapshot frozen into the return
94
+ * receipt. Only items that arrived are listed; damaged units are part of the
95
+ * received quantity, as in Medusa.
96
+ */
97
+ const toReturnReceivedSummary = (rawReturn) => {
98
+ const orderReturn = asRecord(rawReturn);
99
+ return types_1.ReturnReceivedSummarySchema.parse({
100
+ display_id: asNumber(orderReturn.display_id) ?? null,
101
+ order_display_id: asNumber(asRecord(orderReturn.order).display_id) ?? null,
102
+ received_at: (0, order_summary_1.toIsoDateTime)(orderReturn.received_at),
103
+ items: asArray(orderReturn.items)
104
+ .map((rawItem) => {
105
+ const item = asRecord(rawItem);
106
+ const line = asRecord(item.item);
107
+ return {
108
+ title: asText(line.title),
109
+ variant_title: asText(line.variant_title),
110
+ quantity: asNumber(item.received_quantity),
111
+ damaged_quantity: asNumber(item.damaged_quantity) ?? 0,
112
+ };
113
+ })
114
+ .filter((item) => Number(item.quantity) > 0),
115
+ });
116
+ };
117
+ exports.toReturnReceivedSummary = toReturnReceivedSummary;
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJuLXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZW1haWwvZG9tYWluL3JldHVybi1zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG9DQU1rQjtBQUNsQixtREFBdUU7QUFFdkUsbUVBQW1FO0FBQ3RELFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsSUFBSTtJQUNKLFlBQVk7SUFDWixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsMEJBQTBCO0lBQzFCLG9CQUFvQjtJQUNwQix1QkFBdUI7Q0FDZixDQUFDO0FBRVgsMkVBQTJFO0FBQzlELFFBQUEsOEJBQThCLEdBQUc7SUFDNUMsSUFBSTtJQUNKLFlBQVk7SUFDWixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsa0JBQWtCO0lBQ2xCLDBCQUEwQjtDQUNsQixDQUFDO0FBRVgsMkVBQTJFO0FBQzlELFFBQUEsc0JBQXNCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFVLENBQUM7QUFJbkUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQWEsRUFBRSxDQUM3QyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBRSxLQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFFakUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFjLEVBQWlCLEVBQUUsQ0FDL0MsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFFbEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFjLEVBQWEsRUFBRSxDQUM1QyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxL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
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toShipmentSummary = exports.SHIPMENT_ORDER_FIELDS = exports.SHIPMENT_FULFILLMENT_FIELDS = void 0;
4
+ const types_1 = require("../types");
5
+ const order_summary_1 = require("./order-summary");
6
+ /** Fulfillment fields `toShipmentSummary` reads; load them with Query. */
7
+ exports.SHIPMENT_FULFILLMENT_FIELDS = [
8
+ "id",
9
+ "labels.tracking_number",
10
+ "labels.tracking_url",
11
+ "items.line_item_id",
12
+ "items.quantity",
13
+ "items.title",
14
+ "shipping_option.name",
15
+ "delivery_address.*",
16
+ ];
17
+ /** Order fields `toShipmentSummary` reads; load them with `getOrderDetailWorkflow`. */
18
+ exports.SHIPMENT_ORDER_FIELDS = [
19
+ "display_id",
20
+ "items.id",
21
+ "items.title",
22
+ "items.variant_title",
23
+ "items.detail.quantity",
24
+ "items.detail.shipped_quantity",
25
+ ];
26
+ const asRecord = (value) => value && typeof value === "object" ? value : {};
27
+ const asText = (value) => typeof value === "string" && value.trim() ? value.trim() : null;
28
+ const asArray = (value) => Array.isArray(value) ? value : [];
29
+ const asNumber = (value) => {
30
+ const raw = asRecord(value).value ?? value;
31
+ return typeof raw === "string" && raw.trim() ? Number(raw) : raw;
32
+ };
33
+ /** Some ordered quantity has not been shipped yet. */
34
+ const hasUnshippedItems = (items) => items.some((rawItem) => {
35
+ const detail = asRecord(asRecord(rawItem).detail);
36
+ const ordered = Number(asNumber(detail.quantity));
37
+ const shipped = Number(asNumber(detail.shipped_quantity) ?? 0);
38
+ return Number.isFinite(ordered) && Number.isFinite(shipped)
39
+ ? shipped < ordered
40
+ : false;
41
+ });
42
+ /**
43
+ * Maps a shipped fulfillment and its order to the snapshot frozen into the
44
+ * shipping confirmation. Items carry the order line's product and variant
45
+ * title; more is to follow while some ordered quantity is not shipped yet.
46
+ */
47
+ const toShipmentSummary = (rawOrder, rawFulfillment) => {
48
+ const order = asRecord(rawOrder);
49
+ const fulfillment = asRecord(rawFulfillment);
50
+ const orderItems = new Map(asArray(order.items).map((item) => [asRecord(item).id, asRecord(item)]));
51
+ return types_1.ShipmentSummarySchema.parse({
52
+ display_id: asNumber(order.display_id) ?? null,
53
+ shipping_method_name: asText(asRecord(fulfillment.shipping_option).name),
54
+ tracking: asArray(fulfillment.labels)
55
+ .map((label) => ({
56
+ number: asText(asRecord(label).tracking_number),
57
+ url: asText(asRecord(label).tracking_url),
58
+ }))
59
+ .filter((label) => label.number !== null || label.url !== null),
60
+ items: asArray(fulfillment.items).map((rawItem) => {
61
+ const item = asRecord(rawItem);
62
+ const line = orderItems.get(item.line_item_id);
63
+ return {
64
+ title: asText(line?.title) ?? item.title,
65
+ variant_title: line ? asText(line.variant_title) : null,
66
+ quantity: asNumber(item.quantity),
67
+ };
68
+ }),
69
+ delivery_address: (0, order_summary_1.toOrderSummaryAddress)(fulfillment.delivery_address),
70
+ more_to_follow: hasUnshippedItems(asArray(order.items)),
71
+ });
72
+ };
73
+ exports.toShipmentSummary = toShipmentSummary;
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtc3VtbWFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbWFpbC9kb21haW4vc2hpcG1lbnQtc3VtbWFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FBdUU7QUFDdkUsbURBQXdEO0FBRXhELDBFQUEwRTtBQUM3RCxRQUFBLDJCQUEyQixHQUFHO0lBQ3pDLElBQUk7SUFDSix3QkFBd0I7SUFDeEIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixvQkFBb0I7Q0FDWixDQUFDO0FBRVgsdUZBQXVGO0FBQzFFLFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsWUFBWTtJQUNaLFVBQVU7SUFDVixhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QiwrQkFBK0I7Q0FDdkIsQ0FBQztBQUlYLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBYyxFQUFhLEVBQUUsQ0FDN0MsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUUsS0FBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRWpFLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBYyxFQUFpQixFQUFFLENBQy9DLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBRWxFLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYyxFQUFhLEVBQUUsQ0FDNUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFFcEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFjLEVBQVcsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENB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
@@ -26,6 +26,14 @@ exports.emailPluginFeatures = (0, public_1.definePluginFeatures)({
26
26
  default_enabled: true,
27
27
  },
28
28
  ],
29
+ settings: [
30
+ {
31
+ key: "logo",
32
+ label: "Logo",
33
+ description: "PNG oder JPG, erscheint oben in den E-Mails. Am besten mindestens 400 px breit, auf weißem oder transparentem Hintergrund. Ohne Logo steht dort der Shopname.",
34
+ type: "image",
35
+ },
36
+ ],
29
37
  admin_page: "/settings/hartl-services/email",
30
38
  });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWZlYXR1cmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VtYWlsL3BsdWdpbi1mZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzQ0FBaUQ7QUFFcEMsUUFBQSxtQkFBbUIsR0FBRyxJQUFBLDZCQUFvQixFQUFDO0lBQ3RELFVBQVUsRUFBRSxPQUFPO0lBQ25CLEtBQUssRUFBRSxRQUFRO0lBQ2YsV0FBVyxFQUNULDZhQUE2YTtJQUMvYSxRQUFRLEVBQUU7UUFDUjtZQUNFLEdBQUcsRUFBRSxhQUFhO1lBQ2xCLEtBQUssRUFBRSxlQUFlO1lBQ3RCLFdBQVcsRUFDVCxvWkFBb1o7WUFDdFosZUFBZSxFQUFFLElBQUk7U0FDdEI7UUFDRDtZQUNFLEdBQUcsRUFBRSxlQUFlO1lBQ3BCLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFdBQVcsRUFDVCwySEFBMkg7WUFDN0gsZUFBZSxFQUFFLElBQUk7U0FDdEI7UUFDRDtZQUNFLEdBQUcsRUFBRSxxQkFBcUI7WUFDMUIsS0FBSyxFQUFFLHdCQUF3QjtZQUMvQixXQUFXLEVBQ1Qsc0hBQXNIO1lBQ3hILGVBQWUsRUFBRSxJQUFJO1NBQ3RCO0tBQ0Y7SUFDRCxVQUFVLEVBQUUsZ0NBQWdDO0NBQzdDLENBQUMsQ0FBQyJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWZlYXR1cmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VtYWlsL3BsdWdpbi1mZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzQ0FBaUQ7QUFFcEMsUUFBQSxtQkFBbUIsR0FBRyxJQUFBLDZCQUFvQixFQUFDO0lBQ3RELFVBQVUsRUFBRSxPQUFPO0lBQ25CLEtBQUssRUFBRSxRQUFRO0lBQ2YsV0FBVyxFQUNULDZhQUE2YTtJQUMvYSxRQUFRLEVBQUU7UUFDUjtZQUNFLEdBQUcsRUFBRSxhQUFhO1lBQ2xCLEtBQUssRUFBRSxlQUFlO1lBQ3RCLFdBQVcsRUFDVCxvWkFBb1o7WUFDdFosZUFBZSxFQUFFLElBQUk7U0FDdEI7UUFDRDtZQUNFLEdBQUcsRUFBRSxlQUFlO1lBQ3BCLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFdBQVcsRUFDVCwySEFBMkg7WUFDN0gsZUFBZSxFQUFFLElBQUk7U0FDdEI7UUFDRDtZQUNFLEdBQUcsRUFBRSxxQkFBcUI7WUFDMUIsS0FBSyxFQUFFLHdCQUF3QjtZQUMvQixXQUFXLEVBQ1Qsc0hBQXNIO1lBQ3hILGVBQWUsRUFBRSxJQUFJO1NBQ3RCO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUjtZQUNFLEdBQUcsRUFBRSxNQUFNO1lBQ1gsS0FBSyxFQUFFLE1BQU07WUFDYixXQUFXLEVBQ1QsK0pBQStKO1lBQ2pLLElBQUksRUFBRSxPQUFPO1NBQ2Q7S0FDRjtJQUNELFVBQVUsRUFBRSxnQ0FBZ0M7Q0FDN0MsQ0FBQyxDQUFDIn0=