NetExperts Mail — browser components source, 26 October 2026, revision 2

NetExperts Mail provides email for NetExperts customers. NetExperts customises
its visual interface while retaining the Roundcube mail engine. This archive
provides source and notices for browser-delivered open-source components and
our included Elastic visual adaptations. It is not a release of the complete
NetExperts Mail server application. Customer-only use does not restrict any
rights granted by these component licences.

Components:
* Roundcube 1.7.5 JavaScript and bundled plugin JavaScript: GPL-3.0-or-later
  where stated in each file. Roundcube Team and other authors retain copyright.
  PublicKey.js: Daniel Roesler, GPL-3.0-or-later. Full GPL in
  roundcube-browser/docs/LICENSE.md; notices in source files are retained.
* TinyMCE 5.10.9: Tiny Technologies and contributors, LGPL-2.1 (see the exact
  upstream LICENSE.TXT and individual files). Full preferred source, build
  scripts and yarn.lock are in third-party/tinymce-5.10.9.
* OpenPGP.js 6.3.0: OpenPGP Development Team, LGPL-3.0-or-later. Full source,
  package-lock.json, unminified distribution and source map are in
  third-party/openpgpjs-6.3.0, with the original LICENSE.
* Elastic: Roundcube Team, CC BY-SA 3.0 except separately licensed components
  identified by its README and file notices. NetExperts changed the palette,
  typography and icon presentation. Included Elastic adaptations remain under
  CC BY-SA 3.0; no NetExperts proprietary restriction overrides this licence.
  https://creativecommons.org/licenses/by-sa/3.0/
* jQuery/jQuery UI, Bootstrap, CodeMirror, Less and other bundled libraries keep
  their individual notices/licences. Lucide/Feather notices are retained with
  the icon build inputs (ISC/MIT as specified in their LICENSE files).

The package excludes private server-side PHP, authentication integrations,
production configuration, credentials, customer data, mail and sessions. It
makes no blanket licence grant for separate NetExperts code or trademarks.
No warranty is provided by the included open-source components; see licences.

Build/edit:
1. Roundcube source files are in roundcube-browser with the installed directory
   layout. Matching .js source accompanies application .min.js files. To
   minify an edited file use the upstream bin/jsshrink.sh path/to/file.js after
   installing the npm tooling declared in package.json. Do not run the top-level
   release Makefile; its full-server packaging targets are outside this subset.
   Upstream package.json specifies tool ranges and ships no npm lockfile in
   this tag; no byte-identical fresh minification is claimed.
2. TinyMCE: use the upstream README/CONTRIBUTING and package.json. In its source
   directory install the pinned Yarn dependencies (yarn install --frozen-lockfile),
   then yarn build. The preferred TypeScript/LESS sources and monorepo modules
   are included. Build tools are not installed or updated by this archive.
3. OpenPGP.js: follow its README and package.json engine requirement. Run npm ci
   in the source directory, then npm run build. Its locked inputs are included.
4. Elastic LESS uses the included skins/elastic/Makefile and Roundcube npm
   tooling. The NetExperts palette mapping is separately reproducible with
   Python 3 + tinycss2 using elastic-adaptation/skins/netexperts-workspace/vendor/
   theme-source/build.py and the included original CSS/icon mapping inputs.

RUNTIME-SHA256.json identifies the exact installed browser files. Source and
upstream matches were checked; TinyMCE's 69 common npm/runtime assets match,
and OpenPGP's installed bundle matches the official npm payload after the
Roundcube licence prefix. This is not an independent rebuild of all libraries.
SHA256.json verifies archive files. Retain notices when redistributing.
