@brandlab-digital/site-core 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/business.js.map +1 -1
- package/dist/contact.d.ts.map +1 -1
- package/dist/contact.js +9 -3
- package/dist/contact.js.map +1 -1
- package/dist/entity-id.js.map +1 -1
- package/dist/geography.js.map +1 -1
- package/dist/google-reviews.js.map +1 -1
- package/dist/locations.js.map +1 -1
- package/dist/metadata.js.map +1 -1
- package/dist/project.js.map +1 -1
- package/dist/reviews.js.map +1 -1
- package/dist/rich-text.js.map +1 -1
- package/dist/routes.js.map +1 -1
- package/dist/schema.js.map +1 -1
- package/dist/seo-page.js.map +1 -1
- package/dist/sitemaps.js.map +1 -1
- package/package.json +1 -1
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":["import { normalizeBrandlabRoutePath } from './routes.js'\nimport { assertBrandlabCanonicalEntityId } from './entity-id.js'\n\nexport const CANONICAL_LEAD_EVENTS = ['phone_call', 'contact_form'] as const\nexport const BRANDLAB_LEAD_DIAGNOSTIC_EVENTS = [\n 'lead_form_start',\n 'lead_form_error',\n 'lead_cta_click',\n] as const\n\nexport type CanonicalLeadEvent = (typeof CANONICAL_LEAD_EVENTS)[number]\nexport type BrandlabLeadDiagnosticEvent =\n (typeof BRANDLAB_LEAD_DIAGNOSTIC_EVENTS)[number]\n\n/**\n * Analytics and other production-only browser behaviour must use the actual\n * Vercel deployment environment. Vercel preview builds also use\n * NODE_ENV=production, so NODE_ENV is not a safe production gate.\n */\nexport function isBrandlabProductionDeployment(\n environment: string | null | undefined,\n) {\n return environment === 'production'\n}\n\nexport type BrandlabAnalyticsParameterPolicy =\n | { key: string; type: 'boolean' }\n | { key: string; type: 'count'; minimum?: number; maximum?: number }\n | { key: string; type: 'enum'; values: readonly string[] }\n | { key: string; type: 'slug' }\n\nexport interface BrandlabAnalyticsEventContract {\n name: string\n parameters: readonly BrandlabAnalyticsParameterPolicy[]\n}\n\nexport interface BrandlabAnalyticsContract {\n /** Canonical entity binding prevents analytics config being reused by the wrong site. */\n projectId: string\n measurementIdEnv: string\n googleAds?: {\n conversionIdEnv: string\n contactConversionLabelEnv: string\n /** Google Ads forwarding-number label for genuine calls from the website. */\n websiteCalls?: {\n conversionLabelEnv: string\n }\n /** Enhanced Conversions require both this project opt-in and live user consent. */\n enhancedConversions?: { mode: 'consent-required' }\n }\n /** Privacy-safe GA4 diagnostics. These never become canonical lead events. */\n leadDiagnostics?: { enabled: true }\n webVitals: boolean\n additionalEvents?: readonly BrandlabAnalyticsEventContract[]\n}\nexport type GtagTransport = (...args:\n | ['event', string, Record<string, unknown>]\n | ['set', string, Record<string, unknown>]\n | ['config', string, Record<string, unknown>?]\n | ['js', Date]\n) => void\n\nexport interface EnhancedConversionUserData {\n email?: string | null\n phone?: string | null\n}\n\nexport interface GoogleTagEnhancedConversionUserData extends Record<string, unknown> {\n email: string\n phone_number?: string\n}\n\nexport interface ContactFormConversionResult {\n ga4Sent: boolean\n enhancedConversionSent: boolean\n adsConversionSent: boolean\n}\n\nconst EMAIL_PATTERN = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\nconst GMAIL_DOMAINS = new Set(['gmail.com', 'googlemail.com'])\nconst AUSTRALIAN_E164_DIGITS = /^61[23478]\\d{8}$/\nconst GA4_CONTACT_FORM_PARAM_KEYS = new Set([\n 'event_category',\n 'location_slug',\n 'page_path',\n 'page_template',\n 'service_slug',\n 'submission_id',\n])\nconst GOOGLE_ADS_CONVERSION_PARAM_KEYS = new Set([\n 'currency',\n 'transaction_id',\n 'value',\n])\nconst ANALYTICS_ENV_KEY_PATTERN = /^[A-Z][A-Z0-9_]*$/\nconst ANALYTICS_EVENT_PATTERN = /^[a-z][a-z0-9_]{0,39}$/\nconst PROHIBITED_ANALYTICS_PARAM_TOKENS = [\n 'address',\n 'email',\n 'first_name',\n 'last_name',\n 'message',\n 'name',\n 'phone',\n] as const\nconst PRIVACY_SAFE_SUBMISSION_ID_PATTERN = /^[a-f0-9]{64}$/\n\nfunction looksLikePersonalIdentifier(value: string) {\n const normalized = value.trim().toLowerCase()\n const digits = normalized.replace(/\\D/g, '')\n return (\n normalized.includes('@') ||\n digits.length >= 8 ||\n /^\\d{4}$/.test(normalized) ||\n /^[a-f0-9]{24,}$/.test(normalized) ||\n /\\b\\d+\\s+[a-z][a-z -]+\\s+(?:street|st|road|rd|avenue|ave|lane|ln|drive|dr|place|pl|court|ct)\\b/.test(\n normalized,\n )\n )\n}\n\nfunction assertAnalyticsEnvKey(value: string, field: string) {\n if (!ANALYTICS_ENV_KEY_PATTERN.test(value)) {\n throw new Error(`${field} must be an environment variable key.`)\n }\n}\n\nexport function defineAnalyticsContract<const T extends BrandlabAnalyticsContract>(contract: T): T {\n assertBrandlabCanonicalEntityId(contract.projectId)\n assertAnalyticsEnvKey(contract.measurementIdEnv, 'measurementIdEnv')\n if (contract.googleAds) {\n assertAnalyticsEnvKey(contract.googleAds.conversionIdEnv, 'googleAds.conversionIdEnv')\n assertAnalyticsEnvKey(\n contract.googleAds.contactConversionLabelEnv,\n 'googleAds.contactConversionLabelEnv',\n )\n if (contract.googleAds.websiteCalls) {\n assertAnalyticsEnvKey(\n contract.googleAds.websiteCalls.conversionLabelEnv,\n 'googleAds.websiteCalls.conversionLabelEnv',\n )\n }\n if (\n contract.googleAds.enhancedConversions !== undefined &&\n contract.googleAds.enhancedConversions.mode !== 'consent-required'\n ) {\n throw new Error('googleAds.enhancedConversions must require consent.')\n }\n }\n\n const events = contract.additionalEvents ?? []\n const duplicate = events.find((event, index) =>\n events.slice(0, index).some((candidate) => candidate.name === event.name),\n )\n if (duplicate) throw new Error(`Analytics contract contains duplicate event \"${duplicate.name}\".`)\n\n const reservedDiagnostic = events.find((event) =>\n BRANDLAB_LEAD_DIAGNOSTIC_EVENTS.includes(event.name as BrandlabLeadDiagnosticEvent),\n )\n if (reservedDiagnostic) {\n throw new Error(\n `Shared lead diagnostic event \"${reservedDiagnostic.name}\" must not be redefined.`,\n )\n }\n\n events.forEach((event, eventIndex) => {\n if (!ANALYTICS_EVENT_PATTERN.test(event.name)) {\n throw new Error(`additionalEvents[${eventIndex}].name is invalid.`)\n }\n if (isCanonicalLeadEvent(event.name)) {\n throw new Error(`Canonical lead event \"${event.name}\" must not be redefined.`)\n }\n if (event.parameters.length === 0 || event.parameters.length > 20) {\n throw new Error(`additionalEvents[${eventIndex}].parameters must contain 1 to 20 policies.`)\n }\n const duplicateParameter = event.parameters.find((parameter, index) =>\n event.parameters.slice(0, index).some((candidate) => candidate.key === parameter.key),\n )\n if (duplicateParameter) {\n throw new Error(`Analytics event \"${event.name}\" contains duplicate parameter \"${duplicateParameter.key}\".`)\n }\n event.parameters.forEach((parameter, keyIndex) => {\n const key = parameter.key\n if (!ANALYTICS_EVENT_PATTERN.test(key)) {\n throw new Error(`additionalEvents[${eventIndex}].parameters[${keyIndex}].key is invalid.`)\n }\n const normalized = key.toLowerCase()\n if (PROHIBITED_ANALYTICS_PARAM_TOKENS.some((token) => normalized.includes(token))) {\n throw new Error(`Analytics parameter \"${key}\" may contain personal information.`)\n }\n if (parameter.type === 'enum') {\n if (\n parameter.values.length === 0 ||\n parameter.values.length > 50 ||\n new Set(parameter.values).size !== parameter.values.length ||\n parameter.values.some(\n (value) =>\n !value.trim() ||\n value.length > 80 ||\n looksLikePersonalIdentifier(value),\n )\n ) {\n throw new Error(`Analytics enum parameter \"${key}\" has an unsafe value policy.`)\n }\n } else if (parameter.type === 'count') {\n const minimum = parameter.minimum ?? 0\n const maximum = parameter.maximum ?? 100_000\n if (\n !Number.isInteger(minimum) ||\n !Number.isInteger(maximum) ||\n minimum < 0 ||\n maximum < minimum ||\n maximum > 1_000_000\n ) {\n throw new Error(`Analytics count parameter \"${key}\" has an invalid range.`)\n }\n }\n })\n })\n\n return contract\n}\n\nexport function isCanonicalLeadEvent(value: string): value is CanonicalLeadEvent {\n return CANONICAL_LEAD_EVENTS.includes(value as CanonicalLeadEvent)\n}\n\nexport function normalizeGoogleAdsConversionId(conversionId: string) {\n const trimmed = conversionId.trim()\n return trimmed.startsWith('AW-') ? trimmed : `AW-${trimmed}`\n}\n\nfunction isGoogleAdsConversionLabel(value: string) {\n return /^[A-Za-z0-9_-]{1,100}$/.test(value)\n}\n\nexport function normalizeEnhancedConversionEmail(email: string | null | undefined) {\n const trimmed = email?.trim().toLowerCase()\n if (!trimmed || !EMAIL_PATTERN.test(trimmed)) {\n return undefined\n }\n\n const [localPart, domain] = trimmed.split('@')\n if (!localPart || !domain) {\n return undefined\n }\n\n const normalizedLocalPart = GMAIL_DOMAINS.has(domain)\n ? localPart.replace(/\\./g, '')\n : localPart\n\n return `${normalizedLocalPart}@${domain}`\n}\n\nexport function normalizeEnhancedConversionPhone(phone: string | null | undefined) {\n const digits = phone?.replace(/[^\\d]/g, '') ?? ''\n if (!digits) {\n return undefined\n }\n\n const normalizedDigits = digits.startsWith('0') ? `61${digits.slice(1)}` : digits\n\n return AUSTRALIAN_E164_DIGITS.test(normalizedDigits) ? `+${normalizedDigits}` : undefined\n}\n\nexport function buildEnhancedConversionUserData(\n userData: EnhancedConversionUserData | null | undefined,\n): GoogleTagEnhancedConversionUserData | undefined {\n const email = normalizeEnhancedConversionEmail(userData?.email)\n if (!email) {\n return undefined\n }\n\n const phoneNumber = normalizeEnhancedConversionPhone(userData?.phone)\n\n return phoneNumber\n ? {\n email,\n phone_number: phoneNumber,\n }\n : { email }\n}\n\nexport function getGoogleAdsContactSendTo(options: {\n conversionId?: string | null\n conversionLabel?: string | null\n}) {\n const conversionId = options.conversionId?.trim()\n const conversionLabel = options.conversionLabel?.trim()\n\n if (!conversionId || !conversionLabel || !isGoogleAdsConversionLabel(conversionLabel)) {\n return undefined\n }\n\n return `${normalizeGoogleAdsConversionId(conversionId)}/${conversionLabel}`\n}\n\nexport function getGoogleAdsWebsiteCallSendTo(options: {\n conversionId?: string | null\n conversionLabel?: string | null\n}) {\n return getGoogleAdsContactSendTo(options)\n}\n\nexport function sendBrandlabAnalyticsEvent(options: {\n enabled: boolean\n measurementId?: string | null\n gtag?: GtagTransport\n eventName: string\n params: Record<string, unknown>\n}) {\n if (!options.enabled || !options.measurementId || typeof options.gtag !== 'function') {\n return false\n }\n\n options.gtag('event', options.eventName, {\n ...options.params,\n send_to: options.measurementId,\n })\n\n return true\n}\n\nexport function sanitizeContactFormGa4Params(params: Record<string, unknown>) {\n return Object.entries(params).reduce<Record<string, unknown>>((sanitized, [key, value]) => {\n const normalizedKey = key.toLowerCase()\n if (!GA4_CONTACT_FORM_PARAM_KEYS.has(normalizedKey)) return sanitized\n if (normalizedKey === 'event_category') {\n if (value === 'lead') sanitized.event_category = 'lead'\n return sanitized\n }\n if (normalizedKey === 'page_path') {\n if (typeof value !== 'string') return sanitized\n const path = value.trim().split(/[?#]/, 1)[0]\n if (!path || path.length > 500) return sanitized\n try {\n sanitized.page_path = normalizeBrandlabRoutePath(path)\n } catch {\n // Invalid or encoded path separators are not analytics dimensions.\n }\n return sanitized\n }\n if (normalizedKey === 'submission_id') {\n if (typeof value === 'string' && PRIVACY_SAFE_SUBMISSION_ID_PATTERN.test(value)) {\n sanitized.submission_id = value\n }\n return sanitized\n }\n if (\n typeof value === 'string' &&\n /^[a-z0-9]+(?:[-_][a-z0-9]+)*$/.test(value) &&\n value.length <= 80\n ) {\n sanitized[normalizedKey] = value\n }\n\n return sanitized\n }, {})\n}\n\nfunction sanitizeGoogleAdsConversionParams(params: Record<string, unknown>) {\n return Object.entries(params).reduce<Record<string, unknown>>((sanitized, [key, value]) => {\n const normalizedKey = key.toLowerCase()\n if (!GOOGLE_ADS_CONVERSION_PARAM_KEYS.has(normalizedKey)) return sanitized\n if (normalizedKey === 'currency' && typeof value === 'string' && /^[A-Z]{3}$/.test(value)) {\n sanitized.currency = value\n } else if (\n normalizedKey === 'value' &&\n typeof value === 'number' &&\n Number.isFinite(value) &&\n value >= 0\n ) {\n sanitized.value = value\n } else if (\n normalizedKey === 'transaction_id' &&\n typeof value === 'string' &&\n PRIVACY_SAFE_SUBMISSION_ID_PATTERN.test(value)\n ) {\n sanitized.transaction_id = value\n }\n\n return sanitized\n }, {})\n}\n\nexport function sendContactFormConversion(options: {\n enabled: boolean\n measurementId?: string | null\n googleAdsConversionId?: string | null\n googleAdsConversionLabel?: string | null\n gtag?: GtagTransport\n pagePath: string\n submissionId?: string | null\n enhancedConversion?: EnhancedConversionUserData | null\n enhancedConversionsEnabled?: boolean\n adUserDataConsent?: boolean\n params?: Record<string, unknown>\n adsParams?: Record<string, unknown>\n}): ContactFormConversionResult {\n const submissionId = options.submissionId?.trim().toLowerCase()\n const privacySafeSubmissionId =\n submissionId && PRIVACY_SAFE_SUBMISSION_ID_PATTERN.test(submissionId)\n ? submissionId\n : undefined\n const baseParams = sanitizeContactFormGa4Params({\n ...options.params,\n page_path: options.pagePath,\n ...(privacySafeSubmissionId ? { submission_id: privacySafeSubmissionId } : {}),\n event_category: 'lead',\n })\n const ga4Sent = sendBrandlabAnalyticsEvent({\n enabled: options.enabled,\n measurementId: options.measurementId,\n gtag: options.gtag,\n eventName: 'contact_form',\n params: baseParams,\n })\n const sendTo = getGoogleAdsContactSendTo({\n conversionId: options.googleAdsConversionId,\n conversionLabel: options.googleAdsConversionLabel,\n })\n const userData =\n options.enhancedConversionsEnabled && options.adUserDataConsent\n ? buildEnhancedConversionUserData(options.enhancedConversion)\n : undefined\n const canSendAdsConversion =\n options.enabled &&\n typeof options.gtag === 'function' &&\n Boolean(sendTo)\n\n if (!canSendAdsConversion || !sendTo || typeof options.gtag !== 'function') {\n return {\n ga4Sent,\n enhancedConversionSent: false,\n adsConversionSent: false,\n }\n }\n\n if (userData) {\n options.gtag('set', 'user_data', userData)\n }\n try {\n options.gtag('event', 'conversion', {\n ...sanitizeGoogleAdsConversionParams(options.adsParams ?? {}),\n send_to: sendTo,\n ...(privacySafeSubmissionId ? { transaction_id: privacySafeSubmissionId } : {}),\n })\n } finally {\n if (userData) options.gtag('set', 'user_data', {})\n }\n\n return {\n ga4Sent,\n enhancedConversionSent: Boolean(userData),\n adsConversionSent: true,\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":"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","sourcesContent":["import { normalizeBrandlabRoutePath } from './routes.js'\nimport type { BrandlabMetadataTitleMode } from './metadata.js'\n\nexport type BrandlabBlogAdapter = 'mdx' | 'structured'\nexport type BrandlabBlogPostStatus = 'draft' | 'published'\n\nexport interface BrandlabBlogAuthor {\n id: string\n name: string\n profileUrl?: string\n}\n\nexport interface BrandlabBlogPost {\n id: string\n slug: string\n path: string\n adapter: BrandlabBlogAdapter\n status: BrandlabBlogPostStatus\n headline: string\n description: string\n /** Optional reviewed search title. The visible and schema headline remains `headline`. */\n seo?: {\n title: string\n titleMode?: BrandlabMetadataTitleMode\n }\n publishedAt?: string\n modifiedAt?: string\n authors: readonly BrandlabBlogAuthor[]\n categories?: readonly string[]\n tags?: readonly string[]\n image?: {\n url: string\n alt: string\n }\n contentRef: string\n}\n\nfunction assertNonEmpty(value: string, field: string) {\n if (!value.trim()) throw new Error(`${field} cannot be empty.`)\n}\n\nfunction parseDate(value: string | undefined, field: string) {\n if (!value) return undefined\n const timestamp = Date.parse(value)\n if (Number.isNaN(timestamp)) throw new Error(`${field} must be a valid date.`)\n return timestamp\n}\n\nconst BLOG_ADAPTERS = new Set<BrandlabBlogAdapter>(['mdx', 'structured'])\nconst BLOG_POST_STATUSES = new Set<BrandlabBlogPostStatus>(['draft', 'published'])\nconst BLOG_METADATA_TITLE_MODES = new Set<BrandlabMetadataTitleMode>([\n 'templated',\n 'absolute',\n])\n\nexport function defineBlogPost<const T extends BrandlabBlogPost>(post: T): T {\n assertNonEmpty(post.id, 'id')\n assertNonEmpty(post.slug, 'slug')\n assertNonEmpty(post.path, 'path')\n assertNonEmpty(post.headline, 'headline')\n assertNonEmpty(post.description, 'description')\n assertNonEmpty(post.contentRef, 'contentRef')\n\n if (post.seo) {\n if (\n typeof post.seo.title !== 'string' ||\n !post.seo.title.trim() ||\n post.seo.title.trim() !== post.seo.title ||\n post.seo.title.length > 160 ||\n /[\\u0000-\\u001f\\u007f]/.test(post.seo.title)\n ) {\n throw new Error('seo.title must be bounded, trimmed, single-line text.')\n }\n if (\n post.seo.titleMode !== undefined &&\n !BLOG_METADATA_TITLE_MODES.has(post.seo.titleMode)\n ) {\n throw new Error('seo.titleMode must be \"templated\" or \"absolute\".')\n }\n }\n\n if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(post.id)) {\n throw new Error('id must be lowercase kebab-case.')\n }\n if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(post.slug)) {\n throw new Error('slug must be lowercase kebab-case.')\n }\n if (!BLOG_ADAPTERS.has(post.adapter)) {\n throw new Error('adapter must be \"mdx\" or \"structured\".')\n }\n if (!BLOG_POST_STATUSES.has(post.status)) {\n throw new Error('status must be \"draft\" or \"published\".')\n }\n try {\n normalizeBrandlabRoutePath(post.path)\n } catch {\n throw new Error('path must be root-relative without a query string or hash.')\n }\n if (post.path.split('/').filter(Boolean).at(-1) !== post.slug) {\n throw new Error('path must end with the canonical post slug.')\n }\n if (post.authors.length === 0) throw new Error('authors cannot be empty.')\n const authorIds = post.authors.map((author) => author.id)\n if (new Set(authorIds).size !== authorIds.length) {\n throw new Error('authors contains duplicate IDs.')\n }\n post.authors.forEach((author, index) => {\n assertNonEmpty(author.id, `authors[${index}].id`)\n assertNonEmpty(author.name, `authors[${index}].name`)\n if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(author.id)) {\n throw new Error(`authors[${index}].id must be lowercase kebab-case.`)\n }\n if (author.profileUrl) assertAbsoluteHttpsUrl(author.profileUrl, `authors[${index}].profileUrl`)\n })\n post.categories?.forEach((category, index) =>\n assertNonEmpty(category, `categories[${index}]`),\n )\n post.tags?.forEach((tag, index) => assertNonEmpty(tag, `tags[${index}]`))\n if (post.categories && new Set(post.categories).size !== post.categories.length) {\n throw new Error('categories contains duplicates.')\n }\n if (post.tags && new Set(post.tags).size !== post.tags.length) {\n throw new Error('tags contains duplicates.')\n }\n\n const publishedAt = parseDate(post.publishedAt, 'publishedAt')\n const modifiedAt = parseDate(post.modifiedAt, 'modifiedAt')\n if (post.status === 'published' && publishedAt === undefined) {\n throw new Error('A published post requires publishedAt.')\n }\n if (publishedAt !== undefined && modifiedAt !== undefined && modifiedAt < publishedAt) {\n throw new Error('modifiedAt cannot be earlier than publishedAt.')\n }\n\n if (post.image) {\n assertNonEmpty(post.image.url, 'image.url')\n assertNonEmpty(post.image.alt, 'image.alt')\n if (post.image.url.startsWith('/')) {\n normalizeBrandlabRoutePath(post.image.url)\n } else {\n assertAbsoluteHttpsUrl(post.image.url, 'image.url')\n }\n }\n\n return post\n}\n\nfunction assertAbsoluteHttpsUrl(value: string, field: string) {\n let url: URL\n try {\n url = new URL(value)\n } catch {\n throw new Error(`${field} must be an absolute HTTPS URL.`)\n }\n if (url.protocol !== 'https:' || url.username || url.password) {\n throw new Error(`${field} must be an absolute HTTPS URL.`)\n }\n}\n\nexport function isPublishedBlogPost(\n post: BrandlabBlogPost,\n now: Date = new Date(),\n): post is BrandlabBlogPost & { status: 'published'; publishedAt: string } {\n return (\n post.status === 'published' &&\n Boolean(post.publishedAt) &&\n Date.parse(post.publishedAt ?? '') <= now.getTime()\n )\n}\n\nexport function getPublishedBlogPosts(\n posts: readonly BrandlabBlogPost[],\n now: Date = new Date(),\n) {\n return posts\n .filter((post): post is BrandlabBlogPost & { status: 'published'; publishedAt: string } =>\n isPublishedBlogPost(post, now),\n )\n .sort((left, right) => Date.parse(right.publishedAt) - Date.parse(left.publishedAt))\n}\n"]}
|
package/dist/breadcrumbs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../src/breadcrumbs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../src/breadcrumbs.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BrandlabRouteCatalog } from './routes.js'\nimport { getRouteById, normalizeBrandlabRoutePath } from './routes.js'\n\nexport interface BreadcrumbItem {\n name: string\n href?: string\n routeId?: string\n}\n\nexport interface BuildBreadcrumbsOptions {\n labelResolver?: (segment: string, options?: BuildBreadcrumbsOptions) => string\n}\n\nexport function formatSegmentTitle(segment: string): string {\n return segment\n .split('-')\n .filter(Boolean)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n}\n\nexport function buildBreadcrumbs(\n path: string,\n options?: BuildBreadcrumbsOptions,\n): BreadcrumbItem[] {\n if (path === '/') return [{ name: 'Home', href: '/' }]\n\n const resolveLabel = options?.labelResolver ?? formatSegmentTitle\n const breadcrumbs: BreadcrumbItem[] = [{ name: 'Home', href: '/' }]\n const segments = path.split('?')[0]?.split('/').filter(Boolean) ?? []\n let currentPath = ''\n\n for (const segment of segments) {\n currentPath += `/${segment}`\n breadcrumbs.push({\n name: resolveLabel(segment, options),\n href: currentPath,\n })\n }\n\n return breadcrumbs\n}\n\n/** Defines an explicit semantic trail shared by visible UI and JSON-LD. */\nexport function defineBreadcrumbTrail<const T extends readonly BreadcrumbItem[]>(items: T): T {\n if (items.length === 0) throw new Error('A breadcrumb trail requires at least one item.')\n\n items.forEach((item, index) => {\n if (!item.name.trim()) throw new Error(`Breadcrumb item ${index + 1} requires a name.`)\n if (item.href) normalizeBrandlabRoutePath(item.href)\n if (index < items.length - 1 && !item.href) {\n throw new Error('Only the final breadcrumb item may omit its href.')\n }\n })\n\n return items\n}\n\n/** Builds a semantic trail from explicit route parents and labels. */\nexport function buildRouteBreadcrumbs(\n routeId: string,\n routes: BrandlabRouteCatalog,\n): BreadcrumbItem[] {\n const route = getRouteById(routes, routeId)\n if (!route) throw new Error(`Unknown route ID \"${routeId}\".`)\n\n const lineage = [route]\n let parentId = route.parentId\n\n while (parentId) {\n const parent = getRouteById(routes, parentId)\n if (!parent) throw new Error(`Route \"${lineage[0]?.id}\" references unknown parent \"${parentId}\".`)\n lineage.unshift(parent)\n parentId = parent.parentId\n }\n\n return defineBreadcrumbTrail(\n lineage.map((item, index) => ({\n name: item.breadcrumbLabel,\n routeId: item.id,\n ...(index < lineage.length - 1\n ? { href: normalizeBrandlabRoutePath(item.canonicalPath ?? item.path) }\n : {}),\n })),\n )\n}\n"]}
|
package/dist/business.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business.js","sourceRoot":"","sources":["../src/business.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"business.js","sourceRoot":"","sources":["../src/business.ts"],"names":[],"mappings":"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","sourcesContent":["export type VerificationState = 'verified' | 'unknown' | 'not-applicable'\n\nexport const BRANDLAB_EVIDENCE_SOURCE_KINDS = [\n 'official-registry',\n 'google-business-profile',\n 'client-document',\n 'client-confirmation',\n 'first-party-record',\n 'public-authority',\n 'asset-rights',\n 'other-independent',\n 'synthetic-test',\n] as const\n\nexport type BrandlabEvidenceSourceKind =\n (typeof BRANDLAB_EVIDENCE_SOURCE_KINDS)[number]\n\nexport const BRANDLAB_EVIDENCE_SURFACES = [\n 'website-copy',\n 'metadata',\n 'schema',\n 'reviews',\n 'projects',\n 'images',\n 'operations',\n] as const\n\nexport type BrandlabEvidenceSurface =\n (typeof BRANDLAB_EVIDENCE_SURFACES)[number]\n\nexport interface EvidenceReference {\n sourceKind: BrandlabEvidenceSourceKind\n reference: string\n verifiedAt: string\n expiresAt?: string\n allowedSurfaces: readonly BrandlabEvidenceSurface[]\n}\n\nexport interface VerifiedFact<T> {\n status: 'verified'\n value: T\n evidence: EvidenceReference\n}\n\nexport type BrandlabFact<T> =\n | VerifiedFact<T>\n | { status: 'unknown' }\n | { status: 'not-applicable'; reason: string }\n\nexport interface BrandlabPhoneNumber {\n display: string\n e164: string\n}\n\nexport interface BrandlabPostalAddress {\n streetAddress: string\n addressLocality: string\n addressRegion: string\n postalCode: string\n addressCountry: string\n}\n\nexport interface BrandlabServiceArea {\n id: string\n name: string\n kind: 'city' | 'region' | 'suburb' | 'state' | 'country'\n}\n\nexport type BrandlabOpeningHoursDay =\n | 'Monday'\n | 'Tuesday'\n | 'Wednesday'\n | 'Thursday'\n | 'Friday'\n | 'Saturday'\n | 'Sunday'\n\nexport interface BrandlabOpeningHours {\n days: readonly BrandlabOpeningHoursDay[]\n opens: string\n closes: string\n}\n\nexport interface BrandlabLicence {\n name: string\n identifier: string\n jurisdiction?: string\n}\n\nexport interface BrandlabProofReference {\n id: string\n kind: 'project' | 'review' | 'accreditation' | 'licence' | 'external-source'\n evidence: EvidenceReference\n}\n\nconst BRANDLAB_PROOF_KINDS = new Set<BrandlabProofReference['kind']>([\n 'project',\n 'review',\n 'accreditation',\n 'licence',\n 'external-source',\n])\nconst BRANDLAB_OPENING_HOURS_DAYS = new Set<BrandlabOpeningHoursDay>([\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n 'Sunday',\n])\n\nexport interface BrandlabBusiness {\n identity: {\n tradingName: BrandlabFact<string> & { status: 'verified' }\n legalName: BrandlabFact<string>\n }\n canonicalUrl: BrandlabFact<string> & { status: 'verified' }\n contact: {\n phone: BrandlabFact<BrandlabPhoneNumber>\n email: BrandlabFact<string>\n }\n location: {\n model: 'service-area' | 'physical-location' | 'hybrid'\n addressVisibility: 'public' | 'hidden' | 'not-applicable'\n address: BrandlabFact<BrandlabPostalAddress>\n serviceAreas: BrandlabFact<readonly BrandlabServiceArea[]>\n }\n openingHours: BrandlabFact<readonly BrandlabOpeningHours[]>\n registration: {\n abn: BrandlabFact<string>\n licences: BrandlabFact<readonly BrandlabLicence[]>\n }\n externalEntities: {\n googlePlaceId: BrandlabFact<string>\n sameAs: BrandlabFact<readonly string[]>\n }\n /** Optional structured proof references for projects that use them operationally. */\n proof?: BrandlabFact<readonly BrandlabProofReference[]>\n}\n\nexport interface BrandlabDerivedBusinessFacts {\n tradingName: string\n legalName?: string\n canonicalUrl: string\n canonicalDomain: string\n phone?: BrandlabPhoneNumber & {\n digits: string\n telHref: string\n }\n email?: string\n publicAddress?: BrandlabPostalAddress\n serviceAreas: readonly BrandlabServiceArea[]\n openingHours: readonly BrandlabOpeningHours[]\n abn?: string\n licences: readonly BrandlabLicence[]\n googlePlaceId?: string\n sameAs: readonly string[]\n proof: readonly BrandlabProofReference[]\n}\n\nexport function verifiedFact<T>(\n value: T,\n evidence: EvidenceReference,\n): VerifiedFact<T> {\n return {\n status: 'verified',\n value,\n evidence,\n }\n}\n\nexport function unknownFact<T>(): BrandlabFact<T> {\n return { status: 'unknown' }\n}\n\nexport function notApplicableFact<T>(reason: string): BrandlabFact<T> {\n return { status: 'not-applicable', reason }\n}\n\nexport function resolveVerifiedFactForSurface<T>(\n fact: BrandlabFact<T>,\n surface: BrandlabEvidenceSurface,\n asOf: Date = new Date(),\n): T | undefined {\n if (fact.status !== 'verified') return undefined\n if (!fact.evidence.allowedSurfaces.includes(surface)) return undefined\n if (\n fact.evidence.expiresAt &&\n Date.parse(fact.evidence.expiresAt) < asOf.getTime()\n ) {\n return undefined\n }\n return fact.value\n}\n\nfunction assertText(value: unknown, field: string, maximum = 500) {\n if (\n typeof value !== 'string' ||\n !value.trim() ||\n value.trim() !== value ||\n value.length > maximum ||\n /[\\u0000-\\u001f\\u007f]/.test(value)\n ) {\n throw new Error(`${field} must be bounded, trimmed text.`)\n }\n}\n\nfunction assertDate(value: string | undefined, field: string) {\n if (\n value !== undefined &&\n (!/^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z)?$/.test(value) ||\n Number.isNaN(Date.parse(value)))\n ) {\n throw new Error(`${field} must be a valid ISO date or UTC timestamp.`)\n }\n}\n\nconst BRANDLAB_EVIDENCE_SOURCE_KIND_SET = new Set<BrandlabEvidenceSourceKind>(\n BRANDLAB_EVIDENCE_SOURCE_KINDS,\n)\nconst BRANDLAB_EVIDENCE_SURFACE_SET = new Set<BrandlabEvidenceSurface>(\n BRANDLAB_EVIDENCE_SURFACES,\n)\nconst CIRCULAR_EVIDENCE_PREFIX =\n /^(?:existing-production-config|repository-config|source-code):/i\n\nfunction assertEvidenceReference(\n evidence: EvidenceReference,\n field: string,\n) {\n assertExactKeys(\n evidence,\n ['sourceKind', 'reference', 'verifiedAt', 'expiresAt', 'allowedSurfaces'],\n field,\n )\n if (!BRANDLAB_EVIDENCE_SOURCE_KIND_SET.has(evidence.sourceKind)) {\n throw new Error(`${field}.sourceKind is invalid.`)\n }\n assertText(evidence.reference, `${field}.reference`)\n if (CIRCULAR_EVIDENCE_PREFIX.test(evidence.reference)) {\n throw new Error(\n `${field}.reference cannot cite repository configuration as independent verification.`,\n )\n }\n assertDate(evidence.verifiedAt, `${field}.verifiedAt`)\n assertDate(evidence.expiresAt, `${field}.expiresAt`)\n if (\n evidence.expiresAt &&\n Date.parse(evidence.expiresAt) < Date.parse(evidence.verifiedAt)\n ) {\n throw new Error(`${field}.expiresAt cannot precede verifiedAt.`)\n }\n if (\n !Array.isArray(evidence.allowedSurfaces) ||\n evidence.allowedSurfaces.length === 0\n ) {\n throw new Error(`${field}.allowedSurfaces cannot be empty.`)\n }\n assertUniqueStrings(evidence.allowedSurfaces, `${field}.allowedSurfaces`)\n if (\n evidence.allowedSurfaces.some(\n (surface) => !BRANDLAB_EVIDENCE_SURFACE_SET.has(surface),\n )\n ) {\n throw new Error(`${field}.allowedSurfaces contains an invalid surface.`)\n }\n}\n\nfunction assertExactKeys(\n value: unknown,\n allowed: readonly string[],\n field: string,\n) {\n if (\n !value ||\n typeof value !== 'object' ||\n Array.isArray(value) ||\n ![Object.prototype, null].includes(Object.getPrototypeOf(value))\n ) {\n throw new Error(`${field} must be a plain object.`)\n }\n const unknown = Object.keys(value).find((key) => !allowed.includes(key))\n if (unknown) throw new Error(`${field}.${unknown} is not a supported business fact key.`)\n}\n\nfunction assertFact<T>(fact: BrandlabFact<T>, field: string, validate?: (value: T) => void) {\n if (!fact || typeof fact !== 'object' || Array.isArray(fact)) {\n throw new Error(`${field} must be a typed Brandlab fact.`)\n }\n const record = fact as BrandlabFact<T> & Record<string, unknown>\n if (record.status === 'verified') {\n const verified = record as Extract<BrandlabFact<T>, { status: 'verified' }> &\n Record<string, unknown>\n if (!Object.prototype.hasOwnProperty.call(verified, 'value') || verified.value === undefined) {\n throw new Error(`${field}.value is required for a verified fact.`)\n }\n assertExactKeys(verified, ['status', 'value', 'evidence'], field)\n assertEvidenceReference(verified.evidence, `${field}.evidence`)\n if (typeof verified.value === 'string') assertText(verified.value, `${field}.value`)\n validate?.(verified.value)\n } else if (record.status === 'unknown') {\n if (Object.prototype.hasOwnProperty.call(record, 'value')) {\n throw new Error(`${field} cannot carry a value while its status is unknown.`)\n }\n assertExactKeys(record, ['status'], field)\n } else if (record.status === 'not-applicable') {\n if (Object.prototype.hasOwnProperty.call(record, 'value')) {\n throw new Error(`${field} cannot carry a value while it is not applicable.`)\n }\n assertExactKeys(record, ['status', 'reason'], field)\n assertText(record.reason, `${field}.reason`)\n } else {\n throw new Error(`${field}.status must be verified, unknown or not-applicable.`)\n }\n}\n\nfunction assertAbsoluteHttpsUrl(value: string, field: string, requireOrigin = false) {\n let url: URL\n try {\n url = new URL(value)\n } catch {\n throw new Error(`${field} must be an absolute HTTPS URL.`)\n }\n\n if (\n url.protocol !== 'https:' ||\n url.username ||\n url.password ||\n (requireOrigin && (url.pathname !== '/' || url.search || url.hash))\n ) {\n throw new Error(`${field} must be an absolute HTTPS URL.`)\n }\n}\n\nfunction assertUniqueStrings(values: readonly string[], field: string) {\n const duplicate = values.find((value, index) => values.indexOf(value) !== index)\n if (duplicate) throw new Error(`${field} contains duplicate value \"${duplicate}\".`)\n}\n\nfunction assertTime(value: string, field: string) {\n if (!/^(?:[01]\\d|2[0-3]):[0-5]\\d$/.test(value)) {\n throw new Error(`${field} must use a valid 24-hour HH:MM time.`)\n }\n}\n\nfunction assertAddress(address: BrandlabPostalAddress) {\n assertExactKeys(\n address,\n [\n 'streetAddress',\n 'addressLocality',\n 'addressRegion',\n 'postalCode',\n 'addressCountry',\n ],\n 'location.address.value',\n )\n Object.entries(address).forEach(([field, value]) =>\n assertText(value, `location.address.value.${field}`, 200),\n )\n if (address.addressCountry !== 'AU') {\n throw new Error('location.address.value.addressCountry must be \"AU\".')\n }\n if (!/^[A-Z]{2,3}$/.test(address.addressRegion)) {\n throw new Error('location.address.value.addressRegion must be an uppercase Australian region.')\n }\n if (!/^\\d{4}$/.test(address.postalCode)) {\n throw new Error('location.address.value.postalCode must be a four-digit Australian postcode.')\n }\n}\n\nfunction assertPhone(phone: BrandlabPhoneNumber) {\n assertExactKeys(phone, ['display', 'e164'], 'contact.phone.value')\n assertText(phone.display, 'contact.phone.value.display')\n if (\n phone.display.trim() !== phone.display ||\n phone.display.length > 32 ||\n !/^[+()\\d\\s.-]+$/.test(phone.display)\n ) {\n throw new Error('contact.phone.value.display must be a bounded Australian phone number.')\n }\n if (!/^\\+61[23478]\\d{8}$/.test(phone.e164)) {\n throw new Error('contact.phone.value.e164 must be a valid Australian E.164 number.')\n }\n const displayDigits = phone.display.replace(/\\D/g, '')\n const e164Digits = phone.e164.slice(1)\n const comparableDisplayDigits =\n e164Digits.startsWith('61') && displayDigits.startsWith('0')\n ? `61${displayDigits.slice(1)}`\n : displayDigits\n if (comparableDisplayDigits !== e164Digits) {\n throw new Error('contact.phone.value.display must identify the same number as e164.')\n }\n}\n\nfunction assertEmail(email: string) {\n if (\n email.length > 254 ||\n email.trim() !== email ||\n /[\\u0000-\\u001f\\u007f]/.test(email) ||\n !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)\n ) {\n throw new Error('contact.email.value must be a valid email address.')\n }\n}\n\nfunction normalizeAbn(value: string) {\n return value.replace(/\\s/g, '')\n}\n\nfunction assertAbn(value: string) {\n const digits = normalizeAbn(value)\n if (!/^\\d{11}$/.test(digits) || !/^\\d{2}(?: \\d{3}){3}$|^\\d{11}$/.test(value)) {\n throw new Error('registration.abn.value must be an 11-digit Australian Business Number.')\n }\n const weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]\n const numbers = [...digits].map(Number)\n numbers[0] = numbers[0]! - 1\n const checksum = numbers.reduce(\n (sum, digit, index) => sum + digit * weights[index]!,\n 0,\n )\n if (checksum % 89 !== 0) {\n throw new Error('registration.abn.value has an invalid ABN checksum.')\n }\n}\n\nfunction assertUniqueIds(records: readonly { id: string }[], field: string) {\n records.forEach((record, index) => assertText(record.id, `${field}[${index}].id`))\n const duplicate = records.find((record, index) =>\n records.slice(0, index).some((candidate) => candidate.id === record.id),\n )\n if (duplicate) throw new Error(`${field} contains duplicate ID \"${duplicate.id}\".`)\n}\n\nexport function defineBrandlabBusiness<const T extends BrandlabBusiness>(business: T): T {\n assertExactKeys(\n business,\n [\n 'identity',\n 'canonicalUrl',\n 'contact',\n 'location',\n 'openingHours',\n 'registration',\n 'externalEntities',\n 'proof',\n ],\n 'business',\n )\n assertExactKeys(business.identity, ['tradingName', 'legalName'], 'identity')\n assertExactKeys(business.contact, ['phone', 'email'], 'contact')\n assertExactKeys(\n business.location,\n ['model', 'addressVisibility', 'address', 'serviceAreas'],\n 'location',\n )\n assertExactKeys(business.registration, ['abn', 'licences'], 'registration')\n assertExactKeys(\n business.externalEntities,\n ['googlePlaceId', 'sameAs'],\n 'externalEntities',\n )\n if (!['service-area', 'physical-location', 'hybrid'].includes(business.location.model)) {\n throw new Error('location.model is invalid.')\n }\n if (!['public', 'hidden', 'not-applicable'].includes(business.location.addressVisibility)) {\n throw new Error('location.addressVisibility is invalid.')\n }\n assertFact(business.identity.tradingName, 'identity.tradingName')\n assertFact(business.identity.legalName, 'identity.legalName')\n assertFact(business.canonicalUrl, 'canonicalUrl', (value) =>\n assertAbsoluteHttpsUrl(value, 'canonicalUrl.value', true),\n )\n assertFact(business.contact.phone, 'contact.phone', assertPhone)\n assertFact(business.contact.email, 'contact.email', assertEmail)\n assertFact(business.location.address, 'location.address', assertAddress)\n assertFact(business.location.serviceAreas, 'location.serviceAreas', (areas) => {\n assertUniqueIds(areas, 'location.serviceAreas.value')\n areas.forEach((area, index) => {\n assertExactKeys(\n area,\n ['id', 'name', 'kind'],\n `location.serviceAreas.value[${index}]`,\n )\n assertText(area.name, `location.serviceAreas.value[${index}].name`)\n if (area.name.trim() !== area.name || area.name.length > 160) {\n throw new Error(`location.serviceAreas.value[${index}].name must be bounded canonical text.`)\n }\n if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(area.id)) {\n throw new Error(`location.serviceAreas.value[${index}].id must be lowercase kebab-case.`)\n }\n if (!['city', 'region', 'suburb', 'state', 'country'].includes(area.kind)) {\n throw new Error(`location.serviceAreas.value[${index}].kind is invalid.`)\n }\n })\n })\n assertFact(business.openingHours, 'openingHours', (hours) => {\n const allDays: BrandlabOpeningHoursDay[] = []\n hours.forEach((period, index) => {\n assertExactKeys(\n period,\n ['days', 'opens', 'closes'],\n `openingHours.value[${index}]`,\n )\n if (period.days.length === 0) {\n throw new Error(`openingHours.value[${index}].days cannot be empty.`)\n }\n assertUniqueStrings(period.days, `openingHours.value[${index}].days`)\n if (period.days.some((day) => !BRANDLAB_OPENING_HOURS_DAYS.has(day))) {\n throw new Error(`openingHours.value[${index}].days contains an invalid day.`)\n }\n allDays.push(...period.days)\n assertTime(period.opens, `openingHours.value[${index}].opens`)\n assertTime(period.closes, `openingHours.value[${index}].closes`)\n })\n assertUniqueStrings(allDays, 'openingHours.value.days')\n })\n assertFact(business.registration.abn, 'registration.abn', assertAbn)\n assertFact(business.registration.licences, 'registration.licences', (licences) => {\n assertUniqueStrings(\n licences.map((licence) => licence.identifier),\n 'registration.licences.value.identifiers',\n )\n licences.forEach((licence, index) => {\n assertExactKeys(\n licence,\n ['name', 'identifier', 'jurisdiction'],\n `registration.licences.value[${index}]`,\n )\n assertText(licence.name, `registration.licences.value[${index}].name`)\n assertText(licence.identifier, `registration.licences.value[${index}].identifier`)\n if (licence.jurisdiction !== undefined) {\n assertText(\n licence.jurisdiction,\n `registration.licences.value[${index}].jurisdiction`,\n 120,\n )\n }\n })\n })\n assertFact(business.externalEntities.googlePlaceId, 'externalEntities.googlePlaceId')\n assertFact(business.externalEntities.sameAs, 'externalEntities.sameAs', (urls) => {\n assertUniqueStrings(urls, 'externalEntities.sameAs.value')\n urls.forEach((url, index) =>\n assertAbsoluteHttpsUrl(url, `externalEntities.sameAs.value[${index}]`),\n )\n })\n if (business.proof) {\n assertFact(business.proof, 'proof', (proof) => {\n assertUniqueIds(proof, 'proof.value')\n proof.forEach((item, index) => {\n assertExactKeys(\n item,\n ['id', 'kind', 'evidence'],\n `proof.value[${index}]`,\n )\n if (!BRANDLAB_PROOF_KINDS.has(item.kind)) {\n throw new Error(`proof.value[${index}].kind is invalid.`)\n }\n assertEvidenceReference(\n item.evidence,\n `proof.value[${index}].evidence`,\n )\n })\n })\n }\n\n if (\n business.location.addressVisibility === 'not-applicable' &&\n business.location.address.status === 'verified'\n ) {\n throw new Error('A verified address cannot use addressVisibility \"not-applicable\".')\n }\n\n if (\n business.location.addressVisibility === 'public' &&\n business.location.address.status !== 'verified'\n ) {\n throw new Error('A public address must have verified address facts.')\n }\n\n if (\n business.location.model === 'service-area' &&\n business.location.addressVisibility === 'public'\n ) {\n throw new Error('A service-area business cannot expose a public address.')\n }\n\n if (\n business.location.model === 'physical-location' &&\n business.location.addressVisibility !== 'public'\n ) {\n throw new Error('A physical-location business must expose its verified public address.')\n }\n\n if (\n (business.location.model === 'service-area' || business.location.model === 'hybrid') &&\n (business.location.serviceAreas.status !== 'verified' ||\n business.location.serviceAreas.value.length === 0)\n ) {\n throw new Error('Service-area and hybrid businesses require verified service areas.')\n }\n\n return business\n}\n\nfunction verifiedValue<T>(fact: BrandlabFact<T>): T | undefined {\n return fact.status === 'verified' ? fact.value : undefined\n}\n\nexport function deriveBusinessFacts(business: BrandlabBusiness): BrandlabDerivedBusinessFacts {\n defineBrandlabBusiness(business)\n const canonicalUrl = new URL(business.canonicalUrl.value).origin\n const phone = verifiedValue(business.contact.phone)\n const address = verifiedValue(business.location.address)\n\n return {\n tradingName: business.identity.tradingName.value,\n ...(business.identity.legalName.status === 'verified'\n ? { legalName: business.identity.legalName.value }\n : {}),\n canonicalUrl,\n canonicalDomain: new URL(canonicalUrl).hostname,\n ...(phone\n ? {\n phone: {\n ...phone,\n digits: phone.e164.replace(/\\D/g, ''),\n telHref: `tel:${phone.e164}`,\n },\n }\n : {}),\n ...(business.contact.email.status === 'verified'\n ? { email: business.contact.email.value.trim().toLowerCase() }\n : {}),\n ...(business.location.addressVisibility === 'public' && address\n ? { publicAddress: address }\n : {}),\n serviceAreas: verifiedValue(business.location.serviceAreas) ?? [],\n openingHours: verifiedValue(business.openingHours) ?? [],\n ...(business.registration.abn.status === 'verified'\n ? { abn: normalizeAbn(business.registration.abn.value) }\n : {}),\n licences: verifiedValue(business.registration.licences) ?? [],\n ...(business.externalEntities.googlePlaceId.status === 'verified'\n ? { googlePlaceId: business.externalEntities.googlePlaceId.value }\n : {}),\n sameAs: verifiedValue(business.externalEntities.sameAs) ?? [],\n proof: business.proof ? verifiedValue(business.proof) ?? [] : [],\n }\n}\n"]}
|
package/dist/contact.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAA;CACnD;AAED,MAAM,MAAM,yBAAyB,GACjC,YAAY,GACZ,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,YAAY,CAAA;AAEhB,eAAO,MAAM,iCAAiC;;;;;CAaF,CAAA;AAY5C,wBAAgB,uBAAuB,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;CACd,UAEA;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,CAqBjC;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,YAgBpE;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,SAAS,iCAAiC,EAAE,CAAA;CAC3D;AAED,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GACzD,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEjF,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,KAAK,8BAA8B,GAAG,OAAO,CAC3C,wBAAwB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,CACF,CAAA;AAyBD,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,IAAI,CAAC,8BAA8B,EAAE,UAAU,GAAG,QAAQ,CAAC,UAGlE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,8BAA8B,+BAuBhF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,yBAYrE;AAED,wBAAgB,uCAAuC,CACrD,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE,iBAAiB,GAAG,aAAa,CAAC,sBAaxE;AA8BD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,oBAAoB,yBASxE;AAID,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,UAE3D;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,WAEzD;AAED,eAAO,MAAM,iCAAiC,EAAG,GAAY,CAAA;AAE7D,eAAO,MAAM,qBAAqB,mIAQxB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvE,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,MAAM,UAclF;AAED,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,OAAO,GACP,UAAU,GACV,SAAS,GACT,QAAQ,CAAA;AAEZ,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,KAAK,GACL,UAAU,GACV,QAAQ,GACR,UAAU,CAAA;AAEd,MAAM,MAAM,yBAAyB,GACjC,WAAW,GACX,yBAAyB,CAAA;AAE7B,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAA;AAE3C,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,gBAAgB,CAAA;IACtB,IAAI,EAAE,gBAAgB,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,yBAAyB,CAAA;IACzC,iFAAiF;IACjF,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACvC,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;KACrD,CAAA;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,MAAM,CAAA;QACpB,oFAAoF;QACpF,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,MAAM,MAAM,mBAAmB,GAC3B;IACE,EAAE,EAAE,IAAI,CAAA;IACR,QAAQ,EAAE,IAAI,CAAA;IACd,eAAe,EAAE,IAAI,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB,GACD;IACE,EAAE,EAAE,IAAI,CAAA;IACR,QAAQ,EAAE,KAAK,CAAA;IACf,eAAe,EAAE,KAAK,CAAA;CACvB,GACD;IACE,EAAE,EAAE,KAAK,CAAA;IACT,IAAI,EAAE,YAAY,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CACvC,CAAA;
|
|
1
|
+
{"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"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"}
|
package/dist/contact.js
CHANGED
|
@@ -305,10 +305,11 @@ export function contactVisitSourceLabel(source, detail) {
|
|
|
305
305
|
? `${label} — ${detail}`
|
|
306
306
|
: label;
|
|
307
307
|
}
|
|
308
|
-
const CONTACT_REQUIRED_ROLES = ['name', 'email', 'phone', '
|
|
308
|
+
const CONTACT_REQUIRED_ROLES = ['name', 'email', 'phone', 'message'];
|
|
309
|
+
const CONTACT_SINGLETON_ROLES = ['location'];
|
|
309
310
|
const ENV_KEY_PATTERN = /^[A-Z][A-Z0-9_]*$/;
|
|
310
311
|
const CONTACT_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
311
|
-
const CONTACT_FIELD_KEY_PATTERN = /^[a-z][
|
|
312
|
+
const CONTACT_FIELD_KEY_PATTERN = /^[a-z][A-Za-z0-9_-]{0,63}$/;
|
|
312
313
|
const CONTACT_SENDER_PATTERN = /^(?:[^<>\r\n]{1,120}<)?[^\s<>,@]+@[^\s<>,@]+\.[^\s<>,@]+>?$/;
|
|
313
314
|
const CONTACT_FIELD_ROLES = new Set([
|
|
314
315
|
'name', 'email', 'phone', 'location', 'message', 'custom',
|
|
@@ -354,7 +355,7 @@ export function defineContactContract(contract) {
|
|
|
354
355
|
throw new Error('fieldProfile must be lowercase kebab-case.');
|
|
355
356
|
}
|
|
356
357
|
if (contract.fields.length < CONTACT_REQUIRED_ROLES.length || contract.fields.length > 20) {
|
|
357
|
-
throw new Error('Contact contract must define between
|
|
358
|
+
throw new Error('Contact contract must define between 4 and 20 fields.');
|
|
358
359
|
}
|
|
359
360
|
const duplicateKey = contract.fields.find((field, index) => contract.fields.slice(0, index).some((candidate) => candidate.key === field.key));
|
|
360
361
|
if (duplicateKey)
|
|
@@ -443,6 +444,11 @@ export function defineContactContract(contract) {
|
|
|
443
444
|
throw new Error(`Contact contract requires exactly one required "${role}" field.`);
|
|
444
445
|
}
|
|
445
446
|
});
|
|
447
|
+
CONTACT_SINGLETON_ROLES.forEach((role) => {
|
|
448
|
+
if (contract.fields.filter((field) => field.role === role).length > 1) {
|
|
449
|
+
throw new Error(`Contact contract allows at most one "${role}" field.`);
|
|
450
|
+
}
|
|
451
|
+
});
|
|
446
452
|
const roleKinds = {
|
|
447
453
|
name: ['text'],
|
|
448
454
|
email: ['email'],
|
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":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAA;AAkBhE,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,CAAC;IACX,gBAAgB,EAAE,SAAS;IAC3B,iBAAiB,EAAE,SAAS;IAC5B,YAAY,EAAE;QACZ,YAAY;QACZ,WAAW;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;KACb;CACyC,CAAA;AAE5C,MAAM,iBAAiB,GAA8C;IACnE,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;CACnB,CAAA;AAED,MAAM,UAAU,uBAAuB,CACrC,SAAkC,iCAAiC;IAEnE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,SAAkC,iCAAiC;IAEnE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY;SAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;QAC1C,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,KAAK,CAAA;QACzD,IAAI,OAAO,KAAK,MAAM;YAAE,OAAO,MAAM,CAAA;QACrC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAA;IAC9B,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAA;IAEpE,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9C,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAa,EACb,SAAkC,iCAAiC;IAEnE,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAkC,CAAC,CAAA;AACzE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAAgB,EAChB,QAAiB,EACjB,SAAkC,iCAAiC;IAEnE,MAAM,cAAc,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAErD,IAAI,cAAc,IAAI,8BAA8B,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7E,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACzD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAE3B,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC/C,OAAO,UAAU,IAAI,8BAA8B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7F,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAE/C;IACC,OAAO,SAAS,OAAO,CAAC,KAAK,GAAG,CAAC,MAAM,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAuD,EACvD,SAAkC,iCAAiC;IAInE,MAAM,WAAW,GAAG,4BAA4B,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAElF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,kDAAkD,0BAA0B,CACpG,MAAM,CACP,SAAS;SACX,CAAA;IACH,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QACxF,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,UAAU,IAAI,CAAC,QAAQ,mCAAmC,gBAAgB,gBAAgB;SACpG,CAAA;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAClC,CAAC;AASD,MAAM,kBAAkB,GAAG;IACzB,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAC5B,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,QAAQ,EAAE,QAAQ,CAAC;CACZ,CAAA;AAEV,MAAM,UAAU,2BAA2B,CAAC,WAAmB,EAAE,OAAO,GAAG,EAAE;IAC3E,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,EAAE,CAAA;IAE7C,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,IAAI,eAAe,CACxB,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,CACnF,CAAA;IACH,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,CAAA;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,eAAe,EAAE,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,eAAe,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,OAAO,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,2BAA2B,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;QAEvC,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QACpB,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,SAAS,GAA2B,EAAE,CAAA;IAE5C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QACjC,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAEvC,IAAI,YAAY,IAAI,CAAC,aAAa,KAAK,YAAY,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACzF,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAA;QAC/B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AAClF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAsB;IAClD,OAAO,CACL,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CACnD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,OAAO,GAAG,EAAE;IACnE,OAAO,aAAa,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,GAAG;SACP,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC;SACvC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkC;IACjE,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAA;IAE1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;SACvD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,KAAK;QACL,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;QAC5B,KAAK;KACN,CAAC,CAAC,CAAA;IAEL,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,UAAsB;IACjE,OAAO,gBAAgB,CAAC,UAAU,CAAC;SAChC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,KAAK,EAAE,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAyB;IACnE,MAAM,UAAU,GAAG,KAAK;QACtB,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;QACxE,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;YACxC,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;YACjF,OAAO,gBAAgB,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAA;QACjE,CAAC,CAAC,KAAK,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AA+CD,MAAM,uCAAuC,GAAG;IAC9C,MAAM;IACN,OAAO;IACP,OAAO;CACC,CAAA;AAEV,MAAM,0CAA0C,GAAG;IACjD,SAAS;IACT,aAAa;IACb,cAAc;IACd,WAAW;IACX,UAAU;IACV,SAAS;CACD,CAAA;AAEV,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAA;AAC5E,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,KAAa,EAAE,KAAc;IACnE,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAAiE;IAEjE,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAoC;IAC/E,MAAM,MAAM,GAAgC,EAAE,CAAA;IAE9C,uCAAuC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACxD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,+BAA+B,KAAK,GAAG,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,kBAAkB;YACzB,OAAO,EAAE,mDAAmD;SAC7D,CAAC,CAAA;IACJ,CAAC;IAED,0CAA0C,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,+BAA+B,KAAK,GAAG,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAA0B;IACpE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAA;IAEzD,OAAO;QACL,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;QAC7C,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QAChD,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QAChD,GAAG,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,gCAAgC,CAAC,IAAI,CAAC,CAAC;QACrF,GAAG,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;QACtD,GAAG,eAAe,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC;QACnE,GAAG,eAAe,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC;KACvE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,IAAuE;IAEvE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;IAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,MAAM,CAAA;IAElE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,QAAQ,CAAA;IAChF,0EAA0E;IAC1E,kEAAkE;IAClE,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAyB;IACxD,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;IAChC,OAAO,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC;QACxF,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,IAAI,CAAC;QACH,OAAO,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAyB;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QACxF,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAA0B;IACvE,MAAM,iBAAiB,GAAG,uCAAuC,CAAC,IAAI,CAAC,CAAA;IAEvE,OAAO;QACL,GAAG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChF,GAAG,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClF,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,GAAG,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,CAAC;KACpE,CAAA;AACH,CAAC;AAED,MAAM,uBAAuB,GAAG,oCAAoC,CAAA;AAEpE,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,OAAO,uBAAuB,CAAC,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAY,CAAA;AAE7D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,YAAY;IACZ,yBAAyB;IACzB,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,gBAAgB;IAChB,mBAAmB;CACX,CAAA;AAUV,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,KAA2B,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA0B,EAAE,MAAe;IACjF,MAAM,MAAM,GAAuC;QACjD,YAAY,EAAE,YAAY;QAC1B,yBAAyB,EAAE,yBAAyB;QACpD,gBAAgB,EAAE,gBAAgB;QAClC,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,QAAQ;QAChB,gBAAgB,EAAE,gBAAgB;QAClC,mBAAmB,EAAE,mBAAmB;KACzC,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5B,OAAO,MAAM,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,QAAQ,CAAC;QAC7D,CAAC,CAAC,GAAG,KAAK,MAAM,MAAM,EAAE;QACxB,CAAC,CAAC,KAAK,CAAA;AACX,CAAC;AAyED,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAU,CAAA;AAC7E,MAAM,uBAAuB,GAAG,CAAC,UAAU,CAAU,CAAA;AACrD,MAAM,eAAe,GAAG,mBAAmB,CAAA;AAC3C,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;AACvD,MAAM,yBAAyB,GAAG,4BAA4B,CAAA;AAC9D,MAAM,sBAAsB,GAC1B,6DAA6D,CAAA;AAC/D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAmB;IACpD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ;CAC1D,CAAC,CAAA;AACF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAmB;IACpD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU;CACzD,CAAC,CAAA;AACF,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAa;IACtD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAa,EACb,WAA8B,EAC9B,KAAa;IAEb,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAA;IACpC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACzE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,+BAA+B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAA0C,QAAW;IACxF,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IACD,yBAAyB,CACvB,QAAQ,EACR,CAAC,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAClE,kBAAkB,CACnB,CAAA;IACD,IACE,CAAC,QAAQ,CAAC,WAAW;QACrB,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ;QACxC,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EACnF,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,yBAAyB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,8BAA8B,CAAC,CAAA;IACzF,IACE,CAAC,QAAQ,CAAC,QAAQ;QAClB,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ;QACrC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAChC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;IACD,yBAAyB,CACvB,QAAQ,CAAC,QAAQ,EACjB,CAAC,cAAc,EAAE,QAAQ,CAAC,EAC1B,2BAA2B,CAC5B,CAAA;IACD,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACnD,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IACzD,+BAA+B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,sBAAsB,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC1F,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACzD,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CACjF,CAAA;IACD,IAAI,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,YAAY,CAAC,GAAG,IAAI,CAAC,CAAA;IAEzG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvC,yBAAyB,CACvB,KAAK,EACL;YACE,KAAK;YACL,MAAM;YACN,MAAM;YACN,UAAU;YACV,WAAW;YACX,SAAS;YACT,eAAe;YACf,WAAW;YACX,cAAc;SACf,EACD,UAAU,KAAK,GAAG,CACnB,CAAA;QACD,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAA;QACrD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,mBAAmB,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,oBAAoB,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,oBAAoB,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,6BAA6B,CAAC,CAAA;QAC/D,CAAC;QACD,IACE,KAAK,CAAC,SAAS,KAAK,SAAS;YAC7B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,EAC3F,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,yBAAyB,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC7B,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG;gBAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,CAChB,CAAC,MAAe,EAAE,EAAE,CAClB,OAAO,MAAM,KAAK,QAAQ;oBAC1B,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM;oBACxB,CAAC,MAAM;oBACP,MAAM,CAAC,MAAM,GAAG,GAAG,CACtB;gBACD,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,EACpD,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,sDAAsD,CAAC,CAAA;YACxF,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,gDAAgD,CAAC,CAAA;QAClF,CAAC;QACD,IACE,KAAK,CAAC,aAAa,KAAK,SAAS;YACjC,CAAC,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EACvE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,iCAAiC,CAAC,CAAA;QACnE,CAAC;QACD,IACE,KAAK,CAAC,aAAa,KAAK,yBAAyB;YACjD,KAAK,CAAC,IAAI,KAAK,KAAK,EACpB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,gDAAgD,CAAC,CAAA;QAClF,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,sDAAsD,CAAC,CAAA;YACxF,CAAC;YACD,IAAI,KAAK,CAAC,aAAa,KAAK,yBAAyB,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,mDAAmD,CAAC,CAAA;YACrF,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,+CAA+C,CAAC,CAAA;QACjF,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,8CAA8C,CAAC,CAAA;QAChF,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,IACE,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;gBACtC,CAAC,KAAK,CAAC,YAAY;gBACnB,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,YAAY;gBAChD,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,EAC/B,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,iDAAiD,CAAC,CAAA;YACnF,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,uDAAuD,CAAC,CAAA;QACzF,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,sBAAsB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,UAAU,CAAC,CAAA;QACpF,CAAC;IACH,CAAC,CAAC,CAAA;IACF,uBAAuB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,UAAU,CAAC,CAAA;QACzE,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAmE;QAChF,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,OAAO,CAAC;QAChB,KAAK,EAAE,CAAC,KAAK,CAAC;QACd,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC5B,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB,CAAA;IACD,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAwB,CAAA;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAwB,CAAA;QAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,GAAG,mCAAmC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC/E,CAAC;IACD,IACE,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG;QACrC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EACtD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC","sourcesContent":["import { normalizeBrandlabRoutePath } from './routes.js'\nimport { assertBrandlabCanonicalEntityId } from './entity-id.js'\n\nexport interface ContactAttachmentPolicy {\n maxFiles: number\n maxFileSizeBytes: number\n maxTotalSizeBytes: number\n allowedTypes: readonly ContactAttachmentMimeType[]\n}\n\nexport type ContactAttachmentMimeType =\n | 'image/jpeg'\n | 'image/jpg'\n | 'image/png'\n | 'image/webp'\n | 'image/gif'\n | 'image/heic'\n | 'image/heif'\n\nexport const DEFAULT_CONTACT_ATTACHMENT_POLICY = {\n maxFiles: 5,\n maxFileSizeBytes: 4_000_000,\n maxTotalSizeBytes: 4_000_000,\n allowedTypes: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/webp',\n 'image/gif',\n 'image/heic',\n 'image/heif',\n ],\n} as const satisfies ContactAttachmentPolicy\n\nconst EXTENSION_TO_MIME: Record<string, ContactAttachmentMimeType> = {\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n png: 'image/png',\n gif: 'image/gif',\n webp: 'image/webp',\n heic: 'image/heic',\n heif: 'image/heif',\n}\n\nexport function contactAttachmentAccept(\n policy: ContactAttachmentPolicy = DEFAULT_CONTACT_ATTACHMENT_POLICY,\n) {\n return [...new Set(policy.allowedTypes)].join(',')\n}\n\nexport function contactAttachmentTypeLabel(\n policy: ContactAttachmentPolicy = DEFAULT_CONTACT_ATTACHMENT_POLICY,\n) {\n const labels = policy.allowedTypes\n .map((type) => {\n const subtype = type.split('/')[1] ?? type\n if (subtype === 'jpeg' || subtype === 'jpg') return 'JPG'\n if (subtype === 'webp') return 'WebP'\n return subtype.toUpperCase()\n })\n .filter((label, index, labels) => labels.indexOf(label) === index)\n\n if (labels.length <= 1) return labels[0] ?? ''\n return `${labels.slice(0, -1).join(', ')}, or ${labels[labels.length - 1]}`\n}\n\nexport function isAllowedContactAttachmentType(\n value: string,\n policy: ContactAttachmentPolicy = DEFAULT_CONTACT_ATTACHMENT_POLICY,\n): value is ContactAttachmentMimeType {\n return policy.allowedTypes.includes(value as ContactAttachmentMimeType)\n}\n\nexport function resolveContactAttachmentType(\n filename: string,\n fileType?: string,\n policy: ContactAttachmentPolicy = DEFAULT_CONTACT_ATTACHMENT_POLICY,\n): ContactAttachmentMimeType | null {\n const normalizedType = fileType?.trim().toLowerCase()\n\n if (normalizedType && isAllowedContactAttachmentType(normalizedType, policy)) {\n return normalizedType\n }\n\n const extension = filename.toLowerCase().split('.').pop()\n if (!extension) return null\n\n const mappedType = EXTENSION_TO_MIME[extension]\n return mappedType && isAllowedContactAttachmentType(mappedType, policy) ? mappedType : null\n}\n\nexport function createContactAttachmentFilename(options: {\n index: number\n}) {\n return `image-${options.index + 1}.jpg`\n}\n\nexport function validateContactAttachment(\n file: { filename: string; size: number; type?: string },\n policy: ContactAttachmentPolicy = DEFAULT_CONTACT_ATTACHMENT_POLICY,\n):\n | { ok: true; contentType: ContactAttachmentMimeType }\n | { ok: false; message: string } {\n const contentType = resolveContactAttachmentType(file.filename, file.type, policy)\n\n if (!contentType) {\n return {\n ok: false,\n message: `\"${file.filename}\" is not a supported image type. Please upload ${contactAttachmentTypeLabel(\n policy,\n )} files.`,\n }\n }\n\n if (file.size > policy.maxFileSizeBytes) {\n const maximumMegabytes = Math.round((policy.maxFileSizeBytes / (1024 * 1024)) * 10) / 10\n return {\n ok: false,\n message: `Image \"${file.filename}\" is too large. Maximum size is ${maximumMegabytes} MB per image.`,\n }\n }\n\n return { ok: true, contentType }\n}\n\nexport type AdClickIds = {\n gclid?: string\n gbraid?: string\n wbraid?: string\n gadParams?: Record<string, string>\n}\n\nconst AD_CLICK_ID_FIELDS = [\n ['gclid', 'Google Click ID'],\n ['gbraid', 'GBRAID'],\n ['wbraid', 'WBRAID'],\n] as const\n\nexport function resolveTrackingSearchParams(queryParams: string, pageUrl = '') {\n const trimmedQueryParams = queryParams.trim()\n\n if (trimmedQueryParams) {\n return new URLSearchParams(\n trimmedQueryParams.startsWith('?') ? trimmedQueryParams : `?${trimmedQueryParams}`,\n )\n }\n\n if (pageUrl) {\n try {\n return new URL(pageUrl).searchParams\n } catch {\n return new URLSearchParams()\n }\n }\n\n return new URLSearchParams()\n}\n\nexport function resolveAdClickIds(queryParams: string, pageUrl = ''): AdClickIds {\n const params = resolveTrackingSearchParams(queryParams, pageUrl)\n const clickIds = AD_CLICK_ID_FIELDS.reduce<AdClickIds>((ids, [field]) => {\n const value = params.get(field)?.trim()\n\n if (value) {\n ids[field] = value\n }\n\n return ids\n }, {})\n const gadParams: Record<string, string> = {}\n\n params.forEach((value, key) => {\n const trimmedValue = value.trim()\n const normalizedKey = key.toLowerCase()\n\n if (trimmedValue && (normalizedKey === 'gad_source' || normalizedKey.startsWith('gad_'))) {\n gadParams[key] = trimmedValue\n }\n })\n\n return Object.keys(gadParams).length > 0 ? { ...clickIds, gadParams } : clickIds\n}\n\nexport function hasAdClickIds(adClickIds: AdClickIds) {\n return (\n AD_CLICK_ID_FIELDS.some(([field]) => Boolean(adClickIds[field])) ||\n Object.keys(adClickIds.gadParams ?? {}).length > 0\n )\n}\n\nexport function hasGoogleAdsClickId(queryParams: string, pageUrl = '') {\n return hasAdClickIds(resolveAdClickIds(queryParams, pageUrl))\n}\n\nfunction formatGadLabel(key: string) {\n return key\n .replace(/^gad_/, 'GAD ')\n .replace(/_/g, ' ')\n .replace(/campaignid\\b/i, 'campaign ID')\n .replace(/\\b\\w/g, (letter) => letter.toUpperCase())\n}\n\nexport function getAdClickIdRows(adClickIds: AdClickIds | undefined) {\n if (!adClickIds) return []\n\n const directRows = AD_CLICK_ID_FIELDS.flatMap(([field, label]) => {\n const value = adClickIds[field]\n return value ? [{ field, label, value }] : []\n })\n\n const gadRows = Object.entries(adClickIds.gadParams ?? {})\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([field, value]) => ({\n field,\n label: formatGadLabel(field),\n value,\n }))\n\n return [...directRows, ...gadRows]\n}\n\nexport function formatAdClickIdsForEmailText(adClickIds: AdClickIds) {\n return getAdClickIdRows(adClickIds)\n .map(({ label, value }) => `${label}: ${value}`)\n .join('\\n')\n}\n\nexport function parseContactEmailRecipients(value: string | undefined) {\n const recipients = value\n ?.split(',')\n .map((item) => item.trim())\n .filter(Boolean) ?? []\n const unique = recipients.filter((recipient, index) => {\n const address = recipient.match(/<([^<>]+)>$/)?.[1]?.trim() ?? recipient\n return recipients.findIndex((candidate) => {\n const candidateAddress = candidate.match(/<([^<>]+)>$/)?.[1]?.trim() ?? candidate\n return candidateAddress.toLowerCase() === address.toLowerCase()\n }) === index\n })\n if (unique.length > 5) {\n throw new Error('Contact delivery supports no more than five unique recipients.')\n }\n return unique\n}\n\nexport interface ContactFormEmailBaseData {\n name: string\n email: string\n phone: string\n message: string\n submittedAt: string\n submissionId: string\n pageLabel: string\n pagePath: string\n pageUrl: string\n trafficSource?: string\n initialLandingPath?: string\n initialLandingUrl?: string\n adClickIds?: AdClickIds\n attachmentCount?: number\n attachments?: readonly ContactFormEmailAttachmentSummary[]\n}\n\nexport type ContactFormEmailData = ContactFormEmailBaseData &\n ({ suburb: string; location?: string } | { location: string; suburb?: string })\n\nexport interface ContactFormEmailAttachmentSummary {\n filename: string\n contentType?: string\n sizeBytes?: number\n}\n\nexport interface ContactFormEmailRow {\n field: string\n label: string\n value: string\n}\n\nexport interface ContactFormEmailDataIssue {\n field: string\n message: string\n}\n\ntype ContactFormEmailValidationData = Partial<\n ContactFormEmailBaseData & {\n suburb: string\n location: string\n }\n>\n\nconst REQUIRED_CONTACT_FORM_EMAIL_LEAD_FIELDS = [\n 'name',\n 'email',\n 'phone',\n] as const\n\nconst REQUIRED_CONTACT_FORM_EMAIL_CONTEXT_FIELDS = [\n 'message',\n 'submittedAt',\n 'submissionId',\n 'pageLabel',\n 'pagePath',\n 'pageUrl',\n] as const\n\nfunction hasContactEmailValue(value: unknown) {\n return typeof value === 'string' ? value.trim().length > 0 : value != null\n}\n\nfunction contactEmailRow(field: string, label: string, value: unknown): ContactFormEmailRow[] {\n return hasContactEmailValue(value) ? [{ field, label, value: String(value) }] : []\n}\n\nexport function getContactFormEmailLocationValue(\n data: Pick<ContactFormEmailValidationData, 'location' | 'suburb'>,\n) {\n return data.suburb?.trim() || data.location?.trim() || ''\n}\n\nexport function validateContactFormEmailData(data: ContactFormEmailValidationData) {\n const issues: ContactFormEmailDataIssue[] = []\n\n REQUIRED_CONTACT_FORM_EMAIL_LEAD_FIELDS.forEach((field) => {\n if (!hasContactEmailValue(data[field])) {\n issues.push({ field, message: `Contact email data requires ${field}.` })\n }\n })\n\n if (!getContactFormEmailLocationValue(data)) {\n issues.push({\n field: 'suburbOrLocation',\n message: 'Contact email data requires a suburb or location.',\n })\n }\n\n REQUIRED_CONTACT_FORM_EMAIL_CONTEXT_FIELDS.forEach((field) => {\n if (!hasContactEmailValue(data[field])) {\n issues.push({ field, message: `Contact email data requires ${field}.` })\n }\n })\n\n return issues\n}\n\nexport function getContactFormEmailLeadRows(data: ContactFormEmailData) {\n const locationField = data.suburb ? 'suburb' : 'location'\n\n return [\n ...contactEmailRow('name', 'Name', data.name),\n ...contactEmailRow('email', 'Email', data.email),\n ...contactEmailRow('phone', 'Phone', data.phone),\n ...contactEmailRow(locationField, 'Location', getContactFormEmailLocationValue(data)),\n ...contactEmailRow('message', 'Message', data.message),\n ...contactEmailRow('submittedAt', 'Submitted at', data.submittedAt),\n ...contactEmailRow('submissionId', 'Submission ID', data.submissionId),\n ]\n}\n\nexport function formatContactFormEmailAttachmentSummary(\n data: Pick<ContactFormEmailBaseData, 'attachmentCount' | 'attachments'>,\n) {\n const attachments = data.attachments ?? []\n const attachmentCount = data.attachmentCount ?? attachments.length\n\n if (!attachmentCount) {\n return undefined\n }\n\n const countLabel = attachmentCount === 1 ? '1 file' : `${attachmentCount} files`\n // Original filenames may contain a person's name, address or device data.\n // Shared context rows retain only the operationally useful count.\n return countLabel\n}\n\nfunction privacySafeContextLabel(value: string | undefined) {\n const normalized = value?.trim()\n return normalized && normalized.length <= 160 && !/[\\u0000-\\u001f\\u007f]/.test(normalized)\n ? normalized\n : undefined\n}\n\nfunction privacySafeContextPath(value: string | undefined) {\n if (!value) return undefined\n try {\n return normalizeBrandlabRoutePath(value.split(/[?#]/, 1)[0] ?? '')\n } catch {\n return undefined\n }\n}\n\nfunction privacySafeContextUrl(value: string | undefined) {\n if (!value) return undefined\n try {\n const parsed = new URL(value)\n if (parsed.protocol !== 'https:' || parsed.username || parsed.password) return undefined\n const path = privacySafeContextPath(parsed.pathname)\n return path ? new URL(path, parsed.origin).toString() : undefined\n } catch {\n return undefined\n }\n}\n\nexport function getContactFormEmailContextRows(data: ContactFormEmailData) {\n const attachmentSummary = formatContactFormEmailAttachmentSummary(data)\n\n return [\n ...contactEmailRow('pageLabel', 'Page', privacySafeContextLabel(data.pageLabel)),\n ...contactEmailRow('pagePath', 'Page path', privacySafeContextPath(data.pagePath)),\n ...contactEmailRow('pageUrl', 'Page URL', privacySafeContextUrl(data.pageUrl)),\n ...contactEmailRow('attachments', 'Attachments', attachmentSummary),\n ]\n}\n\nconst AUSTRALIAN_PHONE_DIGITS = /^(?:0[23478]\\d{8}|61[23478]\\d{8})$/\n\nexport function normalizeAustralianPhoneDigits(phone: string) {\n return phone.replace(/[^\\d]/g, '')\n}\n\nexport function isValidAustralianPhoneNumber(phone: string) {\n return AUSTRALIAN_PHONE_DIGITS.test(normalizeAustralianPhoneDigits(phone))\n}\n\nexport const BRANDLAB_CONTACT_CONTRACT_VERSION = '4' as const\n\nexport const CONTACT_VISIT_SOURCES = [\n 'google-ads',\n 'google-business-profile',\n 'organic-search',\n 'referral',\n 'social',\n 'email-campaign',\n 'direct-or-unknown',\n] as const\n\nexport type ContactVisitSource = (typeof CONTACT_VISIT_SOURCES)[number]\n\nexport interface ContactAttributionSummary {\n initialLandingPath: string\n visitSource: ContactVisitSource\n visitSourceDetail?: string\n}\n\nexport function isContactVisitSource(value: unknown): value is ContactVisitSource {\n return CONTACT_VISIT_SOURCES.includes(value as ContactVisitSource)\n}\n\nexport function contactVisitSourceLabel(source: ContactVisitSource, detail?: string) {\n const labels: Record<ContactVisitSource, string> = {\n 'google-ads': 'Google Ads',\n 'google-business-profile': 'Google Business Profile',\n 'organic-search': 'Organic search',\n referral: 'Referral',\n social: 'Social',\n 'email-campaign': 'Email campaign',\n 'direct-or-unknown': 'Direct or unknown',\n }\n const label = labels[source]\n return detail && (source === 'referral' || source === 'social')\n ? `${label} — ${detail}`\n : label\n}\n\nexport type ContactFieldRole =\n | 'name'\n | 'email'\n | 'phone'\n | 'location'\n | 'message'\n | 'custom'\n\nexport type ContactFieldKind =\n | 'text'\n | 'email'\n | 'tel'\n | 'textarea'\n | 'select'\n | 'checkbox'\n\nexport type ContactFieldNormalization =\n | 'lowercase'\n | 'australian-phone-digits'\n\nexport type ContactPhoneRule = 'australian'\n\nexport interface ContactFieldContract {\n key: string\n role: ContactFieldRole\n kind: ContactFieldKind\n required: boolean\n /** Declarative limits remain shared instead of being recreated in projects. */\n maxLength?: number\n /** Required for select fields and prohibited for other field kinds. */\n options?: readonly string[]\n normalization?: ContactFieldNormalization\n /** Required for telephone fields so server validation has explicit semantics. */\n phoneRule?: ContactPhoneRule\n /** Required for checkbox fields; browsers submit this exact value when checked. */\n checkedValue?: string\n}\n\nexport interface BrandlabContactContract {\n projectId: string\n fieldProfile: string\n fields: readonly ContactFieldContract[]\n attachments: {\n mode: 'none' | 'images-optional' | 'images-required'\n }\n delivery: {\n recipientEnv: string\n /** Reviewed non-secret sender identity, for example Brand <noreply@example.com>. */\n sender: string\n }\n}\n\nexport type ContactActionResult =\n | {\n ok: true\n accepted: true\n trackConversion: true\n confirmationId: string\n }\n | {\n ok: true\n accepted: false\n trackConversion: false\n }\n | {\n ok: false\n code: 'validation' | 'attachment_rejected' | 'delivery_unavailable'\n retryable: boolean\n fieldErrors?: Record<string, string[]>\n }\n\nconst CONTACT_REQUIRED_ROLES = ['name', 'email', 'phone', 'message'] as const\nconst CONTACT_SINGLETON_ROLES = ['location'] as const\nconst ENV_KEY_PATTERN = /^[A-Z][A-Z0-9_]*$/\nconst CONTACT_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/\nconst CONTACT_FIELD_KEY_PATTERN = /^[a-z][A-Za-z0-9_-]{0,63}$/\nconst CONTACT_SENDER_PATTERN =\n /^(?:[^<>\\r\\n]{1,120}<)?[^\\s<>,@]+@[^\\s<>,@]+\\.[^\\s<>,@]+>?$/\nconst CONTACT_FIELD_ROLES = new Set<ContactFieldRole>([\n 'name', 'email', 'phone', 'location', 'message', 'custom',\n])\nconst CONTACT_FIELD_KINDS = new Set<ContactFieldKind>([\n 'text', 'email', 'tel', 'textarea', 'select', 'checkbox',\n])\nfunction assertContractText(value: string, field: string) {\n if (!value.trim()) throw new Error(`${field} cannot be empty.`)\n}\n\nfunction assertContactContractKeys(\n value: object,\n allowedKeys: readonly string[],\n field: string,\n) {\n const allowed = new Set(allowedKeys)\n const unsupported = Object.keys(value).filter((key) => !allowed.has(key))\n if (unsupported.length > 0) {\n throw new Error(`${field} contains unsupported keys: ${unsupported.join(', ')}.`)\n }\n}\n\nexport function defineContactContract<const T extends BrandlabContactContract>(contract: T): T {\n if (!contract || typeof contract !== 'object' || Array.isArray(contract)) {\n throw new Error('Contact contract must be an object.')\n }\n if (!Array.isArray(contract.fields)) {\n throw new Error('Contact contract fields must be an array.')\n }\n assertContactContractKeys(\n contract,\n ['projectId', 'fieldProfile', 'fields', 'attachments', 'delivery'],\n 'Contact contract',\n )\n if (\n !contract.attachments ||\n typeof contract.attachments !== 'object' ||\n !['none', 'images-optional', 'images-required'].includes(contract.attachments.mode)\n ) {\n throw new Error('Contact contract attachment mode is invalid.')\n }\n assertContactContractKeys(contract.attachments, ['mode'], 'Contact contract attachments')\n if (\n !contract.delivery ||\n typeof contract.delivery !== 'object' ||\n Array.isArray(contract.delivery)\n ) {\n throw new Error('Contact contract delivery environment is invalid.')\n }\n assertContactContractKeys(\n contract.delivery,\n ['recipientEnv', 'sender'],\n 'Contact contract delivery',\n )\n assertContractText(contract.projectId, 'projectId')\n assertContractText(contract.fieldProfile, 'fieldProfile')\n assertBrandlabCanonicalEntityId(contract.projectId)\n if (!CONTACT_ID_PATTERN.test(contract.fieldProfile)) {\n throw new Error('fieldProfile must be lowercase kebab-case.')\n }\n if (contract.fields.length < CONTACT_REQUIRED_ROLES.length || contract.fields.length > 20) {\n throw new Error('Contact contract must define between 4 and 20 fields.')\n }\n\n const duplicateKey = contract.fields.find((field, index) =>\n contract.fields.slice(0, index).some((candidate) => candidate.key === field.key),\n )\n if (duplicateKey) throw new Error(`Contact contract contains duplicate field key \"${duplicateKey.key}\".`)\n\n contract.fields.forEach((field, index) => {\n assertContactContractKeys(\n field,\n [\n 'key',\n 'role',\n 'kind',\n 'required',\n 'maxLength',\n 'options',\n 'normalization',\n 'phoneRule',\n 'checkedValue',\n ],\n `fields[${index}]`,\n )\n assertContractText(field.key, `fields[${index}].key`)\n if (!CONTACT_FIELD_KEY_PATTERN.test(field.key)) {\n throw new Error(`fields[${index}].key is invalid.`)\n }\n if (!CONTACT_FIELD_ROLES.has(field.role)) {\n throw new Error(`fields[${index}].role is invalid.`)\n }\n if (!CONTACT_FIELD_KINDS.has(field.kind)) {\n throw new Error(`fields[${index}].kind is invalid.`)\n }\n if (typeof field.required !== 'boolean') {\n throw new Error(`fields[${index}].required must be boolean.`)\n }\n if (\n field.maxLength !== undefined &&\n (!Number.isSafeInteger(field.maxLength) || field.maxLength < 1 || field.maxLength > 10_000)\n ) {\n throw new Error(`fields[${index}].maxLength is invalid.`)\n }\n if (field.kind === 'select') {\n if (\n !Array.isArray(field.options) ||\n field.options.length === 0 ||\n field.options.length > 100 ||\n field.options.some(\n (option: unknown) =>\n typeof option !== 'string' ||\n option.trim() !== option ||\n !option ||\n option.length > 200,\n ) ||\n new Set(field.options).size !== field.options.length\n ) {\n throw new Error(`fields[${index}].options must be a bounded unique select allowlist.`)\n }\n } else if (field.options !== undefined) {\n throw new Error(`fields[${index}].options is supported only for select fields.`)\n }\n if (\n field.normalization !== undefined &&\n !['lowercase', 'australian-phone-digits'].includes(field.normalization)\n ) {\n throw new Error(`fields[${index}].normalization is unsupported.`)\n }\n if (\n field.normalization === 'australian-phone-digits' &&\n field.kind !== 'tel'\n ) {\n throw new Error(`fields[${index}] uses phone normalization without a tel kind.`)\n }\n if (field.kind === 'tel') {\n if (field.phoneRule !== 'australian') {\n throw new Error(`fields[${index}].phoneRule must declare Australian phone semantics.`)\n }\n if (field.normalization !== 'australian-phone-digits') {\n throw new Error(`fields[${index}].normalization must use Australian phone digits.`)\n }\n } else if (field.phoneRule !== undefined) {\n throw new Error(`fields[${index}].phoneRule is supported only for tel fields.`)\n }\n if (field.kind === 'email' && field.normalization !== 'lowercase') {\n throw new Error(`fields[${index}].normalization must lowercase email values.`)\n }\n if (field.kind === 'checkbox') {\n if (\n typeof field.checkedValue !== 'string' ||\n !field.checkedValue ||\n field.checkedValue.trim() !== field.checkedValue ||\n field.checkedValue.length > 100\n ) {\n throw new Error(`fields[${index}].checkedValue is required for checkbox fields.`)\n }\n } else if (field.checkedValue !== undefined) {\n throw new Error(`fields[${index}].checkedValue is supported only for checkbox fields.`)\n }\n })\n\n CONTACT_REQUIRED_ROLES.forEach((role) => {\n const matches = contract.fields.filter((field) => field.role === role)\n if (matches.length !== 1 || !matches[0]?.required) {\n throw new Error(`Contact contract requires exactly one required \"${role}\" field.`)\n }\n })\n CONTACT_SINGLETON_ROLES.forEach((role) => {\n if (contract.fields.filter((field) => field.role === role).length > 1) {\n throw new Error(`Contact contract allows at most one \"${role}\" field.`)\n }\n })\n\n const roleKinds: Partial<Record<ContactFieldRole, readonly ContactFieldKind[]>> = {\n name: ['text'],\n email: ['email'],\n phone: ['tel'],\n location: ['text', 'select'],\n message: ['textarea'],\n }\n contract.fields.forEach((field) => {\n const role = field.role as ContactFieldRole\n const kind = field.kind as ContactFieldKind\n const allowedKinds = roleKinds[role]\n if (allowedKinds && !allowedKinds.includes(kind)) {\n throw new Error(`Contact field \"${field.key}\" has an invalid kind for role \"${field.role}\".`)\n }\n })\n\n if (!ENV_KEY_PATTERN.test(contract.delivery.recipientEnv)) {\n throw new Error('delivery.recipientEnv must be an environment variable key.')\n }\n if (\n !CONTACT_SENDER_PATTERN.test(contract.delivery.sender) ||\n contract.delivery.sender.length > 320 ||\n /[\\u0000-\\u001f\\u007f]/.test(contract.delivery.sender)\n ) {\n throw new Error('delivery.sender must be a reviewed email sender.')\n }\n\n return contract\n}\n"]}
|
package/dist/entity-id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-id.js","sourceRoot":"","sources":["../src/entity-id.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,CAAC,MAAM,oCAAoC,GAC/C,+BAA+B,CAAA;AACjC,MAAM,CAAC,MAAM,uCAAuC,GAAG,GAAG,CAAA;AAE1D,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC9B,KAAK,CAAC,MAAM,IAAI,uCAAuC;QACvD,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAc,EACd,KAAK,GAAG,WAAW;IAEnB,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,gBAAgB,uCAAuC,yFAAyF,CACzJ,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"entity-id.js","sourceRoot":"","sources":["../src/entity-id.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,CAAC,MAAM,oCAAoC,GAC/C,+BAA+B,CAAA;AACjC,MAAM,CAAC,MAAM,uCAAuC,GAAG,GAAG,CAAA;AAE1D,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC9B,KAAK,CAAC,MAAM,IAAI,uCAAuC;QACvD,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAc,EACd,KAAK,GAAG,WAAW;IAEnB,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,gBAAgB,uCAAuC,yFAAyF,CACzJ,CAAA;IACH,CAAC;AACH,CAAC","sourcesContent":["/** Canonical Brandlab entity IDs preserve meaningful ampersands such as h&r-kitchens. */\nexport const BRANDLAB_CANONICAL_ENTITY_ID_PATTERN =\n /^[a-z0-9]+(?:[&-][a-z0-9]+)*$/\nexport const BRANDLAB_CANONICAL_ENTITY_ID_MAX_LENGTH = 100\n\nexport function isBrandlabCanonicalEntityId(value: unknown): value is string {\n return typeof value === 'string' &&\n value.length <= BRANDLAB_CANONICAL_ENTITY_ID_MAX_LENGTH &&\n BRANDLAB_CANONICAL_ENTITY_ID_PATTERN.test(value)\n}\n\nexport function assertBrandlabCanonicalEntityId(\n value: unknown,\n field = 'projectId',\n): asserts value is string {\n if (!isBrandlabCanonicalEntityId(value)) {\n throw new Error(\n `${field} must be a 1–${BRANDLAB_CANONICAL_ENTITY_ID_MAX_LENGTH} character lowercase canonical entity ID using letters, numbers, ampersands or hyphens.`,\n )\n }\n}\n"]}
|