Files

47 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

2026-10-01 16:20:16 -05:00
/**
* Host-provided packages.
*
* These ship with the Termix server and are never bundled into a plugin:
* bundling them would give each plugin its own copy of express or React, and
* a second ssh2 would mean a second set of native bindings. A plugin may
* depend on anything outside these lists, and that does get bundled.
*
* A plugin lists the ones it uses as peerDependencies. Only add a package here
* when core itself ships it; a library one plugin needs belongs in that
* plugin's own dependencies, so it can update without a core release.
*
* Node builtins are external automatically through platform: "node".
*/
export const BACKEND_EXTERNALS = [
2026-10-10 14:58:27 -05:00
"@termix-ssh/plugin-sdk",
"@termix-ssh/plugin-sdk/*",
2026-10-01 16:20:16 -05:00
"express",
"ssh2",
"ws",
"multer",
"cookie-parser",
"axios",
"drizzle-orm",
"drizzle-orm/*",
// Native image processing, loaded on first use by the terminal's image upload.
"sharp",
];
/**
* Resolved by the page's import map to the shell's own copies, because these
* must be one instance: React, i18next, the toast store, and the SDK entries
* that share state with core. Anything else a plugin imports is bundled.
*/
export const FRONTEND_EXTERNALS = [
"react",
"react-dom",
"react/jsx-runtime",
"react-dom/client",
"i18next",
"react-i18next",
"sonner",
2026-10-10 14:58:27 -05:00
"@termix-ssh/plugin-sdk/frontend",
"@termix-ssh/plugin-sdk/ui",
2026-10-01 16:20:16 -05:00
];