@brandlab-digital/site-core 1.0.0-rc.9 → 1.0.1

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.
Files changed (45) hide show
  1. package/dist/analytics.d.ts +21 -1
  2. package/dist/analytics.d.ts.map +1 -1
  3. package/dist/analytics.js +27 -1
  4. package/dist/analytics.js.map +1 -1
  5. package/dist/business.d.ts +21 -9
  6. package/dist/business.d.ts.map +1 -1
  7. package/dist/business.js +73 -15
  8. package/dist/business.js.map +1 -1
  9. package/dist/contact.d.ts +4 -13
  10. package/dist/contact.d.ts.map +1 -1
  11. package/dist/contact.js +10 -9
  12. package/dist/contact.js.map +1 -1
  13. package/dist/geography.d.ts +23 -11
  14. package/dist/geography.d.ts.map +1 -1
  15. package/dist/geography.js +1426 -1
  16. package/dist/geography.js.map +1 -1
  17. package/dist/google-reviews.d.ts +17 -3
  18. package/dist/google-reviews.d.ts.map +1 -1
  19. package/dist/google-reviews.js +134 -12
  20. package/dist/google-reviews.js.map +1 -1
  21. package/dist/locations.d.ts +12 -46
  22. package/dist/locations.d.ts.map +1 -1
  23. package/dist/locations.js +16 -108
  24. package/dist/locations.js.map +1 -1
  25. package/dist/metadata.d.ts +2 -11
  26. package/dist/metadata.d.ts.map +1 -1
  27. package/dist/metadata.js +3 -7
  28. package/dist/metadata.js.map +1 -1
  29. package/dist/project.d.ts +11 -4
  30. package/dist/project.d.ts.map +1 -1
  31. package/dist/project.js +20 -2
  32. package/dist/project.js.map +1 -1
  33. package/dist/reviews.d.ts +0 -5
  34. package/dist/reviews.d.ts.map +1 -1
  35. package/dist/reviews.js +1 -9
  36. package/dist/reviews.js.map +1 -1
  37. package/dist/routes.d.ts +3 -3
  38. package/dist/routes.d.ts.map +1 -1
  39. package/dist/routes.js +7 -4
  40. package/dist/routes.js.map +1 -1
  41. package/package.json +2 -6
  42. package/dist/platform-contract.d.ts +0 -30
  43. package/dist/platform-contract.d.ts.map +0 -1
  44. package/dist/platform-contract.js +0 -254
  45. package/dist/platform-contract.js.map +0 -1
@@ -1,9 +1,11 @@
1
1
  export declare const GOOGLE_PLACE_DETAILS_ENDPOINT = "https://places.googleapis.com/v1/places";
2
- 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";
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";
3
4
  export declare const GOOGLE_MAPS_ATTRIBUTION_LABEL = "Google Maps";
4
5
  export declare const GOOGLE_MAPS_ATTRIBUTION_TEXT = "Google Maps";
5
6
  export declare const GOOGLE_PLACE_REVIEWS_MAX_REVIEWS = 5;
6
- export type GooglePlaceReviewsUnavailableReason = 'missing-api-key' | 'missing-place-id' | 'quota-exhausted' | 'quota-guard-unavailable' | 'api-error' | 'invalid-response';
7
+ export type GooglePlaceReviewsMode = 'summary' | 'full';
8
+ export type GooglePlaceReviewsUnavailableReason = 'missing-api-key' | 'missing-place-id' | 'api-error' | 'invalid-response';
7
9
  export interface GooglePlaceText {
8
10
  text?: string;
9
11
  languageCode?: string;
@@ -62,6 +64,7 @@ export interface GooglePlaceReviewsAttribution {
62
64
  }
63
65
  export interface GooglePlaceReviewsAvailableSnapshot {
64
66
  status: 'available';
67
+ mode: GooglePlaceReviewsMode;
65
68
  businessName: string;
66
69
  googleMapsUri: string;
67
70
  rating?: number;
@@ -72,6 +75,7 @@ export interface GooglePlaceReviewsAvailableSnapshot {
72
75
  }
73
76
  export interface GooglePlaceReviewsUnavailableSnapshot {
74
77
  status: 'unavailable';
78
+ mode: GooglePlaceReviewsMode;
75
79
  reason: GooglePlaceReviewsUnavailableReason;
76
80
  googleMapsUri?: string;
77
81
  attribution: GooglePlaceReviewsAttribution;
@@ -84,23 +88,33 @@ export interface GooglePlaceDetailsRequest {
84
88
  export interface FetchGooglePlaceReviewsOptions {
85
89
  apiKey?: string | null;
86
90
  placeId?: string | null;
91
+ /** Summary avoids the higher-priced reviews field; full returns up to five reviews. */
92
+ mode?: GooglePlaceReviewsMode;
87
93
  maxReviews?: number;
88
94
  fallbackGoogleMapsUri?: string | null;
89
95
  fetcher?: typeof fetch;
90
96
  /** Bounded upstream timeout; defaults to five seconds. */
91
97
  timeoutMs?: number;
92
98
  }
93
- export declare function createGooglePlaceReviewsUnavailableSnapshot(reason: GooglePlaceReviewsUnavailableReason, googleMapsUri?: string | null): GooglePlaceReviewsUnavailableSnapshot;
99
+ export declare function createGooglePlaceReviewsUnavailableSnapshot(reason: GooglePlaceReviewsUnavailableReason, googleMapsUri?: string | null, mode?: GooglePlaceReviewsMode): GooglePlaceReviewsUnavailableSnapshot;
94
100
  export declare function normalizeGooglePlacePublicUrl(value: string | null | undefined): string | undefined;
101
+ export declare function normalizeGooglePlaceReviewsMode(value: GooglePlaceReviewsMode | null | undefined): GooglePlaceReviewsMode;
95
102
  export declare function normalizeGooglePlaceId(placeId: string | null | undefined): string | undefined;
96
103
  export declare function buildGooglePlaceDetailsRequest(options: {
97
104
  apiKey: string;
98
105
  placeId: string;
106
+ mode?: GooglePlaceReviewsMode;
99
107
  }): GooglePlaceDetailsRequest;
100
108
  export declare function normalizeGooglePlaceReview(review: GooglePlaceReviewApiReview): GooglePlaceReview | null;
101
109
  export declare function normalizeGooglePlaceReviewsResponse(response: GooglePlaceDetailsApiResponse, options?: {
110
+ mode?: GooglePlaceReviewsMode;
102
111
  maxReviews?: number;
103
112
  fallbackGoogleMapsUri?: string | null;
104
113
  }): GooglePlaceReviewsSnapshot;
114
+ /**
115
+ * Treats the public route response as untrusted input before it reaches React.
116
+ * Unknown fields are discarded and incomplete review attribution is omitted.
117
+ */
118
+ export declare function parseGooglePlaceReviewsSnapshot(value: unknown, expectedMode?: GooglePlaceReviewsMode): GooglePlaceReviewsSnapshot | null;
105
119
  export declare function fetchGooglePlaceReviewsSnapshot(options: FetchGooglePlaceReviewsOptions): Promise<GooglePlaceReviewsSnapshot>;
106
120
  //# 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,24 @@
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';
3
4
  export const GOOGLE_MAPS_ATTRIBUTION_LABEL = 'Google Maps';
4
5
  export const GOOGLE_MAPS_ATTRIBUTION_TEXT = 'Google Maps';
5
6
  export const GOOGLE_PLACE_REVIEWS_MAX_REVIEWS = 5;
7
+ const GOOGLE_PLACE_REVIEWS_UNAVAILABLE_REASONS = new Set([
8
+ 'missing-api-key',
9
+ 'missing-place-id',
10
+ 'api-error',
11
+ 'invalid-response',
12
+ ]);
6
13
  const attribution = {
7
14
  label: GOOGLE_MAPS_ATTRIBUTION_LABEL,
8
15
  text: GOOGLE_MAPS_ATTRIBUTION_TEXT,
9
16
  };
10
- export function createGooglePlaceReviewsUnavailableSnapshot(reason, googleMapsUri) {
17
+ export function createGooglePlaceReviewsUnavailableSnapshot(reason, googleMapsUri, mode = 'full') {
11
18
  const safeGoogleMapsUri = normalizeGooglePlacePublicUrl(googleMapsUri);
12
19
  return {
13
20
  status: 'unavailable',
21
+ mode,
14
22
  reason,
15
23
  ...(safeGoogleMapsUri ? { googleMapsUri: safeGoogleMapsUri } : {}),
16
24
  attribution,
@@ -45,6 +53,9 @@ function clampReviewLimit(value) {
45
53
  return GOOGLE_PLACE_REVIEWS_MAX_REVIEWS;
46
54
  return Math.max(0, Math.min(GOOGLE_PLACE_REVIEWS_MAX_REVIEWS, Math.floor(value)));
47
55
  }
56
+ export function normalizeGooglePlaceReviewsMode(value) {
57
+ return value === 'summary' ? 'summary' : 'full';
58
+ }
48
59
  export function normalizeGooglePlaceId(placeId) {
49
60
  const trimmed = trimToUndefined(placeId);
50
61
  if (!trimmed)
@@ -64,10 +75,12 @@ export function buildGooglePlaceDetailsRequest(options) {
64
75
  url: `${GOOGLE_PLACE_DETAILS_ENDPOINT}/${encodeURIComponent(normalizedPlaceId)}`,
65
76
  headers: {
66
77
  '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,
78
+ // The only supported masks are platform-owned. Full mode keeps review,
79
+ // author, source, report and provider attribution inseparable; summary
80
+ // mode avoids requesting the higher-priced reviews field entirely.
81
+ 'X-Goog-FieldMask': normalizeGooglePlaceReviewsMode(options.mode) === 'summary'
82
+ ? GOOGLE_PLACE_REVIEWS_SUMMARY_FIELD_MASK
83
+ : GOOGLE_PLACE_REVIEWS_FULL_FIELD_MASK,
71
84
  },
72
85
  };
73
86
  }
@@ -98,14 +111,15 @@ export function normalizeGooglePlaceReview(review) {
98
111
  }
99
112
  export function normalizeGooglePlaceReviewsResponse(response, options = {}) {
100
113
  const businessName = trimToUndefined(response.displayName?.text);
114
+ const mode = normalizeGooglePlaceReviewsMode(options.mode);
101
115
  const googleMapsUri = normalizeGooglePlacePublicUrl(response.googleMapsUri) ??
102
116
  normalizeGooglePlacePublicUrl(options.fallbackGoogleMapsUri);
103
117
  const rating = normalizeRating(response.rating);
104
118
  const userRatingCount = normalizeCount(response.userRatingCount);
105
119
  if (!businessName || !googleMapsUri) {
106
- return createGooglePlaceReviewsUnavailableSnapshot('invalid-response', googleMapsUri);
120
+ return createGooglePlaceReviewsUnavailableSnapshot('invalid-response', googleMapsUri, mode);
107
121
  }
108
- const reviews = (response.reviews ?? [])
122
+ const reviews = (mode === 'full' ? response.reviews ?? [] : [])
109
123
  .map((review) => normalizeGooglePlaceReview(review))
110
124
  .filter((review) => Boolean(review))
111
125
  .slice(0, clampReviewLimit(options.maxReviews));
@@ -120,6 +134,111 @@ export function normalizeGooglePlaceReviewsResponse(response, options = {}) {
120
134
  .filter((item) => Boolean(item));
121
135
  return {
122
136
  status: 'available',
137
+ mode,
138
+ businessName,
139
+ googleMapsUri,
140
+ ...(rating ? { rating } : {}),
141
+ ...(userRatingCount !== undefined ? { userRatingCount } : {}),
142
+ reviews,
143
+ thirdPartyAttributions,
144
+ attribution,
145
+ };
146
+ }
147
+ /**
148
+ * Treats the public route response as untrusted input before it reaches React.
149
+ * Unknown fields are discarded and incomplete review attribution is omitted.
150
+ */
151
+ export function parseGooglePlaceReviewsSnapshot(value, expectedMode) {
152
+ if (!value || typeof value !== 'object' || Array.isArray(value))
153
+ return null;
154
+ const record = value;
155
+ const mode = record.mode === 'summary' || record.mode === 'full'
156
+ ? record.mode
157
+ : null;
158
+ if (!mode || (expectedMode && mode !== expectedMode))
159
+ return null;
160
+ if (!record.attribution ||
161
+ typeof record.attribution !== 'object' ||
162
+ Array.isArray(record.attribution)) {
163
+ return null;
164
+ }
165
+ const rawAttribution = record.attribution;
166
+ if (rawAttribution.label !== GOOGLE_MAPS_ATTRIBUTION_LABEL ||
167
+ rawAttribution.text !== GOOGLE_MAPS_ATTRIBUTION_TEXT) {
168
+ return null;
169
+ }
170
+ if (record.status === 'unavailable') {
171
+ if (typeof record.reason !== 'string' ||
172
+ !GOOGLE_PLACE_REVIEWS_UNAVAILABLE_REASONS.has(record.reason)) {
173
+ return null;
174
+ }
175
+ return createGooglePlaceReviewsUnavailableSnapshot(record.reason, typeof record.googleMapsUri === 'string' ? record.googleMapsUri : undefined, mode);
176
+ }
177
+ if (record.status !== 'available')
178
+ return null;
179
+ const businessName = typeof record.businessName === 'string'
180
+ ? trimToUndefined(record.businessName)
181
+ : undefined;
182
+ const googleMapsUri = typeof record.googleMapsUri === 'string'
183
+ ? normalizeGooglePlacePublicUrl(record.googleMapsUri)
184
+ : undefined;
185
+ if (!businessName || !googleMapsUri)
186
+ return null;
187
+ const rating = typeof record.rating === 'number' ? normalizeRating(record.rating) : undefined;
188
+ const userRatingCount = typeof record.userRatingCount === 'number'
189
+ ? normalizeCount(record.userRatingCount)
190
+ : undefined;
191
+ const rawReviews = Array.isArray(record.reviews) ? record.reviews : null;
192
+ const rawAttributions = Array.isArray(record.thirdPartyAttributions)
193
+ ? record.thirdPartyAttributions
194
+ : null;
195
+ if (!rawReviews || !rawAttributions || (mode === 'summary' && rawReviews.length > 0)) {
196
+ return null;
197
+ }
198
+ const reviews = rawReviews
199
+ .map((item) => {
200
+ if (!item || typeof item !== 'object' || Array.isArray(item))
201
+ return null;
202
+ const review = item;
203
+ return normalizeGooglePlaceReview({
204
+ authorAttribution: {
205
+ displayName: typeof review.authorName === 'string' ? review.authorName : undefined,
206
+ uri: typeof review.authorUri === 'string' ? review.authorUri : undefined,
207
+ photoUri: typeof review.authorPhotoUri === 'string' ? review.authorPhotoUri : undefined,
208
+ },
209
+ rating: typeof review.rating === 'number' ? review.rating : undefined,
210
+ text: { text: typeof review.text === 'string' ? review.text : undefined },
211
+ relativePublishTimeDescription: typeof review.relativePublishTimeDescription === 'string'
212
+ ? review.relativePublishTimeDescription
213
+ : undefined,
214
+ publishTime: typeof review.publishTime === 'string' ? review.publishTime : undefined,
215
+ googleMapsUri: typeof review.googleMapsUri === 'string' ? review.googleMapsUri : undefined,
216
+ flagContentUri: typeof review.flagContentUri === 'string' ? review.flagContentUri : undefined,
217
+ });
218
+ })
219
+ .filter((review) => Boolean(review))
220
+ .slice(0, GOOGLE_PLACE_REVIEWS_MAX_REVIEWS);
221
+ if (mode === 'full' && reviews.length !== rawReviews.length)
222
+ return null;
223
+ const thirdPartyAttributions = rawAttributions
224
+ .map((item) => {
225
+ if (!item || typeof item !== 'object' || Array.isArray(item))
226
+ return null;
227
+ const raw = item;
228
+ const provider = typeof raw.provider === 'string' ? trimToUndefined(raw.provider) : undefined;
229
+ if (!provider)
230
+ return null;
231
+ const providerUri = typeof raw.providerUri === 'string'
232
+ ? normalizeGooglePlacePublicUrl(raw.providerUri)
233
+ : undefined;
234
+ return { provider, ...(providerUri ? { providerUri } : {}) };
235
+ })
236
+ .filter((item) => Boolean(item));
237
+ if (thirdPartyAttributions.length !== rawAttributions.length)
238
+ return null;
239
+ return {
240
+ status: 'available',
241
+ mode,
123
242
  businessName,
124
243
  googleMapsUri,
125
244
  ...(rating ? { rating } : {}),
@@ -132,16 +251,18 @@ export function normalizeGooglePlaceReviewsResponse(response, options = {}) {
132
251
  export async function fetchGooglePlaceReviewsSnapshot(options) {
133
252
  const apiKey = trimToUndefined(options.apiKey);
134
253
  const placeId = normalizeGooglePlaceId(options.placeId);
254
+ const mode = normalizeGooglePlaceReviewsMode(options.mode);
135
255
  if (!apiKey) {
136
- return createGooglePlaceReviewsUnavailableSnapshot('missing-api-key', options.fallbackGoogleMapsUri);
256
+ return createGooglePlaceReviewsUnavailableSnapshot('missing-api-key', options.fallbackGoogleMapsUri, mode);
137
257
  }
138
258
  if (!placeId) {
139
- return createGooglePlaceReviewsUnavailableSnapshot('missing-place-id', options.fallbackGoogleMapsUri);
259
+ return createGooglePlaceReviewsUnavailableSnapshot('missing-place-id', options.fallbackGoogleMapsUri, mode);
140
260
  }
141
261
  try {
142
262
  const request = buildGooglePlaceDetailsRequest({
143
263
  apiKey,
144
264
  placeId,
265
+ mode,
145
266
  });
146
267
  const fetcher = options.fetcher ?? fetch;
147
268
  const timeoutMs = options.timeoutMs ?? 5_000;
@@ -162,16 +283,17 @@ export async function fetchGooglePlaceReviewsSnapshot(options) {
162
283
  clearTimeout(timeout);
163
284
  }
164
285
  if (!response.ok) {
165
- return createGooglePlaceReviewsUnavailableSnapshot('api-error', options.fallbackGoogleMapsUri);
286
+ return createGooglePlaceReviewsUnavailableSnapshot('api-error', options.fallbackGoogleMapsUri, mode);
166
287
  }
167
288
  const json = (await response.json());
168
289
  return normalizeGooglePlaceReviewsResponse(json, {
290
+ mode,
169
291
  maxReviews: options.maxReviews,
170
292
  fallbackGoogleMapsUri: options.fallbackGoogleMapsUri,
171
293
  });
172
294
  }
173
295
  catch {
174
- return createGooglePlaceReviewsUnavailableSnapshot('api-error', options.fallbackGoogleMapsUri);
296
+ return createGooglePlaceReviewsUnavailableSnapshot('api-error', options.fallbackGoogleMapsUri, mode);
175
297
  }
176
298
  }
177
299
  //# 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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"}
@@ -1,55 +1,21 @@
1
- import type { BrandlabFact, BrandlabProofReference } from './business.js';
2
1
  /**
3
- * Location-page gate primitives and geography-registry contracts
4
- * (Brandlab Location Pages Standard §5, §7).
2
+ * Location publication and geography-registry contracts.
5
3
  *
6
- * The programmatic-quality gate is lifted from the accepted benchmark
7
- * implementation (sydney-tree-services `src/data/services/quality.ts`) so
8
- * every project derives draft/noindex/indexable the same way. The registry
9
- * types describe `standards/registry/sydney-geography.json` and the committed
10
- * snapshots client repos validate against.
4
+ * Brandlab owns route correctness and shared geography. Projects own their
5
+ * content, evidence and publication decisions.
11
6
  */
12
- export type ProgrammaticIndexationStatus = 'draft' | 'noindex' | 'indexable';
13
- export type ProgrammaticQualityTier = 'core' | 'supporting' | 'experimental';
14
- export type ProgrammaticContentDepth = 'thin' | 'standard' | 'strong';
15
- export type ProgrammaticProofLevel = 'none' | 'council' | 'review' | 'project';
16
- export type ProgrammaticSearchDemand = 'unknown' | 'low' | 'medium' | 'high';
17
- /** Suburb publication tier (standard §7.2). */
18
- export type SuburbTier = 'core' | 'secondary' | 'edge';
19
- export interface ProgrammaticQualitySignals {
20
- indexationStatus: ProgrammaticIndexationStatus;
21
- qualityTier: ProgrammaticQualityTier;
22
- contentDepth: ProgrammaticContentDepth;
23
- proofLevel: ProgrammaticProofLevel;
24
- proofAssetIds: readonly string[];
25
- searchDemand: ProgrammaticSearchDemand;
26
- uniqueLocalSignals: readonly string[];
27
- qualityNotes: readonly string[];
28
- }
29
- export type BrandlabLocationQualityInput = Omit<ProgrammaticQualitySignals, 'indexationStatus' | 'proofLevel'>;
30
- export type BrandlabLocationProofFact = BrandlabFact<readonly BrandlabProofReference[]>;
31
7
  /**
32
- * Validates location evidence and derives indexation from the evidence instead
33
- * of accepting a caller-selected status.
8
+ * The preferred location publication contract. A project owner explicitly
9
+ * decides whether a route is indexable after checking customer usefulness,
10
+ * geographic correctness and available evidence.
34
11
  */
35
- export declare function defineLocationRouteQuality<const T extends BrandlabLocationQualityInput>(input: T, businessProof: BrandlabLocationProofFact): T & {
36
- proofLevel: ProgrammaticProofLevel;
37
- indexationStatus: ProgrammaticIndexationStatus;
38
- };
39
- export declare function resolveLocationRouteIndexing(quality: ProgrammaticQualitySignals | 'unknown' | null | undefined): 'index' | 'noindex-follow';
40
- export interface IndexableProgrammaticRecord {
41
- indexationStatus: ProgrammaticIndexationStatus;
12
+ export interface BrandlabLocationRouteDecision {
13
+ indexing: 'index' | 'noindex-follow';
14
+ rationale: string;
15
+ reviewedAt?: string;
42
16
  }
43
- export declare function isIndexableProgrammaticRecord<T extends IndexableProgrammaticRecord>(record: T): record is T & {
44
- indexationStatus: 'indexable';
45
- };
46
- export declare function getProofLevelFromAssetIds(proofAssetIds: readonly string[], businessProof: BrandlabLocationProofFact): ProgrammaticProofLevel;
47
- /**
48
- * The portfolio indexation gate: thin content or missing proof can never be
49
- * invited into the index; fewer than three unique local signals keeps a page
50
- * in draft (standard §7.1).
51
- */
52
- export declare function resolveIndexationStatus({ contentDepth, proofLevel, uniqueLocalSignals, }: Pick<ProgrammaticQualitySignals, 'contentDepth' | 'proofLevel' | 'uniqueLocalSignals'>): ProgrammaticIndexationStatus;
17
+ export declare function defineLocationRouteDecision<const T extends BrandlabLocationRouteDecision>(input: T): T;
18
+ export declare function resolveLocationRouteIndexing(decision: BrandlabLocationRouteDecision | null | undefined): 'index' | 'noindex-follow';
53
19
  export interface RegistryRegion {
54
20
  slug: string;
55
21
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../src/locations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../src/locations.ts"],"names":[],"mappings":"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"}
package/dist/locations.js CHANGED
@@ -1,118 +1,26 @@
1
- const QUALITY_TIERS = new Set(['core', 'supporting', 'experimental']);
2
- const CONTENT_DEPTHS = new Set(['thin', 'standard', 'strong']);
3
- const SEARCH_DEMAND_LEVELS = new Set([
4
- 'unknown',
5
- 'low',
6
- 'medium',
7
- 'high',
8
- ]);
9
- const PROOF_ASSET_ID_PATTERN = /^(?:project|region-review|council-source):[a-z0-9][a-z0-9./:_-]*$/;
10
- const LOCATION_PROOF_RULES = {
11
- project: { namespace: 'project:', level: 'project' },
12
- review: { namespace: 'region-review:', level: 'review' },
13
- 'external-source': { namespace: 'council-source:', level: 'council' },
14
- };
15
- function assertLocationQualityInput(input) {
16
- if (!QUALITY_TIERS.has(input.qualityTier)) {
17
- throw new Error(`Unsupported location qualityTier "${input.qualityTier}".`);
18
- }
19
- if (!CONTENT_DEPTHS.has(input.contentDepth)) {
20
- throw new Error(`Unsupported location contentDepth "${input.contentDepth}".`);
21
- }
22
- if (!SEARCH_DEMAND_LEVELS.has(input.searchDemand)) {
23
- throw new Error(`Unsupported location searchDemand "${input.searchDemand}".`);
24
- }
25
- if (input.proofAssetIds.some((value) => !PROOF_ASSET_ID_PATTERN.test(value))) {
26
- throw new Error('proofAssetIds must use a supported, non-empty proof namespace.');
27
- }
28
- if (new Set(input.proofAssetIds).size !== input.proofAssetIds.length) {
29
- throw new Error('proofAssetIds must be unique.');
30
- }
31
- if (input.uniqueLocalSignals.some((value) => !value.trim())) {
32
- throw new Error('uniqueLocalSignals cannot contain empty values.');
33
- }
34
- const normalizedSignals = input.uniqueLocalSignals.map((value) => value.trim().toLowerCase());
35
- if (new Set(normalizedSignals).size !== normalizedSignals.length) {
36
- throw new Error('uniqueLocalSignals must be unique after normalization.');
37
- }
38
- if (input.qualityNotes.some((value) => !value.trim())) {
39
- throw new Error('qualityNotes cannot contain empty values.');
40
- }
41
- }
42
1
  /**
43
- * Validates location evidence and derives indexation from the evidence instead
44
- * of accepting a caller-selected status.
2
+ * Location publication and geography-registry contracts.
3
+ *
4
+ * Brandlab owns route correctness and shared geography. Projects own their
5
+ * content, evidence and publication decisions.
45
6
  */
46
- export function defineLocationRouteQuality(input, businessProof) {
47
- assertLocationQualityInput(input);
48
- const proofLevel = getProofLevelFromAssetIds(input.proofAssetIds, businessProof);
49
- return {
50
- ...input,
51
- proofLevel,
52
- indexationStatus: resolveIndexationStatus({ ...input, proofLevel }),
53
- };
54
- }
55
- export function resolveLocationRouteIndexing(quality) {
56
- if (!quality || quality === 'unknown')
57
- return 'noindex-follow';
58
- assertLocationQualityInput(quality);
59
- if (quality.proofAssetIds.length === 0 && quality.proofLevel !== 'none') {
60
- throw new Error('Location quality proofLevel must be "none" when proofAssetIds is empty.');
7
+ export function defineLocationRouteDecision(input) {
8
+ if (input.indexing !== 'index' && input.indexing !== 'noindex-follow') {
9
+ throw new Error('Location route indexing must be "index" or "noindex-follow".');
61
10
  }
62
- if (quality.proofAssetIds.length > 0 && quality.proofLevel === 'none') {
63
- throw new Error('Location quality proofLevel requires verified proof for every proofAssetId.');
11
+ if (!input.rationale.trim()) {
12
+ throw new Error('Location route decision requires a concise rationale.');
64
13
  }
65
- const derived = resolveIndexationStatus(quality);
66
- if (quality.indexationStatus !== derived) {
67
- throw new Error('Location quality indexationStatus must be derived from its proof signals.');
14
+ if (input.reviewedAt && Number.isNaN(Date.parse(input.reviewedAt))) {
15
+ throw new Error('Location route decision reviewedAt must be a valid date.');
68
16
  }
69
- return derived === 'indexable' ? 'index' : 'noindex-follow';
17
+ return input;
70
18
  }
71
- export function isIndexableProgrammaticRecord(record) {
72
- return record.indexationStatus === 'indexable';
73
- }
74
- export function getProofLevelFromAssetIds(proofAssetIds, businessProof) {
75
- if (proofAssetIds.length === 0)
76
- return 'none';
77
- if (businessProof.status !== 'verified') {
78
- throw new Error(`Location proofAssetIds require verified business.proof; received "${businessProof.status}".`);
79
- }
80
- const proofById = new Map(businessProof.value.map((proof) => [proof.id, proof]));
81
- const levels = proofAssetIds.map((proofAssetId) => {
82
- const proof = proofById.get(proofAssetId);
83
- if (!proof) {
84
- throw new Error(`Location proofAssetId "${proofAssetId}" is missing from verified business.proof.`);
85
- }
86
- const rule = LOCATION_PROOF_RULES[proof.kind];
87
- if (!rule) {
88
- throw new Error(`Location proofAssetId "${proofAssetId}" uses unsupported proof kind "${proof.kind}".`);
89
- }
90
- if (!proofAssetId.startsWith(rule.namespace)) {
91
- throw new Error(`Location proofAssetId "${proofAssetId}" does not match proof kind "${proof.kind}".`);
92
- }
93
- return rule.level;
94
- });
95
- if (levels.includes('project')) {
96
- return 'project';
97
- }
98
- if (levels.includes('review')) {
99
- return 'review';
100
- }
101
- return 'council';
102
- }
103
- /**
104
- * The portfolio indexation gate: thin content or missing proof can never be
105
- * invited into the index; fewer than three unique local signals keeps a page
106
- * in draft (standard §7.1).
107
- */
108
- export function resolveIndexationStatus({ contentDepth, proofLevel, uniqueLocalSignals, }) {
109
- if (contentDepth === 'thin' || proofLevel === 'none') {
110
- return 'noindex';
111
- }
112
- if (uniqueLocalSignals.length < 3) {
113
- return 'draft';
19
+ export function resolveLocationRouteIndexing(decision) {
20
+ if (!decision) {
21
+ throw new Error('Location route decision is required.');
114
22
  }
115
- return 'indexable';
23
+ return defineLocationRouteDecision(decision).indexing;
116
24
  }
117
25
  /** Canonical Brandlab slugify — identical to the benchmark implementation. */
118
26
  export function toLocationSlug(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"locations.js","sourceRoot":"","sources":["../src/locations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locations.js","sourceRoot":"","sources":["../src/locations.ts"],"names":[],"mappings":"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"}