chore: bump deps (#14506)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
  * Version bumped to 0.26.3 across the project and Helm charts.
  * Removed an unused dependency (minimatch) from multiple packages.
* Updated build/tooling and packaging metadata, including packaging
maker replacement.
  * Adjusted app release metadata and platform packaging config.

* **Tests**
* Updated test snapshots to reflect minor presentational styling
adjustments.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-02-24 09:11:41 +08:00
committed by GitHub
parent 5fb1c11a96
commit c2c7dde06c
131 changed files with 1611 additions and 981 deletions
@@ -141,7 +141,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro/magic-link?token=123456&amp;email=test@test.com"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -281,7 +281,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro/magic-link?token=123456&amp;email=test@test.com"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -389,7 +389,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -478,7 +478,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -585,7 +585,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -692,7 +692,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -783,7 +783,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -944,7 +944,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -1043,7 +1043,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -1210,7 +1210,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -1572,7 +1572,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -1666,7 +1666,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -1761,7 +1761,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -1865,7 +1865,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -1964,7 +1964,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -2065,7 +2065,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -2179,7 +2179,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -2295,7 +2295,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -2482,7 +2482,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -2584,7 +2584,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
@@ -2755,7 +2755,7 @@ Generated by [AVA](https://avajs.dev).
<tr style="width:100%">␊
<a␊
href="https://app.affine.pro"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px 8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px"␊
style="line-height:24px;text-decoration:none;display:inline-block;max-width:100%;mso-padding-alt:0px;font-size:15px;font-weight:600;font-family:Inter, Arial, Helvetica, sans-serif;margin-top:24px;margin-bottom:0;color:#FFFFFF;background-color:#1E96EB;padding:8px 18px;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:4px;padding-top:8px;padding-right:18px;padding-bottom:8px;padding-left:18px"␊
target="_blank"␊
><span␊
><!--[if mso␊
+1 -3
View File
@@ -41,9 +41,7 @@ type EmailContent = {
};
function render(component: React.ReactElement) {
return rawRender(component, {
pretty: env.testing,
});
return rawRender(component, { pretty: env.testing });
}
type Props<T> = T extends React.ComponentType<infer P> ? P : never;