@nxgt/janus-mail 0.8.0 → 0.9.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/README.md +65 -13
- package/dist/generated/mail.d.ts +8 -0
- package/dist/generated/mail.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +62 -23
- package/dist/index.js.map +7 -6
- package/dist/janus-mail.d.ts.map +1 -1
- package/dist/link-types.d.ts +51 -0
- package/dist/link-types.d.ts.map +1 -0
- package/dist/new-sign-in-mail.d.ts +16 -0
- package/dist/new-sign-in-mail.d.ts.map +1 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/template-types.d.ts +15 -2
- package/dist/template-types.d.ts.map +1 -1
- package/dist/templates.d.ts +1 -1
- package/dist/templates.d.ts.map +1 -1
- package/dist/types.d.ts +20 -46
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +3 -3
- package/docs/guide/building.md +1 -1
- package/docs/guide/locales.md +7 -4
- package/docs/guide/sending.md +48 -1
- package/docs/guide/templates.md +20 -11
- package/docs/roadmap.md +12 -23
- package/docs/troubleshooting.md +44 -9
- package/mails/en/new-sign-in.html +60 -0
- package/mails/en/new-sign-in.txt +30 -0
- package/mails/fr/new-sign-in.html +58 -0
- package/mails/fr/new-sign-in.txt +30 -0
- package/mails/mail-manifest.json +27 -0
- package/package.json +4 -4
package/docs/troubleshooting.md
CHANGED
|
@@ -34,7 +34,7 @@ How the messages are shaped:
|
|
|
34
34
|
- [`janusMail: locales holds the same locale twice`](#janusmail-locales-holds-the-same-locale-twice)
|
|
35
35
|
- [`janusMail: fallbackLocale must be one of locales`](#janusmail-fallbacklocale-must-be-one-of-locales)
|
|
36
36
|
- [`janusMail: templates must be an object of functions, as { verifyEmail: (variables) => rendered }`](#janusmail-templates-must-be-an-object-of-functions-as--verifyemail-variables--rendered-)
|
|
37
|
-
- [`janusMail: templates has no template <name> — name one of verifyEmail, resetPassword, signInCode, magicLink, stepUp, passwordChanged, emailChanged, twoFactorEnabled, twoFactorDisabled, recoveryCodeUsed, welcome`](#janusmail-templates-has-no-template-name--name-one-of-verifyemail-resetpassword-signincode-magiclink-stepup-passwordchanged-emailchanged-twofactorenabled-twofactordisabled-recoverycodeused-welcome)
|
|
37
|
+
- [`janusMail: templates has no template <name> — name one of verifyEmail, resetPassword, signInCode, magicLink, stepUp, passwordChanged, emailChanged, twoFactorEnabled, twoFactorDisabled, recoveryCodeUsed, newSignIn, welcome`](#janusmail-templates-has-no-template-name--name-one-of-verifyemail-resetpassword-signincode-magiclink-stepup-passwordchanged-emailchanged-twofactorenabled-twofactordisabled-recoverycodeused-newsignin-welcome)
|
|
38
38
|
- [`janusMail: templates.<name> must be a function`](#janusmail-templatesname-must-be-a-function)
|
|
39
39
|
- [`janusMail: templates.<name> is not an own enumerable property — pass a plain object, as { <name>: (variables) => rendered }`](#janusmail-templatesname-is-not-an-own-enumerable-property--pass-a-plain-object-as--name-variables--rendered-)
|
|
40
40
|
- [`janusMail: clock must be a Clock — an object with a now function`](#janusmail-clock-must-be-a-clock--an-object-with-a-now-function)
|
|
@@ -70,11 +70,13 @@ How the messages are shaped:
|
|
|
70
70
|
- [`TS2741: Property 'recoveryCodeUsed' is missing in type '{ … }' but required in type 'JanusMailTemplates<…>'.`](#ts2741-property-recoverycodeused-is-missing-in-type----but-required-in-type-janusmailtemplates)
|
|
71
71
|
- [`TS2741: Property 'magicLink' is missing in type '{ … }' but required in type 'JanusMailTemplates<…>'.`](#ts2741-property-magiclink-is-missing-in-type----but-required-in-type-janusmailtemplates)
|
|
72
72
|
- [`TS2741: Property 'stepUp' is missing in type '{ … }' but required in type 'JanusMailTemplates<…>'.`](#ts2741-property-stepup-is-missing-in-type----but-required-in-type-janusmailtemplates)
|
|
73
|
+
- [`TS2741: Property 'newSignIn' is missing in type '{ … }' but required in type 'JanusMailTemplates<…>'.`](#ts2741-property-newsignin-is-missing-in-type----but-required-in-type-janusmailtemplates)
|
|
73
74
|
- [`TS2345: Argument of type 'StepUpByEmail<…> | StepUpByApp<…>' is not assignable to parameter of type 'Pick<StepUpByEmail<unknown>, …>'.`](#ts2345-argument-of-type-stepupbyemail--stepupbyapp-is-not-assignable-to-parameter-of-type-pickstepupbyemailunknown-)
|
|
74
75
|
- [`TS2322: Type '"de"' is not assignable to type '"en" | "fr"'.`](#ts2322-type-de-is-not-assignable-to-type-en--fr)
|
|
75
76
|
- [`TS2741: Property 'getStarted' is missing in type '{ … }' but required in type 'JanusMailLinks'.`](#ts2741-property-getstarted-is-missing-in-type----but-required-in-type-janusmaillinks)
|
|
76
77
|
- [`TS2322: Type 'number | null' is not assignable to type 'string | number'.`](#ts2322-type-number--null-is-not-assignable-to-type-string--number)
|
|
77
78
|
- [`TS2322: Type 'Date' is not assignable to type 'string'.`](#ts2322-type-date-is-not-assignable-to-type-string)
|
|
79
|
+
- [`TS2322: Type 'string | null' is not assignable to type 'string'.`, on `location`](#ts2322-type-string--null-is-not-assignable-to-type-string-on-location) — or `… to type 'string | undefined'.`
|
|
78
80
|
|
|
79
81
|
---
|
|
80
82
|
|
|
@@ -199,9 +201,9 @@ A `fallbackLocale` the list does not hold — `'de'` with the default
|
|
|
199
201
|
|
|
200
202
|
`templates` given as a list or a function. Key each template by its name.
|
|
201
203
|
|
|
202
|
-
### `janusMail: templates has no template <name> — name one of verifyEmail, resetPassword, signInCode, magicLink, stepUp, passwordChanged, emailChanged, twoFactorEnabled, twoFactorDisabled, recoveryCodeUsed, welcome`
|
|
204
|
+
### `janusMail: templates has no template <name> — name one of verifyEmail, resetPassword, signInCode, magicLink, stepUp, passwordChanged, emailChanged, twoFactorEnabled, twoFactorDisabled, recoveryCodeUsed, newSignIn, welcome`
|
|
203
205
|
|
|
204
|
-
A key that is not one of the
|
|
206
|
+
A key that is not one of the twelve — `invitation`, or the e-mail's file name
|
|
205
207
|
`'verify-email'` rather than the template's, `verifyEmail`. Other e-mails are
|
|
206
208
|
on the [roadmap](roadmap.md); send them with `@nxgt/mail` directly meanwhile.
|
|
207
209
|
|
|
@@ -235,7 +237,7 @@ as it is: fields are own properties.
|
|
|
235
237
|
### `janusMail: the default templates are built in en and fr only — with another locale in locales, pass every template in templates; <names> missing`
|
|
236
238
|
|
|
237
239
|
`locales` holds a locale beyond `en` and `fr`, and `templates` leaves some
|
|
238
|
-
out: the defaults could not render them in that locale. Pass all
|
|
240
|
+
out: the defaults could not render them in that locale. Pass all twelve — see
|
|
239
241
|
[Adding a locale](guide/locales.md#adding-a-locale) — or drop the locale.
|
|
240
242
|
The message lists the templates missing.
|
|
241
243
|
|
|
@@ -340,6 +342,14 @@ if (event.type === 'user.emailChanged' && event.formerEmail != null) {
|
|
|
340
342
|
}
|
|
341
343
|
```
|
|
342
344
|
|
|
345
|
+
`janusMail.newSignIn: device must be a string` and `janusMail.newSignIn:
|
|
346
|
+
time must be a string` are the second argument missing, or its `time` given
|
|
347
|
+
as the session's `Date`: pass the device as you describe it and the time as
|
|
348
|
+
text. `janusMail.newSignIn: location must be a string` is a location lookup's
|
|
349
|
+
`null`: leave `location` out, and the e-mail shows `—`. `janusMail.newSignIn:
|
|
350
|
+
email must be a string` is the `user.newDeviceSignedIn` event itself given
|
|
351
|
+
as the recipient — read the user first.
|
|
352
|
+
|
|
343
353
|
`janusMail.recoveryCodeUsed: when must be a string` is the second argument
|
|
344
354
|
missing, or its `when` given as the event's `Date`: pass the text to show,
|
|
345
355
|
formatted in the recipient's locale and time zone —
|
|
@@ -522,7 +532,7 @@ avoids the read altogether. (In this repository: run `bun run build`.)
|
|
|
522
532
|
|
|
523
533
|
The default templates read `mails/` with `node:fs`, through
|
|
524
534
|
`@nxgt/mail/renderer`: Node, Bun or Deno only. On an edge runtime, pass all
|
|
525
|
-
|
|
535
|
+
twelve templates yourself; an inlined build is on the [roadmap](roadmap.md).
|
|
526
536
|
|
|
527
537
|
### An e-mail stays light in dark mode
|
|
528
538
|
|
|
@@ -655,8 +665,9 @@ whole.
|
|
|
655
665
|
### `TS2739: Type '{ … }' is missing the following properties from type 'JanusMailTemplates<…>'`
|
|
656
666
|
|
|
657
667
|
`locales` holds a locale beyond `en` and `fr`, and `templates` does not give
|
|
658
|
-
all
|
|
659
|
-
`…, and
|
|
668
|
+
all twelve. With five or more missing, the code is `TS2740` and the list ends
|
|
669
|
+
`…, and <n> more.` — `…, and 7 more.` for a `templates` holding one
|
|
670
|
+
template. See [Adding a locale](guide/locales.md#adding-a-locale).
|
|
660
671
|
|
|
661
672
|
### `TS2741: Property 'recoveryCodeUsed' is missing in type '{ … }' but required in type 'JanusMailTemplates<…>'.`
|
|
662
673
|
|
|
@@ -685,6 +696,16 @@ yours. Add `stepUp` — it is given `brand`, `name`, `code`, `expiresIn` and
|
|
|
685
696
|
[`janusMail: the default templates are built in en and fr only — …; stepUp missing`](#janusmail-the-default-templates-are-built-in-en-and-fr-only--with-another-locale-in-locales-pass-every-template-in-templates-names-missing).
|
|
686
697
|
See [Templates](guide/templates.md#what-each-template-is-given).
|
|
687
698
|
|
|
699
|
+
### `TS2741: Property 'newSignIn' is missing in type '{ … }' but required in type 'JanusMailTemplates<…>'.`
|
|
700
|
+
|
|
701
|
+
`templates` written before 0.9, with a locale beyond `en` and `fr`: since
|
|
702
|
+
0.9.0 there are twelve templates, and with such a locale every one is
|
|
703
|
+
yours. Add `newSignIn` — it is given `brand`, `name`, `device`, `location`,
|
|
704
|
+
`time` and `link` — even if you never send it; in JavaScript the same
|
|
705
|
+
`templates` is
|
|
706
|
+
[`janusMail: the default templates are built in en and fr only — …; newSignIn missing`](#janusmail-the-default-templates-are-built-in-en-and-fr-only--with-another-locale-in-locales-pass-every-template-in-templates-names-missing).
|
|
707
|
+
See [Templates](guide/templates.md#what-each-template-is-given).
|
|
708
|
+
|
|
688
709
|
### `TS2345: Argument of type 'StepUpByEmail<…> | StepUpByApp<…>' is not assignable to parameter of type 'Pick<StepUpByEmail<unknown>, …>'.`
|
|
689
710
|
|
|
690
711
|
What `auth.stepUp.request(user)` answered, passed to `mail.stepUp` without
|
|
@@ -732,10 +753,24 @@ has no codes to count; check it first, as in
|
|
|
732
753
|
|
|
733
754
|
### `TS2322: Type 'Date' is not assignable to type 'string'.`
|
|
734
755
|
|
|
735
|
-
On `when`: the event's `occurredAt` passed as it is
|
|
736
|
-
|
|
756
|
+
On `when`: the event's `occurredAt` passed as it is — or, on `newSignIn`'s
|
|
757
|
+
`time`, the session's `createdAt`. Both are the text the e-mail shows —
|
|
758
|
+
format the date in the recipient's locale and time zone first:
|
|
737
759
|
|
|
738
760
|
```ts
|
|
739
761
|
const when = new Intl.DateTimeFormat(user.locale, { dateStyle: 'long', timeStyle: 'short', timeZone: 'Europe/Paris' })
|
|
740
762
|
.format(event.occurredAt);
|
|
741
763
|
```
|
|
764
|
+
|
|
765
|
+
### `TS2322: Type 'string | null' is not assignable to type 'string'.`, on `location`
|
|
766
|
+
|
|
767
|
+
Also, without `exactOptionalPropertyTypes` in your tsconfig:
|
|
768
|
+
`Type 'string | null' is not assignable to type 'string | undefined'.`
|
|
769
|
+
|
|
770
|
+
On `newSignIn`'s `location`: a geo-IP lookup's answer, `null` when it found
|
|
771
|
+
nothing, passed as it is. `location` is optional: leave it out, and the
|
|
772
|
+
e-mail shows `—`:
|
|
773
|
+
|
|
774
|
+
```ts
|
|
775
|
+
await mail.newSignIn(to, { device, time, ...(city === null ? {} : { location: city }) });
|
|
776
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" dir="ltr" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" style="color-scheme:light dark;">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="x-apple-disable-message-reformatting">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
+
<meta name="color-scheme" content="light dark">
|
|
8
|
+
<meta name="supported-color-schemes" content="light dark">
|
|
9
|
+
<style>[data-ogsc] .nx-dark-bg-paper{background-color:#040a19!important;}[data-ogsb] .nx-dark-bg-paper{background-color:#040a19!important;}[data-ogsc] .nx-dark-bg-card{background-color:#0f172b!important;background-color:lab(7.78673% 1.82345 -15.0537)!important;}[data-ogsb] .nx-dark-bg-card{background-color:#0f172b!important;background-color:lab(7.78673% 1.82345 -15.0537)!important;}[data-ogsc] .nx-dark-bg-background{background-color:#020918!important;background-color:lab(2.35721% .367686
|
|
10
|
+
-8.51797)!important;}[data-ogsb] .nx-dark-bg-background{background-color:#020918!important;background-color:lab(2.35721% .367686 -8.51797)!important;}[data-ogsc] .nx-dark-text-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}[data-ogsb] .nx-dark-text-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}[data-ogsc] .nx-dark-text-foreground-25{color:#404551!important;}[data-ogsb] .nx-dark-text-foreground-25{color:#404551!important;}
|
|
11
|
+
[data-ogsc] .nx-dark-text-card-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}[data-ogsb] .nx-dark-text-card-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}[data-ogsc] .nx-dark-border-border{border-color:#1c212f!important;}[data-ogsb] .nx-dark-border-border{border-color:#1c212f!important;}[data-ogsc] .nx-dark-bg-muted{background-color:#1e293b!important;}[data-ogsb] .nx-dark-bg-muted{background-color:#1e293b!important;}
|
|
12
|
+
[data-ogsc] .nx-dark-text-muted-foreground{color:#cbd5e1!important;}[data-ogsb] .nx-dark-text-muted-foreground{color:#cbd5e1!important;}[data-ogsc] .nx-dark-border-muted-foreground{border-color:#cbd5e1!important;}[data-ogsb] .nx-dark-border-muted-foreground{border-color:#cbd5e1!important;}[data-ogsc] .nx-dark-border-muted{border-color:#1e293b!important;}[data-ogsb] .nx-dark-border-muted{border-color:#1e293b!important;}[data-ogsc] .nx-dark-bg-primary{background-color:#fafafa!important;}
|
|
13
|
+
[data-ogsb] .nx-dark-bg-primary{background-color:#fafafa!important;}[data-ogsc] .nx-dark-text-primary{color:#fafafa!important;}[data-ogsb] .nx-dark-text-primary{color:#fafafa!important;}[data-ogsc] .nx-dark-text-primary-foreground{color:#18181b!important;}[data-ogsb] .nx-dark-text-primary-foreground{color:#18181b!important;}[data-ogsc] .nx-dark-text-info{color:#93c5fd!important;}[data-ogsb] .nx-dark-text-info{color:#93c5fd!important;}[data-ogsc] .nx-dark-border-primary{border-color:#fafafa
|
|
14
|
+
!important;}[data-ogsb] .nx-dark-border-primary{border-color:#fafafa!important;}[data-ogsc] .nx-dark-bg-primary-15{background-color:#272d3a!important;}[data-ogsb] .nx-dark-bg-primary-15{background-color:#272d3a!important;}[data-ogsc] .nx-dark-bg-primary-20{background-color:#343945!important;}[data-ogsb] .nx-dark-bg-primary-20{background-color:#343945!important;}[data-ogsc] .nx-dark-border-primary-40{border-color:#656972!important;}[data-ogsb] .nx-dark-border-primary-40{border-color:#656972
|
|
15
|
+
!important;}[data-ogsc] .nx-dark-border-primary-50{border-color:#7e8189!important;}[data-ogsb] .nx-dark-border-primary-50{border-color:#7e8189!important;}[data-ogsc] .nx-light-only{display:none!important;}[data-ogsb] .nx-light-only{display:none!important;}[data-ogsc] .nx-dark-only{display:inline-block!important;}[data-ogsb] .nx-dark-only{display:inline-block!important;}
|
|
16
|
+
@media (prefers-color-scheme:dark){html{--lightningcss-light:;--lightningcss-dark:initial;}.nx-dark-bg-paper{background-color:#040a19!important;}.nx-dark-bg-card{background-color:#0f172b!important;background-color:lab(7.78673% 1.82345 -15.0537)!important;}.nx-dark-text-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}.nx-dark-text-card-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}.nx-dark-border-border{border-color:#1c212f
|
|
17
|
+
!important;}.nx-dark-text-muted-foreground{color:#cbd5e1!important;}.nx-dark-bg-primary{background-color:#fafafa!important;}.nx-dark-text-primary-foreground{color:#18181b!important;}.nx-dark-text-info{color:#93c5fd!important;}.nx-dark-border-primary-40{border-color:#656972!important;} }
|
|
18
|
+
</style>
|
|
19
|
+
</head>
|
|
20
|
+
<body xml:lang="en" dir="ltr" style="margin:0;padding:0;width:100%;height:100%;word-break:break-word;background-color:#f4f4f4;" class="nx-dark-bg-paper"><div style="display:none;">Your account was signed in from a new device. ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
21
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
22
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
23
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
24
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
25
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
26
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
27
|
+
 ͏  ͏  ͏  ͏ </div><span style="display:none">
|
|
28
|
+
<!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings><w:WordDocument><w:DontUseAdvancedTypographyReadingMail/></w:WordDocument></xml>
|
|
29
|
+
<![endif]--></span><div role="article" aria-roledescription="email" lang="en" dir="ltr" style="font-size:medium;font-size:max(16px,1rem)">
|
|
30
|
+
<table class="nx-dark-bg-paper" role="presentation" cellpadding="0" cellspacing="0" dir="ltr" style="width:100%;background-color:#f4f4f4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont, 'Segoe UI',Roboto, 'Noto Sans',Ubuntu,Cantarell, 'Helvetica Neue',sans-serif;"><tr><td align="center" style="padding:32px 16px;">
|
|
31
|
+
<!--[if mso]>
|
|
32
|
+
<table role="none" cellpadding="0" cellspacing="0" style="width:600px" align="center"><tr><td>
|
|
33
|
+
<![endif]--><div style="margin:0 auto;max-width:600px;">
|
|
34
|
+
<table role="presentation" cellpadding="0" cellspacing="0" dir="ltr" style="width:100%;"><tr><td style="padding-bottom:24px;text-align:center;"><span class="nx-dark-text-foreground" style="font-size:18px;line-height:28px;font-weight:600;color:#020918;color:lab(2.35721% .367686 -8.51797);">{{ brand }}</span>
|
|
35
|
+
</td></tr><tr><td class="nx-dark-border-border nx-dark-bg-card nx-dark-text-card-foreground" style="border-radius:14px;border-color:#e2e8f0;border-style:solid;border-width:1px;border-color:lab(91.7353% -.998765 -4.76968);background-color:#fff;background-color:lab(100% 0 0);padding:32px;font-size:14px;line-height:20px;color:#020618;color:lab(1.76974% 1.32743 -9.28855);box-shadow:0 0 rgba(0,0,0,0),0 0 rgba(0,0,0,0),0 0 rgba(0,0,0,0),0 0 rgba(0,0,0,0),0 1px 3px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,
|
|
36
|
+
0,0,.1);"><h1 class="nx-dark-text-foreground" style="margin:0 0 16px;font-size:24px;line-height:32px;font-weight:600;color:#020918;color:lab(2.35721% .367686 -8.51797);">New sign-in to your account</h1><p class="nx-dark-text-foreground" style="margin:0 0 16px;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">Hello {{ name }},</p>
|
|
37
|
+
<table role="presentation" cellpadding="0" cellspacing="0" style="margin-bottom:16px;width:100%;"><tr><td style="border-radius:8px;border:1px solid #f9b999;background-color:#fdeee5;padding:12px 16px;">
|
|
38
|
+
<table role="presentation" cellpadding="0" cellspacing="0" dir="ltr" style="width:100%;"><tr><td style="vertical-align:top;color:#020918;color:lab(2.35721% .367686 -8.51797);"><p style="margin:0;font-size:14px;line-height:20px;font-weight:600;">Your account was signed in from a device we had not seen.</p>
|
|
39
|
+
</td></tr></table>
|
|
40
|
+
</td></tr></table>
|
|
41
|
+
<table role="presentation" cellpadding="0" cellspacing="0" dir="ltr" style="margin-bottom:16px;width:100%;"><tr><td class="nx-dark-border-primary-40 nx-dark-text-muted-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;padding-right:8px;font-size:14px;line-height:20px;color:#5f718a;">Device
|
|
42
|
+
</td><td class="nx-dark-border-primary-40 nx-dark-text-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;text-align:right;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">{{ device }}
|
|
43
|
+
</td></tr><tr><td class="nx-dark-border-primary-40 nx-dark-text-muted-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;padding-right:8px;font-size:14px;line-height:20px;color:#5f718a;">Location
|
|
44
|
+
</td><td class="nx-dark-border-primary-40 nx-dark-text-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;text-align:right;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">{{ location }}
|
|
45
|
+
</td></tr><tr><td class="nx-dark-border-primary-40 nx-dark-text-muted-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;padding-right:8px;font-size:14px;line-height:20px;color:#5f718a;">Time
|
|
46
|
+
</td><td class="nx-dark-border-primary-40 nx-dark-text-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;text-align:right;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">{{ time }}
|
|
47
|
+
</td></tr></table><p class="nx-dark-text-foreground" style="margin:0 0 16px;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">If this was you, there is nothing to do. If this was not you, secure your account now.</p><div><a style="display:inline-block;border-radius:9999px;background-color:#27272a;padding:10px 16px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont, 'Segoe UI',Roboto, 'Noto Sans',Ubuntu,Cantarell, 'Helvetica Neue',sans-serif;
|
|
48
|
+
font-size:14px;line-height:16px;font-weight:500;color:#f8fafc;color:lab(98.1434% -.369519 -1.05966);text-decoration:none;" href="{{ link }}" class="nx-dark-bg-primary nx-dark-text-primary-foreground">
|
|
49
|
+
<!--[if mso]><i style="mso-font-width:114%;mso-text-raise:19px;" hidden> </i>
|
|
50
|
+
<![endif]--> <span style="mso-text-raise:10px;">Secure my account</span>
|
|
51
|
+
<!--[if mso]><i style="mso-font-width:114%;" hidden> ​</i>
|
|
52
|
+
<![endif]--></a></div><div role="separator" style="line-height:24px;">‍</div><p class="nx-dark-text-foreground" style="margin:0 0 16px;font-size:12px;line-height:16px;color:#5f718a;">If the button does not work, open this link: <a href="{{ link }}" class="nx-dark-text-info" style="color:#1d4ed8;text-decoration:underline;">{{ link }}</a></p>
|
|
53
|
+
</td></tr><tr><td class="nx-dark-text-muted-foreground" style="padding-left:24px;padding-right:24px;padding-top:24px;text-align:center;font-size:12px;line-height:16px;color:#5f718a;"><p style="margin:0 0 8px;">You received this e-mail because you have an account with {{ brand }}.</p><p style="margin:0;">{{ brand }}</p>
|
|
54
|
+
</td></tr></table></div>
|
|
55
|
+
<!--[if mso]>
|
|
56
|
+
</td></tr></table>
|
|
57
|
+
<![endif]-->
|
|
58
|
+
</td></tr></table></div>
|
|
59
|
+
</body>
|
|
60
|
+
</html>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Your account was signed in from a new device.
|
|
2
|
+
|
|
3
|
+
{{ brand }}
|
|
4
|
+
|
|
5
|
+
New sign-in to your account
|
|
6
|
+
|
|
7
|
+
Hello {{ name }},
|
|
8
|
+
|
|
9
|
+
Your account was signed in from a device we had not seen.
|
|
10
|
+
|
|
11
|
+
Device
|
|
12
|
+
{{ device }}
|
|
13
|
+
|
|
14
|
+
Location
|
|
15
|
+
{{ location }}
|
|
16
|
+
|
|
17
|
+
Time
|
|
18
|
+
{{ time }}
|
|
19
|
+
|
|
20
|
+
If this was you, there is nothing to do. If this was not you, secure your account now.
|
|
21
|
+
|
|
22
|
+
Secure my account
|
|
23
|
+
|
|
24
|
+
{{ link }}
|
|
25
|
+
|
|
26
|
+
If the button does not work, open this link: {{ link }}
|
|
27
|
+
|
|
28
|
+
You received this e-mail because you have an account with {{ brand }}.
|
|
29
|
+
|
|
30
|
+
{{ brand }}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="fr" dir="ltr" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" style="color-scheme:light dark;">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="x-apple-disable-message-reformatting">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
+
<meta name="color-scheme" content="light dark">
|
|
8
|
+
<meta name="supported-color-schemes" content="light dark">
|
|
9
|
+
<style>[data-ogsc] .nx-dark-bg-paper{background-color:#040a19!important;}[data-ogsb] .nx-dark-bg-paper{background-color:#040a19!important;}[data-ogsc] .nx-dark-bg-card{background-color:#0f172b!important;background-color:lab(7.78673% 1.82345 -15.0537)!important;}[data-ogsb] .nx-dark-bg-card{background-color:#0f172b!important;background-color:lab(7.78673% 1.82345 -15.0537)!important;}[data-ogsc] .nx-dark-bg-background{background-color:#020918!important;background-color:lab(2.35721% .367686
|
|
10
|
+
-8.51797)!important;}[data-ogsb] .nx-dark-bg-background{background-color:#020918!important;background-color:lab(2.35721% .367686 -8.51797)!important;}[data-ogsc] .nx-dark-text-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}[data-ogsb] .nx-dark-text-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}[data-ogsc] .nx-dark-text-foreground-25{color:#404551!important;}[data-ogsb] .nx-dark-text-foreground-25{color:#404551!important;}
|
|
11
|
+
[data-ogsc] .nx-dark-text-card-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}[data-ogsb] .nx-dark-text-card-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}[data-ogsc] .nx-dark-border-border{border-color:#1c212f!important;}[data-ogsb] .nx-dark-border-border{border-color:#1c212f!important;}[data-ogsc] .nx-dark-bg-muted{background-color:#1e293b!important;}[data-ogsb] .nx-dark-bg-muted{background-color:#1e293b!important;}
|
|
12
|
+
[data-ogsc] .nx-dark-text-muted-foreground{color:#cbd5e1!important;}[data-ogsb] .nx-dark-text-muted-foreground{color:#cbd5e1!important;}[data-ogsc] .nx-dark-border-muted-foreground{border-color:#cbd5e1!important;}[data-ogsb] .nx-dark-border-muted-foreground{border-color:#cbd5e1!important;}[data-ogsc] .nx-dark-border-muted{border-color:#1e293b!important;}[data-ogsb] .nx-dark-border-muted{border-color:#1e293b!important;}[data-ogsc] .nx-dark-bg-primary{background-color:#fafafa!important;}
|
|
13
|
+
[data-ogsb] .nx-dark-bg-primary{background-color:#fafafa!important;}[data-ogsc] .nx-dark-text-primary{color:#fafafa!important;}[data-ogsb] .nx-dark-text-primary{color:#fafafa!important;}[data-ogsc] .nx-dark-text-primary-foreground{color:#18181b!important;}[data-ogsb] .nx-dark-text-primary-foreground{color:#18181b!important;}[data-ogsc] .nx-dark-text-info{color:#93c5fd!important;}[data-ogsb] .nx-dark-text-info{color:#93c5fd!important;}[data-ogsc] .nx-dark-border-primary{border-color:#fafafa
|
|
14
|
+
!important;}[data-ogsb] .nx-dark-border-primary{border-color:#fafafa!important;}[data-ogsc] .nx-dark-bg-primary-15{background-color:#272d3a!important;}[data-ogsb] .nx-dark-bg-primary-15{background-color:#272d3a!important;}[data-ogsc] .nx-dark-bg-primary-20{background-color:#343945!important;}[data-ogsb] .nx-dark-bg-primary-20{background-color:#343945!important;}[data-ogsc] .nx-dark-border-primary-40{border-color:#656972!important;}[data-ogsb] .nx-dark-border-primary-40{border-color:#656972
|
|
15
|
+
!important;}[data-ogsc] .nx-dark-border-primary-50{border-color:#7e8189!important;}[data-ogsb] .nx-dark-border-primary-50{border-color:#7e8189!important;}[data-ogsc] .nx-light-only{display:none!important;}[data-ogsb] .nx-light-only{display:none!important;}[data-ogsc] .nx-dark-only{display:inline-block!important;}[data-ogsb] .nx-dark-only{display:inline-block!important;}
|
|
16
|
+
@media (prefers-color-scheme:dark){html{--lightningcss-light:;--lightningcss-dark:initial;}.nx-dark-bg-paper{background-color:#040a19!important;}.nx-dark-bg-card{background-color:#0f172b!important;background-color:lab(7.78673% 1.82345 -15.0537)!important;}.nx-dark-text-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}.nx-dark-text-card-foreground{color:#f8fafc!important;color:lab(98.1434% -.369519 -1.05966)!important;}.nx-dark-border-border{border-color:#1c212f
|
|
17
|
+
!important;}.nx-dark-text-muted-foreground{color:#cbd5e1!important;}.nx-dark-bg-primary{background-color:#fafafa!important;}.nx-dark-text-primary-foreground{color:#18181b!important;}.nx-dark-text-info{color:#93c5fd!important;}.nx-dark-border-primary-40{border-color:#656972!important;} }
|
|
18
|
+
</style>
|
|
19
|
+
</head>
|
|
20
|
+
<body xml:lang="fr" dir="ltr" style="margin:0;padding:0;width:100%;height:100%;word-break:break-word;background-color:#f4f4f4;" class="nx-dark-bg-paper"><div style="display:none;">Votre compte a été utilisé depuis un nouvel appareil. ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
21
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
22
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
23
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
24
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
25
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
|
|
26
|
+
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏ </div><span style="display:none">
|
|
27
|
+
<!--[if mso]><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings><w:WordDocument><w:DontUseAdvancedTypographyReadingMail/></w:WordDocument></xml>
|
|
28
|
+
<![endif]--></span><div role="article" aria-roledescription="email" lang="fr" dir="ltr" style="font-size:medium;font-size:max(16px,1rem)">
|
|
29
|
+
<table class="nx-dark-bg-paper" role="presentation" cellpadding="0" cellspacing="0" dir="ltr" style="width:100%;background-color:#f4f4f4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont, 'Segoe UI',Roboto, 'Noto Sans',Ubuntu,Cantarell, 'Helvetica Neue',sans-serif;"><tr><td align="center" style="padding:32px 16px;">
|
|
30
|
+
<!--[if mso]>
|
|
31
|
+
<table role="none" cellpadding="0" cellspacing="0" style="width:600px" align="center"><tr><td>
|
|
32
|
+
<![endif]--><div style="margin:0 auto;max-width:600px;">
|
|
33
|
+
<table role="presentation" cellpadding="0" cellspacing="0" dir="ltr" style="width:100%;"><tr><td style="padding-bottom:24px;text-align:center;"><span class="nx-dark-text-foreground" style="font-size:18px;line-height:28px;font-weight:600;color:#020918;color:lab(2.35721% .367686 -8.51797);">{{ brand }}</span>
|
|
34
|
+
</td></tr><tr><td class="nx-dark-border-border nx-dark-bg-card nx-dark-text-card-foreground" style="border-radius:14px;border-color:#e2e8f0;border-style:solid;border-width:1px;border-color:lab(91.7353% -.998765 -4.76968);background-color:#fff;background-color:lab(100% 0 0);padding:32px;font-size:14px;line-height:20px;color:#020618;color:lab(1.76974% 1.32743 -9.28855);box-shadow:0 0 rgba(0,0,0,0),0 0 rgba(0,0,0,0),0 0 rgba(0,0,0,0),0 0 rgba(0,0,0,0),0 1px 3px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,
|
|
35
|
+
0,0,.1);"><h1 class="nx-dark-text-foreground" style="margin:0 0 16px;font-size:24px;line-height:32px;font-weight:600;color:#020918;color:lab(2.35721% .367686 -8.51797);">Nouvelle connexion à votre compte</h1><p class="nx-dark-text-foreground" style="margin:0 0 16px;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">Bonjour {{ name }},</p>
|
|
36
|
+
<table role="presentation" cellpadding="0" cellspacing="0" style="margin-bottom:16px;width:100%;"><tr><td style="border-radius:8px;border:1px solid #f9b999;background-color:#fdeee5;padding:12px 16px;">
|
|
37
|
+
<table role="presentation" cellpadding="0" cellspacing="0" dir="ltr" style="width:100%;"><tr><td style="vertical-align:top;color:#020918;color:lab(2.35721% .367686 -8.51797);"><p style="margin:0;font-size:14px;line-height:20px;font-weight:600;">Votre compte a été utilisé depuis un appareil que nous ne connaissions pas.</p>
|
|
38
|
+
</td></tr></table>
|
|
39
|
+
</td></tr></table>
|
|
40
|
+
<table role="presentation" cellpadding="0" cellspacing="0" dir="ltr" style="margin-bottom:16px;width:100%;"><tr><td class="nx-dark-border-primary-40 nx-dark-text-muted-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;padding-right:8px;font-size:14px;line-height:20px;color:#5f718a;">Appareil
|
|
41
|
+
</td><td class="nx-dark-border-primary-40 nx-dark-text-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;text-align:right;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">{{ device }}
|
|
42
|
+
</td></tr><tr><td class="nx-dark-border-primary-40 nx-dark-text-muted-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;padding-right:8px;font-size:14px;line-height:20px;color:#5f718a;">Lieu
|
|
43
|
+
</td><td class="nx-dark-border-primary-40 nx-dark-text-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;text-align:right;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">{{ location }}
|
|
44
|
+
</td></tr><tr><td class="nx-dark-border-primary-40 nx-dark-text-muted-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;padding-right:8px;font-size:14px;line-height:20px;color:#5f718a;">Heure
|
|
45
|
+
</td><td class="nx-dark-border-primary-40 nx-dark-text-foreground" style="border-bottom:1px solid;border-color:#a9a9aa;padding-top:8px;padding-bottom:8px;text-align:right;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">{{ time }}
|
|
46
|
+
</td></tr></table><p class="nx-dark-text-foreground" style="margin:0 0 16px;font-size:14px;line-height:20px;color:#020918;color:lab(2.35721% .367686 -8.51797);">Si c'était vous, vous n'avez rien à faire. Si ce n'était pas vous, sécurisez votre compte dès maintenant.</p><div><a style="display:inline-block;border-radius:9999px;background-color:#27272a;padding:10px 16px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont, 'Segoe UI',Roboto, 'Noto Sans',Ubuntu,Cantarell, 'Helvetica Neue',sans-serif;font-size:14px;line-height:16px;font-weight:500;color:#f8fafc;color:lab(98.1434% -.369519 -1.05966);text-decoration:none;" href="{{ link }}" class="nx-dark-bg-primary nx-dark-text-primary-foreground">
|
|
47
|
+
<!--[if mso]><i style="mso-font-width:114%;mso-text-raise:19px;" hidden> </i>
|
|
48
|
+
<![endif]--> <span style="mso-text-raise:10px;">Sécuriser mon compte</span>
|
|
49
|
+
<!--[if mso]><i style="mso-font-width:114%;" hidden> ​</i>
|
|
50
|
+
<![endif]--></a></div><div role="separator" style="line-height:24px;">‍</div><p class="nx-dark-text-foreground" style="margin:0 0 16px;font-size:12px;line-height:16px;color:#5f718a;">Si le bouton ne fonctionne pas, ouvrez ce lien : <a href="{{ link }}" class="nx-dark-text-info" style="color:#1d4ed8;text-decoration:underline;">{{ link }}</a></p>
|
|
51
|
+
</td></tr><tr><td class="nx-dark-text-muted-foreground" style="padding-left:24px;padding-right:24px;padding-top:24px;text-align:center;font-size:12px;line-height:16px;color:#5f718a;"><p style="margin:0 0 8px;">Vous recevez cet e-mail parce que vous avez un compte chez {{ brand }}.</p><p style="margin:0;">{{ brand }}</p>
|
|
52
|
+
</td></tr></table></div>
|
|
53
|
+
<!--[if mso]>
|
|
54
|
+
</td></tr></table>
|
|
55
|
+
<![endif]-->
|
|
56
|
+
</td></tr></table></div>
|
|
57
|
+
</body>
|
|
58
|
+
</html>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Votre compte a été utilisé depuis un nouvel appareil.
|
|
2
|
+
|
|
3
|
+
{{ brand }}
|
|
4
|
+
|
|
5
|
+
Nouvelle connexion à votre compte
|
|
6
|
+
|
|
7
|
+
Bonjour {{ name }},
|
|
8
|
+
|
|
9
|
+
Votre compte a été utilisé depuis un appareil que nous ne connaissions pas.
|
|
10
|
+
|
|
11
|
+
Appareil
|
|
12
|
+
{{ device }}
|
|
13
|
+
|
|
14
|
+
Lieu
|
|
15
|
+
{{ location }}
|
|
16
|
+
|
|
17
|
+
Heure
|
|
18
|
+
{{ time }}
|
|
19
|
+
|
|
20
|
+
Si c'était vous, vous n'avez rien à faire. Si ce n'était pas vous, sécurisez votre compte dès maintenant.
|
|
21
|
+
|
|
22
|
+
Sécuriser mon compte
|
|
23
|
+
|
|
24
|
+
{{ link }}
|
|
25
|
+
|
|
26
|
+
Si le bouton ne fonctionne pas, ouvrez ce lien : {{ link }}
|
|
27
|
+
|
|
28
|
+
Vous recevez cet e-mail parce que vous avez un compte chez {{ brand }}.
|
|
29
|
+
|
|
30
|
+
{{ brand }}
|
package/mails/mail-manifest.json
CHANGED
|
@@ -81,6 +81,33 @@
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
|
+
"new-sign-in": {
|
|
85
|
+
"variables": [
|
|
86
|
+
"brand",
|
|
87
|
+
"device",
|
|
88
|
+
"link",
|
|
89
|
+
"location",
|
|
90
|
+
"name",
|
|
91
|
+
"time"
|
|
92
|
+
],
|
|
93
|
+
"urlVariables": [
|
|
94
|
+
"link"
|
|
95
|
+
],
|
|
96
|
+
"subject": {
|
|
97
|
+
"en": "New sign-in to your account",
|
|
98
|
+
"fr": "Nouvelle connexion à votre compte"
|
|
99
|
+
},
|
|
100
|
+
"files": {
|
|
101
|
+
"en": {
|
|
102
|
+
"html": "en/new-sign-in.html",
|
|
103
|
+
"text": "en/new-sign-in.txt"
|
|
104
|
+
},
|
|
105
|
+
"fr": {
|
|
106
|
+
"html": "fr/new-sign-in.html",
|
|
107
|
+
"text": "fr/new-sign-in.txt"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
84
111
|
"password-changed": {
|
|
85
112
|
"variables": [
|
|
86
113
|
"brand",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nxgt/janus-mail",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "The e-mails of @nxgt/janus's flows — e-mail verification, password reset, sign-in code, sign-in link, step-up code, password changed, e-mail changed, two-factor enabled and disabled, recovery code used, welcome — rendered in English and French from a prebuilt Maizzle build, with your brand, sent through any @nxgt/mail transport",
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "The e-mails of @nxgt/janus's flows — e-mail verification, password reset, sign-in code, sign-in link, step-up code, password changed, e-mail changed, two-factor enabled and disabled, recovery code used, new sign-in, welcome — rendered in English and French from a prebuilt Maizzle build, with your brand, sent through any @nxgt/mail transport",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@maizzle/framework": "6.1.7",
|
|
55
55
|
"@maizzle/tailwindcss": "1.5.6",
|
|
56
56
|
"@formatjs/icu-messageformat-parser": "3.5.20",
|
|
57
|
-
"@nxgt/janus": "^0.
|
|
57
|
+
"@nxgt/janus": "^0.17.0",
|
|
58
58
|
"@nxgt/mail": "1.0.1",
|
|
59
59
|
"@nxgt/mail-config": "1.0.1",
|
|
60
60
|
"@nxgt/mail-i18n": "1.0.1",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"zod": "^4.6.5"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@nxgt/janus": "^0.
|
|
69
|
+
"@nxgt/janus": "^0.17.0",
|
|
70
70
|
"@nxgt/mail": ">=0.1.0 <2",
|
|
71
71
|
"typescript": "^6.0.3"
|
|
72
72
|
}
|