{"version":3,"file":"transforms.mjs","sources":["../../../../src/services/document-service/attributes/transforms.ts"],"sourcesContent":["import { getOr, toNumber, isString } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport bcrypt from 'bcryptjs';\n\ntype Transforms = {\n  [TKind in Schema.Attribute.Kind]?: (\n    value: unknown,\n    context: {\n      attribute: Schema.Attribute.AnyAttribute;\n      attributeName: string;\n    }\n  ) => any;\n};\n\nconst transforms: Transforms = {\n  password(value, context) {\n    const { attribute } = context;\n\n    if (attribute.type !== 'password') {\n      throw new Error('Invalid attribute type');\n    }\n\n    if (!isString(value) && !(value instanceof Buffer)) {\n      return value;\n    }\n\n    const rounds = toNumber(getOr(10, 'encryption.rounds', attribute));\n\n    return bcrypt.hashSync(value.toString(), rounds);\n  },\n};\n\nexport default transforms;\n"],"names":["transforms","password","value","context","attribute","type","Error","isString","Buffer","rounds","toNumber","getOr","bcrypt","hashSync","toString"],"mappings":";;;AAcA,MAAMA,UAAAA,GAAyB;IAC7BC,QAAAA,CAAAA,CAASC,KAAK,EAAEC,OAAO,EAAA;QACrB,MAAM,EAAEC,SAAS,EAAE,GAAGD,OAAAA;QAEtB,IAAIC,SAAAA,CAAUC,IAAI,KAAK,UAAA,EAAY;AACjC,YAAA,MAAM,IAAIC,KAAAA,CAAM,wBAAA,CAAA;AAClB,QAAA;AAEA,QAAA,IAAI,CAACC,QAAAA,CAASL,KAAAA,CAAAA,IAAU,EAAEA,KAAAA,YAAiBM,MAAK,CAAA,EAAI;YAClD,OAAON,KAAAA;AACT,QAAA;AAEA,QAAA,MAAMO,MAAAA,GAASC,QAAAA,CAASC,KAAAA,CAAM,EAAA,EAAI,mBAAA,EAAqBP,SAAAA,CAAAA,CAAAA;AAEvD,QAAA,OAAOQ,MAAAA,CAAOC,QAAQ,CAACX,KAAAA,CAAMY,QAAQ,EAAA,EAAIL,MAAAA,CAAAA;AAC3C,IAAA;AACF;;;;"}