@brandlab-digital/site-core 0.1.0-alpha.19 → 0.1.0-alpha.2
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/analytics.d.ts +1 -30
- package/dist/analytics.d.ts.map +1 -1
- package/dist/analytics.js +0 -119
- package/dist/analytics.js.map +1 -1
- package/dist/contact.d.ts +30 -79
- package/dist/contact.d.ts.map +1 -1
- package/dist/contact.js +1 -189
- package/dist/contact.js.map +1 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +1 -7
- package/dist/metadata.js.map +1 -1
- package/dist/schema.d.ts +0 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +0 -10
- package/dist/schema.js.map +1 -1
- package/dist/sitemaps.d.ts +0 -13
- package/dist/sitemaps.d.ts.map +1 -1
- package/dist/sitemaps.js +0 -23
- package/dist/sitemaps.js.map +1 -1
- package/package.json +2 -20
- package/dist/geography.d.ts +0 -20
- package/dist/geography.d.ts.map +0 -1
- package/dist/geography.js +0 -6708
- package/dist/geography.js.map +0 -1
- package/dist/google-reviews.d.ts +0 -89
- package/dist/google-reviews.d.ts.map +0 -1
- package/dist/google-reviews.js +0 -131
- package/dist/google-reviews.js.map +0 -1
- package/dist/locations.d.ts +0 -169
- package/dist/locations.d.ts.map +0 -1
- package/dist/locations.js +0 -198
- package/dist/locations.js.map +0 -1
- package/dist/rich-text.d.ts +0 -8
- package/dist/rich-text.d.ts.map +0 -1
- package/dist/rich-text.js +0 -34
- package/dist/rich-text.js.map +0 -1
package/dist/analytics.d.ts
CHANGED
|
@@ -1,24 +1,8 @@
|
|
|
1
1
|
export declare const CANONICAL_LEAD_EVENTS: readonly ["phone_call", "contact_form"];
|
|
2
2
|
export type CanonicalLeadEvent = (typeof CANONICAL_LEAD_EVENTS)[number];
|
|
3
|
-
export type GtagTransport = (command: 'event'
|
|
4
|
-
export interface EnhancedConversionUserData {
|
|
5
|
-
email?: string | null;
|
|
6
|
-
phone?: string | null;
|
|
7
|
-
}
|
|
8
|
-
export interface GoogleTagEnhancedConversionUserData extends Record<string, unknown> {
|
|
9
|
-
email: string;
|
|
10
|
-
phone_number?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface ContactFormConversionResult {
|
|
13
|
-
ga4Sent: boolean;
|
|
14
|
-
enhancedConversionSent: boolean;
|
|
15
|
-
adsConversionSent: boolean;
|
|
16
|
-
}
|
|
3
|
+
export type GtagTransport = (command: 'event', eventName: string, params: Record<string, unknown>) => void;
|
|
17
4
|
export declare function isCanonicalLeadEvent(value: string): value is CanonicalLeadEvent;
|
|
18
5
|
export declare function normalizeGoogleAdsConversionId(conversionId: string): string;
|
|
19
|
-
export declare function normalizeEnhancedConversionEmail(email: string | null | undefined): string | undefined;
|
|
20
|
-
export declare function normalizeEnhancedConversionPhone(phone: string | null | undefined): string | undefined;
|
|
21
|
-
export declare function buildEnhancedConversionUserData(userData: EnhancedConversionUserData | null | undefined): GoogleTagEnhancedConversionUserData | undefined;
|
|
22
6
|
export declare function getGoogleAdsContactSendTo(options: {
|
|
23
7
|
conversionId?: string | null;
|
|
24
8
|
conversionLabel?: string | null;
|
|
@@ -30,17 +14,4 @@ export declare function sendBrandlabAnalyticsEvent(options: {
|
|
|
30
14
|
eventName: string;
|
|
31
15
|
params: Record<string, unknown>;
|
|
32
16
|
}): boolean;
|
|
33
|
-
export declare function sanitizeContactFormGa4Params(params: Record<string, unknown>): Record<string, unknown>;
|
|
34
|
-
export declare function sendContactFormConversion(options: {
|
|
35
|
-
enabled: boolean;
|
|
36
|
-
measurementId?: string | null;
|
|
37
|
-
googleAdsConversionId?: string | null;
|
|
38
|
-
googleAdsConversionLabel?: string | null;
|
|
39
|
-
gtag?: GtagTransport;
|
|
40
|
-
pagePath: string;
|
|
41
|
-
submissionId?: string | null;
|
|
42
|
-
enhancedConversion?: EnhancedConversionUserData | null;
|
|
43
|
-
params?: Record<string, unknown>;
|
|
44
|
-
adsParams?: Record<string, unknown>;
|
|
45
|
-
}): ContactFormConversionResult;
|
|
46
17
|
//# sourceMappingURL=analytics.d.ts.map
|
package/dist/analytics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,yCAA0C,CAAA;AAE5E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,yCAA0C,CAAA;AAE5E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;AAE1G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,UAGlE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC,sBASA;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,WAWA"}
|
package/dist/analytics.js
CHANGED
|
@@ -1,28 +1,4 @@
|
|
|
1
1
|
export const CANONICAL_LEAD_EVENTS = ['phone_call', 'contact_form'];
|
|
2
|
-
const EMAIL_PATTERN = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
3
|
-
const GMAIL_DOMAINS = new Set(['gmail.com', 'googlemail.com']);
|
|
4
|
-
const AUSTRALIAN_E164_DIGITS = /^61[23478]\d{8}$/;
|
|
5
|
-
const GA4_CONTACT_FORM_PARAM_KEYS = new Set([
|
|
6
|
-
'event_category',
|
|
7
|
-
'event_label',
|
|
8
|
-
'has_attachments',
|
|
9
|
-
'initial_landing_path',
|
|
10
|
-
'job_type',
|
|
11
|
-
'lead_service_group',
|
|
12
|
-
'location_slug',
|
|
13
|
-
'page_path',
|
|
14
|
-
'page_template',
|
|
15
|
-
'service_interest',
|
|
16
|
-
'service_slug',
|
|
17
|
-
'submission_id',
|
|
18
|
-
'suburb',
|
|
19
|
-
'traffic_source',
|
|
20
|
-
]);
|
|
21
|
-
const GOOGLE_ADS_CONVERSION_PARAM_KEYS = new Set([
|
|
22
|
-
'currency',
|
|
23
|
-
'transaction_id',
|
|
24
|
-
'value',
|
|
25
|
-
]);
|
|
26
2
|
export function isCanonicalLeadEvent(value) {
|
|
27
3
|
return CANONICAL_LEAD_EVENTS.includes(value);
|
|
28
4
|
}
|
|
@@ -30,41 +6,6 @@ export function normalizeGoogleAdsConversionId(conversionId) {
|
|
|
30
6
|
const trimmed = conversionId.trim();
|
|
31
7
|
return trimmed.startsWith('AW-') ? trimmed : `AW-${trimmed}`;
|
|
32
8
|
}
|
|
33
|
-
export function normalizeEnhancedConversionEmail(email) {
|
|
34
|
-
const trimmed = email?.trim().toLowerCase();
|
|
35
|
-
if (!trimmed || !EMAIL_PATTERN.test(trimmed)) {
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
const [localPart, domain] = trimmed.split('@');
|
|
39
|
-
if (!localPart || !domain) {
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
const normalizedLocalPart = GMAIL_DOMAINS.has(domain)
|
|
43
|
-
? localPart.replace(/\./g, '')
|
|
44
|
-
: localPart;
|
|
45
|
-
return `${normalizedLocalPart}@${domain}`;
|
|
46
|
-
}
|
|
47
|
-
export function normalizeEnhancedConversionPhone(phone) {
|
|
48
|
-
const digits = phone?.replace(/[^\d]/g, '') ?? '';
|
|
49
|
-
if (!digits) {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
const normalizedDigits = digits.startsWith('0') ? `61${digits.slice(1)}` : digits;
|
|
53
|
-
return AUSTRALIAN_E164_DIGITS.test(normalizedDigits) ? `+${normalizedDigits}` : undefined;
|
|
54
|
-
}
|
|
55
|
-
export function buildEnhancedConversionUserData(userData) {
|
|
56
|
-
const email = normalizeEnhancedConversionEmail(userData?.email);
|
|
57
|
-
if (!email) {
|
|
58
|
-
return undefined;
|
|
59
|
-
}
|
|
60
|
-
const phoneNumber = normalizeEnhancedConversionPhone(userData?.phone);
|
|
61
|
-
return phoneNumber
|
|
62
|
-
? {
|
|
63
|
-
email,
|
|
64
|
-
phone_number: phoneNumber,
|
|
65
|
-
}
|
|
66
|
-
: { email };
|
|
67
|
-
}
|
|
68
9
|
export function getGoogleAdsContactSendTo(options) {
|
|
69
10
|
const conversionId = options.conversionId?.trim();
|
|
70
11
|
const conversionLabel = options.conversionLabel?.trim();
|
|
@@ -83,64 +24,4 @@ export function sendBrandlabAnalyticsEvent(options) {
|
|
|
83
24
|
});
|
|
84
25
|
return true;
|
|
85
26
|
}
|
|
86
|
-
export function sanitizeContactFormGa4Params(params) {
|
|
87
|
-
return Object.entries(params).reduce((sanitized, [key, value]) => {
|
|
88
|
-
if (GA4_CONTACT_FORM_PARAM_KEYS.has(key.toLowerCase())) {
|
|
89
|
-
sanitized[key] = value;
|
|
90
|
-
}
|
|
91
|
-
return sanitized;
|
|
92
|
-
}, {});
|
|
93
|
-
}
|
|
94
|
-
function sanitizeGoogleAdsConversionParams(params) {
|
|
95
|
-
return Object.entries(params).reduce((sanitized, [key, value]) => {
|
|
96
|
-
if (GOOGLE_ADS_CONVERSION_PARAM_KEYS.has(key.toLowerCase())) {
|
|
97
|
-
sanitized[key] = value;
|
|
98
|
-
}
|
|
99
|
-
return sanitized;
|
|
100
|
-
}, {});
|
|
101
|
-
}
|
|
102
|
-
export function sendContactFormConversion(options) {
|
|
103
|
-
const baseParams = sanitizeContactFormGa4Params({
|
|
104
|
-
event_category: 'lead',
|
|
105
|
-
...options.params,
|
|
106
|
-
page_path: options.pagePath,
|
|
107
|
-
...(options.submissionId ? { submission_id: options.submissionId } : {}),
|
|
108
|
-
});
|
|
109
|
-
const ga4Sent = sendBrandlabAnalyticsEvent({
|
|
110
|
-
enabled: options.enabled,
|
|
111
|
-
measurementId: options.measurementId,
|
|
112
|
-
gtag: options.gtag,
|
|
113
|
-
eventName: 'contact_form',
|
|
114
|
-
params: baseParams,
|
|
115
|
-
});
|
|
116
|
-
const sendTo = getGoogleAdsContactSendTo({
|
|
117
|
-
conversionId: options.googleAdsConversionId,
|
|
118
|
-
conversionLabel: options.googleAdsConversionLabel,
|
|
119
|
-
});
|
|
120
|
-
const userData = buildEnhancedConversionUserData(options.enhancedConversion);
|
|
121
|
-
const canSendAdsConversion = options.enabled &&
|
|
122
|
-
Boolean(options.measurementId) &&
|
|
123
|
-
typeof options.gtag === 'function' &&
|
|
124
|
-
Boolean(sendTo);
|
|
125
|
-
if (!canSendAdsConversion || !sendTo || typeof options.gtag !== 'function') {
|
|
126
|
-
return {
|
|
127
|
-
ga4Sent,
|
|
128
|
-
enhancedConversionSent: false,
|
|
129
|
-
adsConversionSent: false,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
if (userData) {
|
|
133
|
-
options.gtag('set', 'user_data', userData);
|
|
134
|
-
}
|
|
135
|
-
options.gtag('event', 'conversion', {
|
|
136
|
-
...sanitizeGoogleAdsConversionParams(options.adsParams ?? {}),
|
|
137
|
-
send_to: sendTo,
|
|
138
|
-
...(options.submissionId ? { transaction_id: options.submissionId } : {}),
|
|
139
|
-
});
|
|
140
|
-
return {
|
|
141
|
-
ga4Sent,
|
|
142
|
-
enhancedConversionSent: Boolean(userData),
|
|
143
|
-
adsConversionSent: true,
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
27
|
//# sourceMappingURL=analytics.js.map
|
package/dist/analytics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,EAAE,cAAc,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,EAAE,cAAc,CAAU,CAAA;AAK5E,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,KAA2B,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,YAAoB;IACjE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAA;IACnC,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAGzC;IACC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,CAAA;IACjD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;IAEvD,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,GAAG,8BAA8B,CAAC,YAAY,CAAC,IAAI,eAAe,EAAE,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAM1C;IACC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;QACvC,GAAG,OAAO,CAAC,MAAM;QACjB,OAAO,EAAE,OAAO,CAAC,aAAa;KAC/B,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/contact.d.ts
CHANGED
|
@@ -3,106 +3,57 @@ export interface ContactAttachmentPolicy {
|
|
|
3
3
|
maxFileSizeBytes: number;
|
|
4
4
|
maxTotalSizeBytes: number;
|
|
5
5
|
allowedTypes: readonly ContactAttachmentMimeType[];
|
|
6
|
-
filenamePrefix?: string;
|
|
7
6
|
}
|
|
8
7
|
export type ContactAttachmentMimeType = 'image/jpeg' | 'image/jpg' | 'image/png' | 'image/webp' | 'image/gif' | 'image/heic' | 'image/heif';
|
|
9
8
|
export declare const DEFAULT_CONTACT_ATTACHMENT_POLICY: {
|
|
10
9
|
readonly maxFiles: 5;
|
|
11
10
|
readonly maxFileSizeBytes: number;
|
|
12
11
|
readonly maxTotalSizeBytes: number;
|
|
13
|
-
readonly filenamePrefix: "contact-photo";
|
|
14
12
|
readonly allowedTypes: readonly ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif", "image/heic", "image/heif"];
|
|
15
13
|
};
|
|
16
|
-
export declare function contactAttachmentAccept(policy?:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
export declare function contactAttachmentAccept(policy?: {
|
|
15
|
+
readonly maxFiles: 5;
|
|
16
|
+
readonly maxFileSizeBytes: number;
|
|
17
|
+
readonly maxTotalSizeBytes: number;
|
|
18
|
+
readonly allowedTypes: readonly ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif", "image/heic", "image/heif"];
|
|
19
|
+
}): string;
|
|
20
|
+
export declare function contactAttachmentTypeLabel(policy?: {
|
|
21
|
+
readonly maxFiles: 5;
|
|
22
|
+
readonly maxFileSizeBytes: number;
|
|
23
|
+
readonly maxTotalSizeBytes: number;
|
|
24
|
+
readonly allowedTypes: readonly ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif", "image/heic", "image/heif"];
|
|
25
|
+
}): string;
|
|
26
|
+
export declare function isAllowedContactAttachmentType(value: string, policy?: {
|
|
27
|
+
readonly maxFiles: 5;
|
|
28
|
+
readonly maxFileSizeBytes: number;
|
|
29
|
+
readonly maxTotalSizeBytes: number;
|
|
30
|
+
readonly allowedTypes: readonly ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif", "image/heic", "image/heif"];
|
|
31
|
+
}): value is ContactAttachmentMimeType;
|
|
32
|
+
export declare function resolveContactAttachmentType(filename: string, fileType?: string, policy?: {
|
|
33
|
+
readonly maxFiles: 5;
|
|
34
|
+
readonly maxFileSizeBytes: number;
|
|
35
|
+
readonly maxTotalSizeBytes: number;
|
|
36
|
+
readonly allowedTypes: readonly ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif", "image/heic", "image/heif"];
|
|
37
|
+
}): ContactAttachmentMimeType | null;
|
|
20
38
|
export declare function createContactAttachmentFilename(options: {
|
|
21
39
|
index: number;
|
|
22
40
|
contentType: ContactAttachmentMimeType;
|
|
23
41
|
prefix?: string;
|
|
24
|
-
policy?: ContactAttachmentPolicy;
|
|
25
42
|
}): string;
|
|
26
43
|
export declare function validateContactAttachment(file: {
|
|
27
44
|
filename: string;
|
|
28
45
|
size: number;
|
|
29
46
|
type?: string;
|
|
30
|
-
}, policy?:
|
|
47
|
+
}, policy?: {
|
|
48
|
+
readonly maxFiles: 5;
|
|
49
|
+
readonly maxFileSizeBytes: number;
|
|
50
|
+
readonly maxTotalSizeBytes: number;
|
|
51
|
+
readonly allowedTypes: readonly ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif", "image/heic", "image/heif"];
|
|
52
|
+
}): {
|
|
31
53
|
ok: true;
|
|
32
54
|
contentType: ContactAttachmentMimeType;
|
|
33
55
|
} | {
|
|
34
56
|
ok: false;
|
|
35
57
|
message: string;
|
|
36
58
|
};
|
|
37
|
-
export type AdClickIds = {
|
|
38
|
-
gclid?: string;
|
|
39
|
-
gbraid?: string;
|
|
40
|
-
wbraid?: string;
|
|
41
|
-
gadParams?: Record<string, string>;
|
|
42
|
-
};
|
|
43
|
-
export declare function resolveTrackingSearchParams(queryParams: string, pageUrl?: string): URLSearchParams;
|
|
44
|
-
export declare function resolveAdClickIds(queryParams: string, pageUrl?: string): AdClickIds;
|
|
45
|
-
export declare function hasAdClickIds(adClickIds: AdClickIds): boolean;
|
|
46
|
-
export declare function hasGoogleAdsClickId(queryParams: string, pageUrl?: string): boolean;
|
|
47
|
-
export declare function getAdClickIdRows(adClickIds: AdClickIds | undefined): {
|
|
48
|
-
field: string;
|
|
49
|
-
label: string;
|
|
50
|
-
value: string;
|
|
51
|
-
}[];
|
|
52
|
-
export declare function formatAdClickIdsForEmailText(adClickIds: AdClickIds): string;
|
|
53
|
-
export declare function parseContactEmailRecipients(value: string | undefined): string[];
|
|
54
|
-
export interface ContactFormEmailBaseData {
|
|
55
|
-
name: string;
|
|
56
|
-
email: string;
|
|
57
|
-
phone: string;
|
|
58
|
-
message: string;
|
|
59
|
-
submittedAt: string;
|
|
60
|
-
submissionId: string;
|
|
61
|
-
pageLabel: string;
|
|
62
|
-
pagePath: string;
|
|
63
|
-
pageUrl: string;
|
|
64
|
-
trafficSource?: string;
|
|
65
|
-
initialLandingPath?: string;
|
|
66
|
-
initialLandingUrl?: string;
|
|
67
|
-
adClickIds?: AdClickIds;
|
|
68
|
-
attachmentCount?: number;
|
|
69
|
-
attachments?: readonly ContactFormEmailAttachmentSummary[];
|
|
70
|
-
}
|
|
71
|
-
export type ContactFormEmailData = ContactFormEmailBaseData & ({
|
|
72
|
-
suburb: string;
|
|
73
|
-
location?: string;
|
|
74
|
-
} | {
|
|
75
|
-
location: string;
|
|
76
|
-
suburb?: string;
|
|
77
|
-
});
|
|
78
|
-
export interface ContactFormEmailAttachmentSummary {
|
|
79
|
-
filename: string;
|
|
80
|
-
contentType?: string;
|
|
81
|
-
sizeBytes?: number;
|
|
82
|
-
}
|
|
83
|
-
export interface ContactFormEmailRow {
|
|
84
|
-
field: string;
|
|
85
|
-
label: string;
|
|
86
|
-
value: string;
|
|
87
|
-
}
|
|
88
|
-
export interface ContactFormEmailDataIssue {
|
|
89
|
-
field: string;
|
|
90
|
-
message: string;
|
|
91
|
-
}
|
|
92
|
-
type ContactFormEmailValidationData = Partial<ContactFormEmailBaseData & {
|
|
93
|
-
suburb: string;
|
|
94
|
-
location: string;
|
|
95
|
-
}>;
|
|
96
|
-
export declare function getContactFormEmailLocationValue(data: Pick<ContactFormEmailValidationData, 'location' | 'suburb'>): string;
|
|
97
|
-
export declare function validateContactFormEmailData(data: ContactFormEmailValidationData): ContactFormEmailDataIssue[];
|
|
98
|
-
export declare function getContactFormEmailLeadRows(data: ContactFormEmailData): ContactFormEmailRow[];
|
|
99
|
-
export declare function formatContactFormEmailAttachmentSummary(data: Pick<ContactFormEmailBaseData, 'attachmentCount' | 'attachments'>): string | undefined;
|
|
100
|
-
export declare function getContactFormEmailContextRows(data: ContactFormEmailData): {
|
|
101
|
-
field: string;
|
|
102
|
-
label: string;
|
|
103
|
-
value: string;
|
|
104
|
-
}[];
|
|
105
|
-
export declare function normalizeAustralianPhoneDigits(phone: string): string;
|
|
106
|
-
export declare function isValidAustralianPhoneNumber(phone: string): boolean;
|
|
107
|
-
export {};
|
|
108
59
|
//# sourceMappingURL=contact.d.ts.map
|
package/dist/contact.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAA;CACnD;AAED,MAAM,MAAM,yBAAyB,GACjC,YAAY,GACZ,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,YAAY,CAAA;AAEhB,eAAO,MAAM,iCAAiC;;;;;CAaF,CAAA;AAY5C,wBAAgB,uBAAuB,CAAC,MAAM;;;;;CAAoC,UAEjF;AAED,wBAAgB,0BAA0B,CAAC,MAAM;;;;;CAAoC,UAYpF;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EACb,MAAM;;;;;CAAoC,GACzC,KAAK,IAAI,yBAAyB,CAEpC;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM;;;;;CAAoC,GACzC,yBAAyB,GAAG,IAAI,CAYlC;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,yBAAyB,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,UAGA;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACvD,MAAM;;;;;CAAoC,GAExC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,yBAAyB,CAAA;CAAE,GACpD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoBjC"}
|
package/dist/contact.js
CHANGED
|
@@ -2,7 +2,6 @@ export const DEFAULT_CONTACT_ATTACHMENT_POLICY = {
|
|
|
2
2
|
maxFiles: 5,
|
|
3
3
|
maxFileSizeBytes: 5 * 1024 * 1024,
|
|
4
4
|
maxTotalSizeBytes: 15 * 1024 * 1024,
|
|
5
|
-
filenamePrefix: 'contact-photo',
|
|
6
5
|
allowedTypes: [
|
|
7
6
|
'image/jpeg',
|
|
8
7
|
'image/jpg',
|
|
@@ -56,10 +55,7 @@ export function resolveContactAttachmentType(filename, fileType, policy = DEFAUL
|
|
|
56
55
|
}
|
|
57
56
|
export function createContactAttachmentFilename(options) {
|
|
58
57
|
const extension = options.contentType.split('/')[1] || 'jpg';
|
|
59
|
-
|
|
60
|
-
options.policy?.filenamePrefix ??
|
|
61
|
-
DEFAULT_CONTACT_ATTACHMENT_POLICY.filenamePrefix;
|
|
62
|
-
return `${prefix}-${options.index + 1}.${extension}`;
|
|
58
|
+
return `${options.prefix ?? 'tree-photo'}-${options.index + 1}.${extension}`;
|
|
63
59
|
}
|
|
64
60
|
export function validateContactAttachment(file, policy = DEFAULT_CONTACT_ATTACHMENT_POLICY) {
|
|
65
61
|
const contentType = resolveContactAttachmentType(file.filename, file.type, policy);
|
|
@@ -77,188 +73,4 @@ export function validateContactAttachment(file, policy = DEFAULT_CONTACT_ATTACHM
|
|
|
77
73
|
}
|
|
78
74
|
return { ok: true, contentType };
|
|
79
75
|
}
|
|
80
|
-
const AD_CLICK_ID_FIELDS = [
|
|
81
|
-
['gclid', 'Google Click ID'],
|
|
82
|
-
['gbraid', 'GBRAID'],
|
|
83
|
-
['wbraid', 'WBRAID'],
|
|
84
|
-
];
|
|
85
|
-
export function resolveTrackingSearchParams(queryParams, pageUrl = '') {
|
|
86
|
-
const trimmedQueryParams = queryParams.trim();
|
|
87
|
-
if (trimmedQueryParams) {
|
|
88
|
-
return new URLSearchParams(trimmedQueryParams.startsWith('?') ? trimmedQueryParams : `?${trimmedQueryParams}`);
|
|
89
|
-
}
|
|
90
|
-
if (pageUrl) {
|
|
91
|
-
try {
|
|
92
|
-
return new URL(pageUrl).searchParams;
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
return new URLSearchParams();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return new URLSearchParams();
|
|
99
|
-
}
|
|
100
|
-
export function resolveAdClickIds(queryParams, pageUrl = '') {
|
|
101
|
-
const params = resolveTrackingSearchParams(queryParams, pageUrl);
|
|
102
|
-
const clickIds = AD_CLICK_ID_FIELDS.reduce((ids, [field]) => {
|
|
103
|
-
const value = params.get(field)?.trim();
|
|
104
|
-
if (value) {
|
|
105
|
-
ids[field] = value;
|
|
106
|
-
}
|
|
107
|
-
return ids;
|
|
108
|
-
}, {});
|
|
109
|
-
const gadParams = {};
|
|
110
|
-
params.forEach((value, key) => {
|
|
111
|
-
const trimmedValue = value.trim();
|
|
112
|
-
const normalizedKey = key.toLowerCase();
|
|
113
|
-
if (trimmedValue && (normalizedKey === 'gad_source' || normalizedKey.startsWith('gad_'))) {
|
|
114
|
-
gadParams[key] = trimmedValue;
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
return Object.keys(gadParams).length > 0 ? { ...clickIds, gadParams } : clickIds;
|
|
118
|
-
}
|
|
119
|
-
export function hasAdClickIds(adClickIds) {
|
|
120
|
-
return (AD_CLICK_ID_FIELDS.some(([field]) => Boolean(adClickIds[field])) ||
|
|
121
|
-
Object.keys(adClickIds.gadParams ?? {}).length > 0);
|
|
122
|
-
}
|
|
123
|
-
export function hasGoogleAdsClickId(queryParams, pageUrl = '') {
|
|
124
|
-
return hasAdClickIds(resolveAdClickIds(queryParams, pageUrl));
|
|
125
|
-
}
|
|
126
|
-
function formatGadLabel(key) {
|
|
127
|
-
return key
|
|
128
|
-
.replace(/^gad_/, 'GAD ')
|
|
129
|
-
.replace(/_/g, ' ')
|
|
130
|
-
.replace(/campaignid\b/i, 'campaign ID')
|
|
131
|
-
.replace(/\b\w/g, (letter) => letter.toUpperCase());
|
|
132
|
-
}
|
|
133
|
-
export function getAdClickIdRows(adClickIds) {
|
|
134
|
-
if (!adClickIds)
|
|
135
|
-
return [];
|
|
136
|
-
const directRows = AD_CLICK_ID_FIELDS.flatMap(([field, label]) => {
|
|
137
|
-
const value = adClickIds[field];
|
|
138
|
-
return value ? [{ field, label, value }] : [];
|
|
139
|
-
});
|
|
140
|
-
const gadRows = Object.entries(adClickIds.gadParams ?? {})
|
|
141
|
-
.sort(([left], [right]) => left.localeCompare(right))
|
|
142
|
-
.map(([field, value]) => ({
|
|
143
|
-
field,
|
|
144
|
-
label: formatGadLabel(field),
|
|
145
|
-
value,
|
|
146
|
-
}));
|
|
147
|
-
return [...directRows, ...gadRows];
|
|
148
|
-
}
|
|
149
|
-
export function formatAdClickIdsForEmailText(adClickIds) {
|
|
150
|
-
return getAdClickIdRows(adClickIds)
|
|
151
|
-
.map(({ label, value }) => `${label}: ${value}`)
|
|
152
|
-
.join('\n');
|
|
153
|
-
}
|
|
154
|
-
export function parseContactEmailRecipients(value) {
|
|
155
|
-
return (value
|
|
156
|
-
?.split(',')
|
|
157
|
-
.map((item) => item.trim())
|
|
158
|
-
.filter(Boolean) ?? []);
|
|
159
|
-
}
|
|
160
|
-
const REQUIRED_CONTACT_FORM_EMAIL_LEAD_FIELDS = [
|
|
161
|
-
'name',
|
|
162
|
-
'email',
|
|
163
|
-
'phone',
|
|
164
|
-
];
|
|
165
|
-
const REQUIRED_CONTACT_FORM_EMAIL_CONTEXT_FIELDS = [
|
|
166
|
-
'message',
|
|
167
|
-
'submittedAt',
|
|
168
|
-
'submissionId',
|
|
169
|
-
'pageLabel',
|
|
170
|
-
'pagePath',
|
|
171
|
-
'pageUrl',
|
|
172
|
-
];
|
|
173
|
-
function hasContactEmailValue(value) {
|
|
174
|
-
return typeof value === 'string' ? value.trim().length > 0 : value != null;
|
|
175
|
-
}
|
|
176
|
-
function contactEmailRow(field, label, value) {
|
|
177
|
-
return hasContactEmailValue(value) ? [{ field, label, value: String(value) }] : [];
|
|
178
|
-
}
|
|
179
|
-
export function getContactFormEmailLocationValue(data) {
|
|
180
|
-
return data.suburb?.trim() || data.location?.trim() || '';
|
|
181
|
-
}
|
|
182
|
-
export function validateContactFormEmailData(data) {
|
|
183
|
-
const issues = [];
|
|
184
|
-
REQUIRED_CONTACT_FORM_EMAIL_LEAD_FIELDS.forEach((field) => {
|
|
185
|
-
if (!hasContactEmailValue(data[field])) {
|
|
186
|
-
issues.push({ field, message: `Contact email data requires ${field}.` });
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
if (!getContactFormEmailLocationValue(data)) {
|
|
190
|
-
issues.push({
|
|
191
|
-
field: 'suburbOrLocation',
|
|
192
|
-
message: 'Contact email data requires a suburb or location.',
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
REQUIRED_CONTACT_FORM_EMAIL_CONTEXT_FIELDS.forEach((field) => {
|
|
196
|
-
if (!hasContactEmailValue(data[field])) {
|
|
197
|
-
issues.push({ field, message: `Contact email data requires ${field}.` });
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
return issues;
|
|
201
|
-
}
|
|
202
|
-
export function getContactFormEmailLeadRows(data) {
|
|
203
|
-
const locationField = data.suburb ? 'suburb' : 'location';
|
|
204
|
-
return [
|
|
205
|
-
...contactEmailRow('name', 'Name', data.name),
|
|
206
|
-
...contactEmailRow('email', 'Email', data.email),
|
|
207
|
-
...contactEmailRow('phone', 'Phone', data.phone),
|
|
208
|
-
...contactEmailRow(locationField, 'Location', getContactFormEmailLocationValue(data)),
|
|
209
|
-
...contactEmailRow('message', 'Message', data.message),
|
|
210
|
-
...contactEmailRow('submittedAt', 'Submitted at', data.submittedAt),
|
|
211
|
-
...contactEmailRow('submissionId', 'Submission ID', data.submissionId),
|
|
212
|
-
];
|
|
213
|
-
}
|
|
214
|
-
function formatContactFormEmailAttachmentSize(sizeBytes) {
|
|
215
|
-
if (typeof sizeBytes !== 'number' || !Number.isFinite(sizeBytes) || sizeBytes < 0) {
|
|
216
|
-
return '';
|
|
217
|
-
}
|
|
218
|
-
if (sizeBytes < 1024) {
|
|
219
|
-
return `${sizeBytes} B`;
|
|
220
|
-
}
|
|
221
|
-
if (sizeBytes < 1024 * 1024) {
|
|
222
|
-
const sizeKb = sizeBytes / 1024;
|
|
223
|
-
return `${Number.isInteger(sizeKb) ? sizeKb : sizeKb.toFixed(1)} KB`;
|
|
224
|
-
}
|
|
225
|
-
const sizeMb = sizeBytes / (1024 * 1024);
|
|
226
|
-
return `${Number.isInteger(sizeMb) ? sizeMb : sizeMb.toFixed(1)} MB`;
|
|
227
|
-
}
|
|
228
|
-
function formatContactFormEmailAttachment(attachment) {
|
|
229
|
-
const details = [attachment.contentType, formatContactFormEmailAttachmentSize(attachment.sizeBytes)]
|
|
230
|
-
.filter(Boolean)
|
|
231
|
-
.join(', ');
|
|
232
|
-
return details ? `${attachment.filename} (${details})` : attachment.filename;
|
|
233
|
-
}
|
|
234
|
-
export function formatContactFormEmailAttachmentSummary(data) {
|
|
235
|
-
const attachments = data.attachments ?? [];
|
|
236
|
-
const attachmentCount = data.attachmentCount ?? attachments.length;
|
|
237
|
-
if (!attachmentCount) {
|
|
238
|
-
return undefined;
|
|
239
|
-
}
|
|
240
|
-
const countLabel = attachmentCount === 1 ? '1 file' : `${attachmentCount} files`;
|
|
241
|
-
const attachmentDetails = attachments.map(formatContactFormEmailAttachment).join('; ');
|
|
242
|
-
return attachmentDetails ? `${countLabel}: ${attachmentDetails}` : countLabel;
|
|
243
|
-
}
|
|
244
|
-
export function getContactFormEmailContextRows(data) {
|
|
245
|
-
const attachmentSummary = formatContactFormEmailAttachmentSummary(data);
|
|
246
|
-
return [
|
|
247
|
-
...contactEmailRow('pageLabel', 'Page', data.pageLabel),
|
|
248
|
-
...contactEmailRow('pagePath', 'Page path', data.pagePath),
|
|
249
|
-
...contactEmailRow('pageUrl', 'Page URL', data.pageUrl),
|
|
250
|
-
...contactEmailRow('trafficSource', 'Traffic source', data.trafficSource),
|
|
251
|
-
...contactEmailRow('initialLandingPath', 'Initial landing path', data.initialLandingPath),
|
|
252
|
-
...contactEmailRow('initialLandingUrl', 'Initial landing URL', data.initialLandingUrl),
|
|
253
|
-
...getAdClickIdRows(data.adClickIds),
|
|
254
|
-
...contactEmailRow('attachments', 'Attachments', attachmentSummary),
|
|
255
|
-
];
|
|
256
|
-
}
|
|
257
|
-
const AUSTRALIAN_PHONE_DIGITS = /^(?:0[23478]\d{8}|61[23478]\d{8})$/;
|
|
258
|
-
export function normalizeAustralianPhoneDigits(phone) {
|
|
259
|
-
return phone.replace(/[^\d]/g, '');
|
|
260
|
-
}
|
|
261
|
-
export function isValidAustralianPhoneNumber(phone) {
|
|
262
|
-
return AUSTRALIAN_PHONE_DIGITS.test(normalizeAustralianPhoneDigits(phone));
|
|
263
|
-
}
|
|
264
76
|
//# sourceMappingURL=contact.js.map
|
package/dist/contact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact.js","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contact.js","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"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"}
|
package/dist/metadata.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,UAAU,CAAA;AAEhE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,mBAAmB,CAAA;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,WAAW,CAAC,EAAE,mBAAmB,CAAA;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,KAAK,CAAA;QACZ,MAAM,EAAE,KAAK,CAAA;QACb,SAAS,EAAE;YAAE,KAAK,EAAE,KAAK,CAAC;YAAC,MAAM,EAAE,KAAK,CAAA;SAAE,CAAA;KAC3C,CAAA;IACD,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;QAC3B,MAAM,EAAE,mBAAmB,EAAE,CAAA;QAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAqB,CAAA;QAC3B,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;CACF;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,yBAAyB,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,UAAU,CAAA;AAEhE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,mBAAmB,CAAA;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,WAAW,CAAC,EAAE,mBAAmB,CAAA;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,KAAK,CAAA;QACZ,MAAM,EAAE,KAAK,CAAA;QACb,SAAS,EAAE;YAAE,KAAK,EAAE,KAAK,CAAC;YAAC,MAAM,EAAE,KAAK,CAAA;SAAE,CAAA;KAC3C,CAAA;IACD,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;QAC3B,MAAM,EAAE,mBAAmB,EAAE,CAAA;QAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAqB,CAAA;QAC3B,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;CACF;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,yBAAyB,CAAA;CAAE,UAoBtE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAEjE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,UAetD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAI/D;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,mBAAmB,CA4DlF"}
|
package/dist/metadata.js
CHANGED
|
@@ -4,16 +4,10 @@ export function normalizeMetadataTitle(title, options) {
|
|
|
4
4
|
throw new Error('Metadata title cannot be empty.');
|
|
5
5
|
}
|
|
6
6
|
const brandSuffix = `| ${options.brandName}`.toLowerCase();
|
|
7
|
-
const brandName = options.brandName.trim().toLowerCase();
|
|
8
7
|
if (options.titleMode !== 'absolute' &&
|
|
9
8
|
normalizedTitle.toLowerCase().includes(brandSuffix)) {
|
|
10
9
|
throw new Error(`Metadata title "${normalizedTitle}" already includes the brand suffix. Pass a page-specific title only.`);
|
|
11
10
|
}
|
|
12
|
-
if (options.titleMode !== 'absolute' &&
|
|
13
|
-
brandName &&
|
|
14
|
-
normalizedTitle.toLowerCase().includes(brandName)) {
|
|
15
|
-
throw new Error(`Metadata title "${normalizedTitle}" already includes the brand name. Pass a page-specific title only or use titleMode: "absolute".`);
|
|
16
|
-
}
|
|
17
11
|
return normalizedTitle;
|
|
18
12
|
}
|
|
19
13
|
export function applyTitleTemplate(title, template) {
|
|
@@ -59,7 +53,7 @@ export function buildSeoMetadata(input) {
|
|
|
59
53
|
? socialImage.url
|
|
60
54
|
: input.defaultSocialImage.twitterUrl ?? input.defaultSocialImage.url;
|
|
61
55
|
return {
|
|
62
|
-
title: { absolute:
|
|
56
|
+
title: titleMode === 'absolute' ? { absolute: pageTitle } : pageTitle,
|
|
63
57
|
resolvedTitle,
|
|
64
58
|
description: input.description,
|
|
65
59
|
canonicalPath,
|
package/dist/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AA+DA,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,OAAqE;IAErE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAEpC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
|