@brandlab-digital/site-next 1.0.8 → 1.0.9
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.js.map +1 -1
- package/dist/blog.js.map +1 -1
- package/dist/breadcrumbs.js.map +1 -1
- package/dist/contact/attachments-client.js.map +1 -1
- package/dist/contact/attribution.js.map +1 -1
- package/dist/contact/client-entry.js.map +1 -1
- package/dist/contact/client.js.map +1 -1
- package/dist/contact/contract.d.ts +1 -1
- package/dist/contact/contract.d.ts.map +1 -1
- package/dist/contact/contract.js.map +1 -1
- package/dist/contact/email.js.map +1 -1
- package/dist/contact/image-sanitizer.js.map +1 -1
- package/dist/contact/index.js.map +1 -1
- package/dist/contact/resend.js.map +1 -1
- package/dist/contact/server-entry.js.map +1 -1
- package/dist/contact/server.d.ts.map +1 -1
- package/dist/contact/server.js +14 -4
- package/dist/contact/server.js.map +1 -1
- package/dist/contact/shared.js.map +1 -1
- package/dist/contact/testing.js.map +1 -1
- package/dist/google-maps-attribution-assets.js.map +1 -1
- package/dist/google-reviews-client.js.map +1 -1
- package/dist/google-reviews-server.js.map +1 -1
- package/dist/google-reviews-ui.js.map +1 -1
- package/dist/google-tag-plan.js.map +1 -1
- package/dist/google-tag.js.map +1 -1
- package/dist/headers.js +1 -1
- package/dist/headers.js.map +1 -1
- package/dist/instrumentation-client.js.map +1 -1
- package/dist/metadata.js.map +1 -1
- package/dist/reviews.js.map +1 -1
- package/dist/robots.js.map +1 -1
- package/dist/schema.js.map +1 -1
- package/dist/sitemaps.js.map +1 -1
- package/dist/ui-client.js.map +1 -1
- package/dist/ui.js.map +1 -1
- package/package.json +2 -2
package/dist/analytics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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","sourcesContent":["'use client'\n\nimport {\n defineAnalyticsContract,\n normalizeEnhancedConversionEmail,\n normalizeEnhancedConversionPhone,\n sendBrandlabAnalyticsEvent,\n sendContactFormConversion,\n type BrandlabAnalyticsContract,\n type ContactFormConversionResult,\n type GtagTransport,\n} from '@brandlab-digital/site-core/analytics'\nimport type { ContactActionResult } from '@brandlab-digital/site-core/contact'\nimport { normalizeBrandlabRoutePath } from '@brandlab-digital/site-core/routes'\nimport type { BrandlabContactDefinition } from './contact/shared.js'\n\nexport interface BrandlabBrowserAnalyticsConfig {\n enabled: boolean\n webVitalsEnabled?: boolean\n leadDiagnosticsEnabled?: boolean\n enhancedConversionsEnabled?: boolean\n measurementId?: string | null\n googleAdsConversionId?: string | null\n googleAdsConversionLabel?: string | null\n gtag?: GtagTransport\n}\n\n/**\n * Public analytics values that a client bundle must bind through direct,\n * statically analyzable `process.env.NEXT_PUBLIC_*` property access.\n */\nexport interface BrandlabBrowserAnalyticsPublicValues {\n measurementId: string | null | undefined\n googleAdsConversionId: string | null | undefined\n googleAdsConversionLabel: string | null | undefined\n}\n\nexport interface SafeContactAnalyticsParams {\n page_template?: string\n service_slug?: string\n location_slug?: string\n}\n\nexport interface SafeContactAdsParams {\n currency?: string\n value?: number\n}\n\nexport const PHONE_CALL_PLACEMENTS = [\n 'header',\n 'footer',\n 'hero',\n 'cta',\n 'fab',\n 'contact',\n 'location',\n 'page',\n] as const\n\nexport type PhoneCallPlacement = (typeof PHONE_CALL_PLACEMENTS)[number]\n\nexport function resolveBrowserAnalyticsConfig(\n contract: BrandlabAnalyticsContract,\n publicValues: BrandlabBrowserAnalyticsPublicValues,\n options: { enabled: boolean; gtag?: GtagTransport },\n): BrandlabBrowserAnalyticsConfig {\n defineAnalyticsContract(contract)\n return {\n enabled: options.enabled,\n webVitalsEnabled: contract.webVitals,\n leadDiagnosticsEnabled: contract.leadDiagnostics?.enabled === true,\n enhancedConversionsEnabled:\n contract.googleAds?.enhancedConversions?.mode === 'consent-required',\n measurementId: publicValues.measurementId,\n googleAdsConversionId: contract.googleAds\n ? publicValues.googleAdsConversionId\n : undefined,\n googleAdsConversionLabel: contract.googleAds\n ? publicValues.googleAdsConversionLabel\n : undefined,\n gtag: options.gtag,\n }\n}\n\nexport type BrandlabWebVitalName = 'CLS' | 'FCP' | 'INP' | 'LCP' | 'TTFB'\nexport type BrandlabWebVitalRating = 'good' | 'needs-improvement' | 'poor'\n\nexport interface BrandlabWebVitalMetric {\n name: BrandlabWebVitalName\n value: number\n delta: number\n rating: BrandlabWebVitalRating\n navigationType?: string\n}\n\nconst WEB_VITAL_NAMES = new Set<BrandlabWebVitalName>(['CLS', 'FCP', 'INP', 'LCP', 'TTFB'])\nconst WEB_VITAL_RATINGS = new Set<BrandlabWebVitalRating>([\n 'good',\n 'needs-improvement',\n 'poor',\n])\nconst WEB_VITAL_NAVIGATION_TYPES = new Set([\n 'navigate',\n 'reload',\n 'back-forward',\n 'back-forward-cache',\n 'prerender',\n 'restore',\n])\n\n/** Privacy-safe callback for Next's useReportWebVitals hook. */\nexport function reportBrandlabWebVital(\n metric: BrandlabWebVitalMetric,\n config: Pick<\n BrandlabBrowserAnalyticsConfig,\n 'enabled' | 'webVitalsEnabled' | 'measurementId' | 'gtag'\n >,\n) {\n if (\n !WEB_VITAL_NAMES.has(metric.name) ||\n !WEB_VITAL_RATINGS.has(metric.rating) ||\n !Number.isFinite(metric.value) ||\n metric.value < 0 ||\n !Number.isFinite(metric.delta)\n ) {\n return false\n }\n const navigationType = WEB_VITAL_NAVIGATION_TYPES.has(metric.navigationType ?? '')\n ? metric.navigationType\n : undefined\n return sendBrandlabAnalyticsEvent({\n enabled: config.enabled && config.webVitalsEnabled !== false,\n measurementId: config.measurementId,\n gtag: config.gtag ?? getBrowserGtag(),\n eventName: 'web_vital',\n params: {\n metric_name: metric.name,\n metric_value: metric.value,\n metric_delta: metric.delta,\n metric_rating: metric.rating,\n ...(navigationType ? { navigation_type: navigationType } : {}),\n },\n })\n}\n\nexport function createBrandlabWebVitalsReporter(\n config: Pick<\n BrandlabBrowserAnalyticsConfig,\n 'enabled' | 'webVitalsEnabled' | 'measurementId' | 'gtag'\n >,\n) {\n return (metric: BrandlabWebVitalMetric) => reportBrandlabWebVital(metric, config)\n}\n\nexport function getBrowserGtag(win: Window = window): GtagTransport | undefined {\n const candidate = (win as Window & { gtag?: GtagTransport }).gtag\n return typeof candidate === 'function' ? candidate : undefined\n}\n\nfunction safePagePath(value: string) {\n const path = value.trim().split(/[?#]/, 1)[0]\n if (!path || path.length > 500) return '/'\n try {\n return normalizeBrandlabRoutePath(path)\n } catch {\n return '/'\n }\n}\n\nfunction safeSlug(value: string | undefined) {\n const normalized = value?.trim().toLowerCase()\n return normalized && /^[a-z0-9]+(?:[-_][a-z0-9]+)*$/.test(normalized) && normalized.length <= 80\n ? normalized\n : undefined\n}\n\nfunction sanitizeContactParams(params: SafeContactAnalyticsParams | undefined) {\n return {\n ...(safeSlug(params?.page_template)\n ? { page_template: safeSlug(params?.page_template) }\n : {}),\n ...(safeSlug(params?.service_slug)\n ? { service_slug: safeSlug(params?.service_slug) }\n : {}),\n ...(safeSlug(params?.location_slug)\n ? { location_slug: safeSlug(params?.location_slug) }\n : {}),\n }\n}\n\nfunction sanitizeAdsParams(params: SafeContactAdsParams | undefined) {\n return {\n ...(params?.currency && /^[A-Z]{3}$/.test(params.currency)\n ? { currency: params.currency }\n : {}),\n ...(typeof params?.value === 'number' && Number.isFinite(params.value) && params.value >= 0\n ? { value: params.value }\n : {}),\n }\n}\n\nexport function isTrackableContactActionResult(\n result: ContactActionResult,\n): result is Extract<ContactActionResult, { ok: true; accepted: true }> {\n return result.ok && result.accepted && result.trackConversion\n}\n\nexport function trackDeliveredContact(\n result: ContactActionResult,\n config: BrandlabBrowserAnalyticsConfig,\n options: {\n pagePath: string\n params?: SafeContactAnalyticsParams\n adsParams?: SafeContactAdsParams\n },\n): ContactFormConversionResult {\n if (!isTrackableContactActionResult(result)) {\n return { ga4Sent: false, enhancedConversionSent: false, adsConversionSent: false }\n }\n return sendContactFormConversion({\n ...config,\n gtag: config.gtag ?? getBrowserGtag(),\n pagePath: safePagePath(options.pagePath),\n submissionId: result.confirmationId,\n params: sanitizeContactParams(options.params),\n adsParams: sanitizeAdsParams(options.adsParams),\n })\n}\n\nfunction explicitRoleValue(\n definition: BrandlabContactDefinition,\n formData: FormData,\n role: 'email' | 'phone',\n) {\n const field = definition.fields.find((candidate) => candidate.role === role)\n if (!field) return undefined\n const value = formData.get(field.name)\n return typeof value === 'string' ? value : undefined\n}\n\n/**\n * Sends Enhanced Conversions only after provider acceptance. Email and phone may\n * only be sourced from fields with explicit declarative roles; they never enter\n * the GA4 parameter object.\n */\nexport function trackDeliveredContactWithEnhancedConversions(\n result: ContactActionResult,\n config: BrandlabBrowserAnalyticsConfig,\n options: {\n pagePath: string\n definition: BrandlabContactDefinition\n formData: FormData\n /** Live Consent Mode decision for ad_user_data; absence is deny. */\n adUserDataConsent: boolean\n params?: SafeContactAnalyticsParams\n adsParams?: SafeContactAdsParams\n },\n): ContactFormConversionResult {\n if (!isTrackableContactActionResult(result)) {\n return { ga4Sent: false, enhancedConversionSent: false, adsConversionSent: false }\n }\n const email = normalizeEnhancedConversionEmail(\n explicitRoleValue(options.definition, options.formData, 'email'),\n )\n const phone = normalizeEnhancedConversionPhone(\n explicitRoleValue(options.definition, options.formData, 'phone'),\n )\n return sendContactFormConversion({\n ...config,\n gtag: config.gtag ?? getBrowserGtag(),\n pagePath: safePagePath(options.pagePath),\n submissionId: result.confirmationId,\n params: sanitizeContactParams(options.params),\n adsParams: sanitizeAdsParams(options.adsParams),\n enhancedConversionsEnabled: config.enhancedConversionsEnabled === true,\n adUserDataConsent: options.adUserDataConsent === true,\n ...((email || phone) ? { enhancedConversion: { email, phone } } : {}),\n })\n}\n\nexport function trackPhoneCall(\n input: { pagePath: string; placement: PhoneCallPlacement },\n config: Pick<BrandlabBrowserAnalyticsConfig, 'enabled' | 'measurementId' | 'gtag'>,\n) {\n if (!PHONE_CALL_PLACEMENTS.includes(input.placement)) return false\n return sendBrandlabAnalyticsEvent({\n ...config,\n gtag: config.gtag ?? getBrowserGtag(),\n eventName: 'phone_call',\n params: {\n event_category: 'lead',\n page_path: safePagePath(input.pagePath),\n placement: input.placement,\n },\n })\n}\n\nexport const LEAD_FORM_ERROR_STAGES = [\n 'validation',\n 'submission',\n 'delivery',\n 'unknown',\n] as const\nexport type LeadFormErrorStage = (typeof LEAD_FORM_ERROR_STAGES)[number]\n\nexport const LEAD_CTA_PLACEMENTS = [\n 'header',\n 'footer',\n 'hero',\n 'section',\n 'navigation',\n 'floating',\n 'page',\n] as const\nexport type LeadCtaPlacement = (typeof LEAD_CTA_PLACEMENTS)[number]\n\ntype LeadDiagnosticConfig = Pick<\n BrandlabBrowserAnalyticsConfig,\n 'enabled' | 'leadDiagnosticsEnabled' | 'measurementId' | 'gtag'\n>\n\nexport function trackLeadFormStart(\n input: { pagePath: string; formId: string; pageTemplate?: string },\n config: LeadDiagnosticConfig,\n) {\n const formId = safeSlug(input.formId)\n if (!formId) return false\n return sendLeadDiagnosticEvent('lead_form_start', {\n form_id: formId,\n page_path: safePagePath(input.pagePath),\n ...(safeSlug(input.pageTemplate) ? { page_template: safeSlug(input.pageTemplate) } : {}),\n }, config)\n}\n\nexport function trackLeadFormError(\n input: {\n pagePath: string\n formId: string\n stage: LeadFormErrorStage\n errorCount: number\n },\n config: LeadDiagnosticConfig,\n) {\n const formId = safeSlug(input.formId)\n if (\n !formId ||\n !LEAD_FORM_ERROR_STAGES.includes(input.stage) ||\n !Number.isInteger(input.errorCount) ||\n input.errorCount < 1 ||\n input.errorCount > 50\n ) {\n return false\n }\n return sendLeadDiagnosticEvent('lead_form_error', {\n form_id: formId,\n page_path: safePagePath(input.pagePath),\n error_stage: input.stage,\n error_count: input.errorCount,\n }, config)\n}\n\nexport function trackLeadCtaClick(\n input: {\n pagePath: string\n ctaId: string\n placement: LeadCtaPlacement\n },\n config: LeadDiagnosticConfig,\n) {\n const ctaId = safeSlug(input.ctaId)\n if (!ctaId || !LEAD_CTA_PLACEMENTS.includes(input.placement)) return false\n return sendLeadDiagnosticEvent('lead_cta_click', {\n cta_id: ctaId,\n page_path: safePagePath(input.pagePath),\n placement: input.placement,\n }, config)\n}\n\nfunction sendLeadDiagnosticEvent(\n eventName: 'lead_form_start' | 'lead_form_error' | 'lead_cta_click',\n params: Record<string, unknown>,\n config: LeadDiagnosticConfig,\n) {\n return sendBrandlabAnalyticsEvent({\n enabled: config.enabled && config.leadDiagnosticsEnabled === true,\n measurementId: config.measurementId,\n gtag: config.gtag ?? getBrowserGtag(),\n eventName,\n params,\n })\n}\n\nfunction safeAdditionalEventValue(\n value: unknown,\n policy: NonNullable<BrandlabAnalyticsContract['additionalEvents']>[number]['parameters'][number],\n) {\n if (policy.type === 'boolean') return typeof value === 'boolean' ? value : undefined\n if (policy.type === 'count') {\n const minimum = policy.minimum ?? 0\n const maximum = policy.maximum ?? 100_000\n return typeof value === 'number' && Number.isInteger(value) && value >= minimum && value <= maximum\n ? value\n : undefined\n }\n if (typeof value !== 'string') return undefined\n const normalized = value.trim()\n if (policy.type === 'enum') return policy.values.includes(normalized) ? normalized : undefined\n if (!/^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/.test(normalized) || normalized.length > 80) {\n return undefined\n }\n const digits = normalized.replace(/\\D/g, '')\n return digits.length >= 4 || /^[a-f0-9]{24,}$/.test(normalized)\n ? undefined\n : normalized\n}\n\nexport function trackBrandlabBrowserEvent(\n eventName: string,\n params: Record<string, unknown>,\n config: Pick<BrandlabBrowserAnalyticsConfig, 'enabled' | 'measurementId' | 'gtag'> & {\n contract: BrandlabAnalyticsContract\n },\n) {\n defineAnalyticsContract(config.contract)\n const event = config.contract.additionalEvents?.find(\n (candidate) => candidate.name === eventName,\n )\n if (!event) return false\n const safeParams = Object.fromEntries(\n Object.entries(params).flatMap(([key, value]) => {\n const policy = event.parameters.find((candidate) => candidate.key === key)\n if (!policy) return []\n const safeValue = safeAdditionalEventValue(value, policy)\n return safeValue === undefined ? [] : [[key, safeValue]]\n }),\n )\n return sendBrandlabAnalyticsEvent({\n ...config,\n gtag: config.gtag ?? getBrowserGtag(),\n eventName,\n params: safeParams,\n })\n}\n"]}
|
package/dist/blog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.js","sourceRoot":"","sources":["../src/blog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blog.js","sourceRoot":"","sources":["../src/blog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,GAGpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,EACL,cAAc,GAGf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAqB,MAAM,sCAAsC,CAAA;AACnF,OAAO,EACL,0BAA0B,GAG3B,MAAM,eAAe,CAAA;AAiBtB,SAAS,yBAAyB,CAChC,OAA4C;IAE5C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACrC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACxF,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,cAAc,iBAAiB,CAAC,EAAE,mBAAmB,iBAAiB,CAAC,OAAO,iBAAiB,OAAO,CAAC,OAAO,IAAI,CACnH,CAAA;IACH,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACtF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;IAC3F,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAClF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAA;IACpD,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,EAAE,qCAAqC,CAAC,CAAA;QAC7E,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,EAAE,oCAAoC,CACtE,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACjE,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAC1C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CACpE,CAAA;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,oBAAoB,gBAAgB,CAAC,EAAE,qBAAqB,OAAO,CAAC,OAAO,kBAAkB,CAC9F,CAAA;IACH,CAAC;IAED,OAAO;QACL,iBAAiB,EAAE,SAAS;QAC5B,aAAa,CAAC,IAAY;YACxB,OAAO,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QACvD,CAAC;QACD,oBAAoB;YAClB,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC;QACD,gBAAgB,CAAC,IAAY;YAC3B,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YACrE,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAA;YAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAA;YACtD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAChD,OAAO,aAAa,CAAC;gBACnB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,OAAO,EAAE;oBACP,aAAa,EAAE,IAAI,CAAC,WAAW;oBAC/B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;iBACnD;gBACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD,CAAC,CAAA;QACJ,CAAC;QACD,cAAc,CAAC,IAAY;YACzB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YACrE,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAA;YAC3B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAChD,MAAM,GAAG,GAAG,cAAc,CACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,EACxB,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,CAClC,CAAA;YACD,OAAO,sBAAsB,CAAC;gBAC5B,EAAE,EAAE,GAAG,GAAG,UAAU;gBACpB,GAAG;gBACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa,EAAE,IAAI,CAAC,WAAW;gBAC/B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;gBACtD,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,GAAG,CAAC,IAAI,CAAC,KAAK;oBACZ,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;oBAChF,CAAC,CAAC,EAAE,CAAC;gBACP,kBAAkB,EAAE,GAAG;aACxB,CAAC,CAAA;QACJ,CAAC;QACD,iBAAiB;YACf,OAAO,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBAChD,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;oBAAE,OAAO,EAAE,CAAA;gBACzC,OAAO,CAAC;wBACN,GAAG,EAAE,cAAc,CACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,EACxB,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,CAClC;wBACD,YAAY,EACV,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW;qBACrE,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,eAAe,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;YACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YAC7D,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,EAAE,CAAA;YACnC,OAAO,SAAS,EAAE;iBACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;iBACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC5D,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;iBAC1C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACxG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;iBACf,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACvC,CAAC;QACD,SAAS;YACP,IAAI,CAAC,OAAO,CAAC,GAAG;gBAAE,OAAO,SAAS,CAAA;YAClC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,CAAA;YACxF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAC7D,MAAM,KAAK,GAAG,SAAS,EAAE;iBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBAChD,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;oBAAE,OAAO,EAAE,CAAA;gBACzC,MAAM,GAAG,GAAG,cAAc,CACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,EACxB,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,CAClC,CAAA;gBACD,OAAO;oBACL,YAAY;oBACZ,gBAAgB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;oBAClD,eAAe,SAAS,CAAC,GAAG,CAAC,SAAS;oBACtC,kCAAkC,SAAS,CAAC,GAAG,CAAC,SAAS;oBACzD,sBAAsB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB;oBACjE,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,YAAY;oBACtE,aAAa;iBACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACd,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAA;YACb,OAAO;gBACL,wCAAwC;gBACxC,qBAAqB;gBACrB,aAAa;gBACb,cAAc,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU;gBACpD,aAAa,SAAS,CAAC,OAAO,CAAC,SAAS;gBACxC,oBAAoB,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,gBAAgB;gBACtE,iEAAiE,SAAS,CAAC,OAAO,CAAC,2CAA2C;gBAC9H,KAAK;gBACL,cAAc;gBACd,QAAQ;aACT,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAY;YACxB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YACrE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACjF,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,KAAa;IACzD,IAAI,QAAa,CAAA;IACjB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAOD,MAAM,UAAU,8BAA8B,CAC5C,OAAsD;IAEtD,OAAO,yBAAyB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,OAAsD;IAEtD,OAAO,yBAAyB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,YAAY,CAAC,IAAsB,EAAE,MAA4B;IACxE,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,EAAE,sCAAsC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;IACrG,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAkC;IAC3D,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAU,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAA;QAChF,IAAI,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAwB,EAAE,SAA2B;IACzE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IACvC,OAAO,CACL,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;QACtF,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAC7D,CAAA;AACH,CAAC","sourcesContent":["import {\n defineBlogPost,\n getPublishedBlogPosts,\n isPublishedBlogPost,\n type BrandlabBlogAdapter,\n type BrandlabBlogPost,\n} from '@brandlab-digital/site-core/blog'\nimport { getAbsoluteUrl } from '@brandlab-digital/site-core/metadata'\nimport {\n getRouteByPath,\n type BrandlabRoute,\n type BrandlabRouteCatalog,\n} from '@brandlab-digital/site-core/routes'\nimport { buildBlogPostingSchema } from '@brandlab-digital/site-core/schema'\nimport { escapeXml, type SitemapEntry } from '@brandlab-digital/site-core/sitemaps'\nimport {\n createRouteMetadataBuilder,\n type BrandlabMetadataDefaults,\n type NextCompatibleMetadata,\n} from './metadata.js'\n\nexport interface BrandlabBlogAdapterOptions<Content> {\n adapter: BrandlabBlogAdapter\n posts: readonly BrandlabBlogPost[]\n metadata: BrandlabMetadataDefaults\n publisherId: string\n resolveContent: (post: BrandlabBlogPost) => Content | Promise<Content>\n now?: () => Date\n routes: BrandlabRouteCatalog\n rss?: {\n title: string\n description: string\n path?: string\n }\n}\n\nfunction createBrandlabBlogAdapter<Content>(\n options: BrandlabBlogAdapterOptions<Content>,\n) {\n options.posts.forEach(defineBlogPost)\n assertUniquePosts(options.posts)\n const mismatchedAdapter = options.posts.find((post) => post.adapter !== options.adapter)\n if (mismatchedAdapter) {\n throw new Error(\n `Blog post \"${mismatchedAdapter.id}\" uses adapter \"${mismatchedAdapter.adapter}\" instead of \"${options.adapter}\".`,\n )\n }\n const eligiblePosts = options.posts.filter((post) => post.adapter === options.adapter)\n const published = () => getPublishedBlogPosts(eligiblePosts, options.now?.() ?? new Date())\n const routeMetadata = createRouteMetadataBuilder(options.metadata, options.routes)\n const validationTime = options.now?.() ?? new Date()\n eligiblePosts.forEach((post) => {\n const route = getBlogRoute(post, options.routes)\n if (route.kind !== 'blog-post') {\n throw new Error(`Blog post \"${post.id}\" must reference a blog-post route.`)\n }\n if (!isPublishedBlogPost(post, validationTime) && route.indexing === 'index') {\n throw new Error(\n `Unpublished blog post \"${post.id}\" must not use an indexable route.`,\n )\n }\n })\n const postPaths = new Set(eligiblePosts.map((post) => post.path))\n const routeWithoutPost = options.routes.find(\n (route) => route.kind === 'blog-post' && !postPaths.has(route.path),\n )\n if (routeWithoutPost) {\n throw new Error(\n `Blog-post route \"${routeWithoutPost.id}\" has no matching ${options.adapter} content record.`,\n )\n }\n\n return {\n getPublishedPosts: published,\n getPostBySlug(slug: string) {\n return published().find((post) => post.slug === slug)\n },\n generateStaticParams() {\n return published().map((post) => ({ slug: post.slug }))\n },\n generateMetadata(slug: string): NextCompatibleMetadata | undefined {\n const post = published().find((candidate) => candidate.slug === slug)\n if (!post) return undefined\n const metadataTitle = post.seo?.title ?? post.headline\n const route = getBlogRoute(post, options.routes)\n return routeMetadata({\n routeId: route.id,\n title: metadataTitle,\n description: post.description,\n ...(post.seo?.titleMode ? { titleMode: post.seo.titleMode } : {}),\n article: {\n publishedTime: post.publishedAt,\n ...(post.modifiedAt ? { modifiedTime: post.modifiedAt } : {}),\n authors: post.authors.map((author) => author.name),\n },\n ...(post.image ? { socialImage: post.image } : {}),\n })\n },\n generateSchema(slug: string) {\n const post = published().find((candidate) => candidate.slug === slug)\n if (!post) return undefined\n const route = getBlogRoute(post, options.routes)\n const url = getAbsoluteUrl(\n options.metadata.siteUrl,\n route.canonicalPath ?? route.path,\n )\n return buildBlogPostingSchema({\n id: `${url}#article`,\n url,\n headline: post.headline,\n description: post.description,\n datePublished: post.publishedAt,\n ...(post.modifiedAt ? { dateModified: post.modifiedAt } : {}),\n authorNames: post.authors.map((author) => author.name),\n publisherId: options.publisherId,\n ...(post.image\n ? { imageUrls: [resolveBlogAssetUrl(options.metadata.siteUrl, post.image.url)] }\n : {}),\n mainEntityOfPageId: url,\n })\n },\n getSitemapEntries(): SitemapEntry[] {\n return published().flatMap((post) => {\n const route = getBlogRoute(post, options.routes)\n if (route.indexing !== 'index') return []\n return [{\n url: getAbsoluteUrl(\n options.metadata.siteUrl,\n route.canonicalPath ?? route.path,\n ),\n lastModified:\n route.lastSignificantChange ?? post.modifiedAt ?? post.publishedAt,\n }]\n })\n },\n getRelatedPosts(slug: string, limit = 3) {\n const source = published().find((post) => post.slug === slug)\n if (!source || limit < 1) return []\n return published()\n .filter((post) => post.slug !== slug)\n .map((post) => ({ post, score: relatedScore(source, post) }))\n .filter((candidate) => candidate.score > 0)\n .sort((left, right) => right.score - left.score || right.post.headline.localeCompare(left.post.headline))\n .slice(0, limit)\n .map((candidate) => candidate.post)\n },\n renderRss() {\n if (!options.rss) return undefined\n const feedUrl = getAbsoluteUrl(options.metadata.siteUrl, options.rss.path ?? '/rss.xml')\n const siteUrl = getAbsoluteUrl(options.metadata.siteUrl, '/')\n const items = published()\n .map((post) => {\n const route = getBlogRoute(post, options.routes)\n if (route.indexing !== 'index') return ''\n const url = getAbsoluteUrl(\n options.metadata.siteUrl,\n route.canonicalPath ?? route.path,\n )\n return [\n ' <item>',\n ` <title>${escapeXml(post.headline)}</title>`,\n ` <link>${escapeXml(url)}</link>`,\n ` <guid isPermaLink=\"true\">${escapeXml(url)}</guid>`,\n ` <description>${escapeXml(post.description)}</description>`,\n ` <pubDate>${new Date(post.publishedAt).toUTCString()}</pubDate>`,\n ' </item>',\n ].join('\\n')\n })\n .join('\\n')\n return [\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>',\n '<rss version=\"2.0\">',\n ' <channel>',\n ` <title>${escapeXml(options.rss.title)}</title>`,\n ` <link>${escapeXml(siteUrl)}</link>`,\n ` <description>${escapeXml(options.rss.description)}</description>`,\n ` <atom:link xmlns:atom=\"http://www.w3.org/2005/Atom\" href=\"${escapeXml(feedUrl)}\" rel=\"self\" type=\"application/rss+xml\"/>`,\n items,\n ' </channel>',\n '</rss>',\n ].filter(Boolean).join('\\n')\n },\n async resolve(slug: string) {\n const post = published().find((candidate) => candidate.slug === slug)\n return post ? { post, content: await options.resolveContent(post) } : undefined\n },\n }\n}\n\nfunction resolveBlogAssetUrl(siteUrl: string, value: string) {\n let resolved: URL\n try {\n resolved = new URL(value, getAbsoluteUrl(siteUrl, '/'))\n } catch {\n throw new Error('Blog image URL must resolve to absolute HTTPS.')\n }\n if (resolved.protocol !== 'https:' || resolved.username || resolved.password) {\n throw new Error('Blog image URL must resolve to absolute HTTPS.')\n }\n return resolved.href\n}\n\nexport type BrandlabRouteAwareBlogAdapterOptions<Content> = Omit<\n BrandlabBlogAdapterOptions<Content>,\n 'adapter' | 'routes'\n> & { routes: BrandlabRouteCatalog }\n\nexport function createRouteAwareMdxBlogAdapter<Content>(\n options: BrandlabRouteAwareBlogAdapterOptions<Content>,\n) {\n return createBrandlabBlogAdapter({ ...options, adapter: 'mdx' })\n}\n\nexport function createRouteAwareStructuredBlogAdapter<Content>(\n options: BrandlabRouteAwareBlogAdapterOptions<Content>,\n) {\n return createBrandlabBlogAdapter({ ...options, adapter: 'structured' })\n}\n\nfunction getBlogRoute(post: BrandlabBlogPost, routes: BrandlabRouteCatalog): BrandlabRoute {\n const route = getRouteByPath(routes, post.path)\n if (!route) throw new Error(`Blog post \"${post.id}\" has no route-catalog record for \"${post.path}\".`)\n return route\n}\n\nfunction assertUniquePosts(posts: readonly BrandlabBlogPost[]) {\n for (const field of ['id', 'slug', 'path'] as const) {\n const values = posts.map((post) => post[field])\n const duplicate = values.find((value, index) => values.indexOf(value) !== index)\n if (duplicate) throw new Error(`Blog posts contain duplicate ${field} \"${duplicate}\".`)\n }\n}\n\nfunction relatedScore(source: BrandlabBlogPost, candidate: BrandlabBlogPost) {\n const categories = new Set(source.categories ?? [])\n const tags = new Set(source.tags ?? [])\n return (\n (candidate.categories ?? []).filter((category) => categories.has(category)).length * 2 +\n (candidate.tags ?? []).filter((tag) => tags.has(tag)).length\n )\n}\n"]}
|
package/dist/breadcrumbs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../src/breadcrumbs.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../src/breadcrumbs.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n buildBreadcrumbs,\n buildRouteBreadcrumbs,\n type BreadcrumbItem,\n} from '@brandlab-digital/site-core/breadcrumbs'\nimport { getAbsoluteUrl } from '@brandlab-digital/site-core/metadata'\nimport {\n buildBreadcrumbListSchema,\n createSchema,\n type Schema,\n} from '@brandlab-digital/site-core/schema'\nimport {\n getRouteById,\n type BrandlabRouteCatalog,\n} from '@brandlab-digital/site-core/routes'\nimport type { ReactNode } from 'react'\n\nexport type BreadcrumbLinkRenderer = (input: {\n href: string\n children: ReactNode\n className?: string\n}) => ReactNode\n\nexport interface BrandlabBreadcrumbsProps {\n items: readonly BreadcrumbItem[]\n ariaLabel?: string\n className?: string\n listClassName?: string\n itemClassName?: string\n linkClassName?: string\n currentClassName?: string\n separatorClassName?: string\n separator?: ReactNode\n renderLink?: BreadcrumbLinkRenderer\n}\n\nexport type BrandlabRouteBreadcrumbSchema = Schema<\n ReturnType<typeof buildBreadcrumbListSchema> & { '@id': string }\n>\n\n/**\n * One route lineage feeds both the visible breadcrumb trail and its\n * BreadcrumbList JSON-LD. Candidate projects render both fields from this\n * output instead of rebuilding either representation locally.\n */\nexport interface BrandlabRouteBreadcrumbOutput {\n readonly routeId: string\n readonly canonicalUrl: string\n readonly items: readonly BreadcrumbItem[]\n readonly schema: BrandlabRouteBreadcrumbSchema\n}\n\nexport function createRouteBreadcrumbOutput(input: {\n routeId: string\n routes: BrandlabRouteCatalog\n siteUrl: string\n}): BrandlabRouteBreadcrumbOutput {\n const route = getRouteById(input.routes, input.routeId)\n if (!route) throw new Error(`Unknown breadcrumb route ID \"${input.routeId}\".`)\n\n const items = buildRouteBreadcrumbs(input.routeId, input.routes)\n const canonicalUrl = getAbsoluteUrl(input.siteUrl, route.canonicalPath ?? route.path)\n const schema = createSchema({\n '@id': `${canonicalUrl}#breadcrumb`,\n ...buildBreadcrumbListSchema([...items], {\n absoluteUrl: (path) => getAbsoluteUrl(input.siteUrl, path),\n }),\n })\n const output = { routeId: input.routeId, canonicalUrl, items, schema }\n assertRouteBreadcrumbOutput(output)\n return output\n}\n\nfunction assertRouteBreadcrumbOutput(output: BrandlabRouteBreadcrumbOutput) {\n if (\n output.schema['@context'] !== 'https://schema.org' ||\n output.schema['@type'] !== 'BreadcrumbList' ||\n output.schema['@id'] !== `${output.canonicalUrl}#breadcrumb`\n ) {\n throw new Error('Route breadcrumb schema identity does not match its canonical route output.')\n }\n\n let canonicalOrigin: string\n try {\n const canonical = new URL(output.canonicalUrl)\n if (\n canonical.protocol !== 'https:' ||\n canonical.username ||\n canonical.password ||\n canonical.search ||\n canonical.hash\n ) {\n throw new Error('invalid canonical URL')\n }\n canonicalOrigin = canonical.origin\n } catch {\n throw new Error('Route breadcrumb canonicalUrl must be an absolute HTTPS URL.')\n }\n\n const schemaItems = output.schema.itemListElement\n if (schemaItems.length !== output.items.length) {\n throw new Error('Visible breadcrumb items and BreadcrumbList JSON-LD have different lengths.')\n }\n\n output.items.forEach((item, index) => {\n const schemaItem = schemaItems[index]\n if (\n !schemaItem ||\n schemaItem.position !== index + 1 ||\n schemaItem.name !== item.name\n ) {\n throw new Error(`Visible breadcrumb item ${index + 1} does not match BreadcrumbList JSON-LD.`)\n }\n\n if (item.href) {\n const expectedUrl = getAbsoluteUrl(canonicalOrigin, item.href)\n if (\n schemaItem.item?.['@id'] !== expectedUrl ||\n schemaItem.item.url !== expectedUrl ||\n schemaItem.item.name !== item.name\n ) {\n throw new Error(`Visible breadcrumb item ${index + 1} has divergent JSON-LD ownership.`)\n }\n } else if (schemaItem.item !== undefined) {\n throw new Error('The current visible breadcrumb must also be current in BreadcrumbList JSON-LD.')\n }\n })\n}\n\nexport function createBreadcrumbItems(pathname: string) {\n return buildBreadcrumbs(pathname)\n}\n\nexport function BrandlabBreadcrumbs({\n items,\n ariaLabel = 'Breadcrumb',\n separator = '/',\n renderLink,\n ...classes\n}: BrandlabBreadcrumbsProps) {\n return (\n <nav aria-label={ariaLabel} className={classes.className}>\n <ol className={classes.listClassName}>\n {items.map((item, index) => {\n const current = index === items.length - 1\n const content =\n !current && item.href ? (\n renderLink ? (\n renderLink({\n href: item.href,\n children: item.name,\n className: classes.linkClassName,\n })\n ) : (\n <a href={item.href} className={classes.linkClassName}>\n {item.name}\n </a>\n )\n ) : (\n <span aria-current={current ? 'page' : undefined} className={classes.currentClassName}>\n {item.name}\n </span>\n )\n\n return (\n <li className={classes.itemClassName} key={`${item.href ?? 'current'}:${item.name}`}>\n {index > 0 ? (\n <span aria-hidden=\"true\" className={classes.separatorClassName}>\n {separator}\n </span>\n ) : null}\n {content}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n\nexport function BrandlabPathBreadcrumbs(\n props: Omit<BrandlabBreadcrumbsProps, 'items'> & { pathname: string },\n) {\n const { pathname, ...breadcrumbProps } = props\n return <BrandlabBreadcrumbs {...breadcrumbProps} items={createBreadcrumbItems(pathname)} />\n}\n\nexport type BrandlabRouteBreadcrumbsProps = Omit<BrandlabBreadcrumbsProps, 'items'> & {\n output: BrandlabRouteBreadcrumbOutput\n}\n\nexport function BrandlabRouteBreadcrumbs(props: BrandlabRouteBreadcrumbsProps) {\n const { output, ...breadcrumbProps } = props\n assertRouteBreadcrumbOutput(output)\n return <BrandlabBreadcrumbs {...breadcrumbProps} items={output.items} />\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments-client.js","sourceRoot":"","sources":["../../src/contact/attachments-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attachments-client.js","sourceRoot":"","sources":["../../src/contact/attachments-client.ts"],"names":[],"mappings":"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","sourcesContent":["'use client'\n\nimport {\n DEFAULT_CONTACT_ATTACHMENT_POLICY,\n contactAttachmentTypeLabel,\n resolveContactAttachmentType,\n validateContactAttachment,\n type ContactAttachmentPolicy,\n} from '@brandlab-digital/site-core/contact'\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n type ChangeEvent,\n type DragEvent,\n} from 'react'\nimport { normalizeContactUploadFile } from './client.js'\n\nexport interface BrandlabContactAttachmentPreview {\n file: File\n preview: string\n}\n\nexport interface UseBrandlabContactAttachmentsOptions {\n policy?: ContactAttachmentPolicy\n compressImage?: (file: File) => Promise<File>\n createObjectUrl?: (file: File) => string\n revokeObjectUrl?: (url: string) => void\n}\n\nexport interface UseBrandlabContactAttachmentsResult {\n images: BrandlabContactAttachmentPreview[]\n isDragging: boolean\n isProcessing: boolean\n errorMessage: string | null\n maxImages: number\n addFiles: (files: readonly File[]) => Promise<void>\n clearErrorMessage: () => void\n clearImages: () => void\n handleImageChange: (event: ChangeEvent<HTMLInputElement>) => Promise<void>\n handleDragLeave: (event: DragEvent) => void\n handleDragOver: (event: DragEvent) => void\n handleDrop: (event: DragEvent) => Promise<void>\n removeImage: (index: number) => void\n}\n\nconst DEFAULT_COMPRESSED_IMAGE_SIZE_MB = 0.7\n\nexport async function compressBrandlabContactImage(file: File): Promise<File> {\n try {\n const contentType = resolveContactAttachmentType(file.name, file.type)\n if (!contentType) return file\n const imported = await import('browser-image-compression')\n const imageCompression = imported.default as unknown as (\n image: File,\n options: {\n maxSizeMB: number\n maxWidthOrHeight: number\n useWebWorker: boolean\n fileType: string\n initialQuality: number\n },\n ) => Promise<File>\n const processed = await imageCompression(file, {\n maxSizeMB: DEFAULT_COMPRESSED_IMAGE_SIZE_MB,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n fileType: contentType,\n initialQuality: 0.7,\n })\n return normalizeContactUploadFile(file, processed)\n } catch {\n return file\n }\n}\n\nfunction maximumImagesMessage(policy: ContactAttachmentPolicy) {\n return `You can add up to ${policy.maxFiles} images.`\n}\n\nfunction maximumTotalSizeMessage(policy: ContactAttachmentPolicy) {\n const maximumMegabytes = Math.round((policy.maxTotalSizeBytes / 1_000_000) * 10) / 10\n return `Your images are too large. Please use fewer images or keep the total under ${maximumMegabytes} MB.`\n}\n\nexport function useBrandlabContactAttachments(\n options: UseBrandlabContactAttachmentsOptions = {},\n): UseBrandlabContactAttachmentsResult {\n const policy = options.policy ?? DEFAULT_CONTACT_ATTACHMENT_POLICY\n const compressImage = options.compressImage ?? compressBrandlabContactImage\n const createObjectUrl = options.createObjectUrl ?? URL.createObjectURL\n const revokeObjectUrl = options.revokeObjectUrl ?? URL.revokeObjectURL\n const [images, setImages] = useState<BrandlabContactAttachmentPreview[]>([])\n const [isDragging, setIsDragging] = useState(false)\n const [isProcessing, setIsProcessing] = useState(false)\n const [errorMessage, setErrorMessage] = useState<string | null>(null)\n const imagesRef = useRef<BrandlabContactAttachmentPreview[]>([])\n const processingRef = useRef(false)\n\n imagesRef.current = images\n\n useEffect(() => {\n return () => {\n imagesRef.current.forEach((image) => revokeObjectUrl(image.preview))\n }\n }, [revokeObjectUrl])\n\n const addFiles = useCallback(\n async (files: readonly File[]) => {\n if (files.length === 0 || processingRef.current) return\n\n const availableSlots = policy.maxFiles - imagesRef.current.length\n if (availableSlots <= 0) {\n setErrorMessage(maximumImagesMessage(policy))\n return\n }\n\n processingRef.current = true\n setIsProcessing(true)\n setErrorMessage(null)\n const prepared: BrandlabContactAttachmentPreview[] = []\n\n try {\n const selectedFiles = files.slice(0, availableSlots)\n for (const file of selectedFiles) {\n if (!resolveContactAttachmentType(file.name, file.type, policy)) {\n throw new Error(\n `Please upload ${contactAttachmentTypeLabel(policy)} images only.`,\n )\n }\n\n const processed = await compressImage(file)\n const validation = validateContactAttachment(\n { filename: processed.name, size: processed.size, type: processed.type },\n policy,\n )\n if (!validation.ok) throw new Error(validation.message)\n\n prepared.push({\n file: processed,\n preview: createObjectUrl(processed),\n })\n }\n\n const totalSize = [...imagesRef.current, ...prepared].reduce(\n (total, image) => total + image.file.size,\n 0,\n )\n if (totalSize > policy.maxTotalSizeBytes) {\n throw new Error(maximumTotalSizeMessage(policy))\n }\n\n const nextImages = [...imagesRef.current, ...prepared]\n imagesRef.current = nextImages\n setImages(nextImages)\n if (files.length > availableSlots) {\n setErrorMessage(maximumImagesMessage(policy))\n }\n } catch (error) {\n prepared.forEach((image) => revokeObjectUrl(image.preview))\n setErrorMessage(\n error instanceof Error\n ? error.message\n : 'We could not prepare those images. Please try again.',\n )\n } finally {\n processingRef.current = false\n setIsProcessing(false)\n }\n },\n [compressImage, createObjectUrl, policy, revokeObjectUrl],\n )\n\n const handleImageChange = useCallback(\n async (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files ? Array.from(event.target.files) : []\n await addFiles(files)\n event.target.value = ''\n },\n [addFiles],\n )\n\n const handleDragOver = useCallback((event: DragEvent) => {\n event.preventDefault()\n setIsDragging(true)\n }, [])\n\n const handleDragLeave = useCallback((event: DragEvent) => {\n event.preventDefault()\n setIsDragging(false)\n }, [])\n\n const handleDrop = useCallback(\n async (event: DragEvent) => {\n event.preventDefault()\n setIsDragging(false)\n await addFiles(Array.from(event.dataTransfer.files))\n },\n [addFiles],\n )\n\n const removeImage = useCallback(\n (index: number) => {\n const removed = imagesRef.current[index]\n if (!removed) return\n revokeObjectUrl(removed.preview)\n const nextImages = imagesRef.current.filter((_, imageIndex) => imageIndex !== index)\n imagesRef.current = nextImages\n setImages(nextImages)\n setErrorMessage(null)\n },\n [revokeObjectUrl],\n )\n\n const clearImages = useCallback(() => {\n imagesRef.current.forEach((image) => revokeObjectUrl(image.preview))\n imagesRef.current = []\n setImages([])\n setErrorMessage(null)\n }, [revokeObjectUrl])\n\n return {\n images,\n isDragging,\n isProcessing,\n errorMessage,\n maxImages: policy.maxFiles,\n addFiles,\n clearErrorMessage: () => setErrorMessage(null),\n clearImages,\n handleImageChange,\n handleDragLeave,\n handleDragOver,\n handleDrop,\n removeImage,\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../src/contact/attribution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../src/contact/attribution.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n isContactVisitSource,\n type ContactAttributionSummary,\n type ContactVisitSource,\n} from '@brandlab-digital/site-core/contact'\nimport { normalizeBrandlabRoutePath } from '@brandlab-digital/site-core/routes'\n\nconst GOOGLE_ADS_CLICK_FIELDS = ['gclid', 'gbraid', 'wbraid', 'gad_source'] as const\nconst GOOGLE_ADS_SOURCES = new Set(['google', 'google-ads', 'google_ads', 'adwords'])\nconst PAID_MEDIA = new Set(['cpc', 'ppc', 'paid', 'paid-search', 'paidsearch'])\nconst GBP_CAMPAIGNS = new Set(['gbp', 'google-business-profile', 'business-profile'])\nconst GBP_SOURCES = new Set(['gbp', 'google-business-profile', 'google_business_profile'])\nconst SOCIAL_MEDIA = new Set(['social', 'social-media', 'paid-social', 'paidsocial'])\nconst SOCIAL_SOURCES = new Map([\n ['facebook', 'Facebook'],\n ['fb', 'Facebook'],\n ['instagram', 'Instagram'],\n ['ig', 'Instagram'],\n ['linkedin', 'LinkedIn'],\n ['tiktok', 'TikTok'],\n ['youtube', 'YouTube'],\n ['x', 'X'],\n ['twitter', 'X'],\n])\nconst SOCIAL_HOSTS = new Map([\n ['facebook.com', 'Facebook'],\n ['fb.com', 'Facebook'],\n ['instagram.com', 'Instagram'],\n ['linkedin.com', 'LinkedIn'],\n ['tiktok.com', 'TikTok'],\n ['youtube.com', 'YouTube'],\n ['youtu.be', 'YouTube'],\n ['x.com', 'X'],\n ['twitter.com', 'X'],\n])\n\nexport interface ContactAttributionEvidence {\n initialLandingPath: string\n search?: string\n referrer?: string\n siteOrigin?: string\n}\n\nfunction safeTrackingValue(value: string | null) {\n const normalized = value?.trim().toLowerCase()\n return normalized && normalized.length <= 80 && /^[a-z0-9][a-z0-9._-]*$/.test(normalized)\n ? normalized\n : undefined\n}\n\nfunction hostname(value: string | undefined) {\n if (!value) return undefined\n try {\n const parsed = new URL(value)\n if (!['http:', 'https:'].includes(parsed.protocol) || parsed.username || parsed.password) {\n return undefined\n }\n return parsed.hostname.toLowerCase().replace(/^www\\./, '')\n } catch {\n return undefined\n }\n}\n\nfunction socialLabel(value: string | undefined) {\n if (!value) return undefined\n const exact = SOCIAL_SOURCES.get(value)\n if (exact) return exact\n for (const [host, label] of SOCIAL_HOSTS) {\n if (value === host || value.endsWith(`.${host}`)) return label\n }\n return undefined\n}\n\nfunction isSearchHost(value: string | undefined) {\n if (!value) return false\n return (\n value === 'google.com' ||\n value.startsWith('google.') ||\n value.endsWith('.google.com') ||\n value === 'bing.com' ||\n value.endsWith('.bing.com') ||\n value === 'search.yahoo.com' ||\n value.endsWith('.search.yahoo.com') ||\n value === 'duckduckgo.com' ||\n value.endsWith('.duckduckgo.com') ||\n value === 'ecosia.org' ||\n value.endsWith('.ecosia.org') ||\n value === 'search.brave.com'\n )\n}\n\nexport function normalizeContactVisitSourceDetail(\n source: ContactVisitSource,\n value: string | undefined,\n) {\n if (source !== 'referral' && source !== 'social') return undefined\n const normalized = value?.trim()\n if (\n !normalized ||\n normalized.length > 100 ||\n /[\\u0000-\\u001f\\u007f]/.test(normalized) ||\n !/^[A-Za-z0-9][A-Za-z0-9 .'-]*$/.test(normalized)\n ) {\n return undefined\n }\n return normalized\n}\n\nexport function normalizeContactAttributionSummary(\n value: ContactAttributionSummary,\n): ContactAttributionSummary {\n const initialLandingPath = normalizeBrandlabRoutePath(value.initialLandingPath)\n if (!isContactVisitSource(value.visitSource)) {\n throw new Error('The contact visit source is invalid.')\n }\n const visitSourceDetail = normalizeContactVisitSourceDetail(\n value.visitSource,\n value.visitSourceDetail,\n )\n return Object.freeze({\n initialLandingPath,\n visitSource: value.visitSource,\n ...(visitSourceDetail ? { visitSourceDetail } : {}),\n })\n}\n\nexport function classifyContactAttribution(\n evidence: ContactAttributionEvidence,\n): ContactAttributionSummary {\n const initialLandingPath = normalizeBrandlabRoutePath(evidence.initialLandingPath)\n const params = new URLSearchParams(evidence.search?.replace(/^\\?/, '') ?? '')\n const source = safeTrackingValue(params.get('utm_source'))\n const medium = safeTrackingValue(params.get('utm_medium'))\n const campaign = safeTrackingValue(params.get('utm_campaign'))\n const referrerHost = hostname(evidence.referrer)\n const siteHost = hostname(evidence.siteOrigin)\n\n if (GOOGLE_ADS_CLICK_FIELDS.some((field) => params.has(field))) {\n return { initialLandingPath, visitSource: 'google-ads' }\n }\n if (source && GOOGLE_ADS_SOURCES.has(source) && medium && PAID_MEDIA.has(medium)) {\n return { initialLandingPath, visitSource: 'google-ads' }\n }\n if (\n ((source === 'google' && campaign && GBP_CAMPAIGNS.has(campaign)) ||\n (source && GBP_SOURCES.has(source))) &&\n (!medium || medium === 'organic' || medium === 'local' || medium === 'referral')\n ) {\n return { initialLandingPath, visitSource: 'google-business-profile' }\n }\n if (medium === 'email') {\n return { initialLandingPath, visitSource: 'email-campaign' }\n }\n const social = socialLabel(source) ?? socialLabel(referrerHost)\n if (social || (medium && SOCIAL_MEDIA.has(medium))) {\n return {\n initialLandingPath,\n visitSource: 'social',\n ...(social ? { visitSourceDetail: social } : {}),\n }\n }\n if (medium === 'organic' || isSearchHost(referrerHost)) {\n return { initialLandingPath, visitSource: 'organic-search' }\n }\n if (referrerHost && referrerHost !== siteHost) {\n return {\n initialLandingPath,\n visitSource: 'referral',\n visitSourceDetail: referrerHost,\n }\n }\n return { initialLandingPath, visitSource: 'direct-or-unknown' }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-entry.js","sourceRoot":"","sources":["../../src/contact/client-entry.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAI9B,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"client-entry.js","sourceRoot":"","sources":["../../src/contact/client-entry.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAI9B,MAAM,yBAAyB,CAAA","sourcesContent":["'use client'\n\nexport {\n compressBrandlabContactImage,\n useBrandlabContactAttachments,\n type BrandlabContactAttachmentPreview,\n type UseBrandlabContactAttachmentsOptions,\n type UseBrandlabContactAttachmentsResult,\n} from './attachments-client.js'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/contact/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/contact/client.ts"],"names":[],"mappings":"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","sourcesContent":["'use client'\n\nimport type { GtagTransport } from '@brandlab-digital/site-core/analytics'\nimport {\n resolveContactAttachmentType,\n type ContactActionResult,\n} from '@brandlab-digital/site-core/contact'\nimport { normalizeBrandlabRoutePath } from '@brandlab-digital/site-core/routes'\nimport { getInitialContactAttribution } from '../instrumentation-client.js'\nimport {\n trackDeliveredContactWithEnhancedConversions,\n type SafeContactAdsParams,\n type SafeContactAnalyticsParams,\n} from '../analytics.js'\nimport {\n CONTACT_CONFIRMATION_ID_PATTERN,\n CONTACT_FORM_FIELDS,\n createContactSubmissionId,\n type BrandlabContactDefinition,\n} from './shared.js'\n\nexport { createContactSubmissionId }\n\nexport function normalizeContactUploadFile(original: File, processed: Blob): File {\n if (!(original instanceof File) || !(processed instanceof Blob)) {\n throw new TypeError('Contact image normalisation requires browser File and Blob values.')\n }\n const contentType = processed.type || original.type\n const filenameType = resolveContactAttachmentType(original.name)\n const processedType = resolveContactAttachmentType('', contentType)\n const normalizedFilenameType = filenameType === 'image/jpg' ? 'image/jpeg' : filenameType\n const normalizedProcessedType = processedType === 'image/jpg' ? 'image/jpeg' : processedType\n if (!normalizedFilenameType || normalizedFilenameType !== normalizedProcessedType) {\n throw new TypeError('The processed contact image does not match its reviewed filename.')\n }\n return new File([processed], original.name, {\n type: normalizedFilenameType,\n lastModified: original.lastModified,\n })\n}\n\nconst CONTACT_FIELD_ERROR_KEY_PATTERN = /^[a-z][a-z0-9_-]{0,63}$/\nconst CONTACT_ERROR_CODES = new Set([\n 'validation',\n 'attachment_rejected',\n 'delivery_unavailable',\n])\n\nfunction objectRecord(value: unknown): Record<string, unknown> | undefined {\n return value && typeof value === 'object' && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined\n}\n\nfunction hasOnlyKeys(record: Record<string, unknown>, allowed: readonly string[]) {\n const keys = new Set(allowed)\n return Object.keys(record).every((key) => keys.has(key))\n}\n\nfunction parseFieldErrors(value: unknown) {\n if (value === undefined) return undefined\n const record = objectRecord(value)\n if (!record || Object.keys(record).length > 48) return undefined\n const result: Record<string, string[]> = {}\n for (const [field, messages] of Object.entries(record)) {\n if (\n !CONTACT_FIELD_ERROR_KEY_PATTERN.test(field) ||\n !Array.isArray(messages) ||\n messages.length < 1 ||\n messages.length > 5 ||\n messages.some(\n (message) =>\n typeof message !== 'string' ||\n !message.trim() ||\n message.length > 200 ||\n /[\\u0000-\\u001f\\u007f]/.test(message),\n )\n ) {\n return undefined\n }\n result[field] = [...messages]\n }\n return result\n}\n\nexport function parseContactActionResult(value: unknown): ContactActionResult | undefined {\n const record = objectRecord(value)\n if (!record || typeof record.ok !== 'boolean') return undefined\n if (record.ok) {\n if (record.accepted === true) {\n if (\n !hasOnlyKeys(record, ['ok', 'accepted', 'trackConversion', 'confirmationId']) ||\n record.trackConversion !== true ||\n typeof record.confirmationId !== 'string' ||\n !CONTACT_CONFIRMATION_ID_PATTERN.test(record.confirmationId)\n ) {\n return undefined\n }\n return {\n ok: true,\n accepted: true,\n trackConversion: true,\n confirmationId: record.confirmationId,\n }\n }\n if (\n record.accepted !== false ||\n record.trackConversion !== false ||\n !hasOnlyKeys(record, ['ok', 'accepted', 'trackConversion'])\n ) {\n return undefined\n }\n return { ok: true, accepted: false, trackConversion: false }\n }\n\n if (\n !hasOnlyKeys(record, ['ok', 'code', 'retryable', 'fieldErrors']) ||\n typeof record.code !== 'string' ||\n !CONTACT_ERROR_CODES.has(record.code) ||\n typeof record.retryable !== 'boolean'\n ) {\n return undefined\n }\n const fieldErrors = parseFieldErrors(record.fieldErrors)\n if (record.fieldErrors !== undefined && !fieldErrors) return undefined\n if (record.code !== 'validation' && fieldErrors) return undefined\n return {\n ok: false,\n code: record.code as Extract<ContactActionResult, { ok: false }>['code'],\n retryable: record.retryable,\n ...(fieldErrors ? { fieldErrors } : {}),\n }\n}\n\nexport type ContactSubmissionPhase =\n | 'idle'\n | 'submitting'\n | 'accepted'\n | 'accepted-silently'\n | 'error'\n\nexport interface ContactSubmissionState {\n phase: ContactSubmissionPhase\n pending: boolean\n canRetry: boolean\n result?: ContactActionResult\n}\n\nexport interface ContactHttpSubmissionControllerOptions {\n pagePath: string\n pageLabel?: string\n contactEndpoint?: string\n fetcher?: typeof fetch\n now?: () => Date\n analytics?: Omit<\n Parameters<typeof trackDeliveredContactResult>[1],\n 'formData'\n >\n onStateChange?: (state: ContactSubmissionState) => void\n}\n\nexport interface ContactSubmissionController {\n getState(): ContactSubmissionState\n submit(formData: FormData): Promise<ContactActionResult>\n retry(): Promise<ContactActionResult>\n reset(): void\n}\n\nfunction copyFormData(formData: FormData) {\n if (!formData || typeof formData.entries !== 'function') {\n throw new TypeError('A FormData submission is required.')\n }\n const copy = new FormData()\n for (const [name, value] of formData.entries()) copy.append(name, value)\n return copy\n}\n\nfunction rootRelativeEndpoint(value: string | undefined, fallback: string) {\n const endpoint = value ?? fallback\n if (\n !/^\\/[a-z0-9/_-]+$/.test(endpoint) ||\n endpoint.includes('//') ||\n endpoint.endsWith('/')\n ) {\n throw new TypeError('Contact endpoints must be canonical root-relative paths.')\n }\n return endpoint\n}\n\nasync function boundedJson(response: Response, maximumBytes: number) {\n const contentType = response.headers\n .get('content-type')\n ?.split(';', 1)[0]\n ?.trim()\n .toLowerCase()\n if (contentType !== 'application/json') {\n throw new Error('The contact response did not use the required JSON media type.')\n }\n const text = await response.text()\n if (new TextEncoder().encode(text).byteLength > maximumBytes) {\n throw new Error('The contact response exceeded its safe bound.')\n }\n return JSON.parse(text) as unknown\n}\n\nconst RETRYABLE_CLIENT_FAILURE: ContactActionResult = {\n ok: false,\n code: 'delivery_unavailable',\n retryable: true,\n}\n\nfunction reviewedPageLabel(value: string | undefined) {\n const label = value?.trim()\n if (\n label !== undefined &&\n (!label || label.length > 160 || /[\\u0000-\\u001f\\u007f]/.test(label))\n ) {\n throw new TypeError('pageLabel must be bounded reviewed text.')\n }\n return label\n}\n\nfunction addSubmissionMetadata(\n formData: FormData,\n options: {\n pagePath: string\n pageLabel?: string\n now: Date\n },\n) {\n const attribution =\n typeof window === 'undefined'\n ? { initialLandingPath: options.pagePath, visitSource: 'direct-or-unknown' as const }\n : getInitialContactAttribution(window)\n formData.set(CONTACT_FORM_FIELDS.clientSubmissionId, createContactSubmissionId())\n formData.set(CONTACT_FORM_FIELDS.submittedAt, options.now.toISOString())\n formData.set(CONTACT_FORM_FIELDS.pagePath, options.pagePath)\n if (options.pageLabel) {\n formData.set(CONTACT_FORM_FIELDS.pageLabel, options.pageLabel)\n }\n formData.set(CONTACT_FORM_FIELDS.initialLandingPath, attribution.initialLandingPath)\n formData.set(CONTACT_FORM_FIELDS.visitSource, attribution.visitSource)\n if (attribution.visitSourceDetail) {\n formData.set(CONTACT_FORM_FIELDS.visitSourceDetail, attribution.visitSourceDetail)\n }\n return formData\n}\n\nexport function createContactHttpSubmissionController(\n options: ContactHttpSubmissionControllerOptions,\n): ContactSubmissionController {\n const contactEndpoint = rootRelativeEndpoint(options.contactEndpoint, '/api/contact')\n const pagePath = normalizeBrandlabRoutePath(options.pagePath)\n const pageLabel = reviewedPageLabel(options.pageLabel)\n const fetcher = options.fetcher ?? fetch\n if (typeof fetcher !== 'function') throw new TypeError('A fetch implementation is required.')\n if (options.onStateChange !== undefined && typeof options.onStateChange !== 'function') {\n throw new TypeError('onStateChange must be a function.')\n }\n\n const trackedConfirmations = new Set<string>()\n let attempt: FormData | undefined\n let inFlight: Promise<ContactActionResult> | undefined\n let state: ContactSubmissionState = {\n phase: 'idle',\n pending: false,\n canRetry: false,\n }\n\n const publish = (next: ContactSubmissionState) => {\n state = Object.freeze({ ...next })\n options.onStateChange?.(state)\n }\n\n const post = async (formData: FormData) => {\n publish({ phase: 'submitting', pending: true, canRetry: false })\n let result: ContactActionResult\n try {\n const response = await fetcher(contactEndpoint, {\n method: 'POST',\n credentials: 'same-origin',\n cache: 'no-store',\n body: copyFormData(formData),\n })\n result =\n parseContactActionResult(await boundedJson(response, 64 * 1_024)) ??\n RETRYABLE_CLIENT_FAILURE\n } catch {\n result = RETRYABLE_CLIENT_FAILURE\n }\n\n if (!result.ok) {\n publish({\n phase: 'error',\n pending: false,\n canRetry: result.retryable,\n result,\n })\n return result\n }\n\n if (result.accepted && !trackedConfirmations.has(result.confirmationId)) {\n trackedConfirmations.add(result.confirmationId)\n try {\n if (options.analytics) {\n trackDeliveredContactResult(result, {\n ...options.analytics,\n formData: copyFormData(formData),\n })\n }\n } catch {\n // Delivery has already succeeded; analytics cannot change that result.\n }\n }\n\n attempt = undefined\n publish({\n phase: result.accepted ? 'accepted' : 'accepted-silently',\n pending: false,\n canRetry: false,\n result,\n })\n return result\n }\n\n const run = (formData: FormData) => {\n if (inFlight) return inFlight\n let wrapped: Promise<ContactActionResult>\n wrapped = post(formData).finally(() => {\n if (inFlight === wrapped) inFlight = undefined\n })\n inFlight = wrapped\n return wrapped\n }\n\n return {\n getState: () => ({ ...state }),\n submit(formData) {\n if (inFlight) return inFlight\n const now = options.now?.() ?? new Date()\n if (!Number.isFinite(now.getTime())) {\n attempt = undefined\n publish({\n phase: 'error',\n pending: false,\n canRetry: false,\n result: RETRYABLE_CLIENT_FAILURE,\n })\n return Promise.resolve(RETRYABLE_CLIENT_FAILURE)\n }\n attempt = addSubmissionMetadata(copyFormData(formData), {\n pagePath,\n ...(pageLabel ? { pageLabel } : {}),\n now,\n })\n return run(attempt)\n },\n retry() {\n if (inFlight) return inFlight\n if (!attempt || state.phase !== 'error' || !state.canRetry) {\n return Promise.reject(new Error('No retryable contact submission is available.'))\n }\n return run(attempt)\n },\n reset() {\n if (inFlight) throw new Error('A pending contact submission cannot be reset.')\n attempt = undefined\n publish({ phase: 'idle', pending: false, canRetry: false })\n },\n }\n}\n\nexport function shouldTrackContactResult(\n result: ContactActionResult,\n): result is Extract<ContactActionResult, { ok: true; accepted: true }> {\n return result.ok && result.accepted && result.trackConversion\n}\n\nexport function trackDeliveredContactResult(\n result: ContactActionResult,\n options: {\n pagePath: string\n definition: BrandlabContactDefinition\n formData: FormData\n enabled: boolean\n enhancedConversionsEnabled?: boolean\n adUserDataConsent: boolean\n measurementId?: string | null\n googleAdsConversionId?: string | null\n googleAdsConversionLabel?: string | null\n gtag?: GtagTransport\n params?: SafeContactAnalyticsParams\n adsParams?: SafeContactAdsParams\n },\n) {\n const {\n pagePath,\n definition,\n formData,\n adUserDataConsent,\n params,\n adsParams,\n ...config\n } = options\n return trackDeliveredContactWithEnhancedConversions(result, config, {\n pagePath,\n definition,\n formData,\n adUserDataConsent,\n params,\n adsParams,\n })\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type BrandlabContactContract, type ContactAttachmentPolicy } from '@brandlab-digital/site-core/contact';
|
|
2
2
|
import { type BrandlabContactDefinition } from './shared.js';
|
|
3
|
-
export type ContactRuntimeDefinitionOptions = Pick<BrandlabContactDefinition, 'brandName' | 'siteUrl' | 'deploymentMode'> & {
|
|
3
|
+
export type ContactRuntimeDefinitionOptions = Pick<BrandlabContactDefinition, 'brandName' | 'siteUrl' | 'deploymentMode' | 'bot'> & {
|
|
4
4
|
labels: Readonly<Record<string, string>>;
|
|
5
5
|
attachment?: Partial<ContactAttachmentPolicy> & {
|
|
6
6
|
fieldPrefix?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contact/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAE7B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,yBAAyB,EACzB,WAAW,GAAG,SAAS,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contact/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAE7B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,yBAAyB,EACzB,WAAW,GAAG,SAAS,GAAG,gBAAgB,GAAG,KAAK,CACnD,GAAG;IACF,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE,KAAK,CAAC,EAAE,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAA;CACxD,CAAA;AAuBD,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,+BAA+B,qCAgDzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/contact/contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/contact/contract.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DEFAULT_CONTACT_ATTACHMENT_POLICY,\n defineContactContract,\n isValidAustralianPhoneNumber,\n normalizeAustralianPhoneDigits,\n type BrandlabContactContract,\n type ContactAttachmentPolicy,\n type ContactFieldNormalization,\n} from '@brandlab-digital/site-core/contact'\nimport {\n defineBrandlabContact,\n type BrandlabContactDefinition,\n type ContactFieldKind,\n} from './shared.js'\n\nexport type ContactRuntimeDefinitionOptions = Pick<\n BrandlabContactDefinition,\n 'brandName' | 'siteUrl' | 'deploymentMode' | 'bot'\n> & {\n labels: Readonly<Record<string, string>>\n attachment?: Partial<ContactAttachmentPolicy> & { fieldPrefix?: string }\n email?: NonNullable<BrandlabContactDefinition['email']>\n}\n\nconst KIND_MAP: Record<BrandlabContactContract['fields'][number]['kind'], ContactFieldKind> = {\n text: 'text',\n email: 'email',\n tel: 'phone',\n textarea: 'textarea',\n select: 'select',\n checkbox: 'checkbox',\n}\n\nfunction normalizeAustralianContactPhone(value: string) {\n if (!/^[+()\\d\\s.-]+$/.test(value)) {\n throw new Error('The phone value contains unsupported characters.')\n }\n return normalizeAustralianPhoneDigits(value)\n}\n\nconst NORMALIZERS: Record<ContactFieldNormalization, (value: string) => string> = {\n lowercase: (value) => value.toLowerCase(),\n 'australian-phone-digits': normalizeAustralianContactPhone,\n}\n\nexport function createContactDefinitionFromContract(\n contract: BrandlabContactContract,\n options: ContactRuntimeDefinitionOptions,\n) {\n defineContactContract(contract)\n const { labels, attachment, email, ...runtime } = options\n const fields = contract.fields.map((field) => {\n const label = labels[field.key]?.trim()\n if (!label) throw new Error(`A customer-facing label is required for contact field \"${field.key}\".`)\n return {\n name: field.key,\n label,\n role: field.role,\n kind: KIND_MAP[field.kind],\n required: field.required,\n ...(field.maxLength !== undefined ? { maxLength: field.maxLength } : {}),\n ...(field.kind === 'checkbox'\n ? { options: [field.checkedValue!] }\n : field.options\n ? { options: field.options }\n : {}),\n ...(field.normalization\n ? { normalize: NORMALIZERS[field.normalization] }\n : {}),\n ...(field.phoneRule === 'australian'\n ? {\n validate: (value: string) =>\n isValidAustralianPhoneNumber(value)\n ? undefined\n : 'Enter a valid Australian phone number.',\n }\n : {}),\n }\n })\n const attachments =\n contract.attachments.mode === 'none'\n ? false\n : {\n ...DEFAULT_CONTACT_ATTACHMENT_POLICY,\n ...attachment,\n required: contract.attachments.mode === 'images-required',\n }\n\n return defineBrandlabContact({\n ...runtime,\n projectId: contract.projectId,\n fields,\n attachments,\n ...(email ? { email } : {}),\n })\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/contact/email.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/contact/email.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n contactVisitSourceLabel,\n isValidAustralianPhoneNumber,\n normalizeAustralianPhoneDigits,\n type ContactFieldRole,\n} from '@brandlab-digital/site-core/contact'\nimport { normalizeBrandlabRoutePath } from '@brandlab-digital/site-core/routes'\nimport type {\n BrandlabContactDefinition,\n ContactDeliveryAttachment,\n ContactPageContext,\n} from './shared.js'\n\nexport interface RenderContactEmailInput {\n definition: BrandlabContactDefinition\n values: Readonly<Record<string, string>>\n context: ContactPageContext\n submittedAt: string\n confirmationId: string\n attachments?: readonly ContactDeliveryAttachment[]\n}\n\nexport interface RenderedContactEmail {\n subject: string\n html: string\n text: string\n replyTo?: string\n}\n\nconst EMAIL_PATTERN = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\nconst SAFE_COLOR_PATTERN = /^#[0-9a-fA-F]{6}$/\nconst CONFIRMATION_PATTERN = /^[a-f0-9]{64}$/\n\nexport function escapeContactEmailHtml(value: unknown) {\n return String(value)\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\nexport function sanitizeContactEmailSubject(value: string) {\n return value.replace(/[\\r\\n]+/g, ' ').replace(/\\s{2,}/g, ' ').trim().slice(0, 120)\n}\n\nfunction safeColor(value: string | undefined, fallback: string) {\n return value && SAFE_COLOR_PATTERN.test(value) ? value : fallback\n}\n\nfunction safeSingleLine(value: string | undefined, maximum = 160) {\n const normalized = value?.replace(/[\\r\\n]+/g, ' ').replace(/\\s{2,}/g, ' ').trim()\n return normalized && normalized.length <= maximum && !/[\\u0000-\\u001f\\u007f]/.test(normalized)\n ? normalized\n : undefined\n}\n\nfunction safePath(value: string | undefined) {\n if (!value) return undefined\n try {\n return normalizeBrandlabRoutePath(value)\n } catch {\n return undefined\n }\n}\n\nfunction roleValue(\n input: RenderContactEmailInput,\n role: ContactFieldRole,\n) {\n const field = input.definition.fields.find((candidate) => candidate.role === role)\n return field ? input.values[field.name]?.trim() : undefined\n}\n\nfunction subjectFragment(value: string | undefined, maximum: number) {\n const firstLine = value?.split(/[\\r\\n]/, 1)[0]\n const safe = safeSingleLine(firstLine, maximum)\n return safe?.replace(/[,:;|]+$/g, '').trim()\n}\n\nexport function buildContactEmailSubject(input: RenderContactEmailInput) {\n const name = subjectFragment(roleValue(input, 'name'), 60)\n const location = subjectFragment(roleValue(input, 'location'), 60)\n const detail = [name, location].filter(Boolean).join(', ')\n return sanitizeContactEmailSubject(\n detail ? `New website enquiry — ${detail}` : 'New website enquiry',\n )\n}\n\nfunction formatAustralianPhone(value: string) {\n const digits = value.replace(/\\D/g, '')\n if (/^04\\d{8}$/.test(digits)) {\n return `${digits.slice(0, 4)} ${digits.slice(4, 7)} ${digits.slice(7)}`\n }\n if (/^0[2378]\\d{8}$/.test(digits)) {\n return `(${digits.slice(0, 2)}) ${digits.slice(2, 6)} ${digits.slice(6)}`\n }\n if (/^614\\d{8}$/.test(digits)) {\n return `+61 ${digits.slice(2, 5)} ${digits.slice(5, 8)} ${digits.slice(8)}`\n }\n return value\n}\n\nfunction australianPhoneHref(value: string) {\n if (!isValidAustralianPhoneNumber(value)) return undefined\n const digits = normalizeAustralianPhoneDigits(value)\n return digits.startsWith('0')\n ? `tel:+61${digits.slice(1)}`\n : `tel:+${digits}`\n}\n\nfunction formatSubmittedAt(value: string) {\n const date = new Date(value)\n if (!Number.isFinite(date.getTime())) return 'Time unavailable'\n return new Intl.DateTimeFormat('en-AU', {\n timeZone: 'Australia/Sydney',\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n }).format(date)\n}\n\nfunction shortReference(value: string) {\n return CONFIRMATION_PATTERN.test(value) ? value.slice(0, 8).toUpperCase() : 'Unavailable'\n}\n\nfunction renderEmailLogo(definition: BrandlabContactDefinition, muted: string) {\n const logo = definition.email?.logo\n if (!logo) return ''\n\n try {\n const parsed = new URL(logo.url)\n if (\n parsed.protocol !== 'https:' ||\n parsed.username ||\n parsed.password ||\n parsed.search ||\n parsed.hash ||\n !logo.alt.trim()\n ) {\n return ''\n }\n } catch {\n return ''\n }\n\n const width =\n Number.isInteger(logo.width) && logo.width! >= 32 && logo.width! <= 240\n ? logo.width\n : 144\n return `<img src=\"${escapeContactEmailHtml(logo.url)}\" alt=\"${escapeContactEmailHtml(logo.alt)}\" width=\"${width}\" style=\"display:block;width:${width}px;max-width:100%;height:auto;border:0;outline:none;text-decoration:none;color:${muted};margin:0 0 14px\">`\n}\n\nfunction row(\n label: string,\n value: string,\n colors: { text: string; muted: string },\n href?: string,\n) {\n const renderedValue = href\n ? `<a href=\"${escapeContactEmailHtml(href)}\" style=\"color:#1d4ed8;text-decoration:underline;font-weight:600\">${escapeContactEmailHtml(value)}</a>`\n : escapeContactEmailHtml(value)\n return `<tr><td class=\"brandlab-email-label\" style=\"padding:0 12px 14px 0;width:118px;vertical-align:top;color:${colors.muted};font-size:13px;font-weight:700;line-height:20px\">${escapeContactEmailHtml(label)}</td><td class=\"brandlab-email-value\" style=\"padding:0 0 14px;vertical-align:top;color:${colors.text};font-size:15px;font-weight:600;line-height:20px;word-break:break-all;overflow-wrap:anywhere\">${renderedValue}</td></tr>`\n}\n\nfunction contextRow(label: string, value: string, colors: { text: string; muted: string }) {\n return `<tr><td class=\"brandlab-email-label\" style=\"padding:0 12px 10px 0;width:118px;vertical-align:top;color:${colors.muted};font-size:12px;font-weight:700;line-height:18px\">${escapeContactEmailHtml(label)}</td><td class=\"brandlab-email-value\" style=\"padding:0 0 10px;vertical-align:top;color:${colors.text};font-size:13px;line-height:18px;word-break:break-all;overflow-wrap:anywhere\">${escapeContactEmailHtml(value)}</td></tr>`\n}\n\nfunction sectionLabel(value: string, accent: string) {\n return `<p style=\"margin:0 0 16px;color:${accent};font-size:11px;font-weight:800;line-height:16px;letter-spacing:1.2px;text-transform:uppercase\">${escapeContactEmailHtml(value)}</p>`\n}\n\nfunction textLines(rows: readonly { label: string; value: string }[]) {\n return rows.map(({ label, value }) => `${label}: ${value}`).join('\\n')\n}\n\nexport function renderContactEmail(input: RenderContactEmailInput): RenderedContactEmail {\n const colors = {\n accent: safeColor(input.definition.email?.style?.accentColor, '#1d4ed8'),\n background: safeColor(input.definition.email?.style?.backgroundColor, '#f3f4f6'),\n surface: safeColor(input.definition.email?.style?.surfaceColor, '#ffffff'),\n text: safeColor(input.definition.email?.style?.textColor, '#111827'),\n muted: safeColor(input.definition.email?.style?.mutedTextColor, '#64748b'),\n }\n const email = roleValue(input, 'email')\n const message = roleValue(input, 'message')\n const contactRows = input.definition.fields.flatMap((field) => {\n if (field.role === 'message') return []\n const value = input.values[field.name]?.trim()\n if (!value) return []\n return [{\n label: field.label,\n value: field.role === 'phone' ? formatAustralianPhone(value) : value,\n ...(field.role === 'phone' ? { href: australianPhoneHref(value) } : {}),\n }]\n })\n const landingPath = safePath(input.context.initialLandingPath) ?? '/'\n const submittedPath = safePath(input.context.pagePath) ?? '/'\n const pageLabel = safeSingleLine(input.context.pageLabel)\n const submittedPage = pageLabel ? `${pageLabel} — ${submittedPath}` : submittedPath\n const source = contactVisitSourceLabel(\n input.context.visitSource,\n input.context.visitSourceDetail,\n )\n const submittedAt = formatSubmittedAt(input.submittedAt)\n const reference = shortReference(input.confirmationId)\n const attachmentCount = input.attachments?.length ?? 0\n const attachmentSummary = attachmentCount === 1\n ? '1 image attached'\n : `${attachmentCount} images attached`\n const contextRows = [\n { label: 'Visit source', value: source },\n { label: 'Landing page', value: landingPath },\n { label: 'Submitted from', value: submittedPage },\n { label: 'Submitted', value: submittedAt },\n { label: 'Reference', value: reference },\n ]\n const logoHtml = renderEmailLogo(input.definition, colors.muted)\n const subject = buildContactEmailSubject(input)\n const heading = `New enquiry for ${input.definition.brandName}`\n const htmlContactRows = contactRows\n .map((item) => row(item.label, item.value, colors, item.href))\n .join('')\n const htmlContextRows = contextRows.map((item) => contextRow(item.label, item.value, colors)).join('')\n const messageHtml = message\n ? `<div style=\"padding:18px 20px;border-left:4px solid ${colors.accent};background:${colors.background};color:${colors.text};font-size:15px;line-height:24px;white-space:pre-wrap;word-break:break-word\">${escapeContactEmailHtml(message)}</div>`\n : ''\n const attachmentsHtml = attachmentCount > 0\n ? `<tr><td style=\"padding:0 32px 28px\"><div style=\"padding:14px 16px;border:1px solid ${colors.accent};border-radius:6px;color:${colors.text};font-size:13px;line-height:20px\"><strong>${escapeContactEmailHtml(attachmentSummary)}</strong><br><span style=\"color:${colors.muted}\">The images are attached to this email.</span></div></td></tr>`\n : ''\n\n const html = `<!doctype html><html><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><meta name=\"color-scheme\" content=\"light\"><meta name=\"supported-color-schemes\" content=\"light\"><title>${escapeContactEmailHtml(subject)}</title><style>@media only screen and (max-width:620px){.brandlab-email-shell{display:block!important;width:auto!important;padding:12px!important}.brandlab-email-card{width:100%!important;max-width:100%!important}.brandlab-email-cell{padding-left:22px!important;padding-right:22px!important}.brandlab-email-title{font-size:24px!important;line-height:31px!important;word-break:break-word!important}.brandlab-email-label,.brandlab-email-value{display:block!important;width:auto!important;padding-right:0!important;word-break:break-word!important}.brandlab-email-label{padding-bottom:3px!important}.brandlab-email-value{padding-bottom:12px!important}}</style></head><body style=\"margin:0;padding:0;background:${colors.background};color:${colors.text};font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;-webkit-text-size-adjust:100%\"><div style=\"display:none;max-height:0;overflow:hidden;opacity:0;color:transparent\">A new website enquiry has been received.</div><table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" bgcolor=\"${colors.background}\" style=\"width:100%;background:${colors.background};table-layout:fixed\"><tr><td class=\"brandlab-email-shell\" align=\"center\" style=\"padding:28px 16px\"><table class=\"brandlab-email-card\" role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" bgcolor=\"${colors.surface}\" style=\"width:100%;max-width:680px;table-layout:fixed;background:${colors.surface};border-collapse:separate;border-spacing:0;border-top:5px solid ${colors.accent};border-radius:8px;overflow:hidden;box-shadow:0 8px 28px rgba(15,23,42,.08)\"><tr><td class=\"brandlab-email-cell\" style=\"padding:32px 32px 26px\">${logoHtml}<p style=\"margin:0 0 8px;color:${colors.accent};font-size:11px;font-weight:800;line-height:16px;letter-spacing:1.3px;text-transform:uppercase\">Website enquiry</p><h1 class=\"brandlab-email-title\" style=\"margin:0;color:${colors.text};font-size:28px;font-weight:750;line-height:36px;overflow-wrap:anywhere\">${escapeContactEmailHtml(heading)}</h1><p style=\"margin:8px 0 0;color:${colors.muted};font-size:13px;line-height:20px\">Received ${escapeContactEmailHtml(submittedAt)}</p></td></tr><tr><td style=\"height:1px;background:#e5e7eb\"></td></tr><tr><td class=\"brandlab-email-cell\" style=\"padding:28px 32px 22px\">${sectionLabel('Contact details', colors.accent)}<table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width:100%;table-layout:fixed;border-collapse:collapse\"><tbody>${htmlContactRows}</tbody></table></td></tr><tr><td class=\"brandlab-email-cell\" style=\"padding:0 32px 28px\">${sectionLabel('Customer message', colors.accent)}${messageHtml}</td></tr>${attachmentsHtml}<tr><td class=\"brandlab-email-cell\" style=\"padding:26px 32px;background:${colors.background};border-top:1px solid #e5e7eb\">${sectionLabel('Enquiry context', colors.accent)}<table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width:100%;table-layout:fixed;border-collapse:collapse\"><tbody>${htmlContextRows}</tbody></table></td></tr></table><p style=\"margin:14px 0 0;color:${colors.muted};font-size:11px;line-height:16px;text-align:center\">Sent securely from the ${escapeContactEmailHtml(input.definition.brandName)} website.</p></td></tr></table></body></html>`\n\n const text = [\n heading,\n `Received ${submittedAt}`,\n '',\n 'CONTACT DETAILS',\n textLines(contactRows),\n '',\n 'CUSTOMER MESSAGE',\n message ?? '',\n ...(attachmentCount > 0 ? ['', 'ATTACHMENTS', attachmentSummary] : []),\n '',\n 'ENQUIRY CONTEXT',\n textLines(contextRows),\n ].join('\\n')\n const replyTo = email?.trim().toLowerCase()\n\n return {\n subject,\n html,\n text,\n ...(replyTo && EMAIL_PATTERN.test(replyTo) ? { replyTo } : {}),\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-sanitizer.js","sourceRoot":"","sources":["../../src/contact/image-sanitizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"image-sanitizer.js","sourceRoot":"","sources":["../../src/contact/image-sanitizer.ts"],"names":[],"mappings":"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","sourcesContent":["import 'server-only'\n\nimport sharp, { type Metadata, type Sharp } from 'sharp'\nimport type {\n ContactAttachmentProcessor,\n ContactDeliveryAttachment,\n} from './shared.js'\n\nconst MAX_INPUT_PIXELS = 50_000_000\nconst MAX_OUTPUT_DIMENSION = 4_096\nconst PROCESSING_TIMEOUT_SECONDS = 5\n\nconst INPUT_FORMAT_BY_MIME = Object.freeze({\n 'image/jpeg': 'jpeg',\n 'image/jpg': 'jpeg',\n 'image/png': 'png',\n 'image/gif': 'gif',\n 'image/webp': 'webp',\n 'image/heic': 'heif',\n 'image/heif': 'heif',\n} as const)\n\nfunction expectedInputFormat(contentType: string) {\n return INPUT_FORMAT_BY_MIME[\n contentType.trim().toLowerCase() as keyof typeof INPUT_FORMAT_BY_MIME\n ]\n}\n\nfunction assertSingleImage(metadata: Metadata, expectedFormat: string) {\n if (\n metadata.format !== expectedFormat ||\n !Number.isSafeInteger(metadata.width) ||\n !Number.isSafeInteger(metadata.height) ||\n !metadata.width ||\n !metadata.height ||\n (metadata.pages ?? 1) !== 1\n ) {\n throw new Error('The uploaded file is not one supported still image.')\n }\n}\n\nfunction outputFilename(filename: string) {\n const stem = filename.replace(/\\.[a-z0-9]+$/i, '')\n if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(stem)) {\n throw new Error('The validated attachment filename is invalid.')\n }\n return `${stem}.jpg`\n}\n\nfunction outputPipeline(image: Sharp) {\n return image\n .autoOrient()\n .resize({\n width: MAX_OUTPUT_DIMENSION,\n height: MAX_OUTPUT_DIMENSION,\n fit: 'inside',\n withoutEnlargement: true,\n })\n .flatten({ background: '#ffffff' })\n .timeout({ seconds: PROCESSING_TIMEOUT_SECONDS })\n .jpeg({ quality: 85, progressive: true, mozjpeg: true })\n}\n\nasync function sanitizeOne(\n attachment: ContactDeliveryAttachment,\n): Promise<ContactDeliveryAttachment> {\n const expectedFormat = expectedInputFormat(attachment.contentType)\n if (!expectedFormat || !(attachment.content instanceof Uint8Array)) {\n throw new Error('The uploaded file type is unsupported.')\n }\n\n // Buffer.from(Uint8Array) copies untrusted request bytes before native work.\n const input = Buffer.from(attachment.content)\n const image = sharp(input, {\n animated: false,\n failOn: 'warning',\n limitInputPixels: MAX_INPUT_PIXELS,\n pages: 1,\n sequentialRead: true,\n unlimited: false,\n })\n const metadata = await image.metadata()\n assertSingleImage(metadata, expectedFormat)\n\n const { data, info } = await outputPipeline(image).toBuffer({\n resolveWithObject: true,\n })\n if (\n data.byteLength < 1 ||\n info.format !== 'jpeg' ||\n !Number.isSafeInteger(info.width) ||\n !Number.isSafeInteger(info.height) ||\n info.width < 1 ||\n info.height < 1 ||\n info.width > MAX_OUTPUT_DIMENSION ||\n info.height > MAX_OUTPUT_DIMENSION\n ) {\n throw new Error('The uploaded image could not be normalised safely.')\n }\n\n return Object.freeze({\n filename: outputFilename(attachment.filename),\n content: new Uint8Array(data),\n contentType: 'image/jpeg',\n })\n}\n\n/**\n * The production image boundary for Contact Contract v4. Every accepted image\n * is fully decoded, bounded, auto-oriented and re-encoded without source\n * metadata. Project code cannot replace this processor in production.\n */\nexport function createBrandlabContactImageSanitizer(): ContactAttachmentProcessor {\n return Object.freeze({\n capability: 'sanitizes-contact-images-v1' as const,\n async process({ attachments }: Parameters<ContactAttachmentProcessor['process']>[0]) {\n if (!Array.isArray(attachments)) return { ok: false as const }\n try {\n const sanitized: ContactDeliveryAttachment[] = []\n // Sequential processing bounds peak native memory for multiple photos.\n for (const attachment of attachments) {\n sanitized.push(await sanitizeOne(attachment))\n }\n return { ok: true as const, attachments: Object.freeze(sanitized) }\n } catch {\n return { ok: false as const }\n }\n },\n })\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contact/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EACL,qCAAqC,EACrC,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,GAK5B,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contact/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EACL,qCAAqC,EACrC,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,GAK5B,MAAM,aAAa,CAAA","sourcesContent":["export * from './shared.js'\nexport * from './contract.js'\nexport {\n createContactHttpSubmissionController,\n normalizeContactUploadFile,\n parseContactActionResult,\n shouldTrackContactResult,\n trackDeliveredContactResult,\n type ContactHttpSubmissionControllerOptions,\n type ContactSubmissionController,\n type ContactSubmissionPhase,\n type ContactSubmissionState,\n} from './client.js'\n"]}
|