{"version":3,"file":"random-id.cjs","names":["uuid"],"sources":["../../src/utils/random-id.ts"],"sourcesContent":["import { v4 as uuidv4, validate, v5 as uuidv5 } from \"uuid\";\n\nexport function randomId() {\n  return \"ck-\" + uuidv4();\n}\n\nexport function randomUUID() {\n  return uuidv4();\n}\n\n/**\n * Recursively converts an object to a serializable form by converting functions to their string representation.\n */\nfunction toSerializable(value: unknown): unknown {\n  if (typeof value === \"function\") {\n    return value.toString();\n  }\n  if (Array.isArray(value)) {\n    return value.map(toSerializable);\n  }\n  if (value !== null && typeof value === \"object\") {\n    const result: Record<string, unknown> = {};\n    for (const key of Object.keys(value)) {\n      result[key] = toSerializable((value as Record<string, unknown>)[key]);\n    }\n    return result;\n  }\n  return value;\n}\n\nexport function dataToUUID(input: string | object, namespace?: string): string {\n  const BASE_NAMESPACE = \"e4b01160-ff74-4c6e-9b27-d53cd930fe8e\";\n  // Since namespace needs to be a uuid, we are creating a uuid for it.\n  const boundNamespace = namespace\n    ? uuidv5(namespace, BASE_NAMESPACE)\n    : BASE_NAMESPACE;\n\n  const stringInput =\n    typeof input === \"string\" ? input : JSON.stringify(toSerializable(input));\n  return uuidv5(stringInput, boundNamespace);\n}\n\nexport function isValidUUID(uuid: string) {\n  return validate(uuid);\n}\n"],"mappings":";;;;AAEA,SAAgB,WAAW;AACzB,QAAO,sBAAgB;;AAGzB,SAAgB,aAAa;AAC3B,sBAAe;;;;;AAMjB,SAAS,eAAe,OAAyB;AAC/C,KAAI,OAAO,UAAU,WACnB,QAAO,MAAM,UAAU;AAEzB,KAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,IAAI,eAAe;AAElC,KAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;EAC/C,MAAM,SAAkC,EAAE;AAC1C,OAAK,MAAM,OAAO,OAAO,KAAK,MAAM,CAClC,QAAO,OAAO,eAAgB,MAAkC,KAAK;AAEvE,SAAO;;AAET,QAAO;;AAGT,SAAgB,WAAW,OAAwB,WAA4B;CAC7E,MAAM,iBAAiB;CAEvB,MAAM,iBAAiB,yBACZ,WAAW,eAAe,GACjC;AAIJ,qBADE,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,eAAe,MAAM,CAAC,EAChD,eAAe;;AAG5C,SAAgB,YAAY,QAAc;AACxC,2BAAgBA,OAAK"}