@aglyn/plugins-email 1.0.0-beta.221 → 1.0.0-beta.223
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 +5 -4
- package/package.json +16 -17
- package/src/lib/components/email-template-detail.d.ts +5 -13
- package/src/lib/components/email-template-detail.js +29 -426
- package/src/lib/components/email-template-detail.js.map +1 -1
- package/src/lib/components/email-zones.d.ts +15 -0
- package/src/lib/components/email-zones.js +1 -0
- package/src/lib/components/email-zones.js.map +1 -1
- package/src/lib/components/list-detail-card.d.ts +0 -36
- package/src/lib/components/list-detail-card.js +125 -84
- package/src/lib/components/list-detail-card.js.map +1 -1
- package/src/lib/components/list-members-panel.d.ts +17 -0
- package/src/lib/components/list-members-panel.js +14 -0
- package/src/lib/components/list-members-panel.js.map +1 -1
- package/src/lib/components/site-package-email-preview.d.ts +13 -0
- package/src/lib/components/site-package-email-preview.js +47 -0
- package/src/lib/components/site-package-email-preview.js.map +1 -0
- package/src/lib/components/suppressions-card.js +75 -6
- package/src/lib/components/suppressions-card.js.map +1 -1
- package/src/lib/components/use-org-email-topics.js +2 -9
- package/src/lib/components/use-org-email-topics.js.map +1 -1
- package/src/lib/constants/site-package.d.ts +21 -0
- package/src/lib/constants/site-package.js +21 -0
- package/src/lib/constants/site-package.js.map +1 -0
- package/src/lib/declarations.console-server.d.ts +12 -0
- package/src/lib/declarations.console-server.js +73 -0
- package/src/lib/declarations.console-server.js.map +1 -1
- package/src/lib/list-import.d.ts +64 -75
- package/src/lib/list-import.js +43 -158
- package/src/lib/list-import.js.map +1 -1
- package/src/lib/model/email-topic-catalog.d.ts +24 -0
- package/src/lib/model/email-topic-catalog.js +19 -0
- package/src/lib/model/email-topic-catalog.js.map +1 -1
- package/src/lib/model/index.d.ts +0 -25
- package/src/lib/model/index.js +0 -27
- package/src/lib/model/index.js.map +1 -1
- package/src/lib/plugin.d.ts +8 -0
- package/src/lib/plugin.js +76 -2
- package/src/lib/plugin.js.map +1 -1
- package/src/lib/server/person-eraser.d.ts +39 -0
- package/src/lib/server/person-eraser.js +44 -0
- package/src/lib/server/person-eraser.js.map +1 -0
- package/src/lib/server-console.js +9 -9
- package/src/lib/server-console.js.map +1 -1
- package/src/lib/server-list-gate.d.ts +7 -0
- package/src/lib/server-list-gate.js +10 -3
- package/src/lib/server-list-gate.js.map +1 -1
- package/src/lib/server-list-import.d.ts +20 -177
- package/src/lib/server-list-import.js +34 -594
- package/src/lib/server-list-import.js.map +1 -1
- package/src/lib/server.js +16 -29
- package/src/lib/server.js.map +1 -1
- package/src/lib/testing/stand-in-send-tally.d.ts +29 -0
- package/src/lib/testing/stand-in-send-tally.js +52 -0
- package/src/lib/testing/stand-in-send-tally.js.map +1 -0
- package/src/lib/transfer/email-transfer-catalog.d.ts +151 -0
- package/src/lib/transfer/email-transfer-catalog.js +536 -0
- package/src/lib/transfer/email-transfer-catalog.js.map +1 -0
- package/src/lib/transfer/list-import-steps.d.ts +44 -0
- package/src/lib/transfer/list-import-steps.js +201 -0
- package/src/lib/transfer/list-import-steps.js.map +1 -0
- package/src/lib/transfer/list-members.server.d.ts +165 -0
- package/src/lib/transfer/list-members.server.js +911 -0
- package/src/lib/transfer/list-members.server.js.map +1 -0
- package/src/lib/transfer/suppressions.server.d.ts +69 -0
- package/src/lib/transfer/suppressions.server.js +282 -0
- package/src/lib/transfer/suppressions.server.js.map +1 -0
- package/src/lib/transfer/topics-package.d.ts +56 -0
- package/src/lib/transfer/topics-package.js +87 -0
- package/src/lib/transfer/topics-package.js.map +1 -0
- package/src/lib/transfer/topics-package.server.d.ts +33 -0
- package/src/lib/transfer/topics-package.server.js +171 -0
- package/src/lib/transfer/topics-package.server.js.map +1 -0
- package/src/lib/transfer/transfer-reads.server.d.ts +25 -0
- package/src/lib/transfer/transfer-reads.server.js +34 -0
- package/src/lib/transfer/transfer-reads.server.js.map +1 -0
- package/src/lib/components/list-import-drawer.d.ts +0 -22
- package/src/lib/components/list-import-drawer.js +0 -662
- package/src/lib/components/list-import-drawer.js.map +0 -1
- package/src/lib/model/template-report.d.ts +0 -158
- package/src/lib/model/template-report.js +0 -249
- package/src/lib/model/template-report.js.map +0 -1
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ This plugin owns email designs, the topic catalog, lists, sending identities and
|
|
|
35
35
|
|
|
36
36
|
- An **Emails** nav item and page at `/emails`, with the sections Messages, Templates, Audiences, Topics, Sending and Suppressions as routes. It requires the `data.manage` permission and is code-split.
|
|
37
37
|
- The same page at the organization level, `/[orgSlug]/emails` (an `orgNavItems` entry, served by the shell's generic org route to org-wide members). Audiences and topics are the organization's; messages, templates, sending identities and suppression lists are read site by site over a capped batch of sites, and every write that belongs to a site asks which one.
|
|
38
|
-
-
|
|
38
|
+
- Three zones this plugin hosts for the plugin that owns campaigns: the whole body of the Messages section (under a site, and on the organization's page with `hostId: null` and the org mount), what the emails sent from a template did (`emailTemplateReport`, on the template's page), and who received them (`emailTemplateRecipients`). This package draws none of them and reads no send.
|
|
39
39
|
- Five widgets drawn in zones the campaign owner's pages host: `campaignTopicSelect`, `campaignTopicOptions`, `campaignSenderEditor`, `campaignDesignCreate` and `campaignDesignPreview`. Each reports back through a callback; none writes a campaign.
|
|
40
40
|
|
|
41
41
|
### On the server
|
|
@@ -43,7 +43,8 @@ This plugin owns email designs, the topic catalog, lists, sending identities and
|
|
|
43
43
|
`@aglyn/plugins-email/server` imports `firebase-admin` and is kept out of the client entry point.
|
|
44
44
|
|
|
45
45
|
- `registerEmailApi()` (the `tenantApi` surface) registers the recipient-facing pages behind signed links: `email/unsubscribe`, `email/resubscribe`, `email/preferences` and `email/confirm`.
|
|
46
|
-
- `registerEmailConsoleApi()` (the `consoleApi` surface) registers list membership routes (`email/list-rule-preview`, `email/list-members-preview`, `email/list-members-add`), the
|
|
46
|
+
- `registerEmailConsoleApi()` (the `consoleApi` surface) registers list membership routes (`email/list-rule-preview`, `email/list-members-preview`, `email/list-members-add`), the list import's screening readout (`email/list-import-screening`), the suppression routes, and an email design draft writer on the core's resource-drafts seam.
|
|
47
|
+
- `registerEmailConsoleServerDeclarations()` (the `consoleServerDeclarations` surface) registers, among others, the plugin's two transfer resources: `email.list-members` (one list's members, imported into and exported from that list) and `email.suppressions` (a site's suppression list, import add-only). The console registrar registers their wizard halves, including the list import's own steps.
|
|
47
48
|
|
|
48
49
|
Routes are served by the host app's API dispatcher under `/api/`.
|
|
49
50
|
|
|
@@ -51,7 +52,7 @@ Routes are served by the host app's API dispatcher under `/api/`.
|
|
|
51
52
|
|
|
52
53
|
| import | contents |
|
|
53
54
|
| -- | -- |
|
|
54
|
-
| `@aglyn/plugins-email` | `BUNDLE_ID`, the email block components and their schemas, `registerEmailConsole`, the site half, and the model (
|
|
55
|
+
| `@aglyn/plugins-email` | `BUNDLE_ID`, the email block components and their schemas, `registerEmailConsole`, the site half, and the model (the renderer re-exports, template provenance and sending-domain status) |
|
|
55
56
|
| `@aglyn/plugins-email/site` | `registerEmailPlugin` and `EMAIL_BUNDLE` only, with no console code |
|
|
56
57
|
| `@aglyn/plugins-email/server` | `registerEmailApi`, `registerEmailConsoleApi` and the list handlers |
|
|
57
58
|
| `@aglyn/plugins-email/*` | any module under `src/lib/`. Console components are deep-imported from `@aglyn/plugins-email/components/...` and are deliberately not re-exported from the root |
|
|
@@ -79,7 +80,7 @@ registerEmailApi()
|
|
|
79
80
|
|
|
80
81
|
## How it fits
|
|
81
82
|
|
|
82
|
-
A plugin may import the tenant runtime, the renderer, the Besigner logic, the core and the shared packages. It never imports another plugin, and the core never imports a plugin. Email depends on `@aglyn/aglyn`, `@aglyn/tenant-data-admin`, `@aglyn/tenant-feature-instance` and `@aglyn/shared-*` packages, including `@aglyn/shared-
|
|
83
|
+
A plugin may import the tenant runtime, the renderer, the Besigner logic, the core and the shared packages. It never imports another plugin, and the core never imports a plugin. Email depends on `@aglyn/aglyn`, `@aglyn/tenant-data-admin`, `@aglyn/tenant-feature-instance` and `@aglyn/shared-*` packages, including `@aglyn/shared-util-email`. Its relationship with the marketing plugin runs entirely through plugin zones and widget slots registered with the core, so neither package imports the other.
|
|
83
84
|
|
|
84
85
|
## License
|
|
85
86
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aglyn/plugins-email",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.223",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"homepage": "https://aglyn.com",
|
|
6
6
|
"repository": {
|
|
@@ -25,22 +25,21 @@
|
|
|
25
25
|
"./package.json": "./package.json"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@aglyn/aglyn": "1.0.0-beta.
|
|
29
|
-
"@aglyn/shared-data-enums": "1.0.0-beta.
|
|
30
|
-
"@aglyn/shared-data-mdi": "1.0.0-beta.
|
|
31
|
-
"@aglyn/shared-data-types": "1.0.0-beta.
|
|
32
|
-
"@aglyn/shared-ui-
|
|
33
|
-
"@aglyn/shared-ui-jsx": "1.0.0-beta.
|
|
34
|
-
"@aglyn/shared-ui-
|
|
35
|
-
"@aglyn/shared-ui-
|
|
36
|
-
"@aglyn/shared-ui-
|
|
37
|
-
"@aglyn/shared-
|
|
38
|
-
"@aglyn/shared-util-
|
|
39
|
-
"@aglyn/shared-util-
|
|
40
|
-
"@aglyn/shared-util-
|
|
41
|
-
"@aglyn/
|
|
42
|
-
"@aglyn/tenant-
|
|
43
|
-
"@aglyn/tenant-feature-instance": "1.0.0-beta.221",
|
|
28
|
+
"@aglyn/aglyn": "1.0.0-beta.223",
|
|
29
|
+
"@aglyn/shared-data-enums": "1.0.0-beta.223",
|
|
30
|
+
"@aglyn/shared-data-mdi": "1.0.0-beta.223",
|
|
31
|
+
"@aglyn/shared-data-types": "1.0.0-beta.223",
|
|
32
|
+
"@aglyn/shared-ui-jsx": "1.0.0-beta.223",
|
|
33
|
+
"@aglyn/shared-ui-jsx-forms": "1.0.0-beta.223",
|
|
34
|
+
"@aglyn/shared-ui-next": "1.0.0-beta.223",
|
|
35
|
+
"@aglyn/shared-ui-snackstack": "1.0.0-beta.223",
|
|
36
|
+
"@aglyn/shared-ui-theme": "1.0.0-beta.223",
|
|
37
|
+
"@aglyn/shared-util-email": "1.0.0-beta.223",
|
|
38
|
+
"@aglyn/shared-util-http": "1.0.0-beta.223",
|
|
39
|
+
"@aglyn/shared-util-timestamp": "1.0.0-beta.223",
|
|
40
|
+
"@aglyn/shared-util-tools": "1.0.0-beta.223",
|
|
41
|
+
"@aglyn/tenant-data-admin": "1.0.0-beta.223",
|
|
42
|
+
"@aglyn/tenant-feature-instance": "1.0.0-beta.223",
|
|
44
43
|
"@swc/helpers": "0.5.23"
|
|
45
44
|
},
|
|
46
45
|
"peerDependencies": {
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* How many of a template's messages one read covers.
|
|
3
|
-
*
|
|
4
|
-
* A CEILING on the read, not a page size: the report is a single figure per
|
|
5
|
-
* quantity, so there is nothing to page through. Past it every total is a
|
|
6
|
-
* floor and the report says so — the same treatment `audienceSizeTruncated`
|
|
7
|
-
* gets, and for the same reason.
|
|
8
|
-
*/
|
|
9
|
-
export declare const TEMPLATE_CAMPAIGN_CEILING = 100;
|
|
10
1
|
export interface EmailTemplateDetailProps {
|
|
11
2
|
hostId: string;
|
|
12
3
|
/** The `kind: 'email'` screen document this page is about. */
|
|
@@ -36,10 +27,11 @@ export interface EmailTemplateDetailProps {
|
|
|
36
27
|
*
|
|
37
28
|
* ## What this page reads
|
|
38
29
|
*
|
|
39
|
-
* The screen document
|
|
40
|
-
* template
|
|
41
|
-
*
|
|
42
|
-
*
|
|
30
|
+
* The screen document and its published version. The messages sent from the
|
|
31
|
+
* template are a send's, and sends are the campaign owner's: this page hosts
|
|
32
|
+
* two zones that plugin fills — the report of what those messages did, and
|
|
33
|
+
* who received them — handing over the site, the template and this page's
|
|
34
|
+
* base path, and reads none of the sends itself (AGL-3080).
|
|
43
35
|
*/
|
|
44
36
|
export declare function EmailTemplateDetail(props: EmailTemplateDetailProps): import("react").JSX.Element;
|
|
45
37
|
export declare namespace EmailTemplateDetail {
|