payload-plugin-newsletter 0.3.2 → 0.4.5
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 +44 -1
- package/CLAUDE.md +31 -19
- package/dist/client.cjs +899 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +52 -0
- package/dist/client.d.ts +52 -0
- package/dist/client.js +867 -0
- package/dist/client.js.map +1 -0
- package/dist/components.cjs +899 -0
- package/dist/components.cjs.map +1 -0
- package/dist/components.d.cts +4 -0
- package/dist/components.d.ts +4 -0
- package/dist/components.js +867 -0
- package/dist/components.js.map +1 -0
- package/dist/index.cjs +2004 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +1967 -0
- package/dist/index.js.map +1 -0
- package/dist/types.cjs +19 -0
- package/dist/types.cjs.map +1 -0
- package/dist/{types/index.d.ts → types.d.cts} +19 -17
- package/dist/types.d.ts +350 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/package.json +48 -25
- package/dist/.tsbuildinfo +0 -1
- package/dist/collections/NewsletterSettings.d.ts +0 -4
- package/dist/collections/NewsletterSettings.d.ts.map +0 -1
- package/dist/collections/Subscribers.d.ts +0 -4
- package/dist/collections/Subscribers.d.ts.map +0 -1
- package/dist/components/MagicLinkVerify.d.ts +0 -27
- package/dist/components/MagicLinkVerify.d.ts.map +0 -1
- package/dist/components/NewsletterForm.d.ts +0 -5
- package/dist/components/NewsletterForm.d.ts.map +0 -1
- package/dist/components/PreferencesForm.d.ts +0 -5
- package/dist/components/PreferencesForm.d.ts.map +0 -1
- package/dist/components/index.d.ts +0 -5
- package/dist/components/index.d.ts.map +0 -1
- package/dist/endpoints/index.d.ts +0 -4
- package/dist/endpoints/index.d.ts.map +0 -1
- package/dist/endpoints/preferences.d.ts +0 -5
- package/dist/endpoints/preferences.d.ts.map +0 -1
- package/dist/endpoints/subscribe.d.ts +0 -4
- package/dist/endpoints/subscribe.d.ts.map +0 -1
- package/dist/endpoints/unsubscribe.d.ts +0 -4
- package/dist/endpoints/unsubscribe.d.ts.map +0 -1
- package/dist/endpoints/verify-magic-link.d.ts +0 -4
- package/dist/endpoints/verify-magic-link.d.ts.map +0 -1
- package/dist/exports/client.d.ts +0 -6
- package/dist/exports/client.d.ts.map +0 -1
- package/dist/exports/components.d.ts +0 -2
- package/dist/exports/components.d.ts.map +0 -1
- package/dist/exports/types.d.ts +0 -2
- package/dist/exports/types.d.ts.map +0 -1
- package/dist/fields/newsletterScheduling.d.ts +0 -4
- package/dist/fields/newsletterScheduling.d.ts.map +0 -1
- package/dist/hooks/useNewsletterAuth.d.ts +0 -16
- package/dist/hooks/useNewsletterAuth.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/providers/broadcast.d.ts +0 -19
- package/dist/providers/broadcast.d.ts.map +0 -1
- package/dist/providers/index.d.ts +0 -23
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/resend.d.ts +0 -20
- package/dist/providers/resend.d.ts.map +0 -1
- package/dist/providers/types.d.ts +0 -46
- package/dist/providers/types.d.ts.map +0 -1
- package/dist/src/__tests__/fixtures/newsletter-settings.js +0 -41
- package/dist/src/__tests__/fixtures/newsletter-settings.js.map +0 -1
- package/dist/src/__tests__/fixtures/subscribers.js +0 -70
- package/dist/src/__tests__/fixtures/subscribers.js.map +0 -1
- package/dist/src/__tests__/integration/collections/subscriber-hooks.test.js +0 -356
- package/dist/src/__tests__/integration/collections/subscriber-hooks.test.js.map +0 -1
- package/dist/src/__tests__/integration/endpoints/preferences.test.js +0 -266
- package/dist/src/__tests__/integration/endpoints/preferences.test.js.map +0 -1
- package/dist/src/__tests__/integration/endpoints/subscribe.test.js +0 -280
- package/dist/src/__tests__/integration/endpoints/subscribe.test.js.map +0 -1
- package/dist/src/__tests__/integration/endpoints/unsubscribe.test.js +0 -187
- package/dist/src/__tests__/integration/endpoints/unsubscribe.test.js.map +0 -1
- package/dist/src/__tests__/integration/endpoints/verify-magic-link.test.js +0 -188
- package/dist/src/__tests__/integration/endpoints/verify-magic-link.test.js.map +0 -1
- package/dist/src/__tests__/mocks/email-providers.js +0 -153
- package/dist/src/__tests__/mocks/email-providers.js.map +0 -1
- package/dist/src/__tests__/mocks/payload.js +0 -244
- package/dist/src/__tests__/mocks/payload.js.map +0 -1
- package/dist/src/__tests__/security/csrf-protection.test.js +0 -309
- package/dist/src/__tests__/security/csrf-protection.test.js.map +0 -1
- package/dist/src/__tests__/security/settings-access.test.js +0 -204
- package/dist/src/__tests__/security/settings-access.test.js.map +0 -1
- package/dist/src/__tests__/security/subscriber-access.test.js +0 -210
- package/dist/src/__tests__/security/subscriber-access.test.js.map +0 -1
- package/dist/src/__tests__/security/xss-prevention.test.js +0 -305
- package/dist/src/__tests__/security/xss-prevention.test.js.map +0 -1
- package/dist/src/__tests__/setup/integration.setup.js +0 -38
- package/dist/src/__tests__/setup/integration.setup.js.map +0 -1
- package/dist/src/__tests__/setup/unit.setup.js +0 -41
- package/dist/src/__tests__/setup/unit.setup.js.map +0 -1
- package/dist/src/__tests__/unit/utils/access.test.js +0 -116
- package/dist/src/__tests__/unit/utils/access.test.js.map +0 -1
- package/dist/src/__tests__/unit/utils/jwt.test.js +0 -238
- package/dist/src/__tests__/unit/utils/jwt.test.js.map +0 -1
- package/dist/src/collections/NewsletterSettings.js +0 -390
- package/dist/src/collections/NewsletterSettings.js.map +0 -1
- package/dist/src/collections/Subscribers.js +0 -309
- package/dist/src/collections/Subscribers.js.map +0 -1
- package/dist/src/components/MagicLinkVerify.js +0 -180
- package/dist/src/components/MagicLinkVerify.js.map +0 -1
- package/dist/src/components/NewsletterForm.js +0 -326
- package/dist/src/components/NewsletterForm.js.map +0 -1
- package/dist/src/components/PreferencesForm.js +0 -524
- package/dist/src/components/PreferencesForm.js.map +0 -1
- package/dist/src/components/index.js +0 -5
- package/dist/src/components/index.js.map +0 -1
- package/dist/src/endpoints/index.js +0 -17
- package/dist/src/endpoints/index.js.map +0 -1
- package/dist/src/endpoints/preferences.js +0 -136
- package/dist/src/endpoints/preferences.js.map +0 -1
- package/dist/src/endpoints/subscribe.js +0 -151
- package/dist/src/endpoints/subscribe.js.map +0 -1
- package/dist/src/endpoints/unsubscribe.js +0 -105
- package/dist/src/endpoints/unsubscribe.js.map +0 -1
- package/dist/src/endpoints/verify-magic-link.js +0 -103
- package/dist/src/endpoints/verify-magic-link.js.map +0 -1
- package/dist/src/exports/client.js +0 -7
- package/dist/src/exports/client.js.map +0 -1
- package/dist/src/exports/components.js +0 -6
- package/dist/src/exports/components.js.map +0 -1
- package/dist/src/exports/types.js +0 -3
- package/dist/src/exports/types.js.map +0 -1
- package/dist/src/fields/newsletterScheduling.js +0 -195
- package/dist/src/fields/newsletterScheduling.js.map +0 -1
- package/dist/src/hooks/useNewsletterAuth.js +0 -112
- package/dist/src/hooks/useNewsletterAuth.js.map +0 -1
- package/dist/src/index.js +0 -130
- package/dist/src/index.js.map +0 -1
- package/dist/src/providers/broadcast.js +0 -158
- package/dist/src/providers/broadcast.js.map +0 -1
- package/dist/src/providers/index.js +0 -63
- package/dist/src/providers/index.js.map +0 -1
- package/dist/src/providers/resend.js +0 -122
- package/dist/src/providers/resend.js.map +0 -1
- package/dist/src/providers/types.js +0 -12
- package/dist/src/providers/types.js.map +0 -1
- package/dist/src/templates/BaseTemplate.js +0 -105
- package/dist/src/templates/BaseTemplate.js.map +0 -1
- package/dist/src/templates/MagicLinkTemplate.js +0 -178
- package/dist/src/templates/MagicLinkTemplate.js.map +0 -1
- package/dist/src/templates/NewsletterTemplate.js +0 -150
- package/dist/src/templates/NewsletterTemplate.js.map +0 -1
- package/dist/src/templates/WelcomeTemplate.js +0 -192
- package/dist/src/templates/WelcomeTemplate.js.map +0 -1
- package/dist/src/templates/index.js +0 -6
- package/dist/src/templates/index.js.map +0 -1
- package/dist/src/types/index.js +0 -3
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/utils/access.js +0 -80
- package/dist/src/utils/access.js.map +0 -1
- package/dist/src/utils/jwt.js +0 -91
- package/dist/src/utils/jwt.js.map +0 -1
- package/dist/src/utils/validation.js +0 -74
- package/dist/src/utils/validation.js.map +0 -1
- package/dist/templates/BaseTemplate.d.ts +0 -45
- package/dist/templates/BaseTemplate.d.ts.map +0 -1
- package/dist/templates/MagicLinkTemplate.d.ts +0 -67
- package/dist/templates/MagicLinkTemplate.d.ts.map +0 -1
- package/dist/templates/NewsletterTemplate.d.ts +0 -112
- package/dist/templates/NewsletterTemplate.d.ts.map +0 -1
- package/dist/templates/WelcomeTemplate.d.ts +0 -55
- package/dist/templates/WelcomeTemplate.d.ts.map +0 -1
- package/dist/templates/index.d.ts +0 -7
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/utils/access.d.ts +0 -15
- package/dist/utils/access.d.ts.map +0 -1
- package/dist/utils/jwt.d.ts +0 -32
- package/dist/utils/jwt.d.ts.map +0 -1
- package/dist/utils/validation.d.ts +0 -25
- package/dist/utils/validation.d.ts.map +0 -1
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import DOMPurify from 'isomorphic-dompurify';
|
|
2
|
-
/**
|
|
3
|
-
* Validate email address format
|
|
4
|
-
*/ export function isValidEmail(email) {
|
|
5
|
-
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
6
|
-
return emailRegex.test(email);
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Check if email domain is allowed
|
|
10
|
-
*/ export function isDomainAllowed(email, allowedDomains) {
|
|
11
|
-
// If no domains specified, allow all
|
|
12
|
-
if (!allowedDomains || allowedDomains.length === 0) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
const domain = email.split('@')[1]?.toLowerCase();
|
|
16
|
-
if (!domain) return false;
|
|
17
|
-
return allowedDomains.some((allowedDomain)=>domain === allowedDomain.toLowerCase());
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Sanitize user input to prevent XSS
|
|
21
|
-
*/ export function sanitizeInput(input) {
|
|
22
|
-
if (!input) return '';
|
|
23
|
-
// Remove all HTML tags and scripts
|
|
24
|
-
const cleaned = DOMPurify.sanitize(input, {
|
|
25
|
-
ALLOWED_TAGS: [],
|
|
26
|
-
ALLOWED_ATTR: [],
|
|
27
|
-
KEEP_CONTENT: true
|
|
28
|
-
});
|
|
29
|
-
return cleaned.trim();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Extract UTM parameters from URL search params
|
|
33
|
-
*/ export function extractUTMParams(searchParams) {
|
|
34
|
-
const utmParams = {};
|
|
35
|
-
const utmKeys = [
|
|
36
|
-
'utm_source',
|
|
37
|
-
'utm_medium',
|
|
38
|
-
'utm_campaign',
|
|
39
|
-
'utm_content',
|
|
40
|
-
'utm_term'
|
|
41
|
-
];
|
|
42
|
-
utmKeys.forEach((key)=>{
|
|
43
|
-
const value = searchParams.get(key);
|
|
44
|
-
if (value) {
|
|
45
|
-
// Remove 'utm_' prefix for storage
|
|
46
|
-
const shortKey = key.replace('utm_', '');
|
|
47
|
-
utmParams[shortKey] = value;
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
return utmParams;
|
|
51
|
-
}
|
|
52
|
-
export function validateSubscriberData(data) {
|
|
53
|
-
const errors = [];
|
|
54
|
-
// Email validation
|
|
55
|
-
if (!data.email) {
|
|
56
|
-
errors.push('Email is required');
|
|
57
|
-
} else if (!isValidEmail(data.email)) {
|
|
58
|
-
errors.push('Invalid email format');
|
|
59
|
-
}
|
|
60
|
-
// Name validation (optional but if provided, should be reasonable)
|
|
61
|
-
if (data.name && data.name.length > 100) {
|
|
62
|
-
errors.push('Name is too long (max 100 characters)');
|
|
63
|
-
}
|
|
64
|
-
// Source validation
|
|
65
|
-
if (data.source && data.source.length > 50) {
|
|
66
|
-
errors.push('Source is too long (max 50 characters)');
|
|
67
|
-
}
|
|
68
|
-
return {
|
|
69
|
-
valid: errors.length === 0,
|
|
70
|
-
errors
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/validation.ts"],"sourcesContent":["import DOMPurify from 'isomorphic-dompurify'\n\n/**\n * Validate email address format\n */\nexport function isValidEmail(email: string): boolean {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n return emailRegex.test(email)\n}\n\n/**\n * Check if email domain is allowed\n */\nexport function isDomainAllowed(\n email: string,\n allowedDomains?: string[]\n): boolean {\n // If no domains specified, allow all\n if (!allowedDomains || allowedDomains.length === 0) {\n return true\n }\n\n const domain = email.split('@')[1]?.toLowerCase()\n if (!domain) return false\n\n return allowedDomains.some(\n allowedDomain => domain === allowedDomain.toLowerCase()\n )\n}\n\n/**\n * Sanitize user input to prevent XSS\n */\nexport function sanitizeInput(input: string): string {\n if (!input) return ''\n \n // Remove all HTML tags and scripts\n const cleaned = DOMPurify.sanitize(input, { \n ALLOWED_TAGS: [],\n ALLOWED_ATTR: [],\n KEEP_CONTENT: true\n })\n \n return cleaned.trim()\n}\n\n/**\n * Extract UTM parameters from URL search params\n */\nexport function extractUTMParams(searchParams: URLSearchParams): Record<string, string> {\n const utmParams: Record<string, string> = {}\n const utmKeys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term']\n\n utmKeys.forEach(key => {\n const value = searchParams.get(key)\n if (value) {\n // Remove 'utm_' prefix for storage\n const shortKey = key.replace('utm_', '')\n utmParams[shortKey] = value\n }\n })\n\n return utmParams\n}\n\n/**\n * Validate subscriber data before creation\n */\nexport interface ValidateSubscriberResult {\n valid: boolean\n errors: string[]\n}\n\nexport function validateSubscriberData(data: any): ValidateSubscriberResult {\n const errors: string[] = []\n\n // Email validation\n if (!data.email) {\n errors.push('Email is required')\n } else if (!isValidEmail(data.email)) {\n errors.push('Invalid email format')\n }\n\n // Name validation (optional but if provided, should be reasonable)\n if (data.name && data.name.length > 100) {\n errors.push('Name is too long (max 100 characters)')\n }\n\n // Source validation\n if (data.source && data.source.length > 50) {\n errors.push('Source is too long (max 50 characters)')\n }\n\n return {\n valid: errors.length === 0,\n errors,\n }\n}"],"names":["DOMPurify","isValidEmail","email","emailRegex","test","isDomainAllowed","allowedDomains","length","domain","split","toLowerCase","some","allowedDomain","sanitizeInput","input","cleaned","sanitize","ALLOWED_TAGS","ALLOWED_ATTR","KEEP_CONTENT","trim","extractUTMParams","searchParams","utmParams","utmKeys","forEach","key","value","get","shortKey","replace","validateSubscriberData","data","errors","push","name","source","valid"],"mappings":"AAAA,OAAOA,eAAe,uBAAsB;AAE5C;;CAEC,GACD,OAAO,SAASC,aAAaC,KAAa;IACxC,MAAMC,aAAa;IACnB,OAAOA,WAAWC,IAAI,CAACF;AACzB;AAEA;;CAEC,GACD,OAAO,SAASG,gBACdH,KAAa,EACbI,cAAyB;IAEzB,qCAAqC;IACrC,IAAI,CAACA,kBAAkBA,eAAeC,MAAM,KAAK,GAAG;QAClD,OAAO;IACT;IAEA,MAAMC,SAASN,MAAMO,KAAK,CAAC,IAAI,CAAC,EAAE,EAAEC;IACpC,IAAI,CAACF,QAAQ,OAAO;IAEpB,OAAOF,eAAeK,IAAI,CACxBC,CAAAA,gBAAiBJ,WAAWI,cAAcF,WAAW;AAEzD;AAEA;;CAEC,GACD,OAAO,SAASG,cAAcC,KAAa;IACzC,IAAI,CAACA,OAAO,OAAO;IAEnB,mCAAmC;IACnC,MAAMC,UAAUf,UAAUgB,QAAQ,CAACF,OAAO;QACxCG,cAAc,EAAE;QAChBC,cAAc,EAAE;QAChBC,cAAc;IAChB;IAEA,OAAOJ,QAAQK,IAAI;AACrB;AAEA;;CAEC,GACD,OAAO,SAASC,iBAAiBC,YAA6B;IAC5D,MAAMC,YAAoC,CAAC;IAC3C,MAAMC,UAAU;QAAC;QAAc;QAAc;QAAgB;QAAe;KAAW;IAEvFA,QAAQC,OAAO,CAACC,CAAAA;QACd,MAAMC,QAAQL,aAAaM,GAAG,CAACF;QAC/B,IAAIC,OAAO;YACT,mCAAmC;YACnC,MAAME,WAAWH,IAAII,OAAO,CAAC,QAAQ;YACrCP,SAAS,CAACM,SAAS,GAAGF;QACxB;IACF;IAEA,OAAOJ;AACT;AAUA,OAAO,SAASQ,uBAAuBC,IAAS;IAC9C,MAAMC,SAAmB,EAAE;IAE3B,mBAAmB;IACnB,IAAI,CAACD,KAAK9B,KAAK,EAAE;QACf+B,OAAOC,IAAI,CAAC;IACd,OAAO,IAAI,CAACjC,aAAa+B,KAAK9B,KAAK,GAAG;QACpC+B,OAAOC,IAAI,CAAC;IACd;IAEA,mEAAmE;IACnE,IAAIF,KAAKG,IAAI,IAAIH,KAAKG,IAAI,CAAC5B,MAAM,GAAG,KAAK;QACvC0B,OAAOC,IAAI,CAAC;IACd;IAEA,oBAAoB;IACpB,IAAIF,KAAKI,MAAM,IAAIJ,KAAKI,MAAM,CAAC7B,MAAM,GAAG,IAAI;QAC1C0B,OAAOC,IAAI,CAAC;IACd;IAEA,OAAO;QACLG,OAAOJ,OAAO1B,MAAM,KAAK;QACzB0B;IACF;AACF"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface BaseTemplateProps {
|
|
3
|
-
preview?: string;
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
footer?: {
|
|
6
|
-
unsubscribeUrl?: string;
|
|
7
|
-
preferencesUrl?: string;
|
|
8
|
-
address?: string;
|
|
9
|
-
copyright?: string;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export declare const baseStyles: {
|
|
13
|
-
main: {
|
|
14
|
-
backgroundColor: string;
|
|
15
|
-
fontFamily: string;
|
|
16
|
-
};
|
|
17
|
-
container: {
|
|
18
|
-
margin: string;
|
|
19
|
-
padding: string;
|
|
20
|
-
maxWidth: string;
|
|
21
|
-
};
|
|
22
|
-
content: {
|
|
23
|
-
padding: string;
|
|
24
|
-
};
|
|
25
|
-
footer: {
|
|
26
|
-
padding: string;
|
|
27
|
-
textAlign: "center";
|
|
28
|
-
};
|
|
29
|
-
footerText: {
|
|
30
|
-
color: string;
|
|
31
|
-
fontSize: string;
|
|
32
|
-
lineHeight: string;
|
|
33
|
-
margin: string;
|
|
34
|
-
};
|
|
35
|
-
footerLink: {
|
|
36
|
-
color: string;
|
|
37
|
-
textDecoration: string;
|
|
38
|
-
};
|
|
39
|
-
hr: {
|
|
40
|
-
borderColor: string;
|
|
41
|
-
margin: string;
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
export declare const BaseTemplate: React.FC<BaseTemplateProps>;
|
|
45
|
-
//# sourceMappingURL=BaseTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/BaseTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCtB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6DpD,CAAA"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { MagicLinkEmailProps } from '../types';
|
|
3
|
-
declare const magicLinkStyles: {
|
|
4
|
-
heading: {
|
|
5
|
-
fontSize: string;
|
|
6
|
-
fontWeight: string;
|
|
7
|
-
color: string;
|
|
8
|
-
margin: string;
|
|
9
|
-
};
|
|
10
|
-
text: {
|
|
11
|
-
fontSize: string;
|
|
12
|
-
lineHeight: string;
|
|
13
|
-
color: string;
|
|
14
|
-
margin: string;
|
|
15
|
-
};
|
|
16
|
-
button: {
|
|
17
|
-
backgroundColor: string;
|
|
18
|
-
borderRadius: string;
|
|
19
|
-
color: string;
|
|
20
|
-
fontSize: string;
|
|
21
|
-
fontWeight: string;
|
|
22
|
-
textDecoration: string;
|
|
23
|
-
textAlign: "center";
|
|
24
|
-
display: string;
|
|
25
|
-
width: string;
|
|
26
|
-
padding: string;
|
|
27
|
-
margin: string;
|
|
28
|
-
};
|
|
29
|
-
codeSection: {
|
|
30
|
-
backgroundColor: string;
|
|
31
|
-
borderRadius: string;
|
|
32
|
-
padding: string;
|
|
33
|
-
margin: string;
|
|
34
|
-
textAlign: "center";
|
|
35
|
-
};
|
|
36
|
-
code: {
|
|
37
|
-
fontSize: string;
|
|
38
|
-
fontWeight: string;
|
|
39
|
-
color: string;
|
|
40
|
-
letterSpacing: string;
|
|
41
|
-
fontFamily: string;
|
|
42
|
-
};
|
|
43
|
-
warning: {
|
|
44
|
-
fontSize: string;
|
|
45
|
-
color: string;
|
|
46
|
-
margin: string;
|
|
47
|
-
padding: string;
|
|
48
|
-
backgroundColor: string;
|
|
49
|
-
borderRadius: string;
|
|
50
|
-
};
|
|
51
|
-
expire: {
|
|
52
|
-
fontSize: string;
|
|
53
|
-
color: string;
|
|
54
|
-
fontStyle: string;
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
export declare const MagicLinkTemplate: React.FC<MagicLinkEmailProps>;
|
|
58
|
-
export declare function createMagicLinkTemplate(customContent?: {
|
|
59
|
-
heading?: string;
|
|
60
|
-
intro?: string;
|
|
61
|
-
buttonText?: string;
|
|
62
|
-
warning?: string;
|
|
63
|
-
expireText?: string;
|
|
64
|
-
includeCode?: boolean;
|
|
65
|
-
}, customStyles?: Partial<typeof magicLinkStyles>): React.FC<MagicLinkEmailProps>;
|
|
66
|
-
export {};
|
|
67
|
-
//# sourceMappingURL=MagicLinkTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MagicLinkTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/MagicLinkTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnD,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDpB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkD3D,CAAA;AAGD,wBAAgB,uBAAuB,CACrC,aAAa,CAAC,EAAE;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,EACD,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,eAAe,CAAC,GAC7C,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAuD/B"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface NewsletterTemplateProps {
|
|
3
|
-
subject: string;
|
|
4
|
-
preheader?: string;
|
|
5
|
-
title?: string;
|
|
6
|
-
content: string;
|
|
7
|
-
ctaButton?: {
|
|
8
|
-
text: string;
|
|
9
|
-
href: string;
|
|
10
|
-
};
|
|
11
|
-
footer?: {
|
|
12
|
-
unsubscribeUrl?: string;
|
|
13
|
-
preferencesUrl?: string;
|
|
14
|
-
address?: string;
|
|
15
|
-
copyright?: string;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
declare const newsletterStyles: {
|
|
19
|
-
heading: {
|
|
20
|
-
fontSize: string;
|
|
21
|
-
fontWeight: string;
|
|
22
|
-
color: string;
|
|
23
|
-
margin: string;
|
|
24
|
-
};
|
|
25
|
-
markdown: {
|
|
26
|
-
h1: {
|
|
27
|
-
fontSize: string;
|
|
28
|
-
fontWeight: string;
|
|
29
|
-
color: string;
|
|
30
|
-
margin: string;
|
|
31
|
-
};
|
|
32
|
-
h2: {
|
|
33
|
-
fontSize: string;
|
|
34
|
-
fontWeight: string;
|
|
35
|
-
color: string;
|
|
36
|
-
margin: string;
|
|
37
|
-
};
|
|
38
|
-
h3: {
|
|
39
|
-
fontSize: string;
|
|
40
|
-
fontWeight: string;
|
|
41
|
-
color: string;
|
|
42
|
-
margin: string;
|
|
43
|
-
};
|
|
44
|
-
p: {
|
|
45
|
-
fontSize: string;
|
|
46
|
-
lineHeight: string;
|
|
47
|
-
color: string;
|
|
48
|
-
margin: string;
|
|
49
|
-
};
|
|
50
|
-
a: {
|
|
51
|
-
color: string;
|
|
52
|
-
textDecoration: string;
|
|
53
|
-
};
|
|
54
|
-
ul: {
|
|
55
|
-
paddingLeft: string;
|
|
56
|
-
margin: string;
|
|
57
|
-
};
|
|
58
|
-
ol: {
|
|
59
|
-
paddingLeft: string;
|
|
60
|
-
margin: string;
|
|
61
|
-
};
|
|
62
|
-
li: {
|
|
63
|
-
fontSize: string;
|
|
64
|
-
lineHeight: string;
|
|
65
|
-
color: string;
|
|
66
|
-
marginBottom: string;
|
|
67
|
-
};
|
|
68
|
-
img: {
|
|
69
|
-
maxWidth: string;
|
|
70
|
-
height: string;
|
|
71
|
-
margin: string;
|
|
72
|
-
};
|
|
73
|
-
blockquote: {
|
|
74
|
-
borderLeft: string;
|
|
75
|
-
paddingLeft: string;
|
|
76
|
-
margin: string;
|
|
77
|
-
fontStyle: string;
|
|
78
|
-
color: string;
|
|
79
|
-
};
|
|
80
|
-
code: {
|
|
81
|
-
backgroundColor: string;
|
|
82
|
-
padding: string;
|
|
83
|
-
borderRadius: string;
|
|
84
|
-
fontFamily: string;
|
|
85
|
-
fontSize: string;
|
|
86
|
-
};
|
|
87
|
-
pre: {
|
|
88
|
-
backgroundColor: string;
|
|
89
|
-
padding: string;
|
|
90
|
-
borderRadius: string;
|
|
91
|
-
overflow: string;
|
|
92
|
-
margin: string;
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
button: {
|
|
96
|
-
backgroundColor: string;
|
|
97
|
-
borderRadius: string;
|
|
98
|
-
color: string;
|
|
99
|
-
fontSize: string;
|
|
100
|
-
fontWeight: string;
|
|
101
|
-
textDecoration: string;
|
|
102
|
-
textAlign: "center";
|
|
103
|
-
display: string;
|
|
104
|
-
width: string;
|
|
105
|
-
padding: string;
|
|
106
|
-
margin: string;
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
export declare const NewsletterTemplate: React.FC<NewsletterTemplateProps>;
|
|
110
|
-
export declare function createNewsletterTemplate(customStyles?: Partial<typeof newsletterStyles>): React.FC<NewsletterTemplateProps>;
|
|
111
|
-
export {};
|
|
112
|
-
//# sourceMappingURL=NewsletterTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NewsletterTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/NewsletterTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,MAAM,CAAC,EAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0FrB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAsChE,CAAA;AAGD,wBAAgB,wBAAwB,CACtC,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,gBAAgB,CAAC,GAC9C,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAoCnC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { WelcomeEmailProps } from '../types';
|
|
3
|
-
declare const welcomeStyles: {
|
|
4
|
-
heading: {
|
|
5
|
-
fontSize: string;
|
|
6
|
-
fontWeight: string;
|
|
7
|
-
color: string;
|
|
8
|
-
margin: string;
|
|
9
|
-
};
|
|
10
|
-
subheading: {
|
|
11
|
-
fontSize: string;
|
|
12
|
-
fontWeight: string;
|
|
13
|
-
color: string;
|
|
14
|
-
margin: string;
|
|
15
|
-
};
|
|
16
|
-
text: {
|
|
17
|
-
fontSize: string;
|
|
18
|
-
lineHeight: string;
|
|
19
|
-
color: string;
|
|
20
|
-
margin: string;
|
|
21
|
-
};
|
|
22
|
-
button: {
|
|
23
|
-
backgroundColor: string;
|
|
24
|
-
borderRadius: string;
|
|
25
|
-
color: string;
|
|
26
|
-
fontSize: string;
|
|
27
|
-
fontWeight: string;
|
|
28
|
-
textDecoration: string;
|
|
29
|
-
textAlign: "center";
|
|
30
|
-
display: string;
|
|
31
|
-
width: string;
|
|
32
|
-
padding: string;
|
|
33
|
-
margin: string;
|
|
34
|
-
};
|
|
35
|
-
list: {
|
|
36
|
-
paddingLeft: string;
|
|
37
|
-
margin: string;
|
|
38
|
-
};
|
|
39
|
-
listItem: {
|
|
40
|
-
fontSize: string;
|
|
41
|
-
lineHeight: string;
|
|
42
|
-
color: string;
|
|
43
|
-
marginBottom: string;
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
export declare const WelcomeTemplate: React.FC<WelcomeEmailProps>;
|
|
47
|
-
export declare function createWelcomeTemplate(customContent?: {
|
|
48
|
-
heading?: string;
|
|
49
|
-
intro?: string;
|
|
50
|
-
features?: string[];
|
|
51
|
-
ctaText?: string;
|
|
52
|
-
closing?: string;
|
|
53
|
-
}, customStyles?: Partial<typeof welcomeStyles>): React.FC<WelcomeEmailProps>;
|
|
54
|
-
export {};
|
|
55
|
-
//# sourceMappingURL=WelcomeTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WelcomeTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/WelcomeTemplate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ClB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkEvD,CAAA;AAGD,wBAAgB,qBAAqB,CACnC,aAAa,CAAC,EAAE;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,EACD,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,GAC3C,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAmE7B"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { BaseTemplate, baseStyles } from './BaseTemplate';
|
|
2
|
-
export type { BaseTemplateProps } from './BaseTemplate';
|
|
3
|
-
export { NewsletterTemplate, createNewsletterTemplate } from './NewsletterTemplate';
|
|
4
|
-
export type { NewsletterTemplateProps } from './NewsletterTemplate';
|
|
5
|
-
export { WelcomeTemplate, createWelcomeTemplate } from './WelcomeTemplate';
|
|
6
|
-
export { MagicLinkTemplate, createMagicLinkTemplate } from './MagicLinkTemplate';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AACnF,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE1E,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/access.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { Access } from 'payload';
|
|
2
|
-
import type { NewsletterPluginConfig } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* Check if a user is an admin based on the plugin configuration
|
|
5
|
-
*/
|
|
6
|
-
export declare const isAdmin: (user: any, config?: NewsletterPluginConfig) => boolean;
|
|
7
|
-
/**
|
|
8
|
-
* Create admin-only access control
|
|
9
|
-
*/
|
|
10
|
-
export declare const adminOnly: (config?: NewsletterPluginConfig) => Access;
|
|
11
|
-
/**
|
|
12
|
-
* Create admin or owner access control
|
|
13
|
-
*/
|
|
14
|
-
export declare const adminOrSelf: (config?: NewsletterPluginConfig) => Access;
|
|
15
|
-
//# sourceMappingURL=access.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/utils/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,GAAG,EAAE,SAAS,sBAAsB,KAAG,OAgCpE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,sBAAsB,KAAG,MAIzD,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,sBAAsB,KAAG,MA6C3D,CAAA"}
|
package/dist/utils/jwt.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { NewsletterPluginConfig } from '../types';
|
|
2
|
-
export interface MagicLinkTokenPayload {
|
|
3
|
-
subscriberId: string;
|
|
4
|
-
email: string;
|
|
5
|
-
type: 'magic-link';
|
|
6
|
-
}
|
|
7
|
-
export interface SessionTokenPayload {
|
|
8
|
-
subscriberId: string;
|
|
9
|
-
email: string;
|
|
10
|
-
type: 'session';
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Generate a magic link token for email authentication
|
|
14
|
-
*/
|
|
15
|
-
export declare function generateMagicLinkToken(subscriberId: string, email: string, config: NewsletterPluginConfig): string;
|
|
16
|
-
/**
|
|
17
|
-
* Verify a magic link token
|
|
18
|
-
*/
|
|
19
|
-
export declare function verifyMagicLinkToken(token: string): MagicLinkTokenPayload;
|
|
20
|
-
/**
|
|
21
|
-
* Generate a session token after successful magic link verification
|
|
22
|
-
*/
|
|
23
|
-
export declare function generateSessionToken(subscriberId: string, email: string): string;
|
|
24
|
-
/**
|
|
25
|
-
* Verify a session token
|
|
26
|
-
*/
|
|
27
|
-
export declare function verifySessionToken(token: string): SessionTokenPayload;
|
|
28
|
-
/**
|
|
29
|
-
* Generate a magic link URL
|
|
30
|
-
*/
|
|
31
|
-
export declare function generateMagicLinkURL(token: string, baseURL: string, config: NewsletterPluginConfig): string;
|
|
32
|
-
//# sourceMappingURL=jwt.d.ts.map
|
package/dist/utils/jwt.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,YAAY,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;CAChB;AAqBD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAoBzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAoBrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAKR"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validate email address format
|
|
3
|
-
*/
|
|
4
|
-
export declare function isValidEmail(email: string): boolean;
|
|
5
|
-
/**
|
|
6
|
-
* Check if email domain is allowed
|
|
7
|
-
*/
|
|
8
|
-
export declare function isDomainAllowed(email: string, allowedDomains?: string[]): boolean;
|
|
9
|
-
/**
|
|
10
|
-
* Sanitize user input to prevent XSS
|
|
11
|
-
*/
|
|
12
|
-
export declare function sanitizeInput(input: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Extract UTM parameters from URL search params
|
|
15
|
-
*/
|
|
16
|
-
export declare function extractUTMParams(searchParams: URLSearchParams): Record<string, string>;
|
|
17
|
-
/**
|
|
18
|
-
* Validate subscriber data before creation
|
|
19
|
-
*/
|
|
20
|
-
export interface ValidateSubscriberResult {
|
|
21
|
-
valid: boolean;
|
|
22
|
-
errors: string[];
|
|
23
|
-
}
|
|
24
|
-
export declare function validateSubscriberData(data: any): ValidateSubscriberResult;
|
|
25
|
-
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,OAAO,CAYT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CActF;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,wBAAwB,CAwB1E"}
|