@brandlab-digital/site-core 0.1.0-alpha.17 → 0.1.0-alpha.18

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.
@@ -0,0 +1,89 @@
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,reviews";
3
+ export declare const GOOGLE_MAPS_ATTRIBUTION_LABEL = "Google Maps";
4
+ export declare const GOOGLE_MAPS_ATTRIBUTION_TEXT = "Reviews provided by Google Maps";
5
+ export declare const GOOGLE_PLACE_REVIEWS_MAX_REVIEWS = 5;
6
+ export type GooglePlaceReviewsUnavailableReason = 'missing-api-key' | 'missing-place-id' | 'api-error' | 'invalid-response';
7
+ export interface GooglePlaceText {
8
+ text?: string;
9
+ languageCode?: string;
10
+ }
11
+ export interface GooglePlaceDisplayName {
12
+ text?: string;
13
+ languageCode?: string;
14
+ }
15
+ export interface GooglePlaceReviewAuthorAttribution {
16
+ displayName?: string;
17
+ uri?: string;
18
+ photoUri?: string;
19
+ }
20
+ export interface GooglePlaceReviewApiReview {
21
+ name?: string;
22
+ relativePublishTimeDescription?: string;
23
+ rating?: number;
24
+ text?: GooglePlaceText;
25
+ originalText?: GooglePlaceText;
26
+ authorAttribution?: GooglePlaceReviewAuthorAttribution;
27
+ publishTime?: string;
28
+ }
29
+ export interface GooglePlaceDetailsApiResponse {
30
+ id?: string;
31
+ displayName?: GooglePlaceDisplayName;
32
+ googleMapsUri?: string;
33
+ rating?: number;
34
+ userRatingCount?: number;
35
+ reviews?: GooglePlaceReviewApiReview[];
36
+ }
37
+ export interface GooglePlaceReview {
38
+ authorName: string;
39
+ authorUri?: string;
40
+ rating?: number;
41
+ text: string;
42
+ relativePublishTimeDescription?: string;
43
+ publishTime?: string;
44
+ }
45
+ export interface GooglePlaceReviewsAttribution {
46
+ label: typeof GOOGLE_MAPS_ATTRIBUTION_LABEL;
47
+ text: typeof GOOGLE_MAPS_ATTRIBUTION_TEXT;
48
+ }
49
+ export interface GooglePlaceReviewsAvailableSnapshot {
50
+ status: 'available';
51
+ businessName: string;
52
+ googleMapsUri: string;
53
+ rating?: number;
54
+ userRatingCount?: number;
55
+ reviews: GooglePlaceReview[];
56
+ attribution: GooglePlaceReviewsAttribution;
57
+ }
58
+ export interface GooglePlaceReviewsUnavailableSnapshot {
59
+ status: 'unavailable';
60
+ reason: GooglePlaceReviewsUnavailableReason;
61
+ googleMapsUri?: string;
62
+ attribution: GooglePlaceReviewsAttribution;
63
+ }
64
+ export type GooglePlaceReviewsSnapshot = GooglePlaceReviewsAvailableSnapshot | GooglePlaceReviewsUnavailableSnapshot;
65
+ export interface GooglePlaceDetailsRequest {
66
+ url: string;
67
+ headers: Record<string, string>;
68
+ }
69
+ export interface FetchGooglePlaceReviewsOptions {
70
+ apiKey?: string | null;
71
+ placeId?: string | null;
72
+ fieldMask?: string;
73
+ maxReviews?: number;
74
+ fallbackGoogleMapsUri?: string | null;
75
+ fetcher?: typeof fetch;
76
+ }
77
+ export declare function normalizeGooglePlaceId(placeId: string | null | undefined): string | undefined;
78
+ export declare function buildGooglePlaceDetailsRequest(options: {
79
+ apiKey: string;
80
+ placeId: string;
81
+ fieldMask?: string;
82
+ }): GooglePlaceDetailsRequest;
83
+ export declare function normalizeGooglePlaceReview(review: GooglePlaceReviewApiReview): GooglePlaceReview | null;
84
+ export declare function normalizeGooglePlaceReviewsResponse(response: GooglePlaceDetailsApiResponse, options?: {
85
+ maxReviews?: number;
86
+ fallbackGoogleMapsUri?: string | null;
87
+ }): GooglePlaceReviewsSnapshot;
88
+ export declare function fetchGooglePlaceReviewsSnapshot(options: FetchGooglePlaceReviewsOptions): Promise<GooglePlaceReviewsSnapshot>;
89
+ //# sourceMappingURL=google-reviews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-reviews.d.ts","sourceRoot":"","sources":["../src/google-reviews.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,4CAA4C,CAAA;AACtF,eAAO,MAAM,+BAA+B,gEACmB,CAAA;AAC/D,eAAO,MAAM,6BAA6B,gBAAgB,CAAA;AAC1D,eAAO,MAAM,4BAA4B,oCAAoC,CAAA;AAC7E,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAEjD,MAAM,MAAM,mCAAmC,GAC3C,iBAAiB,GACjB,kBAAkB,GAClB,WAAW,GACX,kBAAkB,CAAA;AAEtB,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kCAAkC;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B,iBAAiB,CAAC,EAAE,kCAAkC,CAAA;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,OAAO,6BAA6B,CAAA;IAC3C,IAAI,EAAE,OAAO,4BAA4B,CAAA;CAC1C;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,WAAW,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,WAAW,EAAE,6BAA6B,CAAA;CAC3C;AAED,MAAM,WAAW,qCAAqC;IACpD,MAAM,EAAE,aAAa,CAAA;IACrB,MAAM,EAAE,mCAAmC,CAAA;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,6BAA6B,CAAA;CAC3C;AAED,MAAM,MAAM,0BAA0B,GAClC,mCAAmC,GACnC,qCAAqC,CAAA;AAEzC,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,8BAA8B;IAC7C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;CACvB;AAuCD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAKxE;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,yBAAyB,CAmB5B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,0BAA0B,GACjC,iBAAiB,GAAG,IAAI,CAoB1B;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,6BAA6B,EACvC,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC,GACL,0BAA0B,CAwB5B;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,0BAA0B,CAAC,CAoCrC"}
@@ -0,0 +1,131 @@
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,reviews';
3
+ export const GOOGLE_MAPS_ATTRIBUTION_LABEL = 'Google Maps';
4
+ export const GOOGLE_MAPS_ATTRIBUTION_TEXT = 'Reviews provided by Google Maps';
5
+ export const GOOGLE_PLACE_REVIEWS_MAX_REVIEWS = 5;
6
+ const attribution = {
7
+ label: GOOGLE_MAPS_ATTRIBUTION_LABEL,
8
+ text: GOOGLE_MAPS_ATTRIBUTION_TEXT,
9
+ };
10
+ function unavailable(reason, googleMapsUri) {
11
+ return {
12
+ status: 'unavailable',
13
+ reason,
14
+ ...(googleMapsUri ? { googleMapsUri } : {}),
15
+ attribution,
16
+ };
17
+ }
18
+ function trimToUndefined(value) {
19
+ const trimmed = value?.trim();
20
+ return trimmed ? trimmed : undefined;
21
+ }
22
+ function normalizeRating(value) {
23
+ return typeof value === 'number' && Number.isFinite(value) && value > 0 && value <= 5
24
+ ? value
25
+ : undefined;
26
+ }
27
+ function normalizeCount(value) {
28
+ return typeof value === 'number' && Number.isInteger(value) && value >= 0 ? value : undefined;
29
+ }
30
+ function clampReviewLimit(value) {
31
+ if (typeof value !== 'number' || !Number.isFinite(value))
32
+ return GOOGLE_PLACE_REVIEWS_MAX_REVIEWS;
33
+ return Math.max(0, Math.min(GOOGLE_PLACE_REVIEWS_MAX_REVIEWS, Math.floor(value)));
34
+ }
35
+ export function normalizeGooglePlaceId(placeId) {
36
+ const trimmed = trimToUndefined(placeId);
37
+ if (!trimmed)
38
+ return undefined;
39
+ return trimmed.replace(/^places\//, '');
40
+ }
41
+ export function buildGooglePlaceDetailsRequest(options) {
42
+ const normalizedPlaceId = normalizeGooglePlaceId(options.placeId);
43
+ const apiKey = trimToUndefined(options.apiKey);
44
+ if (!apiKey) {
45
+ throw new Error('GOOGLE_MAPS_PLATFORM_API_KEY is required');
46
+ }
47
+ if (!normalizedPlaceId) {
48
+ throw new Error('Google Place ID is required');
49
+ }
50
+ return {
51
+ url: `${GOOGLE_PLACE_DETAILS_ENDPOINT}/${encodeURIComponent(normalizedPlaceId)}`,
52
+ headers: {
53
+ 'X-Goog-Api-Key': apiKey,
54
+ 'X-Goog-FieldMask': options.fieldMask ?? GOOGLE_PLACE_REVIEWS_FIELD_MASK,
55
+ },
56
+ };
57
+ }
58
+ export function normalizeGooglePlaceReview(review) {
59
+ const authorName = trimToUndefined(review.authorAttribution?.displayName);
60
+ const authorUri = trimToUndefined(review.authorAttribution?.uri);
61
+ const rating = normalizeRating(review.rating);
62
+ const relativePublishTimeDescription = trimToUndefined(review.relativePublishTimeDescription);
63
+ const publishTime = trimToUndefined(review.publishTime);
64
+ const text = trimToUndefined(review.text?.text);
65
+ if (!authorName || !text) {
66
+ return null;
67
+ }
68
+ return {
69
+ authorName,
70
+ ...(authorUri ? { authorUri } : {}),
71
+ ...(rating ? { rating } : {}),
72
+ text,
73
+ ...(relativePublishTimeDescription ? { relativePublishTimeDescription } : {}),
74
+ ...(publishTime ? { publishTime } : {}),
75
+ };
76
+ }
77
+ export function normalizeGooglePlaceReviewsResponse(response, options = {}) {
78
+ const businessName = trimToUndefined(response.displayName?.text);
79
+ const googleMapsUri = trimToUndefined(response.googleMapsUri) ?? trimToUndefined(options.fallbackGoogleMapsUri);
80
+ const rating = normalizeRating(response.rating);
81
+ const userRatingCount = normalizeCount(response.userRatingCount);
82
+ if (!businessName || !googleMapsUri) {
83
+ return unavailable('invalid-response', googleMapsUri);
84
+ }
85
+ const reviews = (response.reviews ?? [])
86
+ .map((review) => normalizeGooglePlaceReview(review))
87
+ .filter((review) => Boolean(review))
88
+ .slice(0, clampReviewLimit(options.maxReviews));
89
+ return {
90
+ status: 'available',
91
+ businessName,
92
+ googleMapsUri,
93
+ ...(rating ? { rating } : {}),
94
+ ...(userRatingCount !== undefined ? { userRatingCount } : {}),
95
+ reviews,
96
+ attribution,
97
+ };
98
+ }
99
+ export async function fetchGooglePlaceReviewsSnapshot(options) {
100
+ const apiKey = trimToUndefined(options.apiKey);
101
+ const placeId = normalizeGooglePlaceId(options.placeId);
102
+ if (!apiKey) {
103
+ return unavailable('missing-api-key', options.fallbackGoogleMapsUri);
104
+ }
105
+ if (!placeId) {
106
+ return unavailable('missing-place-id', options.fallbackGoogleMapsUri);
107
+ }
108
+ try {
109
+ const request = buildGooglePlaceDetailsRequest({
110
+ apiKey,
111
+ placeId,
112
+ fieldMask: options.fieldMask,
113
+ });
114
+ const fetcher = options.fetcher ?? fetch;
115
+ const response = await fetcher(request.url, {
116
+ headers: request.headers,
117
+ });
118
+ if (!response.ok) {
119
+ return unavailable('api-error', options.fallbackGoogleMapsUri);
120
+ }
121
+ const json = (await response.json());
122
+ return normalizeGooglePlaceReviewsResponse(json, {
123
+ maxReviews: options.maxReviews,
124
+ fallbackGoogleMapsUri: options.fallbackGoogleMapsUri,
125
+ });
126
+ }
127
+ catch {
128
+ return unavailable('api-error', options.fallbackGoogleMapsUri);
129
+ }
130
+ }
131
+ //# sourceMappingURL=google-reviews.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-reviews.js","sourceRoot":"","sources":["../src/google-reviews.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brandlab-digital/site-core",
3
- "version": "0.1.0-alpha.17",
3
+ "version": "0.1.0-alpha.18",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -48,6 +48,10 @@
48
48
  "./geography": {
49
49
  "types": "./dist/geography.d.ts",
50
50
  "import": "./dist/geography.js"
51
+ },
52
+ "./google-reviews": {
53
+ "types": "./dist/google-reviews.d.ts",
54
+ "import": "./dist/google-reviews.js"
51
55
  }
52
56
  }
53
57
  }