"use strict";var p=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var S=(e,o)=>{for(var r in o)p(e,r,{get:o[r],enumerable:!0})},T=(e,o,r,c)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of d(o))!w.call(e,s)&&s!==r&&p(e,s,{get:()=>o[s],enumerable:!(c=C(o,s))||c.enumerable});return e};var v=e=>T(p({},"__esModule",{value:!0}),e);var E={};S(E,{create:()=>i,default:()=>x,restore:()=>O});module.exports=v(E);var a=Date,f=global,h=e=>e,A={modifyEveryCreation:!1},y=(e,o)=>{let r=e||h,{modifyEveryCreation:c}={...A,...o},s=function(t){if(!t||c){let D=this.getTime(),m=r(D);D!==m&&this.setTime(m)}},l=function(){return r(a.now())},n=class extends a{constructor(...t){super(...t),s.call(this,...t)}static apply(t=f){return t.Date=n,()=>n.restore(t)}static restore(t=f){t.Date===n&&(t.Date=a)}};return Object.getOwnPropertyNames(a).forEach(t=>{typeof n[t]=="function"&&(n[t]=a[t])}),n.now=l,n};y.restore=()=>{f.Date!==a&&(f.Date=a)};var i=y;var O=i.restore,u=class{constructor(){throw new Error("DateSpoofer is static")}};u.create=i;u.restore=i.restore;var x=u;0&&(module.exports={create,restore});