Something went wrong. Try again.
a tiny pet with a GPT-2 brain, living in your browser
Something went wrong. Try again.
12345678910111213141516171819import { freshSave, parseSave as parse, saveVersion } from "../core.ts";import type { PetState } from "../types.ts";
// Save versions and migrations live in the shared rules (core/src/save.rs). A// save that cannot be read (corrupt, from a newer version, or a failed// migration) is never overwritten: it becomes a "bad egg" that the owner can// download or replace.export const timeZone = () => Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";export const VERSION = () => saveVersion();export function fresh(): PetState { return freshSave(Date.now(), timeZone());}/** Throws with `newer` set for a save from a newer version. */export function parseSave(raw: string): PetState { const result = parse(raw, Date.now(), timeZone()); if ("state" in result) return result.state; throw Object.assign(new Error(result.error), { newer: result.newer });}