@brandlab-digital/site-next 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics.js.map +1 -1
- package/dist/blog.js.map +1 -1
- package/dist/breadcrumbs.js.map +1 -1
- package/dist/contact/attachments-client.js.map +1 -1
- package/dist/contact/attribution.js.map +1 -1
- package/dist/contact/client-entry.js.map +1 -1
- package/dist/contact/client.js.map +1 -1
- package/dist/contact/contract.d.ts +1 -1
- package/dist/contact/contract.d.ts.map +1 -1
- package/dist/contact/contract.js.map +1 -1
- package/dist/contact/email.js.map +1 -1
- package/dist/contact/image-sanitizer.js.map +1 -1
- package/dist/contact/index.js.map +1 -1
- package/dist/contact/resend.js.map +1 -1
- package/dist/contact/server-entry.js.map +1 -1
- package/dist/contact/server.d.ts.map +1 -1
- package/dist/contact/server.js +14 -4
- package/dist/contact/server.js.map +1 -1
- package/dist/contact/shared.js.map +1 -1
- package/dist/contact/testing.js.map +1 -1
- package/dist/google-maps-attribution-assets.js.map +1 -1
- package/dist/google-reviews-client.js.map +1 -1
- package/dist/google-reviews-server.js.map +1 -1
- package/dist/google-reviews-ui.js.map +1 -1
- package/dist/google-tag-plan.js.map +1 -1
- package/dist/google-tag.js.map +1 -1
- package/dist/headers.js +1 -1
- package/dist/headers.js.map +1 -1
- package/dist/instrumentation-client.js.map +1 -1
- package/dist/metadata.js.map +1 -1
- package/dist/reviews.js.map +1 -1
- package/dist/robots.js.map +1 -1
- package/dist/schema.js.map +1 -1
- package/dist/sitemaps.js.map +1 -1
- package/dist/ui-client.js.map +1 -1
- package/dist/ui.js.map +1 -1
- package/package.json +2 -2
package/dist/headers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Brandlab security/response headers (Brandlab Project Standard §2).\n *\n * One canonical header set for every client site, composed into\n * `next.config.ts`:\n *\n * async headers() {\n * return buildBrandlabHeaderRules({\n * isProduction,\n * profile: 'next-local-service',\n * })\n * }\n *\n * The X-Robots-Tag here carries snippet-display controls only; per-page\n * indexation stays owned by Metadata.robots (noindex pages override via\n * their <meta name=\"robots\">).\n */\n\nexport interface BrandlabHeader {\n key: string\n value: string\n}\n\nexport interface BrandlabHeaderRule {\n source: string\n headers: BrandlabHeader[]\n}\n\nexport const BRANDLAB_NEXT_HEADER_PROFILES = [\n 'next-local-service',\n 'next-root-level',\n] as const\n\nexport type BrandlabNextHeaderProfile = (typeof BRANDLAB_NEXT_HEADER_PROFILES)[number]\n\nexport const BRANDLAB_DEFAULT_PERMISSIONS_POLICY =\n 'camera=(), microphone=(), geolocation=()'\n\nexport const BRANDLAB_DEFAULT_X_ROBOTS_TAG =\n 'max-snippet:-1, max-image-preview:large, max-video-preview:-1'\n\nexport const BRANDLAB_HSTS_VALUE =\n 'max-age=31536000'\n\nexport interface BrandlabHstsExpansion {\n includeSubDomains: true\n preload?: true\n /** Reviewed proof that every affected subdomain is HTTPS-ready. */\n readinessEvidence: string\n}\n\nconst HEADER_NAME_PATTERN = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\nconst PROTECTED_HEADER_NAMES = new Set([\n 'content-security-policy',\n 'content-security-policy-report-only',\n 'x-frame-options',\n 'x-content-type-options',\n 'referrer-policy',\n 'permissions-policy',\n 'x-robots-tag',\n 'strict-transport-security',\n])\n\nexport interface BrandlabContentSecurityPolicyExtensions {\n scriptSrc?: readonly string[]\n connectSrc?: readonly string[]\n frameSrc?: readonly string[]\n}\n\nexport type BrandlabContentSecurityPolicyMode = 'enforce' | 'report-only'\n\nexport interface BrandlabSecurityHeaderOptions {\n isProduction: boolean\n profile: BrandlabNextHeaderProfile\n permissionsPolicy?: string\n /** Pass null to omit the snippet-control header entirely. */\n xRobotsTag?: string | null\n extraHeaders?: readonly BrandlabHeader[]\n hsts?: BrandlabHstsExpansion\n contentSecurityPolicyMode?: BrandlabContentSecurityPolicyMode\n /** Reviewed HTTPS origins needed by an approved project integration. */\n contentSecurityPolicyExtensions?: BrandlabContentSecurityPolicyExtensions\n}\n\nexport function buildBrandlabContentSecurityPolicy(options: {\n isProduction: boolean\n profile: BrandlabNextHeaderProfile\n contentSecurityPolicyExtensions?: BrandlabContentSecurityPolicyExtensions\n}) {\n const profile = options.profile\n if (!BRANDLAB_NEXT_HEADER_PROFILES.includes(profile)) {\n throw new Error(`Unsupported Brandlab Next header profile \"${profile}\".`)\n }\n\n const scriptSources = [\n \"'self'\",\n \"'unsafe-inline'\",\n 'https://www.googletagmanager.com',\n 'https://www.googleadservices.com',\n 'https://www.google.com',\n 'https://www.gstatic.com',\n 'https://pagead2.googlesyndication.com',\n 'https://googleads.g.doubleclick.net',\n 'https://challenges.cloudflare.com',\n ...normalizeCspExtensions(options.contentSecurityPolicyExtensions?.scriptSrc, 'scriptSrc'),\n ...(options.isProduction ? [] : [\"'unsafe-eval'\", 'http://localhost:*']),\n ]\n const connectSources = [\n \"'self'\",\n 'https://www.google-analytics.com',\n 'https://*.google-analytics.com',\n 'https://www.googletagmanager.com',\n 'https://www.googleadservices.com',\n 'https://*.doubleclick.net',\n 'https://*.google.com',\n 'https://google.com',\n 'https://www.google.com.au',\n 'https://pagead2.googlesyndication.com',\n 'https://*.googletagmanager.com',\n 'https://*.analytics.google.com',\n 'https://challenges.cloudflare.com',\n ...normalizeCspExtensions(options.contentSecurityPolicyExtensions?.connectSrc, 'connectSrc'),\n ...(options.isProduction ? [] : ['http://localhost:*', 'ws://localhost:*']),\n ]\n const directives = [\n \"default-src 'self'\",\n \"base-uri 'self'\",\n \"object-src 'none'\",\n \"frame-ancestors 'none'\",\n \"form-action 'self'\",\n `script-src ${scriptSources.join(' ')}`,\n \"style-src 'self' 'unsafe-inline'\",\n \"font-src 'self' data:\",\n \"img-src 'self' data: blob: https:\",\n `connect-src ${connectSources.join(' ')}`,\n `frame-src 'self' https://challenges.cloudflare.com https://www.googletagmanager.com https://www.google.com ${normalizeCspExtensions(\n options.contentSecurityPolicyExtensions?.frameSrc,\n 'frameSrc',\n ).join(' ')}`.trim(),\n \"manifest-src 'self'\",\n \"worker-src 'self' blob:\",\n ...(options.isProduction ? ['upgrade-insecure-requests'] : []),\n ]\n return directives.join('; ')\n}\n\nfunction normalizeCspExtensions(\n sources: readonly string[] | undefined,\n field: keyof BrandlabContentSecurityPolicyExtensions,\n) {\n if (!sources) return []\n const normalized = sources.map((source) => {\n const value = source.trim().toLowerCase()\n if (!/^https:\\/\\/(?:\\*\\.)?[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?(?::\\d{1,5})?$/.test(value)) {\n throw new Error(`${field} entries must be HTTPS origins without paths or CSP keywords.`)\n }\n return value\n })\n if (new Set(normalized).size !== normalized.length) {\n throw new Error(`${field} entries must be unique.`)\n }\n return normalized\n}\n\nfunction assertHeaderValue(value: string, field: string) {\n if (!value || value.length > 4_096 || /[\\u0000-\\u001F\\u007F]/.test(value)) {\n throw new Error(`${field} must be a bounded single-line header value.`)\n }\n}\n\nfunction validateExtraHeaders(headers: readonly BrandlabHeader[]) {\n const names = new Set<string>()\n headers.forEach((header, index) => {\n if (!HEADER_NAME_PATTERN.test(header.key)) {\n throw new Error(`extraHeaders[${index}].key is invalid.`)\n }\n const name = header.key.toLowerCase()\n if (PROTECTED_HEADER_NAMES.has(name) || names.has(name)) {\n throw new Error(`extraHeaders[${index}] duplicates a protected or existing header.`)\n }\n names.add(name)\n assertHeaderValue(header.value, `extraHeaders[${index}].value`)\n })\n}\n\nexport function buildBrandlabSecurityHeaders(\n options: BrandlabSecurityHeaderOptions,\n): BrandlabHeader[] {\n if (typeof options.isProduction !== 'boolean') {\n throw new Error('isProduction must be boolean.')\n }\n const xRobotsTag =\n options.xRobotsTag === undefined ? BRANDLAB_DEFAULT_X_ROBOTS_TAG : options.xRobotsTag\n const permissionsPolicy =\n options.permissionsPolicy ?? BRANDLAB_DEFAULT_PERMISSIONS_POLICY\n assertHeaderValue(permissionsPolicy, 'permissionsPolicy')\n if (xRobotsTag !== null) assertHeaderValue(xRobotsTag, 'xRobotsTag')\n validateExtraHeaders(options.extraHeaders ?? [])\n if (options.hsts) {\n assertHeaderValue(options.hsts.readinessEvidence, 'hsts.readinessEvidence')\n if (options.hsts.preload && !options.hsts.includeSubDomains) {\n throw new Error('HSTS preload requires includeSubDomains readiness.')\n }\n }\n const hstsValue = options.hsts\n ? `${BRANDLAB_HSTS_VALUE}; includeSubDomains${options.hsts.preload ? '; preload' : ''}`\n : BRANDLAB_HSTS_VALUE\n const cspMode = options.contentSecurityPolicyMode ?? (\n options.isProduction ? 'enforce' : 'report-only'\n )\n if (!new Set<BrandlabContentSecurityPolicyMode>(['enforce', 'report-only']).has(cspMode)) {\n throw new Error(`Unsupported contentSecurityPolicyMode \"${cspMode}\".`)\n }\n if (options.isProduction && cspMode !== 'enforce') {\n throw new Error('Production Content Security Policy must use enforce mode.')\n }\n const cspHeader = [{\n key: cspMode === 'enforce'\n ? 'Content-Security-Policy'\n : 'Content-Security-Policy-Report-Only',\n value: buildBrandlabContentSecurityPolicy(options),\n }]\n\n return [\n { key: 'X-Frame-Options', value: 'DENY' },\n { key: 'X-Content-Type-Options', value: 'nosniff' },\n { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },\n {\n key: 'Permissions-Policy',\n value: permissionsPolicy,\n },\n ...(xRobotsTag ? [{ key: 'X-Robots-Tag', value: xRobotsTag }] : []),\n ...(options.isProduction\n ? [{ key: 'Strict-Transport-Security', value: hstsValue }]\n : []),\n ...cspHeader,\n ...(options.extraHeaders ?? []),\n ]\n}\n\nexport function buildBrandlabHeaderRules(options: BrandlabSecurityHeaderOptions & {\n source?: string\n}): BrandlabHeaderRule[] {\n const source = options.source ?? '/:path*'\n if (!source.startsWith('/') || /[\\u0000-\\u001F\\u007F]/.test(source)) {\n throw new Error('Header-rule source must be a root-relative single-line pattern.')\n }\n return [\n {\n source,\n headers: buildBrandlabSecurityHeaders(options),\n },\n ]\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation-client.js","sourceRoot":"","sources":["../src/instrumentation-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,0BAA0B,CAAA;AAiBjC,MAAM,CAAC,MAAM,8BAA8B,GAAG,0BAA0B,CAAA;AACxE,MAAM,CAAC,MAAM,mCAAmC,GAAG,IAAI,CAAA;AAEvD,MAAM,UAAU,2BAA2B,CAAC,QAAmC;IAC7E,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,CAAA;IACvC,IACE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QACxB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3B,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EACrB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAClD,OAAO,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAgB,EAAE,IAAY;IACrE,OAAO,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAKzC;IACC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,mCAAmC,CAAA;IAC9E,OAAO,CAAC,CACN,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG;QACrC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,CAC9C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc,MAAM;IACxD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,8BAA8B,MAAM,CAAA;QACvD,MAAM,SAAS,GAAG,GAAG,8BAA8B,QAAQ,CAAA;QAC3D,MAAM,SAAS,GAAG,GAAG,8BAA8B,cAAc,CAAA;QACjE,MAAM,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACnF,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/C,CAAC;QACD,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC5D,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,0BAA0B,CAAC;gBAC7C,kBAAkB,EAAE,QAAQ;gBAC5B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;gBAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ;gBAC/B,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;aAChC,CAAC,CAAA;YACF,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;YAC9D,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBAClC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAA;YACtE,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,2DAA2D;QAC3D,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,8BAA8B,KAAK,CAAC,CAAA;QACrE,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,8BAA8B,UAAU,CAAC,CAAA;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc,MAAM;IACxD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,8BAA8B,MAAM,CAAC,CAAA;QACjF,OAAO,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAc,MAAM;IAC/D,MAAM,YAAY,GAAG,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACvE,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,2BAA2B,CACpD,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,8BAA8B,MAAM,CAAC,IAAI,YAAY,CACpF,CAAA;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,8BAA8B,QAAQ,CAAC,CAAA;QACzF,MAAM,iBAAiB,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAClD,GAAG,8BAA8B,cAAc,CAChD,CAAA;QACD,OAAO,kCAAkC,CAAC;YACxC,kBAAkB;YAClB,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB;YAClF,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,aAA8C,CAAA;IAEpF,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAA;IAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC;QAAE,OAAO,MAAM,CAAA;IAC/D,IAAI,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC;QAAE,OAAO,KAAK,CAAA;IAE7D,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAQzC;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAAA;IACjC,IAAI,SAAyC,CAAA;IAE7C,MAAM,gBAAgB,GAAG,CAAC,KAAiB,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC;YAAE,OAAM;QAExC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAoB,iBAAiB,CAAC,CAAA;QACjE,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAA;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAA;QACnD,MAAM,GAAG,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,IACE,CAAC,yBAAyB,CAAC;YACzB,GAAG;YACH,GAAG;YACH,SAAS;YACT,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,EACF,CAAC;YACD,OAAM;QACR,CAAC;QAED,SAAS,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;QAC5B,OAAO,CAAC,cAAc,CAAC;YACrB,QAAQ;YACR,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC;YACpC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,CAAC;SAC/C,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAA;IAE9D,OAAO,GAAG,EAAE;QACV,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAA;IACnE,CAAC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"instrumentation-client.js","sourceRoot":"","sources":["../src/instrumentation-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n isContactVisitSource,\n type ContactAttributionSummary,\n} from '@brandlab-digital/site-core/contact'\nimport {\n classifyContactAttribution,\n normalizeContactAttributionSummary,\n} from './contact/attribution.js'\n\nexport type PhoneCallLocation =\n | 'header'\n | 'footer'\n | 'hero'\n | 'cta'\n | 'fab'\n | 'contact'\n | 'location'\n | 'page'\n\nexport interface LastPhoneCallEvent {\n key: string\n at: number\n}\n\nexport const INITIAL_LANDING_STORAGE_PREFIX = 'brandlab.initialLanding.'\nexport const DEFAULT_PHONE_CALL_DEDUPE_WINDOW_MS = 1200\n\nexport function normalizeInitialLandingPath(pathname: string | null | undefined) {\n const trimmed = pathname?.trim() || '/'\n if (\n !trimmed.startsWith('/') ||\n trimmed.startsWith('//') ||\n trimmed.includes('\\\\') ||\n /%(?:2f|5c)/i.test(trimmed) ||\n /[\\u0000-\\u001f\\u007f]/.test(trimmed) ||\n trimmed.includes('?') ||\n trimmed.includes('#')\n ) {\n return '/'\n }\n const normalized = trimmed.replace(/\\/{2,}/g, '/')\n return normalized === '/' ? '/' : normalized.replace(/\\/+$/, '')\n}\n\nexport function createPhoneCallDedupeKey(pagePath: string, href: string) {\n return `${pagePath}|${href}`\n}\n\nexport function shouldTrackPhoneCallClick(options: {\n key: string\n now: number\n lastEvent?: LastPhoneCallEvent\n dedupeWindowMs?: number\n}) {\n const windowMs = options.dedupeWindowMs ?? DEFAULT_PHONE_CALL_DEDUPE_WINDOW_MS\n return !(\n options.lastEvent &&\n options.lastEvent.key === options.key &&\n options.now - options.lastEvent.at < windowMs\n )\n}\n\nexport function persistInitialLanding(win: Window = window) {\n try {\n const pathKey = `${INITIAL_LANDING_STORAGE_PREFIX}path`\n const sourceKey = `${INITIAL_LANDING_STORAGE_PREFIX}source`\n const detailKey = `${INITIAL_LANDING_STORAGE_PREFIX}sourceDetail`\n const existingPath = win.sessionStorage.getItem(pathKey)\n const safePath = normalizeInitialLandingPath(existingPath ?? win.location.pathname)\n if (existingPath !== safePath) {\n win.sessionStorage.setItem(pathKey, safePath)\n }\n const existingSource = win.sessionStorage.getItem(sourceKey)\n if (!isContactVisitSource(existingSource)) {\n const attribution = classifyContactAttribution({\n initialLandingPath: safePath,\n search: win.location.search,\n referrer: win.document.referrer,\n siteOrigin: win.location.origin,\n })\n win.sessionStorage.setItem(sourceKey, attribution.visitSource)\n if (attribution.visitSourceDetail) {\n win.sessionStorage.setItem(detailKey, attribution.visitSourceDetail)\n } else {\n win.sessionStorage.removeItem(detailKey)\n }\n }\n // Remove values written by the pre-RC privacy contract. Query strings and\n // referrers are not needed for canonical lead measurement.\n win.sessionStorage.removeItem(`${INITIAL_LANDING_STORAGE_PREFIX}url`)\n win.sessionStorage.removeItem(`${INITIAL_LANDING_STORAGE_PREFIX}referrer`)\n } catch {\n // Storage failures must not affect navigation or lead tracking.\n }\n}\n\nexport function getInitialLandingPath(win: Window = window) {\n try {\n const value = win.sessionStorage.getItem(`${INITIAL_LANDING_STORAGE_PREFIX}path`)\n return value ? normalizeInitialLandingPath(value) : undefined\n } catch {\n return undefined\n }\n}\n\nexport function getInitialContactAttribution(win: Window = window): ContactAttributionSummary {\n const fallbackPath = normalizeInitialLandingPath(win.location.pathname)\n try {\n const initialLandingPath = normalizeInitialLandingPath(\n win.sessionStorage.getItem(`${INITIAL_LANDING_STORAGE_PREFIX}path`) ?? fallbackPath,\n )\n const visitSource = win.sessionStorage.getItem(`${INITIAL_LANDING_STORAGE_PREFIX}source`)\n const visitSourceDetail = win.sessionStorage.getItem(\n `${INITIAL_LANDING_STORAGE_PREFIX}sourceDetail`,\n )\n return normalizeContactAttributionSummary({\n initialLandingPath,\n visitSource: isContactVisitSource(visitSource) ? visitSource : 'direct-or-unknown',\n ...(visitSourceDetail ? { visitSourceDetail } : {}),\n })\n } catch {\n return { initialLandingPath: fallbackPath, visitSource: 'direct-or-unknown' }\n }\n}\n\nexport function getPhoneCallLocation(link: HTMLAnchorElement): PhoneCallLocation {\n const explicitLocation = link.dataset.phoneLocation as PhoneCallLocation | undefined\n\n if (explicitLocation) return explicitLocation\n if (link.closest('header')) return 'header'\n if (link.closest('footer')) return 'footer'\n if (link.closest('[data-phone-location=\"hero\"]')) return 'hero'\n if (link.closest('[data-phone-location=\"cta\"]')) return 'cta'\n\n return 'page'\n}\n\nexport function installPhoneClickListener(options: {\n trackPhoneCall: (context: {\n pagePath: string\n location: PhoneCallLocation\n initialLandingPath?: string\n }) => void\n win?: Window\n dedupeWindowMs?: number\n}) {\n const win = options.win ?? window\n let lastEvent: LastPhoneCallEvent | undefined\n\n const handlePhoneClick = (event: MouseEvent) => {\n const target = event.target\n if (!(target instanceof Element)) return\n\n const link = target.closest<HTMLAnchorElement>('a[href^=\"tel:\"]')\n if (!link) return\n\n const pagePath = win.location.pathname || '/'\n const href = link.getAttribute('href') || link.href\n const key = createPhoneCallDedupeKey(pagePath, href)\n const now = Date.now()\n\n if (\n !shouldTrackPhoneCallClick({\n key,\n now,\n lastEvent,\n dedupeWindowMs: options.dedupeWindowMs,\n })\n ) {\n return\n }\n\n lastEvent = { key, at: now }\n options.trackPhoneCall({\n pagePath,\n location: getPhoneCallLocation(link),\n initialLandingPath: getInitialLandingPath(win),\n })\n }\n\n win.document.addEventListener('click', handlePhoneClick, true)\n\n return () => {\n win.document.removeEventListener('click', handlePhoneClick, true)\n }\n}\n"]}
|
package/dist/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GAIjB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,YAAY,EACZ,4BAA4B,GAE7B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAwB,MAAM,sCAAsC,CAAA;AAwB1F,MAAM,UAAU,cAAc,CAAC,QAA6B;IAC1D,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAC1G,QAAQ,CAAA;IACV,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA4B;IAC5D,OAAO,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAiC;IAEjC,OAAO,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAkC;IAC1E,OAAO,CAAC,IAA+B,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;AACzF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAwC;IACxF,OAAO,CAAC,IAAqC,EAAE,EAAE,CAC/C,yBAAyB,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,0BAA0B,CACxC,QAAwC,EACxC,MAA4B;IAE5B,OAAO,CAAC,KAAsB,EAA0B,EAAE;QACxD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;QAE3E,OAAO,yBAAyB,CAAC;YAC/B,GAAG,QAAQ;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI;YAC3C,QAAQ,EAAE,4BAA4B,CAAC,KAAK,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,OAAO;gBACd,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;wBACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;4BAC3B,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BAC7C,CAAC,CAAC,EAAE,CAAC;wBACP,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;qBACnC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GAIjB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,YAAY,EACZ,4BAA4B,GAE7B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAwB,MAAM,sCAAsC,CAAA;AAwB1F,MAAM,UAAU,cAAc,CAAC,QAA6B;IAC1D,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAC1G,QAAQ,CAAA;IACV,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA4B;IAC5D,OAAO,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAiC;IAEjC,OAAO,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAkC;IAC1E,OAAO,CAAC,IAA+B,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;AACzF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAwC;IACxF,OAAO,CAAC,IAAqC,EAAE,EAAE,CAC/C,yBAAyB,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,0BAA0B,CACxC,QAAwC,EACxC,MAA4B;IAE5B,OAAO,CAAC,KAAsB,EAA0B,EAAE;QACxD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;QAE3E,OAAO,yBAAyB,CAAC;YAC/B,GAAG,QAAQ;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI;YAC3C,QAAQ,EAAE,4BAA4B,CAAC,KAAK,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,OAAO;gBACd,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;wBACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;4BAC3B,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BAC7C,CAAC,CAAC,EAAE,CAAC;wBACP,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;qBACnC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC","sourcesContent":["import {\n buildBrandlabMetadata,\n buildSeoMetadata,\n type BrandlabSeoMetadata,\n type BuildBrandlabMetadataInput,\n type BuildSeoMetadataInput,\n} from '@brandlab-digital/site-core/metadata'\nimport {\n getRouteById,\n resolveBrandlabRouteIndexing,\n type BrandlabRouteCatalog,\n} from '@brandlab-digital/site-core/routes'\nimport { defineSeoPage, type BrandlabSeoPage } from '@brandlab-digital/site-core/seo-page'\n\nexport type NextCompatibleMetadata = Omit<\n BrandlabSeoMetadata,\n 'canonicalPath' | 'canonicalUrl' | 'resolvedTitle'\n>\n\nexport type BrandlabMetadataDefaults = Pick<\n BuildSeoMetadataInput,\n 'brandName' | 'siteUrl' | 'locale' | 'titleTemplate' | 'defaultSocialImage'\n>\n\nexport type BrandlabPageMetadataInput = Omit<BuildSeoMetadataInput, keyof BrandlabMetadataDefaults>\n\nexport type BrandlabStrictMetadataDefaults = Pick<\n BuildBrandlabMetadataInput,\n 'brandName' | 'siteUrl' | 'locale' | 'titleTemplate' | 'defaultSocialImage'\n>\n\nexport type BrandlabStrictPageMetadataInput = Omit<\n BuildBrandlabMetadataInput,\n keyof BrandlabStrictMetadataDefaults\n>\n\nexport function toNextMetadata(metadata: BrandlabSeoMetadata): NextCompatibleMetadata {\n const { canonicalPath: _canonicalPath, canonicalUrl: _canonicalUrl, resolvedTitle: _resolvedTitle, ...next } =\n metadata\n return next\n}\n\nexport function buildNextMetadata(input: BuildSeoMetadataInput): NextCompatibleMetadata {\n return toNextMetadata(buildSeoMetadata(input))\n}\n\nexport function buildBrandlabNextMetadata(\n input: BuildBrandlabMetadataInput,\n): NextCompatibleMetadata {\n return toNextMetadata(buildBrandlabMetadata(input))\n}\n\nexport function createNextMetadataBuilder(defaults: BrandlabMetadataDefaults) {\n return (page: BrandlabPageMetadataInput) => buildNextMetadata({ ...defaults, ...page })\n}\n\nexport function createBrandlabNextMetadataBuilder(defaults: BrandlabStrictMetadataDefaults) {\n return (page: BrandlabStrictPageMetadataInput) =>\n buildBrandlabNextMetadata({ ...defaults, ...page })\n}\n\n/** Builds page metadata from the same route identity used by breadcrumbs and sitemaps. */\nexport function createRouteMetadataBuilder(\n defaults: BrandlabStrictMetadataDefaults,\n routes: BrandlabRouteCatalog,\n) {\n return (input: BrandlabSeoPage): NextCompatibleMetadata => {\n const page = defineSeoPage(input)\n const route = getRouteById(routes, page.routeId)\n if (!route) throw new Error(`Unknown metadata route ID \"${page.routeId}\".`)\n\n return buildBrandlabNextMetadata({\n ...defaults,\n title: page.title,\n description: page.description,\n pathname: route.canonicalPath ?? route.path,\n indexing: resolveBrandlabRouteIndexing(route),\n ...(page.titleMode ? { titleMode: page.titleMode } : {}),\n ...(page.keywords ? { keywords: [...page.keywords] } : {}),\n ...(page.socialImage ? { socialImage: page.socialImage } : {}),\n ...(page.article\n ? {\n article: {\n publishedTime: page.article.publishedTime,\n ...(page.article.modifiedTime\n ? { modifiedTime: page.article.modifiedTime }\n : {}),\n authors: [...page.article.authors],\n },\n }\n : {}),\n })\n }\n}\n"]}
|
package/dist/reviews.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviews.js","sourceRoot":"","sources":["../src/reviews.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,qCAAqC,CAAA;AAa5C,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAClC,OAAwC;IAExC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SACvB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SAC3C,MAAM,CAAC,oBAAoB,CAAC;SAC5B,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;AAC5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"reviews.js","sourceRoot":"","sources":["../src/reviews.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,qCAAqC,CAAA;AAa5C,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAClC,OAAwC;IAExC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SACvB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SAC3C,MAAM,CAAC,oBAAoB,CAAC;SAC5B,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;AAC5D,CAAC","sourcesContent":["import {\n defineReviewRecord,\n isPublicReviewRecord,\n type BrandlabReviewRecord,\n type BrandlabReviewSource,\n} from '@brandlab-digital/site-core/reviews'\n\nexport interface BrandlabPublicReview {\n id: string\n reviewerName: string\n text: string\n rating?: number\n publishedAt?: string\n source: BrandlabReviewSource\n sourceName: string\n sourceUrl?: string\n}\n\n/** Produces presentation-neutral review data for a project's visual component. */\nexport function preparePublicReviews(\n reviews: readonly BrandlabReviewRecord[],\n): BrandlabPublicReview[] {\n if (!Array.isArray(reviews)) {\n throw new Error('reviews must be an array of verified review records.')\n }\n return Array.from(reviews)\n .map((review) => defineReviewRecord(review))\n .filter(isPublicReviewRecord)\n .map(({ visibility: _visibility, ...review }) => review)\n}\n"]}
|
package/dist/robots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"robots.js","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAOtE,MAAM,UAAU,mBAAmB,CAAC,OAKnC;IACC,MAAM,WAAW,GAAG,eAAe,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC,CAAA;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;SAC3C,CAAA;IACH,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,kEAAkE;IAClE,OAAO;QACL,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACvC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;KACzD,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"robots.js","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAOtE,MAAM,UAAU,mBAAmB,CAAC,OAKnC;IACC,MAAM,WAAW,GAAG,eAAe,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC,CAAA;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;SAC3C,CAAA;IACH,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,kEAAkE;IAClE,OAAO;QACL,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACvC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;KACzD,CAAA;AACH,CAAC","sourcesContent":["import { getAbsoluteUrl } from '@brandlab-digital/site-core/metadata'\nimport { shouldIndexSite } from '@brandlab-digital/site-core/sitemaps'\n\nexport interface BrandlabRobotsMetadata {\n rules: Array<{ userAgent: string; allow?: string; disallow?: string }>\n sitemap?: string\n}\n\nexport function buildRobotsMetadata(options: {\n siteUrl: string\n nodeEnv?: string\n vercelEnv?: string\n allowIndexing?: string\n}): BrandlabRobotsMetadata {\n const shouldIndex = shouldIndexSite({\n nodeEnv: options.nodeEnv,\n vercelEnv: options.vercelEnv,\n allowIndexing: options.allowIndexing,\n })\n\n if (!shouldIndex) {\n return {\n rules: [{ userAgent: '*', disallow: '/' }],\n }\n }\n\n // No `host` directive: it is a non-standard robots.txt extension ignored\n // by Google and Bing; canonical-host consolidation is owned by permanent\n // edge redirects + canonical URLs (Brandlab Project Standard §5).\n return {\n rules: [{ userAgent: '*', allow: '/' }],\n sitemap: getAbsoluteUrl(options.siteUrl, '/sitemap.xml'),\n }\n}\n"]}
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,cAAc,GAEf,MAAM,oCAAoC,CAAA;AAa3C,MAAM,UAAU,uBAAuB,CAAC,EACtC,MAAM,EACN,EAAE,GACgB;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAE5D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,EAAE,EAAE,GAAG,EAAE,IAAI,QAAQ,IAAI,KAAK,EAAE;QAChC,IAAI,EAAE,qBAAqB;QAC3B,uBAAuB,EAAE;YACvB,MAAM,EAAE,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;SACpD;KACF,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,OAAO,CACL,KAAC,QAAQ,cACN,uBAAuB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CACnD,oBAAiC,WAAW,IAA/B,WAAW,CAAC,EAAE,CAAqB,CACjD,CAAC,GACO,CACZ,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,cAAc,GAEf,MAAM,oCAAoC,CAAA;AAa3C,MAAM,UAAU,uBAAuB,CAAC,EACtC,MAAM,EACN,EAAE,GACgB;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAE5D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,EAAE,EAAE,GAAG,EAAE,IAAI,QAAQ,IAAI,KAAK,EAAE;QAChC,IAAI,EAAE,qBAAqB;QAC3B,uBAAuB,EAAE;YACvB,MAAM,EAAE,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;SACpD;KACF,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,OAAO,CACL,KAAC,QAAQ,cACN,uBAAuB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CACnD,oBAAiC,WAAW,IAA/B,WAAW,CAAC,EAAE,CAAqB,CACjD,CAAC,GACO,CACZ,CAAA;AACH,CAAC","sourcesContent":["import { Fragment } from 'react'\nimport {\n assertProofSafeSchema,\n sanitizeJsonLd,\n type Schema,\n} from '@brandlab-digital/site-core/schema'\n\nexport interface SchemaScriptProps {\n schema: Schema<unknown> | Array<Schema<unknown>>\n id?: string\n}\n\nexport interface SchemaScriptTagProps {\n id: string\n type: 'application/ld+json'\n dangerouslySetInnerHTML: { __html: string }\n}\n\nexport function createSchemaScriptProps({\n schema,\n id,\n}: SchemaScriptProps): SchemaScriptTagProps[] {\n const schemaData = Array.isArray(schema) ? schema : [schema]\n\n return schemaData.map((item, index) => ({\n id: `${id || 'schema'}-${index}`,\n type: 'application/ld+json',\n dangerouslySetInnerHTML: {\n __html: sanitizeJsonLd(assertProofSafeSchema(item)),\n },\n }))\n}\n\nexport function SchemaScript(props: SchemaScriptProps) {\n return (\n <Fragment>\n {createSchemaScriptProps(props).map((scriptProps) => (\n <script key={scriptProps.id} {...scriptProps} />\n ))}\n </Fragment>\n )\n}\n"]}
|
package/dist/sitemaps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemaps.js","sourceRoot":"","sources":["../src/sitemaps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GAEtB,MAAM,sCAAsC,CAAA;AAE7C,MAAM,UAAU,kBAAkB,CAAC,OAAgC;IACjE,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAC7C,OAAO,EAAE,oBAAoB,EAAE;KAChC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwB,EACxB,OAAkD;IAElD,OAAO,IAAI,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;QACzD,OAAO,EAAE,oBAAoB,EAAE;KAChC,CAAC,CAAA;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"sitemaps.js","sourceRoot":"","sources":["../src/sitemaps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GAEtB,MAAM,sCAAsC,CAAA;AAE7C,MAAM,UAAU,kBAAkB,CAAC,OAAgC;IACjE,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAC7C,OAAO,EAAE,oBAAoB,EAAE;KAChC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwB,EACxB,OAAkD;IAElD,OAAO,IAAI,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;QACzD,OAAO,EAAE,oBAAoB,EAAE;KAChC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import {\n getSitemapXmlHeaders,\n serializeSitemap,\n serializeSitemapIndex,\n type SitemapEntry,\n} from '@brandlab-digital/site-core/sitemaps'\n\nexport function sitemapXmlResponse(entries: readonly SitemapEntry[]): Response {\n return new Response(serializeSitemap(entries), {\n headers: getSitemapXmlHeaders(),\n })\n}\n\nexport function sitemapIndexXmlResponse(\n paths: readonly string[],\n options: { absoluteUrl: (path: string) => string },\n): Response {\n return new Response(serializeSitemapIndex(paths, options), {\n headers: getSitemapXmlHeaders(),\n })\n}\n"]}
|
package/dist/ui-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-client.js","sourceRoot":"","sources":["../src/ui-client.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui-client.js","sourceRoot":"","sources":["../src/ui-client.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client'\n\nimport {\n useEffect,\n useRef,\n useState,\n type AnchorHTMLAttributes,\n type DialogHTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n type RefObject,\n} from 'react'\nimport {\n PHONE_CALL_PLACEMENTS,\n type PhoneCallPlacement,\n} from './analytics.js'\n\nexport interface HeadlessDialogProps\n extends Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open' | 'onClose'> {\n open: boolean\n onClose: () => void\n labelledBy: string\n describedBy?: string\n initialFocusRef?: RefObject<HTMLElement | null>\n returnFocusRef?: RefObject<HTMLElement | null>\n children: ReactNode\n}\n\nexport function HeadlessDialog({\n open,\n onClose,\n labelledBy,\n describedBy,\n initialFocusRef,\n returnFocusRef,\n children,\n ...props\n}: HeadlessDialogProps) {\n const dialogRef = useRef<HTMLDialogElement>(null)\n const previouslyFocused = useRef<HTMLElement | null>(null)\n\n useEffect(() => {\n const dialog = dialogRef.current\n if (!dialog) return\n if (open) {\n previouslyFocused.current = document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null\n if (!dialog.open) {\n if (typeof dialog.showModal === 'function') dialog.showModal()\n else dialog.setAttribute('open', '')\n }\n const focusTarget = initialFocusRef?.current ?? dialog\n queueMicrotask(() => focusTarget.focus())\n return\n }\n if (dialog.open) {\n if (typeof dialog.close === 'function') dialog.close()\n else dialog.removeAttribute('open')\n }\n const returnTarget = returnFocusRef?.current ?? previouslyFocused.current\n queueMicrotask(() => returnTarget?.focus())\n }, [initialFocusRef, open, returnFocusRef])\n\n return (\n <dialog\n {...props}\n aria-describedby={describedBy}\n aria-labelledby={labelledBy}\n aria-modal=\"true\"\n onCancel={(event) => {\n event.preventDefault()\n onClose()\n }}\n onClose={onClose}\n ref={dialogRef}\n >\n {children}\n </dialog>\n )\n}\n\nexport interface TrackedTelephoneLinkProps\n extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'onClick'> {\n phoneE164: string\n placement: PhoneCallPlacement\n onTrack: (input: { event: 'phone_call'; placement: PhoneCallPlacement }) => void\n children: ReactNode\n}\n\nexport function TrackedTelephoneLink({\n phoneE164,\n placement,\n onTrack,\n children,\n ...props\n}: TrackedTelephoneLinkProps) {\n if (!/^\\+[1-9]\\d{7,14}$/.test(phoneE164)) {\n throw new Error('TrackedTelephoneLink requires an E.164 phone number.')\n }\n if (!PHONE_CALL_PLACEMENTS.includes(placement)) {\n throw new Error('TrackedTelephoneLink requires a canonical phone-call placement.')\n }\n return (\n <a\n {...props}\n href={`tel:${phoneE164}`}\n onClick={() => {\n try {\n onTrack({ event: 'phone_call', placement })\n } catch {\n // Tracking must never block the telephone action.\n }\n }}\n >\n {children}\n </a>\n )\n}\n\nexport interface GalleryLightboxItem {\n id: string\n alt: string\n}\n\nexport interface GalleryLightboxProps<Item extends GalleryLightboxItem> {\n open: boolean\n items: readonly Item[]\n initialIndex?: number\n titleId: string\n title: ReactNode\n onClose: () => void\n renderItem: (item: Item) => ReactNode\n previousLabel: string\n nextLabel: string\n closeLabel: string\n}\n\nexport function GalleryLightbox<Item extends GalleryLightboxItem>({\n open,\n items,\n initialIndex = 0,\n titleId,\n title,\n onClose,\n renderItem,\n previousLabel,\n nextLabel,\n closeLabel,\n}: GalleryLightboxProps<Item>) {\n const [index, setIndex] = useState(initialIndex)\n const closeRef = useRef<HTMLButtonElement>(null)\n\n useEffect(() => {\n if (open) setIndex(Math.min(Math.max(initialIndex, 0), Math.max(items.length - 1, 0)))\n }, [initialIndex, items.length, open])\n\n const move = (offset: number) => {\n if (items.length < 2) return\n setIndex((current) => (current + offset + items.length) % items.length)\n }\n const onKeyDown = (event: KeyboardEvent<HTMLDialogElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n move(-1)\n } else if (event.key === 'ArrowRight') {\n event.preventDefault()\n move(1)\n }\n }\n const item = items[index]\n\n return (\n <HeadlessDialog\n initialFocusRef={closeRef}\n labelledBy={titleId}\n onClose={onClose}\n onKeyDown={onKeyDown}\n open={open}\n >\n <h2 id={titleId}>{title}</h2>\n <button aria-label={closeLabel} onClick={onClose} ref={closeRef} type=\"button\">\n {closeLabel}\n </button>\n {item ? <figure key={item.id}>{renderItem(item)}<figcaption>{item.alt}</figcaption></figure> : null}\n {items.length > 1 ? (\n <nav aria-labelledby={titleId}>\n <button aria-label={previousLabel} onClick={() => move(-1)} type=\"button\">\n {previousLabel}\n </button>\n <button aria-label={nextLabel} onClick={() => move(1)} type=\"button\">\n {nextLabel}\n </button>\n </nav>\n ) : null}\n </HeadlessDialog>\n )\n}\n\nexport function usePrefersReducedMotion() {\n const [reduced, setReduced] = useState(false)\n useEffect(() => {\n const query = window.matchMedia('(prefers-reduced-motion: reduce)')\n const update = () => setReduced(query.matches)\n update()\n query.addEventListener('change', update)\n return () => query.removeEventListener('change', update)\n }, [])\n return reduced\n}\n\nexport interface HeadlessErrorFocusProps {\n active: boolean\n formId: string\n summaryId: string\n}\n\n/** Focuses the error summary, falling back to the first invalid field. */\nexport function HeadlessErrorFocus({ active, formId, summaryId }: HeadlessErrorFocusProps) {\n useEffect(() => {\n if (!active) return\n let cancelled = false\n queueMicrotask(() => {\n if (cancelled) return\n const form = document.getElementById(formId)\n if (!(form instanceof HTMLFormElement)) return\n const summary = document.getElementById(summaryId)\n const target = summary instanceof HTMLElement && form.contains(summary)\n ? summary\n : form.querySelector<HTMLElement>([\n 'input[aria-invalid=\"true\"]:not([disabled])',\n 'select[aria-invalid=\"true\"]:not([disabled])',\n 'textarea[aria-invalid=\"true\"]:not([disabled])',\n 'button[aria-invalid=\"true\"]:not([disabled])',\n '[aria-invalid=\"true\"][tabindex]:not([aria-disabled=\"true\"])',\n ].join(','))\n target?.focus()\n })\n return () => { cancelled = true }\n }, [active, formId, summaryId])\n return null\n}\n"]}
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.tsx"],"names":[],"mappings":"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","sourcesContent":["import type {\n AnchorHTMLAttributes,\n DetailsHTMLAttributes,\n HTMLAttributes,\n ReactNode,\n} from 'react'\nimport { assertSafeRichTextHref } from '@brandlab-digital/site-core/rich-text'\n\nexport interface HeadlessSectionProps extends HTMLAttributes<HTMLElement> {\n heading: ReactNode\n headingId: string\n headingClassName?: string\n contentClassName?: string\n children: ReactNode\n}\n\nexport function HeadlessSection({\n heading,\n headingId,\n headingClassName,\n contentClassName,\n children,\n ...sectionProps\n}: HeadlessSectionProps) {\n return (\n <section {...sectionProps} aria-labelledby={headingId}>\n <h2 className={headingClassName} id={headingId}>\n {heading}\n </h2>\n <div className={contentClassName}>{children}</div>\n </section>\n )\n}\n\nexport interface HeadlessDisclosureProps extends DetailsHTMLAttributes<HTMLDetailsElement> {\n summary: ReactNode\n summaryClassName?: string\n contentClassName?: string\n children: ReactNode\n}\n\nexport function HeadlessDisclosure({\n summary,\n summaryClassName,\n contentClassName,\n children,\n ...detailsProps\n}: HeadlessDisclosureProps) {\n return (\n <details {...detailsProps}>\n <summary className={summaryClassName}>{summary}</summary>\n <div className={contentClassName}>{children}</div>\n </details>\n )\n}\n\nexport interface HeadlessFieldProps {\n id: string\n label: ReactNode\n description?: ReactNode\n error?: ReactNode\n required?: boolean\n className?: string\n labelClassName?: string\n descriptionClassName?: string\n errorClassName?: string\n children: (input: {\n id: string\n required: boolean\n 'aria-invalid': true | undefined\n 'aria-describedby': string | undefined\n }) => ReactNode\n}\n\nexport function HeadlessField({\n id,\n label,\n description,\n error,\n required = false,\n children,\n ...classes\n}: HeadlessFieldProps) {\n const descriptionId = description ? `${id}-description` : undefined\n const errorId = error ? `${id}-error` : undefined\n const describedBy = [descriptionId, errorId].filter(Boolean).join(' ') || undefined\n return (\n <div className={classes.className}>\n <label className={classes.labelClassName} htmlFor={id}>\n {label}\n </label>\n {description ? (\n <div className={classes.descriptionClassName} id={descriptionId}>\n {description}\n </div>\n ) : null}\n {children({\n id,\n required,\n 'aria-invalid': error ? true : undefined,\n 'aria-describedby': describedBy,\n })}\n {error ? (\n <div className={classes.errorClassName} id={errorId} role=\"alert\">\n {error}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport interface HeadlessStatusProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n kind?: 'status' | 'error'\n}\n\nexport function HeadlessStatus({ children, kind = 'status', ...props }: HeadlessStatusProps) {\n return (\n <div {...props} aria-live={kind === 'error' ? 'assertive' : 'polite'} role={kind === 'error' ? 'alert' : 'status'}>\n {children}\n </div>\n )\n}\n\nexport interface HeadlessErrorSummaryItem {\n fieldId: string\n message: ReactNode\n}\n\nexport interface HeadlessErrorSummaryProps extends HTMLAttributes<HTMLDivElement> {\n heading: ReactNode\n errors: readonly HeadlessErrorSummaryItem[]\n headingId: string\n linkClassName?: string\n}\n\nexport function HeadlessErrorSummary({\n heading,\n errors,\n headingId,\n linkClassName,\n ...props\n}: HeadlessErrorSummaryProps) {\n if (errors.length === 0) return null\n return (\n <div {...props} aria-labelledby={headingId} role=\"alert\" tabIndex={-1}>\n <h2 id={headingId}>{heading}</h2>\n <ul>\n {errors.map((error) => (\n <li key={error.fieldId}>\n <a\n className={linkClassName}\n href={`#${assertHtmlIdentifier(error.fieldId, 'Error summary fieldId')}`}\n >\n {error.message}\n </a>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n\nexport interface SkipLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n targetId: string\n children: ReactNode\n}\n\nexport function SkipLink({ targetId, children, ...props }: SkipLinkProps) {\n assertHtmlIdentifier(targetId, 'SkipLink targetId')\n return (\n <a {...props} href={`#${targetId}`}>\n {children}\n </a>\n )\n}\n\nfunction assertHtmlIdentifier(value: string, label: string) {\n if (!/^[A-Za-z][A-Za-z0-9_:.-]*$/.test(value)) {\n throw new Error(`${label} must be a valid HTML identifier.`)\n }\n return value\n}\n\nexport type SafeRichTextNode =\n | { type: 'text'; value: string; emphasis?: 'strong' | 'emphasis' }\n | { type: 'paragraph'; children: readonly SafeRichTextNode[] }\n | { type: 'link'; href: string; children: readonly SafeRichTextNode[]; external?: boolean }\n | { type: 'unordered-list' | 'ordered-list'; children: readonly SafeRichTextNode[] }\n | { type: 'list-item'; children: readonly SafeRichTextNode[] }\n | { type: 'line-break' }\n\nexport interface SafeRichTextProps extends HTMLAttributes<HTMLDivElement> {\n nodes: readonly SafeRichTextNode[]\n}\n\nfunction renderSafeRichTextNode(node: SafeRichTextNode, key: string): ReactNode {\n if (node.type === 'text') {\n if (node.emphasis === 'strong') return <strong key={key}>{node.value}</strong>\n if (node.emphasis === 'emphasis') return <em key={key}>{node.value}</em>\n return node.value\n }\n if (node.type === 'line-break') return <br key={key} />\n const children = node.children.map((child, index) =>\n renderSafeRichTextNode(child, `${key}-${index}`),\n )\n if (node.type === 'paragraph') return <p key={key}>{children}</p>\n if (node.type === 'list-item') return <li key={key}>{children}</li>\n if (node.type === 'unordered-list') return <ul key={key}>{children}</ul>\n if (node.type === 'ordered-list') return <ol key={key}>{children}</ol>\n if (node.type !== 'link') throw new Error('Unsupported rich text node.')\n const href = assertSafeRichTextHref(node.href)\n return (\n <a\n href={href}\n key={key}\n {...(node.external ? { rel: 'noopener noreferrer', target: '_blank' } : {})}\n >\n {children}\n </a>\n )\n}\n\nexport function SafeRichText({ nodes, ...props }: SafeRichTextProps) {\n return (\n <div {...props}>\n {nodes.map((node, index) => renderSafeRichTextNode(node, String(index)))}\n </div>\n )\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brandlab-digital/site-next",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/RomieDandan/brandlab.git",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@brandlab-digital/site-core": "1.0.
|
|
21
|
+
"@brandlab-digital/site-core": "1.0.9",
|
|
22
22
|
"browser-image-compression": "2.0.2",
|
|
23
23
|
"server-only": "0.0.1",
|
|
24
24
|
"sharp": "0.35.3"
|