rollup.config.mjs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. import fs from "fs";
  2. import dts from "rollup-plugin-dts";
  3. import typescript from "@rollup/plugin-typescript";
  4. import terser from "@rollup/plugin-terser";
  5. const licenseHeaderES3 = fs.readFileSync("src/license_header.es3.txt", { encoding: "utf8" }),
  6. licenseHeaderES6 = fs.readFileSync("src/license_header.es6.txt", { encoding: "utf8" });
  7. export default [
  8. {
  9. input: "src/sha.ts",
  10. output: {
  11. name: "jsSHA",
  12. banner: licenseHeaderES3,
  13. format: "umd",
  14. sourcemap: true,
  15. dir: "dist",
  16. entryFileNames: "[name].js",
  17. },
  18. plugins: [
  19. typescript({ lib: ["es6"], declaration: true, declarationDir: "dist/types", target: "es3" }),
  20. terser({
  21. output: { comments: /BSD/ },
  22. mangle: {
  23. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  24. },
  25. }),
  26. ],
  27. },
  28. {
  29. input: "src/sha.ts",
  30. output: {
  31. name: "jsSHA",
  32. banner: licenseHeaderES6,
  33. format: "es",
  34. sourcemap: true,
  35. file: "dist/sha.mjs",
  36. },
  37. plugins: [
  38. typescript({ lib: ["es6"], target: "es6" }),
  39. terser({
  40. output: { comments: /BSD/ },
  41. mangle: {
  42. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  43. },
  44. }),
  45. ],
  46. },
  47. {
  48. input: "dist/types/src/sha.d.ts",
  49. output: [{ file: "dist/sha.d.ts", format: "umd" }],
  50. plugins: [dts()],
  51. },
  52. {
  53. input: "src/sha1.ts",
  54. output: {
  55. name: "jsSHA",
  56. banner: licenseHeaderES3,
  57. format: "umd",
  58. file: "dist/sha1.js",
  59. },
  60. plugins: [
  61. typescript({ lib: ["es6"], target: "es3" }),
  62. terser({
  63. output: { comments: /BSD/ },
  64. mangle: {
  65. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  66. },
  67. }),
  68. ],
  69. },
  70. {
  71. input: "src/sha1.ts",
  72. output: {
  73. name: "jsSHA",
  74. banner: licenseHeaderES6,
  75. format: "es",
  76. file: "dist/sha1.mjs",
  77. },
  78. plugins: [
  79. typescript({ lib: ["es6"], target: "es6" }),
  80. terser({
  81. output: { comments: /BSD/ },
  82. mangle: {
  83. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  84. },
  85. }),
  86. ],
  87. },
  88. {
  89. input: "dist/types/src/sha1.d.ts",
  90. output: [{ file: "dist/sha1.d.ts", format: "umd" }],
  91. plugins: [dts()],
  92. },
  93. {
  94. input: "src/sha256.ts",
  95. output: {
  96. name: "jsSHA",
  97. banner: licenseHeaderES3,
  98. format: "umd",
  99. file: "dist/sha256.js",
  100. },
  101. plugins: [
  102. typescript({ lib: ["es6"], target: "es3" }),
  103. terser({
  104. output: { comments: /BSD/ },
  105. mangle: {
  106. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  107. },
  108. }),
  109. ],
  110. },
  111. {
  112. input: "src/sha256.ts",
  113. output: {
  114. name: "jsSHA",
  115. banner: licenseHeaderES6,
  116. format: "es",
  117. file: "dist/sha256.mjs",
  118. },
  119. plugins: [
  120. typescript({ lib: ["es6"], target: "es6" }),
  121. terser({
  122. output: { comments: /BSD/ },
  123. mangle: {
  124. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  125. },
  126. }),
  127. ],
  128. },
  129. {
  130. input: "dist/types/src/sha256.d.ts",
  131. output: [{ file: "dist/sha256.d.ts", format: "umd" }],
  132. plugins: [dts()],
  133. },
  134. {
  135. input: "src/sha512.ts",
  136. output: {
  137. name: "jsSHA",
  138. banner: licenseHeaderES3,
  139. format: "umd",
  140. file: "dist/sha512.js",
  141. },
  142. plugins: [
  143. typescript({ lib: ["es6"], target: "es3" }),
  144. terser({
  145. output: { comments: /BSD/ },
  146. mangle: {
  147. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  148. },
  149. }),
  150. ],
  151. },
  152. {
  153. input: "src/sha512.ts",
  154. output: {
  155. name: "jsSHA",
  156. banner: licenseHeaderES6,
  157. format: "es",
  158. file: "dist/sha512.mjs",
  159. },
  160. plugins: [
  161. typescript({ lib: ["es6"], target: "es6" }),
  162. terser({
  163. output: { comments: /BSD/ },
  164. mangle: {
  165. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  166. },
  167. }),
  168. ],
  169. },
  170. {
  171. input: "dist/types/src/sha512.d.ts",
  172. output: [{ file: "dist/sha512.d.ts", format: "umd" }],
  173. plugins: [dts()],
  174. },
  175. {
  176. input: "src/sha3.ts",
  177. output: {
  178. name: "jsSHA",
  179. banner: licenseHeaderES3,
  180. format: "umd",
  181. file: "dist/sha3.js",
  182. },
  183. plugins: [
  184. typescript({ lib: ["es6"], target: "es3" }),
  185. terser({
  186. output: { comments: /BSD/ },
  187. mangle: {
  188. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  189. },
  190. }),
  191. ],
  192. },
  193. {
  194. input: "src/sha3.ts",
  195. output: {
  196. name: "jsSHA",
  197. banner: licenseHeaderES6,
  198. format: "es",
  199. file: "dist/sha3.mjs",
  200. },
  201. plugins: [
  202. typescript({ lib: ["es6"], target: "es6" }),
  203. terser({
  204. output: { comments: /BSD/ },
  205. mangle: {
  206. properties: { keep_quoted: true, reserved: ["jsSHA", "getHash", "setHMACKey", "getHMAC", "update"] },
  207. },
  208. }),
  209. ],
  210. },
  211. {
  212. input: "dist/types/src/sha3.d.ts",
  213. output: [{ file: "dist/sha3.d.ts", format: "umd" }],
  214. plugins: [dts()],
  215. },
  216. ];