7c858ba633
Rename product to TTRPG Player (TTRPGPlayer / com.ttrpgplayer.app), use .ttrpg.zip for new saves while keeping .dnd.zip import, accept TTRPG- and DND- license keys on client, and remove sync-update-feed plus CI push to DndGamePlayerUpdates. Co-authored-by: Cursor <cursoragent@cursor.com>
14 lines
598 B
TypeScript
14 lines
598 B
TypeScript
/** Продуктовый ключ активации (не путать с лицензионным токеном `base64.base64`). */
|
|
const TTRPG_PRODUCT_KEY_RE = /^TTRPG-[0-9A-F]{8}-(?:[0-9A-F]{4}-){3}[0-9A-F]{12}$/iu;
|
|
const DND_PRODUCT_KEY_RE = /^DND-[0-9A-F]{8}-(?:[0-9A-F]{4}-){3}[0-9A-F]{12}$/iu;
|
|
|
|
export function isProductKey(s: string): boolean {
|
|
const t = s.trim();
|
|
return TTRPG_PRODUCT_KEY_RE.test(t) || DND_PRODUCT_KEY_RE.test(t);
|
|
}
|
|
|
|
/** @deprecated Используйте {@link isProductKey}. */
|
|
export function isDndProductKey(s: string): boolean {
|
|
return isProductKey(s);
|
|
}
|