Drop the in-app unlock key: only the PRO apk opens PRO

The set is two apks and the unlock key was a second, weaker lock on the
same door. A verifier that runs offline has to carry its secret inside
the lite apk, so anyone who unpacked it could mint a key. Nothing in the
lite build can flip the gate now.

- entitlement.ts keeps the gate (which look is PRO, what an export
  carries in lite) and exports IS_PRO straight from the build flag.
- SETTINGS loses the key field; the plan chip still says LITE / PRO
  ACTIVE and the helper text says what lite cannot export.
- The upsell alerts just name the build that has the feature.
- tools/keygen.mjs goes with the verifier it fed.
This commit is contained in:
2026-09-14 20:09:12 +07:00
parent 97949e449d
commit 1b60ca2f22
6 changed files with 35 additions and 210 deletions
+1 -1
View File
@@ -13,6 +13,6 @@ if (tier !== 'lite' && tier !== 'pro') {
writeFileSync(
new URL('../src/provariant.ts', import.meta.url),
`// Generated by tools/set-variant.mjs - do not edit by hand.\n// false = Lite apk (free, unlockable with a key), true = Pro apk (sold as-is).\nexport const IS_PRO_BUILD = ${tier === 'pro'};\n`
`// Generated by tools/set-variant.mjs - do not edit by hand.\n// false = Lite apk (free, PRO looks are preview-only), true = Pro apk (sold as-is).\nexport const IS_PRO_BUILD = ${tier === 'pro'};\n`
);
console.log('src/provariant.ts ->', tier);