/** * Deterministic canonical JSON serializer for Ed25519 signing/verification. * * Why purpose-built and not RFC 8785 (JCS) or a vendored canonicalize lib: * the entitlement payload schema is tightly controlled — flat object, primitives * plus one string array (purchasedPlugins). A 30-line implementation covers it * exactly and stays zero-dep, which matters because the create-maxy bundle * has a hardcoded externalDeps surface that any new runtime dep must thread. * * Rules: * - object keys sorted lexicographically (Array.prototype.sort default) * - no whitespace * - strings JSON.stringify-escaped (handles unicode, quotes, backslashes) * - numbers in finite IEEE 754; reject NaN / Infinity / -0 * - booleans + null verbatim * - arrays preserve element order (signing party owns array semantics) * - throws on unsupported value types (functions, undefined, symbols, bigint) * * Both sides (Rubytech signer + customer verifier) call canonicalize() before * signing/verifying. Canonical bytes are UTF-8 of the returned string. */ export type CanonicalValue = string | number | boolean | null | CanonicalValue[] | { [k: string]: CanonicalValue; }; export declare function canonicalize(value: CanonicalValue): string; //# sourceMappingURL=canonicalize.d.ts.map