{"id":6100,"date":"2026-04-16T15:03:03","date_gmt":"2026-04-16T15:03:03","guid":{"rendered":"https:\/\/stfcapital.org\/?page_id=6100"},"modified":"2026-04-16T15:21:54","modified_gmt":"2026-04-16T15:21:54","slug":"open-source-licences","status":"publish","type":"page","link":"https:\/\/stfcapital.org\/index.php\/legal\/open-source-licences\/","title":{"rendered":"Open Source Licences"},"content":{"rendered":"<p><!--\n  OPEN SOURCE ATTRIBUTIONS \u2014 paste the entire content below into a WordPress\n  \"Custom HTML\" block on a new Page.\n\n  Recommended page settings:\n    Title ..... Open Source Licences\n    Slug ...... open-source\n    Parent .... Legal\n--><\/p>\n<style>\n\/* =============================================================================\n   STF Capital \u2014 Legal Pages Stylesheet for WordPress\n   =============================================================================\n   Paste the contents of this file ONCE into:\n     WordPress admin \u2192 Appearance \u2192 Customize \u2192 Additional CSS\n   then Publish. All four legal pages (Privacy Policy, Permissions, Terms,\n   Open Source) will pick up these styles automatically.<\/p>\n<p>   Every selector is prefixed with `.stf-legal` so nothing here can bleed into\n   the rest of your WordPress site. Safe to keep alongside your existing\n   theme and any plugins.\n   ============================================================================= *\/<\/p>\n<p>.stf-legal {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n               \"Helvetica Neue\", Arial, sans-serif;\n  color: #2c2c2c;\n  line-height: 1.7;\n  font-size: 16px;\n  max-width: 920px;\n  margin: 0 auto;\n  padding: 24px 0 48px;\n}\n.stf-legal * { box-sizing: border-box; }<\/p>\n<p>.stf-legal .stf-hero {\n  padding: 28px 0 36px;\n  border-bottom: 1px solid #ece5dc;\n  margin-bottom: 32px;\n}\n.stf-legal .stf-eyebrow {\n  display: inline-block;\n  font-size: 11px;\n  letter-spacing: 1.8px;\n  text-transform: uppercase;\n  color: #B37135;\n  padding: 6px 14px;\n  border: 1px solid rgba(179, 113, 53, 0.4);\n  border-radius: 999px;\n  margin-bottom: 20px;\n  font-weight: 600;\n}\n.stf-legal .stf-hero-title {\n  font-family: Georgia, \"Times New Roman\", serif;\n  font-size: clamp(28px, 3.5vw, 42px);\n  line-height: 1.2;\n  letter-spacing: -0.3px;\n  color: #2c2c2c;\n  margin: 0 0 14px;\n  font-weight: 500;\n}\n.stf-legal .stf-hero-title em {\n  color: #B37135;\n  font-style: normal;\n}\n.stf-legal .stf-hero-lede {\n  font-size: 17px;\n  color: #555;\n  margin: 0;\n  max-width: 780px;\n}\n.stf-legal .stf-meta {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 14px 28px;\n  margin-top: 22px;\n  font-size: 13px;\n  color: #666;\n}\n.stf-legal .stf-meta strong {\n  display: block;\n  font-size: 10.5px;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  color: #B37135;\n  margin-bottom: 2px;\n  font-weight: 700;\n}<\/p>\n<p>.stf-legal h2 {\n  font-family: Georgia, \"Times New Roman\", serif;\n  font-size: 24px;\n  font-weight: 500;\n  color: #B37135;\n  margin: 48px 0 12px;\n  padding-bottom: 8px;\n  border-bottom: 1px solid #ece5dc;\n  scroll-margin-top: 80px;\n  letter-spacing: -0.2px;\n}\n.stf-legal h3 {\n  font-size: 17px;\n  color: #2c2c2c;\n  margin: 26px 0 8px;\n  font-weight: 700;\n}\n.stf-legal h4 {\n  font-size: 14px;\n  color: #B37135;\n  margin: 18px 0 6px;\n  font-weight: 700;\n  letter-spacing: 0.3px;\n  text-transform: uppercase;\n}\n.stf-legal p { margin: 10px 0; color: #2c2c2c; }\n.stf-legal strong { color: #1a1a1a; font-weight: 700; }\n.stf-legal em { color: #B37135; font-style: normal; }\n.stf-legal a {\n  color: #B37135;\n  text-decoration: underline;\n  text-underline-offset: 2px;\n  text-decoration-color: rgba(179, 113, 53, 0.4);\n}\n.stf-legal a:hover { color: #8A5525; }<\/p>\n<p>.stf-legal ul, .stf-legal ol { color: #2c2c2c; padding-left: 22px; margin: 10px 0 14px; }\n.stf-legal li { margin: 5px 0; }\n.stf-legal li::marker { color: #B37135; }<\/p>\n<p>.stf-legal blockquote {\n  margin: 18px 0;\n  padding: 14px 22px;\n  border-left: 3px solid #B37135;\n  background: #fbf7f1;\n  color: #3a3a3a;\n  border-radius: 0 6px 6px 0;\n  font-size: 15px;\n  line-height: 1.6;\n}\n.stf-legal blockquote p {\n  margin: 0 0 12px;\n  color: #3a3a3a;\n}\n.stf-legal blockquote p:last-child { margin-bottom: 0; }\n.stf-legal blockquote ol {\n  margin: 10px 0 12px;\n  padding-left: 22px;\n}\n.stf-legal blockquote li { margin: 4px 0; }<\/p>\n<p>.stf-legal .stf-callout {\n  margin: 22px 0;\n  padding: 16px 20px;\n  background: #fbf7f1;\n  border: 1px solid #ece5dc;\n  border-left: 3px solid #B37135;\n  border-radius: 8px;\n}\n.stf-legal .stf-callout-label {\n  font-size: 11px;\n  letter-spacing: 1.4px;\n  text-transform: uppercase;\n  color: #B37135;\n  margin-bottom: 6px;\n  font-weight: 700;\n}<\/p>\n<p>.stf-legal table.stf-table {\n  width: 100%;\n  border-collapse: collapse;\n  margin: 18px 0;\n  font-size: 14px;\n  border: 1px solid #ece5dc;\n  background: #ffffff;\n}\n.stf-legal table.stf-table th {\n  background: #fbf7f1;\n  color: #B37135;\n  text-align: left;\n  font-size: 11px;\n  letter-spacing: 0.5px;\n  text-transform: uppercase;\n  padding: 10px 12px;\n  border-bottom: 1px solid #ece5dc;\n  font-weight: 700;\n}\n.stf-legal table.stf-table td {\n  padding: 10px 12px;\n  border-top: 1px solid #f2ece3;\n  vertical-align: top;\n  color: #2c2c2c;\n}\n.stf-legal table.stf-table code {\n  font-family: \"SF Mono\", Menlo, Consolas, monospace;\n  font-size: 12.5px;\n  color: #8A5525;\n  background: #fbf7f1;\n  padding: 1px 6px;\n  border-radius: 4px;\n}<\/p>\n<p>.stf-legal .stf-pill {\n  display: inline-block;\n  padding: 2px 10px;\n  border-radius: 999px;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.3px;\n}\n.stf-legal .stf-pill--dangerous { background: #fdeceb; color: #c0392b; }\n.stf-legal .stf-pill--normal    { background: #e8f1f8; color: #2879b8; }\n.stf-legal .stf-pill--optional  { background: #eeeeee; color: #666; }\n.stf-legal .stf-pill--mit       { background: #e4f3e9; color: #23874a; }\n.stf-legal .stf-pill--bsd       { background: #e8f1f8; color: #2879b8; }\n.stf-legal .stf-pill--apache    { background: #fbf1e3; color: #B37135; }<\/p>\n<p>.stf-legal .stf-toc {\n  background: #fbf7f1;\n  border: 1px solid #ece5dc;\n  border-radius: 8px;\n  padding: 20px 24px;\n  margin: 0 0 32px;\n}\n.stf-legal .stf-toc-title {\n  font-size: 11px;\n  letter-spacing: 1.4px;\n  text-transform: uppercase;\n  color: #B37135;\n  margin: 0 0 12px;\n  font-weight: 700;\n}\n.stf-legal .stf-toc ol {\n  padding-left: 0;\n  margin: 0;\n  list-style: none;\n  counter-reset: toc;\n  columns: 2;\n  column-gap: 24px;\n}\n.stf-legal .stf-toc li {\n  counter-increment: toc;\n  margin: 4px 0;\n  break-inside: avoid;\n}\n.stf-legal .stf-toc li::before {\n  content: counter(toc, decimal-leading-zero) \"  \";\n  color: #B37135;\n  font-family: \"SF Mono\", Menlo, monospace;\n  font-size: 11px;\n  margin-right: 4px;\n}\n.stf-legal .stf-toc a {\n  color: #555;\n  font-size: 13.5px;\n  text-decoration: none;\n}\n.stf-legal .stf-toc a:hover { color: #B37135; }<\/p>\n<p>@media (max-width: 640px) {\n  .stf-legal { padding: 16px 0 36px; font-size: 15px; }\n  .stf-legal .stf-hero-title { font-size: clamp(22px, 6.5vw, 30px); }\n  .stf-legal .stf-hero-lede { font-size: 15.5px; }\n  .stf-legal h2 { font-size: 21px; margin-top: 36px; }\n  .stf-legal table.stf-table {\n    display: block;\n    overflow-x: auto;\n    font-size: 13px;\n    -webkit-overflow-scrolling: touch;\n  }\n  .stf-legal .stf-toc ol { columns: 1; }\n}<\/p>\n<\/style>\n<div class=\"stf-legal\">\n<div class=\"stf-hero\">\n    <span class=\"stf-eyebrow\">Document 04 of 04 \u00b7 Open Source<\/span><\/p>\n<h1 class=\"stf-hero-title\">The <em>open-source software<\/em> that ships inside STF Capital.<\/h1>\n<p class=\"stf-hero-lede\">\n      The STF Capital application stands on the shoulders of a substantial open-source<br \/>\n      ecosystem &mdash; a framework, a runtime, dozens of libraries and the tooling<br \/>\n      that builds and signs the binary on the way to the Google Play Store. This page<br \/>\n      discloses every piece of third-party open-source code that ships to your device,<br \/>\n      identifies the licence it is offered under, names the upstream maintainer or<br \/>\n      community, and records the obligations STF Capital has voluntarily accepted in<br \/>\n      return for the right to use that code.\n    <\/p>\n<div class=\"stf-meta\">\n<div><strong>Version<\/strong> 1.0<\/div>\n<div><strong>Effective date<\/strong> 16 April 2026<\/div>\n<div><strong>Build target<\/strong> <code>com.stfcapital.app<\/code> v1.0.0<\/div>\n<div><strong>Direct dependencies<\/strong> 27 packages<\/div>\n<div><strong>Licence families<\/strong> MIT, BSD-3-Clause, Apache-2.0<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"stf-toc\">\n<div class=\"stf-toc-title\">On this page<\/div>\n<ol>\n<li><a href=\"#summary\">Why this page exists<\/a><\/li>\n<li><a href=\"#methodology\">Methodology<\/a><\/li>\n<li><a href=\"#licence-primer\">Licence primer<\/a><\/li>\n<li><a href=\"#platform\">Platform &amp; language<\/a><\/li>\n<li><a href=\"#state-nav\">State &amp; navigation<\/a><\/li>\n<li><a href=\"#backend\">Backend &amp; networking<\/a><\/li>\n<li><a href=\"#ui\">UI libraries<\/a><\/li>\n<li><a href=\"#files\">File handling<\/a><\/li>\n<li><a href=\"#security\">Auth &amp; security<\/a><\/li>\n<li><a href=\"#firebase\">Firebase services<\/a><\/li>\n<li><a href=\"#notifications\">Local notifications<\/a><\/li>\n<li><a href=\"#utils\">Utilities<\/a><\/li>\n<li><a href=\"#pdf\">PDF generation<\/a><\/li>\n<li><a href=\"#otp\">OTP &amp; QR<\/a><\/li>\n<li><a href=\"#dev-only\">Dev-only tooling<\/a><\/li>\n<li><a href=\"#licence-texts\">Full licence texts<\/a><\/li>\n<li><a href=\"#compliance\">Our compliance commitments<\/a><\/li>\n<li><a href=\"#request\">How to request source<\/a><\/li>\n<li><a href=\"#contact\">Contact<\/a><\/li>\n<\/ol><\/div>\n<h2 id=\"summary\">1. Why this page exists<\/h2>\n<p>Most open-source licences in common use &mdash; the MIT Licence, the BSD family and the Apache Licence 2.0 &mdash; impose a simple but firm obligation: when you distribute software that incorporates the licensed code, you must preserve the copyright notice, the licence text and any notices file shipped by the upstream author.<\/p>\n<p>Distribution through the Google Play Store counts as distribution for those purposes. STF Capital takes compliance seriously because it is the right thing to do, because Google Play policy increasingly expects it, and because the people who wrote the libraries we rely on deserve visible credit. Section&nbsp;17 below sets out the voluntary commitments we make in addition to the strict letter of each licence.<\/p>\n<h2 id=\"methodology\">2. Methodology<\/h2>\n<p>The list below is generated by reading <code>pubspec.yaml<\/code> and the resolved <code>pubspec.lock<\/code>, supplemented by the Android Gradle dependency graph for platform-specific libraries pulled in transitively. Only direct dependencies are enumerated; transitive packages inherit the licence category of their direct parent. A full SPDX&nbsp;2.3 JSON SBOM is available on request (see \u00a718).<\/p>\n<h2 id=\"licence-primer\">3. Licence primer<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Licence family<\/th>\n<th>What it allows<\/th>\n<th>What it requires from us<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><span class=\"stf-pill stf-pill--mit\">MIT<\/span><\/td>\n<td>Unrestricted use, modification and distribution, including commercial<\/td>\n<td>Preserve the copyright notice and the licence text<\/td>\n<\/tr>\n<tr>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<td>Same as MIT<\/td>\n<td>Preserve copyright, licence, disclaimer; do not use contributor names to endorse<\/td>\n<\/tr>\n<tr>\n<td><span class=\"stf-pill stf-pill--apache\">Apache-2.0<\/span><\/td>\n<td>Same as MIT, with explicit patent grant<\/td>\n<td>Preserve copyright &amp; licence, reproduce NOTICE, record modifications<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"platform\">4. Platform &amp; language<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Flutter<\/td>\n<td>UI toolkit, rendering engine and Dart runtime<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td>Dart SDK<\/td>\n<td>Language and standard library<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"state-nav\">5. State management &amp; navigation<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Version<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>provider<\/code><\/td>\n<td>^6.1.1<\/td>\n<td>Dependency injection \/ observable state<\/td>\n<td><span class=\"stf-pill stf-pill--mit\">MIT<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>go_router<\/code><\/td>\n<td>^13.0.0<\/td>\n<td>Declarative navigation helper<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"backend\">6. Backend &amp; networking<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>supabase_flutter<\/code> ^2.3.0<\/td>\n<td>Flutter bindings for Supabase (auth, realtime, storage, RPC)<\/td>\n<td><span class=\"stf-pill stf-pill--apache\">Apache-2.0<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>http<\/code> ^1.2.0<\/td>\n<td>HTTP client for signed URL downloads<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>connectivity_plus<\/code> ^6.0.3<\/td>\n<td>Online\/offline signal<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>url_launcher<\/code> ^6.2.5<\/td>\n<td>Launch external URLs and phone links<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"ui\">7. User-interface libraries<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>flutter_svg<\/code> ^2.0.10+1<\/td>\n<td>SVG rendering<\/td>\n<td><span class=\"stf-pill stf-pill--mit\">MIT<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>flutter_animate<\/code> ^4.5.0<\/td>\n<td>Motion across splash and dashboard<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>shimmer<\/code> ^3.0.0<\/td>\n<td>Loading skeletons<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>cached_network_image<\/code> ^3.3.1<\/td>\n<td>Image caching<\/td>\n<td><span class=\"stf-pill stf-pill--mit\">MIT<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>fl_chart<\/code> ^0.67.0<\/td>\n<td>Analytics charts<\/td>\n<td><span class=\"stf-pill stf-pill--mit\">MIT<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"files\">8. File handling<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>file_picker<\/code> ^8.0.3<\/td>\n<td>Document selection from device storage<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>image_picker<\/code> ^1.0.7<\/td>\n<td>Camera capture and gallery<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>path_provider<\/code> ^2.1.2<\/td>\n<td>Platform-specific cache paths<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>open_file<\/code> ^3.3.2<\/td>\n<td>Open downloaded files natively<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"security\">9. Authentication &amp; security<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>local_auth<\/code> ^2.1.8<\/td>\n<td>Biometric unlock<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>flutter_secure_storage<\/code> ^9.0.0<\/td>\n<td>Android Keystore-backed storage<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>crypto<\/code> ^3.0.3<\/td>\n<td>PBKDF2-HMAC-SHA256 PIN hashing<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"firebase\">10. Firebase services<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>firebase_core<\/code> ^3.12.0<\/td>\n<td>Firebase SDK init<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>firebase_messaging<\/code> ^15.2.0<\/td>\n<td>Push notifications<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Firebase Analytics, Crashlytics, Performance Monitoring and Remote Config are <strong>not<\/strong> embedded in the Application.<\/p>\n<h2 id=\"notifications\">11. Local notifications<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>flutter_local_notifications<\/code> ^17.1.2<\/td>\n<td>Native system-notification rendering<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"utils\">12. Utilities<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>intl<\/code> ^0.19.0<\/td>\n<td>Locale-aware formatting<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>uuid<\/code> ^4.3.3<\/td>\n<td>Correlation IDs<\/td>\n<td><span class=\"stf-pill stf-pill--mit\">MIT<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>shared_preferences<\/code> ^2.2.2<\/td>\n<td>Small non-sensitive key\/value<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"pdf\">13. PDF generation<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>pdf<\/code> ^3.11.0<\/td>\n<td>Compose deal PDFs and analytics exports<\/td>\n<td><span class=\"stf-pill stf-pill--apache\">Apache-2.0<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>printing<\/code> ^5.13.0<\/td>\n<td>Preview, share and print PDFs<\/td>\n<td><span class=\"stf-pill stf-pill--apache\">Apache-2.0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"otp\">14. One-time passwords &amp; QR<\/h2>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>otp<\/code> ^3.1.4<\/td>\n<td>TOTP generation (future 2FA)<\/td>\n<td><span class=\"stf-pill stf-pill--mit\">MIT<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>qr_flutter<\/code> ^4.1.0<\/td>\n<td>QR codes for authenticator enrolment<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"dev-only\">15. Development-only tooling<\/h2>\n<p>These packages are used during development and build but do not ship inside the delivered binary:<\/p>\n<table class=\"stf-table\">\n<thead>\n<tr>\n<th>Package<\/th>\n<th>Role<\/th>\n<th>Licence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>flutter_test<\/code><\/td>\n<td>Unit and widget tests<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>flutter_lints<\/code> ^3.0.0<\/td>\n<td>Static analysis rule set<\/td>\n<td><span class=\"stf-pill stf-pill--bsd\">BSD-3-Clause<\/span><\/td>\n<\/tr>\n<tr>\n<td><code>flutter_launcher_icons<\/code> ^0.13.1<\/td>\n<td>Launcher-icon generation<\/td>\n<td><span class=\"stf-pill stf-pill--mit\">MIT<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"licence-texts\">16. Full licence texts<\/h2>\n<p>Every per-package licence text is reproduced verbatim inside the Application itself, accessible from <em>Profile \u2192 Trust &amp; Transparency \u2192 Open Source Licences<\/em>. The three licence family texts below are provided here for convenience.<\/p>\n<h3>16.1&nbsp;&nbsp;MIT Licence<\/h3>\n<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &ldquo;Software&rdquo;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and\/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:<\/p>\n<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.<\/p>\n<p>THE SOFTWARE IS PROVIDED &ldquo;AS IS&rdquo;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<\/p>\n<h3>16.2&nbsp;&nbsp;BSD 3-Clause Licence<\/h3>\n<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<\/p>\n<ol>\n<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<\/li>\n<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and\/or other materials provided with the distribution.<\/li>\n<li>Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.<\/li>\n<\/ol>\n<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &ldquo;AS IS&rdquo; AND ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED.<\/p>\n<h3>16.3&nbsp;&nbsp;Apache Licence 2.0 (summary)<\/h3>\n<p>Full text at <a href=\"https:\/\/www.apache.org\/licenses\/LICENSE-2.0\">www.apache.org\/licenses\/LICENSE-2.0<\/a>. Operative requirements: retain copyright, disclaimer and licence; reproduce any NOTICE; mark modified files in distributed source; respect the express patent grant.<\/p>\n<h2 id=\"compliance\">17. Our licence-compliance commitments<\/h2>\n<ol>\n<li>Publishing this attributions page at a stable URL so users can find it without asking.<\/li>\n<li>Reproducing full per-package licence text inside the Application via the standard <code>showLicensePage<\/code> helper.<\/li>\n<li>Keeping <code>pubspec.yaml<\/code>, <code>pubspec.lock<\/code> and Android <code>build.gradle.kts<\/code> under version control so any released APK is reproducible.<\/li>\n<li>Accepting written requests for the resolved SBOM at no charge.<\/li>\n<li>Notifying upstream maintainers of security issues and contributing fixes upstream where we can.<\/li>\n<\/ol>\n<p>Proprietary code written by STF Capital&rsquo;s engineering team is not open source; all rights reserved.<\/p>\n<h2 id=\"request\">18. How to request source<\/h2>\n<p>Every dependency is distributed under a permissive licence with source available in its upstream repository. If you require the exact <code>pubspec.lock<\/code> for a specific release, an SPDX 2.3 SBOM, or patches STF Capital has applied to a third-party library, email <a href=\"mailto:inquiries@stfcapital.org\">inquiries@stfcapital.org<\/a> with subject &ldquo;Open Source &mdash; Source Request&rdquo;. We respond within 10 Business Days.<\/p>\n<h2 id=\"contact\">19. Contact the open-source compliance desk<\/h2>\n<div class=\"stf-callout\">\n<div class=\"stf-callout-label\">STF Capital &mdash; open-source compliance desk<\/div>\n<p>    Attn: Engineering Compliance<br \/>\n    STF Capital Private Limited<br \/>\n    Unit 9, 75 Roberts Drive, Msasa, Harare, Zimbabwe<br \/>\n    Email: <a href=\"mailto:inquiries@stfcapital.org\">inquiries@stfcapital.org<\/a> (subject &ldquo;Open Source&rdquo;)\n  <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Document 04 of 04 \u00b7 Open Source The open-source software that ships inside STF Capital. The STF Capital application stands on the shoulders of a substantial open-source ecosystem &mdash; a framework, a runtime, dozens of libraries and the tooling that builds and signs the binary on the way to the Google Play Store. This page &hellip; <\/p>\n<p class=\"more-link-wrap\"><a href=\"https:\/\/stfcapital.org\/index.php\/legal\/open-source-licences\/\" class=\"more-link\"><span>Read More<span class=\"screen-reader-text\"> &#8220;Open Source Licences&#8221;<\/span><\/span><i class=\"opal-icon-arrow-right\" aria-hidden=\"true\"><\/i><\/a><\/p>\n","protected":false},"author":6309,"featured_media":0,"parent":6092,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-6100","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/pages\/6100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/users\/6309"}],"replies":[{"embeddable":true,"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/comments?post=6100"}],"version-history":[{"count":5,"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/pages\/6100\/revisions"}],"predecessor-version":[{"id":6108,"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/pages\/6100\/revisions\/6108"}],"up":[{"embeddable":true,"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/pages\/6092"}],"wp:attachment":[{"href":"https:\/\/stfcapital.org\/index.php\/wp-json\/wp\/v2\/media?parent=6100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}