@cosmicdrift/kumiko-bundled-features 0.391.0 → 0.392.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/dist/admin-shell/feature.d.ts +3 -0
- package/dist/admin-shell/feature.js +47 -30
- package/dist/auth-email-password/handlers/invite-accept-with-login.write.js +2 -2
- package/dist/auth-email-password/handlers/invite-signup-complete.write.js +2 -2
- package/dist/cap-overview/handlers/caps-usage.query.js +1 -0
- package/dist/cap-overview/handlers/tenant-caps-list.query.js +3 -2
- package/dist/cap-overview/i18n.js +4 -0
- package/dist/cap-overview/types.d.ts +3 -1
- package/dist/cap-overview/web/cap-amount-format.d.ts +3 -0
- package/dist/cap-overview/web/cap-amount-format.js +30 -0
- package/dist/cap-overview/web/cap-cards-panel.js +63 -23
- package/dist/cap-overview/web/cap-usage-bar.js +9 -4
- package/dist/cap-overview/web/cap-usage-cell.js +4 -2
- package/dist/cap-overview/web/usage-math.d.ts +1 -0
- package/dist/cap-overview/web/usage-math.js +4 -1
- package/dist/channel-email/app-transport.d.ts +14 -0
- package/dist/channel-email/app-transport.js +20 -0
- package/dist/channel-email/feature.js +6 -0
- package/dist/channel-email/index.d.ts +1 -0
- package/dist/channel-email/index.js +1 -0
- package/dist/channel-email/smtp-transport.js +2 -19
- package/dist/compliance-profiles/schema/profile-selection.d.ts +8 -8
- package/dist/foundation-shared/index.d.ts +1 -0
- package/dist/foundation-shared/index.js +1 -0
- package/dist/foundation-shared/mail-display-name.d.ts +1 -0
- package/dist/foundation-shared/mail-display-name.js +18 -0
- package/dist/inbound-mail-foundation/account-record.d.ts +13 -0
- package/dist/inbound-mail-foundation/account-record.js +27 -0
- package/dist/inbound-mail-foundation/feature.js +1 -1
- package/dist/inbound-mail-foundation/i18n.js +17 -0
- package/dist/inbound-mail-foundation/index.d.ts +3 -1
- package/dist/inbound-mail-foundation/index.js +3 -1
- package/dist/inbound-mail-foundation/outbound-mail.d.ts +28 -0
- package/dist/inbound-mail-foundation/outbound-mail.js +52 -0
- package/dist/inbound-mail-foundation/probe.js +5 -28
- package/dist/inbound-mail-foundation/screens.d.ts +2 -0
- package/dist/inbound-mail-foundation/screens.js +14 -0
- package/dist/inbound-mail-foundation/send-from-account.d.ts +31 -0
- package/dist/inbound-mail-foundation/send-from-account.js +87 -0
- package/dist/inbound-mail-foundation/types.d.ts +4 -0
- package/dist/inbound-mail-foundation/watch-supervisor.js +10 -8
- package/dist/inbound-provider-imap/connect-mailbox.d.ts +13 -0
- package/dist/inbound-provider-imap/connect-mailbox.js +124 -0
- package/dist/inbound-provider-imap/constants.d.ts +41 -0
- package/dist/inbound-provider-imap/constants.js +39 -0
- package/dist/inbound-provider-imap/credential-document.d.ts +6 -0
- package/dist/inbound-provider-imap/credential-document.js +31 -1
- package/dist/inbound-provider-imap/feature.d.ts +1 -1
- package/dist/inbound-provider-imap/feature.js +13 -22
- package/dist/inbound-provider-imap/i18n.d.ts +3 -0
- package/dist/inbound-provider-imap/i18n.js +45 -0
- package/dist/inbound-provider-imap/imap-client.d.ts +1 -0
- package/dist/inbound-provider-imap/imap-client.js +1 -1
- package/dist/inbound-provider-imap/screens.d.ts +2 -0
- package/dist/inbound-provider-imap/screens.js +39 -0
- package/dist/inbound-provider-imap/send-mail.d.ts +2 -0
- package/dist/inbound-provider-imap/send-mail.js +48 -0
- package/dist/inbound-provider-imap/sent-folder.d.ts +8 -0
- package/dist/inbound-provider-imap/sent-folder.js +40 -0
- package/dist/inbound-provider-imap/smtp-client.d.ts +35 -0
- package/dist/inbound-provider-imap/smtp-client.js +106 -0
- package/dist/ledger/entity.d.ts +8 -8
- package/dist/mail-foundation/i18n.d.ts +9 -1
- package/dist/mail-foundation/i18n.js +9 -1
- package/dist/mail-foundation/probe.js +32 -16
- package/dist/readiness/built-in-probes.d.ts +2 -1
- package/dist/readiness/built-in-probes.js +12 -1
- package/dist/readiness/constants.d.ts +5 -0
- package/dist/readiness/constants.js +1 -0
- package/dist/readiness/i18n.js +7 -1
- package/dist/readiness/index.d.ts +1 -1
- package/dist/readiness/index.js +1 -1
- package/dist/readiness/schema/probe-run.d.ts +8 -8
- package/dist/readiness/screens.d.ts +3 -0
- package/dist/readiness/screens.js +25 -2
- package/dist/readiness/visible-results.d.ts +2 -1
- package/dist/template-resolver/table.d.ts +36 -36
- package/dist/template-resolver/user-content-table.d.ts +26 -26
- package/dist/tenant/invitation-table.d.ts +8 -8
- package/dist/tenant/schema/tenant.d.ts +10 -10
- package/dist/tier-engine/entity.d.ts +3 -3
- package/dist/tier-engine/feature.js +8 -4
- package/dist/tier-engine/tier-resolver.d.ts +3 -3
- package/dist/user/schema/user.d.ts +8 -8
- package/dist/user-data-rights/handlers/download-by-token.query.js +3 -3
- package/dist/user-data-rights/schema/download-token.js +5 -3
- package/dist/user-data-rights/schema/export-job.d.ts +8 -8
- package/dist/user-data-rights/token-helpers.d.ts +1 -2
- package/dist/user-data-rights/token-helpers.js +5 -4
- package/dist/waitlist/entity.d.ts +8 -8
- package/package.json +11 -11
- package/src/admin-shell/changes.json +6 -0
- package/src/cap-overview/changes.json +12 -0
- package/src/channel-email/changes.json +6 -0
- package/src/foundation-shared/changes.json +6 -0
- package/src/inbound-mail-foundation/changes.json +18 -0
- package/src/inbound-provider-imap/changes.json +12 -0
- package/src/mail-foundation/changes.json +6 -0
- package/src/readiness/changes.json +30 -0
- package/src/tier-engine/changes.json +6 -0
- package/src/workflow-runner/changes.json +6 -0
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "improvement",
|
|
5
|
+
"title": "Cap amounts follow their unit and a limit of 0 reads \"Not included\"",
|
|
6
|
+
"detail": "Values with unit \"mb\" show as MB, GB or TB (base 1024), count and tokens use the locale's digit grouping. A limit of 0 or less shows \"Not included\" instead of a 0 bar, also when nothing is measured. caps:usage rows and the tenant-caps list cells now carry the unit of the cap. New key cap-overview.notIncluded in all locale packages."
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"version": "0.392.0",
|
|
10
|
+
"type": "improvement",
|
|
11
|
+
"title": "CapCardsPanel can be limited to specific cap keys via params.capKeys",
|
|
12
|
+
"detail": "A custom dashboard panel with params capKeys as a list of cap ids shows only those cards, in the order of the capsUsage query. Anything other than a list of strings means no limit, and capKeys is not sent to the server. Each limited cap card also shows how much is left (or that nothing is), next to the percent chip, and a limited panel adds a link to the full usage screen."
|
|
13
|
+
},
|
|
2
14
|
{
|
|
3
15
|
"version": "0.383.0",
|
|
4
16
|
"type": "improvement",
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "improvement",
|
|
5
|
+
"title": "channel-email publishes its app transport",
|
|
6
|
+
"detail": "channel-email declares the emailAppTransport extension and registers its app transport under it; findEmailAppTransport(registry) returns that transport, or null when the app has none or does not mount channel-email."
|
|
7
|
+
},
|
|
2
8
|
{
|
|
3
9
|
"version": "0.388.0",
|
|
4
10
|
"type": "fix",
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "improvement",
|
|
5
|
+
"title": "sanitizeMailDisplayName is shared",
|
|
6
|
+
"detail": "The display-name sanitizer from channel-email moved to foundation-shared as sanitizeMailDisplayName, so the IMAP sender uses the same rule. No behavior change."
|
|
7
|
+
},
|
|
2
8
|
{
|
|
3
9
|
"version": "0.370.0",
|
|
4
10
|
"type": "improvement",
|
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "fix",
|
|
5
|
+
"title": "Mail polling works with the row-level-security enforcing pool",
|
|
6
|
+
"detail": "createInboundMailSupervisor opens its own system scope for the cross-tenant reads and writes of accounts, cursors and seen messages. Before, passing the enforcing pool as db made every poll see no accounts."
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"version": "0.392.0",
|
|
10
|
+
"type": "improvement",
|
|
11
|
+
"title": "The mail account list links to the IMAP connect form",
|
|
12
|
+
"detail": "mailAccountListScreen gets a \"Connect mailbox\" toolbar action that opens the screen mail-account-connect-imap. The button shows only when the app mounts inbound-provider-imap, which registers that screen. The Systemcheck fix link for inbound mail now leads to a list where a mailbox can be added."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"version": "0.392.0",
|
|
16
|
+
"type": "improvement",
|
|
17
|
+
"title": "Apps can send from a connected mailbox",
|
|
18
|
+
"detail": "The provider contract gets an optional send(ctx, account, message). The new server function sendMailFromAccount(ctx, { accountId, message }) is called from an app's own write handler and sends through the provider of the mailbox, with the mailbox address as From and In-Reply-To and References for replies. It returns WriteResult<{ messageIdHeader }>; failures are typed UnprocessableErrors with the reasons mail_send_not_configured, mail_send_login_rejected, mail_send_server_unreachable, mail_send_rejected and mail_send_invalid_message (i18n keys inboundMail.send.errors.*). A missing, disconnected or someone else's personal mailbox answers not found. There is no fallback to the app sender. New exports: sendMailFromAccount, MAIL_SEND_ERRORS, outboundMailMessageSchema, OutboundMailMessage, OutboundMailSent, MailSendNotConfiguredError, MailSendRejectedError. New keys in all locale packages."
|
|
19
|
+
},
|
|
2
20
|
{
|
|
3
21
|
"version": "0.391.0",
|
|
4
22
|
"type": "improvement",
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "improvement",
|
|
5
|
+
"title": "IMAP mailboxes can be connected from a form",
|
|
6
|
+
"detail": "The new write handler inbound-provider-imap:write:connect-mailbox (TenantAdmin, SystemAdmin, not exposed to the agent, 10 calls per tenant in 10 minutes) checks the IMAP login before the transaction, then creates a shared mail account and stores host, port, user and password in its credential secret in the same transaction. It always connects with implicit TLS (default port 993); there is no plaintext option, and a secure:false in the payload is ignored. A failed check stores nothing and answers with one of four texts: host not reachable or not allowed, login rejected, TLS failed, no connection. The form screen mail-account-connect-imap has a masked password field and no TLS toggle. New keys in all locale packages."
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"version": "0.392.0",
|
|
10
|
+
"type": "improvement",
|
|
11
|
+
"title": "IMAP mailboxes send over their own SMTP server",
|
|
12
|
+
"detail": "The connect form gets an optional field \"Outgoing server (SMTP)\". Left empty, the IMAP host is used, with smtp. in place of a leading imap.. connect-mailbox now also checks the SMTP login on port 465 (implicit TLS, same user and password, same host guard) and answers a failure with its own text (\"Receiving works, but sending does not: ...\"). The credential document gains smtpHost and smtpPort (default 465). The provider implements send: it sends over SMTP with From = the mailbox address and display name, then stores the same message in the sent folder (special use \\Sent, else Sent, Gesendet or INBOX.Sent); a failed copy is only logged. Accounts stored without smtpHost answer mail_send_not_configured. New keys in all locale packages."
|
|
13
|
+
},
|
|
2
14
|
{
|
|
3
15
|
"version": "0.390.1",
|
|
4
16
|
"type": "fix",
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "improvement",
|
|
5
|
+
"title": "The mail probe tests the platform sender",
|
|
6
|
+
"detail": "A tenant without its own mail provider now gets the test mail through the channel-email app transport, the sender its tenant-transport notifications fall back to. The probe reports mail-foundation.probe.send-test-mail.platform-accepted on success and mail-foundation.probe.platform-send-rejected when the platform server rejects it; it is skipped only when neither an own provider nor an app transport exists, and mail-foundation.probe.not-configured now reads \"No email sending set up\". New keys in all locale packages."
|
|
7
|
+
},
|
|
2
8
|
{
|
|
3
9
|
"version": "0.391.0",
|
|
4
10
|
"type": "improvement",
|
|
@@ -1,4 +1,34 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "improvement",
|
|
5
|
+
"title": "The paid run is a button next to Start check",
|
|
6
|
+
"detail": "The system check screen declares run-paid-check as an inline action, so \"Test AI extraction\" shows as a button beside \"Start check\" instead of in the \"More actions\" menu. It stays hidden while the app has no paid probes."
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"version": "0.392.0",
|
|
10
|
+
"type": "improvement",
|
|
11
|
+
"title": "The readiness entry exports ProbeTextKeys",
|
|
12
|
+
"detail": "ProbeTextKeys comes from @cosmicdrift/kumiko-bundled-features/readiness next to ReadinessQueries and ReadinessWrites, so apps can name probe texts without a deep import."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"version": "0.392.0",
|
|
16
|
+
"type": "improvement",
|
|
17
|
+
"title": "The paid probe hint names the button",
|
|
18
|
+
"detail": "readiness.probe.paid-not-requested now reads \"Only via “Test AI extraction”\" (de „Nur über „KI-Auslesen testen““), the label of the button that starts the paid run."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"version": "0.392.0",
|
|
22
|
+
"type": "improvement",
|
|
23
|
+
"title": "The search probe fails with its own text",
|
|
24
|
+
"detail": "When the search service throws, the search probe fails with readiness.probe.search.unavailable (\"The search service does not answer\"). The raw error can name the search host, so it goes only to the server log. New key in all locale packages."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"version": "0.392.0",
|
|
28
|
+
"type": "improvement",
|
|
29
|
+
"title": "An empty latest run says why it is empty",
|
|
30
|
+
"detail": "The latest results and the run detail show \"The check is running. Results appear when it is done.\" while a run is running and \"There is nothing to check for this tenant.\" when a finished run has no rows the caller may see, and \"The run was stopped before it returned results.\" for an abandoned run. Without a run the old text stays. New keys readiness.screen.latest.running, readiness.screen.latest.nothing-to-check and readiness.screen.latest.abandoned in all locale packages."
|
|
31
|
+
},
|
|
2
32
|
{
|
|
3
33
|
"version": "0.391.0",
|
|
4
34
|
"type": "improvement",
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "fix",
|
|
5
|
+
"title": "Tier fallback to the default tier under row-level security",
|
|
6
|
+
"detail": "With row-level security enabled (the default since 0.390) the boot preload, the bus-driven reloads and the trial gate of the tier-engine resolver ran on the enforcing pool without a tenant scope, read zero rows and dropped every tenant to the default tier, so toggleable features of paying tenants answered 403 feature_disabled. These reads now run in system scope; no app change is needed."
|
|
7
|
+
},
|
|
2
8
|
{
|
|
3
9
|
"version": "0.388.0",
|
|
4
10
|
"type": "fix",
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.391.1",
|
|
4
|
+
"type": "improvement",
|
|
5
|
+
"title": "Regression test for the woken-run due check",
|
|
6
|
+
"detail": "The event-wakeup integration test now runs the wakeup with the app clock one hour ahead of the database and expects resume-due-runs to complete the run. Nothing changes for apps; the package is only republished."
|
|
7
|
+
},
|
|
2
8
|
{
|
|
3
9
|
"version": "0.390.0",
|
|
4
10
|
"type": "fix",
|