{"version":3,"file":"zero.cjs","sources":["../src/zero.ts"],"sourcesContent":["import type { PaddingComponent, PresetComponent } from '@jscrypto/core';\n\nexport const zeroPadding: PaddingComponent<'ZeroPadding'> = {\n  kind: 'padding',\n  name: 'ZeroPadding',\n\n  pad(input, blockSize) {\n    if (!Number.isInteger(blockSize) || blockSize <= 0) {\n      throw new RangeError('blockSize must be a positive integer.');\n    }\n\n    const remainder = input.length % blockSize;\n    if (remainder === 0) {\n      return input.slice();\n    }\n\n    const output = new Uint8Array(input.length + blockSize - remainder);\n    output.set(input);\n    return output;\n  },\n\n  unpad(input) {\n    let end = input.length;\n    while (end > 0 && input[end - 1] === 0) {\n      end--;\n    }\n    return input.slice(0, end);\n  },\n};\n\nexport const zeroPaddingPreset: PresetComponent<'zero'> = {\n  kind: 'preset',\n  name: 'zero',\n  components() {\n    return [zeroPadding];\n  },\n};\n"],"names":[],"mappings":";;;;;;;AAEO,MAAM,WAAW,GAAoC;AAC1D,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,aAAa;IAEnB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE;AAClD,YAAA,MAAM,IAAI,UAAU,CAAC,uCAAuC,CAAC;QAC/D;AAEA,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS;AAC1C,QAAA,IAAI,SAAS,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,KAAK,CAAC,KAAK,EAAE;QACtB;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AACnE,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACjB,QAAA,OAAO,MAAM;IACf,CAAC;AAED,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM;AACtB,QAAA,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,GAAG,EAAE;QACP;QACA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,CAAC;;AAGI,MAAM,iBAAiB,GAA4B;AACxD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;IACZ,UAAU,GAAA;QACR,OAAO,CAAC,WAAW,CAAC;IACtB,CAAC;;;;;;"}