/* node:coverage disable */ export class OutOfRange extends RangeError { private constructor(public value: never) { super(`Value ${String(value)} is out of range`, { cause: value }); } static exhaustive(value: never): OutOfRange { return new OutOfRange(value); } static nonExhaustive(value: unknown): OutOfRange { return new OutOfRange(value as never); } } /* node:coverage enable */ export function callable( onCalled = (target: Class, _thisArg: unknown, args: unknown[]) => Reflect.construct(target as new (...args: unknown[]) => unknown, args), ) { const handler: ProxyHandler = Object.freeze({ __proto__: null, apply: onCalled, }); return function decorator(classValue: Class, _classContext: ClassDecoratorContext unknown)>) { return new Proxy(classValue, handler); }; } export type Mutable = { -readonly [P in keyof T]: T[P]; }; export const isArray: (arg: unknown) => arg is readonly unknown[] = Array.isArray; export function __ts_cast__(_value: unknown): asserts _value is T { }