@teleporthq/teleport-plugin-next-workflows 0.45.0 → 0.45.1

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@teleporthq/teleport-plugin-next-workflows",
3
- "version": "0.45.0",
3
+ "version": "0.45.1",
4
4
  "description": "A plugin for workflow code generation in Next.js projects.",
5
5
  "author": "teleportHQ",
6
6
  "license": "MIT",
@@ -69,5 +69,5 @@
69
69
  "@teleporthq/teleport-shared": "^0.45.0",
70
70
  "@teleporthq/teleport-types": "^0.45.0"
71
71
  },
72
- "gitHead": "72396d1815ef1f0c184f27126dbfd0fd9c6dc0f8"
72
+ "gitHead": "f11bd5551fc54bb06a7d6068924c1e9dedb79860"
73
73
  }
@@ -2297,6 +2297,8 @@ const generateKnownAddressEmailCode = (options: {
2297
2297
  sender: { provider: string | null; from: string; secretEnv: string }
2298
2298
  pagePath: string
2299
2299
  tokenInFragment: boolean
2300
+ /** The route already declares `__emailSender` (the welcome send brings it). */
2301
+ senderHelperDeclared: boolean
2300
2302
  }): string => {
2301
2303
  const { sender } = options
2302
2304
  const senderConstants = `
@@ -2320,10 +2322,11 @@ async function sendSetPasswordEmail() {
2320
2322
  const ttlMinutes = Math.round(PASSWORD_RESET_TOKEN_TTL_SECONDS / 60)
2321
2323
  // Where the link carries the token, as the forgot-password link does.
2322
2324
  const tokenLinkPrefix = options.tokenInFragment ? '#token=' : '?token='
2323
- const noticeSend = generateProviderSendFunction(sender.provider).replace(
2324
- 'async function __sendProviderEmail(',
2325
- 'async function __sendNoticeEmail('
2326
- )
2325
+ const noticeSend = generateProviderSendFunction(
2326
+ sender.provider,
2327
+ undefined,
2328
+ !options.senderHelperDeclared
2329
+ ).replace('async function __sendProviderEmail(', 'async function __sendNoticeEmail(')
2327
2330
  return `${senderConstants}
2328
2331
 
2329
2332
  ${noticeSend}
@@ -2537,6 +2540,7 @@ ${generateKnownAddressEmailCode({
2537
2540
  sender: noticeSender,
2538
2541
  pagePath: setPasswordPagePath,
2539
2542
  tokenInFragment: signup.tokenInFragment === true,
2543
+ senderHelperDeclared: !!welcomeProvider,
2540
2544
  })}
2541
2545
 
2542
2546
  function waitUntilElapsed(startedAt, ms) {
@@ -67,16 +67,20 @@ export const EXISTING_ACCOUNT_EMAIL = 'existing-account'
67
67
  // is configured the function is a no-op so the route stays self-contained and
68
68
  // never throws. With `ledger`, the provider function is emitted as
69
69
  // `__sendProviderEmailRaw` and `__sendProviderEmail` records every attempt
70
- // (success or throw) before returning / rethrowing.
70
+ // (success or throw) before returning / rethrowing. `withSenderHelper: false`
71
+ // leaves the helper out, for a second send in a file that already declares it:
72
+ // Next compiles a route as a module, where a function declared twice fails the
73
+ // build ("the name `__emailSender` is defined multiple times").
71
74
  export const generateProviderSendFunction = (
72
75
  provider?: string | null,
73
- ledger?: TransactionalEmailLedger
76
+ ledger?: TransactionalEmailLedger,
77
+ withSenderHelper = true
74
78
  ): string => {
75
79
  const raw = generateRawProviderSendFunction(provider)
76
80
  if (!provider || !SUPPORTED_EMAIL_PROVIDERS.has(provider)) {
77
81
  return raw
78
82
  }
79
- const senderHelper = EmailSender.generateEmailSenderHelperCode()
83
+ const senderHelper = withSenderHelper ? EmailSender.generateEmailSenderHelperCode() : ''
80
84
  if (!ledger) {
81
85
  return `${senderHelper}
82
86
  ${raw}`