create-bw-app 0.9.7 → 0.10.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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-bw-app",
3
3
  "private": false,
4
- "version": "0.9.7",
4
+ "version": "0.10.0",
5
5
  "type": "module",
6
6
  "bin": "bin/create-bw-app.mjs",
7
7
  "files": [
package/src/constants.mjs CHANGED
@@ -67,11 +67,11 @@ export const MODULE_STARTER_FILES = {
67
67
 
68
68
  export const APP_DEPENDENCY_DEFAULTS = {
69
69
  "@brightweblabs/app-shell": "^0.3.0",
70
- "@brightweblabs/core-auth": "^0.3.0",
71
- "@brightweblabs/infra": "^0.2.0",
70
+ "@brightweblabs/core-auth": "^0.3.1",
71
+ "@brightweblabs/infra": "^0.2.1",
72
72
  "@brightweblabs/module-admin": "^0.3.0",
73
73
  "@brightweblabs/module-crm": "^0.3.0",
74
- "@brightweblabs/module-projects": "^0.2.0",
74
+ "@brightweblabs/module-projects": "^0.2.2",
75
75
  "@brightweblabs/ui": "^0.3.0",
76
76
  "lucide-react": "^0.562.0",
77
77
  "next": "16.1.6",
package/src/generator.mjs CHANGED
@@ -368,6 +368,12 @@ function createEnvFileContent() {
368
368
  "NEXT_PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY=",
369
369
  "SUPABASE_SECRET_DEFAULT_KEY=",
370
370
  "RESEND_API_KEY=",
371
+ "RESEND_FROM_TRANSACTIONAL=",
372
+ "RESEND_FROM_MARKETING=",
373
+ "CONTACT_TO_EMAIL=",
374
+ "RESEND_WEBHOOK_SECRET=",
375
+ "MARKETING_WORKER_SECRET=",
376
+ "MARKETING_TEST_EMAIL=",
371
377
  "",
372
378
  ].join("\n");
373
379
  }
@@ -63,8 +63,14 @@ export function getStarterBootstrapChecklist() {
63
63
  },
64
64
  {
65
65
  label: "Configure Resend for the client sender domain",
66
- done: Boolean(config.envStatus.find((item) => item.key === "RESEND_API_KEY")?.present),
67
- detail: "Use a sender/domain owned by this client instance.",
66
+ done: [
67
+ "RESEND_API_KEY",
68
+ "RESEND_FROM_TRANSACTIONAL",
69
+ "RESEND_FROM_MARKETING",
70
+ "CONTACT_TO_EMAIL",
71
+ "RESEND_WEBHOOK_SECRET",
72
+ ].every((key) => Boolean(config.envStatus.find((item) => item.key === key)?.present)),
73
+ detail: "Use client-owned sender identities and configure webhook signature verification.",
68
74
  },
69
75
  {
70
76
  label: "Create per-client environment variables",
@@ -39,8 +39,44 @@ export const starterEnvRequirements: StarterEnvRequirement[] = [
39
39
  {
40
40
  key: "RESEND_API_KEY",
41
41
  scope: "server",
42
- description: "Email delivery key for auth and marketing-related server flows.",
43
- requiredFor: ["core-auth"],
42
+ description: "Email delivery key for app-owned transactional and marketing server flows.",
43
+ requiredFor: ["admin"],
44
+ },
45
+ {
46
+ key: "RESEND_FROM_TRANSACTIONAL",
47
+ scope: "server",
48
+ description: "Default transactional sender used by app-owned invite/contact email flows.",
49
+ requiredFor: ["admin"],
50
+ },
51
+ {
52
+ key: "RESEND_FROM_MARKETING",
53
+ scope: "server",
54
+ description: "Default marketing sender used by campaign and workflow email flows.",
55
+ requiredFor: ["admin"],
56
+ },
57
+ {
58
+ key: "CONTACT_TO_EMAIL",
59
+ scope: "server",
60
+ description: "Destination inbox for app-owned contact notifications.",
61
+ requiredFor: ["admin"],
62
+ },
63
+ {
64
+ key: "RESEND_WEBHOOK_SECRET",
65
+ scope: "server",
66
+ description: "Webhook signing secret used to verify inbound Resend event payloads.",
67
+ requiredFor: ["admin"],
68
+ },
69
+ {
70
+ key: "MARKETING_WORKER_SECRET",
71
+ scope: "server",
72
+ description: "Shared secret required to trigger internal marketing worker endpoints.",
73
+ requiredFor: ["admin"],
74
+ },
75
+ {
76
+ key: "MARKETING_TEST_EMAIL",
77
+ scope: "server",
78
+ description: "Inbox used by admin marketing test send actions.",
79
+ requiredFor: ["admin"],
44
80
  },
45
81
  ];
46
82
 
@@ -0,0 +1,13 @@
1
+ import "server-only";
2
+
3
+ export {
4
+ getContactDestination,
5
+ getMarketingSender,
6
+ getResendApiKey,
7
+ getResendWebhookSecret,
8
+ getTransactionalSender,
9
+ resendApiRequest,
10
+ verifyResendWebhookSignature,
11
+ ResendApiError,
12
+ ResendConfigError,
13
+ } from "@brightweblabs/infra/server";