Skip to content

Commit

Permalink
Merge pull request #196 from privacy-scaling-explorations/chore/rollu…
Browse files Browse the repository at this point in the history
…p-conf

Build libraries with proper Rollup configuration
  • Loading branch information
cedoor committed Mar 13, 2024
2 parents abbdc85 + 689e687 commit 8ea2995
Show file tree
Hide file tree
Showing 16 changed files with 219 additions and 202 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ jobs:
- name: Install dependencies
run: yarn

- name: Build libraries
run: yarn build:libraries

- name: Publish packages
run: yarn version:publish
env:
Expand Down
67 changes: 45 additions & 22 deletions packages/baby-jubjub/rollup.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { nodeResolve } from "@rollup/plugin-node-resolve"
import terser from "@rollup/plugin-terser"
import typescript from "@rollup/plugin-typescript"
import fs from "fs"
import cleanup from "rollup-plugin-cleanup"
import terser from "@rollup/plugin-terser"
import nodePolyfills from "rollup-plugin-polyfill-node"

const pkg = JSON.parse(fs.readFileSync("./package.json", "utf8"))
const banner = `/**
Expand All @@ -15,24 +17,45 @@ const banner = `/**

const name = pkg.name.split("/")[1].replace(/[-/]./g, (x: string) => x.toUpperCase()[1])

export default {
input: "src/index.ts",
output: [
{ file: pkg.exports["."].require, format: "cjs", banner },
{ file: pkg.exports["."].default, format: "es", banner },
{
file: pkg.iife,
name,
format: "iife",
banner
},
{
file: pkg.unpkg,
name,
format: "iife",
plugins: [terser({ output: { preamble: banner } })]
}
],
external: Object.keys(pkg.dependencies),
plugins: [typescript({ tsconfig: "./build.tsconfig.json" }), cleanup({ comments: "jsdoc" })]
}
export default [
{
input: "src/index.ts",
output: [
{ file: pkg.exports["."].require, format: "cjs", banner },
{ file: pkg.exports["."].default, format: "es", banner }
],
external: [
...Object.keys(pkg.dependencies),
"@zk-kit/utils/conversions",
"@zk-kit/utils/f1-field",
"@zk-kit/utils/scalar"
],
plugins: [typescript({ tsconfig: "./build.tsconfig.json" }), cleanup({ comments: "jsdoc" })]
},
{
input: "src/index.ts",
output: [
{
file: pkg.iife,
name,
format: "iife",
banner
},
{
file: pkg.unpkg,
name,
format: "iife",
plugins: [terser({ output: { preamble: banner } })]
}
],
external: [],
plugins: [
typescript({
tsconfig: "./build.tsconfig.json"
}),
nodeResolve({ preferBuiltins: false, browser: true }),
nodePolyfills(),
cleanup({ comments: "jsdoc" })
]
}
]
4 changes: 3 additions & 1 deletion packages/baby-jubjub/src/baby-jubjub.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { F1Field, leBigIntToBuffer, leBufferToBigInt, scalar } from "@zk-kit/utils"
import { leBigIntToBuffer, leBufferToBigInt } from "@zk-kit/utils/conversions"
import F1Field from "@zk-kit/utils/f1-field"
import * as scalar from "@zk-kit/utils/scalar"
import * as sqrt from "./sqrt"
import { Point } from "./types"

Expand Down
2 changes: 1 addition & 1 deletion packages/baby-jubjub/src/sqrt.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { F1Field } from "@zk-kit/utils"
import F1Field from "@zk-kit/utils/f1-field"

/**
* The following is a sqrt function (i.e. tonelliShanks) with some pre-computed
Expand Down
2 changes: 1 addition & 1 deletion packages/baby-jubjub/src/types/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import { BigNumber } from "@zk-kit/utils"
import type { BigNumber } from "@zk-kit/utils"

export type Point<N = BigNumber> = [N, N]
3 changes: 1 addition & 2 deletions packages/eddsa-poseidon/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@
"url": "https://github.com/privacy-scaling-explorations/zk-kit.git/issues"
},
"scripts": {
"build": "rimraf dist && rollup -c rollup.config.ts --configPlugin typescript && yarn build:iife",
"build:iife": "rollup -c rollup.iife.config.ts --configPlugin typescript",
"build": "rimraf dist && rollup -c rollup.config.ts --configPlugin typescript",
"prepublishOnly": "yarn build"
},
"publishConfig": {
Expand Down
70 changes: 53 additions & 17 deletions packages/eddsa-poseidon/rollup.config.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import commonjs from "@rollup/plugin-commonjs"
import { nodeResolve } from "@rollup/plugin-node-resolve"
import terser from "@rollup/plugin-terser"
import typescript from "@rollup/plugin-typescript"
import fs from "fs"
import cleanup from "rollup-plugin-cleanup"
import typescript from "@rollup/plugin-typescript"
import nodePolyfills from "rollup-plugin-polyfill-node"

const pkg = JSON.parse(fs.readFileSync("./package.json", "utf8"))
const banner = `/**
Expand All @@ -14,19 +16,53 @@ const banner = `/**
* @see [Github]{@link ${pkg.homepage}}
*/`

export default {
input: "src/index.ts",
output: [
{ file: pkg.exports["."].require, format: "cjs", banner },
{ file: pkg.exports["."].default, format: "es", banner }
],
external: Object.keys(pkg.dependencies),
plugins: [
typescript({ tsconfig: "./build.tsconfig.json" }),
commonjs(),
nodeResolve({
preferBuiltins: true
}),
cleanup({ comments: "jsdoc" })
]
}
const name = pkg.name.split("/")[1].replace(/[-/]./g, (x: string) => x.toUpperCase()[1])

export default [
{
input: "src/index.ts",
output: [
{ file: pkg.exports["."].require, format: "cjs", banner },
{ file: pkg.exports["."].default, format: "es", banner }
],
external: [
...Object.keys(pkg.dependencies),
"@zk-kit/utils/conversions",
"@zk-kit/utils/f1-field",
"@zk-kit/utils/scalar",
"@zk-kit/utils/error-handlers",
"@zk-kit/utils/type-checks"
],
plugins: [
typescript({ tsconfig: "./build.tsconfig.json" }),
nodeResolve(),
commonjs(),
cleanup({ comments: "jsdoc" })
]
},
{
input: "src/index.ts",
output: [
{
file: pkg.iife,
name,
format: "iife",
banner
},
{
file: pkg.unpkg,
name,
format: "iife",
plugins: [terser({ output: { preamble: banner } })]
}
],
external: [],
plugins: [
typescript({ tsconfig: "./build.tsconfig.json" }),
nodeResolve({ preferBuiltins: false, browser: true }),
commonjs(),
nodePolyfills(),
cleanup({ comments: "jsdoc" })
]
}
]
37 changes: 0 additions & 37 deletions packages/eddsa-poseidon/rollup.iife.config.ts

This file was deleted.

4 changes: 2 additions & 2 deletions packages/eddsa-poseidon/src/types/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Point } from "@zk-kit/baby-jubjub"
import { BigNumber } from "@zk-kit/utils"
import type { Point } from "@zk-kit/baby-jubjub"
import type { BigNumber } from "@zk-kit/utils"

export type Signature<N = BigNumber> = {
R8: Point<N>
Expand Down
7 changes: 4 additions & 3 deletions packages/eddsa-poseidon/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Point } from "@zk-kit/baby-jubjub"
import { isBigNumberish, requireTypes, type BigNumberish } from "@zk-kit/utils"
import type { BigNumberish } from "@zk-kit/utils"
import { bigNumberishToBigInt, bigNumberishToBuffer, bufferToBigInt } from "@zk-kit/utils/conversions"
import { isArray, isObject, isStringifiedBigInt } from "@zk-kit/utils/type-checks"
import { requireTypes } from "@zk-kit/utils/error-handlers"
import { isArray, isBigNumberish, isObject, isStringifiedBigInt } from "@zk-kit/utils/type-checks"
import { Buffer } from "buffer"
import { Signature } from "./types"
import { Blake512 } from "./blake"
import { Signature } from "./types"

/**
* Prunes a buffer to meet the specific requirements for using it as a private key
Expand Down
18 changes: 3 additions & 15 deletions packages/utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,6 @@
"types": "./dist/types/f1-field.d.ts",
"require": "./dist/lib.commonjs/f1-field.cjs",
"default": "./dist/lib.esm/f1-field.js"
},
"./crypto": {
"types": "./dist/types/crypto.browser.d.ts",
"node": {
"types": "./dist/types/crypto.node.d.ts",
"require": "./dist/lib.commonjs/crypto.node.cjs",
"default": "./dist/lib.esm/crypto.node.js"
},
"browser": "./dist/lib.esm/crypto.browser.js",
"default": "./dist/lib.esm/crypto.browser.js"
}
},
"files": [
Expand All @@ -72,23 +62,21 @@
"url": "https://github.com/privacy-scaling-explorations/zk-kit.git/issues"
},
"scripts": {
"build": "rimraf dist && yarn build:browser && yarn build:node",
"build:browser": "rollup -c rollup.browser.config.ts --configPlugin typescript",
"build:node": "rollup -c rollup.node.config.ts --configPlugin typescript",
"build": "rimraf dist && rollup -c rollup.config.ts --configPlugin typescript",
"prepublishOnly": "yarn build"
},
"publishConfig": {
"access": "public"
},
"devDependencies": {
"@rollup/plugin-alias": "^5.1.0",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-typescript": "^11.1.6",
"@types/snarkjs": "^0",
"rimraf": "^5.0.5",
"rollup": "^4.12.0",
"rollup-plugin-cleanup": "^3.2.1"
"rollup-plugin-cleanup": "^3.2.1",
"rollup-plugin-polyfill-node": "^0.13.0"
},
"dependencies": {
"buffer": "^6.0.3"
Expand Down
52 changes: 0 additions & 52 deletions packages/utils/rollup.browser.config.ts

This file was deleted.

Loading

0 comments on commit 8ea2995

Please sign in to comment.