@nx-ddd/google 19.24.1 → 19.26.0

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.
@@ -181,10 +181,10 @@ class GooglePlacesService {
181
181
  }
182
182
  return results;
183
183
  }
184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GooglePlacesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
185
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GooglePlacesService, providedIn: 'root' });
184
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GooglePlacesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
185
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GooglePlacesService, providedIn: 'root' });
186
186
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GooglePlacesService, decorators: [{
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GooglePlacesService, decorators: [{
188
188
  type: Injectable,
189
189
  args: [{ providedIn: 'root' }]
190
190
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-google-places.mjs","sources":["../tmp-esm2022/places/places.config.js","../tmp-esm2022/places/places-transformers.js","../tmp-esm2022/places/places-photo.js","../tmp-esm2022/places/places.service.js","../tmp-esm2022/places/nx-ddd-google-places.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const GOOGLE_PLACES_CONFIG = new InjectionToken('GOOGLE_PLACES_CONFIG');\nexport function provideGooglePlacesConfig(useFactory) {\n return [\n {\n provide: GOOGLE_PLACES_CONFIG,\n useFactory\n }\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2VzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZ29vZ2xlL3NyYy9saWIvcGxhY2VzL3BsYWNlcy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsc0JBQXNCLENBQUMsQ0FBQztBQUVuRyxNQUFNLFVBQVUseUJBQXlCLENBQUMsVUFBb0M7SUFDNUUsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixVQUFVO1NBQ1g7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR29vZ2xlUGxhY2VzQ29uZmlnIH0gZnJvbSAnLi9wbGFjZXMuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEdPT0dMRV9QTEFDRVNfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEdvb2dsZVBsYWNlc0NvbmZpZz4oJ0dPT0dMRV9QTEFDRVNfQ09ORklHJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlR29vZ2xlUGxhY2VzQ29uZmlnKHVzZUZhY3Rvcnk6ICgpID0+IEdvb2dsZVBsYWNlc0NvbmZpZyk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdPT0dMRV9QTEFDRVNfQ09ORklHLFxuICAgICAgdXNlRmFjdG9yeVxuICAgIH1cbiAgXTtcbn0iXX0=","/**\n * Transform API response from snake_case to camelCase for search results\n */\nexport function transformPlaceSearchResult(result) {\n return {\n placeId: result.place_id,\n name: result.name,\n formattedAddress: result.formatted_address,\n geometry: result.geometry,\n photos: result.photos?.map((photo) => ({\n photoReference: photo.photo_reference,\n height: photo.height,\n width: photo.width,\n htmlAttributions: photo.html_attributions\n })),\n rating: result.rating,\n userRatingsTotal: result.user_ratings_total\n };\n}\n/**\n * Transform API response from snake_case to camelCase for place details\n */\nexport function transformPlaceDetailsResult(result) {\n return {\n placeId: result.place_id,\n name: result.name,\n formattedAddress: result.formatted_address,\n formattedPhoneNumber: result.formatted_phone_number,\n website: result.website,\n photos: result.photos?.map((photo) => ({\n photoReference: photo.photo_reference,\n height: photo.height,\n width: photo.width,\n htmlAttributions: photo.html_attributions\n })),\n rating: result.rating,\n userRatingsTotal: result.user_ratings_total,\n geometry: result.geometry\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2VzLXRyYW5zZm9ybWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZ29vZ2xlL3NyYy9saWIvcGxhY2VzL3BsYWNlcy10cmFuc2Zvcm1lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7O0dBRUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBVztJQUNwRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsaUJBQWlCO1FBQzFDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3JDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtTQUMxQyxDQUFDLENBQUM7UUFDSCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGtCQUFrQjtLQUM1QyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUFDLE1BQVc7SUFDckQsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQjtRQUMxQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsc0JBQXNCO1FBQ25ELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztRQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3JDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtTQUMxQyxDQUFDLENBQUM7UUFDSCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGtCQUFrQjtRQUMzQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7S0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRyYW5zZm9ybSBmdW5jdGlvbnMgZm9yIEdvb2dsZSBQbGFjZXMgQVBJIHJlc3BvbnNlc1xuICovXG5pbXBvcnQgeyBQbGFjZVNlYXJjaFJlc3VsdCwgUGxhY2VEZXRhaWxzUmVzdWx0IH0gZnJvbSAnLi9wbGFjZXMuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBUcmFuc2Zvcm0gQVBJIHJlc3BvbnNlIGZyb20gc25ha2VfY2FzZSB0byBjYW1lbENhc2UgZm9yIHNlYXJjaCByZXN1bHRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1QbGFjZVNlYXJjaFJlc3VsdChyZXN1bHQ6IGFueSk6IFBsYWNlU2VhcmNoUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICBwbGFjZUlkOiByZXN1bHQucGxhY2VfaWQsXG4gICAgbmFtZTogcmVzdWx0Lm5hbWUsXG4gICAgZm9ybWF0dGVkQWRkcmVzczogcmVzdWx0LmZvcm1hdHRlZF9hZGRyZXNzLFxuICAgIGdlb21ldHJ5OiByZXN1bHQuZ2VvbWV0cnksXG4gICAgcGhvdG9zOiByZXN1bHQucGhvdG9zPy5tYXAoKHBob3RvOiBhbnkpID0+ICh7XG4gICAgICBwaG90b1JlZmVyZW5jZTogcGhvdG8ucGhvdG9fcmVmZXJlbmNlLFxuICAgICAgaGVpZ2h0OiBwaG90by5oZWlnaHQsXG4gICAgICB3aWR0aDogcGhvdG8ud2lkdGgsXG4gICAgICBodG1sQXR0cmlidXRpb25zOiBwaG90by5odG1sX2F0dHJpYnV0aW9uc1xuICAgIH0pKSxcbiAgICByYXRpbmc6IHJlc3VsdC5yYXRpbmcsXG4gICAgdXNlclJhdGluZ3NUb3RhbDogcmVzdWx0LnVzZXJfcmF0aW5nc190b3RhbFxuICB9O1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBBUEkgcmVzcG9uc2UgZnJvbSBzbmFrZV9jYXNlIHRvIGNhbWVsQ2FzZSBmb3IgcGxhY2UgZGV0YWlsc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUGxhY2VEZXRhaWxzUmVzdWx0KHJlc3VsdDogYW55KTogUGxhY2VEZXRhaWxzUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICBwbGFjZUlkOiByZXN1bHQucGxhY2VfaWQsXG4gICAgbmFtZTogcmVzdWx0Lm5hbWUsXG4gICAgZm9ybWF0dGVkQWRkcmVzczogcmVzdWx0LmZvcm1hdHRlZF9hZGRyZXNzLFxuICAgIGZvcm1hdHRlZFBob25lTnVtYmVyOiByZXN1bHQuZm9ybWF0dGVkX3Bob25lX251bWJlcixcbiAgICB3ZWJzaXRlOiByZXN1bHQud2Vic2l0ZSxcbiAgICBwaG90b3M6IHJlc3VsdC5waG90b3M/Lm1hcCgocGhvdG86IGFueSkgPT4gKHtcbiAgICAgIHBob3RvUmVmZXJlbmNlOiBwaG90by5waG90b19yZWZlcmVuY2UsXG4gICAgICBoZWlnaHQ6IHBob3RvLmhlaWdodCxcbiAgICAgIHdpZHRoOiBwaG90by53aWR0aCxcbiAgICAgIGh0bWxBdHRyaWJ1dGlvbnM6IHBob3RvLmh0bWxfYXR0cmlidXRpb25zXG4gICAgfSkpLFxuICAgIHJhdGluZzogcmVzdWx0LnJhdGluZyxcbiAgICB1c2VyUmF0aW5nc1RvdGFsOiByZXN1bHQudXNlcl9yYXRpbmdzX3RvdGFsLFxuICAgIGdlb21ldHJ5OiByZXN1bHQuZ2VvbWV0cnlcbiAgfTtcbn1cbiJdfQ==","import { lastValueFrom } from 'rxjs';\n/**\n * Get a single place photo as Blob using Place Photos API\n */\nexport async function getPlacePhoto(http, apiKey, photoReference, maxWidth = 1600) {\n const url = 'https://maps.googleapis.com/maps/api/place/photo';\n const params = {\n photoreference: photoReference,\n maxwidth: maxWidth.toString(),\n key: apiKey\n };\n const response = await lastValueFrom(http.get(url, {\n params,\n responseType: 'blob'\n }));\n return response;\n}\n/**\n * Get multiple place photos as Blobs\n */\nexport async function getPlacePhotos(http, apiKey, photoReferences, maxWidth = 1600, limit = 5) {\n const results = [];\n const refs = photoReferences.slice(0, limit);\n for (const photoRef of refs) {\n try {\n const blob = await getPlacePhoto(http, apiKey, photoRef, maxWidth);\n results.push({ photoReference: photoRef, blob });\n }\n catch (error) {\n console.warn(`Failed to fetch photo ${photoRef}:`, error);\n // Continue with other photos even if one fails\n }\n }\n return results;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2VzLXBob3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9nb29nbGUvc3JjL2xpYi9wbGFjZXMvcGxhY2VzLXBob3RvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPckM7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsSUFBZ0IsRUFDaEIsTUFBYyxFQUNkLGNBQXNCLEVBQ3RCLFFBQVEsR0FBRyxJQUFJO0lBRWYsTUFBTSxHQUFHLEdBQUcsa0RBQWtELENBQUM7SUFDL0QsTUFBTSxNQUFNLEdBQUc7UUFDYixjQUFjLEVBQUUsY0FBYztRQUM5QixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRTtRQUM3QixHQUFHLEVBQUUsTUFBTTtLQUNaLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLGFBQWEsQ0FDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDWixNQUFNO1FBQ04sWUFBWSxFQUFFLE1BQU07S0FDckIsQ0FBQyxDQUNILENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsSUFBZ0IsRUFDaEIsTUFBYyxFQUNkLGVBQXlCLEVBQ3pCLFFBQVEsR0FBRyxJQUFJLEVBQ2YsS0FBSyxHQUFHLENBQUM7SUFFVCxNQUFNLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTdDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDbkUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLFFBQVEsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFELCtDQUErQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBob3RvLXJlbGF0ZWQgZnVuY3Rpb25zIGZvciBHb29nbGUgUGxhY2VzIEFQSVxuICovXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBob3RvUmVzdWx0IHtcbiAgcGhvdG9SZWZlcmVuY2U6IHN0cmluZztcbiAgYmxvYjogQmxvYjtcbn1cblxuLyoqXG4gKiBHZXQgYSBzaW5nbGUgcGxhY2UgcGhvdG8gYXMgQmxvYiB1c2luZyBQbGFjZSBQaG90b3MgQVBJXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQbGFjZVBob3RvKFxuICBodHRwOiBIdHRwQ2xpZW50LFxuICBhcGlLZXk6IHN0cmluZyxcbiAgcGhvdG9SZWZlcmVuY2U6IHN0cmluZyxcbiAgbWF4V2lkdGggPSAxNjAwXG4pOiBQcm9taXNlPEJsb2I+IHtcbiAgY29uc3QgdXJsID0gJ2h0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9wbGFjZS9waG90byc7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICBwaG90b3JlZmVyZW5jZTogcGhvdG9SZWZlcmVuY2UsXG4gICAgbWF4d2lkdGg6IG1heFdpZHRoLnRvU3RyaW5nKCksXG4gICAga2V5OiBhcGlLZXlcbiAgfTtcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGxhc3RWYWx1ZUZyb20oXG4gICAgaHR0cC5nZXQodXJsLCB7XG4gICAgICBwYXJhbXMsXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgIH0pXG4gICk7XG5cbiAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG4vKipcbiAqIEdldCBtdWx0aXBsZSBwbGFjZSBwaG90b3MgYXMgQmxvYnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFBsYWNlUGhvdG9zKFxuICBodHRwOiBIdHRwQ2xpZW50LFxuICBhcGlLZXk6IHN0cmluZyxcbiAgcGhvdG9SZWZlcmVuY2VzOiBzdHJpbmdbXSxcbiAgbWF4V2lkdGggPSAxNjAwLFxuICBsaW1pdCA9IDVcbik6IFByb21pc2U8UGhvdG9SZXN1bHRbXT4ge1xuICBjb25zdCByZXN1bHRzOiBQaG90b1Jlc3VsdFtdID0gW107XG4gIGNvbnN0IHJlZnMgPSBwaG90b1JlZmVyZW5jZXMuc2xpY2UoMCwgbGltaXQpO1xuXG4gIGZvciAoY29uc3QgcGhvdG9SZWYgb2YgcmVmcykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBibG9iID0gYXdhaXQgZ2V0UGxhY2VQaG90byhodHRwLCBhcGlLZXksIHBob3RvUmVmLCBtYXhXaWR0aCk7XG4gICAgICByZXN1bHRzLnB1c2goeyBwaG90b1JlZmVyZW5jZTogcGhvdG9SZWYsIGJsb2IgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGZldGNoIHBob3RvICR7cGhvdG9SZWZ9OmAsIGVycm9yKTtcbiAgICAgIC8vIENvbnRpbnVlIHdpdGggb3RoZXIgcGhvdG9zIGV2ZW4gaWYgb25lIGZhaWxzXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { lastValueFrom } from 'rxjs';\nimport { GOOGLE_PLACES_CONFIG } from './places.config';\nimport { transformPlaceSearchResult, transformPlaceDetailsResult } from './places-transformers';\nimport { getPlacePhoto, getPlacePhotos } from './places-photo';\nimport * as i0 from \"@angular/core\";\nexport class GooglePlacesService {\n http = inject(HttpClient);\n config = inject(GOOGLE_PLACES_CONFIG);\n /** Search for places using Google Places Text Search API */\n async searchPlaces(query, options = {}) {\n const { location, radius = 50000, limit = 20 } = options;\n try {\n const url = 'https://maps.googleapis.com/maps/api/place/textsearch/json';\n const params = {\n query: query,\n key: this.config.apiKey,\n language: this.config.language || 'ja'\n };\n if (location) {\n params.location = location;\n params.radius = radius;\n }\n const response = await lastValueFrom(this.http.get(url, { params }));\n if (response.status !== 'OK') {\n throw new Error(`Places API error: ${response.status}`);\n }\n return response.results\n .slice(0, limit)\n .map((result) => transformPlaceSearchResult(result));\n }\n catch (error) {\n console.error('Error searching places:', error);\n throw error;\n }\n }\n /** Get detailed information about a place using Place Details API */\n async getPlaceDetails(placeId, fields) {\n try {\n const url = 'https://maps.googleapis.com/maps/api/place/details/json';\n const defaultFields = [\n 'place_id', 'name', 'formatted_address', 'formatted_phone_number',\n 'website', 'photos', 'rating', 'user_ratings_total', 'geometry'\n ];\n const params = {\n place_id: placeId,\n fields: (fields || defaultFields).join(','),\n key: this.config.apiKey,\n language: this.config.language || 'ja'\n };\n const response = await lastValueFrom(this.http.get(url, { params }));\n if (response.status !== 'OK') {\n throw new Error(`Place Details API error: ${response.status}`);\n }\n return transformPlaceDetailsResult(response.result);\n }\n catch (error) {\n console.error('Error getting place details:', error);\n throw error;\n }\n }\n /** Get place photo as Blob using Place Photos API */\n async getPlacePhoto(photoReference, maxWidth = 1600) {\n try {\n return await getPlacePhoto(this.http, this.config.apiKey, photoReference, maxWidth);\n }\n catch (error) {\n console.error('Error getting place photo:', error);\n throw error;\n }\n }\n /** Get multiple place photos as Blobs */\n async getPlacePhotos(photoReferences, maxWidth = 1600, limit = 5) {\n return getPlacePhotos(this.http, this.config.apiKey, photoReferences, maxWidth, limit);\n }\n /** Search places and get their photos in one operation */\n async searchPlacesWithPhotos(query, options = {}) {\n const { location, radius = 50000, maxPlaces = 5, maxPhotosPerPlace = 3, photoMaxWidth = 1600 } = options;\n const places = await this.searchPlaces(query, { location, radius, limit: maxPlaces });\n const results = [];\n for (const place of places) {\n try {\n const details = await this.getPlaceDetails(place.placeId);\n let photos = [];\n if (details.photos && details.photos.length > 0) {\n const photoRefs = details.photos\n .map(photo => photo.photoReference)\n .slice(0, maxPhotosPerPlace);\n photos = await this.getPlacePhotos(photoRefs, photoMaxWidth);\n }\n results.push({ place: details, photos });\n }\n catch (error) {\n console.warn(`Failed to process place ${place.placeId}:`, error);\n }\n }\n return results;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GooglePlacesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GooglePlacesService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GooglePlacesService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2dvb2dsZS9zcmMvbGliL3BsYWNlcy9wbGFjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBZSxNQUFNLGdCQUFnQixDQUFDOztBQUc1RSxNQUFNLE9BQU8sbUJBQW1CO0lBQ2IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQixNQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFdkQsNERBQTREO0lBQzVELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYSxFQUFFLFVBSTlCLEVBQUU7UUFDSixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUV6RCxJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyw0REFBNEQsQ0FBQztZQUN6RSxNQUFNLE1BQU0sR0FBUTtnQkFDbEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUk7YUFDdkMsQ0FBQztZ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QUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDL0QsQ0FBQztnQkFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEtBQUssQ0FBQyxPQUFPLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7dUdBcklVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRE4sTUFBTTs7MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHT09HTEVfUExBQ0VTX0NPTkZJRyB9IGZyb20gJy4vcGxhY2VzLmNvbmZpZyc7XG5pbXBvcnQgeyBQbGFjZVNlYXJjaFJlc3VsdCwgUGxhY2VEZXRhaWxzUmVzdWx0IH0gZnJvbSAnLi9wbGFjZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IHRyYW5zZm9ybVBsYWNlU2VhcmNoUmVzdWx0LCB0cmFuc2Zvcm1QbGFjZURldGFpbHNSZXN1bHQgfSBmcm9tICcuL3BsYWNlcy10cmFuc2Zvcm1lcnMnO1xuaW1wb3J0IHsgZ2V0UGxhY2VQaG90bywgZ2V0UGxhY2VQaG90b3MsIFBob3RvUmVzdWx0IH0gZnJvbSAnLi9wbGFjZXMtcGhvdG8nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVBsYWNlc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KEdPT0dMRV9QTEFDRVNfQ09ORklHKTtcblxuICAvKiogU2VhcmNoIGZvciBwbGFjZXMgdXNpbmcgR29vZ2xlIFBsYWNlcyBUZXh0IFNlYXJjaCBBUEkgKi9cbiAgYXN5bmMgc2VhcmNoUGxhY2VzKHF1ZXJ5OiBzdHJpbmcsIG9wdGlvbnM6IHtcbiAgICBsb2NhdGlvbj86IHN0cmluZztcbiAgICByYWRpdXM/OiBudW1iZXI7XG4gICAgbGltaXQ/OiBudW1iZXI7XG4gIH0gPSB7fSk6IFByb21pc2U8UGxhY2VTZWFyY2hSZXN1bHRbXT4ge1xuICAgIGNvbnN0IHsgbG9jYXRpb24sIHJhZGl1cyA9IDUwMDAwLCBsaW1pdCA9IDIwIH0gPSBvcHRpb25zO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9ICdodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvcGxhY2UvdGV4dHNlYXJjaC9qc29uJztcbiAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgIGtleTogdGhpcy5jb25maWcuYXBpS2V5LFxuICAgICAgICBsYW5ndWFnZTogdGhpcy5jb25maWcubGFuZ3VhZ2UgfHwgJ2phJ1xuICAgICAgfTtcblxuICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgIHBhcmFtcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgICAgICBwYXJhbXMucmFkaXVzID0gcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGxhc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwsIHsgcGFyYW1zIH0pXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAnT0snKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGxhY2VzIEFQSSBlcnJvcjogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRzXG4gICAgICAgIC5zbGljZSgwLCBsaW1pdClcbiAgICAgICAgLm1hcCgocmVzdWx0OiBhbnkpID0+IHRyYW5zZm9ybVBsYWNlU2VhcmNoUmVzdWx0KHJlc3VsdCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzZWFyY2hpbmcgcGxhY2VzOicsIGVycm9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBHZXQgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGFjZSB1c2luZyBQbGFjZSBEZXRhaWxzIEFQSSAqL1xuICBhc3luYyBnZXRQbGFjZURldGFpbHMocGxhY2VJZDogc3RyaW5nLCBmaWVsZHM/OiBzdHJpbmdbXSk6IFByb21pc2U8UGxhY2VEZXRhaWxzUmVzdWx0PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9ICdodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvcGxhY2UvZGV0YWlscy9qc29uJztcbiAgICAgIGNvbnN0IGRlZmF1bHRGaWVsZHMgPSBbXG4gICAgICAgICdwbGFjZV9pZCcsICduYW1lJywgJ2Zvcm1hdHRlZF9hZGRyZXNzJywgJ2Zvcm1hdHRlZF9waG9uZV9udW1iZXInLFxuICAgICAgICAnd2Vic2l0ZScsICdwaG90b3MnLCAncmF0aW5nJywgJ3VzZXJfcmF0aW5nc190b3RhbCcsICdnZW9tZXRyeSdcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcGxhY2VfaWQ6IHBsYWNlSWQsXG4gICAgICAgIGZpZWxkczogKGZpZWxkcyB8fCBkZWZhdWx0RmllbGRzKS5qb2luKCcsJyksXG4gICAgICAgIGtleTogdGhpcy5jb25maWcuYXBpS2V5LFxuICAgICAgICBsYW5ndWFnZTogdGhpcy5jb25maWcubGFuZ3VhZ2UgfHwgJ2phJ1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxuICAgICAgICB0aGlzLmh0dHAuZ2V0PGFueT4odXJsLCB7IHBhcmFtcyB9KVxuICAgICAgKTtcblxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gJ09LJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBsYWNlIERldGFpbHMgQVBJIGVycm9yOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRyYW5zZm9ybVBsYWNlRGV0YWlsc1Jlc3VsdChyZXNwb25zZS5yZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBnZXR0aW5nIHBsYWNlIGRldGFpbHM6JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLyoqIEdldCBwbGFjZSBwaG90byBhcyBCbG9iIHVzaW5nIFBsYWNlIFBob3RvcyBBUEkgKi9cbiAgYXN5bmMgZ2V0UGxhY2VQaG90byhwaG90b1JlZmVyZW5jZTogc3RyaW5nLCBtYXhXaWR0aCA9IDE2MDApOiBQcm9taXNlPEJsb2I+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGdldFBsYWNlUGhvdG8odGhpcy5odHRwLCB0aGlzLmNvbmZpZy5hcGlLZXksIHBob3RvUmVmZXJlbmNlLCBtYXhXaWR0aCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdldHRpbmcgcGxhY2UgcGhvdG86JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLyoqIEdldCBtdWx0aXBsZSBwbGFjZSBwaG90b3MgYXMgQmxvYnMgKi9cbiAgYXN5bmMgZ2V0UGxhY2VQaG90b3MoXG4gICAgcGhvdG9SZWZlcmVuY2VzOiBzdHJpbmdbXSxcbiAgICBtYXhXaWR0aCA9IDE2MDAsXG4gICAgbGltaXQgPSA1XG4gICk6IFByb21pc2U8UGhvdG9SZXN1bHRbXT4ge1xuICAgIHJldHVybiBnZXRQbGFjZVBob3Rvcyh0aGlzLmh0dHAsIHRoaXMuY29uZmlnLmFwaUtleSwgcGhvdG9SZWZlcmVuY2VzLCBtYXhXaWR0aCwgbGltaXQpO1xuICB9XG5cbiAgLyoqIFNlYXJjaCBwbGFjZXMgYW5kIGdldCB0aGVpciBwaG90b3MgaW4gb25lIG9wZXJhdGlvbiAqL1xuICBhc3luYyBzZWFyY2hQbGFjZXNXaXRoUGhvdG9zKFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgICByYWRpdXM/OiBudW1iZXI7XG4gICAgICBtYXhQbGFjZXM/OiBudW1iZXI7XG4gICAgICBtYXhQaG90b3NQZXJQbGFjZT86IG51bWJlcjtcbiAgICAgIHBob3RvTWF4V2lkdGg/OiBudW1iZXI7XG4gICAgfSA9IHt9XG4gICk6IFByb21pc2U8QXJyYXk8eyBwbGFjZTogUGxhY2VEZXRhaWxzUmVzdWx0OyBwaG90b3M6IFBob3RvUmVzdWx0W10gfT4+IHtcbiAgICBjb25zdCB7XG4gICAgICBsb2NhdGlvbixcbiAgICAgIHJhZGl1cyA9IDUwMDAwLFxuICAgICAgbWF4UGxhY2VzID0gNSxcbiAgICAgIG1heFBob3Rvc1BlclBsYWNlID0gMyxcbiAgICAgIHBob3RvTWF4V2lkdGggPSAxNjAwXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBwbGFjZXMgPSBhd2FpdCB0aGlzLnNlYXJjaFBsYWNlcyhxdWVyeSwgeyBsb2NhdGlvbiwgcmFkaXVzLCBsaW1pdDogbWF4UGxhY2VzIH0pO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICAgIGZvciAoY29uc3QgcGxhY2Ugb2YgcGxhY2VzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkZXRhaWxzID0gYXdhaXQgdGhpcy5nZXRQbGFjZURldGFpbHMocGxhY2UucGxhY2VJZCk7XG4gICAgICAgIGxldCBwaG90b3M6IFBob3RvUmVzdWx0W10gPSBbXTtcblxuICAgICAgICBpZiAoZGV0YWlscy5waG90b3MgJiYgZGV0YWlscy5waG90b3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IHBob3RvUmVmcyA9IGRldGFpbHMucGhvdG9zXG4gICAgICAgICAgICAubWFwKHBob3RvID0+IHBob3RvLnBob3RvUmVmZXJlbmNlKVxuICAgICAgICAgICAgLnNsaWNlKDAsIG1heFBob3Rvc1BlclBsYWNlKTtcbiAgICAgICAgICBwaG90b3MgPSBhd2FpdCB0aGlzLmdldFBsYWNlUGhvdG9zKHBob3RvUmVmcywgcGhvdG9NYXhXaWR0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXN1bHRzLnB1c2goeyBwbGFjZTogZGV0YWlscywgcGhvdG9zIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gcHJvY2VzcyBwbGFjZSAke3BsYWNlLnBsYWNlSWR9OmAsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWdvb2dsZS1wbGFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2dvb2dsZS9zcmMvbGliL3BsYWNlcy9ueC1kZGQtZ29vZ2xlLXBsYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;AACY,MAAC,oBAAoB,GAAG,IAAI,cAAc,CAAC,sBAAsB;AACtE,SAAS,yBAAyB,CAAC,UAAU,EAAE;AACtD,IAAI,OAAO;AACX,QAAQ;AACR,YAAY,OAAO,EAAE,oBAAoB;AACzC,YAAY;AACZ;AACA,KAAK;AACL;;ACTA;AACA;AACA;AACO,SAAS,0BAA0B,CAAC,MAAM,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,MAAM,CAAC,QAAQ;AAChC,QAAQ,IAAI,EAAE,MAAM,CAAC,IAAI;AACzB,QAAQ,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;AAClD,QAAQ,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACjC,QAAQ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,MAAM;AAC/C,YAAY,cAAc,EAAE,KAAK,CAAC,eAAe;AACjD,YAAY,MAAM,EAAE,KAAK,CAAC,MAAM;AAChC,YAAY,KAAK,EAAE,KAAK,CAAC,KAAK;AAC9B,YAAY,gBAAgB,EAAE,KAAK,CAAC;AACpC,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,EAAE,MAAM,CAAC,MAAM;AAC7B,QAAQ,gBAAgB,EAAE,MAAM,CAAC;AACjC,KAAK;AACL;AACA;AACA;AACA;AACO,SAAS,2BAA2B,CAAC,MAAM,EAAE;AACpD,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,MAAM,CAAC,QAAQ;AAChC,QAAQ,IAAI,EAAE,MAAM,CAAC,IAAI;AACzB,QAAQ,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;AAClD,QAAQ,oBAAoB,EAAE,MAAM,CAAC,sBAAsB;AAC3D,QAAQ,OAAO,EAAE,MAAM,CAAC,OAAO;AAC/B,QAAQ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,MAAM;AAC/C,YAAY,cAAc,EAAE,KAAK,CAAC,eAAe;AACjD,YAAY,MAAM,EAAE,KAAK,CAAC,MAAM;AAChC,YAAY,KAAK,EAAE,KAAK,CAAC,KAAK;AAC9B,YAAY,gBAAgB,EAAE,KAAK,CAAC;AACpC,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,EAAE,MAAM,CAAC,MAAM;AAC7B,QAAQ,gBAAgB,EAAE,MAAM,CAAC,kBAAkB;AACnD,QAAQ,QAAQ,EAAE,MAAM,CAAC;AACzB,KAAK;AACL;;ACtCA;AACA;AACA;AACO,eAAe,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,GAAG,IAAI,EAAE;AACnF,IAAI,MAAM,GAAG,GAAG,kDAAkD;AAClE,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,cAAc,EAAE,cAAc;AACtC,QAAQ,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;AACrC,QAAQ,GAAG,EAAE;AACb,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACvD,QAAQ,MAAM;AACd,QAAQ,YAAY,EAAE;AACtB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,QAAQ;AACnB;AACA;AACA;AACA;AACO,eAAe,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE;AAChG,IAAI,MAAM,OAAO,GAAG,EAAE;AACtB,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;AAChD,IAAI,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC9E,YAAY,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5D,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACrE;AACA,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,OAAO;AAClB;;AC3BO,MAAM,mBAAmB,CAAC;AACjC,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7B,IAAI,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACzC;AACA,IAAI,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE;AAC5C,QAAQ,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO;AAChE,QAAQ,IAAI;AACZ,YAAY,MAAM,GAAG,GAAG,4DAA4D;AACpF,YAAY,MAAM,MAAM,GAAG;AAC3B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AACvC,gBAAgB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI;AAClD,aAAa;AACb,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,CAAC,QAAQ,GAAG,QAAQ;AAC1C,gBAAgB,MAAM,CAAC,MAAM,GAAG,MAAM;AACtC,YAAY;AACZ,YAAY,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAChF,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE;AAC1C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACvE,YAAY;AACZ,YAAY,OAAO,QAAQ,CAAC;AAC5B,iBAAiB,KAAK,CAAC,CAAC,EAAE,KAAK;AAC/B,iBAAiB,GAAG,CAAC,CAAC,MAAM,KAAK,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACpE,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC;AAC3D,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;AAC3C,QAAQ,IAAI;AACZ,YAAY,MAAM,GAAG,GAAG,yDAAyD;AACjF,YAAY,MAAM,aAAa,GAAG;AAClC,gBAAgB,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,wBAAwB;AACjF,gBAAgB,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AACrE,aAAa;AACb,YAAY,MAAM,MAAM,GAAG;AAC3B,gBAAgB,QAAQ,EAAE,OAAO;AACjC,gBAAgB,MAAM,EAAE,CAAC,MAAM,IAAI,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC;AAC3D,gBAAgB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AACvC,gBAAgB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI;AAClD,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAChF,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE;AAC1C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,YAAY;AACZ,YAAY,OAAO,2BAA2B,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC/D,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC;AAChE,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,MAAM,aAAa,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI,EAAE;AACzD,QAAQ,IAAI;AACZ,YAAY,OAAO,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC;AAC/F,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC;AAC9D,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,MAAM,cAAc,CAAC,eAAe,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE;AACtE,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,CAAC;AAC9F,IAAI;AACJ;AACA,IAAI,MAAM,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE;AACtD,QAAQ,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,OAAO;AAChH,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC7F,QAAQ,MAAM,OAAO,GAAG,EAAE;AAC1B,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI;AAChB,gBAAgB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;AACzE,gBAAgB,IAAI,MAAM,GAAG,EAAE;AAC/B,gBAAgB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,oBAAoB,MAAM,SAAS,GAAG,OAAO,CAAC;AAC9C,yBAAyB,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc;AAC1D,yBAAyB,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;AACpD,oBAAoB,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC;AAChF,gBAAgB;AAChB,gBAAgB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACxD,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AAChF,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC9K,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACrJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACzGb;AACA;AACA;;;;"}
1
+ {"version":3,"file":"nx-ddd-google-places.mjs","sources":["../../../../../packages/@nx-ddd/google/src/lib/places/places.config.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places-transformers.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places-photo.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places.service.ts","../../../../../packages/@nx-ddd/google/src/lib/places/nx-ddd-google-places.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport { GooglePlacesConfig } from './places.interface';\n\nexport const GOOGLE_PLACES_CONFIG = new InjectionToken<GooglePlacesConfig>('GOOGLE_PLACES_CONFIG');\n\nexport function provideGooglePlacesConfig(useFactory: () => GooglePlacesConfig): Provider[] {\n return [\n {\n provide: GOOGLE_PLACES_CONFIG,\n useFactory\n }\n ];\n}","/**\n * Transform functions for Google Places API responses\n */\nimport { PlaceSearchResult, PlaceDetailsResult } from './places.interface';\n\n/**\n * Transform API response from snake_case to camelCase for search results\n */\nexport function transformPlaceSearchResult(result: any): PlaceSearchResult {\n return {\n placeId: result.place_id,\n name: result.name,\n formattedAddress: result.formatted_address,\n geometry: result.geometry,\n photos: result.photos?.map((photo: any) => ({\n photoReference: photo.photo_reference,\n height: photo.height,\n width: photo.width,\n htmlAttributions: photo.html_attributions\n })),\n rating: result.rating,\n userRatingsTotal: result.user_ratings_total\n };\n}\n\n/**\n * Transform API response from snake_case to camelCase for place details\n */\nexport function transformPlaceDetailsResult(result: any): PlaceDetailsResult {\n return {\n placeId: result.place_id,\n name: result.name,\n formattedAddress: result.formatted_address,\n formattedPhoneNumber: result.formatted_phone_number,\n website: result.website,\n photos: result.photos?.map((photo: any) => ({\n photoReference: photo.photo_reference,\n height: photo.height,\n width: photo.width,\n htmlAttributions: photo.html_attributions\n })),\n rating: result.rating,\n userRatingsTotal: result.user_ratings_total,\n geometry: result.geometry\n };\n}\n","/**\n * Photo-related functions for Google Places API\n */\nimport { HttpClient } from '@angular/common/http';\nimport { lastValueFrom } from 'rxjs';\n\nexport interface PhotoResult {\n photoReference: string;\n blob: Blob;\n}\n\n/**\n * Get a single place photo as Blob using Place Photos API\n */\nexport async function getPlacePhoto(\n http: HttpClient,\n apiKey: string,\n photoReference: string,\n maxWidth = 1600\n): Promise<Blob> {\n const url = 'https://maps.googleapis.com/maps/api/place/photo';\n const params = {\n photoreference: photoReference,\n maxwidth: maxWidth.toString(),\n key: apiKey\n };\n\n const response = await lastValueFrom(\n http.get(url, {\n params,\n responseType: 'blob'\n })\n );\n\n return response;\n}\n\n/**\n * Get multiple place photos as Blobs\n */\nexport async function getPlacePhotos(\n http: HttpClient,\n apiKey: string,\n photoReferences: string[],\n maxWidth = 1600,\n limit = 5\n): Promise<PhotoResult[]> {\n const results: PhotoResult[] = [];\n const refs = photoReferences.slice(0, limit);\n\n for (const photoRef of refs) {\n try {\n const blob = await getPlacePhoto(http, apiKey, photoRef, maxWidth);\n results.push({ photoReference: photoRef, blob });\n } catch (error) {\n console.warn(`Failed to fetch photo ${photoRef}:`, error);\n // Continue with other photos even if one fails\n }\n }\n\n return results;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { lastValueFrom } from 'rxjs';\nimport { GOOGLE_PLACES_CONFIG } from './places.config';\nimport { PlaceSearchResult, PlaceDetailsResult } from './places.interface';\nimport { transformPlaceSearchResult, transformPlaceDetailsResult } from './places-transformers';\nimport { getPlacePhoto, getPlacePhotos, PhotoResult } from './places-photo';\n\n@Injectable({ providedIn: 'root' })\nexport class GooglePlacesService {\n private readonly http = inject(HttpClient);\n private readonly config = inject(GOOGLE_PLACES_CONFIG);\n\n /** Search for places using Google Places Text Search API */\n async searchPlaces(query: string, options: {\n location?: string;\n radius?: number;\n limit?: number;\n } = {}): Promise<PlaceSearchResult[]> {\n const { location, radius = 50000, limit = 20 } = options;\n\n try {\n const url = 'https://maps.googleapis.com/maps/api/place/textsearch/json';\n const params: any = {\n query: query,\n key: this.config.apiKey,\n language: this.config.language || 'ja'\n };\n\n if (location) {\n params.location = location;\n params.radius = radius;\n }\n\n const response = await lastValueFrom(\n this.http.get<any>(url, { params })\n );\n\n if (response.status !== 'OK') {\n throw new Error(`Places API error: ${response.status}`);\n }\n\n return response.results\n .slice(0, limit)\n .map((result: any) => transformPlaceSearchResult(result));\n } catch (error) {\n console.error('Error searching places:', error);\n throw error;\n }\n }\n\n /** Get detailed information about a place using Place Details API */\n async getPlaceDetails(placeId: string, fields?: string[]): Promise<PlaceDetailsResult> {\n try {\n const url = 'https://maps.googleapis.com/maps/api/place/details/json';\n const defaultFields = [\n 'place_id', 'name', 'formatted_address', 'formatted_phone_number',\n 'website', 'photos', 'rating', 'user_ratings_total', 'geometry'\n ];\n\n const params = {\n place_id: placeId,\n fields: (fields || defaultFields).join(','),\n key: this.config.apiKey,\n language: this.config.language || 'ja'\n };\n\n const response = await lastValueFrom(\n this.http.get<any>(url, { params })\n );\n\n if (response.status !== 'OK') {\n throw new Error(`Place Details API error: ${response.status}`);\n }\n\n return transformPlaceDetailsResult(response.result);\n } catch (error) {\n console.error('Error getting place details:', error);\n throw error;\n }\n }\n\n /** Get place photo as Blob using Place Photos API */\n async getPlacePhoto(photoReference: string, maxWidth = 1600): Promise<Blob> {\n try {\n return await getPlacePhoto(this.http, this.config.apiKey, photoReference, maxWidth);\n } catch (error) {\n console.error('Error getting place photo:', error);\n throw error;\n }\n }\n\n /** Get multiple place photos as Blobs */\n async getPlacePhotos(\n photoReferences: string[],\n maxWidth = 1600,\n limit = 5\n ): Promise<PhotoResult[]> {\n return getPlacePhotos(this.http, this.config.apiKey, photoReferences, maxWidth, limit);\n }\n\n /** Search places and get their photos in one operation */\n async searchPlacesWithPhotos(\n query: string,\n options: {\n location?: string;\n radius?: number;\n maxPlaces?: number;\n maxPhotosPerPlace?: number;\n photoMaxWidth?: number;\n } = {}\n ): Promise<Array<{ place: PlaceDetailsResult; photos: PhotoResult[] }>> {\n const {\n location,\n radius = 50000,\n maxPlaces = 5,\n maxPhotosPerPlace = 3,\n photoMaxWidth = 1600\n } = options;\n\n const places = await this.searchPlaces(query, { location, radius, limit: maxPlaces });\n const results = [];\n\n for (const place of places) {\n try {\n const details = await this.getPlaceDetails(place.placeId);\n let photos: PhotoResult[] = [];\n\n if (details.photos && details.photos.length > 0) {\n const photoRefs = details.photos\n .map(photo => photo.photoReference)\n .slice(0, maxPhotosPerPlace);\n photos = await this.getPlacePhotos(photoRefs, photoMaxWidth);\n }\n\n results.push({ place: details, photos });\n } catch (error) {\n console.warn(`Failed to process place ${place.placeId}:`, error);\n }\n }\n\n return results;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -22,10 +22,10 @@ class GoogleSearchService {
22
22
  }
23
23
  }));
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleSearchService, providedIn: 'root' });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleSearchService, providedIn: 'root' });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleSearchService, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleSearchService, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{ providedIn: 'root' }]
31
31
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-google-search.mjs","sources":["../tmp-esm2022/search/search.service.js","../tmp-esm2022/search/nx-ddd-google-search.js"],"sourcesContent":["import { HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable, InjectionToken } from \"@angular/core\";\nimport { lastValueFrom } from \"rxjs\";\nimport * as i0 from \"@angular/core\";\nexport const GOOGLE_SEARCH_CONFIG = new InjectionToken('GOOGLE_SEARCH_CONFIG');\nexport function provideGoogleSearchConfig(useFactory) {\n return { provide: GOOGLE_SEARCH_CONFIG, useFactory };\n}\nexport class GoogleSearchService {\n http = inject(HttpClient);\n config = inject(GOOGLE_SEARCH_CONFIG);\n async searchByGoogle(q) {\n const url = `https://www.googleapis.com/customsearch/v1`;\n return lastValueFrom(this.http.get(url, {\n params: {\n key: this.config.apiKey,\n cx: this.config.engineId,\n searchType: 'image',\n q: q,\n num: 3\n }\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleSearchService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleSearchService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2dvb2dsZS9zcmMvbGliL3NlYXJjaC9zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBT3JDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUFxQixzQkFBc0IsQ0FBQyxDQUFDO0FBQ25HLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxVQUFvQztJQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ3ZELENBQUM7QUFHRCxNQUFNLE9BQU8sbUJBQW1CO0lBQ3JCLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRS9DLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBUztRQUM1QixNQUFNLEdBQUcsR0FBRyw0Q0FBNEMsQ0FBQztRQUN6RCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDdEMsTUFBTSxFQUFFO2dCQUNOLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07Z0JBQ3ZCLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQ3hCLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixDQUFDLEVBQUUsQ0FBQztnQkFDSixHQUFHLEVBQUUsQ0FBQzthQUNQO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO3VHQWZVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRFAsTUFBTTs7MkZBQ2xCLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20gfSBmcm9tIFwicnhqc1wiO1xuXG5pbnRlcmZhY2UgR29vZ2xlU2VhcmNoQ29uZmlnIHtcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIGVuZ2luZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBHT09HTEVfU0VBUkNIX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHb29nbGVTZWFyY2hDb25maWc+KCdHT09HTEVfU0VBUkNIX0NPTkZJRycpO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVHb29nbGVTZWFyY2hDb25maWcodXNlRmFjdG9yeTogKCkgPT4gR29vZ2xlU2VhcmNoQ29uZmlnKSB7XG4gIHJldHVybiB7IHByb3ZpZGU6IEdPT0dMRV9TRUFSQ0hfQ09ORklHLCB1c2VGYWN0b3J5IH07XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEdvb2dsZVNlYXJjaFNlcnZpY2Uge1xuICByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICByZWFkb25seSBjb25maWcgPSBpbmplY3QoR09PR0xFX1NFQVJDSF9DT05GSUcpO1xuXG4gIGFzeW5jIHNlYXJjaEJ5R29vZ2xlKHE6IHN0cmluZykge1xuICAgIGNvbnN0IHVybCA9IGBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9jdXN0b21zZWFyY2gvdjFgO1xuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQodXJsLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAga2V5OiB0aGlzLmNvbmZpZy5hcGlLZXksXG4gICAgICAgIGN4OiB0aGlzLmNvbmZpZy5lbmdpbmVJZCxcbiAgICAgICAgc2VhcmNoVHlwZTogJ2ltYWdlJyxcbiAgICAgICAgcTogcSxcbiAgICAgICAgbnVtOiAzXG4gICAgICB9XG4gICAgfSkpO1xuICB9XG59Il19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWdvb2dsZS1zZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2dvb2dsZS9zcmMvbGliL3NlYXJjaC9ueC1kZGQtZ29vZ2xlLXNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;AAIY,MAAC,oBAAoB,GAAG,IAAI,cAAc,CAAC,sBAAsB;AACtE,SAAS,yBAAyB,CAAC,UAAU,EAAE;AACtD,IAAI,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE;AACxD;AACO,MAAM,mBAAmB,CAAC;AACjC,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7B,IAAI,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACzC,IAAI,MAAM,cAAc,CAAC,CAAC,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG,CAAC,0CAA0C,CAAC;AAChE,QAAQ,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AAChD,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AACvC,gBAAgB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AACxC,gBAAgB,UAAU,EAAE,OAAO;AACnC,gBAAgB,CAAC,EAAE,CAAC;AACpB,gBAAgB,GAAG,EAAE;AACrB;AACA,SAAS,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC9K,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACrJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;AC7Bb;AACA;AACA;;;;"}
1
+ {"version":3,"file":"nx-ddd-google-search.mjs","sources":["../../../../../packages/@nx-ddd/google/src/lib/search/search.service.ts","../../../../../packages/@nx-ddd/google/src/lib/search/nx-ddd-google-search.ts"],"sourcesContent":["import { HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable, InjectionToken } from \"@angular/core\";\nimport { lastValueFrom } from \"rxjs\";\n\ninterface GoogleSearchConfig {\n apiKey: string;\n engineId: string;\n}\n\nexport const GOOGLE_SEARCH_CONFIG = new InjectionToken<GoogleSearchConfig>('GOOGLE_SEARCH_CONFIG');\nexport function provideGoogleSearchConfig(useFactory: () => GoogleSearchConfig) {\n return { provide: GOOGLE_SEARCH_CONFIG, useFactory };\n}\n\n@Injectable({providedIn: 'root'})\nexport class GoogleSearchService {\n readonly http = inject(HttpClient);\n readonly config = inject(GOOGLE_SEARCH_CONFIG);\n\n async searchByGoogle(q: string) {\n const url = `https://www.googleapis.com/customsearch/v1`;\n return lastValueFrom(this.http.get(url, {\n params: {\n key: this.config.apiKey,\n cx: this.config.engineId,\n searchType: 'image',\n q: q,\n num: 3\n }\n }));\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,oBAAoB,GAAG,IAAI,cAAc,CAAqB,sBAAsB;AAC3F,SAAU,yBAAyB,CAAC,UAAoC,EAAA;AAC5E,IAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE;AACtD;MAGa,mBAAmB,CAAA;AACrB,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,IAAA,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAE9C,MAAM,cAAc,CAAC,CAAS,EAAA;QAC5B,MAAM,GAAG,GAAG,CAAA,0CAAA,CAA4C;QACxD,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACtC,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AACvB,gBAAA,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AACxB,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,CAAC,EAAE,CAAC;AACJ,gBAAA,GAAG,EAAE;AACN;AACF,SAAA,CAAC,CAAC;IACL;uGAfW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADP,MAAM,EAAA,CAAA;;2FAClB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;ACdhC;;AAEG;;;;"}
@@ -5,10 +5,10 @@ import { google } from 'googleapis';
5
5
  const GOOGLE_CONFIG = new InjectionToken('GOOGLE_CONFIG');
6
6
 
7
7
  class GoogleService {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleService, providedIn: 'root' });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleService, providedIn: 'root' });
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleService, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleService, decorators: [{
12
12
  type: Injectable,
13
13
  args: [{ providedIn: 'root' }]
14
14
  }] });
@@ -113,10 +113,10 @@ class GoogleServiceImpl extends GoogleService {
113
113
  const res = await client.refreshAccessToken();
114
114
  return res.credentials.access_token;
115
115
  }
116
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleServiceImpl, deps: [{ token: GOOGLE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
117
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleServiceImpl });
116
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleServiceImpl, deps: [{ token: GOOGLE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
117
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleServiceImpl });
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleServiceImpl, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleServiceImpl, decorators: [{
120
120
  type: Injectable
121
121
  }], ctorParameters: () => [{ type: undefined, decorators: [{
122
122
  type: Inject,
@@ -133,11 +133,11 @@ class GoogleModule {
133
133
  ],
134
134
  };
135
135
  }
136
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
137
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.5", ngImport: i0, type: GoogleModule });
138
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleModule });
136
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
137
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.6", ngImport: i0, type: GoogleModule });
138
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleModule });
139
139
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GoogleModule, decorators: [{
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GoogleModule, decorators: [{
141
141
  type: NgModule,
142
142
  args: [{}]
143
143
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-google.mjs","sources":["../tmp-esm2022/google.config.js","../tmp-esm2022/google.service.js","../tmp-esm2022/google.service.impl.js","../tmp-esm2022/google.module.js","../tmp-esm2022/nx-ddd-google.js"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nexport const GOOGLE_CONFIG = new InjectionToken('GOOGLE_CONFIG');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZ29vZ2xlL3NyYy9saWIvZ29vZ2xlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBZS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBZSxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVDb25maWcge1xuICBjcmVkZW50aWFsOiB7XG4gICAgd2ViOiB7XG4gICAgICBjbGllbnRfaWQ6IHN0cmluZztcbiAgICAgIHByb2plY3RfaWQ6IHN0cmluZztcbiAgICAgIGF1dGhfdXJpOiBzdHJpbmc7XG4gICAgICB0b2tlbl91cmk6IHN0cmluZztcbiAgICAgIGF1dGhfcHJvdmlkZXJfeDUwOV9jZXJ0X3VybDogc3RyaW5nO1xuICAgICAgY2xpZW50X3NlY3JldDogc3RyaW5nO1xuICAgICAgcmVkaXJlY3RfdXJpcz86IHN0cmluZ1tdO1xuICAgIH07XG4gIH1cbn1cbmV4cG9ydCBjb25zdCBHT09HTEVfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEdvb2dsZUNvbmZpZz4oJ0dPT0dMRV9DT05GSUcnKTtcbiJdfQ==","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class GoogleService {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2dvb2dsZS9zcmMvbGliL2dvb2dsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBZ0IsYUFBYTt1R0FBYixhQUFhOzJHQUFiLGFBQWEsY0FEVCxNQUFNOzsyRkFDVixhQUFhO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBkcml2ZV92MywgY2FsZW5kYXJfdjMsIGdvb2dsZSB9IGZyb20gXCJnb29nbGVhcGlzXCI7XG5pbXBvcnQgdHlwZSB7IEdheGlvc1Byb21pc2UgfSBmcm9tIFwiZ29vZ2xlYXBpcy9idWlsZC9zcmMvYXBpcy9hYnVzaXZlZXhwZXJpZW5jZXJlcG9ydFwiO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdvb2dsZVNlcnZpY2Uge1xuICBhYnN0cmFjdCBjbGllbnQ6ICh0eXBlb2YgZ29vZ2xlKVsnYXV0aCddWydPQXV0aDInXVsncHJvdG90eXBlJ107XG4gIGFic3RyYWN0IGdldENsaWVudChjcmVkZW50aWFsczogYW55KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBnZXRDbGllbnRCeUFjY2Vzc1Rva2VuKGNyZWQ6IHthY2Nlc3NUb2tlbjogc3RyaW5nLCByZWZyZXNoVG9rZW46IHN0cmluZ30pOiAodHlwZW9mIGdvb2dsZSlbJ2F1dGgnXVsnT0F1dGgyJ11bJ3Byb3RvdHlwZSddO1xuICBhYnN0cmFjdCBnZW5lcmF0ZUF1dGhVcmwoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBnZXRUb2tlbihjb2RlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGdldEZpbGVNZXRhZGF0YShjbGllbnQ6IGFueSwgaWQ6IHN0cmluZyk6IEdheGlvc1Byb21pc2U8ZHJpdmVfdjMuU2NoZW1hJEZpbGU+O1xuICBhYnN0cmFjdCBnZXRGaWxlQnVmZmVyKGNsaWVudDogYW55LCBpZDogc3RyaW5nKTogR2F4aW9zUHJvbWlzZTxkcml2ZV92My5TY2hlbWEkRmlsZT47XG4gIGFic3RyYWN0IGxpc3RDYWxlbmRhcnMoY2xpZW50OiB0eXBlb2YgdGhpcy5jbGllbnQpOiBQcm9taXNlPGNhbGVuZGFyX3YzLlNjaGVtYSRDYWxlbmRhckxpc3RFbnRyeVtdPjtcbiAgYWJzdHJhY3QgbGlzdEV2ZW50cyhjbGllbnQ6IHR5cGVvZiB0aGlzLmNsaWVudCwgcHJvcHM6IHtjYWxlbmRhcklkOiBzdHJpbmd9KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBjcmVhdGVFdmVudChjbGllbnQ6IHR5cGVvZiB0aGlzLmNsaWVudCwgZXZlbnQ6IHsgc3RhcnQ6IHN0cmluZywgZW5kOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcgfSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZGVsZXRlRXZlbnQoY2xpZW50OiB0eXBlb2YgdGhpcy5jbGllbnQsIGV2ZW50OiB7IGV2ZW50SWQ6IHN0cmluZyB9KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBnZXRDYWxlbmRhcihjbGllbnQ6IHR5cGVvZiB0aGlzLmNsaWVudCk6IGNhbGVuZGFyX3YzLkNhbGVuZGFyO1xuICBhYnN0cmFjdCByZWZyZXNoQWNjZXNzVG9rZW4oY2xpZW50OiB0eXBlb2YgdGhpcy5jbGllbnQsIHJlZnJlc2hUb2tlbjogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xufSJdfQ==","import { Inject, Injectable } from \"@angular/core\";\nimport { GoogleService } from \"./google.service\";\nimport { google } from \"googleapis\";\nimport { GOOGLE_CONFIG } from \"./google.config\";\nimport * as i0 from \"@angular/core\";\nexport class GoogleServiceImpl extends GoogleService {\n config;\n constructor(config) {\n super();\n this.config = config;\n }\n get client() {\n return new google.auth.OAuth2({\n clientId: this.config.credential.web.client_id,\n clientSecret: this.config.credential.web.client_secret,\n redirectUri: this.config.credential.web.redirect_uris?.[0],\n });\n }\n async getClient(credentials) {\n const client = new google.auth.OAuth2({\n clientId: this.config.credential.web.client_id,\n clientSecret: this.config.credential.web.client_secret,\n });\n client.setCredentials(credentials);\n return client;\n }\n getClientByAccessToken(cred) {\n const client = new google.auth.OAuth2();\n client.setCredentials({\n access_token: cred.accessToken,\n refresh_token: cred.refreshToken,\n });\n return client;\n }\n generateAuthUrl(client = this.client) {\n const url = client.generateAuthUrl({\n access_type: 'offline',\n scope: [\n 'https://www.googleapis.com/auth/calendar.readonly',\n 'https://www.googleapis.com/auth/calendar.events',\n ],\n redirect_uris: this.config.credential.web.redirect_uris,\n });\n return url;\n }\n getToken(code) {\n return this.client.getToken(code);\n }\n async getFileMetadata(client, id) {\n const drive = google.drive({ version: 'v3', auth: client });\n return drive.files.get({ fileId: id });\n }\n async getFileBuffer(client, id) {\n const drive = google.drive({ version: 'v3', auth: client });\n return drive.files.get({ fileId: id, alt: 'media' }, { responseType: 'arraybuffer' });\n }\n async listCalendars(client) {\n const calendar = google.calendar({ version: 'v3', auth: client });\n const res = await calendar.calendarList.list({});\n return res.data.items;\n }\n /** @deprecated */\n async listEvents(client, { calendarId = 'primary' } = {}) {\n // const calendar = google.calendar({version: 'v3', auth: client});\n // const res = await calendar.events.list({\n // calendarId,\n // timeMin: (new Date()).toISOString(),\n // maxResults: 100,\n // singleEvents: true,\n // orderBy: 'startTime',\n // });\n // return res.data.items;\n }\n async deleteEvent(client, event) {\n const calendar = google.calendar({ version: 'v3', auth: client });\n await calendar.events.delete({\n calendarId: 'primary',\n eventId: event.eventId,\n });\n }\n getCalendar(client) {\n return google.calendar({ version: 'v3', auth: client });\n }\n async createEvent(client, event) {\n const calendar = google.calendar({ version: 'v3', auth: client });\n await calendar.events.insert({\n calendarId: 'primary',\n requestBody: {\n start: {\n dateTime: event.start,\n timeZone: 'Asia/Tokyo',\n },\n end: {\n dateTime: event.end,\n timeZone: 'Asia/Tokyo',\n },\n summary: event.title,\n description: event.description,\n }\n });\n }\n async refreshAccessToken(client) {\n const res = await client.refreshAccessToken();\n return res.credentials.access_token;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleServiceImpl, deps: [{ token: GOOGLE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleServiceImpl });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [GOOGLE_CONFIG]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLnNlcnZpY2UuaW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZ29vZ2xlL3NyYy9saWIvZ29vZ2xlLnNlcnZpY2UuaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUF5QixNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGFBQWE7SUFFakI7SUFEakMsWUFDaUMsTUFBb0I7UUFFbkQsS0FBSyxFQUFFLENBQUM7UUFGdUIsV0FBTSxHQUFOLE1BQU0sQ0FBYztJQUdyRCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUztZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWE7WUFDdEQsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDM0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBZ0I7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVM7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OzBCQUdOLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBHb29nbGVTZXJ2aWNlIH0gZnJvbSBcIi4vZ29vZ2xlLnNlcnZpY2VcIjtcbmltcG9ydCB7IGNhbGVuZGFyX3YzLCBkcml2ZV92MywgZ29vZ2xlIH0gZnJvbSBcImdvb2dsZWFwaXNcIjtcbmltcG9ydCB7IEdPT0dMRV9DT05GSUcsIEdvb2dsZUNvbmZpZyB9IGZyb20gXCIuL2dvb2dsZS5jb25maWdcIjtcbmltcG9ydCB7IEdheGlvc1Byb21pc2UgfSBmcm9tIFwiZ29vZ2xlYXBpcy9idWlsZC9zcmMvYXBpcy9hYnVzaXZlZXhwZXJpZW5jZXJlcG9ydFwiO1xuaW1wb3J0IHsgT0F1dGgyQ2xpZW50IH0gZnJvbSBcImdvb2dsZS1hdXRoLWxpYnJhcnlcIjtcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVTZXJ2aWNlSW1wbCBleHRlbmRzIEdvb2dsZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEdPT0dMRV9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBHb29nbGVDb25maWcsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgY2xpZW50KCk6IE9BdXRoMkNsaWVudCB7XG4gICAgcmV0dXJuIG5ldyBnb29nbGUuYXV0aC5PQXV0aDIoe1xuICAgICAgY2xpZW50SWQ6IHRoaXMuY29uZmlnLmNyZWRlbnRpYWwud2ViLmNsaWVudF9pZCxcbiAgICAgIGNsaWVudFNlY3JldDogdGhpcy5jb25maWcuY3JlZGVudGlhbC53ZWIuY2xpZW50X3NlY3JldCxcbiAgICAgIHJlZGlyZWN0VXJpOiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsLndlYi5yZWRpcmVjdF91cmlzPy5bMF0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRDbGllbnQoY3JlZGVudGlhbHM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IGdvb2dsZS5hdXRoLk9BdXRoMih7XG4gICAgICBjbGllbnRJZDogdGhpcy5jb25maWcuY3JlZGVudGlhbC53ZWIuY2xpZW50X2lkLFxuICAgICAgY2xpZW50U2VjcmV0OiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsLndlYi5jbGllbnRfc2VjcmV0LFxuICAgIH0pO1xuICAgIGNsaWVudC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFscyk7XG4gICAgcmV0dXJuIGNsaWVudDtcbiAgfVxuXG4gIGdldENsaWVudEJ5QWNjZXNzVG9rZW4oY3JlZDoge2FjY2Vzc1Rva2VuOiBzdHJpbmcsIHJlZnJlc2hUb2tlbjogc3RyaW5nfSk6IGFueSB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IGdvb2dsZS5hdXRoLk9BdXRoMigpO1xuICAgIGNsaWVudC5zZXRDcmVkZW50aWFscyh7XG4gICAgICBhY2Nlc3NfdG9rZW46IGNyZWQuYWNjZXNzVG9rZW4sXG4gICAgICByZWZyZXNoX3Rva2VuOiBjcmVkLnJlZnJlc2hUb2tlbixcbiAgICB9KTtcbiAgICByZXR1cm4gY2xpZW50O1xuICB9XG5cbiAgZ2VuZXJhdGVBdXRoVXJsKGNsaWVudDogT0F1dGgyQ2xpZW50ID0gdGhpcy5jbGllbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IGNsaWVudC5nZW5lcmF0ZUF1dGhVcmwoe1xuICAgICAgYWNjZXNzX3R5cGU6ICdvZmZsaW5lJyxcbiAgICAgIHNjb3BlOiBbXG4gICAgICAgICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2NhbGVuZGFyLnJlYWRvbmx5JyxcbiAgICAgICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvY2FsZW5kYXIuZXZlbnRzJyxcbiAgICAgIF0sXG4gICAgICByZWRpcmVjdF91cmlzOiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsLndlYi5yZWRpcmVjdF91cmlzLFxuICAgIH0pO1xuICAgIHJldHVybiB1cmxcbiAgfVxuXG4gIGdldFRva2VuKGNvZGU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldFRva2VuKGNvZGUpO1xuICB9XG5cbiAgYXN5bmMgZ2V0RmlsZU1ldGFkYXRhKGNsaWVudDogYW55LCBpZDogc3RyaW5nKTogR2F4aW9zUHJvbWlzZTxkcml2ZV92My5TY2hlbWEkRmlsZT4ge1xuICAgIGNvbnN0IGRyaXZlID0gZ29vZ2xlLmRyaXZlKHt2ZXJzaW9uOiAndjMnLCBhdXRoOiBjbGllbnR9KTtcbiAgICByZXR1cm4gZHJpdmUuZmlsZXMuZ2V0KHtmaWxlSWQ6IGlkfSk7XG4gIH1cblxuICBhc3luYyBnZXRGaWxlQnVmZmVyKGNsaWVudDogYW55LCBpZDogc3RyaW5nKTogR2F4aW9zUHJvbWlzZTxkcml2ZV92My5TY2hlbWEkRmlsZT4ge1xuICAgIGNvbnN0IGRyaXZlID0gZ29vZ2xlLmRyaXZlKHt2ZXJzaW9uOiAndjMnLCBhdXRoOiBjbGllbnR9KTtcbiAgICByZXR1cm4gZHJpdmUuZmlsZXMuZ2V0KHtmaWxlSWQ6IGlkLCBhbHQ6ICdtZWRpYSd9LCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RDYWxlbmRhcnMoY2xpZW50OiB0eXBlb2YgdGhpcy5jbGllbnQpOiBQcm9taXNlPGNhbGVuZGFyX3YzLlNjaGVtYSRDYWxlbmRhckxpc3RFbnRyeVtdPiB7XG4gICAgY29uc3QgY2FsZW5kYXIgPSBnb29nbGUuY2FsZW5kYXIoe3ZlcnNpb246ICd2MycsIGF1dGg6IGNsaWVudH0pO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNhbGVuZGFyLmNhbGVuZGFyTGlzdC5saXN0KHt9KTtcbiAgICByZXR1cm4gcmVzLmRhdGEuaXRlbXM7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgYXN5bmMgbGlzdEV2ZW50cyhjbGllbnQ6IHR5cGVvZiB0aGlzLmNsaWVudCwge2NhbGVuZGFySWQgPSAncHJpbWFyeSd9OiB7IGNhbGVuZGFySWQ/OiBzdHJpbmcgfSA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBjb25zdCBjYWxlbmRhciA9IGdvb2dsZS5jYWxlbmRhcih7dmVyc2lvbjogJ3YzJywgYXV0aDogY2xpZW50fSk7XG4gICAgLy8gY29uc3QgcmVzID0gYXdhaXQgY2FsZW5kYXIuZXZlbnRzLmxpc3Qoe1xuICAgIC8vICAgY2FsZW5kYXJJZCxcbiAgICAvLyAgIHRpbWVNaW46IChuZXcgRGF0ZSgpKS50b0lTT1N0cmluZygpLFxuICAgIC8vICAgbWF4UmVzdWx0czogMTAwLFxuICAgIC8vICAgc2luZ2xlRXZlbnRzOiB0cnVlLFxuICAgIC8vICAgb3JkZXJCeTogJ3N0YXJ0VGltZScsXG4gICAgLy8gfSk7XG5cbiAgICAvLyByZXR1cm4gcmVzLmRhdGEuaXRlbXM7XG4gIH1cblxuICBhc3luYyBkZWxldGVFdmVudChjbGllbnQ6IHR5cGVvZiB0aGlzLmNsaWVudCwgZXZlbnQ6IHsgZXZlbnRJZDogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBjYWxlbmRhciA9IGdvb2dsZS5jYWxlbmRhcih7dmVyc2lvbjogJ3YzJywgYXV0aDogY2xpZW50fSk7XG4gICAgYXdhaXQgY2FsZW5kYXIuZXZlbnRzLmRlbGV0ZSh7XG4gICAgICBjYWxlbmRhcklkOiAncHJpbWFyeScsXG4gICAgICBldmVudElkOiBldmVudC5ldmVudElkLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2FsZW5kYXIoY2xpZW50OiB0eXBlb2YgdGhpcy5jbGllbnQpOiBjYWxlbmRhcl92My5DYWxlbmRhciB7XG4gICAgcmV0dXJuIGdvb2dsZS5jYWxlbmRhcih7dmVyc2lvbjogJ3YzJywgYXV0aDogY2xpZW50fSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVFdmVudChjbGllbnQ6IHR5cGVvZiB0aGlzLmNsaWVudCwgZXZlbnQ6IHsgc3RhcnQ6IHN0cmluZywgZW5kOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcgfSkge1xuICAgIGNvbnN0IGNhbGVuZGFyID0gZ29vZ2xlLmNhbGVuZGFyKHt2ZXJzaW9uOiAndjMnLCBhdXRoOiBjbGllbnR9KTtcbiAgICBhd2FpdCBjYWxlbmRhci5ldmVudHMuaW5zZXJ0KHtcbiAgICAgIGNhbGVuZGFySWQ6ICdwcmltYXJ5JyxcbiAgICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgZGF0ZVRpbWU6IGV2ZW50LnN0YXJ0LFxuICAgICAgICAgIHRpbWVab25lOiAnQXNpYS9Ub2t5bycsXG4gICAgICAgIH0sXG4gICAgICAgIGVuZDoge1xuICAgICAgICAgIGRhdGVUaW1lOiBldmVudC5lbmQsXG4gICAgICAgICAgdGltZVpvbmU6ICdBc2lhL1Rva3lvJyxcbiAgICAgICAgfSxcbiAgICAgICAgc3VtbWFyeTogZXZlbnQudGl0bGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBldmVudC5kZXNjcmlwdGlvbixcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hBY2Nlc3NUb2tlbihjbGllbnQ6IHR5cGVvZiB0aGlzLmNsaWVudCkge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5yZWZyZXNoQWNjZXNzVG9rZW4oKTtcbiAgICByZXR1cm4gcmVzLmNyZWRlbnRpYWxzLmFjY2Vzc190b2tlbjtcbiAgfVxufVxuIl19","import { NgModule } from '@angular/core';\nimport { GOOGLE_CONFIG } from './google.config';\nimport { GoogleService } from './google.service';\nimport { GoogleServiceImpl } from './google.service.impl';\nimport * as i0 from \"@angular/core\";\nexport class GoogleModule {\n static forRoot(config) {\n return {\n ngModule: GoogleModule,\n providers: [\n { provide: GOOGLE_CONFIG, useValue: config },\n { provide: GoogleService, useClass: GoogleServiceImpl },\n ],\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleModule });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleModule });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GoogleModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZ29vZ2xlL3NyYy9saWIvZ29vZ2xlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUcxRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQW9CO1FBQ2pDLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7Z0JBQzVDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7YUFDeEQ7U0FDRixDQUFDO0lBQ0osQ0FBQzt1R0FUVSxZQUFZO3dHQUFaLFlBQVk7d0dBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdPT0dMRV9DT05GSUcsIEdvb2dsZUNvbmZpZyB9IGZyb20gJy4vZ29vZ2xlLmNvbmZpZyc7XG5pbXBvcnQgeyBHb29nbGVTZXJ2aWNlIH0gZnJvbSAnLi9nb29nbGUuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVTZXJ2aWNlSW1wbCB9IGZyb20gJy4vZ29vZ2xlLnNlcnZpY2UuaW1wbCc7XG5cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBHb29nbGVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IEdvb2dsZUNvbmZpZykge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogR29vZ2xlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogR09PR0xFX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICB7IHByb3ZpZGU6IEdvb2dsZVNlcnZpY2UsIHVzZUNsYXNzOiBHb29nbGVTZXJ2aWNlSW1wbCB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWdvb2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZ29vZ2xlL3NyYy9saWIvbngtZGRkLWdvb2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nx-ddd-google.mjs","sources":["../../../../../packages/@nx-ddd/google/src/lib/google.config.ts","../../../../../packages/@nx-ddd/google/src/lib/google.service.ts","../../../../../packages/@nx-ddd/google/src/lib/google.service.impl.ts","../../../../../packages/@nx-ddd/google/src/lib/google.module.ts","../../../../../packages/@nx-ddd/google/src/lib/nx-ddd-google.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport interface GoogleConfig {\n credential: {\n web: {\n client_id: string;\n project_id: string;\n auth_uri: string;\n token_uri: string;\n auth_provider_x509_cert_url: string;\n client_secret: string;\n redirect_uris?: string[];\n };\n }\n}\nexport const GOOGLE_CONFIG = new InjectionToken<GoogleConfig>('GOOGLE_CONFIG');\n","import { Injectable } from \"@angular/core\";\nimport type { drive_v3, calendar_v3, google } from \"googleapis\";\nimport type { GaxiosPromise } from \"googleapis/build/src/apis/abusiveexperiencereport\";\n\n@Injectable({ providedIn: 'root' })\nexport abstract class GoogleService {\n abstract client: (typeof google)['auth']['OAuth2']['prototype'];\n abstract getClient(credentials: any): Promise<any>;\n abstract getClientByAccessToken(cred: {accessToken: string, refreshToken: string}): (typeof google)['auth']['OAuth2']['prototype'];\n abstract generateAuthUrl(): string;\n abstract getToken(code: string): Promise<any>;\n abstract getFileMetadata(client: any, id: string): GaxiosPromise<drive_v3.Schema$File>;\n abstract getFileBuffer(client: any, id: string): GaxiosPromise<drive_v3.Schema$File>;\n abstract listCalendars(client: typeof this.client): Promise<calendar_v3.Schema$CalendarListEntry[]>;\n abstract listEvents(client: typeof this.client, props: {calendarId: string}): Promise<any>;\n abstract createEvent(client: typeof this.client, event: { start: string, end: string, title: string, description: string }): Promise<any>;\n abstract deleteEvent(client: typeof this.client, event: { eventId: string }): Promise<any>;\n abstract getCalendar(client: typeof this.client): calendar_v3.Calendar;\n abstract refreshAccessToken(client: typeof this.client, refreshToken: string): Promise<any>;\n}","import { Inject, Injectable } from \"@angular/core\";\nimport { GoogleService } from \"./google.service\";\nimport { calendar_v3, drive_v3, google } from \"googleapis\";\nimport { GOOGLE_CONFIG, GoogleConfig } from \"./google.config\";\nimport { GaxiosPromise } from \"googleapis/build/src/apis/abusiveexperiencereport\";\nimport { OAuth2Client } from \"google-auth-library\";\nimport dayjs from 'dayjs';\n\n@Injectable()\nexport class GoogleServiceImpl extends GoogleService {\n constructor(\n @Inject(GOOGLE_CONFIG) private config: GoogleConfig,\n ) {\n super();\n }\n\n get client(): OAuth2Client {\n return new google.auth.OAuth2({\n clientId: this.config.credential.web.client_id,\n clientSecret: this.config.credential.web.client_secret,\n redirectUri: this.config.credential.web.redirect_uris?.[0],\n });\n }\n\n async getClient(credentials: any): Promise<any> {\n const client = new google.auth.OAuth2({\n clientId: this.config.credential.web.client_id,\n clientSecret: this.config.credential.web.client_secret,\n });\n client.setCredentials(credentials);\n return client;\n }\n\n getClientByAccessToken(cred: {accessToken: string, refreshToken: string}): any {\n const client = new google.auth.OAuth2();\n client.setCredentials({\n access_token: cred.accessToken,\n refresh_token: cred.refreshToken,\n });\n return client;\n }\n\n generateAuthUrl(client: OAuth2Client = this.client): string {\n const url = client.generateAuthUrl({\n access_type: 'offline',\n scope: [\n 'https://www.googleapis.com/auth/calendar.readonly',\n 'https://www.googleapis.com/auth/calendar.events',\n ],\n redirect_uris: this.config.credential.web.redirect_uris,\n });\n return url\n }\n\n getToken(code: string): Promise<any> {\n return this.client.getToken(code);\n }\n\n async getFileMetadata(client: any, id: string): GaxiosPromise<drive_v3.Schema$File> {\n const drive = google.drive({version: 'v3', auth: client});\n return drive.files.get({fileId: id});\n }\n\n async getFileBuffer(client: any, id: string): GaxiosPromise<drive_v3.Schema$File> {\n const drive = google.drive({version: 'v3', auth: client});\n return drive.files.get({fileId: id, alt: 'media'}, { responseType: 'arraybuffer' });\n }\n\n async listCalendars(client: typeof this.client): Promise<calendar_v3.Schema$CalendarListEntry[]> {\n const calendar = google.calendar({version: 'v3', auth: client});\n const res = await calendar.calendarList.list({});\n return res.data.items;\n }\n\n /** @deprecated */\n async listEvents(client: typeof this.client, {calendarId = 'primary'}: { calendarId?: string } = {}): Promise<any> {\n // const calendar = google.calendar({version: 'v3', auth: client});\n // const res = await calendar.events.list({\n // calendarId,\n // timeMin: (new Date()).toISOString(),\n // maxResults: 100,\n // singleEvents: true,\n // orderBy: 'startTime',\n // });\n\n // return res.data.items;\n }\n\n async deleteEvent(client: typeof this.client, event: { eventId: string }) {\n const calendar = google.calendar({version: 'v3', auth: client});\n await calendar.events.delete({\n calendarId: 'primary',\n eventId: event.eventId,\n });\n }\n\n getCalendar(client: typeof this.client): calendar_v3.Calendar {\n return google.calendar({version: 'v3', auth: client});\n }\n\n async createEvent(client: typeof this.client, event: { start: string, end: string, title: string, description: string }) {\n const calendar = google.calendar({version: 'v3', auth: client});\n await calendar.events.insert({\n calendarId: 'primary',\n requestBody: {\n start: {\n dateTime: event.start,\n timeZone: 'Asia/Tokyo',\n },\n end: {\n dateTime: event.end,\n timeZone: 'Asia/Tokyo',\n },\n summary: event.title,\n description: event.description,\n }\n });\n }\n\n async refreshAccessToken(client: typeof this.client) {\n const res = await client.refreshAccessToken();\n return res.credentials.access_token;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { GOOGLE_CONFIG, GoogleConfig } from './google.config';\nimport { GoogleService } from './google.service';\nimport { GoogleServiceImpl } from './google.service.impl';\n\n@NgModule({})\nexport class GoogleModule {\n static forRoot(config: GoogleConfig) {\n return {\n ngModule: GoogleModule,\n providers: [\n { provide: GOOGLE_CONFIG, useValue: config },\n { provide: GoogleService, useClass: GoogleServiceImpl },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,26 +1,26 @@
1
1
  {
2
2
  "name": "@nx-ddd/google",
3
- "version": "19.24.1",
3
+ "version": "19.26.0",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=17.0.0",
6
6
  "@angular/common": ">=17.0.0"
7
7
  },
8
8
  "module": "fesm2022/nx-ddd-google.mjs",
9
- "typings": "index.d.ts",
9
+ "typings": "types/nx-ddd-google.d.ts",
10
10
  "exports": {
11
11
  "./package.json": {
12
12
  "default": "./package.json"
13
13
  },
14
14
  ".": {
15
- "types": "./index.d.ts",
15
+ "types": "./types/nx-ddd-google.d.ts",
16
16
  "default": "./fesm2022/nx-ddd-google.mjs"
17
17
  },
18
18
  "./places": {
19
- "types": "./places/index.d.ts",
19
+ "types": "./types/nx-ddd-google-places.d.ts",
20
20
  "default": "./fesm2022/nx-ddd-google-places.mjs"
21
21
  },
22
22
  "./search": {
23
- "types": "./search/index.d.ts",
23
+ "types": "./types/nx-ddd-google-search.d.ts",
24
24
  "default": "./fesm2022/nx-ddd-google-search.mjs"
25
25
  }
26
26
  },
@@ -95,4 +95,4 @@ declare class GooglePlacesService {
95
95
 
96
96
  export { GOOGLE_PLACES_CONFIG, GooglePlacesService, provideGooglePlacesConfig };
97
97
  export type { GooglePlacesConfig, PlaceDetailsResponse, PlaceDetailsResult, PlacePhoto, PlaceSearchResponse, PlaceSearchResult };
98
- //# sourceMappingURL=index.d.ts.map
98
+ //# sourceMappingURL=nx-ddd-google-places.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-ddd-google-places.d.ts","sources":["../../../../../packages/@nx-ddd/google/src/lib/places/places.interface.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places.config.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places-photo.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places.service.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":";;;;;;AAGC;;;;;AAMC;AACE;;;;;AAKF;;;AAGD;;;;;;AAOA;;;;;;;AAQC;;;AAGA;AACE;;;;;AAKH;;;;;AAMA;;;;AAKA;;AClDD;AAEA;;ACLA;;AAEG;;;;;AAOF;;ACDD;AAEE;AACA;;AAGM;;;;AAIA;;AAkCA;;;;AAyCA;;AASA;;;;;;;;;AAS+D;;;AAgCtE;;;"}
@@ -20,4 +20,4 @@ declare class GoogleSearchService {
20
20
  }
21
21
 
22
22
  export { GOOGLE_SEARCH_CONFIG, GoogleSearchService, provideGoogleSearchConfig };
23
- //# sourceMappingURL=index.d.ts.map
23
+ //# sourceMappingURL=nx-ddd-google-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-ddd-google-search.d.ts","sources":["../../../../../packages/@nx-ddd/google/src/lib/search/search.service.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;AAGC;AAED;AACA;;;AAEC;AAED;;;;;;AAiBC;;"}
@@ -102,4 +102,4 @@ declare class GoogleModule {
102
102
 
103
103
  export { GOOGLE_CONFIG, GoogleModule, GoogleService };
104
104
  export type { GoogleConfig };
105
- //# sourceMappingURL=index.d.ts.map
105
+ //# sourceMappingURL=nx-ddd-google.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-ddd-google.d.ts","sources":["../../../../../packages/@nx-ddd/google/src/lib/google.config.ts","../../../../../packages/@nx-ddd/google/src/lib/google.service.ts","../../../../../packages/@nx-ddd/google/src/lib/google.service.impl.ts","../../../../../packages/@nx-ddd/google/src/lib/google.module.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":";;;;;;;AAGE;AACE;;;;;;;AAOE;;;AAGL;AACD;;ACXA;AAEE;;AAEA;;;AAAiF;;;AAGjF;AACA;AACA;;;;;;;;;;;;;AAIA;AACA;;;AACD;;ACXD;AAG2B;AAAQ;;;;;;AAsBuC;AASxE;;AAgBM;AAKA;AAKA;;;;;;;AAoBkE;;;;;;;AAY+C;AAmBjH;;;AAIP;;ACtHD;AAEE;;;;;;;;;;;;;;;AASD;;;"}
package/index.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../../../packages/@nx-ddd/google/src/lib/google.config.ts","../../../../packages/@nx-ddd/google/src/lib/google.service.ts","../../../../packages/@nx-ddd/google/src/lib/google.service.impl.ts","../../../../packages/@nx-ddd/google/src/lib/google.module.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":";;;;;;;AAGE;AACE;;;;;;;AAOE;;;AAGL;AACD;;ACXA;AAEE;;AAEA;;;AAAiF;;;AAGjF;AACA;AACA;;;;;;;;;;;;;AAIA;AACA;;;AACD;;ACXD;AAG2B;AAAQ;;;;;;AAsBuC;AASxE;;AAgBM;AAKA;AAKA;;;;;;;AAoBkE;;;;;;;AAY+C;AAmBjH;;;AAIP;;ACtHD;AAEE;;;;;;;;;;;;;;;AASD;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../../../../packages/@nx-ddd/google/src/lib/places/places.interface.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places.config.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places-photo.ts","../../../../../packages/@nx-ddd/google/src/lib/places/places.service.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":";;;;;;AAGC;;;;;AAMC;AACE;;;;;AAKF;;;AAGD;;;;;;AAOA;;;;;;;AAQC;;;AAGA;AACE;;;;;AAKH;;;;;AAMA;;;;AAKA;;AClDD;AAEA;;ACLA;;AAEG;;;;;AAOF;;ACDD;AAEE;AACA;;AAGM;;;;AAIA;;AAkCA;;;;AAyCA;;AASA;;;;;;;;;AAS+D;;;AAgCtE;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../../../../packages/@nx-ddd/google/src/lib/search/search.service.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;AAGC;AAED;AACA;;;AAEC;AAED;;;;;;AAiBC;;"}