@road-labs/map-sdk 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -0
- package/dist/App.d.ts +2 -0
- package/dist/Boot.d.ts +7 -0
- package/dist/Router.d.ts +1 -0
- package/dist/components/BackButton/BackButton.d.ts +3 -0
- package/dist/components/Button/Button.d.ts +8 -0
- package/dist/components/CdrPrice/CdrPrice.d.ts +7 -0
- package/dist/components/Checkbox/Checkbox.d.ts +9 -0
- package/dist/components/CloseButton/CloseButton.d.ts +3 -0
- package/dist/components/ConnectorTariff/ConnectorTariff.d.ts +9 -0
- package/dist/components/CustomMarker/CustomMarker.d.ts +10 -0
- package/dist/components/Debug/Debug.d.ts +3 -0
- package/dist/components/Icons/Icons.d.ts +3 -0
- package/dist/components/LocationPlaceholder/LocationPlaceholder.d.ts +1 -0
- package/dist/components/Map/Map.d.ts +1 -0
- package/dist/components/MapMarkers/MapMarkers.d.ts +6 -0
- package/dist/components/MultiSelect/MultiSelect.d.ts +19 -0
- package/dist/components/OverlayView/OverlayView.d.ts +32 -0
- package/dist/components/Price/Price.d.ts +8 -0
- package/dist/components/PriceComponents/PriceComponents.d.ts +7 -0
- package/dist/components/Range/Range.d.ts +5 -0
- package/dist/components/SearchInput/SearchInput.d.ts +3 -0
- package/dist/components/SelectField/SelectField.d.ts +20 -0
- package/dist/components/SidebarContainer/SidebarContainer.d.ts +3 -0
- package/dist/components/Stack/Stack.d.ts +21 -0
- package/dist/components/Stack/View.d.ts +4 -0
- package/dist/components/Stack/index.d.ts +2 -0
- package/dist/components/SwitchView/SwitchView.d.ts +4 -0
- package/dist/components/connectorIcons.d.ts +89 -0
- package/dist/contexts/Map.d.ts +39 -0
- package/dist/globals.d.ts +10 -0
- package/dist/hooks/useOnScreen.d.ts +2 -0
- package/dist/i18n.d.ts +62 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +7143 -0
- package/dist/index.mjs.map +1 -0
- package/dist/screens/Filters/index.d.ts +1 -0
- package/dist/screens/Locations/DynamicTariffs.d.ts +1 -0
- package/dist/screens/Locations/LocationDetailsV1.d.ts +9 -0
- package/dist/screens/Locations/LocationDetailsV2.d.ts +7 -0
- package/dist/screens/Locations/Locations.d.ts +5 -0
- package/dist/screens/Locations/TariffNote.d.ts +1 -0
- package/dist/screens/Locations/index.d.ts +1 -0
- package/dist/screens/Locations/v2/Tariff.d.ts +40 -0
- package/dist/types.d.ts +134 -0
- package/dist/utils/date.d.ts +9 -0
- package/dist/utils/date.test.d.ts +1 -0
- package/dist/utils/filters.d.ts +11 -0
- package/dist/utils/formatters.d.ts +20 -0
- package/dist/utils/loader.d.ts +2 -0
- package/dist/utils/location.d.ts +1 -0
- package/dist/utils/notes.d.ts +2 -0
- package/dist/utils/ocpi.d.ts +58 -0
- package/dist/utils/ocpi.test.d.ts +1 -0
- package/dist/utils/request.d.ts +25 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function FiltersScreen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function DynamicTariffs(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
currentLocation: any;
|
|
4
|
+
setView(view: string, args?: any): void;
|
|
5
|
+
evses: any[];
|
|
6
|
+
cdrAdditionalCharges: any[];
|
|
7
|
+
}
|
|
8
|
+
declare const LocationDetailsV1: React.FC<Props>;
|
|
9
|
+
export default LocationDetailsV1;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function TariffNote(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function LocationsScreeen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { CdrAdditionalCharge, Tariff } from '../../../types';
|
|
3
|
+
export declare function transformTariff(tariff: {
|
|
4
|
+
currency: string;
|
|
5
|
+
id: string;
|
|
6
|
+
externalTariffId: string;
|
|
7
|
+
origin: {
|
|
8
|
+
countryCode: string;
|
|
9
|
+
partyId: string;
|
|
10
|
+
connectionId: string;
|
|
11
|
+
networkId: string;
|
|
12
|
+
};
|
|
13
|
+
tariffElements: {
|
|
14
|
+
restrictions?: {
|
|
15
|
+
startTime: string;
|
|
16
|
+
endTime: string;
|
|
17
|
+
startDate: string;
|
|
18
|
+
endDate: string;
|
|
19
|
+
dayOfWeek: string[];
|
|
20
|
+
};
|
|
21
|
+
priceComponents: {
|
|
22
|
+
type: string;
|
|
23
|
+
price: string;
|
|
24
|
+
stepSize: number;
|
|
25
|
+
vatPercentage: number;
|
|
26
|
+
}[];
|
|
27
|
+
}[];
|
|
28
|
+
}): Tariff;
|
|
29
|
+
interface Props {
|
|
30
|
+
origin: {
|
|
31
|
+
connectionId: string;
|
|
32
|
+
networkId: string;
|
|
33
|
+
countryCode: string;
|
|
34
|
+
partyId: string;
|
|
35
|
+
};
|
|
36
|
+
tariff: any;
|
|
37
|
+
additionalCharges: CdrAdditionalCharge[];
|
|
38
|
+
}
|
|
39
|
+
declare const TariffV2: React.FC<Props>;
|
|
40
|
+
export default TariffV2;
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
type PublishingMode = "PUBLISHING_MODE_PUBLIC" | "PUBLISHING_MODE_PRIVATE";
|
|
2
|
+
export type FilterConfiguration = {
|
|
3
|
+
showOperatorOnly?: string;
|
|
4
|
+
preferredOperators: string[];
|
|
5
|
+
showNoAdditionalFeeFilter?: boolean;
|
|
6
|
+
showPublishingModeFilter?: boolean;
|
|
7
|
+
publishingMode?: PublishingMode[];
|
|
8
|
+
operators?: string[];
|
|
9
|
+
};
|
|
10
|
+
export type RoadMapOptions = {
|
|
11
|
+
gestureHandling: string;
|
|
12
|
+
enableSidebar?: boolean;
|
|
13
|
+
enablePlacesSearch?: boolean;
|
|
14
|
+
enableZoomControls?: boolean;
|
|
15
|
+
shadowRoot?: any;
|
|
16
|
+
height: number;
|
|
17
|
+
position?: Position;
|
|
18
|
+
useBrowserLocation?: boolean;
|
|
19
|
+
apiRoot?: string;
|
|
20
|
+
googleApiKey?: string;
|
|
21
|
+
locationId?: string;
|
|
22
|
+
locationBaseUrl?: string;
|
|
23
|
+
version?: "v1" | "v2";
|
|
24
|
+
authorization: string;
|
|
25
|
+
language?: string;
|
|
26
|
+
theming?: {
|
|
27
|
+
brandColor: string;
|
|
28
|
+
backgroundColor: string;
|
|
29
|
+
textColor: string;
|
|
30
|
+
borderColor: string;
|
|
31
|
+
fontFamily: string;
|
|
32
|
+
};
|
|
33
|
+
limitToLocationIds?: string[];
|
|
34
|
+
context: "cpo" | "msp";
|
|
35
|
+
onMarkerClicked?: ({ ids }: {
|
|
36
|
+
ids: any;
|
|
37
|
+
}) => {};
|
|
38
|
+
} & FilterConfiguration;
|
|
39
|
+
export type RemoteConfig = {
|
|
40
|
+
context: "cpo" | "msp";
|
|
41
|
+
operators?: string[];
|
|
42
|
+
publishingMode?: PublishingMode[];
|
|
43
|
+
googleMapsApiKey?: string;
|
|
44
|
+
ipLatitude?: number;
|
|
45
|
+
ipLongitude?: number;
|
|
46
|
+
} & FilterConfiguration;
|
|
47
|
+
export type Position = {
|
|
48
|
+
lat: Number;
|
|
49
|
+
lng: Number;
|
|
50
|
+
};
|
|
51
|
+
export type Theming = {
|
|
52
|
+
brandColor: string;
|
|
53
|
+
backgroundColor: string;
|
|
54
|
+
textColor: string;
|
|
55
|
+
borderColor: string;
|
|
56
|
+
fontFamily: string;
|
|
57
|
+
};
|
|
58
|
+
export type Status = {
|
|
59
|
+
type: "loading" | "error" | "success";
|
|
60
|
+
error?: {
|
|
61
|
+
message?: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export type GeohashItem = {
|
|
65
|
+
key: string;
|
|
66
|
+
ids: string[];
|
|
67
|
+
centroid: {
|
|
68
|
+
lat: number;
|
|
69
|
+
lon: number;
|
|
70
|
+
};
|
|
71
|
+
statuses: [
|
|
72
|
+
{
|
|
73
|
+
name: string;
|
|
74
|
+
count: number;
|
|
75
|
+
}
|
|
76
|
+
];
|
|
77
|
+
count: number;
|
|
78
|
+
};
|
|
79
|
+
export type PriceComponent = {
|
|
80
|
+
type: "FLAT" | "TIME" | "ENERGY" | "PARKING_TIME";
|
|
81
|
+
price: number;
|
|
82
|
+
vat?: number;
|
|
83
|
+
stepSize?: number;
|
|
84
|
+
};
|
|
85
|
+
export type DayOfWeek = "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY";
|
|
86
|
+
export type TariffRestrictions = {
|
|
87
|
+
startTime?: string;
|
|
88
|
+
endTime?: string;
|
|
89
|
+
startDate?: string;
|
|
90
|
+
endDate?: string;
|
|
91
|
+
minDuration?: number;
|
|
92
|
+
maxDuration?: number;
|
|
93
|
+
dayOfWeek?: DayOfWeek[];
|
|
94
|
+
};
|
|
95
|
+
export type PriceElement = {
|
|
96
|
+
type: "PRICE_COMPONENT" | "FEE";
|
|
97
|
+
price: number;
|
|
98
|
+
};
|
|
99
|
+
export type TariffElement = {
|
|
100
|
+
priceComponents: PriceComponent[];
|
|
101
|
+
restrictions?: TariffRestrictions;
|
|
102
|
+
};
|
|
103
|
+
export type Tariff = {
|
|
104
|
+
currency: string;
|
|
105
|
+
elements: TariffElement[];
|
|
106
|
+
};
|
|
107
|
+
export type CdrAdditionalCharge = {
|
|
108
|
+
id: string;
|
|
109
|
+
label: string;
|
|
110
|
+
price: number;
|
|
111
|
+
vat?: number;
|
|
112
|
+
type: "FLAT_FEE";
|
|
113
|
+
};
|
|
114
|
+
export type Location = {
|
|
115
|
+
evses: any[];
|
|
116
|
+
id: string;
|
|
117
|
+
name: string;
|
|
118
|
+
address: string;
|
|
119
|
+
city: string;
|
|
120
|
+
infraProviderId: string;
|
|
121
|
+
cdrAdditionalCharges: CdrAdditionalCharge[];
|
|
122
|
+
parkingType: "ON_STREET" | "PARKING_GARAGE" | "UNDERGROUND_GARAGE" | "PARKING_LOT" | "OTHER" | "UNKNOWN";
|
|
123
|
+
unreliableTariffs?: boolean;
|
|
124
|
+
customNote?: string;
|
|
125
|
+
subOperator?: {
|
|
126
|
+
name: string;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
declare global {
|
|
130
|
+
interface Window {
|
|
131
|
+
ROADIO_MAP_SDK: any;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function getTimezoneOffset(date: any, timeZone: any): string;
|
|
2
|
+
export declare function tzDate(timeZone: any, date?: Date): Date;
|
|
3
|
+
export declare function startOfDay(timeZone: any, date?: Date): Date;
|
|
4
|
+
export declare function endOfDate(timeZone: any, date?: Date): Date;
|
|
5
|
+
export declare function getNextDayOfWeek(date: Date, dayOfWeek: number, timeZone?: string): {
|
|
6
|
+
start: Date;
|
|
7
|
+
end: Date;
|
|
8
|
+
};
|
|
9
|
+
export declare function getDay(date: Date, timeZone?: string): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const defaultFilter: {
|
|
2
|
+
minPower: number;
|
|
3
|
+
operator: any[];
|
|
4
|
+
status: any[];
|
|
5
|
+
publishingMode: string;
|
|
6
|
+
connectorTypes: any[];
|
|
7
|
+
noAdditionalCharges: boolean;
|
|
8
|
+
powerType: any;
|
|
9
|
+
operatorOnly: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function hasFilters(filter: any): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MapContextType } from '../contexts/Map';
|
|
2
|
+
export declare function getSocketIcon(connector: any): any;
|
|
3
|
+
export declare function formatNumber(language: any, value: any): string;
|
|
4
|
+
export declare const connectorPowerTypes: {
|
|
5
|
+
CONNECTOR_POWER_TYPE_UNSPECIFIED: string;
|
|
6
|
+
CONNECTOR_POWER_TYPE_AC_1_PHASE: string;
|
|
7
|
+
CONNECTOR_POWER_TYPE_AC_2_PHASE: string;
|
|
8
|
+
CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT: string;
|
|
9
|
+
CONNECTOR_POWER_TYPE_AC_3_PHASE: string;
|
|
10
|
+
CONNECTOR_POWER_TYPE_DC: string;
|
|
11
|
+
CONNECTOR_POWER_TYPE_AC: string;
|
|
12
|
+
AC_3_PHASE: string;
|
|
13
|
+
AC_1_PHASE: string;
|
|
14
|
+
DC: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function getSocketText(connector: any): string;
|
|
17
|
+
export declare function formatConnectorStandard(value: any): any;
|
|
18
|
+
export declare function getStatusLabel(t: MapContextType["t"], status: any): string;
|
|
19
|
+
export declare function getLocationLabel(t: MapContextType["t"], location: any): string;
|
|
20
|
+
export declare function getStatusColorFromEvses(evses?: any[]): "#33AC19" | "#005CEE" | "#EB001B";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getColorForStatus(status: any): "#33AC19" | "#005CEE" | "#EB001B";
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { TariffElement, DayOfWeek, PriceComponent } from '../types';
|
|
2
|
+
export declare function convertTimeToMinutes(time: string): number;
|
|
3
|
+
type Timeslot = {
|
|
4
|
+
isActive?: boolean;
|
|
5
|
+
isFullDay: boolean;
|
|
6
|
+
startTime: number;
|
|
7
|
+
endTime: number;
|
|
8
|
+
elements?: TariffElement[];
|
|
9
|
+
priceComponents: PriceComponent[];
|
|
10
|
+
};
|
|
11
|
+
export declare function getScheduleItems(items: Timeslot[], isDayActive: boolean, now: Date): Timeslot[];
|
|
12
|
+
export declare function isBaseTarif(tariffElement: TariffElement): boolean;
|
|
13
|
+
type DynamicTariff = {
|
|
14
|
+
date: Date;
|
|
15
|
+
items: Timeslot[];
|
|
16
|
+
};
|
|
17
|
+
type getDynamicTariffProps = {
|
|
18
|
+
elements: TariffElement[];
|
|
19
|
+
limit?: number;
|
|
20
|
+
now: Date;
|
|
21
|
+
};
|
|
22
|
+
export declare function getDynamicTariff({ elements, limit, now, }: getDynamicTariffProps): DynamicTariff[];
|
|
23
|
+
export declare function getScheduledTariff(elements: TariffElement[], locationTimezone: string): {
|
|
24
|
+
MONDAY: any[];
|
|
25
|
+
TUESDAY: any[];
|
|
26
|
+
WEDNESDAY: any[];
|
|
27
|
+
THURSDAY: any[];
|
|
28
|
+
FRIDAY: any[];
|
|
29
|
+
SATURDAY: any[];
|
|
30
|
+
SUNDAY: any[];
|
|
31
|
+
};
|
|
32
|
+
type Schedule = {
|
|
33
|
+
days: DayOfWeek[];
|
|
34
|
+
isActive: boolean;
|
|
35
|
+
items: Timeslot[];
|
|
36
|
+
};
|
|
37
|
+
export declare function getSchedule(elements: TariffElement[], locationTimezone: any, now: any): Schedule[];
|
|
38
|
+
export declare function getConnectorTariffTypeV2(tariff: any): "none" | "base" | "dynamic" | "scheduled";
|
|
39
|
+
export declare function getConnectorTariffType(connectorTarif: any): "none" | "base" | "dynamic" | "scheduled";
|
|
40
|
+
export declare const ConnectorPowerType: {
|
|
41
|
+
readonly CONNECTOR_POWER_TYPE_UNSPECIFIED: "CONNECTOR_POWER_TYPE_UNSPECIFIED";
|
|
42
|
+
readonly CONNECTOR_POWER_TYPE_AC_1_PHASE: "CONNECTOR_POWER_TYPE_AC_1_PHASE";
|
|
43
|
+
readonly CONNECTOR_POWER_TYPE_AC_2_PHASE: "CONNECTOR_POWER_TYPE_AC_2_PHASE";
|
|
44
|
+
readonly CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT: "CONNECTOR_POWER_TYPE_AC_2_PHASE_SPLIT";
|
|
45
|
+
readonly CONNECTOR_POWER_TYPE_AC_3_PHASE: "CONNECTOR_POWER_TYPE_AC_3_PHASE";
|
|
46
|
+
readonly CONNECTOR_POWER_TYPE_DC: "CONNECTOR_POWER_TYPE_DC";
|
|
47
|
+
readonly CONNECTOR_POWER_TYPE_AC: "CONNECTOR_POWER_TYPE_AC";
|
|
48
|
+
};
|
|
49
|
+
export type ConnectorPowerType = (typeof ConnectorPowerType)[keyof typeof ConnectorPowerType];
|
|
50
|
+
export declare function calculateMaxPower(connector: {
|
|
51
|
+
power: {
|
|
52
|
+
maxWatts: number;
|
|
53
|
+
maxVoltage: number;
|
|
54
|
+
maxAmperage: number;
|
|
55
|
+
};
|
|
56
|
+
connectorPowerType: ConnectorPowerType;
|
|
57
|
+
}): number;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RemoteConfig } from '../types';
|
|
2
|
+
type RequestOptionsType = {
|
|
3
|
+
method?: string;
|
|
4
|
+
body?: string;
|
|
5
|
+
authorization?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
headers?: {
|
|
8
|
+
"Content-Type": string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare function request(url: string, options?: RequestOptionsType): Promise<any>;
|
|
12
|
+
export declare function _fetchGeohashes(apiRoot: any, version: any, authorization: any, limitToLocationIds: any, { precision, bbox, ...props }: {
|
|
13
|
+
[x: string]: any;
|
|
14
|
+
precision: any;
|
|
15
|
+
bbox: any;
|
|
16
|
+
}): Promise<any>;
|
|
17
|
+
export declare function _fetchTariffs(apiRoot: any, version: any, authorization: any, { origin, ids }: {
|
|
18
|
+
origin: any;
|
|
19
|
+
ids: any;
|
|
20
|
+
}): Promise<any>;
|
|
21
|
+
export declare function _fetchLocations(apiRoot: any, version: any, authorization: any, { ids }: {
|
|
22
|
+
ids: any;
|
|
23
|
+
}): Promise<any>;
|
|
24
|
+
export declare function loadRemoteConfig(apiRoot: string, version: string, authorization: string): Promise<RemoteConfig>;
|
|
25
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@road-labs/map-sdk",
|
|
3
|
+
"version": "0.0.14",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.mjs",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"style": "dist/index.css",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "rm -rf dist && vite build --mode production",
|
|
17
|
+
"start": "vite",
|
|
18
|
+
"test": "node --import tsx --no-warnings --test ./src/**/*.test.ts",
|
|
19
|
+
"test:only": "node --import tsx --no-warnings --test --test-only ./src/**/*.test.ts",
|
|
20
|
+
"test:watch": "node --import tsx --watch --no-warnings --test ./src/**/*.test.ts",
|
|
21
|
+
"prerelease": "npm run test && npm run build",
|
|
22
|
+
"artifactregistry-login": "npx google-artifactregistry-auth"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"react": "^18.0.0",
|
|
26
|
+
"react-dom": "^18.0.0"
|
|
27
|
+
},
|
|
28
|
+
"author": "",
|
|
29
|
+
"license": "ISC",
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"downshift": "^9.0.10",
|
|
32
|
+
"latlon-geohash": "^2.0.0",
|
|
33
|
+
"react-transition-group": "^4.4.5"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@googlemaps/js-api-loader": "^1.16.6",
|
|
37
|
+
"@types/google.maps": "^3.55.4",
|
|
38
|
+
"@types/react": "^18.2.66",
|
|
39
|
+
"@types/react-dom": "^18.2.22",
|
|
40
|
+
"@types/react-router-dom": "^5.3.3",
|
|
41
|
+
"@types/react-transition-group": "^4.4.9",
|
|
42
|
+
"@vitejs/plugin-react": "^4.3.2",
|
|
43
|
+
"mini-svg-data-uri": "^1.4.4",
|
|
44
|
+
"np": "^9.2.0",
|
|
45
|
+
"postcss": "^8.4.36",
|
|
46
|
+
"postcss-preset-env": "^9.5.2",
|
|
47
|
+
"prettier": "^3.2.5",
|
|
48
|
+
"react": "^18.3.0",
|
|
49
|
+
"react-dom": "^18.3.0",
|
|
50
|
+
"tsx": "^4.7.1",
|
|
51
|
+
"typescript": "^5.3.3",
|
|
52
|
+
"vite": "^7.0.0",
|
|
53
|
+
"vite-plugin-dts": "^4.3.0"
|
|
54
|
+
},
|
|
55
|
+
"prettier": {
|
|
56
|
+
"semi": true
|
|
57
|
+
},
|
|
58
|
+
"volta": {
|
|
59
|
+
"node": "22.17.0"
|
|
60
|
+
}
|
|
61
|
+
}
|