@infuro/cms-core 1.0.45 → 1.0.46

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 (65) hide show
  1. package/README.md +19 -2
  2. package/dist/admin.cjs +873 -214
  3. package/dist/admin.d.cts +7 -1
  4. package/dist/admin.d.ts +7 -1
  5. package/dist/admin.js +874 -215
  6. package/dist/api.cjs +40 -37
  7. package/dist/api.d.cts +1 -1
  8. package/dist/api.d.ts +1 -1
  9. package/dist/api.js +8 -5
  10. package/dist/auth.cjs +23 -23
  11. package/dist/auth.d.cts +1 -0
  12. package/dist/auth.d.ts +1 -0
  13. package/dist/auth.js +2 -2
  14. package/dist/chunk-2KUCQVAQ.js +936 -0
  15. package/dist/chunk-3K5AIEIZ.js +256 -0
  16. package/dist/{chunk-I6NH72MO.js → chunk-57O3HZPG.js} +9 -1
  17. package/dist/chunk-7PMHZRF3.cjs +872 -0
  18. package/dist/chunk-BXYZDMTZ.cjs +953 -0
  19. package/dist/chunk-CQHXW4TR.js +107 -0
  20. package/dist/{chunk-NNQBWDCI.js → chunk-CRYKVJTO.js} +55 -959
  21. package/dist/chunk-DBPSJYLZ.js +47 -0
  22. package/dist/{chunk-TAHX46EI.cjs → chunk-FBKDMRQL.cjs} +9 -1
  23. package/dist/chunk-GUSHM5HN.js +862 -0
  24. package/dist/chunk-HY3AXLOI.cjs +265 -0
  25. package/dist/chunk-L3525VXI.js +243 -0
  26. package/dist/{chunk-ZMRQ72F6.cjs → chunk-NBY4NVTY.cjs} +3 -3
  27. package/dist/chunk-OY2YTBMP.cjs +50 -0
  28. package/dist/{chunk-BLR6H5GL.js → chunk-SF2XKMCI.js} +3 -3
  29. package/dist/{chunk-22FFHLTO.cjs → chunk-TCSGFAWB.cjs} +56 -970
  30. package/dist/{chunk-F5XFHYTG.cjs → chunk-UDVLFVEC.cjs} +661 -382
  31. package/dist/{chunk-MVXLRANV.js → chunk-UKC3HYXI.js} +591 -323
  32. package/dist/chunk-V25RDUOU.cjs +248 -0
  33. package/dist/chunk-XMRMZ6NQ.cjs +109 -0
  34. package/dist/cli.cjs +9 -4
  35. package/dist/cli.js +9 -4
  36. package/dist/{email-queue-TPZWLTIV.cjs → email-queue-6NJY6HNM.cjs} +7 -5
  37. package/dist/email-queue-OI2HSCGE.js +4 -0
  38. package/dist/erp-order-invoice-3GXDE443.js +3 -0
  39. package/dist/erp-order-invoice-EYYNR526.cjs +24 -0
  40. package/dist/index.cjs +391 -364
  41. package/dist/index.d.cts +267 -14
  42. package/dist/index.d.ts +267 -14
  43. package/dist/index.js +12 -110
  44. package/dist/migrations/1781810000000-OrderItemsVariantId.ts +44 -0
  45. package/dist/migrations/1781900000000-UserInviteStatusToken.ts +46 -0
  46. package/dist/migrations/1782000000000-ComboSlug.ts +58 -0
  47. package/dist/migrations/1782100000000-DiscountDeviceType.ts +20 -0
  48. package/dist/order-inventory-2MYRKEPC.cjs +39 -0
  49. package/dist/order-inventory-76V4XIGW.js +2 -0
  50. package/dist/order-notification-dispatcher-SBQAMM5V.cjs +21 -0
  51. package/dist/{order-notification-dispatcher-XWIJYDGA.js → order-notification-dispatcher-ZJZB2HUN.js} +5 -2
  52. package/dist/retire-soft-deleted-unique-5VXBA5XX.cjs +15 -0
  53. package/dist/retire-soft-deleted-unique-NXQIH4BC.js +2 -0
  54. package/dist/send-order-placed-emails-B5ZVJT7T.cjs +15 -0
  55. package/dist/send-order-placed-emails-WPI37KRZ.js +6 -0
  56. package/package.json +5 -4
  57. package/src/admin/admin.css +27 -24
  58. package/dist/chunk-5ELSW2UP.js +0 -150
  59. package/dist/chunk-PNOKNSG2.cjs +0 -222
  60. package/dist/chunk-WEMDMVHQ.js +0 -216
  61. package/dist/chunk-XW5ATPRW.cjs +0 -155
  62. package/dist/email-queue-CGZBVVAS.js +0 -2
  63. package/dist/erp-order-invoice-3YISSOWW.js +0 -3
  64. package/dist/erp-order-invoice-ZR5F2KTA.cjs +0 -12
  65. package/dist/order-notification-dispatcher-RU7BTGGX.cjs +0 -18
@@ -1,222 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkUPLVMVRX_cjs = require('./chunk-UPLVMVRX.cjs');
4
- var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
5
-
6
- // src/plugins/erp/erp-response-map.ts
7
- function pickString(o, keys) {
8
- for (const k of keys) {
9
- const v = o[k];
10
- if (typeof v === "string" && v.trim()) return v.trim();
11
- }
12
- return void 0;
13
- }
14
- chunkUSNT2KNT_cjs.__name(pickString, "pickString");
15
- function unwrapErpReadData(json) {
16
- if (!json || typeof json !== "object") return null;
17
- const o = json;
18
- const d = o.data;
19
- if (d && typeof d === "object" && !Array.isArray(d)) return d;
20
- return o;
21
- }
22
- chunkUSNT2KNT_cjs.__name(unwrapErpReadData, "unwrapErpReadData");
23
- function firstObject(data, keys) {
24
- for (const k of keys) {
25
- const v = data[k];
26
- if (v && typeof v === "object" && !Array.isArray(v)) return v;
27
- }
28
- return null;
29
- }
30
- chunkUSNT2KNT_cjs.__name(firstObject, "firstObject");
31
- function extractEvents(src) {
32
- const timeline = src.timeline ?? src.events ?? src.history ?? src.trackingEvents;
33
- if (!Array.isArray(timeline) || !timeline.length) return void 0;
34
- const events = [];
35
- for (const row of timeline) {
36
- if (!row || typeof row !== "object") continue;
37
- const r = row;
38
- const at = pickString(r, [
39
- "at",
40
- "timestamp",
41
- "date",
42
- "occurredAt"
43
- ]) ?? (r.at instanceof Date ? r.at.toISOString() : void 0);
44
- const label = pickString(r, [
45
- "label",
46
- "status",
47
- "title",
48
- "message",
49
- "description"
50
- ]);
51
- const detail = pickString(r, [
52
- "detail",
53
- "notes",
54
- "description"
55
- ]);
56
- if (at || label || detail) events.push({
57
- at,
58
- label,
59
- detail
60
- });
61
- }
62
- return events.length ? events : void 0;
63
- }
64
- chunkUSNT2KNT_cjs.__name(extractEvents, "extractEvents");
65
- function mapErpPayloadToFulfillment(data) {
66
- const nested = firstObject(data, [
67
- "fulfillment",
68
- "packaging",
69
- "shipment",
70
- "shipping",
71
- "delivery"
72
- ]);
73
- const src = nested || data;
74
- const status = pickString(src, [
75
- "status",
76
- "fulfillmentStatus",
77
- "state",
78
- "label",
79
- "packagingStatus"
80
- ]);
81
- const trackingId = pickString(src, [
82
- "trackingId",
83
- "tracking_id",
84
- "trackingNumber",
85
- "awb",
86
- "trackingUrl"
87
- ]);
88
- const events = extractEvents(src);
89
- if (!status && !trackingId && !(events && events.length)) return void 0;
90
- return {
91
- status,
92
- trackingId,
93
- events
94
- };
95
- }
96
- chunkUSNT2KNT_cjs.__name(mapErpPayloadToFulfillment, "mapErpPayloadToFulfillment");
97
- function mapErpPayloadToInvoiceNumber(data) {
98
- const nested = firstObject(data, [
99
- "invoice",
100
- "latestInvoice",
101
- "postedInvoice"
102
- ]);
103
- const src = nested || data;
104
- return pickString(src, [
105
- "invoiceNumber",
106
- "invoice_number",
107
- "number",
108
- "name",
109
- "id"
110
- ]);
111
- }
112
- chunkUSNT2KNT_cjs.__name(mapErpPayloadToInvoiceNumber, "mapErpPayloadToInvoiceNumber");
113
- function extractChildOrderRefsFromSalePayload(data) {
114
- const lists = [
115
- data.returns,
116
- data.returnOrders,
117
- data.relatedReturns,
118
- data.childOrders,
119
- data.children
120
- ];
121
- const seen = /* @__PURE__ */ new Set();
122
- const out = [];
123
- for (const list of lists) {
124
- if (!Array.isArray(list)) continue;
125
- for (const item of list) {
126
- if (!item || typeof item !== "object") continue;
127
- const o = item;
128
- const ref = pickString(o, [
129
- "platformReturnId",
130
- "platform_return_id",
131
- "refId",
132
- "ref_id"
133
- ]) ?? (typeof o.id === "string" ? o.id : void 0);
134
- if (!ref || seen.has(ref)) continue;
135
- seen.add(ref);
136
- const t = (pickString(o, [
137
- "kind",
138
- "type",
139
- "orderKind"
140
- ]) || "").toLowerCase();
141
- const orderKind = /replac/.test(t) ? "replacement" : "return";
142
- out.push({
143
- ref,
144
- orderKind
145
- });
146
- }
147
- }
148
- return out;
149
- }
150
- chunkUSNT2KNT_cjs.__name(extractChildOrderRefsFromSalePayload, "extractChildOrderRefsFromSalePayload");
151
-
152
- // src/plugins/erp/erp-order-invoice.ts
153
- function pickInvoiceId(data) {
154
- const nested = data.invoice && typeof data.invoice === "object" && !Array.isArray(data.invoice) ? data.invoice : null;
155
- const src = nested || data;
156
- for (const k of [
157
- "invoiceId",
158
- "invoice_id",
159
- "id"
160
- ]) {
161
- const v = src[k];
162
- if (typeof v === "string" && v.trim()) return v.trim();
163
- }
164
- return void 0;
165
- }
166
- chunkUSNT2KNT_cjs.__name(pickInvoiceId, "pickInvoiceId");
167
- async function streamOrderInvoicePdf(cms, dataSource, entityMap, orderId, options) {
168
- const jsonErr = /* @__PURE__ */ chunkUSNT2KNT_cjs.__name((msg, status) => new Response(JSON.stringify({
169
- error: msg
170
- }), {
171
- status,
172
- headers: {
173
- "Content-Type": "application/json"
174
- }
175
- }), "jsonErr");
176
- const on = await chunkUPLVMVRX_cjs.isErpIntegrationEnabled(cms, dataSource, entityMap);
177
- if (!on) return jsonErr("Invoice not available", 503);
178
- const erp = cms.getPlugin("erp");
179
- if (!erp?.submission) return jsonErr("Invoice not available", 503);
180
- const orderRepo = dataSource.getRepository(entityMap.orders);
181
- const order = await orderRepo.findOne({
182
- where: {
183
- id: orderId,
184
- deleted: false
185
- }
186
- });
187
- if (!order) return jsonErr("Not found", 404);
188
- const kind = order.orderKind || "sale";
189
- if (kind !== "sale") return jsonErr("Invoice only for sale orders", 400);
190
- if (options.ownerContactId != null && order.contactId !== options.ownerContactId) {
191
- return jsonErr("Not found", 404);
192
- }
193
- const meta = order.metadata && typeof order.metadata === "object" && !Array.isArray(order.metadata) ? order.metadata : {};
194
- const inv = meta.invoice && typeof meta.invoice === "object" && !Array.isArray(meta.invoice) ? meta.invoice : {};
195
- let invoiceId = typeof inv.invoiceId === "string" ? inv.invoiceId.trim() : "";
196
- if (!invoiceId) {
197
- const refId = String(order.orderNumber || "");
198
- const r = await erp.submission.postErpReadAction("get-invoice", {
199
- platformOrderId: refId
200
- });
201
- const d = r.ok ? unwrapErpReadData(r.json) : null;
202
- invoiceId = d ? pickInvoiceId(d) || "" : "";
203
- }
204
- if (!invoiceId) return jsonErr("Invoice not ready", 404);
205
- const pdf = await erp.submission.fetchInvoicePdf(invoiceId);
206
- if (!pdf.ok || !pdf.buffer) return jsonErr(pdf.error || "PDF fetch failed", 502);
207
- const filename = `invoice-${orderId}.pdf`;
208
- return new Response(pdf.buffer, {
209
- status: 200,
210
- headers: {
211
- "Content-Type": pdf.contentType || "application/pdf",
212
- "Content-Disposition": `attachment; filename="${filename}"`
213
- }
214
- });
215
- }
216
- chunkUSNT2KNT_cjs.__name(streamOrderInvoicePdf, "streamOrderInvoicePdf");
217
-
218
- exports.extractChildOrderRefsFromSalePayload = extractChildOrderRefsFromSalePayload;
219
- exports.mapErpPayloadToFulfillment = mapErpPayloadToFulfillment;
220
- exports.mapErpPayloadToInvoiceNumber = mapErpPayloadToInvoiceNumber;
221
- exports.streamOrderInvoicePdf = streamOrderInvoicePdf;
222
- exports.unwrapErpReadData = unwrapErpReadData;
@@ -1,216 +0,0 @@
1
- import { isErpIntegrationEnabled } from './chunk-JC6DLWTE.js';
2
- import { __name } from './chunk-SHUYVCID.js';
3
-
4
- // src/plugins/erp/erp-response-map.ts
5
- function pickString(o, keys) {
6
- for (const k of keys) {
7
- const v = o[k];
8
- if (typeof v === "string" && v.trim()) return v.trim();
9
- }
10
- return void 0;
11
- }
12
- __name(pickString, "pickString");
13
- function unwrapErpReadData(json) {
14
- if (!json || typeof json !== "object") return null;
15
- const o = json;
16
- const d = o.data;
17
- if (d && typeof d === "object" && !Array.isArray(d)) return d;
18
- return o;
19
- }
20
- __name(unwrapErpReadData, "unwrapErpReadData");
21
- function firstObject(data, keys) {
22
- for (const k of keys) {
23
- const v = data[k];
24
- if (v && typeof v === "object" && !Array.isArray(v)) return v;
25
- }
26
- return null;
27
- }
28
- __name(firstObject, "firstObject");
29
- function extractEvents(src) {
30
- const timeline = src.timeline ?? src.events ?? src.history ?? src.trackingEvents;
31
- if (!Array.isArray(timeline) || !timeline.length) return void 0;
32
- const events = [];
33
- for (const row of timeline) {
34
- if (!row || typeof row !== "object") continue;
35
- const r = row;
36
- const at = pickString(r, [
37
- "at",
38
- "timestamp",
39
- "date",
40
- "occurredAt"
41
- ]) ?? (r.at instanceof Date ? r.at.toISOString() : void 0);
42
- const label = pickString(r, [
43
- "label",
44
- "status",
45
- "title",
46
- "message",
47
- "description"
48
- ]);
49
- const detail = pickString(r, [
50
- "detail",
51
- "notes",
52
- "description"
53
- ]);
54
- if (at || label || detail) events.push({
55
- at,
56
- label,
57
- detail
58
- });
59
- }
60
- return events.length ? events : void 0;
61
- }
62
- __name(extractEvents, "extractEvents");
63
- function mapErpPayloadToFulfillment(data) {
64
- const nested = firstObject(data, [
65
- "fulfillment",
66
- "packaging",
67
- "shipment",
68
- "shipping",
69
- "delivery"
70
- ]);
71
- const src = nested || data;
72
- const status = pickString(src, [
73
- "status",
74
- "fulfillmentStatus",
75
- "state",
76
- "label",
77
- "packagingStatus"
78
- ]);
79
- const trackingId = pickString(src, [
80
- "trackingId",
81
- "tracking_id",
82
- "trackingNumber",
83
- "awb",
84
- "trackingUrl"
85
- ]);
86
- const events = extractEvents(src);
87
- if (!status && !trackingId && !(events && events.length)) return void 0;
88
- return {
89
- status,
90
- trackingId,
91
- events
92
- };
93
- }
94
- __name(mapErpPayloadToFulfillment, "mapErpPayloadToFulfillment");
95
- function mapErpPayloadToInvoiceNumber(data) {
96
- const nested = firstObject(data, [
97
- "invoice",
98
- "latestInvoice",
99
- "postedInvoice"
100
- ]);
101
- const src = nested || data;
102
- return pickString(src, [
103
- "invoiceNumber",
104
- "invoice_number",
105
- "number",
106
- "name",
107
- "id"
108
- ]);
109
- }
110
- __name(mapErpPayloadToInvoiceNumber, "mapErpPayloadToInvoiceNumber");
111
- function extractChildOrderRefsFromSalePayload(data) {
112
- const lists = [
113
- data.returns,
114
- data.returnOrders,
115
- data.relatedReturns,
116
- data.childOrders,
117
- data.children
118
- ];
119
- const seen = /* @__PURE__ */ new Set();
120
- const out = [];
121
- for (const list of lists) {
122
- if (!Array.isArray(list)) continue;
123
- for (const item of list) {
124
- if (!item || typeof item !== "object") continue;
125
- const o = item;
126
- const ref = pickString(o, [
127
- "platformReturnId",
128
- "platform_return_id",
129
- "refId",
130
- "ref_id"
131
- ]) ?? (typeof o.id === "string" ? o.id : void 0);
132
- if (!ref || seen.has(ref)) continue;
133
- seen.add(ref);
134
- const t = (pickString(o, [
135
- "kind",
136
- "type",
137
- "orderKind"
138
- ]) || "").toLowerCase();
139
- const orderKind = /replac/.test(t) ? "replacement" : "return";
140
- out.push({
141
- ref,
142
- orderKind
143
- });
144
- }
145
- }
146
- return out;
147
- }
148
- __name(extractChildOrderRefsFromSalePayload, "extractChildOrderRefsFromSalePayload");
149
-
150
- // src/plugins/erp/erp-order-invoice.ts
151
- function pickInvoiceId(data) {
152
- const nested = data.invoice && typeof data.invoice === "object" && !Array.isArray(data.invoice) ? data.invoice : null;
153
- const src = nested || data;
154
- for (const k of [
155
- "invoiceId",
156
- "invoice_id",
157
- "id"
158
- ]) {
159
- const v = src[k];
160
- if (typeof v === "string" && v.trim()) return v.trim();
161
- }
162
- return void 0;
163
- }
164
- __name(pickInvoiceId, "pickInvoiceId");
165
- async function streamOrderInvoicePdf(cms, dataSource, entityMap, orderId, options) {
166
- const jsonErr = /* @__PURE__ */ __name((msg, status) => new Response(JSON.stringify({
167
- error: msg
168
- }), {
169
- status,
170
- headers: {
171
- "Content-Type": "application/json"
172
- }
173
- }), "jsonErr");
174
- const on = await isErpIntegrationEnabled(cms, dataSource, entityMap);
175
- if (!on) return jsonErr("Invoice not available", 503);
176
- const erp = cms.getPlugin("erp");
177
- if (!erp?.submission) return jsonErr("Invoice not available", 503);
178
- const orderRepo = dataSource.getRepository(entityMap.orders);
179
- const order = await orderRepo.findOne({
180
- where: {
181
- id: orderId,
182
- deleted: false
183
- }
184
- });
185
- if (!order) return jsonErr("Not found", 404);
186
- const kind = order.orderKind || "sale";
187
- if (kind !== "sale") return jsonErr("Invoice only for sale orders", 400);
188
- if (options.ownerContactId != null && order.contactId !== options.ownerContactId) {
189
- return jsonErr("Not found", 404);
190
- }
191
- const meta = order.metadata && typeof order.metadata === "object" && !Array.isArray(order.metadata) ? order.metadata : {};
192
- const inv = meta.invoice && typeof meta.invoice === "object" && !Array.isArray(meta.invoice) ? meta.invoice : {};
193
- let invoiceId = typeof inv.invoiceId === "string" ? inv.invoiceId.trim() : "";
194
- if (!invoiceId) {
195
- const refId = String(order.orderNumber || "");
196
- const r = await erp.submission.postErpReadAction("get-invoice", {
197
- platformOrderId: refId
198
- });
199
- const d = r.ok ? unwrapErpReadData(r.json) : null;
200
- invoiceId = d ? pickInvoiceId(d) || "" : "";
201
- }
202
- if (!invoiceId) return jsonErr("Invoice not ready", 404);
203
- const pdf = await erp.submission.fetchInvoicePdf(invoiceId);
204
- if (!pdf.ok || !pdf.buffer) return jsonErr(pdf.error || "PDF fetch failed", 502);
205
- const filename = `invoice-${orderId}.pdf`;
206
- return new Response(pdf.buffer, {
207
- status: 200,
208
- headers: {
209
- "Content-Type": pdf.contentType || "application/pdf",
210
- "Content-Disposition": `attachment; filename="${filename}"`
211
- }
212
- });
213
- }
214
- __name(streamOrderInvoicePdf, "streamOrderInvoicePdf");
215
-
216
- export { extractChildOrderRefsFromSalePayload, mapErpPayloadToFulfillment, mapErpPayloadToInvoiceNumber, streamOrderInvoicePdf, unwrapErpReadData };
@@ -1,155 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
4
-
5
- // src/plugins/email/email-queue.ts
6
- var EMAIL_QUEUE_NAME = "email";
7
- function registerEmailQueueProcessor(cms) {
8
- const queue = cms.getPlugin("queue");
9
- const email = cms.getPlugin("email");
10
- if (!queue || !email) return;
11
- queue.registerProcessor(EMAIL_QUEUE_NAME, async (data) => {
12
- const payload = data;
13
- const { to, templateName, ctx, subject, html, text } = payload;
14
- if (!to) return;
15
- if (templateName && ctx) {
16
- const rendered = email.renderTemplate(templateName, ctx);
17
- await email.send({
18
- to,
19
- subject: rendered.subject,
20
- html: rendered.html,
21
- text: rendered.text
22
- });
23
- } else if (subject != null && html != null) {
24
- await email.send({
25
- to,
26
- subject,
27
- html,
28
- text
29
- });
30
- }
31
- });
32
- }
33
- chunkUSNT2KNT_cjs.__name(registerEmailQueueProcessor, "registerEmailQueueProcessor");
34
- async function queueEmail(cms, payload) {
35
- const queue = cms.getPlugin("queue");
36
- if (queue) {
37
- await queue.add(EMAIL_QUEUE_NAME, payload);
38
- return;
39
- }
40
- const email = cms.getPlugin("email");
41
- if (email && payload.templateName && payload.ctx) {
42
- const rendered = email.renderTemplate(payload.templateName, payload.ctx);
43
- await email.send({
44
- to: payload.to,
45
- subject: rendered.subject,
46
- html: rendered.html,
47
- text: rendered.text
48
- });
49
- } else if (email && payload.subject != null && payload.html != null) {
50
- await email.send({
51
- to: payload.to,
52
- subject: payload.subject,
53
- html: payload.html,
54
- text: payload.text
55
- });
56
- }
57
- }
58
- chunkUSNT2KNT_cjs.__name(queueEmail, "queueEmail");
59
- async function queueOrderPlacedEmails(cms, payload) {
60
- const { orderNumber, total, subtotal, tax, currency, customerName, customerEmail, salesTeamEmails, companyDetails, lineItems, billingAddress, shippingAddress } = payload;
61
- const base = {
62
- orderNumber,
63
- total: total != null ? String(total) : void 0,
64
- subtotal: subtotal != null ? String(subtotal) : void 0,
65
- tax: tax != null ? String(tax) : void 0,
66
- currency,
67
- customerName,
68
- companyDetails: companyDetails ?? {},
69
- lineItems: lineItems ?? [],
70
- billingAddress,
71
- shippingAddress
72
- };
73
- const customerLower = customerEmail?.trim().toLowerCase() ?? "";
74
- const jobs = [];
75
- if (customerEmail?.trim()) {
76
- jobs.push(queueEmail(cms, {
77
- to: customerEmail.trim(),
78
- templateName: "orderPlaced",
79
- ctx: {
80
- ...base,
81
- audience: "customer"
82
- }
83
- }));
84
- }
85
- const seen = /* @__PURE__ */ new Set();
86
- for (const raw of salesTeamEmails) {
87
- const to = raw.trim();
88
- if (!to) continue;
89
- const key = to.toLowerCase();
90
- if (seen.has(key)) continue;
91
- seen.add(key);
92
- if (customerLower && key === customerLower) continue;
93
- jobs.push(queueEmail(cms, {
94
- to,
95
- templateName: "orderPlaced",
96
- ctx: {
97
- ...base,
98
- audience: "sales",
99
- internalCustomerEmail: customerEmail?.trim() || void 0
100
- }
101
- }));
102
- }
103
- await Promise.all(jobs);
104
- }
105
- chunkUSNT2KNT_cjs.__name(queueOrderPlacedEmails, "queueOrderPlacedEmails");
106
- async function queueVendorOnboardEmails(cms, payload) {
107
- const { vendorName, vendorSlug, ownerName, ownerEmail, activation, inviteLink, signInLink, kind = "vendor_onboard", notifyEmails, companyDetails, sendToOwner = true } = payload;
108
- const base = {
109
- vendorName,
110
- vendorSlug,
111
- ownerName,
112
- ownerEmail,
113
- activation,
114
- inviteLink,
115
- signInLink,
116
- kind,
117
- companyDetails: companyDetails ?? {}
118
- };
119
- const ownerLower = ownerEmail?.trim().toLowerCase() ?? "";
120
- const jobs = [];
121
- if (sendToOwner && ownerEmail?.trim()) {
122
- jobs.push(queueEmail(cms, {
123
- to: ownerEmail.trim(),
124
- templateName: "vendorOnboarded",
125
- ctx: {
126
- ...base,
127
- audience: "owner"
128
- }
129
- }));
130
- }
131
- const seen = /* @__PURE__ */ new Set();
132
- for (const raw of notifyEmails) {
133
- const to = raw.trim();
134
- if (!to) continue;
135
- const key = to.toLowerCase();
136
- if (seen.has(key)) continue;
137
- seen.add(key);
138
- if (ownerLower && key === ownerLower) continue;
139
- jobs.push(queueEmail(cms, {
140
- to,
141
- templateName: "vendorOnboarded",
142
- ctx: {
143
- ...base,
144
- audience: "internal"
145
- }
146
- }));
147
- }
148
- await Promise.all(jobs);
149
- }
150
- chunkUSNT2KNT_cjs.__name(queueVendorOnboardEmails, "queueVendorOnboardEmails");
151
-
152
- exports.queueEmail = queueEmail;
153
- exports.queueOrderPlacedEmails = queueOrderPlacedEmails;
154
- exports.queueVendorOnboardEmails = queueVendorOnboardEmails;
155
- exports.registerEmailQueueProcessor = registerEmailQueueProcessor;
@@ -1,2 +0,0 @@
1
- export { queueEmail, queueOrderPlacedEmails, queueVendorOnboardEmails, registerEmailQueueProcessor } from './chunk-5ELSW2UP.js';
2
- import './chunk-SHUYVCID.js';
@@ -1,3 +0,0 @@
1
- export { streamOrderInvoicePdf } from './chunk-WEMDMVHQ.js';
2
- import './chunk-JC6DLWTE.js';
3
- import './chunk-SHUYVCID.js';
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkPNOKNSG2_cjs = require('./chunk-PNOKNSG2.cjs');
4
- require('./chunk-UPLVMVRX.cjs');
5
- require('./chunk-USNT2KNT.cjs');
6
-
7
-
8
-
9
- Object.defineProperty(exports, "streamOrderInvoicePdf", {
10
- enumerable: true,
11
- get: function () { return chunkPNOKNSG2_cjs.streamOrderInvoicePdf; }
12
- });
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk22FFHLTO_cjs = require('./chunk-22FFHLTO.cjs');
4
- require('./chunk-UCKN4BBY.cjs');
5
- require('./chunk-XW5ATPRW.cjs');
6
- require('./chunk-OOTLNH63.cjs');
7
- require('./chunk-USNT2KNT.cjs');
8
-
9
-
10
-
11
- Object.defineProperty(exports, "initWhatsappTriggerDispatcher", {
12
- enumerable: true,
13
- get: function () { return chunk22FFHLTO_cjs.initWhatsappTriggerDispatcher; }
14
- });
15
- Object.defineProperty(exports, "resendOrderNotification", {
16
- enumerable: true,
17
- get: function () { return chunk22FFHLTO_cjs.resendOrderNotification; }
18
- });