@admin-layout/tailwind-travel-pro 12.0.16-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/LICENSE +21 -0
  2. package/lib/components/CardList.d.ts +61 -0
  3. package/lib/components/CardList.d.ts.map +1 -0
  4. package/lib/components/CardList.js +43 -0
  5. package/lib/components/CardList.js.map +1 -0
  6. package/lib/components/CategoriesTypeList.d.ts +29 -0
  7. package/lib/components/CategoriesTypeList.d.ts.map +1 -0
  8. package/lib/components/CategoriesTypeList.js +139 -0
  9. package/lib/components/CategoriesTypeList.js.map +1 -0
  10. package/lib/components/LazyLoadingGoogleMarker.d.ts +83 -0
  11. package/lib/components/LazyLoadingGoogleMarker.d.ts.map +1 -0
  12. package/lib/components/LazyLoadingGoogleMarker.js +107 -0
  13. package/lib/components/LazyLoadingGoogleMarker.js.map +1 -0
  14. package/lib/components/Pagination.d.ts +6 -0
  15. package/lib/components/Pagination.d.ts.map +1 -0
  16. package/lib/components/Pagination.js +56 -0
  17. package/lib/components/Pagination.js.map +1 -0
  18. package/lib/components/ParamSearchResultContainer.d.ts +99 -0
  19. package/lib/components/ParamSearchResultContainer.d.ts.map +1 -0
  20. package/lib/components/ParamSearchResultContainer.js +120 -0
  21. package/lib/components/ParamSearchResultContainer.js.map +1 -0
  22. package/lib/components/PropertyCard.d.ts +24 -0
  23. package/lib/components/PropertyCard.d.ts.map +1 -0
  24. package/lib/components/PropertyCard.js +423 -0
  25. package/lib/components/PropertyCard.js.map +1 -0
  26. package/lib/components/PropertyCardOnMap.d.ts +10 -0
  27. package/lib/components/PropertyCardOnMap.d.ts.map +1 -0
  28. package/lib/components/PropertyCardOnMap.js +108 -0
  29. package/lib/components/PropertyCardOnMap.js.map +1 -0
  30. package/lib/components/VehicleCard/PricePopover.d.ts +8 -0
  31. package/lib/components/VehicleCard/PricePopover.d.ts.map +1 -0
  32. package/lib/components/VehicleCard/PricePopover.js +98 -0
  33. package/lib/components/VehicleCard/PricePopover.js.map +1 -0
  34. package/lib/components/VehicleCard/VehicleBadge.d.ts +7 -0
  35. package/lib/components/VehicleCard/VehicleBadge.d.ts.map +1 -0
  36. package/lib/components/VehicleCard/VehicleFeature.d.ts +9 -0
  37. package/lib/components/VehicleCard/VehicleFeature.d.ts.map +1 -0
  38. package/lib/components/VehicleCard/VehicleFeature.js +22 -0
  39. package/lib/components/VehicleCard/VehicleFeature.js.map +1 -0
  40. package/lib/components/VehicleCard/types.d.ts +59 -0
  41. package/lib/components/VehicleCard/types.d.ts.map +1 -0
  42. package/lib/components/VehicleCard.d.ts +15 -0
  43. package/lib/components/VehicleCard.d.ts.map +1 -0
  44. package/lib/components/VehicleCard.js +166 -0
  45. package/lib/components/VehicleCard.js.map +1 -0
  46. package/lib/components/VehicleCardList.d.ts +14 -0
  47. package/lib/components/VehicleCardList.d.ts.map +1 -0
  48. package/lib/components/VehicleCardList.js +38 -0
  49. package/lib/components/VehicleCardList.js.map +1 -0
  50. package/lib/components/VehicleParamSearchResultContainer.d.ts +90 -0
  51. package/lib/components/VehicleParamSearchResultContainer.d.ts.map +1 -0
  52. package/lib/components/icons/LocationIcon.d.ts +7 -0
  53. package/lib/components/icons/LocationIcon.d.ts.map +1 -0
  54. package/lib/components/icons/LocationIcon.js +18 -0
  55. package/lib/components/icons/LocationIcon.js.map +1 -0
  56. package/lib/components/icons/index.d.ts +2 -0
  57. package/lib/components/icons/index.d.ts.map +1 -0
  58. package/lib/components/index.d.ts +10 -0
  59. package/lib/components/index.d.ts.map +1 -0
  60. package/lib/config/analytics-config.d.ts +59 -0
  61. package/lib/config/analytics-config.d.ts.map +1 -0
  62. package/lib/config/constants.d.ts +7 -0
  63. package/lib/config/constants.d.ts.map +1 -0
  64. package/lib/config/constants.js +6 -0
  65. package/lib/config/constants.js.map +1 -0
  66. package/lib/config/env-config.d.ts +19 -0
  67. package/lib/config/env-config.d.ts.map +1 -0
  68. package/lib/config/env-config.js +70 -0
  69. package/lib/config/env-config.js.map +1 -0
  70. package/lib/config/index.d.ts +3 -0
  71. package/lib/config/index.d.ts.map +1 -0
  72. package/lib/hooks/index.d.ts +2 -0
  73. package/lib/hooks/index.d.ts.map +1 -0
  74. package/lib/hooks/use-get-current-lat-long.d.ts +18 -0
  75. package/lib/hooks/use-get-current-lat-long.d.ts.map +1 -0
  76. package/lib/hooks/use-get-current-lat-long.js +29 -0
  77. package/lib/hooks/use-get-current-lat-long.js.map +1 -0
  78. package/lib/hooks/useWindowSize.d.ts +5 -0
  79. package/lib/hooks/useWindowSize.d.ts.map +1 -0
  80. package/lib/hooks/useWindowSize.js +20 -0
  81. package/lib/hooks/useWindowSize.js.map +1 -0
  82. package/lib/index.d.ts +4 -0
  83. package/lib/index.d.ts.map +1 -0
  84. package/lib/index.js +1 -0
  85. package/lib/index.js.map +1 -0
  86. package/lib/interfaces/travel.d.ts +6 -0
  87. package/lib/interfaces/travel.d.ts.map +1 -0
  88. package/lib/interfaces/travel.js +6 -0
  89. package/lib/interfaces/travel.js.map +1 -0
  90. package/lib/middlewares/airbnbDatasourcesMiddleware.d.ts +6 -0
  91. package/lib/middlewares/airbnbDatasourcesMiddleware.d.ts.map +1 -0
  92. package/lib/middlewares/airbnbDatasourcesMiddleware.js +121 -0
  93. package/lib/middlewares/airbnbDatasourcesMiddleware.js.map +1 -0
  94. package/lib/middlewares/bookingCarRentalMiddleware.d.ts +6 -0
  95. package/lib/middlewares/bookingCarRentalMiddleware.d.ts.map +1 -0
  96. package/lib/middlewares/bookingCarRentalMiddleware.js +109 -0
  97. package/lib/middlewares/bookingCarRentalMiddleware.js.map +1 -0
  98. package/lib/middlewares/bookingDatasourcesMiddleware.d.ts +7 -0
  99. package/lib/middlewares/bookingDatasourcesMiddleware.d.ts.map +1 -0
  100. package/lib/middlewares/bookingDatasourcesMiddleware.js +137 -0
  101. package/lib/middlewares/bookingDatasourcesMiddleware.js.map +1 -0
  102. package/lib/middlewares/datasourcesMiddleware.d.ts +6 -0
  103. package/lib/middlewares/datasourcesMiddleware.d.ts.map +1 -0
  104. package/lib/middlewares/datasourcesMiddleware.js +29 -0
  105. package/lib/middlewares/datasourcesMiddleware.js.map +1 -0
  106. package/lib/middlewares/index.d.ts +6 -0
  107. package/lib/middlewares/index.d.ts.map +1 -0
  108. package/lib/middlewares/pricelineDatasourcesMiddleware.d.ts +7 -0
  109. package/lib/middlewares/pricelineDatasourcesMiddleware.d.ts.map +1 -0
  110. package/lib/middlewares/pricelineDatasourcesMiddleware.js +95 -0
  111. package/lib/middlewares/pricelineDatasourcesMiddleware.js.map +1 -0
  112. package/lib/routes.json +1 -0
  113. package/package.json +49 -0
@@ -0,0 +1,137 @@
1
+ import {config}from'../config/env-config.js';const middleware = async ({
2
+ context,
3
+ request,
4
+ params
5
+ }, dataLoader, next) => {
6
+ const {
7
+ apolloClient,
8
+ logger
9
+ } = context;
10
+ let bookingQuery;
11
+ try {
12
+ // Create a promise that will fetch the Booking.com data
13
+ const url = new URL(request.url);
14
+ const searchParams = url.searchParams;
15
+ const from = searchParams.get('from') ? new Date(searchParams.get('from')) : null;
16
+ const to = searchParams.get('to') ? new Date(searchParams.get('to')) : null;
17
+ const adults = parseInt(searchParams.get('adults') || '0', 10);
18
+ const children = parseInt(searchParams.get('children') || '0', 10);
19
+ const coordinates = searchParams.get('coordinates') ? JSON.parse(searchParams.get('coordinates')) : {};
20
+ const page = parseInt(searchParams.get('page') || '1', 10);
21
+ const infants = parseInt(searchParams.get('infants') || '0', 10);
22
+ const maxPrice = parseInt(searchParams.get('priceSliderValue') || '0', 10);
23
+ const latitude = coordinates.lat || '';
24
+ const longitude = coordinates.lng || '';
25
+ const radiusParamValue = parseInt(searchParams.get('distanceSliderValue') || '0', 10);
26
+ const zoom = parseInt(searchParams.get('zoom') || '12', 10);
27
+ // Calculate the radius based on the zoom level
28
+ // Assuming zoom level 12 is the closest view and 1 is the farthest
29
+ const calculateRadius = zoomLevel => {
30
+ const maxZoom = 12;
31
+ const minZoom = 1;
32
+ const minRadius = 10; // Minimum radius when fully zoomed in
33
+ const maxRadius = 360; // Maximum radius when fully zoomed out
34
+ // Linear interpolation between minRadius and maxRadius based on zoom level
35
+ const radius = minRadius + (maxZoom - zoomLevel) / (maxZoom - minZoom) * (maxRadius - minRadius);
36
+ return Math.round(Math.max(minRadius, Math.min(maxRadius, radius))); // Ensure radius is within bounds
37
+ };
38
+ const radius = calculateRadius(zoom);
39
+ // Parse viewport coordinates
40
+ let viewport = {};
41
+ try {
42
+ viewport = searchParams.get('viewport') ? JSON.parse(searchParams.get('viewport')) : null;
43
+ } catch (e) {
44
+ logger.warn('Failed to parse viewport parameter');
45
+ }
46
+ bookingQuery = new Promise(async (resolve, reject) => {
47
+ try {
48
+ const sampleParams = {
49
+ checkIn: from || '',
50
+ checkOut: to || '',
51
+ guest: adults + children || 1
52
+ };
53
+ const {
54
+ checkIn,
55
+ checkOut,
56
+ guest
57
+ } = sampleParams;
58
+ const rapidApiKey = config.BOOKING_COM_API_KEY;
59
+ const response = await fetch('https://booking-com15.p.rapidapi.com/api/v1/hotels/searchHotelsByCoordinates?' + new URLSearchParams({
60
+ latitude: latitude.toString(),
61
+ longitude: longitude.toString(),
62
+ arrival_date: from ? from.toISOString().split('T')[0] : '',
63
+ departure_date: to ? to.toISOString().split('T')[0] : '',
64
+ adults: guest.toString(),
65
+ page_number: page.toString(),
66
+ languagecode: 'en-us',
67
+ radius: radiusParamValue > 0 ? radiusParamValue.toString() : radius.toString(),
68
+ ...(maxPrice > 0 ? {
69
+ price_max: maxPrice.toString()
70
+ } : {})
71
+ }), {
72
+ headers: {
73
+ 'x-rapidapi-host': 'booking-com15.p.rapidapi.com',
74
+ 'x-rapidapi-key': rapidApiKey
75
+ }
76
+ });
77
+ const responseData = await response.json();
78
+ // Check if responseData.data is not present and responseData.message exists
79
+ if (!responseData.data && responseData.message) {
80
+ logger.error('Booking.com API error:', JSON.stringify(responseData.message));
81
+ // Instead of throwing, return empty results
82
+ const emptyResponse = {
83
+ data: {
84
+ count: 0,
85
+ result: []
86
+ },
87
+ pagination: {
88
+ currentPage: page,
89
+ totalPages: 0,
90
+ totalCount: 0
91
+ },
92
+ metadata: {
93
+ viewport: viewport,
94
+ filters: {
95
+ adults,
96
+ children,
97
+ infants
98
+ }
99
+ }
100
+ };
101
+ resolve(emptyResponse);
102
+ return;
103
+ }
104
+ const restructuredData = {
105
+ ...responseData,
106
+ pagination: {
107
+ currentPage: page,
108
+ totalPages: Math.ceil(responseData.data.count / config.BOOKING_COM_DEFAULT_PAGE_SIZE),
109
+ // Use the calculated totalPages
110
+ totalCount: responseData.data.count
111
+ },
112
+ metadata: {
113
+ viewport: viewport,
114
+ filters: {
115
+ adults,
116
+ children,
117
+ infants
118
+ }
119
+ },
120
+ data: responseData.data.result || [] // Assuming the Booking.com API returns results in 'result' field
121
+ };
122
+ resolve(restructuredData);
123
+ } catch (error) {
124
+ reject(error);
125
+ }
126
+ });
127
+ logger.info('Booking.com properties data loaded and cached');
128
+ // Ensure componentData is initialized
129
+ dataLoader.componentData = dataLoader.componentData || {};
130
+ // Store as an async function that returns the promise
131
+ dataLoader.componentData.bookingResults = async () => await bookingQuery;
132
+ await next();
133
+ } catch (error) {
134
+ logger.error(error, 'Failed to load Booking.com properties data:');
135
+ throw error;
136
+ }
137
+ };export{middleware};//# sourceMappingURL=bookingDatasourcesMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookingDatasourcesMiddleware.js","sources":["../../src/middlewares/bookingDatasourcesMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const middleware: ({ context, request, params }: {
2
+ context: any;
3
+ request: any;
4
+ params: any;
5
+ }, dataLoader: any, next: any) => Promise<void>;
6
+ //# sourceMappingURL=datasourcesMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasourcesMiddleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/datasourcesMiddleware.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAU;;;;CAA4B,EAAE,eAAU,EAAE,SAAI,kBAsB9E,CAAC"}
@@ -0,0 +1,29 @@
1
+ const middleware = async ({
2
+ context,
3
+ request,
4
+ params
5
+ }, dataLoader, next) => {
6
+ const {
7
+ apolloClient,
8
+ logger
9
+ } = context;
10
+ let query1;
11
+ try {
12
+ query1 = new Promise(resolve => {
13
+ setTimeout(() => {
14
+ resolve({
15
+ data: 'Airbnb data'
16
+ });
17
+ }, 1000);
18
+ });
19
+ logger.info('Accommodation data loaded and cached');
20
+ // Ensure componentData is initialized
21
+ dataLoader.componentData = dataLoader.componentData || {};
22
+ // Await the promise to ensure it's resolved before assigning
23
+ dataLoader.componentData.airbnb = async () => await query1;
24
+ await next(); // Proceed to next middleware or route handler
25
+ } catch (error) {
26
+ logger.error(error, 'Failed to load accommodation data:');
27
+ // Handle errors appropriately
28
+ }
29
+ };export{middleware};//# sourceMappingURL=datasourcesMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasourcesMiddleware.js","sources":["../../src/middlewares/datasourcesMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAa,MAAA,UAAU,GAAG,OAAO;AAC7B,EAAA,OAAA;AACA,EAAA;AACA,EAAA;AACI,CAAA,EAAA,UAAA,MAAa,KAAA;;AAEL,IAAA,YAAA;;AAER,GAAA,GAAA,OAAG;AAEH,EAAA,IAAA,MAAA;;UAGU,GAAA,IAAA,eAAc,IAAG;gBACkC,CAAA,MAAA;QAC7D,OAAU,CAAA;AAEV,UAAA,IAAM,EAAI;SACb,CAAA;OAAQ,EAAA,IAAA,CAAA;AACL,KAAA,CAAA;UAC8B,CAAA,IAAA,CAAA,sCAAA,CAAA;;AAEtC,IAAE,UAAA,CAAA,aAAA,GAAA,UAAA,CAAA,aAAA,IAAA,EAAA;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ export { middleware as airbnbDatasourcesMiddleware } from './airbnbDatasourcesMiddleware';
2
+ export { middleware as bookingCarRentalDatasourcesMiddleware } from './bookingCarRentalMiddleware';
3
+ export { middleware as bookingDatasourcesMiddleware } from './bookingDatasourcesMiddleware';
4
+ export { middleware as datasourcesMiddleware } from './datasourcesMiddleware';
5
+ export { middleware as pricelineDatasourcesMiddleware } from './pricelineDatasourcesMiddleware';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAE,UAAU,IAAI,qCAAqC,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAE,UAAU,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,UAAU,IAAI,8BAA8B,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,7 @@
1
+ declare const middleware: ({ context, request, params }: {
2
+ context: any;
3
+ request: any;
4
+ params: any;
5
+ }, dataLoader: any, next: any) => Promise<void>;
6
+ export { middleware };
7
+ //# sourceMappingURL=pricelineDatasourcesMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricelineDatasourcesMiddleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/pricelineDatasourcesMiddleware.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,UAAU,GAAU;;;;CAA4B,EAAE,eAAU,EAAE,SAAI,kBAkGvE,CAAC;AACF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,95 @@
1
+ import {config}from'../config/env-config.js';import axios from'axios';const middleware = async ({
2
+ context,
3
+ request,
4
+ params
5
+ }, dataLoader, next) => {
6
+ const {
7
+ logger
8
+ } = context;
9
+ let pricelineQuery;
10
+ try {
11
+ const url = new URL(request.url);
12
+ const searchParams = url.searchParams;
13
+ const coordinates = searchParams.get('coordinates') ? JSON.parse(searchParams.get('coordinates')) : {};
14
+ const latitude = coordinates?.lat || JSON.parse(config.DEFAULT_COORDINATES).lat;
15
+ const longitude = coordinates?.lng || JSON.parse(config.DEFAULT_COORDINATES).lng;
16
+ const page = parseInt(searchParams.get('page') || '1', 10);
17
+ const limit = 100;
18
+ const offset = page * limit;
19
+ const from = searchParams.get('from') ? new Date(searchParams.get('from')) : null;
20
+ const to = searchParams.get('to') ? new Date(searchParams.get('to')) : null;
21
+ pricelineQuery = new Promise(async resolve => {
22
+ try {
23
+ const options = {
24
+ method: 'GET',
25
+ url: 'https://priceline-com-provider.p.rapidapi.com/v2/hotels/expressResults',
26
+ params: {
27
+ limit: offset,
28
+ check_in: from ? from.toISOString().split('T')[0] : '',
29
+ check_out: to ? to.toISOString().split('T')[0] : '',
30
+ latitude: latitude,
31
+ longitude: longitude,
32
+ output_version: '3'
33
+ },
34
+ headers: {
35
+ 'x-rapidapi-key': config.PRICELINE_API_KEY,
36
+ 'x-rapidapi-host': 'priceline-com-provider.p.rapidapi.com',
37
+ Accept: 'application/json'
38
+ }
39
+ };
40
+ const response = await axios.request(options);
41
+ // Handle API error response
42
+ if (!response.data || response.data['getHotelExpress.Results'].error) {
43
+ logger.error('Priceline API error:', response.data?.['getHotelExpress.Results']?.error || 'Unknown error');
44
+ resolve({
45
+ pagination: {
46
+ currentPage: page,
47
+ totalCount: 0,
48
+ totalPages: 0
49
+ },
50
+ data: []
51
+ });
52
+ return;
53
+ }
54
+ const restructuredData = {
55
+ ...response.data,
56
+ pagination: {
57
+ currentPage: page,
58
+ totalCount: response.data['getHotelExpress.Results'].results.results_data.rate_count,
59
+ totalPages: Math.ceil(response.data['getHotelExpress.Results'].results.results_data.rate_count / limit)
60
+ },
61
+ data: response.data['getHotelExpress.Results'].results?.hotel_data || []
62
+ };
63
+ resolve(restructuredData);
64
+ } catch (error) {
65
+ // Handle any other errors (network, parsing, etc.)
66
+ logger.error('Error in Priceline API request:', error);
67
+ resolve({
68
+ pagination: {
69
+ currentPage: page,
70
+ totalCount: 0,
71
+ totalPages: 0
72
+ },
73
+ data: []
74
+ });
75
+ }
76
+ });
77
+ logger.info('Priceline nearby hotels data loaded and cached');
78
+ dataLoader.componentData = dataLoader.componentData || {};
79
+ dataLoader.componentData.pricelineResults = async () => await pricelineQuery;
80
+ await next();
81
+ } catch (error) {
82
+ // Handle setup errors
83
+ logger.error('Failed to load Priceline nearby hotels data:', error);
84
+ dataLoader.componentData = dataLoader.componentData || {};
85
+ dataLoader.componentData.pricelineResults = async () => ({
86
+ pagination: {
87
+ currentPage: 1,
88
+ totalCount: 0,
89
+ totalPages: 0
90
+ },
91
+ data: []
92
+ });
93
+ await next();
94
+ }
95
+ };export{middleware};//# sourceMappingURL=pricelineDatasourcesMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricelineDatasourcesMiddleware.js","sources":["../../src/middlewares/pricelineDatasourcesMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ []
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@admin-layout/tailwind-travel-pro",
3
+ "version": "12.0.16-alpha.7",
4
+ "description": "Sample core for higher packages to depend on",
5
+ "license": "ISC",
6
+ "author": "CDMBase LLC",
7
+ "type": "module",
8
+ "main": "lib/index.js",
9
+ "module": "lib/index.js",
10
+ "typings": "lib/index.d.ts",
11
+ "scripts": {
12
+ "build": "yarn build:clean && yarn build:lib",
13
+ "build:clean": "rimraf lib",
14
+ "build:lib": "rollup -c rollup.config.mjs",
15
+ "build:lib:watch": "yarn build:lib -- --watch",
16
+ "jest": "./node_modules/.bin/jest",
17
+ "prepublish": "yarn build",
18
+ "test": "cross-env ENV_FILE=../../config/test/test.env jest",
19
+ "test:debug": "npm test -- --runInBand",
20
+ "test:watch": "npm test -- --watch",
21
+ "watch": "yarn build:lib:watch"
22
+ },
23
+ "dependencies": {
24
+ "@admin-layout/tailwind-design-pro": "12.0.16-alpha.7",
25
+ "@admin-layout/tailwind-ui": "12.0.16-alpha.7",
26
+ "@cdmbase/react-splide": "^0.7.12",
27
+ "@react-google-maps/api": "^2.20.7",
28
+ "@vis.gl/react-google-maps": "^1.5.4",
29
+ "react-infinite-scroll-component": "^6.1.0",
30
+ "react-rating": "^2.0.5"
31
+ },
32
+ "devDependencies": {
33
+ "@adminide-stack/extension-api": "^12.0.4-alpha.35",
34
+ "@tailwindcss/aspect-ratio": "^0.4.2",
35
+ "@tailwindcss/forms": "^0.5.4",
36
+ "@tailwindcss/typography": "^0.5.9",
37
+ "tailwindcss": "^3.3.3"
38
+ },
39
+ "peerDependencies": {
40
+ "inversify": "*"
41
+ },
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "typescript": {
46
+ "definition": "lib/index.d.ts"
47
+ },
48
+ "gitHead": "dc4d290fb02b1a5c8512168953772c8aeeec585b"
49
+ }