<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Developer Docs on Mol* Linker Wiki</title><link>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/</link><description>Recent content in Developer Docs on Mol* Linker Wiki</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://MartinBaGar.github.io/Molstar_Linker/docs/developer/index.xml" rel="self" type="application/rss+xml"/><item><title>Architecture &amp; Execution Flow</title><link>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/architecture/</guid><description>&lt;h2 id="core-philosophy"&gt;Core Philosophy&lt;a class="anchor" href="#core-philosophy"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mol* Linker operates across several strict security boundaries imposed by the browser. Modern browsers enforce Content Security Policies (CSP) that block &lt;code&gt;unsafe-eval&lt;/code&gt; in Manifest V3 extension pages, and restrict cross-origin requests (CORS) between websites and external servers.&lt;/p&gt;
&lt;p&gt;To load multi-megabyte structural files from dynamic Single Page Applications (GitHub, GitLab, RCSB) into a high-performance WebGL visualizer (Mol*), the extension uses a &lt;strong&gt;4-Layer Architecture&lt;/strong&gt; where each layer has one clearly defined responsibility.&lt;/p&gt;</description></item><item><title>Contributing &amp; Build System</title><link>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/contributing/</guid><description>&lt;h2 id="development-workflow"&gt;Development Workflow&lt;a class="anchor" href="#development-workflow"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mol* Linker is written in TypeScript and uses a two-stage build pipeline:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Type checking&lt;/strong&gt; — &lt;code&gt;tsc --noEmit&lt;/code&gt; validates the entire codebase against strict TypeScript rules without producing any output files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bundling&lt;/strong&gt; — &lt;code&gt;esbuild&lt;/code&gt; takes each entry-point module and bundles it with all its dependencies into a single, self-contained JavaScript file per page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Assembly&lt;/strong&gt; — &lt;code&gt;assemble.js&lt;/code&gt; copies the bundled JS, static HTML/CSS, icons, and the correct browser manifest into a browser-specific output folder.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This separation means the TypeScript compiler is a pure quality gate, and esbuild handles the actual output — giving you both type safety and fast, modern output with zero runtime overhead.&lt;/p&gt;</description></item><item><title>Module Reference</title><link>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/module-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/module-reference/</guid><description>&lt;p&gt;All source files live in &lt;code&gt;src/&lt;/code&gt; and are written in TypeScript. Each entry-point module is compiled by esbuild into a single self-contained &lt;code&gt;.js&lt;/code&gt; file in &lt;code&gt;dist/&lt;/code&gt;. Shared modules (&lt;code&gt;types&lt;/code&gt;, &lt;code&gt;config&lt;/code&gt;, &lt;code&gt;permissions&lt;/code&gt;, &lt;code&gt;mvs-builder&lt;/code&gt;) are not separate output files — they are bundled into whichever entry points import them.&lt;/p&gt;
&lt;h2 id="shared-modules"&gt;Shared Modules&lt;a class="anchor" href="#shared-modules"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="src-types-dot-ts"&gt;&lt;code&gt;src/types.ts&lt;/code&gt;&lt;a class="anchor" href="#src-types-dot-ts"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Defines all shared TypeScript interfaces and the inter-context message protocol. This is the single source of truth for data shapes across the entire codebase.&lt;/p&gt;</description></item><item><title>Security</title><link>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MartinBaGar.github.io/Molstar_Linker/docs/developer/security/</guid><description>&lt;h2 id="security-and-threat-mitigation"&gt;Security &amp;amp; Threat Mitigation&lt;a class="anchor" href="#security-and-threat-mitigation"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Browser extensions that handle cross-origin data and execute complex rendering engines are frequent targets for security audits. Mol* Linker employs a strict &lt;strong&gt;Defense-in-Depth&lt;/strong&gt; strategy to protect user privacy, prevent malicious payload execution, and secure local networks.&lt;/p&gt;
&lt;p&gt;Here is a breakdown of the active security layers within the extension.&lt;/p&gt;
&lt;h3 id="1-dot-zero-upload-data-privacy"&gt;1. Zero-Upload Data Privacy&lt;a class="anchor" href="#1-dot-zero-upload-data-privacy"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The most significant security feature of Mol* Linker is its local-only architecture.
When a user visualizes a proprietary, unreleased structure from a private GitLab or ElabFTW instance, &lt;strong&gt;the file is never uploaded to an external server.&lt;/strong&gt; - Data is fetched directly from the authenticated host server into the browser&amp;rsquo;s volatile memory (RAM).&lt;/p&gt;</description></item></channel></rss>