@actuate-media/cms-core 0.61.0 → 0.63.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/CHANGELOG.md +25 -0
- package/dist/__tests__/api/email-settings-routes.test.d.ts +2 -0
- package/dist/__tests__/api/email-settings-routes.test.d.ts.map +1 -0
- package/dist/__tests__/api/email-settings-routes.test.js +240 -0
- package/dist/__tests__/api/email-settings-routes.test.js.map +1 -0
- package/dist/__tests__/api/field-values-routes.test.d.ts +2 -0
- package/dist/__tests__/api/field-values-routes.test.d.ts.map +1 -0
- package/dist/__tests__/api/field-values-routes.test.js +147 -0
- package/dist/__tests__/api/field-values-routes.test.js.map +1 -0
- package/dist/__tests__/api/route-contracts.test.js +5 -0
- package/dist/__tests__/api/route-contracts.test.js.map +1 -1
- package/dist/__tests__/collections/presets.test.js +24 -0
- package/dist/__tests__/collections/presets.test.js.map +1 -1
- package/dist/__tests__/email/resolve.test.d.ts +2 -0
- package/dist/__tests__/email/resolve.test.d.ts.map +1 -0
- package/dist/__tests__/email/resolve.test.js +90 -0
- package/dist/__tests__/email/resolve.test.js.map +1 -0
- package/dist/__tests__/email/settings-store.test.d.ts +2 -0
- package/dist/__tests__/email/settings-store.test.d.ts.map +1 -0
- package/dist/__tests__/email/settings-store.test.js +149 -0
- package/dist/__tests__/email/settings-store.test.js.map +1 -0
- package/dist/api/handlers.d.ts.map +1 -1
- package/dist/api/handlers.js +2 -0
- package/dist/api/handlers.js.map +1 -1
- package/dist/api/route-helpers.d.ts +6 -0
- package/dist/api/route-helpers.d.ts.map +1 -1
- package/dist/api/route-helpers.js +13 -0
- package/dist/api/route-helpers.js.map +1 -1
- package/dist/api/routes/documents.d.ts.map +1 -1
- package/dist/api/routes/documents.js +76 -0
- package/dist/api/routes/documents.js.map +1 -1
- package/dist/api/routes/email-settings.d.ts +3 -0
- package/dist/api/routes/email-settings.d.ts.map +1 -0
- package/dist/api/routes/email-settings.js +248 -0
- package/dist/api/routes/email-settings.js.map +1 -0
- package/dist/api/routes/users.js +3 -3
- package/dist/api/routes/users.js.map +1 -1
- package/dist/auth/invites.js +2 -2
- package/dist/auth/invites.js.map +1 -1
- package/dist/auth/reset.js +2 -2
- package/dist/auth/reset.js.map +1 -1
- package/dist/collections/presets.d.ts +8 -0
- package/dist/collections/presets.d.ts.map +1 -1
- package/dist/collections/presets.js +12 -3
- package/dist/collections/presets.js.map +1 -1
- package/dist/email/resolve.d.ts +27 -0
- package/dist/email/resolve.d.ts.map +1 -0
- package/dist/email/resolve.js +68 -0
- package/dist/email/resolve.js.map +1 -0
- package/dist/email/sender.d.ts +36 -0
- package/dist/email/sender.d.ts.map +1 -1
- package/dist/email/sender.js +16 -0
- package/dist/email/sender.js.map +1 -1
- package/dist/email/settings-store.d.ts +116 -0
- package/dist/email/settings-store.d.ts.map +1 -0
- package/dist/email/settings-store.js +222 -0
- package/dist/email/settings-store.js.map +1 -0
- package/dist/fields/index.d.ts +2 -1
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +1 -1
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/presets.d.ts +15 -0
- package/dist/fields/presets.d.ts.map +1 -1
- package/dist/fields/presets.js +32 -0
- package/dist/fields/presets.js.map +1 -1
- package/dist/forms/notify.js +3 -3
- package/dist/forms/notify.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/email/sender.d.ts
CHANGED
|
@@ -19,6 +19,31 @@
|
|
|
19
19
|
* once at boot (when the plugin factory runs) and read-only afterwards.
|
|
20
20
|
*/
|
|
21
21
|
import type { EmailAdapter } from '../config/types.js';
|
|
22
|
+
/**
|
|
23
|
+
* Decrypted provider settings handed to the plugin-registered factory when
|
|
24
|
+
* email is configured through Settings > Email (the `__email_config__` doc).
|
|
25
|
+
*/
|
|
26
|
+
export interface ResolvedEmailProviderSettings {
|
|
27
|
+
provider: 'resend' | 'smtpcom' | 'ses' | 'smtp';
|
|
28
|
+
from: string;
|
|
29
|
+
apiKey?: string;
|
|
30
|
+
channel?: string;
|
|
31
|
+
region?: string;
|
|
32
|
+
host?: string;
|
|
33
|
+
port?: number;
|
|
34
|
+
secure?: boolean;
|
|
35
|
+
auth?: {
|
|
36
|
+
user: string;
|
|
37
|
+
pass: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Builds a concrete sender from DB-configured settings. Registered by
|
|
42
|
+
* `@actuate-media/plugin-email` at boot (the provider implementations and
|
|
43
|
+
* their optional deps live in the plugin, not in core). Returns `null` when
|
|
44
|
+
* the settings are incomplete for the selected provider.
|
|
45
|
+
*/
|
|
46
|
+
export type EmailProviderFactory = (settings: ResolvedEmailProviderSettings) => EmailAdapter | null;
|
|
22
47
|
/**
|
|
23
48
|
* Register the process-wide transactional email sender. Called once at boot by
|
|
24
49
|
* the email plugin. Pass `null` to clear it (used in tests).
|
|
@@ -30,6 +55,17 @@ export declare function getRegisteredEmailSender(): EmailAdapter | null;
|
|
|
30
55
|
* Resolve the active transactional email sender, or `null` when email is not
|
|
31
56
|
* configured. Prefers an explicit `platform.email` adapter, then a
|
|
32
57
|
* plugin-registered sender.
|
|
58
|
+
*
|
|
59
|
+
* NOTE: this sync resolver does not see settings configured through the admin
|
|
60
|
+
* UI (Settings > Email). Send paths should prefer `resolveEmailSenderAsync()`
|
|
61
|
+
* from `email/resolve.js`, which checks the DB-backed config first.
|
|
33
62
|
*/
|
|
34
63
|
export declare function resolveEmailSender(): EmailAdapter | null;
|
|
64
|
+
/**
|
|
65
|
+
* Register the factory that turns DB-configured email settings into a sender.
|
|
66
|
+
* Called once at boot by the email plugin. Pass `null` to clear (tests).
|
|
67
|
+
*/
|
|
68
|
+
export declare function setEmailProviderFactory(factory: EmailProviderFactory | null): void;
|
|
69
|
+
/** The factory registered via {@link setEmailProviderFactory}, if any. */
|
|
70
|
+
export declare function getEmailProviderFactory(): EmailProviderFactory | null;
|
|
35
71
|
//# sourceMappingURL=sender.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../src/email/sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../src/email/sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAMtD;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,6BAA6B,KAAK,YAAY,GAAG,IAAI,CAAA;AAWnG;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAEhE;AAED,gEAAgE;AAChE,wBAAgB,wBAAwB,IAAI,YAAY,GAAG,IAAI,CAE9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,GAAG,IAAI,CAExD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAElF;AAED,0EAA0E;AAC1E,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,IAAI,CAErE"}
|
package/dist/email/sender.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getActuateConfig } from '../config/runtime.js';
|
|
2
2
|
const GLOBAL_KEY = '__actuateEmailSender';
|
|
3
|
+
const FACTORY_KEY = '__actuateEmailProviderFactory';
|
|
3
4
|
function store() {
|
|
4
5
|
return globalThis;
|
|
5
6
|
}
|
|
@@ -18,8 +19,23 @@ export function getRegisteredEmailSender() {
|
|
|
18
19
|
* Resolve the active transactional email sender, or `null` when email is not
|
|
19
20
|
* configured. Prefers an explicit `platform.email` adapter, then a
|
|
20
21
|
* plugin-registered sender.
|
|
22
|
+
*
|
|
23
|
+
* NOTE: this sync resolver does not see settings configured through the admin
|
|
24
|
+
* UI (Settings > Email). Send paths should prefer `resolveEmailSenderAsync()`
|
|
25
|
+
* from `email/resolve.js`, which checks the DB-backed config first.
|
|
21
26
|
*/
|
|
22
27
|
export function resolveEmailSender() {
|
|
23
28
|
return getActuateConfig()?.platform?.email ?? getRegisteredEmailSender();
|
|
24
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Register the factory that turns DB-configured email settings into a sender.
|
|
32
|
+
* Called once at boot by the email plugin. Pass `null` to clear (tests).
|
|
33
|
+
*/
|
|
34
|
+
export function setEmailProviderFactory(factory) {
|
|
35
|
+
store()[FACTORY_KEY] = factory;
|
|
36
|
+
}
|
|
37
|
+
/** The factory registered via {@link setEmailProviderFactory}, if any. */
|
|
38
|
+
export function getEmailProviderFactory() {
|
|
39
|
+
return store()[FACTORY_KEY] ?? null;
|
|
40
|
+
}
|
|
25
41
|
//# sourceMappingURL=sender.js.map
|
package/dist/email/sender.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sender.js","sourceRoot":"","sources":["../../src/email/sender.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,UAAU,GAAG,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"sender.js","sourceRoot":"","sources":["../../src/email/sender.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,UAAU,GAAG,sBAAsB,CAAA;AACzC,MAAM,WAAW,GAAG,+BAA+B,CAAA;AA+BnD,SAAS,KAAK;IACZ,OAAO,UAA0C,CAAA;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAA2B;IACxD,KAAK,EAAE,CAAC,UAAU,CAAC,GAAG,MAAM,CAAA;AAC9B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,wBAAwB;IACtC,OAAO,KAAK,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,CAAA;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,EAAE,EAAE,QAAQ,EAAE,KAAK,IAAI,wBAAwB,EAAE,CAAA;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAoC;IAC1E,KAAK,EAAE,CAAC,WAAW,CAAC,GAAG,OAAO,CAAA;AAChC,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,uBAAuB;IACrC,OAAO,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAA;AACrC,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DB-backed email delivery configuration store (Settings > Email).
|
|
3
|
+
*
|
|
4
|
+
* Storage: a single Document row with `collection = '__email_config__'`,
|
|
5
|
+
* mirroring the AI config-store pattern (`src/ai/config-store.ts`) so no
|
|
6
|
+
* Prisma migration is required.
|
|
7
|
+
*
|
|
8
|
+
* Security invariants:
|
|
9
|
+
* - API keys and SMTP passwords are encrypted at rest via `encryptSecret`.
|
|
10
|
+
* - Encrypted values are NEVER returned to the client; handlers serialize
|
|
11
|
+
* through {@link toPublicEmailConfig} (masked last-4 + has-flags only).
|
|
12
|
+
* - Sending with these settings requires the provider factory registered by
|
|
13
|
+
* `@actuate-media/plugin-email` (dependency direction stays plugin → core).
|
|
14
|
+
*/
|
|
15
|
+
import type { ResolvedEmailProviderSettings } from './sender.js';
|
|
16
|
+
export declare const EMAIL_CONFIG_COLLECTION = "__email_config__";
|
|
17
|
+
export declare const EMAIL_PROVIDER_KEYS: readonly ["resend", "smtpcom", "ses", "smtp"];
|
|
18
|
+
export type EmailProviderKey = (typeof EMAIL_PROVIDER_KEYS)[number];
|
|
19
|
+
export declare function isEmailProviderKey(value: unknown): value is EmailProviderKey;
|
|
20
|
+
export declare const EMAIL_PROVIDER_LABELS: Record<EmailProviderKey, string>;
|
|
21
|
+
/** Persisted shape of the `__email_config__` document (secrets encrypted). */
|
|
22
|
+
export interface EmailConfigDocument {
|
|
23
|
+
/** `null` = email is not configured through the admin UI. */
|
|
24
|
+
provider: EmailProviderKey | null;
|
|
25
|
+
/** Default sender address (e.g. `noreply@example.com`). */
|
|
26
|
+
from?: string;
|
|
27
|
+
/** Resend / SMTP.com API key (encrypted at rest). */
|
|
28
|
+
apiKeyEncrypted?: string;
|
|
29
|
+
apiKeyLast4?: string;
|
|
30
|
+
/** SMTP.com sender channel. */
|
|
31
|
+
channel?: string;
|
|
32
|
+
/** Amazon SES region (credentials come from the runtime's AWS env/role). */
|
|
33
|
+
region?: string;
|
|
34
|
+
/** Generic SMTP relay. */
|
|
35
|
+
host?: string;
|
|
36
|
+
port?: number;
|
|
37
|
+
secure?: boolean;
|
|
38
|
+
smtpUser?: string;
|
|
39
|
+
smtpPassEncrypted?: string;
|
|
40
|
+
/** Result of the most recent test send. */
|
|
41
|
+
lastTestStatus?: 'success' | 'failed';
|
|
42
|
+
lastTestedAt?: string;
|
|
43
|
+
lastTestError?: string;
|
|
44
|
+
updatedAt?: string;
|
|
45
|
+
updatedBy?: string;
|
|
46
|
+
}
|
|
47
|
+
/** Client-safe view: secrets stripped, replaced by masked metadata. */
|
|
48
|
+
export interface EmailConfigPublic {
|
|
49
|
+
provider: EmailProviderKey | null;
|
|
50
|
+
from?: string;
|
|
51
|
+
apiKeyLast4?: string;
|
|
52
|
+
hasApiKey: boolean;
|
|
53
|
+
channel?: string;
|
|
54
|
+
region?: string;
|
|
55
|
+
host?: string;
|
|
56
|
+
port?: number;
|
|
57
|
+
secure?: boolean;
|
|
58
|
+
smtpUser?: string;
|
|
59
|
+
hasSmtpPass: boolean;
|
|
60
|
+
lastTestStatus?: 'success' | 'failed';
|
|
61
|
+
lastTestedAt?: string;
|
|
62
|
+
lastTestError?: string;
|
|
63
|
+
updatedAt?: string;
|
|
64
|
+
updatedBy?: string;
|
|
65
|
+
}
|
|
66
|
+
/** Last 4 chars of a secret for masked display (never the full value). */
|
|
67
|
+
export declare function emailKeyLast4(key: string | undefined | null): string | undefined;
|
|
68
|
+
/** Read the email config document; `{ provider: null }` when none exists. */
|
|
69
|
+
export declare function getEmailConfig(db: unknown): Promise<EmailConfigDocument>;
|
|
70
|
+
/**
|
|
71
|
+
* Upsert the email config document. Caller is responsible for auth/role
|
|
72
|
+
* checks. Stamps `updatedAt`/`updatedBy`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function putEmailConfig(db: unknown, next: EmailConfigDocument, userId: string): Promise<EmailConfigDocument>;
|
|
75
|
+
/** Strip secret material for client serialization. */
|
|
76
|
+
export declare function toPublicEmailConfig(doc: EmailConfigDocument): EmailConfigPublic;
|
|
77
|
+
/**
|
|
78
|
+
* Decrypt the stored config into the plain settings consumed by the provider
|
|
79
|
+
* factory. Returns `null` when no provider is configured or when a required
|
|
80
|
+
* secret cannot be decrypted (wrong/missing `CMS_ENCRYPTION_KEY`) — callers
|
|
81
|
+
* fall back to the env-configured sender rather than sending with bad creds.
|
|
82
|
+
*/
|
|
83
|
+
export declare function resolveEmailProviderSettings(doc: EmailConfigDocument): Promise<ResolvedEmailProviderSettings | null>;
|
|
84
|
+
/** Encrypt a plaintext secret for storage with its masked suffix. */
|
|
85
|
+
export declare function encryptEmailSecret(plaintext: string): Promise<{
|
|
86
|
+
encrypted: string;
|
|
87
|
+
last4: string;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Which provider (if any) the environment variables currently configure.
|
|
91
|
+
* Mirrors `resolveEmailConfigFromEnv()` in `@actuate-media/plugin-email` so
|
|
92
|
+
* the Settings UI can tell admins what env-based config exists alongside the
|
|
93
|
+
* DB settings.
|
|
94
|
+
*/
|
|
95
|
+
export declare function detectEnvEmailProvider(env?: Record<string, string | undefined>): EmailProviderKey | null;
|
|
96
|
+
export interface EmailSettingsInput {
|
|
97
|
+
provider?: unknown;
|
|
98
|
+
from?: unknown;
|
|
99
|
+
apiKey?: unknown;
|
|
100
|
+
channel?: unknown;
|
|
101
|
+
region?: unknown;
|
|
102
|
+
host?: unknown;
|
|
103
|
+
port?: unknown;
|
|
104
|
+
secure?: unknown;
|
|
105
|
+
smtpUser?: unknown;
|
|
106
|
+
smtpPass?: unknown;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Validate a PUT payload against the selected provider's requirements.
|
|
110
|
+
* `hasStoredApiKey`/`hasStoredSmtpPass` let an update keep an existing secret
|
|
111
|
+
* without re-entering it (apiKey omitted = keep, null/'' = clear).
|
|
112
|
+
*/
|
|
113
|
+
export declare function validateEmailSettingsInput(input: EmailSettingsInput, stored: {
|
|
114
|
+
hasApiKey: boolean;
|
|
115
|
+
}): string | null;
|
|
116
|
+
//# sourceMappingURL=settings-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-store.d.ts","sourceRoot":"","sources":["../../src/email/settings-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DB-backed email delivery configuration store (Settings > Email).
|
|
3
|
+
*
|
|
4
|
+
* Storage: a single Document row with `collection = '__email_config__'`,
|
|
5
|
+
* mirroring the AI config-store pattern (`src/ai/config-store.ts`) so no
|
|
6
|
+
* Prisma migration is required.
|
|
7
|
+
*
|
|
8
|
+
* Security invariants:
|
|
9
|
+
* - API keys and SMTP passwords are encrypted at rest via `encryptSecret`.
|
|
10
|
+
* - Encrypted values are NEVER returned to the client; handlers serialize
|
|
11
|
+
* through {@link toPublicEmailConfig} (masked last-4 + has-flags only).
|
|
12
|
+
* - Sending with these settings requires the provider factory registered by
|
|
13
|
+
* `@actuate-media/plugin-email` (dependency direction stays plugin → core).
|
|
14
|
+
*/
|
|
15
|
+
import { decryptSecret, encryptSecret } from '../security/secret-storage.js';
|
|
16
|
+
export const EMAIL_CONFIG_COLLECTION = '__email_config__';
|
|
17
|
+
export const EMAIL_PROVIDER_KEYS = ['resend', 'smtpcom', 'ses', 'smtp'];
|
|
18
|
+
export function isEmailProviderKey(value) {
|
|
19
|
+
return typeof value === 'string' && EMAIL_PROVIDER_KEYS.includes(value);
|
|
20
|
+
}
|
|
21
|
+
export const EMAIL_PROVIDER_LABELS = {
|
|
22
|
+
resend: 'Resend',
|
|
23
|
+
smtpcom: 'SMTP.com',
|
|
24
|
+
ses: 'Amazon SES',
|
|
25
|
+
smtp: 'SMTP server',
|
|
26
|
+
};
|
|
27
|
+
const EMPTY = { provider: null };
|
|
28
|
+
/** Last 4 chars of a secret for masked display (never the full value). */
|
|
29
|
+
export function emailKeyLast4(key) {
|
|
30
|
+
if (!key)
|
|
31
|
+
return undefined;
|
|
32
|
+
const trimmed = key.trim();
|
|
33
|
+
return trimmed.length >= 4 ? trimmed.slice(-4) : trimmed;
|
|
34
|
+
}
|
|
35
|
+
/** Read the email config document; `{ provider: null }` when none exists. */
|
|
36
|
+
export async function getEmailConfig(db) {
|
|
37
|
+
const d = db;
|
|
38
|
+
if (!d?.document?.findFirst)
|
|
39
|
+
return { ...EMPTY };
|
|
40
|
+
try {
|
|
41
|
+
const doc = await d.document.findFirst({
|
|
42
|
+
where: { collection: EMAIL_CONFIG_COLLECTION, deletedAt: null },
|
|
43
|
+
select: { data: true },
|
|
44
|
+
});
|
|
45
|
+
if (!doc?.data || typeof doc.data !== 'object')
|
|
46
|
+
return { ...EMPTY };
|
|
47
|
+
const data = doc.data;
|
|
48
|
+
return {
|
|
49
|
+
...data,
|
|
50
|
+
provider: isEmailProviderKey(data.provider) ? data.provider : null,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return { ...EMPTY };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Upsert the email config document. Caller is responsible for auth/role
|
|
59
|
+
* checks. Stamps `updatedAt`/`updatedBy`.
|
|
60
|
+
*/
|
|
61
|
+
export async function putEmailConfig(db, next, userId) {
|
|
62
|
+
const d = db;
|
|
63
|
+
const data = {
|
|
64
|
+
...next,
|
|
65
|
+
updatedAt: new Date().toISOString(),
|
|
66
|
+
updatedBy: userId,
|
|
67
|
+
};
|
|
68
|
+
const existing = await d.document.findFirst({
|
|
69
|
+
where: { collection: EMAIL_CONFIG_COLLECTION, deletedAt: null },
|
|
70
|
+
select: { id: true },
|
|
71
|
+
});
|
|
72
|
+
if (existing) {
|
|
73
|
+
await d.document.update({ where: { id: existing.id }, data: { data, updatedById: userId } });
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
await d.document.create({
|
|
77
|
+
data: {
|
|
78
|
+
collection: EMAIL_CONFIG_COLLECTION,
|
|
79
|
+
data,
|
|
80
|
+
status: 'PUBLISHED',
|
|
81
|
+
title: 'Email settings',
|
|
82
|
+
slug: 'email-config',
|
|
83
|
+
createdById: userId,
|
|
84
|
+
updatedById: userId,
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return data;
|
|
89
|
+
}
|
|
90
|
+
/** Strip secret material for client serialization. */
|
|
91
|
+
export function toPublicEmailConfig(doc) {
|
|
92
|
+
const { apiKeyEncrypted: _key, smtpPassEncrypted: _pass, ...rest } = doc;
|
|
93
|
+
return {
|
|
94
|
+
...rest,
|
|
95
|
+
hasApiKey: Boolean(doc.apiKeyEncrypted),
|
|
96
|
+
hasSmtpPass: Boolean(doc.smtpPassEncrypted),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Decrypt the stored config into the plain settings consumed by the provider
|
|
101
|
+
* factory. Returns `null` when no provider is configured or when a required
|
|
102
|
+
* secret cannot be decrypted (wrong/missing `CMS_ENCRYPTION_KEY`) — callers
|
|
103
|
+
* fall back to the env-configured sender rather than sending with bad creds.
|
|
104
|
+
*/
|
|
105
|
+
export async function resolveEmailProviderSettings(doc) {
|
|
106
|
+
if (!doc.provider)
|
|
107
|
+
return null;
|
|
108
|
+
const from = doc.from?.trim();
|
|
109
|
+
if (!from)
|
|
110
|
+
return null;
|
|
111
|
+
try {
|
|
112
|
+
switch (doc.provider) {
|
|
113
|
+
case 'resend':
|
|
114
|
+
case 'smtpcom': {
|
|
115
|
+
if (!doc.apiKeyEncrypted)
|
|
116
|
+
return null;
|
|
117
|
+
const apiKey = await decryptSecret(doc.apiKeyEncrypted);
|
|
118
|
+
if (!apiKey)
|
|
119
|
+
return null;
|
|
120
|
+
return {
|
|
121
|
+
provider: doc.provider,
|
|
122
|
+
from,
|
|
123
|
+
apiKey,
|
|
124
|
+
...(doc.provider === 'smtpcom' && doc.channel ? { channel: doc.channel } : {}),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
case 'ses': {
|
|
128
|
+
if (!doc.region)
|
|
129
|
+
return null;
|
|
130
|
+
return { provider: 'ses', from, region: doc.region };
|
|
131
|
+
}
|
|
132
|
+
case 'smtp': {
|
|
133
|
+
if (!doc.host)
|
|
134
|
+
return null;
|
|
135
|
+
const pass = doc.smtpPassEncrypted ? await decryptSecret(doc.smtpPassEncrypted) : undefined;
|
|
136
|
+
return {
|
|
137
|
+
provider: 'smtp',
|
|
138
|
+
from,
|
|
139
|
+
host: doc.host,
|
|
140
|
+
port: doc.port,
|
|
141
|
+
secure: doc.secure,
|
|
142
|
+
auth: doc.smtpUser ? { user: doc.smtpUser, pass: pass ?? '' } : undefined,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/** Encrypt a plaintext secret for storage with its masked suffix. */
|
|
152
|
+
export async function encryptEmailSecret(plaintext) {
|
|
153
|
+
return { encrypted: await encryptSecret(plaintext), last4: emailKeyLast4(plaintext) ?? '' };
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Which provider (if any) the environment variables currently configure.
|
|
157
|
+
* Mirrors `resolveEmailConfigFromEnv()` in `@actuate-media/plugin-email` so
|
|
158
|
+
* the Settings UI can tell admins what env-based config exists alongside the
|
|
159
|
+
* DB settings.
|
|
160
|
+
*/
|
|
161
|
+
export function detectEnvEmailProvider(env = process.env) {
|
|
162
|
+
const explicit = env.EMAIL_PROVIDER;
|
|
163
|
+
if (isEmailProviderKey(explicit))
|
|
164
|
+
return explicit;
|
|
165
|
+
if (env.SMTP_HOST)
|
|
166
|
+
return 'smtp';
|
|
167
|
+
if (env.SMTPCOM_API_KEY ?? env.SMTP_KEY)
|
|
168
|
+
return 'smtpcom';
|
|
169
|
+
if (env.RESEND_API_KEY)
|
|
170
|
+
return 'resend';
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
174
|
+
const REGION_RE = /^[a-z]{2}(-[a-z]+)+-\d$/;
|
|
175
|
+
// Hostname only — no scheme, path, port suffix, or whitespace.
|
|
176
|
+
const HOST_RE = /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)+$/;
|
|
177
|
+
/**
|
|
178
|
+
* Validate a PUT payload against the selected provider's requirements.
|
|
179
|
+
* `hasStoredApiKey`/`hasStoredSmtpPass` let an update keep an existing secret
|
|
180
|
+
* without re-entering it (apiKey omitted = keep, null/'' = clear).
|
|
181
|
+
*/
|
|
182
|
+
export function validateEmailSettingsInput(input, stored) {
|
|
183
|
+
if (input.provider === null)
|
|
184
|
+
return null; // clearing the config is always valid
|
|
185
|
+
if (!isEmailProviderKey(input.provider)) {
|
|
186
|
+
return 'A valid `provider` is required (resend, smtpcom, ses, smtp) or null to disable.';
|
|
187
|
+
}
|
|
188
|
+
const from = typeof input.from === 'string' ? input.from.trim() : '';
|
|
189
|
+
if (!from || !EMAIL_RE.test(from)) {
|
|
190
|
+
return 'A valid sender address (`from`) is required, e.g. noreply@yoursite.com.';
|
|
191
|
+
}
|
|
192
|
+
const newKey = typeof input.apiKey === 'string' ? input.apiKey.trim() : '';
|
|
193
|
+
const keepsKey = input.apiKey === undefined && stored.hasApiKey;
|
|
194
|
+
switch (input.provider) {
|
|
195
|
+
case 'resend':
|
|
196
|
+
case 'smtpcom':
|
|
197
|
+
if (!newKey && !keepsKey)
|
|
198
|
+
return 'An API key is required for this provider.';
|
|
199
|
+
return null;
|
|
200
|
+
case 'ses': {
|
|
201
|
+
const region = typeof input.region === 'string' ? input.region.trim() : '';
|
|
202
|
+
if (!region || !REGION_RE.test(region)) {
|
|
203
|
+
return 'A valid AWS region is required, e.g. us-east-1.';
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
case 'smtp': {
|
|
208
|
+
const host = typeof input.host === 'string' ? input.host.trim() : '';
|
|
209
|
+
if (!host || !HOST_RE.test(host)) {
|
|
210
|
+
return 'A valid SMTP hostname is required, e.g. smtp.example.com.';
|
|
211
|
+
}
|
|
212
|
+
if (input.port !== undefined && input.port !== null) {
|
|
213
|
+
const port = Number(input.port);
|
|
214
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
215
|
+
return 'SMTP port must be an integer between 1 and 65535.';
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=settings-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../src/email/settings-store.ts"],"names":[],"mappings":"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"}
|
package/dist/fields/index.d.ts
CHANGED
|
@@ -12,7 +12,8 @@ export interface FieldTypeDefinition {
|
|
|
12
12
|
export declare const BUILT_IN_FIELDS: Record<string, FieldTypeDefinition>;
|
|
13
13
|
export declare function getFieldType(type: string): FieldTypeDefinition | undefined;
|
|
14
14
|
export declare function getAllFieldTypes(): FieldTypeDefinition[];
|
|
15
|
-
export { titleField, slugField, pagePathField, excerptField, richContentField, featuredImageField, tagsField, publishedDateField, authorField, quoteField, ctaField, seoFields, locationFields, geoFields, priceFields, relationField, relatedDocsField, } from './presets.js';
|
|
15
|
+
export { titleField, slugField, pagePathField, excerptField, richContentField, featuredImageField, categoryField, tagsField, publishedDateField, authorField, quoteField, ctaField, seoFields, locationFields, geoFields, priceFields, relationField, relatedDocsField, } from './presets.js';
|
|
16
16
|
export { collectRelationRefs, validateRelations, populateRelations, parsePopulateParam, } from './relations.js';
|
|
17
17
|
export type { RelationLookup, RelationSummary, PopulateOptions } from './relations.js';
|
|
18
|
+
export type { CategoryOption } from './presets.js';
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,CAAA;IACpE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAC1C;AAED,mEAAmE;AACnE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAmF/D,CAAA;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE1E;AAED,wBAAgB,gBAAgB,IAAI,mBAAmB,EAAE,CAExD;AAED,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,SAAS,EACT,WAAW,EACX,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,CAAA;IACpE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAC1C;AAED,mEAAmE;AACnE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAmF/D,CAAA;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE1E;AAED,wBAAgB,gBAAgB,IAAI,mBAAmB,EAAE,CAExD;AAED,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,SAAS,EACT,WAAW,EACX,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACtF,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/fields/index.js
CHANGED
|
@@ -90,6 +90,6 @@ export function getFieldType(type) {
|
|
|
90
90
|
export function getAllFieldTypes() {
|
|
91
91
|
return Object.values(BUILT_IN_FIELDS);
|
|
92
92
|
}
|
|
93
|
-
export { titleField, slugField, pagePathField, excerptField, richContentField, featuredImageField, tagsField, publishedDateField, authorField, quoteField, ctaField, seoFields, locationFields, geoFields, priceFields, relationField, relatedDocsField, } from './presets.js';
|
|
93
|
+
export { titleField, slugField, pagePathField, excerptField, richContentField, featuredImageField, categoryField, tagsField, publishedDateField, authorField, quoteField, ctaField, seoFields, locationFields, geoFields, priceFields, relationField, relatedDocsField, } from './presets.js';
|
|
94
94
|
export { collectRelationRefs, validateRelations, populateRelations, parsePopulateParam, } from './relations.js';
|
|
95
95
|
//# sourceMappingURL=index.js.map
|
package/dist/fields/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"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"}
|
package/dist/fields/presets.d.ts
CHANGED
|
@@ -66,6 +66,21 @@ export declare function featuredImageField(opts?: {
|
|
|
66
66
|
label?: string;
|
|
67
67
|
required?: boolean;
|
|
68
68
|
}): Record<string, FieldDefinition>;
|
|
69
|
+
/** One option for {@link categoryField} — a plain string becomes `{ label, value }`. */
|
|
70
|
+
export type CategoryOption = string | {
|
|
71
|
+
label: string;
|
|
72
|
+
value: string;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Editorial category. With `options` it becomes a `select` (structured
|
|
76
|
+
* vocabulary — the editor renders a dropdown instead of free text); without,
|
|
77
|
+
* it stays a free-text field for back-compat with existing sites.
|
|
78
|
+
*/
|
|
79
|
+
export declare function categoryField(opts?: {
|
|
80
|
+
label?: string;
|
|
81
|
+
options?: CategoryOption[];
|
|
82
|
+
required?: boolean;
|
|
83
|
+
}): Record<string, FieldDefinition>;
|
|
69
84
|
/** Tags (array of plain strings). */
|
|
70
85
|
export declare function tagsField(opts?: {
|
|
71
86
|
label?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/fields/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAIzD,uEAAuE;AACvE,wBAAgB,UAAU,CACxB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACtE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAUjC;AAED,mDAAmD;AACnD,wBAAgB,SAAS,CACvB,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/C,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAWjC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAChD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAajC;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAC1B,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAWjC;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/D,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAUjC;AAED,2BAA2B;AAC3B,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAChD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAYjC;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CACvB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAWjC;AAED,6BAA6B;AAC7B,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAYpE;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CACzB,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAmBjC;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CACxB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3C,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAUjC;AAED,uCAAuC;AACvC,wBAAgB,QAAQ,CACtB,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3C,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAejC;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CA4C3D;AAED,iEAAiE;AACjE,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CA6BhE;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAiB3D;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAgB7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GACA,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAcjC;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GACA,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAcjC"}
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/fields/presets.ts"],"names":[],"mappings":"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"}
|
package/dist/fields/presets.js
CHANGED
|
@@ -83,6 +83,38 @@ export function featuredImageField(opts = {}) {
|
|
|
83
83
|
},
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Editorial category. With `options` it becomes a `select` (structured
|
|
88
|
+
* vocabulary — the editor renders a dropdown instead of free text); without,
|
|
89
|
+
* it stays a free-text field for back-compat with existing sites.
|
|
90
|
+
*/
|
|
91
|
+
export function categoryField(opts = {}) {
|
|
92
|
+
if (opts.options && opts.options.length > 0) {
|
|
93
|
+
return {
|
|
94
|
+
category: {
|
|
95
|
+
type: 'select',
|
|
96
|
+
label: opts.label ?? 'Category',
|
|
97
|
+
required: opts.required,
|
|
98
|
+
options: opts.options.map((o) => typeof o === 'string' ? { label: o, value: slugifyOption(o) } : o),
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
category: {
|
|
104
|
+
type: 'text',
|
|
105
|
+
label: opts.label ?? 'Category',
|
|
106
|
+
required: opts.required,
|
|
107
|
+
maxLength: 80,
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function slugifyOption(label) {
|
|
112
|
+
return label
|
|
113
|
+
.toLowerCase()
|
|
114
|
+
.trim()
|
|
115
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
116
|
+
.replace(/^-+|-+$/g, '');
|
|
117
|
+
}
|
|
86
118
|
/** Tags (array of plain strings). */
|
|
87
119
|
export function tagsField(opts = {}) {
|
|
88
120
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/fields/presets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/fields/presets.ts"],"names":[],"mappings":"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"}
|
package/dist/forms/notify.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* before interpolation, so a value can never inject markup into the email.
|
|
13
13
|
*/
|
|
14
14
|
import { getActuateConfig } from '../config/runtime.js';
|
|
15
|
-
import {
|
|
15
|
+
import { resolveEmailSenderAsync } from '../email/resolve.js';
|
|
16
16
|
import { createLogger } from '../diagnostics/logger.js';
|
|
17
17
|
const logger = createLogger('forms-notify');
|
|
18
18
|
const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
@@ -135,7 +135,7 @@ export function buildAutoresponderEmail(settings, ctx) {
|
|
|
135
135
|
return { subject, html, text: stripTags(body) };
|
|
136
136
|
}
|
|
137
137
|
async function sendEmail(options) {
|
|
138
|
-
const email =
|
|
138
|
+
const email = await resolveEmailSenderAsync();
|
|
139
139
|
if (!email)
|
|
140
140
|
return false;
|
|
141
141
|
await email.send(options);
|
|
@@ -148,7 +148,7 @@ async function sendEmail(options) {
|
|
|
148
148
|
*/
|
|
149
149
|
export async function sendFormNotifications(settings, ctx) {
|
|
150
150
|
const result = { notified: 0, autoresponded: false };
|
|
151
|
-
if (!
|
|
151
|
+
if (!(await resolveEmailSenderAsync())) {
|
|
152
152
|
return { ...result, skippedReason: 'no-email-adapter' };
|
|
153
153
|
}
|
|
154
154
|
if (!settings?.enabled) {
|