@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
@@ -0,0 +1,248 @@
1
+ 'use strict';
2
+
3
+ var chunkBXYZDMTZ_cjs = require('./chunk-BXYZDMTZ.cjs');
4
+ var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
5
+
6
+ // src/plugins/email/email-queue.ts
7
+ var EMAIL_QUEUE_NAME = "email";
8
+ var registeredInvoiceOptions = {};
9
+ async function resolveInvoiceAttachmentForJob(cms, payload, options) {
10
+ if (!payload.attachInvoice || payload.orderId == null || payload.orderId < 1) {
11
+ return {
12
+ attachments: payload.attachments,
13
+ invoiceAttached: false
14
+ };
15
+ }
16
+ const entityMap = options.entityMap;
17
+ if (!entityMap?.orders) {
18
+ console.warn("[email] attachInvoice skipped: entityMap not registered on email queue processor");
19
+ return {
20
+ attachments: payload.attachments,
21
+ invoiceAttached: false
22
+ };
23
+ }
24
+ let dataSource;
25
+ try {
26
+ dataSource = options.getDataSource ? await options.getDataSource() : cms.dataSource;
27
+ } catch (err) {
28
+ console.error("[email] attachInvoice: getDataSource failed", err);
29
+ return {
30
+ attachments: payload.attachments,
31
+ invoiceAttached: false
32
+ };
33
+ }
34
+ if (!dataSource) {
35
+ console.warn("[email] attachInvoice skipped: no dataSource");
36
+ return {
37
+ attachments: payload.attachments,
38
+ invoiceAttached: false
39
+ };
40
+ }
41
+ try {
42
+ const order = await dataSource.getRepository(entityMap.orders).findOne({
43
+ where: {
44
+ id: payload.orderId,
45
+ deleted: false
46
+ }
47
+ });
48
+ if (!order) return {
49
+ attachments: payload.attachments,
50
+ invoiceAttached: false
51
+ };
52
+ const o = order;
53
+ if (!chunkBXYZDMTZ_cjs.isOrderEligibleForInvoiceEmail(o.status, o.orderKind)) {
54
+ return {
55
+ attachments: payload.attachments,
56
+ invoiceAttached: false
57
+ };
58
+ }
59
+ const resolved = await chunkBXYZDMTZ_cjs.resolveOrderInvoicePdfBytes(cms, dataSource, entityMap, payload.orderId);
60
+ if ("error" in resolved) {
61
+ console.warn("[email] order invoice attach failed", {
62
+ orderId: payload.orderId,
63
+ error: resolved.error,
64
+ status: resolved.status
65
+ });
66
+ return {
67
+ attachments: payload.attachments,
68
+ invoiceAttached: false
69
+ };
70
+ }
71
+ const invoiceAtt = {
72
+ filename: resolved.filename,
73
+ content: resolved.bytes,
74
+ contentType: resolved.contentType
75
+ };
76
+ return {
77
+ attachments: [
78
+ ...payload.attachments ?? [],
79
+ invoiceAtt
80
+ ],
81
+ invoiceAttached: true
82
+ };
83
+ } catch (err) {
84
+ console.error("[email] order invoice attach error", {
85
+ orderId: payload.orderId,
86
+ err
87
+ });
88
+ return {
89
+ attachments: payload.attachments,
90
+ invoiceAttached: false
91
+ };
92
+ }
93
+ }
94
+ chunkUSNT2KNT_cjs.__name(resolveInvoiceAttachmentForJob, "resolveInvoiceAttachmentForJob");
95
+ async function sendRendered(email, to, subject, html, text, attachments) {
96
+ await email.send({
97
+ to,
98
+ subject,
99
+ html,
100
+ text,
101
+ attachments
102
+ });
103
+ }
104
+ chunkUSNT2KNT_cjs.__name(sendRendered, "sendRendered");
105
+ function registerEmailQueueProcessor(cms, options = {}) {
106
+ registeredInvoiceOptions = options;
107
+ const queue = cms.getPlugin("queue");
108
+ const email = cms.getPlugin("email");
109
+ if (!queue || !email) return;
110
+ queue.registerProcessor(EMAIL_QUEUE_NAME, async (data) => {
111
+ const payload = data;
112
+ const { to, templateName, ctx, subject, html, text } = payload;
113
+ if (!to) return;
114
+ const attachmentsResult = await resolveInvoiceAttachmentForJob(cms, payload, registeredInvoiceOptions);
115
+ if (templateName && ctx) {
116
+ const rendered = email.renderTemplate(templateName, {
117
+ ...ctx,
118
+ invoiceAttached: attachmentsResult.invoiceAttached
119
+ });
120
+ await sendRendered(email, to, rendered.subject, rendered.html, rendered.text, attachmentsResult.attachments);
121
+ } else if (subject != null && html != null) {
122
+ await sendRendered(email, to, subject, html, text, attachmentsResult.attachments);
123
+ }
124
+ });
125
+ }
126
+ chunkUSNT2KNT_cjs.__name(registerEmailQueueProcessor, "registerEmailQueueProcessor");
127
+ async function queueEmail(cms, payload) {
128
+ const queue = cms.getPlugin("queue");
129
+ if (queue) {
130
+ await queue.add(EMAIL_QUEUE_NAME, payload);
131
+ return;
132
+ }
133
+ const email = cms.getPlugin("email");
134
+ if (!email) return;
135
+ const attachmentsResult = await resolveInvoiceAttachmentForJob(cms, payload, registeredInvoiceOptions);
136
+ if (payload.templateName && payload.ctx) {
137
+ const rendered = email.renderTemplate(payload.templateName, {
138
+ ...payload.ctx,
139
+ invoiceAttached: attachmentsResult.invoiceAttached
140
+ });
141
+ await sendRendered(email, payload.to, rendered.subject, rendered.html, rendered.text, attachmentsResult.attachments);
142
+ } else if (payload.subject != null && payload.html != null) {
143
+ await sendRendered(email, payload.to, payload.subject, payload.html, payload.text, attachmentsResult.attachments ?? payload.attachments);
144
+ }
145
+ }
146
+ chunkUSNT2KNT_cjs.__name(queueEmail, "queueEmail");
147
+ async function queueOrderPlacedEmails(cms, payload) {
148
+ const { orderNumber, total, subtotal, tax, currency, customerName, customerEmail, salesTeamEmails, companyDetails, lineItems, billingAddress, shippingAddress, orderId, attachInvoiceToCustomer = true } = payload;
149
+ const base = {
150
+ orderNumber,
151
+ total: total != null ? String(total) : void 0,
152
+ subtotal: subtotal != null ? String(subtotal) : void 0,
153
+ tax: tax != null ? String(tax) : void 0,
154
+ currency,
155
+ customerName,
156
+ companyDetails: companyDetails ?? {},
157
+ lineItems: lineItems ?? [],
158
+ billingAddress,
159
+ shippingAddress
160
+ };
161
+ const customerLower = customerEmail?.trim().toLowerCase() ?? "";
162
+ const jobs = [];
163
+ const shouldAttach = attachInvoiceToCustomer && orderId != null && Number.isFinite(orderId) && orderId > 0;
164
+ if (customerEmail?.trim()) {
165
+ jobs.push(queueEmail(cms, {
166
+ to: customerEmail.trim(),
167
+ templateName: "orderPlaced",
168
+ ctx: {
169
+ ...base,
170
+ audience: "customer"
171
+ },
172
+ ...shouldAttach ? {
173
+ orderId,
174
+ attachInvoice: true
175
+ } : {}
176
+ }));
177
+ }
178
+ const seen = /* @__PURE__ */ new Set();
179
+ for (const raw of salesTeamEmails) {
180
+ const to = raw.trim();
181
+ if (!to) continue;
182
+ const key = to.toLowerCase();
183
+ if (seen.has(key)) continue;
184
+ seen.add(key);
185
+ if (customerLower && key === customerLower) continue;
186
+ jobs.push(queueEmail(cms, {
187
+ to,
188
+ templateName: "orderPlaced",
189
+ ctx: {
190
+ ...base,
191
+ audience: "sales",
192
+ internalCustomerEmail: customerEmail?.trim() || void 0
193
+ }
194
+ }));
195
+ }
196
+ await Promise.all(jobs);
197
+ }
198
+ chunkUSNT2KNT_cjs.__name(queueOrderPlacedEmails, "queueOrderPlacedEmails");
199
+ async function queueVendorOnboardEmails(cms, payload) {
200
+ const { vendorName, vendorSlug, ownerName, ownerEmail, activation, inviteLink, signInLink, kind = "vendor_onboard", notifyEmails, companyDetails, sendToOwner = true } = payload;
201
+ const base = {
202
+ vendorName,
203
+ vendorSlug,
204
+ ownerName,
205
+ ownerEmail,
206
+ activation,
207
+ inviteLink,
208
+ signInLink,
209
+ kind,
210
+ companyDetails: companyDetails ?? {}
211
+ };
212
+ const ownerLower = ownerEmail?.trim().toLowerCase() ?? "";
213
+ const jobs = [];
214
+ if (sendToOwner && ownerEmail?.trim()) {
215
+ jobs.push(queueEmail(cms, {
216
+ to: ownerEmail.trim(),
217
+ templateName: "vendorOnboarded",
218
+ ctx: {
219
+ ...base,
220
+ audience: "owner"
221
+ }
222
+ }));
223
+ }
224
+ const seen = /* @__PURE__ */ new Set();
225
+ for (const raw of notifyEmails) {
226
+ const to = raw.trim();
227
+ if (!to) continue;
228
+ const key = to.toLowerCase();
229
+ if (seen.has(key)) continue;
230
+ seen.add(key);
231
+ if (ownerLower && key === ownerLower) continue;
232
+ jobs.push(queueEmail(cms, {
233
+ to,
234
+ templateName: "vendorOnboarded",
235
+ ctx: {
236
+ ...base,
237
+ audience: "internal"
238
+ }
239
+ }));
240
+ }
241
+ await Promise.all(jobs);
242
+ }
243
+ chunkUSNT2KNT_cjs.__name(queueVendorOnboardEmails, "queueVendorOnboardEmails");
244
+
245
+ exports.queueEmail = queueEmail;
246
+ exports.queueOrderPlacedEmails = queueOrderPlacedEmails;
247
+ exports.queueVendorOnboardEmails = queueVendorOnboardEmails;
248
+ exports.registerEmailQueueProcessor = registerEmailQueueProcessor;
@@ -0,0 +1,109 @@
1
+ 'use strict';
2
+
3
+ var chunkTCSGFAWB_cjs = require('./chunk-TCSGFAWB.cjs');
4
+ var chunkV25RDUOU_cjs = require('./chunk-V25RDUOU.cjs');
5
+ var chunkBXYZDMTZ_cjs = require('./chunk-BXYZDMTZ.cjs');
6
+ var chunkUSNT2KNT_cjs = require('./chunk-USNT2KNT.cjs');
7
+
8
+ // src/lib/send-order-placed-emails.ts
9
+ async function getSettingsGroup(deps, group) {
10
+ const ds = await deps.getDataSource();
11
+ const rows = await ds.getRepository(deps.entityMap.configs).find({
12
+ where: {
13
+ settings: group,
14
+ deleted: false
15
+ }
16
+ });
17
+ return Object.fromEntries(rows.map((r) => [
18
+ r.key,
19
+ r.value
20
+ ]));
21
+ }
22
+ chunkUSNT2KNT_cjs.__name(getSettingsGroup, "getSettingsGroup");
23
+ async function sendOrderPlacedEmailsAfterConfirmation(orderId, deps) {
24
+ try {
25
+ let addrToRecord2 = function(a) {
26
+ if (!a) return void 0;
27
+ const out = {};
28
+ const set = /* @__PURE__ */ chunkUSNT2KNT_cjs.__name((k, v) => {
29
+ const t = v != null ? String(v).trim() : "";
30
+ if (t) out[k] = t;
31
+ }, "set");
32
+ set("line1", a.line1);
33
+ set("line2", a.line2);
34
+ set("city", a.city);
35
+ set("state", a.state);
36
+ set("postalCode", a.postalCode);
37
+ set("country", a.country);
38
+ return Object.keys(out).length ? out : void 0;
39
+ };
40
+ var addrToRecord = addrToRecord2;
41
+ chunkUSNT2KNT_cjs.__name(addrToRecord2, "addrToRecord");
42
+ const ds = await deps.getDataSource();
43
+ const order = await ds.getRepository(deps.entityMap.orders).findOne({
44
+ where: {
45
+ id: orderId
46
+ },
47
+ relations: [
48
+ "contact",
49
+ "billingAddress",
50
+ "shippingAddress"
51
+ ]
52
+ });
53
+ if (!order) return;
54
+ const o = order;
55
+ const contact = o.contact;
56
+ const customerEmail = contact?.email?.trim() || null;
57
+ const customerName = contact?.name?.trim() || void 0;
58
+ const itemRows = await ds.getRepository(deps.entityMap.order_items).find({
59
+ where: {
60
+ orderId
61
+ },
62
+ relations: [
63
+ "product"
64
+ ],
65
+ order: {
66
+ id: "ASC"
67
+ }
68
+ });
69
+ const lineItems = itemRows.map((row) => {
70
+ const r = row;
71
+ const name = r.product?.name && String(r.product.name).trim() || `Product #${r.productId}`;
72
+ return {
73
+ productName: name,
74
+ quantity: Math.max(0, Math.floor(Number(r.quantity) || 0)),
75
+ unitPrice: r.unitPrice,
76
+ lineTotal: r.total,
77
+ sku: r.product?.sku && String(r.product.sku).trim() ? r.product.sku : void 0,
78
+ tax: r.tax != null && Number(r.tax) !== 0 ? r.tax : void 0,
79
+ hsn: r.hsn && String(r.hsn).trim() ? r.hsn : void 0
80
+ };
81
+ });
82
+ const [branding, emailSettings] = await Promise.all([
83
+ getSettingsGroup(deps, "branding"),
84
+ getSettingsGroup(deps, "email")
85
+ ]);
86
+ const companyDetails = chunkBXYZDMTZ_cjs.mergeEmailLayoutCompanyDetails(branding, emailSettings);
87
+ const salesTeamEmails = chunkTCSGFAWB_cjs.parseEmailRecipientsFromConfig(emailSettings.salesTeamEmails ?? emailSettings.salesTeamEmail);
88
+ const cms = await deps.getCms();
89
+ await chunkV25RDUOU_cjs.queueOrderPlacedEmails(cms, {
90
+ orderId,
91
+ orderNumber: o.orderNumber,
92
+ total: o.total,
93
+ subtotal: o.subtotal,
94
+ tax: o.tax,
95
+ currency: o.currency,
96
+ customerName,
97
+ customerEmail,
98
+ salesTeamEmails,
99
+ companyDetails,
100
+ lineItems,
101
+ billingAddress: addrToRecord2(o.billingAddress),
102
+ shippingAddress: addrToRecord2(o.shippingAddress)
103
+ });
104
+ } catch {
105
+ }
106
+ }
107
+ chunkUSNT2KNT_cjs.__name(sendOrderPlacedEmailsAfterConfirmation, "sendOrderPlacedEmailsAfterConfirmation");
108
+
109
+ exports.sendOrderPlacedEmailsAfterConfirmation = sendOrderPlacedEmailsAfterConfirmation;
package/dist/cli.cjs CHANGED
@@ -220,7 +220,7 @@ async function getOptions() {
220
220
  const user = await userRepo.findOne({
221
221
  where: { email },
222
222
  relations: ['group', 'group.permissions'],
223
- select: ['id', 'email', 'name', 'password', 'blocked', 'deleted', 'groupId', 'adminAccess'],
223
+ select: ['id', 'email', 'name', 'password', 'blocked', 'inviteStatus', 'deleted', 'groupId', 'adminAccess'],
224
224
  });
225
225
  return enrichUserWithVendorContext(dataSource, user as any);
226
226
  },
@@ -259,7 +259,7 @@ async function getOptions() {
259
259
  const user = await userRepo.findOne({
260
260
  where: { email },
261
261
  relations: ['group', 'group.permissions'],
262
- select: ['id', 'email', 'name', 'password', 'blocked', 'deleted', 'groupId', 'adminAccess'],
262
+ select: ['id', 'email', 'name', 'password', 'blocked', 'inviteStatus', 'deleted', 'groupId', 'adminAccess'],
263
263
  });
264
264
  return enrichUserWithVendorContext(dataSource, user as any);
265
265
  },
@@ -340,8 +340,13 @@ export async function middleware(request: NextRequest) {
340
340
  return NextResponse.next();
341
341
  }
342
342
 
343
+ /**
344
+ * Next.js matchers do not support lookaheads, so /api/:path* cannot reliably
345
+ * exclude /api/upload. Matching only /admin avoids buffering large multipart
346
+ * bodies (videos) which breaks req.formData(). API auth still runs in handlers.
347
+ */
343
348
  export const config = {
344
- matcher: ['/admin/:path*', '/api/:path*'],
349
+ matcher: ['/admin/:path*'],
345
350
  };
346
351
  `,
347
352
  "src/app/providers.tsx": `"use client";
@@ -353,7 +358,7 @@ import { Toaster } from "sonner";
353
358
  export function Providers({ children }: { children: React.ReactNode }) {
354
359
  return (
355
360
  <SessionProvider>
356
- <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
361
+ <ThemeProvider attribute="class" defaultTheme="light" forcedTheme="light" enableSystem={false} enableColorScheme>
357
362
  {children}
358
363
  <Toaster position="top-right" />
359
364
  </ThemeProvider>
package/dist/cli.js CHANGED
@@ -213,7 +213,7 @@ async function getOptions() {
213
213
  const user = await userRepo.findOne({
214
214
  where: { email },
215
215
  relations: ['group', 'group.permissions'],
216
- select: ['id', 'email', 'name', 'password', 'blocked', 'deleted', 'groupId', 'adminAccess'],
216
+ select: ['id', 'email', 'name', 'password', 'blocked', 'inviteStatus', 'deleted', 'groupId', 'adminAccess'],
217
217
  });
218
218
  return enrichUserWithVendorContext(dataSource, user as any);
219
219
  },
@@ -252,7 +252,7 @@ async function getOptions() {
252
252
  const user = await userRepo.findOne({
253
253
  where: { email },
254
254
  relations: ['group', 'group.permissions'],
255
- select: ['id', 'email', 'name', 'password', 'blocked', 'deleted', 'groupId', 'adminAccess'],
255
+ select: ['id', 'email', 'name', 'password', 'blocked', 'inviteStatus', 'deleted', 'groupId', 'adminAccess'],
256
256
  });
257
257
  return enrichUserWithVendorContext(dataSource, user as any);
258
258
  },
@@ -333,8 +333,13 @@ export async function middleware(request: NextRequest) {
333
333
  return NextResponse.next();
334
334
  }
335
335
 
336
+ /**
337
+ * Next.js matchers do not support lookaheads, so /api/:path* cannot reliably
338
+ * exclude /api/upload. Matching only /admin avoids buffering large multipart
339
+ * bodies (videos) which breaks req.formData(). API auth still runs in handlers.
340
+ */
336
341
  export const config = {
337
- matcher: ['/admin/:path*', '/api/:path*'],
342
+ matcher: ['/admin/:path*'],
338
343
  };
339
344
  `,
340
345
  "src/app/providers.tsx": `"use client";
@@ -346,7 +351,7 @@ import { Toaster } from "sonner";
346
351
  export function Providers({ children }: { children: React.ReactNode }) {
347
352
  return (
348
353
  <SessionProvider>
349
- <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
354
+ <ThemeProvider attribute="class" defaultTheme="light" forcedTheme="light" enableSystem={false} enableColorScheme>
350
355
  {children}
351
356
  <Toaster position="top-right" />
352
357
  </ThemeProvider>
@@ -1,23 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var chunkXW5ATPRW_cjs = require('./chunk-XW5ATPRW.cjs');
3
+ var chunkV25RDUOU_cjs = require('./chunk-V25RDUOU.cjs');
4
+ require('./chunk-BXYZDMTZ.cjs');
5
+ require('./chunk-UPLVMVRX.cjs');
4
6
  require('./chunk-USNT2KNT.cjs');
5
7
 
6
8
 
7
9
 
8
10
  Object.defineProperty(exports, "queueEmail", {
9
11
  enumerable: true,
10
- get: function () { return chunkXW5ATPRW_cjs.queueEmail; }
12
+ get: function () { return chunkV25RDUOU_cjs.queueEmail; }
11
13
  });
12
14
  Object.defineProperty(exports, "queueOrderPlacedEmails", {
13
15
  enumerable: true,
14
- get: function () { return chunkXW5ATPRW_cjs.queueOrderPlacedEmails; }
16
+ get: function () { return chunkV25RDUOU_cjs.queueOrderPlacedEmails; }
15
17
  });
16
18
  Object.defineProperty(exports, "queueVendorOnboardEmails", {
17
19
  enumerable: true,
18
- get: function () { return chunkXW5ATPRW_cjs.queueVendorOnboardEmails; }
20
+ get: function () { return chunkV25RDUOU_cjs.queueVendorOnboardEmails; }
19
21
  });
20
22
  Object.defineProperty(exports, "registerEmailQueueProcessor", {
21
23
  enumerable: true,
22
- get: function () { return chunkXW5ATPRW_cjs.registerEmailQueueProcessor; }
24
+ get: function () { return chunkV25RDUOU_cjs.registerEmailQueueProcessor; }
23
25
  });
@@ -0,0 +1,4 @@
1
+ export { queueEmail, queueOrderPlacedEmails, queueVendorOnboardEmails, registerEmailQueueProcessor } from './chunk-L3525VXI.js';
2
+ import './chunk-2KUCQVAQ.js';
3
+ import './chunk-JC6DLWTE.js';
4
+ import './chunk-SHUYVCID.js';
@@ -0,0 +1,3 @@
1
+ export { ORDER_INVOICE_EMAIL_ELIGIBLE_STATUSES, isOrderEligibleForInvoiceEmail, resolveOrderInvoicePdfBytes, streamOrderInvoicePdf } from './chunk-2KUCQVAQ.js';
2
+ import './chunk-JC6DLWTE.js';
3
+ import './chunk-SHUYVCID.js';
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var chunkBXYZDMTZ_cjs = require('./chunk-BXYZDMTZ.cjs');
4
+ require('./chunk-UPLVMVRX.cjs');
5
+ require('./chunk-USNT2KNT.cjs');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "ORDER_INVOICE_EMAIL_ELIGIBLE_STATUSES", {
10
+ enumerable: true,
11
+ get: function () { return chunkBXYZDMTZ_cjs.ORDER_INVOICE_EMAIL_ELIGIBLE_STATUSES; }
12
+ });
13
+ Object.defineProperty(exports, "isOrderEligibleForInvoiceEmail", {
14
+ enumerable: true,
15
+ get: function () { return chunkBXYZDMTZ_cjs.isOrderEligibleForInvoiceEmail; }
16
+ });
17
+ Object.defineProperty(exports, "resolveOrderInvoicePdfBytes", {
18
+ enumerable: true,
19
+ get: function () { return chunkBXYZDMTZ_cjs.resolveOrderInvoicePdfBytes; }
20
+ });
21
+ Object.defineProperty(exports, "streamOrderInvoicePdf", {
22
+ enumerable: true,
23
+ get: function () { return chunkBXYZDMTZ_cjs.streamOrderInvoicePdf; }
24
+ });