From 0ed8d961f6178ca218d2627c367643e28bc44e53 Mon Sep 17 00:00:00 2001 From: Carter Date: Wed, 16 Apr 2025 09:33:40 -0600 Subject: [PATCH 1/6] organizing env variables and white label stuff --- .env | 6 ++++-- .gitlab-ci.yml | 3 --- package.json | 6 +++--- src/app/App.tsx | 9 +++++++-- src/navigation/NavigationContainer.tsx | 5 ++--- src/providers/pond/pond.tsx | 2 +- src/services/whiteLabel.ts | 6 +++--- 7 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.env b/.env index 82f1509..23f68d3 100644 --- a/.env +++ b/.env @@ -1,6 +1,8 @@ -VITE_APP_API_URL=https://bxt-dev.api.adaptiveagriculture.ca/v1 +VITE_APP_API_URL=https://api.brandxtech.ca/v1 +VITE_APP_API_STAGING_URL=https://stagingapi.brandxtech.ca/v1 +VITE_APP_API_DEV_URL=https://bxt-dev.api.adaptiveagriculture.ca/v1 #Auth0 VITE_AUTH0_CLIENT_DOMAIN=brandxtech.auth0.com -VITE_AUTH0_AUDIENCE=bxt-dev.api.adaptiveagriculture.ca +VITE_AUTH0_AUDIENCE=api.brandxtech.ca VITE_AUTH0_DEV_CLIENT_ID=dzJTpqIeMA4Rwk4xujtwPbAO3TY32bM1 \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a081149..61461f8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -303,9 +303,6 @@ deploy:development: - cat /etc/os-release - "echo DEPLOY_TARGET=${DEPLOY_TARGET}" - "echo DOCKER_HOST=${DOCKER_HOST}" - - "echo \"Dev Key length: ${#DEVELOPMENT_SSH_PRIV_KEY}\"" - # - "echo \"Staging Key length: ${#STAGING_SSH_PRIV_KEY}\"" - # - "echo \"$STAGING_SSH_PRIV_KEY\" | tr -d '\r' | ssh-add - > /dev/null" - "echo \"$DEVELOPMENT_SSH_PRIV_KEY\" | tr -d '\r' | ssh-add - " # - "ssh -Mo StrictHostKeyChecking=no -S deploy-ctrl-socket -fnNTL /var/run/docker.sock:/var/run/docker.sock ${DEPLOY_TARGET}" # - "ssh -S deploy-ctrl-socket -O check ${DEPLOY_TARGET}" diff --git a/package.json b/package.json index 2446847..8a30b09 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,9 @@ "type": "module", "scripts": { "start": "vite", - "start-local": "VITE_APP_API_URL=http://localhost:50052/v1 VITE_APP_WS_URL=ws://localhost:50052/v1/live VITE_APP_BILLING_URL=http://localhost:50053/v1 VITE_APP_RECLUSE_URL=http://localhost:50054/v1 VITE_APP_GITLAB_URL=http://localhost:50055/v1 vite", - "start-dev": "VITE_AUTH0_CLIENT_DOMAIN=brandxtech.auth0.com VITE_AUTH0_AUDIENCE=bxt-dev.api.adaptiveagriculture.ca VITE_AUTH0_DEV_CLIENT_ID=dzJTpqIeMA4Rwk4xujtwPbAO3TY32bM1 vite", - "start-staging": "REACT_APP_API_URL=https://stagingapi.brandxtech.ca/v1 REACT_APP_WS_URL=ws://stagingapi.brandxtech.ca/v1/live REACT_APP_AUTH0_CLIENT_DOMAIN=adaptivestaging.us.auth0.com REACT_APP_AUTH0_AUDIENCE=stagingapi.brandxtech.ca react-scripts start", + "start-local": "VITE_AUTH0_AUDIENCE=bxt-dev.api.adaptiveagriculture.ca VITE_APP_API_URL=http://localhost:50052/v1 VITE_APP_WS_URL=ws://localhost:50052/v1/live VITE_APP_BILLING_URL=http://localhost:50053/v1 VITE_APP_RECLUSE_URL=http://localhost:50054/v1 VITE_APP_GITLAB_URL=http://localhost:50055/v1 vite", + "start-dev": "VITE_APP_API_URL=https://bxt-dev.api.adaptiveagriculture.ca/v1 VITE_AUTH0_CLIENT_DOMAIN=brandxtech.auth0.com VITE_AUTH0_AUDIENCE=bxt-dev.api.adaptiveagriculture.ca VITE_AUTH0_DEV_CLIENT_ID=dzJTpqIeMA4Rwk4xujtwPbAO3TY32bM1 vite", + "start-staging": "VITE_APP_API_URL=https://stagingapi.brandxtech.ca/v1 VITE_APP_WS_URL=ws://stagingapi.brandxtech.ca/v1/live VITE_APP_AUTH0_CLIENT_DOMAIN=adaptivestaging.us.auth0.com VITE_APP_AUTH0_AUDIENCE=stagingapi.brandxtech.ca vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", diff --git a/src/app/App.tsx b/src/app/App.tsx index 62da61b..27a160d 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -39,15 +39,20 @@ function App() { faviconDocument.href = "BrandXTechnologies/favicon.ico" }) - let url: string | undefined = import.meta.env.VITE_AUTH0_CLIENT_DOMAIN; + let domain: string | undefined = import.meta.env.VITE_AUTH0_CLIENT_DOMAIN; let audience: string | undefined = import.meta.env.VITE_AUTH0_AUDIENCE; let client_id = import.meta.env.VITE_AUTH0_DEV_CLIENT_ID; + console.log("Domain: " + domain) + console.log("Audience: " + audience) + console.log("Client ID: " + client_id) + console.log("API URL: " + import.meta.env.VITE_APP_API_URL) + return ( + <> {/* */} - + ); } diff --git a/src/providers/pond/pond.tsx b/src/providers/pond/pond.tsx index aa4aa1a..7d2812e 100644 --- a/src/providers/pond/pond.tsx +++ b/src/providers/pond/pond.tsx @@ -35,7 +35,7 @@ import DataDogProvider, { useDataDogProxyAPI } from "./datadogProxyAPI"; export const pondURL = (partial: string, demo: boolean = false): string => { let url = import.meta.env.VITE_APP_API_URL + (demo ? "/demo" : "") + partial; - // console.log(url) + // console.log("API URL: "+url) // if (isStaging()) url = process.env.REACT_APP_STAGING_API_URL + (demo ? "/demo" : "") + partial; return url; }; diff --git a/src/services/whiteLabel.ts b/src/services/whiteLabel.ts index e04fa27..b26befe 100644 --- a/src/services/whiteLabel.ts +++ b/src/services/whiteLabel.ts @@ -95,10 +95,10 @@ const BXT_WHITE_LABEL: WhiteLabel = { // primaryColour: "#0000FF", secondaryColour: "yellow", // secondaryColour: "#FFFF00", - signatureColour: "#272727", - // signatureColour: "#005bb0", + // signatureColour: "#272727", + signatureColour: "#005bb0", signatureAccentColour: "#fff", - auth0ClientId: import.meta.env.REACT_APP_AUTH0_STAGING_CLIENT_ID, + auth0ClientId: import.meta.env.VITE_AUTH0_DEV_CLIENT_ID, redirectOnLogout: false, logoutRedirectTarget: "", darkLogo: BXTDarkLogo, From a27baa8b4ae9b7c0884acbeab0fb4df7cf6bedc7 Mon Sep 17 00:00:00 2001 From: Carter Date: Wed, 16 Apr 2025 09:46:45 -0600 Subject: [PATCH 2/6] fixed loading screen getting rid of the header and side nav --- src/navigation/Router.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/navigation/Router.tsx b/src/navigation/Router.tsx index 79dd6c1..d3cc2dd 100644 --- a/src/navigation/Router.tsx +++ b/src/navigation/Router.tsx @@ -286,9 +286,9 @@ export default function Router() { } return ( - }> - -
+ +
+ }> {/* Redirects */} @@ -325,7 +325,7 @@ export default function Router() { } /> } /> -{/* + {/* } /> */} @@ -333,7 +333,7 @@ export default function Router() { } /> - - + + ) } \ No newline at end of file From 9df40db30ff1c8f1b58717984e79c41ece0dc46b Mon Sep 17 00:00:00 2001 From: Carter Date: Wed, 16 Apr 2025 10:21:43 -0600 Subject: [PATCH 3/6] loading screen circle is now properly centered all the time --- src/app/LoadingScreen.tsx | 15 ++++++- src/navigation/Router.tsx | 91 ++++++++++++++++++++------------------- 2 files changed, 61 insertions(+), 45 deletions(-) diff --git a/src/app/LoadingScreen.tsx b/src/app/LoadingScreen.tsx index 7532d91..090203d 100644 --- a/src/app/LoadingScreen.tsx +++ b/src/app/LoadingScreen.tsx @@ -9,7 +9,20 @@ export default function LoadingScreen(props: Props) { const theme = useTheme(); return ( - + import("pages/DeviceHistory")); const DevicePage = lazy(() => import("pages/Device")); @@ -288,52 +289,54 @@ export default function Router() { return (
- }> - - - {/* Redirects */} - } /> - {/* } /> */} - {/* } /> */} - } /> - - {/* Page routes */} - {/* Hello!} /> */} - } /> - } /> - } /> - {user.hasFeature("installer") && - } /> - } - {user.hasFeature("developer") && - } /> - } - {user.hasFeature("admin") && - } /> - } - } /> - } /> - {user.hasFeature("admin") && ( - } /> - )} - } /> - - {/* Map pages */} - } /> - } /> - } /> + {/* */} + }> + + + {/* Redirects */} + } /> + {/* } /> */} + {/* } /> */} + } /> + + {/* Page routes */} + {/* Hello!} /> */} + } /> + } /> + } /> + {user.hasFeature("installer") && + } /> + } + {user.hasFeature("developer") && + } /> + } + {user.hasFeature("admin") && + } /> + } + } /> + } /> + {user.hasFeature("admin") && ( + } /> + )} + } /> + + {/* Map pages */} + } /> + } /> + } /> + + } /> + } /> + {/* + + } /> + */} - } /> - } /> - {/* - } /> - */} - - } /> - - - + + + + {/* */} ) } \ No newline at end of file From 67f8645a25d0a397b7c7c414d5f630d362a33be5 Mon Sep 17 00:00:00 2001 From: Carter Date: Wed, 16 Apr 2025 12:29:02 -0600 Subject: [PATCH 4/6] theme is saving properly to local storage --- src/navigation/Router.tsx | 91 ++++++++++++++++------------------ src/theme/AppThemeProvider.tsx | 6 ++- 2 files changed, 49 insertions(+), 48 deletions(-) diff --git a/src/navigation/Router.tsx b/src/navigation/Router.tsx index f70fdc4..4dd6917 100644 --- a/src/navigation/Router.tsx +++ b/src/navigation/Router.tsx @@ -8,7 +8,6 @@ import { ErrorBoundary } from "react-error-boundary"; import { getWhitelabel } from "services/whiteLabel"; import Ventilation from "pages/VentEditor"; import { useGlobalState } from "providers"; -import { Box } from "@mui/material"; const DeviceHistory = lazy(() => import("pages/DeviceHistory")); const DevicePage = lazy(() => import("pages/Device")); @@ -289,54 +288,52 @@ export default function Router() { return (
- {/* */} - }> - - - {/* Redirects */} - } /> - {/* } /> */} - {/* } /> */} - } /> - - {/* Page routes */} - {/* Hello!} /> */} - } /> - } /> - } /> - {user.hasFeature("installer") && - } /> - } - {user.hasFeature("developer") && - } /> - } - {user.hasFeature("admin") && - } /> - } - } /> - } /> - {user.hasFeature("admin") && ( - } /> - )} - } /> - - {/* Map pages */} - } /> - } /> - } /> - - } /> - } /> - {/* - - } /> - */} + }> + + + {/* Redirects */} + } /> + {/* } /> */} + {/* } /> */} + } /> + + {/* Page routes */} + {/* Hello!} /> */} + } /> + } /> + } /> + {user.hasFeature("installer") && + } /> + } + {user.hasFeature("developer") && + } /> + } + {user.hasFeature("admin") && + } /> + } + } /> + } /> + {user.hasFeature("admin") && ( + } /> + )} + } /> + + {/* Map pages */} + } /> + } /> + } /> + } /> + } /> + {/* + } /> - - - - {/* */} + */} + + } /> + + + ) } \ No newline at end of file diff --git a/src/theme/AppThemeProvider.tsx b/src/theme/AppThemeProvider.tsx index 4cedb98..6cc9601 100644 --- a/src/theme/AppThemeProvider.tsx +++ b/src/theme/AppThemeProvider.tsx @@ -24,7 +24,11 @@ export const useThemeMode = () => { }; export const AppThemeProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { - const [mode, setMode] = useState("system"); + + const savedTheme = localStorage.getItem("theme"); + const isValidTheme = (theme: string | null): theme is ThemeMode => + theme === "light" || theme === "dark" || theme === "system"; + const [mode, setMode] = useState(isValidTheme(savedTheme) ? savedTheme : "system"); const prefersDark = useMediaQuery("(prefers-color-scheme: dark)"); const resolvedMode: PaletteMode = mode === "system" ? (prefersDark ? "dark" : "light") : mode; From 2ec3101fadd1d59dbf24d82a83803d2f26131c46 Mon Sep 17 00:00:00 2001 From: Carter Date: Wed, 16 Apr 2025 13:24:24 -0600 Subject: [PATCH 5/6] added vite api url to build arguments in package.json --- package.json | 2 +- src/theme/AppThemeProvider.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 904a90a..1e122f2 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "lint": "eslint .", "preview": "vite preview", "build:staging": "NODE_OPTIONS=--max_old_space_size=4096 VITE_APP_GOOGLE_API_KEY=${GOOGLE_API_KEY} VITE_APP_STRIPE_PUBLIC_KEY=${STRIPE_PUBLIC_KEY_STAGING} VITE_APP_MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN} VITE_APP_CNHI_CLIENT_ID=${CNHI_CLIENT_ID} VITE_APP_CNHI_AUTHORIZE_URL=${CNHI_AUTHORIZE_URL} VITE_APP_CNHI_REDIRECT_URI=${CNHI_REDIRECT_URI} VITE_APP_CNHI_SCOPES=${CNHI_SCOPES} VITE_APP_CNHI_CONNECTION=${CNHI_CONNECTION} VITE_APP_CNHI_AUDIENCE=${CNHI_AUDIENCE} VITE_APP_IMAGE4IO_USERNAME=${IMAGE4IO_USERNAME} VITE_APP_IMAGE4IO_PASSWORD=${IMAGE4IO_PASSWORD} VITE_APP_JD_CLIENT_ID=${JD_CLIENT_ID} VITE_APP_JD_AUTHORIZE_URL=${JD_AUTHORIZE_URL} VITE_APP_JD_REDIRECT_URI=${JD_REDIRECT_URI} VITE_APP_JD_SCOPES=${JD_SCOPES} VITE_APP_JD_STATE=${JD_STATE} vite build", - "build:development": "NODE_OPTIONS=--max_old_space_size=4096 VITE_APP_GOOGLE_API_KEY=${GOOGLE_API_KEY} VITE_APP_STRIPE_PUBLIC_KEY=${STRIPE_PUBLIC_KEY_DEVELOPMENT} VITE_APP_MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN} VITE_APP_CNHI_CLIENT_ID=${CNHI_CLIENT_ID} VITE_APP_CNHI_AUTHORIZE_URL=${CNHI_AUTHORIZE_URL} VITE_APP_CNHI_REDIRECT_URI=${CNHI_REDIRECT_URI} VITE_APP_CNHI_SCOPES=${CNHI_SCOPES} VITE_APP_CNHI_CONNECTION=${CNHI_CONNECTION} VITE_APP_CNHI_AUDIENCE=${CNHI_AUDIENCE} VITE_APP_IMAGE4IO_USERNAME=${IMAGE4IO_USERNAME} VITE_APP_IMAGE4IO_PASSWORD=${IMAGE4IO_PASSWORD} VITE_APP_JD_CLIENT_ID=${JD_CLIENT_ID} VITE_APP_JD_AUTHORIZE_URL=${JD_AUTHORIZE_URL} VITE_APP_JD_REDIRECT_URI=${JD_REDIRECT_URI} VITE_APP_JD_SCOPES=${JD_SCOPES} VITE_APP_JD_STATE=${JD_STATE} vite build", + "build:development": "VITE_APP_API_URL=https://bxt-dev.api.adaptiveagriculture.ca/v1 NODE_OPTIONS=--max_old_space_size=4096 VITE_APP_GOOGLE_API_KEY=${GOOGLE_API_KEY} VITE_APP_STRIPE_PUBLIC_KEY=${STRIPE_PUBLIC_KEY_DEVELOPMENT} VITE_APP_MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN} VITE_APP_CNHI_CLIENT_ID=${CNHI_CLIENT_ID} VITE_APP_CNHI_AUTHORIZE_URL=${CNHI_AUTHORIZE_URL} VITE_APP_CNHI_REDIRECT_URI=${CNHI_REDIRECT_URI} VITE_APP_CNHI_SCOPES=${CNHI_SCOPES} VITE_APP_CNHI_CONNECTION=${CNHI_CONNECTION} VITE_APP_CNHI_AUDIENCE=${CNHI_AUDIENCE} VITE_APP_IMAGE4IO_USERNAME=${IMAGE4IO_USERNAME} VITE_APP_IMAGE4IO_PASSWORD=${IMAGE4IO_PASSWORD} VITE_APP_JD_CLIENT_ID=${JD_CLIENT_ID} VITE_APP_JD_AUTHORIZE_URL=${JD_AUTHORIZE_URL} VITE_APP_JD_REDIRECT_URI=${JD_REDIRECT_URI} VITE_APP_JD_SCOPES=${JD_SCOPES} VITE_APP_JD_STATE=${JD_STATE} vite build", "build:production": "NODE_OPTIONS=--max_old_space_size=4096 VITE_APP_GOOGLE_API_KEY=${GOOGLE_API_KEY} VITE_APP_STRIPE_PUBLIC_KEY=${STRIPE_PUBLIC_KEY_PRODUCTION} VITE_APP_MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN} VITE_APP_CNHI_CLIENT_ID=${CNHI_CLIENT_ID} VITE_APP_CNHI_AUTHORIZE_URL=${CNHI_AUTHORIZE_URL} VITE_APP_CNHI_REDIRECT_URI=${CNHI_REDIRECT_URI} VITE_APP_CNHI_SCOPES=${CNHI_SCOPES} VITE_APP_CNHI_CONNECTION=${CNHI_CONNECTION} VITE_APP_CNHI_AUDIENCE=${CNHI_AUDIENCE} VITE_APP_IMAGE4IO_USERNAME=${IMAGE4IO_USERNAME} VITE_APP_IMAGE4IO_PASSWORD=${IMAGE4IO_PASSWORD} VITE_APP_JD_CLIENT_ID=${JD_CLIENT_ID} VITE_APP_JD_AUTHORIZE_URL=${JD_AUTHORIZE_URL} VITE_APP_JD_REDIRECT_URI=${JD_REDIRECT_URI} VITE_APP_JD_SCOPES=${JD_SCOPES} VITE_APP_JD_STATE=${JD_STATE} vite build", "build:offline": "npx env-cmd offline,whitelabel npm run build", "test": "vitest" diff --git a/src/theme/AppThemeProvider.tsx b/src/theme/AppThemeProvider.tsx index 6cc9601..003519e 100644 --- a/src/theme/AppThemeProvider.tsx +++ b/src/theme/AppThemeProvider.tsx @@ -1,4 +1,4 @@ -import React, { createContext, useContext, useMemo, useState, useEffect } from "react"; +import React, { createContext, useContext, useMemo, useState } from "react"; import { ThemeProvider, createTheme, PaletteMode } from "@mui/material/styles"; import useMediaQuery from "@mui/material/useMediaQuery"; From 85d23a3420ff8e581ed7935d5b22e6c7705faeda Mon Sep 17 00:00:00 2001 From: Carter Date: Wed, 16 Apr 2025 13:26:07 -0600 Subject: [PATCH 6/6] also the dev audience --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1e122f2..0f1adf1 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "lint": "eslint .", "preview": "vite preview", "build:staging": "NODE_OPTIONS=--max_old_space_size=4096 VITE_APP_GOOGLE_API_KEY=${GOOGLE_API_KEY} VITE_APP_STRIPE_PUBLIC_KEY=${STRIPE_PUBLIC_KEY_STAGING} VITE_APP_MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN} VITE_APP_CNHI_CLIENT_ID=${CNHI_CLIENT_ID} VITE_APP_CNHI_AUTHORIZE_URL=${CNHI_AUTHORIZE_URL} VITE_APP_CNHI_REDIRECT_URI=${CNHI_REDIRECT_URI} VITE_APP_CNHI_SCOPES=${CNHI_SCOPES} VITE_APP_CNHI_CONNECTION=${CNHI_CONNECTION} VITE_APP_CNHI_AUDIENCE=${CNHI_AUDIENCE} VITE_APP_IMAGE4IO_USERNAME=${IMAGE4IO_USERNAME} VITE_APP_IMAGE4IO_PASSWORD=${IMAGE4IO_PASSWORD} VITE_APP_JD_CLIENT_ID=${JD_CLIENT_ID} VITE_APP_JD_AUTHORIZE_URL=${JD_AUTHORIZE_URL} VITE_APP_JD_REDIRECT_URI=${JD_REDIRECT_URI} VITE_APP_JD_SCOPES=${JD_SCOPES} VITE_APP_JD_STATE=${JD_STATE} vite build", - "build:development": "VITE_APP_API_URL=https://bxt-dev.api.adaptiveagriculture.ca/v1 NODE_OPTIONS=--max_old_space_size=4096 VITE_APP_GOOGLE_API_KEY=${GOOGLE_API_KEY} VITE_APP_STRIPE_PUBLIC_KEY=${STRIPE_PUBLIC_KEY_DEVELOPMENT} VITE_APP_MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN} VITE_APP_CNHI_CLIENT_ID=${CNHI_CLIENT_ID} VITE_APP_CNHI_AUTHORIZE_URL=${CNHI_AUTHORIZE_URL} VITE_APP_CNHI_REDIRECT_URI=${CNHI_REDIRECT_URI} VITE_APP_CNHI_SCOPES=${CNHI_SCOPES} VITE_APP_CNHI_CONNECTION=${CNHI_CONNECTION} VITE_APP_CNHI_AUDIENCE=${CNHI_AUDIENCE} VITE_APP_IMAGE4IO_USERNAME=${IMAGE4IO_USERNAME} VITE_APP_IMAGE4IO_PASSWORD=${IMAGE4IO_PASSWORD} VITE_APP_JD_CLIENT_ID=${JD_CLIENT_ID} VITE_APP_JD_AUTHORIZE_URL=${JD_AUTHORIZE_URL} VITE_APP_JD_REDIRECT_URI=${JD_REDIRECT_URI} VITE_APP_JD_SCOPES=${JD_SCOPES} VITE_APP_JD_STATE=${JD_STATE} vite build", + "build:development": "VITE_AUTH0_AUDIENCE=bxt-dev.api.adaptiveagriculture.ca VITE_APP_API_URL=https://bxt-dev.api.adaptiveagriculture.ca/v1 NODE_OPTIONS=--max_old_space_size=4096 VITE_APP_GOOGLE_API_KEY=${GOOGLE_API_KEY} VITE_APP_STRIPE_PUBLIC_KEY=${STRIPE_PUBLIC_KEY_DEVELOPMENT} VITE_APP_MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN} VITE_APP_CNHI_CLIENT_ID=${CNHI_CLIENT_ID} VITE_APP_CNHI_AUTHORIZE_URL=${CNHI_AUTHORIZE_URL} VITE_APP_CNHI_REDIRECT_URI=${CNHI_REDIRECT_URI} VITE_APP_CNHI_SCOPES=${CNHI_SCOPES} VITE_APP_CNHI_CONNECTION=${CNHI_CONNECTION} VITE_APP_CNHI_AUDIENCE=${CNHI_AUDIENCE} VITE_APP_IMAGE4IO_USERNAME=${IMAGE4IO_USERNAME} VITE_APP_IMAGE4IO_PASSWORD=${IMAGE4IO_PASSWORD} VITE_APP_JD_CLIENT_ID=${JD_CLIENT_ID} VITE_APP_JD_AUTHORIZE_URL=${JD_AUTHORIZE_URL} VITE_APP_JD_REDIRECT_URI=${JD_REDIRECT_URI} VITE_APP_JD_SCOPES=${JD_SCOPES} VITE_APP_JD_STATE=${JD_STATE} vite build", "build:production": "NODE_OPTIONS=--max_old_space_size=4096 VITE_APP_GOOGLE_API_KEY=${GOOGLE_API_KEY} VITE_APP_STRIPE_PUBLIC_KEY=${STRIPE_PUBLIC_KEY_PRODUCTION} VITE_APP_MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN} VITE_APP_CNHI_CLIENT_ID=${CNHI_CLIENT_ID} VITE_APP_CNHI_AUTHORIZE_URL=${CNHI_AUTHORIZE_URL} VITE_APP_CNHI_REDIRECT_URI=${CNHI_REDIRECT_URI} VITE_APP_CNHI_SCOPES=${CNHI_SCOPES} VITE_APP_CNHI_CONNECTION=${CNHI_CONNECTION} VITE_APP_CNHI_AUDIENCE=${CNHI_AUDIENCE} VITE_APP_IMAGE4IO_USERNAME=${IMAGE4IO_USERNAME} VITE_APP_IMAGE4IO_PASSWORD=${IMAGE4IO_PASSWORD} VITE_APP_JD_CLIENT_ID=${JD_CLIENT_ID} VITE_APP_JD_AUTHORIZE_URL=${JD_AUTHORIZE_URL} VITE_APP_JD_REDIRECT_URI=${JD_REDIRECT_URI} VITE_APP_JD_SCOPES=${JD_SCOPES} VITE_APP_JD_STATE=${JD_STATE} vite build", "build:offline": "npx env-cmd offline,whitelabel npm run build", "test": "vitest"