@contentgrowth/content-emailing 0.7.7 → 0.7.9

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.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { EmailService } from './backend/EmailService.cjs';
2
- export { a as TemplateEditor, T as TemplateManager } from './TemplateManager-Db41KyPN.cjs';
2
+ export { a as TemplateEditor, T as TemplateManager } from './TemplateManager-DbAGIGdI.cjs';
3
3
  export { EmailingCacheDO, createDOCacheProvider } from './backend/EmailingCacheDO.cjs';
4
4
  export { EmailLogger, createEmailLoggerCallback } from './backend/index.cjs';
5
5
  export { createEmailRoutes, createTemplateRoutes, createTrackingRoutes } from './backend/routes/index.cjs';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { EmailService } from './backend/EmailService.js';
2
- export { a as TemplateEditor, T as TemplateManager } from './TemplateManager-Db41KyPN.js';
2
+ export { a as TemplateEditor, T as TemplateManager } from './TemplateManager-DbAGIGdI.js';
3
3
  export { EmailingCacheDO, createDOCacheProvider } from './backend/EmailingCacheDO.js';
4
4
  export { EmailLogger, createEmailLoggerCallback } from './backend/index.js';
5
5
  export { createEmailRoutes, createTemplateRoutes, createTrackingRoutes } from './backend/routes/index.js';
package/dist/index.js CHANGED
@@ -1418,12 +1418,42 @@ function createSettingsRoutes(config = {}) {
1418
1418
  return c.json({ error: error.message }, 500);
1419
1419
  }
1420
1420
  });
1421
+ app.post("/test", async (c) => {
1422
+ try {
1423
+ const settings = await c.req.json();
1424
+ const user = c.get("dbUser") || c.get("user");
1425
+ if (!user || !user.email) {
1426
+ return c.json({ error: "User email not found for testing" }, 400);
1427
+ }
1428
+ const emailService = new EmailService(c.env, {
1429
+ ...config,
1430
+ settingsLoader: async () => settings
1431
+ });
1432
+ const result = await emailService.sendEmail({
1433
+ to: user.email,
1434
+ subject: "Test Email Configuration",
1435
+ html: "<h1>It Works!</h1><p>Your email settings are configured correctly.</p>",
1436
+ text: "It Works! Your email settings are configured correctly.",
1437
+ profile: "system",
1438
+ // Use system defaults logic in service, but our loader overrides it
1439
+ userId: user.id
1440
+ });
1441
+ if (result.success) {
1442
+ return c.json({ success: true, message: `Test email sent to ${user.email}` });
1443
+ } else {
1444
+ return c.json({ success: false, error: result.error || "Failed to send test email" }, 400);
1445
+ }
1446
+ } catch (error) {
1447
+ console.error("Test settings failed:", error);
1448
+ return c.json({ error: error.message }, 500);
1449
+ }
1450
+ });
1421
1451
  return app;
1422
1452
  }
1423
1453
 
1424
1454
  // src/backend/routes/templates.js
1425
1455
  import { Hono as Hono2 } from "hono";
1426
- function createTemplateRoutes2(config = {}) {
1456
+ function createTemplateRoutes(config = {}) {
1427
1457
  const app = new Hono2();
1428
1458
  app.get("/", async (c) => {
1429
1459
  const emailService = new EmailService(c.env, config);
@@ -1680,6 +1710,36 @@ function createTrackingRoutes(env, config = {}) {
1680
1710
 
1681
1711
  // src/backend/routes/logs.js
1682
1712
  import { Hono as Hono4 } from "hono";
1713
+ function createLogRoutes(config = {}) {
1714
+ const app = new Hono4();
1715
+ app.get("/", async (c) => {
1716
+ const limit = Math.min(parseInt(c.req.query("limit") || "50"), 100);
1717
+ const offset = parseInt(c.req.query("offset") || "0");
1718
+ const env = c.env;
1719
+ try {
1720
+ const table = `${config.emailTablePrefix || "system_email_"}logs`;
1721
+ const { results } = await env.DB.prepare(`
1722
+ SELECT * FROM ${table}
1723
+ ORDER BY created_at DESC
1724
+ LIMIT ? OFFSET ?
1725
+ `).bind(limit, offset).all();
1726
+ const countResult = await env.DB.prepare(`SELECT COUNT(*) as exact_count FROM ${table}`).first();
1727
+ return c.json({
1728
+ logs: results.map((row) => ({
1729
+ ...row,
1730
+ metadata: row.metadata ? JSON.parse(row.metadata) : null
1731
+ })),
1732
+ total: countResult.exact_count,
1733
+ limit,
1734
+ offset
1735
+ });
1736
+ } catch (error) {
1737
+ console.error("Failed to fetch logs:", error);
1738
+ return c.json({ error: "Failed to fetch logs" }, 500);
1739
+ }
1740
+ });
1741
+ return app;
1742
+ }
1683
1743
 
1684
1744
  // src/backend/routes/index.js
1685
1745
  function createEmailRoutes(config = {}, cacheProvider = null) {
@@ -1934,7 +1994,7 @@ var TemplateTester = ({
1934
1994
  try {
1935
1995
  await onSendTest({
1936
1996
  template_id: template.template_id,
1937
- to_email: toEmail,
1997
+ to: toEmail,
1938
1998
  variables
1939
1999
  });
1940
2000
  setSuccess("Test email sent successfully!");
@@ -2236,7 +2296,7 @@ export {
2236
2296
  createDOCacheProvider,
2237
2297
  createEmailLoggerCallback,
2238
2298
  createEmailRoutes,
2239
- createTemplateRoutes2 as createTemplateRoutes,
2299
+ createTemplateRoutes,
2240
2300
  createTrackingRoutes,
2241
2301
  encodeTrackingLinks,
2242
2302
  extractVariables,