@brandlab-digital/site-core 0.1.0-alpha.13 → 0.1.0-alpha.15
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 +30 -1
- package/dist/analytics.d.ts.map +1 -1
- package/dist/analytics.js +119 -0
- package/dist/analytics.js.map +1 -1
- package/dist/contact.d.ts +52 -0
- package/dist/contact.d.ts.map +1 -1
- package/dist/contact.js +97 -0
- package/dist/contact.js.map +1 -1
- package/dist/geography.d.ts +13 -0
- package/dist/geography.d.ts.map +1 -0
- package/dist/geography.js +4301 -0
- package/dist/geography.js.map +1 -0
- package/dist/locations.d.ts +102 -0
- package/dist/locations.d.ts.map +1 -0
- package/dist/locations.js +113 -0
- package/dist/locations.js.map +1 -0
- package/package.json +9 -1
package/dist/analytics.d.ts
CHANGED
|
@@ -1,8 +1,24 @@
|
|
|
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', eventName: string, params: Record<string, unknown>) => void;
|
|
3
|
+
export type GtagTransport = (command: 'event' | 'set', eventName: string, params: Record<string, unknown>) => void;
|
|
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
|
+
}
|
|
4
17
|
export declare function isCanonicalLeadEvent(value: string): value is CanonicalLeadEvent;
|
|
5
18
|
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;
|
|
6
22
|
export declare function getGoogleAdsContactSendTo(options: {
|
|
7
23
|
conversionId?: string | null;
|
|
8
24
|
conversionLabel?: string | null;
|
|
@@ -14,4 +30,17 @@ export declare function sendBrandlabAnalyticsEvent(options: {
|
|
|
14
30
|
eventName: string;
|
|
15
31
|
params: Record<string, unknown>;
|
|
16
32
|
}): 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;
|
|
17
46
|
//# 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,CAC1B,OAAO,EAAE,OAAO,GAAG,KAAK,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,IAAI,CAAA;AAET,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,mCAAoC,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClF,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAA;IAChB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AA2BD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,UAGlE;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAgBhF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAShF;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,GACtD,mCAAmC,GAAG,SAAS,CAcjD;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;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,2BAQ3E;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,kBAAkB,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAA;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,GAAG,2BAA2B,CAgD9B"}
|
package/dist/analytics.js
CHANGED
|
@@ -1,4 +1,28 @@
|
|
|
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
|
+
]);
|
|
2
26
|
export function isCanonicalLeadEvent(value) {
|
|
3
27
|
return CANONICAL_LEAD_EVENTS.includes(value);
|
|
4
28
|
}
|
|
@@ -6,6 +30,41 @@ export function normalizeGoogleAdsConversionId(conversionId) {
|
|
|
6
30
|
const trimmed = conversionId.trim();
|
|
7
31
|
return trimmed.startsWith('AW-') ? trimmed : `AW-${trimmed}`;
|
|
8
32
|
}
|
|
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
|
+
}
|
|
9
68
|
export function getGoogleAdsContactSendTo(options) {
|
|
10
69
|
const conversionId = options.conversionId?.trim();
|
|
11
70
|
const conversionLabel = options.conversionLabel?.trim();
|
|
@@ -24,4 +83,64 @@ export function sendBrandlabAnalyticsEvent(options) {
|
|
|
24
83
|
});
|
|
25
84
|
return true;
|
|
26
85
|
}
|
|
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
|
+
}
|
|
27
146
|
//# 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":"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"}
|
package/dist/contact.d.ts
CHANGED
|
@@ -51,6 +51,58 @@ export declare function getAdClickIdRows(adClickIds: AdClickIds | undefined): {
|
|
|
51
51
|
}[];
|
|
52
52
|
export declare function formatAdClickIdsForEmailText(adClickIds: AdClickIds): string;
|
|
53
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
|
+
}[];
|
|
54
105
|
export declare function normalizeAustralianPhoneDigits(phone: string): string;
|
|
55
106
|
export declare function isValidAustralianPhoneNumber(phone: string): boolean;
|
|
107
|
+
export {};
|
|
56
108
|
//# 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;IAClD,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,yBAAyB,GACjC,YAAY,GACZ,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,YAAY,CAAA;AAEhB,eAAO,MAAM,iCAAiC;;;;;;CAcF,CAAA;AAY5C,wBAAgB,uBAAuB,CACrC,MAAM,GAAE,uBAA2D,UAGpE;AAED,wBAAgB,0BAA0B,CACxC,MAAM,GAAE,uBAA2D,UAapE;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,uBAA2D,GAClE,KAAK,IAAI,yBAAyB,CAEpC;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,GAAE,uBAA2D,GAClE,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;IACf,MAAM,CAAC,EAAE,uBAAuB,CAAA;CACjC,UAQA;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,GAAE,uBAA2D,GAEjE;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,yBAAyB,CAAA;CAAE,GACpD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoBjC;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC,CAAA;AAQD,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,SAAK,mBAkB5E;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,UAAU,CAuB/E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,WAKnD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,SAAK,WAEpE;AAUD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS;;;;IAiBlE;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,UAAU,UAIlE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,YAOpE;AAID,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,UAE3D;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,WAEzD"}
|
|
1
|
+
{"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"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"}
|
package/dist/contact.js
CHANGED
|
@@ -157,6 +157,103 @@ export function parseContactEmailRecipients(value) {
|
|
|
157
157
|
.map((item) => item.trim())
|
|
158
158
|
.filter(Boolean) ?? []);
|
|
159
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
|
+
}
|
|
160
257
|
const AUSTRALIAN_PHONE_DIGITS = /^(?:0[23478]\d{8}|61[23478]\d{8})$/;
|
|
161
258
|
export function normalizeAustralianPhoneDigits(phone) {
|
|
162
259
|
return phone.replace(/[^\d]/g, '');
|
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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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Brandlab Sydney geography registry — generated from
|
|
3
|
+
* standards/registry/sydney-geography.json v1.0.0 (2026-07-02).
|
|
4
|
+
*
|
|
5
|
+
* Source of truth remains the JSON file in the Brandlab standards workspace;
|
|
6
|
+
* regenerate this module when the registry is corrected and version-bumped
|
|
7
|
+
* (Location Pages Standard §5.2). Projects subset this registry — they never
|
|
8
|
+
* invent regions. Suburbs without a postcode need verification before postal
|
|
9
|
+
* data is emitted.
|
|
10
|
+
*/
|
|
11
|
+
import type { GeographyRegistry } from './locations.js';
|
|
12
|
+
export declare const sydneyGeography: GeographyRegistry;
|
|
13
|
+
//# sourceMappingURL=geography.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geography.d.ts","sourceRoot":"","sources":["../src/geography.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,eAAO,MAAM,eAAe,EAAE,iBA2sI7B,CAAA"}
|