{"version":3,"sources":["../../src/helpers/uuid.ts"],"sourcesContent":["/**\n * Generates v4 UUIDs in both browser and Node environments\n * @example\n * const uuid = generateUUIDv4()\n */\nexport function generateUUIDv4 (): string {\n    // globalThis.crypto is available in: browsers, ESM Node ≥ 15, CJS Node ≥ 15\n    const webCrypto = typeof globalThis !== 'undefined' ? globalThis.crypto : undefined\n\n    if (webCrypto && typeof webCrypto.randomUUID === 'function') {\n        return webCrypto.randomUUID()\n    }\n\n    let randomValues: Uint8Array\n\n    if (webCrypto && typeof webCrypto.getRandomValues === 'function') {\n        randomValues = new Uint8Array(16)\n        webCrypto.getRandomValues(randomValues)\n    } else {\n        // Fallback for CJS Node < 15 where globalThis.crypto is absent.\n        // Wrapped in try/catch so bundlers (webpack/esbuild) can tree-shake it safely.\n        try {\n            // eslint-disable-next-line @typescript-eslint/no-var-requires\n            const { randomBytes } = require('crypto')\n            randomValues = randomBytes(16)\n        } catch {\n            throw new Error('No secure random source available in this environment')\n        }\n    }\n\n    // Setting the version (4) and variant (RFC4122)\n    randomValues[6] = (randomValues[6] & 0x0f) | 0x40 // version 4\n    randomValues[8] = (randomValues[8] & 0x3f) | 0x80 // variant\n\n    return [...randomValues]\n        .map((value, index) => {\n            const hex = value.toString(16).padStart(2, '0')\n            if (index === 4 || index === 6 || index === 8 || index === 10) {\n                return `-${hex}`\n            }\n            return hex\n        })\n        .join('')\n}\n"],"mappings":";;;;;;;;AAKO,SAAS,iBAA0B;AAEtC,QAAM,YAAY,OAAO,eAAe,cAAc,WAAW,SAAS;AAE1E,MAAI,aAAa,OAAO,UAAU,eAAe,YAAY;AACzD,WAAO,UAAU,WAAW;AAAA,EAChC;AAEA,MAAI;AAEJ,MAAI,aAAa,OAAO,UAAU,oBAAoB,YAAY;AAC9D,mBAAe,IAAI,WAAW,EAAE;AAChC,cAAU,gBAAgB,YAAY;AAAA,EAC1C,OAAO;AAGH,QAAI;AAEA,YAAM,EAAE,YAAY,IAAI,UAAQ,QAAQ;AACxC,qBAAe,YAAY,EAAE;AAAA,IACjC,QAAQ;AACJ,YAAM,IAAI,MAAM,uDAAuD;AAAA,IAC3E;AAAA,EACJ;AAGA,eAAa,CAAC,IAAK,aAAa,CAAC,IAAI,KAAQ;AAC7C,eAAa,CAAC,IAAK,aAAa,CAAC,IAAI,KAAQ;AAE7C,SAAO,CAAC,GAAG,YAAY,EAClB,IAAI,CAAC,OAAO,UAAU;AACnB,UAAM,MAAM,MAAM,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAC9C,QAAI,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,IAAI;AAC3D,aAAO,IAAI,GAAG;AAAA,IAClB;AACA,WAAO;AAAA,EACX,CAAC,EACA,KAAK,EAAE;AAChB;","names":[]}