diff --git a/api/server/routes/config.js b/api/server/routes/config.js index 705a1d3cb1..c36f4a9b8a 100644 --- a/api/server/routes/config.js +++ b/api/server/routes/config.js @@ -47,10 +47,10 @@ router.get('/', async function (req, res) { githubLoginEnabled: !!process.env.GITHUB_CLIENT_ID && !!process.env.GITHUB_CLIENT_SECRET, googleLoginEnabled: !!process.env.GOOGLE_CLIENT_ID && !!process.env.GOOGLE_CLIENT_SECRET, appleLoginEnabled: - !!process.env.APPLE_CLIENT_ID && - !!process.env.APPLE_TEAM_ID && - !!process.env.APPLE_KEY_ID && - !!process.env.APPLE_PRIVATE_KEY_PATH, + !!process.env.APPLE_CLIENT_ID && + !!process.env.APPLE_TEAM_ID && + !!process.env.APPLE_KEY_ID && + !!process.env.APPLE_PRIVATE_KEY_PATH, openidLoginEnabled: !!process.env.OPENID_CLIENT_ID && !!process.env.OPENID_CLIENT_SECRET && @@ -80,6 +80,7 @@ router.get('/', async function (req, res) { publicSharedLinksEnabled, analyticsGtmId: process.env.ANALYTICS_GTM_ID, instanceProjectId: instanceProject._id.toString(), + bundlerURL: process.env.SANDPACK_BUNDLER_URL, }; if (ldap) { diff --git a/client/src/components/Artifacts/ArtifactCodeEditor.tsx b/client/src/components/Artifacts/ArtifactCodeEditor.tsx index 51f4645637..af0f7bdc8e 100644 --- a/client/src/components/Artifacts/ArtifactCodeEditor.tsx +++ b/client/src/components/Artifacts/ArtifactCodeEditor.tsx @@ -8,8 +8,8 @@ import { import { SandpackProviderProps } from '@codesandbox/sandpack-react/unstyled'; import type { CodeEditorRef } from '@codesandbox/sandpack-react'; import type { ArtifactFiles, Artifact } from '~/common'; +import { useEditArtifact, useGetStartupConfig } from '~/data-provider'; import { sharedFiles, sharedOptions } from '~/utils/artifacts'; -import { useEditArtifact } from '~/data-provider'; import { useEditorContext } from '~/Providers'; const createDebouncedMutation = ( @@ -124,6 +124,17 @@ export const ArtifactCodeEditor = memo(function ({ sharedProps: Partial; editorRef: React.MutableRefObject; }) { + const { data: config } = useGetStartupConfig(); + const options: typeof sharedOptions = useMemo(() => { + if (!config) { + return sharedOptions; + } + return { + ...sharedOptions, + bundlerURL: config.bundlerURL, + }; + }, [config]); + if (Object.keys(files).length === 0) { return null; } @@ -135,7 +146,7 @@ export const ArtifactCodeEditor = memo(function ({ ...files, ...sharedFiles, }} - options={{ ...sharedOptions }} + options={options} {...sharedProps} template={template} > diff --git a/client/src/components/Artifacts/ArtifactPreview.tsx b/client/src/components/Artifacts/ArtifactPreview.tsx index 9cb06d413c..d3d147929f 100644 --- a/client/src/components/Artifacts/ArtifactPreview.tsx +++ b/client/src/components/Artifacts/ArtifactPreview.tsx @@ -7,6 +7,7 @@ import { import type { SandpackPreviewRef } from '@codesandbox/sandpack-react/unstyled'; import type { ArtifactFiles } from '~/common'; import { sharedFiles, sharedOptions } from '~/utils/artifacts'; +import { useGetStartupConfig } from '~/data-provider'; import { useEditorContext } from '~/Providers'; export const ArtifactPreview = memo(function ({ @@ -23,6 +24,8 @@ export const ArtifactPreview = memo(function ({ previewRef: React.MutableRefObject; }) { const { currentCode } = useEditorContext(); + const { data: config } = useGetStartupConfig(); + const artifactFiles = useMemo(() => { if (Object.keys(files).length === 0) { return files; @@ -38,6 +41,17 @@ export const ArtifactPreview = memo(function ({ }, }; }, [currentCode, files, fileKey]); + + const options: typeof sharedOptions = useMemo(() => { + if (!config) { + return sharedOptions; + } + return { + ...sharedOptions, + bundlerURL: config.bundlerURL, + }; + }, [config]); + if (Object.keys(artifactFiles).length === 0) { return null; } @@ -48,7 +62,7 @@ export const ArtifactPreview = memo(function ({ ...artifactFiles, ...sharedFiles, }} - options={{ ...sharedOptions }} + options={options} {...sharedProps} template={template} > diff --git a/package-lock.json b/package-lock.json index 1e3421940b..6366753db1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43146,7 +43146,7 @@ }, "packages/data-provider": { "name": "librechat-data-provider", - "version": "0.7.6997", + "version": "0.7.6998", "license": "ISC", "dependencies": { "axios": "^1.7.7", diff --git a/packages/data-provider/package.json b/packages/data-provider/package.json index 5e10c1489b..a9915ecd68 100644 --- a/packages/data-provider/package.json +++ b/packages/data-provider/package.json @@ -1,6 +1,6 @@ { "name": "librechat-data-provider", - "version": "0.7.6997", + "version": "0.7.6998", "description": "data services for librechat apps", "main": "dist/index.js", "module": "dist/index.es.js", diff --git a/packages/data-provider/src/config.ts b/packages/data-provider/src/config.ts index 203e29f9a9..2586b72df5 100644 --- a/packages/data-provider/src/config.ts +++ b/packages/data-provider/src/config.ts @@ -531,6 +531,7 @@ export type TStartupConfig = { publicSharedLinksEnabled: boolean; analyticsGtmId?: string; instanceProjectId: string; + bundlerURL?: string; }; export const configSchema = z.object({