zephyr-agent
Version:
Zephyr plugin agent
41 lines (40 loc) • 2.04 kB
JavaScript
import "node:module";
import { redactString } from "../security/redaction.mjs";
function buildEnvImportMap(appUid, remotes) {
const imports = {};
imports[`env:vars:${appUid}`] = '/zephyr-manifest.json';
remotes.forEach((remote)=>{
if (remote.application_uid && remote.remote_entry_url) try {
const urlStr = remote.remote_entry_url.includes('@') ? remote.remote_entry_url.split('@')[1] : remote.remote_entry_url;
const origin = new URL(urlStr).origin;
imports[`env:vars:${remote.application_uid}`] = `${origin}/zephyr-manifest.json`;
} catch {
console.warn(redactString(`Failed to parse remote URL for env vars: ${remote.remote_entry_url}`));
}
});
return imports;
}
function buildEnvModuleSource(applicationUid) {
const envVars = {};
for (const [key, value] of Object.entries(process.env))if (key.startsWith('ZE_PUBLIC_') && 'string' == typeof value) envVars[key] = value;
const exports = Object.entries(envVars).map(([key, value])=>`export const ${key} = ${JSON.stringify(value)};`).join('\n');
const defaultExport = `
export default {
APPLICATION_UID: ${JSON.stringify(applicationUid)},
${Object.entries(envVars).map(([key, value])=>`${key}: ${JSON.stringify(value)}`).join(',\n ')}
};`;
return `// Zephyr Environment Variables Module
// Auto-generated for app: ${applicationUid}
${exports}
${defaultExport}
`;
}
function buildEnvImportMapScript(appUid, remotes) {
const importMap = {
imports: buildEnvImportMap(appUid, remotes)
};
return `<script type="importmap">${JSON.stringify(importMap, null, 2)}</script>`;
}
export { VIRTUAL_SPECIFIER, buildEnvJsonAsset, buildImportMap, buildModulePreload, calculateManifestHash, collectZEPublicVars, detectEnvReads, generateManifestContent, injectBeforeHeadClose, injectImportMap, rewriteEnvReadsToVirtualModule } from "./env-var-rewrites.mjs";
export { buildEnvImportMap, buildEnvImportMapScript, buildEnvModuleSource };
//# sourceMappingURL=index.mjs.map