@brandlab-digital/site-core 1.0.0-rc.2 → 1.0.0-rc.21

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/contact.js CHANGED
@@ -2,9 +2,8 @@ import { normalizeBrandlabRoutePath } from './routes.js';
2
2
  import { assertBrandlabCanonicalEntityId } from './entity-id.js';
3
3
  export const DEFAULT_CONTACT_ATTACHMENT_POLICY = {
4
4
  maxFiles: 5,
5
- maxFileSizeBytes: 5 * 1024 * 1024,
6
- maxTotalSizeBytes: 15 * 1024 * 1024,
7
- filenamePrefix: 'contact-photo',
5
+ maxFileSizeBytes: 4_000_000,
6
+ maxTotalSizeBytes: 4_000_000,
8
7
  allowedTypes: [
9
8
  'image/jpeg',
10
9
  'image/jpg',
@@ -57,11 +56,7 @@ export function resolveContactAttachmentType(filename, fileType, policy = DEFAUL
57
56
  return mappedType && isAllowedContactAttachmentType(mappedType, policy) ? mappedType : null;
58
57
  }
59
58
  export function createContactAttachmentFilename(options) {
60
- const extension = options.contentType.split('/')[1] || 'jpg';
61
- const prefix = options.prefix ??
62
- options.policy?.filenamePrefix ??
63
- DEFAULT_CONTACT_ATTACHMENT_POLICY.filenamePrefix;
64
- return `${prefix}-${options.index + 1}.${extension}`;
59
+ return `image-${options.index + 1}.jpg`;
65
60
  }
66
61
  export function validateContactAttachment(file, policy = DEFAULT_CONTACT_ATTACHMENT_POLICY) {
67
62
  const contentType = resolveContactAttachmentType(file.filename, file.type, policy);
@@ -282,7 +277,35 @@ export function normalizeAustralianPhoneDigits(phone) {
282
277
  export function isValidAustralianPhoneNumber(phone) {
283
278
  return AUSTRALIAN_PHONE_DIGITS.test(normalizeAustralianPhoneDigits(phone));
284
279
  }
285
- export const BRANDLAB_CONTACT_CONTRACT_VERSION = '2';
280
+ export const BRANDLAB_CONTACT_CONTRACT_VERSION = '3';
281
+ export const CONTACT_VISIT_SOURCES = [
282
+ 'google-ads',
283
+ 'google-business-profile',
284
+ 'organic-search',
285
+ 'referral',
286
+ 'social',
287
+ 'email-campaign',
288
+ 'direct-or-unknown',
289
+ ];
290
+ export function isContactVisitSource(value) {
291
+ return CONTACT_VISIT_SOURCES.includes(value);
292
+ }
293
+ export function contactVisitSourceLabel(source, detail) {
294
+ const labels = {
295
+ 'google-ads': 'Google Ads',
296
+ 'google-business-profile': 'Google Business Profile',
297
+ 'organic-search': 'Organic search',
298
+ referral: 'Referral',
299
+ social: 'Social',
300
+ 'email-campaign': 'Email campaign',
301
+ 'direct-or-unknown': 'Direct or unknown',
302
+ };
303
+ const label = labels[source];
304
+ return detail && (source === 'referral' || source === 'social')
305
+ ? `${label} — ${detail}`
306
+ : label;
307
+ }
308
+ export const LEAD_QUALITY_VALUES = ['good', 'poor', 'spam', 'unknown'];
286
309
  const CONTACT_REQUIRED_ROLES = ['name', 'email', 'phone', 'location', 'message'];
287
310
  const ENV_KEY_PATTERN = /^[A-Z][A-Z0-9_]*$/;
288
311
  const CONTACT_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
@@ -293,10 +316,18 @@ const CONTACT_FIELD_ROLES = new Set([
293
316
  const CONTACT_FIELD_KINDS = new Set([
294
317
  'text', 'email', 'tel', 'textarea', 'select', 'checkbox',
295
318
  ]);
319
+ const CONTACT_SUBMISSION_HASH_PATTERN = /^[a-f0-9]{64}$/;
296
320
  function assertContractText(value, field) {
297
321
  if (!value.trim())
298
322
  throw new Error(`${field} cannot be empty.`);
299
323
  }
324
+ function assertContactContractKeys(value, allowedKeys, field) {
325
+ const allowed = new Set(allowedKeys);
326
+ const unsupported = Object.keys(value).filter((key) => !allowed.has(key));
327
+ if (unsupported.length > 0) {
328
+ throw new Error(`${field} contains unsupported keys: ${unsupported.join(', ')}.`);
329
+ }
330
+ }
300
331
  export function defineContactContract(contract) {
301
332
  if (!contract || typeof contract !== 'object' || Array.isArray(contract)) {
302
333
  throw new Error('Contact contract must be an object.');
@@ -304,28 +335,25 @@ export function defineContactContract(contract) {
304
335
  if (!Array.isArray(contract.fields)) {
305
336
  throw new Error('Contact contract fields must be an array.');
306
337
  }
338
+ assertContactContractKeys(contract, ['projectId', 'fieldProfile', 'fields', 'attachments', 'delivery'], 'Contact contract');
307
339
  if (!contract.attachments ||
308
340
  typeof contract.attachments !== 'object' ||
309
341
  !['none', 'images-optional', 'images-required'].includes(contract.attachments.mode)) {
310
342
  throw new Error('Contact contract attachment mode is invalid.');
311
343
  }
344
+ assertContactContractKeys(contract.attachments, ['mode'], 'Contact contract attachments');
312
345
  if (!contract.delivery ||
313
346
  typeof contract.delivery !== 'object' ||
314
347
  Array.isArray(contract.delivery)) {
315
348
  throw new Error('Contact contract delivery environment is invalid.');
316
349
  }
350
+ assertContactContractKeys(contract.delivery, ['recipientEnv', 'senderEnv'], 'Contact contract delivery');
317
351
  assertContractText(contract.projectId, 'projectId');
318
352
  assertContractText(contract.fieldProfile, 'fieldProfile');
319
- assertContractText(contract.subjectTerm, 'subjectTerm');
320
353
  assertBrandlabCanonicalEntityId(contract.projectId);
321
354
  if (!CONTACT_ID_PATTERN.test(contract.fieldProfile)) {
322
355
  throw new Error('fieldProfile must be lowercase kebab-case.');
323
356
  }
324
- if (contract.subjectTerm.trim() !== contract.subjectTerm ||
325
- /[\r\n]/.test(contract.subjectTerm) ||
326
- contract.subjectTerm.length > 120) {
327
- throw new Error('subjectTerm must be a bounded single-line value.');
328
- }
329
357
  if (contract.fields.length < CONTACT_REQUIRED_ROLES.length || contract.fields.length > 20) {
330
358
  throw new Error('Contact contract must define between 5 and 20 fields.');
331
359
  }
@@ -333,6 +361,17 @@ export function defineContactContract(contract) {
333
361
  if (duplicateKey)
334
362
  throw new Error(`Contact contract contains duplicate field key "${duplicateKey.key}".`);
335
363
  contract.fields.forEach((field, index) => {
364
+ assertContactContractKeys(field, [
365
+ 'key',
366
+ 'role',
367
+ 'kind',
368
+ 'required',
369
+ 'maxLength',
370
+ 'options',
371
+ 'normalization',
372
+ 'phoneRule',
373
+ 'checkedValue',
374
+ ], `fields[${index}]`);
336
375
  assertContractText(field.key, `fields[${index}].key`);
337
376
  if (!CONTACT_FIELD_KEY_PATTERN.test(field.key)) {
338
377
  throw new Error(`fields[${index}].key is invalid.`);
@@ -430,4 +469,25 @@ export function defineContactContract(contract) {
430
469
  }
431
470
  return contract;
432
471
  }
472
+ export function defineLeadQualityRecord(record) {
473
+ if (!record || typeof record !== 'object' || Array.isArray(record)) {
474
+ throw new Error('Lead quality record must be an object.');
475
+ }
476
+ assertContactContractKeys(record, ['projectId', 'submissionHash', 'quality', 'classifiedAt', 'classifiedBy'], 'Lead quality record');
477
+ assertBrandlabCanonicalEntityId(record.projectId);
478
+ if (!CONTACT_SUBMISSION_HASH_PATTERN.test(record.submissionHash)) {
479
+ throw new Error('Lead quality submissionHash must be a lowercase SHA-256 digest.');
480
+ }
481
+ if (!LEAD_QUALITY_VALUES.includes(record.quality)) {
482
+ throw new Error('Lead quality value is invalid.');
483
+ }
484
+ if (!['owner-review', 'client-review'].includes(record.classifiedBy)) {
485
+ throw new Error('Lead quality classifier is invalid.');
486
+ }
487
+ if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/.test(record.classifiedAt) ||
488
+ Number.isNaN(Date.parse(record.classifiedAt))) {
489
+ throw new Error('Lead quality classifiedAt must be a UTC timestamp.');
490
+ }
491
+ return record;
492
+ }
433
493
  //# sourceMappingURL=contact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact.js","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contact.js","sourceRoot":"","sources":["../src/contact.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  export declare const GOOGLE_PLACE_DETAILS_ENDPOINT = "https://places.googleapis.com/v1/places";
2
+ export declare const GOOGLE_PLACE_REVIEWS_SUMMARY_FIELD_MASK = "id,displayName,googleMapsUri,rating,userRatingCount,attributions";
3
+ export declare const GOOGLE_PLACE_REVIEWS_FULL_FIELD_MASK = "id,displayName,googleMapsUri,rating,userRatingCount,attributions,reviews.authorAttribution,reviews.relativePublishTimeDescription,reviews.rating,reviews.text,reviews.originalText,reviews.publishTime,reviews.googleMapsUri,reviews.flagContentUri";
4
+ /** Backwards-compatible name for the policy-complete full-review field mask. */
2
5
  export declare const GOOGLE_PLACE_REVIEWS_FIELD_MASK = "id,displayName,googleMapsUri,rating,userRatingCount,attributions,reviews.authorAttribution,reviews.relativePublishTimeDescription,reviews.rating,reviews.text,reviews.originalText,reviews.publishTime,reviews.googleMapsUri,reviews.flagContentUri";
3
6
  export declare const GOOGLE_MAPS_ATTRIBUTION_LABEL = "Google Maps";
4
7
  export declare const GOOGLE_MAPS_ATTRIBUTION_TEXT = "Google Maps";
5
8
  export declare const GOOGLE_PLACE_REVIEWS_MAX_REVIEWS = 5;
9
+ export type GooglePlaceReviewsMode = 'summary' | 'full';
6
10
  export type GooglePlaceReviewsUnavailableReason = 'missing-api-key' | 'missing-place-id' | 'quota-exhausted' | 'quota-guard-unavailable' | 'api-error' | 'invalid-response';
7
11
  export interface GooglePlaceText {
8
12
  text?: string;
@@ -62,6 +66,7 @@ export interface GooglePlaceReviewsAttribution {
62
66
  }
63
67
  export interface GooglePlaceReviewsAvailableSnapshot {
64
68
  status: 'available';
69
+ mode: GooglePlaceReviewsMode;
65
70
  businessName: string;
66
71
  googleMapsUri: string;
67
72
  rating?: number;
@@ -72,6 +77,7 @@ export interface GooglePlaceReviewsAvailableSnapshot {
72
77
  }
73
78
  export interface GooglePlaceReviewsUnavailableSnapshot {
74
79
  status: 'unavailable';
80
+ mode: GooglePlaceReviewsMode;
75
81
  reason: GooglePlaceReviewsUnavailableReason;
76
82
  googleMapsUri?: string;
77
83
  attribution: GooglePlaceReviewsAttribution;
@@ -84,23 +90,33 @@ export interface GooglePlaceDetailsRequest {
84
90
  export interface FetchGooglePlaceReviewsOptions {
85
91
  apiKey?: string | null;
86
92
  placeId?: string | null;
93
+ /** Summary avoids the higher-priced reviews field; full returns up to five reviews. */
94
+ mode?: GooglePlaceReviewsMode;
87
95
  maxReviews?: number;
88
96
  fallbackGoogleMapsUri?: string | null;
89
97
  fetcher?: typeof fetch;
90
98
  /** Bounded upstream timeout; defaults to five seconds. */
91
99
  timeoutMs?: number;
92
100
  }
93
- export declare function createGooglePlaceReviewsUnavailableSnapshot(reason: GooglePlaceReviewsUnavailableReason, googleMapsUri?: string | null): GooglePlaceReviewsUnavailableSnapshot;
101
+ export declare function createGooglePlaceReviewsUnavailableSnapshot(reason: GooglePlaceReviewsUnavailableReason, googleMapsUri?: string | null, mode?: GooglePlaceReviewsMode): GooglePlaceReviewsUnavailableSnapshot;
94
102
  export declare function normalizeGooglePlacePublicUrl(value: string | null | undefined): string | undefined;
103
+ export declare function normalizeGooglePlaceReviewsMode(value: GooglePlaceReviewsMode | null | undefined): GooglePlaceReviewsMode;
95
104
  export declare function normalizeGooglePlaceId(placeId: string | null | undefined): string | undefined;
96
105
  export declare function buildGooglePlaceDetailsRequest(options: {
97
106
  apiKey: string;
98
107
  placeId: string;
108
+ mode?: GooglePlaceReviewsMode;
99
109
  }): GooglePlaceDetailsRequest;
100
110
  export declare function normalizeGooglePlaceReview(review: GooglePlaceReviewApiReview): GooglePlaceReview | null;
101
111
  export declare function normalizeGooglePlaceReviewsResponse(response: GooglePlaceDetailsApiResponse, options?: {
112
+ mode?: GooglePlaceReviewsMode;
102
113
  maxReviews?: number;
103
114
  fallbackGoogleMapsUri?: string | null;
104
115
  }): GooglePlaceReviewsSnapshot;
116
+ /**
117
+ * Treats the public route response as untrusted input before it reaches React.
118
+ * Unknown fields are discarded and incomplete review attribution is omitted.
119
+ */
120
+ export declare function parseGooglePlaceReviewsSnapshot(value: unknown, expectedMode?: GooglePlaceReviewsMode): GooglePlaceReviewsSnapshot | null;
105
121
  export declare function fetchGooglePlaceReviewsSnapshot(options: FetchGooglePlaceReviewsOptions): Promise<GooglePlaceReviewsSnapshot>;
106
122
  //# sourceMappingURL=google-reviews.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"google-reviews.d.ts","sourceRoot":"","sources":["../src/google-reviews.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"google-reviews.d.ts","sourceRoot":"","sources":["../src/google-reviews.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,28 @@
1
1
  export const GOOGLE_PLACE_DETAILS_ENDPOINT = 'https://places.googleapis.com/v1/places';
2
- export const GOOGLE_PLACE_REVIEWS_FIELD_MASK = 'id,displayName,googleMapsUri,rating,userRatingCount,attributions,reviews.authorAttribution,reviews.relativePublishTimeDescription,reviews.rating,reviews.text,reviews.originalText,reviews.publishTime,reviews.googleMapsUri,reviews.flagContentUri';
2
+ export const GOOGLE_PLACE_REVIEWS_SUMMARY_FIELD_MASK = 'id,displayName,googleMapsUri,rating,userRatingCount,attributions';
3
+ export const GOOGLE_PLACE_REVIEWS_FULL_FIELD_MASK = 'id,displayName,googleMapsUri,rating,userRatingCount,attributions,reviews.authorAttribution,reviews.relativePublishTimeDescription,reviews.rating,reviews.text,reviews.originalText,reviews.publishTime,reviews.googleMapsUri,reviews.flagContentUri';
4
+ /** Backwards-compatible name for the policy-complete full-review field mask. */
5
+ export const GOOGLE_PLACE_REVIEWS_FIELD_MASK = GOOGLE_PLACE_REVIEWS_FULL_FIELD_MASK;
3
6
  export const GOOGLE_MAPS_ATTRIBUTION_LABEL = 'Google Maps';
4
7
  export const GOOGLE_MAPS_ATTRIBUTION_TEXT = 'Google Maps';
5
8
  export const GOOGLE_PLACE_REVIEWS_MAX_REVIEWS = 5;
9
+ const GOOGLE_PLACE_REVIEWS_UNAVAILABLE_REASONS = new Set([
10
+ 'missing-api-key',
11
+ 'missing-place-id',
12
+ 'quota-exhausted',
13
+ 'quota-guard-unavailable',
14
+ 'api-error',
15
+ 'invalid-response',
16
+ ]);
6
17
  const attribution = {
7
18
  label: GOOGLE_MAPS_ATTRIBUTION_LABEL,
8
19
  text: GOOGLE_MAPS_ATTRIBUTION_TEXT,
9
20
  };
10
- export function createGooglePlaceReviewsUnavailableSnapshot(reason, googleMapsUri) {
21
+ export function createGooglePlaceReviewsUnavailableSnapshot(reason, googleMapsUri, mode = 'full') {
11
22
  const safeGoogleMapsUri = normalizeGooglePlacePublicUrl(googleMapsUri);
12
23
  return {
13
24
  status: 'unavailable',
25
+ mode,
14
26
  reason,
15
27
  ...(safeGoogleMapsUri ? { googleMapsUri: safeGoogleMapsUri } : {}),
16
28
  attribution,
@@ -45,6 +57,9 @@ function clampReviewLimit(value) {
45
57
  return GOOGLE_PLACE_REVIEWS_MAX_REVIEWS;
46
58
  return Math.max(0, Math.min(GOOGLE_PLACE_REVIEWS_MAX_REVIEWS, Math.floor(value)));
47
59
  }
60
+ export function normalizeGooglePlaceReviewsMode(value) {
61
+ return value === 'summary' ? 'summary' : 'full';
62
+ }
48
63
  export function normalizeGooglePlaceId(placeId) {
49
64
  const trimmed = trimToUndefined(placeId);
50
65
  if (!trimmed)
@@ -64,10 +79,12 @@ export function buildGooglePlaceDetailsRequest(options) {
64
79
  url: `${GOOGLE_PLACE_DETAILS_ENDPOINT}/${encodeURIComponent(normalizedPlaceId)}`,
65
80
  headers: {
66
81
  'X-Goog-Api-Key': apiKey,
67
- // Keep the policy-required review, author, source, report and third-party
68
- // attribution fields inseparable. A project-specific mask could make an
69
- // apparently successful payload impossible to render compliantly.
70
- 'X-Goog-FieldMask': GOOGLE_PLACE_REVIEWS_FIELD_MASK,
82
+ // The only supported masks are platform-owned. Full mode keeps review,
83
+ // author, source, report and provider attribution inseparable; summary
84
+ // mode avoids requesting the higher-priced reviews field entirely.
85
+ 'X-Goog-FieldMask': normalizeGooglePlaceReviewsMode(options.mode) === 'summary'
86
+ ? GOOGLE_PLACE_REVIEWS_SUMMARY_FIELD_MASK
87
+ : GOOGLE_PLACE_REVIEWS_FULL_FIELD_MASK,
71
88
  },
72
89
  };
73
90
  }
@@ -98,14 +115,15 @@ export function normalizeGooglePlaceReview(review) {
98
115
  }
99
116
  export function normalizeGooglePlaceReviewsResponse(response, options = {}) {
100
117
  const businessName = trimToUndefined(response.displayName?.text);
118
+ const mode = normalizeGooglePlaceReviewsMode(options.mode);
101
119
  const googleMapsUri = normalizeGooglePlacePublicUrl(response.googleMapsUri) ??
102
120
  normalizeGooglePlacePublicUrl(options.fallbackGoogleMapsUri);
103
121
  const rating = normalizeRating(response.rating);
104
122
  const userRatingCount = normalizeCount(response.userRatingCount);
105
123
  if (!businessName || !googleMapsUri) {
106
- return createGooglePlaceReviewsUnavailableSnapshot('invalid-response', googleMapsUri);
124
+ return createGooglePlaceReviewsUnavailableSnapshot('invalid-response', googleMapsUri, mode);
107
125
  }
108
- const reviews = (response.reviews ?? [])
126
+ const reviews = (mode === 'full' ? response.reviews ?? [] : [])
109
127
  .map((review) => normalizeGooglePlaceReview(review))
110
128
  .filter((review) => Boolean(review))
111
129
  .slice(0, clampReviewLimit(options.maxReviews));
@@ -120,6 +138,111 @@ export function normalizeGooglePlaceReviewsResponse(response, options = {}) {
120
138
  .filter((item) => Boolean(item));
121
139
  return {
122
140
  status: 'available',
141
+ mode,
142
+ businessName,
143
+ googleMapsUri,
144
+ ...(rating ? { rating } : {}),
145
+ ...(userRatingCount !== undefined ? { userRatingCount } : {}),
146
+ reviews,
147
+ thirdPartyAttributions,
148
+ attribution,
149
+ };
150
+ }
151
+ /**
152
+ * Treats the public route response as untrusted input before it reaches React.
153
+ * Unknown fields are discarded and incomplete review attribution is omitted.
154
+ */
155
+ export function parseGooglePlaceReviewsSnapshot(value, expectedMode) {
156
+ if (!value || typeof value !== 'object' || Array.isArray(value))
157
+ return null;
158
+ const record = value;
159
+ const mode = record.mode === 'summary' || record.mode === 'full'
160
+ ? record.mode
161
+ : null;
162
+ if (!mode || (expectedMode && mode !== expectedMode))
163
+ return null;
164
+ if (!record.attribution ||
165
+ typeof record.attribution !== 'object' ||
166
+ Array.isArray(record.attribution)) {
167
+ return null;
168
+ }
169
+ const rawAttribution = record.attribution;
170
+ if (rawAttribution.label !== GOOGLE_MAPS_ATTRIBUTION_LABEL ||
171
+ rawAttribution.text !== GOOGLE_MAPS_ATTRIBUTION_TEXT) {
172
+ return null;
173
+ }
174
+ if (record.status === 'unavailable') {
175
+ if (typeof record.reason !== 'string' ||
176
+ !GOOGLE_PLACE_REVIEWS_UNAVAILABLE_REASONS.has(record.reason)) {
177
+ return null;
178
+ }
179
+ return createGooglePlaceReviewsUnavailableSnapshot(record.reason, typeof record.googleMapsUri === 'string' ? record.googleMapsUri : undefined, mode);
180
+ }
181
+ if (record.status !== 'available')
182
+ return null;
183
+ const businessName = typeof record.businessName === 'string'
184
+ ? trimToUndefined(record.businessName)
185
+ : undefined;
186
+ const googleMapsUri = typeof record.googleMapsUri === 'string'
187
+ ? normalizeGooglePlacePublicUrl(record.googleMapsUri)
188
+ : undefined;
189
+ if (!businessName || !googleMapsUri)
190
+ return null;
191
+ const rating = typeof record.rating === 'number' ? normalizeRating(record.rating) : undefined;
192
+ const userRatingCount = typeof record.userRatingCount === 'number'
193
+ ? normalizeCount(record.userRatingCount)
194
+ : undefined;
195
+ const rawReviews = Array.isArray(record.reviews) ? record.reviews : null;
196
+ const rawAttributions = Array.isArray(record.thirdPartyAttributions)
197
+ ? record.thirdPartyAttributions
198
+ : null;
199
+ if (!rawReviews || !rawAttributions || (mode === 'summary' && rawReviews.length > 0)) {
200
+ return null;
201
+ }
202
+ const reviews = rawReviews
203
+ .map((item) => {
204
+ if (!item || typeof item !== 'object' || Array.isArray(item))
205
+ return null;
206
+ const review = item;
207
+ return normalizeGooglePlaceReview({
208
+ authorAttribution: {
209
+ displayName: typeof review.authorName === 'string' ? review.authorName : undefined,
210
+ uri: typeof review.authorUri === 'string' ? review.authorUri : undefined,
211
+ photoUri: typeof review.authorPhotoUri === 'string' ? review.authorPhotoUri : undefined,
212
+ },
213
+ rating: typeof review.rating === 'number' ? review.rating : undefined,
214
+ text: { text: typeof review.text === 'string' ? review.text : undefined },
215
+ relativePublishTimeDescription: typeof review.relativePublishTimeDescription === 'string'
216
+ ? review.relativePublishTimeDescription
217
+ : undefined,
218
+ publishTime: typeof review.publishTime === 'string' ? review.publishTime : undefined,
219
+ googleMapsUri: typeof review.googleMapsUri === 'string' ? review.googleMapsUri : undefined,
220
+ flagContentUri: typeof review.flagContentUri === 'string' ? review.flagContentUri : undefined,
221
+ });
222
+ })
223
+ .filter((review) => Boolean(review))
224
+ .slice(0, GOOGLE_PLACE_REVIEWS_MAX_REVIEWS);
225
+ if (mode === 'full' && reviews.length !== rawReviews.length)
226
+ return null;
227
+ const thirdPartyAttributions = rawAttributions
228
+ .map((item) => {
229
+ if (!item || typeof item !== 'object' || Array.isArray(item))
230
+ return null;
231
+ const raw = item;
232
+ const provider = typeof raw.provider === 'string' ? trimToUndefined(raw.provider) : undefined;
233
+ if (!provider)
234
+ return null;
235
+ const providerUri = typeof raw.providerUri === 'string'
236
+ ? normalizeGooglePlacePublicUrl(raw.providerUri)
237
+ : undefined;
238
+ return { provider, ...(providerUri ? { providerUri } : {}) };
239
+ })
240
+ .filter((item) => Boolean(item));
241
+ if (thirdPartyAttributions.length !== rawAttributions.length)
242
+ return null;
243
+ return {
244
+ status: 'available',
245
+ mode,
123
246
  businessName,
124
247
  googleMapsUri,
125
248
  ...(rating ? { rating } : {}),
@@ -132,16 +255,18 @@ export function normalizeGooglePlaceReviewsResponse(response, options = {}) {
132
255
  export async function fetchGooglePlaceReviewsSnapshot(options) {
133
256
  const apiKey = trimToUndefined(options.apiKey);
134
257
  const placeId = normalizeGooglePlaceId(options.placeId);
258
+ const mode = normalizeGooglePlaceReviewsMode(options.mode);
135
259
  if (!apiKey) {
136
- return createGooglePlaceReviewsUnavailableSnapshot('missing-api-key', options.fallbackGoogleMapsUri);
260
+ return createGooglePlaceReviewsUnavailableSnapshot('missing-api-key', options.fallbackGoogleMapsUri, mode);
137
261
  }
138
262
  if (!placeId) {
139
- return createGooglePlaceReviewsUnavailableSnapshot('missing-place-id', options.fallbackGoogleMapsUri);
263
+ return createGooglePlaceReviewsUnavailableSnapshot('missing-place-id', options.fallbackGoogleMapsUri, mode);
140
264
  }
141
265
  try {
142
266
  const request = buildGooglePlaceDetailsRequest({
143
267
  apiKey,
144
268
  placeId,
269
+ mode,
145
270
  });
146
271
  const fetcher = options.fetcher ?? fetch;
147
272
  const timeoutMs = options.timeoutMs ?? 5_000;
@@ -162,16 +287,17 @@ export async function fetchGooglePlaceReviewsSnapshot(options) {
162
287
  clearTimeout(timeout);
163
288
  }
164
289
  if (!response.ok) {
165
- return createGooglePlaceReviewsUnavailableSnapshot('api-error', options.fallbackGoogleMapsUri);
290
+ return createGooglePlaceReviewsUnavailableSnapshot('api-error', options.fallbackGoogleMapsUri, mode);
166
291
  }
167
292
  const json = (await response.json());
168
293
  return normalizeGooglePlaceReviewsResponse(json, {
294
+ mode,
169
295
  maxReviews: options.maxReviews,
170
296
  fallbackGoogleMapsUri: options.fallbackGoogleMapsUri,
171
297
  });
172
298
  }
173
299
  catch {
174
- return createGooglePlaceReviewsUnavailableSnapshot('api-error', options.fallbackGoogleMapsUri);
300
+ return createGooglePlaceReviewsUnavailableSnapshot('api-error', options.fallbackGoogleMapsUri, mode);
175
301
  }
176
302
  }
177
303
  //# sourceMappingURL=google-reviews.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"google-reviews.js","sourceRoot":"","sources":["../src/google-reviews.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"google-reviews.js","sourceRoot":"","sources":["../src/google-reviews.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,24 @@ export type ProgrammaticQualityTier = 'core' | 'supporting' | 'experimental';
14
14
  export type ProgrammaticContentDepth = 'thin' | 'standard' | 'strong';
15
15
  export type ProgrammaticProofLevel = 'none' | 'council' | 'review' | 'project';
16
16
  export type ProgrammaticSearchDemand = 'unknown' | 'low' | 'medium' | 'high';
17
+ /**
18
+ * The preferred location publication contract. A project owner explicitly
19
+ * decides whether a route is indexable after checking customer usefulness,
20
+ * geographic correctness and available evidence.
21
+ */
22
+ export interface BrandlabLocationRouteDecision {
23
+ indexing: 'index' | 'noindex-follow';
24
+ rationale: string;
25
+ reviewedAt?: string;
26
+ }
27
+ export declare function defineLocationRouteDecision<const T extends BrandlabLocationRouteDecision>(input: T): T;
17
28
  /** Suburb publication tier (standard §7.2). */
18
29
  export type SuburbTier = 'core' | 'secondary' | 'edge';
30
+ /**
31
+ * @deprecated Compatibility contract for projects released before the
32
+ * simplified location decision. New projects should use
33
+ * defineLocationRouteDecision().
34
+ */
19
35
  export interface ProgrammaticQualitySignals {
20
36
  indexationStatus: ProgrammaticIndexationStatus;
21
37
  qualityTier: ProgrammaticQualityTier;
@@ -36,7 +52,7 @@ export declare function defineLocationRouteQuality<const T extends BrandlabLocat
36
52
  proofLevel: ProgrammaticProofLevel;
37
53
  indexationStatus: ProgrammaticIndexationStatus;
38
54
  };
39
- export declare function resolveLocationRouteIndexing(quality: ProgrammaticQualitySignals | 'unknown' | null | undefined): 'index' | 'noindex-follow';
55
+ export declare function resolveLocationRouteIndexing(quality: BrandlabLocationRouteDecision | ProgrammaticQualitySignals | 'unknown' | null | undefined): 'index' | 'noindex-follow';
40
56
  export interface IndexableProgrammaticRecord {
41
57
  indexationStatus: ProgrammaticIndexationStatus;
42
58
  }