jssha
Version:
jsSHA implements the complete Secure Hash Standard (SHA) family (SHA-1, SHA-224/256/384/512, SHA3-224/256/384/512, SHAKE128/256, cSHAKE128/256, and KMAC128/256) with HMAC
219 lines (216 loc) • 5.47 kB
JavaScript
import fs from "fs";
import dts from "rollup-plugin-dts";
import typescript from "@rollup/plugin-typescript";
import terser from "@rollup/plugin-terser";
const licenseHeaderES3 = fs.readFileSync("src/license_header.es3.txt", { encoding: "utf8" }),
licenseHeaderES6 = fs.readFileSync("src/license_header.es6.txt", { encoding: "utf8" });
export default [
{
input: "src/sha.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES3,
format: "umd",
sourcemap: true,
dir: "dist",
entryFileNames: "[name].js",
},
plugins: [
typescript({ lib: ["es6"], declaration: true, declarationDir: "dist/types", target: "es3" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "src/sha.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES6,
format: "es",
sourcemap: true,
file: "dist/sha.mjs",
},
plugins: [
typescript({ lib: ["es6"], target: "es6" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "dist/types/src/sha.d.ts",
output: [{ file: "dist/sha.d.ts", format: "umd" }],
plugins: [dts()],
},
{
input: "src/sha1.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES3,
format: "umd",
file: "dist/sha1.js",
},
plugins: [
typescript({ lib: ["es6"], target: "es3" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "src/sha1.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES6,
format: "es",
file: "dist/sha1.mjs",
},
plugins: [
typescript({ lib: ["es6"], target: "es6" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "dist/types/src/sha1.d.ts",
output: [{ file: "dist/sha1.d.ts", format: "umd" }],
plugins: [dts()],
},
{
input: "src/sha256.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES3,
format: "umd",
file: "dist/sha256.js",
},
plugins: [
typescript({ lib: ["es6"], target: "es3" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "src/sha256.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES6,
format: "es",
file: "dist/sha256.mjs",
},
plugins: [
typescript({ lib: ["es6"], target: "es6" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "dist/types/src/sha256.d.ts",
output: [{ file: "dist/sha256.d.ts", format: "umd" }],
plugins: [dts()],
},
{
input: "src/sha512.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES3,
format: "umd",
file: "dist/sha512.js",
},
plugins: [
typescript({ lib: ["es6"], target: "es3" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "src/sha512.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES6,
format: "es",
file: "dist/sha512.mjs",
},
plugins: [
typescript({ lib: ["es6"], target: "es6" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "dist/types/src/sha512.d.ts",
output: [{ file: "dist/sha512.d.ts", format: "umd" }],
plugins: [dts()],
},
{
input: "src/sha3.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES3,
format: "umd",
file: "dist/sha3.js",
},
plugins: [
typescript({ lib: ["es6"], target: "es3" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "src/sha3.ts",
output: {
name: "jsSHA",
banner: licenseHeaderES6,
format: "es",
file: "dist/sha3.mjs",
},
plugins: [
typescript({ lib: ["es6"], target: "es6" }),
terser({
output: { comments: /BSD/ },
mangle: {
properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
},
}),
],
},
{
input: "dist/types/src/sha3.d.ts",
output: [{ file: "dist/sha3.d.ts", format: "umd" }],
plugins: [dts()],
},
];