{
  "version": 3,
  "sources": ["../../../../src/packages/crypto.object-hasher/index.ts"],
  "sourcesContent": ["import isEmpty from 'ramda/src/isEmpty';\n\n// We use object-hash even though node-object-hash is faster.\n// Unlike node-object-hash, object-hash is streaming the hash updates,\n// avoiding \"Invalid string length\" errors.\nimport hash from 'object-hash';\nimport type { DepStateObj } from '../calc-dep-state/index.ts';\n\nconst defaultOptions: hash.NormalOption = {\n  respectType: false,\n  algorithm: 'sha1',\n  encoding: 'base64',\n};\n\nconst withoutSortingOptions: hash.NormalOption = {\n  ...defaultOptions,\n  unorderedArrays: false,\n  unorderedObjects: false,\n  unorderedSets: false,\n};\n\nconst withSortingOptions: hash.NormalOption = {\n  ...defaultOptions,\n  unorderedArrays: true,\n  unorderedObjects: true,\n  unorderedSets: true,\n};\n\nfunction hashUnknown(\n  object: DepStateObj | undefined,\n  options: hash.BaseOptions\n): string {\n  if (typeof object === 'undefined') {\n    // '0'.repeat(44) to match the length of other returned sha1 hashes.\n    return '00000000000000000000000000000000000000000000';\n  }\n  return hash(object, options);\n}\n\nexport function hashObjectWithoutSorting(\n  object: DepStateObj | undefined\n): string {\n  return hashUnknown(object, withoutSortingOptions);\n}\n\nexport function hashObject(object: DepStateObj | undefined): string {\n  return hashUnknown(object, withSortingOptions);\n}\n\nexport type PrefixedHash = `sha256-${string}`;\n\nexport function hashObjectNullableWithPrefix(\n  object: Record<string, unknown> | undefined\n): PrefixedHash | undefined {\n  if (!object || isEmpty.default(object)) {\n    return undefined;\n  }\n\n  const packageExtensionsChecksum = hash(object, withSortingOptions);\n\n  return `sha256-${packageExtensionsChecksum}`;\n}\n"],
  "mappings": "AAAA,OAAO,aAAa;AAKpB,OAAO,UAAU;AAGjB,MAAM,iBAAoC;AAAA,EACxC,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AACZ;AAEA,MAAM,wBAA2C;AAAA,EAC/C,GAAG;AAAA,EACH,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,eAAe;AACjB;AAEA,MAAM,qBAAwC;AAAA,EAC5C,GAAG;AAAA,EACH,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,eAAe;AACjB;AAEA,SAAS,YACP,QACA,SACQ;AACR,MAAI,OAAO,WAAW,aAAa;AAEjC,WAAO;AAAA,EACT;AACA,SAAO,KAAK,QAAQ,OAAO;AAC7B;AAEO,SAAS,yBACd,QACQ;AACR,SAAO,YAAY,QAAQ,qBAAqB;AAClD;AAEO,SAAS,WAAW,QAAyC;AAClE,SAAO,YAAY,QAAQ,kBAAkB;AAC/C;AAIO,SAAS,6BACd,QAC0B;AAC1B,MAAI,CAAC,UAAU,QAAQ,QAAQ,MAAM,GAAG;AACtC,WAAO;AAAA,EACT;AAEA,QAAM,4BAA4B,KAAK,QAAQ,kBAAkB;AAEjE,SAAO,UAAU,yBAAyB;AAC5C;",
  "names": []
}
