@kanunilabs/licensing / LicenseReasonCode
Type Alias: LicenseReasonCode
LicenseReasonCode =
"valid"|"grace"|"checking"|"missing"|"invalid-format"|"invalid-signature"|"engine-unavailable"|"expired"|"release-not-covered"|"domain-mismatch"|"revoked"
WHY a verification ended the way it did — finer than status, and stable
enough to translate. The watermark shows it and the console notice names it.
Added beside status rather than as new statuses so the LicenseStatus
union (which callers switch on) is unchanged. Two codes only exist here:
engine-unavailable— statusinvalid-signature: neither WebCrypto (browsers expose it only on HTTPS/localhost) nor the JavaScript fallback could run, so the key could not be CHECKED. Not "the key is bad".release-not-covered— statusexpired: a perpetual key whose update period ended before this build was released.