From 2e6a1a29259213d8f8873aac9612794f18e2525e Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Wed, 15 Jun 2022 12:54:10 -0700 Subject: [PATCH 01/17] experiment with esbuild/rollup for better modern distro --- package.json | 13 +- rollup.config.js | 67 ++++++ src/workers.ts | 3 +- tsconfig.json | 7 +- yarn.lock | 552 ++++++++++++++++++++++++++++++++++++++++++++--- 5 files changed, 610 insertions(+), 32 deletions(-) create mode 100644 rollup.config.js diff --git a/package.json b/package.json index 78a79542..fe6cc58e 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "test:browserstack": "karma start karma.browserstack.js", "####### Build #######": "", "clean": "rimraf dist && rimraf ts-build && rimraf coverage", - "build": "yarn clean && mkdir -p dist && webpack --config webpack.prod.js && tsc", + "build": "rollup -c", "build:example": "rimraf example/build && yarn build && mkdir -p example/build && cp example/*.* example/build/ && cp -a dist/. example/build/", "build:demo": "rimraf demo/build && yarn build && mkdir -p demo/build && cp demo/*.* demo/build/ && cp -a dist/. demo/build/", "webpack:watch": "yarn clean && webpack --config webpack.dev.js --watch" @@ -76,8 +76,13 @@ "devDependencies": { "@babel/core": "^7.18.2", "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-transform-runtime": "^7.18.5", "@babel/preset-env": "^7.18.2", "@babel/preset-typescript": "^7.17.12", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/babel__plugin-transform-runtime": "^7", "@types/mime-types": "^2.1.1", "@types/node": "^17.0.40", "@types/tape": "^4.13.2", @@ -86,8 +91,8 @@ "@yarnpkg/pnpify": "^3.1.3", "@yarnpkg/sdks": "^2.6.2", "babel-loader": "^8.2.5", - "buffer": "^6.0.3", "depcheck": "^1.4.3", + "esbuild": "^0.14.43", "eslint": "^8.17.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-import-resolver-typescript": "^2.7.1", @@ -106,6 +111,10 @@ "nyc": "^15.1.0", "prettier": "^2.6.2", "rimraf": "^3.0.2", + "rollup": "^2.75.6", + "rollup-plugin-dts": "^4.2.2", + "rollup-plugin-esbuild": "^4.9.1", + "rollup-plugin-terser": "^7.0.2", "tape": "^5.5.3", "terser-webpack-plugin": "^2.3.8", "typescript": "^4.7.3", diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 00000000..d51391ea --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,67 @@ +import dts from 'rollup-plugin-dts'; +import esbuild from 'rollup-plugin-esbuild'; + +// const name = require('./package.json').main.replace(/\.js$/, ''); + +const main = (config) => ({ + ...config, + input: 'src/index.ts', + external: (id) => !/^[./]/.test(id), +}); + +const worker = (config) => ({ + ...config, + // TODO: convert to .ts + input: 'src/worker.penumbra.js', + external: (id) => !/^[./]/.test(id), +}); + +export default [ + main({ + plugins: [esbuild()], + output: [ + { + dir: 'dist/main/cjs/', + format: 'cjs', + sourcemap: true, + }, + { + dir: 'dist/main/esm/', + format: 'es', + sourcemap: true, + }, + ], + }), + main({ + plugins: [dts()], + output: { + file: 'dist/main/types/penumbra.main.d.ts', + format: 'es', + }, + }), + worker({ + plugins: [esbuild()], + output: [ + { + dir: 'dist/worker/cjs/', + format: 'cjs', + sourcemap: true, + }, + { + dir: 'dist/worker/esm/', + format: 'es', + sourcemap: true, + }, + ], + }), + /** + * TODO: convert worker to TypeScript + */ + // worker({ + // plugins: [dts({ compilerOptions: { allowJs: true } })], + // output: { + // file: 'dist/worker/types/penumbra.worker.d.ts', + // format: 'es', + // }, + // }), +]; diff --git a/src/workers.ts b/src/workers.ts index aa998eb3..0fd6c679 100644 --- a/src/workers.ts +++ b/src/workers.ts @@ -27,7 +27,8 @@ const DEFAULT_WORKERS = { StreamSaver: 'streamsaver.penumbra.serviceworker.js', }; -const SHOULD_LOG_EVENTS = process.env.PENUMBRA_LOG_START === 'true'; +const SHOULD_LOG_EVENTS = + 'process' in self && process.env.PENUMBRA_LOG_START === 'true'; // //// // // Init // diff --git a/tsconfig.json b/tsconfig.json index 3d131a18..44028b53 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compileOnSave": true, "compilerOptions": { "incremental": true, - "target": "es2020", + "target": "esnext", "module": "commonjs", "lib": ["esnext", "dom", "es2020"], "allowJs": false, @@ -11,10 +11,11 @@ "sourceMap": true, "removeComments": false, "esModuleInterop": true, + "tsBuildInfoFile": "dist/.tsbuildinfo", "baseUrl": ".", "outDir": "ts-build", - "types": [], - "composite": true, + "types": ["node"], + "composite": false, "moduleResolution": "node", "strict": true, "typeRoots": [ diff --git a/yarn.lock b/yarn.lock index 15512f77..177c5bcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -397,6 +397,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-module-imports@npm:7.16.7" + dependencies: + "@babel/types": ^7.16.7 + checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.12.1": version: 7.12.1 resolution: "@babel/helper-module-imports@npm:7.12.1" @@ -406,15 +415,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-module-imports@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212 - languageName: node - linkType: hard - "@babel/helper-module-transforms@npm:^7.12.1": version: 7.12.1 resolution: "@babel/helper-module-transforms@npm:7.12.1" @@ -1452,6 +1452,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-runtime@npm:^7.18.5": + version: 7.18.5 + resolution: "@babel/plugin-transform-runtime@npm:7.18.5" + dependencies: + "@babel/helper-module-imports": ^7.16.7 + "@babel/helper-plugin-utils": ^7.17.12 + babel-plugin-polyfill-corejs2: ^0.3.0 + babel-plugin-polyfill-corejs3: ^0.5.0 + babel-plugin-polyfill-regenerator: ^0.3.0 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2a9d9ad0b6393639eeaf3ca3130f52f276f5c3f676f33e29d1b1db5d19308155a5068764e20999fe69331720e83407a400912332e3b4405fa19dfdc54721d00c + languageName: node + linkType: hard + "@babel/plugin-transform-shorthand-properties@npm:^7.16.7": version: 7.16.7 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.16.7" @@ -1901,6 +1917,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/source-map@npm:^0.3.2": + version: 0.3.2 + resolution: "@jridgewell/source-map@npm:0.3.2" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482 + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.11 resolution: "@jridgewell/sourcemap-codec@npm:1.4.11" @@ -1975,6 +2001,79 @@ __metadata: languageName: node linkType: hard +"@rollup/plugin-babel@npm:^5.3.1": + version: 5.3.1 + resolution: "@rollup/plugin-babel@npm:5.3.1" + dependencies: + "@babel/helper-module-imports": ^7.10.4 + "@rollup/pluginutils": ^3.1.0 + peerDependencies: + "@babel/core": ^7.0.0 + "@types/babel__core": ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + "@types/babel__core": + optional: true + checksum: 220d71e4647330f252ef33d5f29700aef2e8284a0b61acfcceb47617a7f96208aa1ed16eae75619424bf08811ede5241e271a6d031f07026dee6b3a2bdcdc638 + languageName: node + linkType: hard + +"@rollup/plugin-commonjs@npm:^22.0.0": + version: 22.0.0 + resolution: "@rollup/plugin-commonjs@npm:22.0.0" + dependencies: + "@rollup/pluginutils": ^3.1.0 + commondir: ^1.0.1 + estree-walker: ^2.0.1 + glob: ^7.1.6 + is-reference: ^1.2.1 + magic-string: ^0.25.7 + resolve: ^1.17.0 + peerDependencies: + rollup: ^2.68.0 + checksum: fdcce2bf58875fde0e06f001544c0d9a0509a12929393862f72dcef8fcbf4d5d0ba0d5db6cf10ba4351335caf67a3dbdb95000678c468585e3972994f92e2ce9 + languageName: node + linkType: hard + +"@rollup/plugin-node-resolve@npm:^13.3.0": + version: 13.3.0 + resolution: "@rollup/plugin-node-resolve@npm:13.3.0" + dependencies: + "@rollup/pluginutils": ^3.1.0 + "@types/resolve": 1.17.1 + deepmerge: ^4.2.2 + is-builtin-module: ^3.1.0 + is-module: ^1.0.0 + resolve: ^1.19.0 + peerDependencies: + rollup: ^2.42.0 + checksum: ec5418e6b3c23a9e30683056b3010e9d325316dcfae93fbc673ae64dad8e56a2ce761c15c48f5e2dcfe0c822fdc4a4905ee6346e3dcf90603ba2260afef5a5e6 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^3.1.0": + version: 3.1.0 + resolution: "@rollup/pluginutils@npm:3.1.0" + dependencies: + "@types/estree": 0.0.39 + estree-walker: ^1.0.1 + picomatch: ^2.2.2 + peerDependencies: + rollup: ^1.20.0||^2.0.0 + checksum: 8be16e27863c219edbb25a4e6ec2fe0e1e451d9e917b6a43cf2ae5bc025a6b8faaa40f82a6e53b66d0de37b58ff472c6c3d57a83037ae635041f8df959d6d9aa + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^4.1.1": + version: 4.2.1 + resolution: "@rollup/pluginutils@npm:4.2.1" + dependencies: + estree-walker: ^2.0.1 + picomatch: ^2.2.2 + checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 + languageName: node + linkType: hard + "@sindresorhus/is@npm:^4.0.0": version: 4.5.0 resolution: "@sindresorhus/is@npm:4.5.0" @@ -2023,10 +2122,15 @@ __metadata: dependencies: "@babel/core": ^7.18.2 "@babel/plugin-proposal-class-properties": ^7.17.12 + "@babel/plugin-transform-runtime": ^7.18.5 "@babel/preset-env": ^7.18.2 "@babel/preset-typescript": ^7.17.12 + "@rollup/plugin-babel": ^5.3.1 + "@rollup/plugin-commonjs": ^22.0.0 + "@rollup/plugin-node-resolve": ^13.3.0 "@transcend-io/conflux": ^3.2.2 "@transcend-io/remote-web-streams": 1.0.5 + "@types/babel__plugin-transform-runtime": ^7 "@types/mime-types": ^2.1.1 "@types/node": ^17.0.40 "@types/tape": ^4.13.2 @@ -2035,11 +2139,11 @@ __metadata: "@yarnpkg/pnpify": ^3.1.3 "@yarnpkg/sdks": ^2.6.2 babel-loader: ^8.2.5 - buffer: ^6.0.3 comlink: ^4.3.1 core-js: ^3.22.8 crypto-browserify: ^3.12.0 depcheck: ^1.4.3 + esbuild: ^0.14.43 eslint: ^8.17.0 eslint-config-airbnb-base: ^15.0.0 eslint-import-resolver-typescript: ^2.7.1 @@ -2060,6 +2164,10 @@ __metadata: prettier: ^2.6.2 promise.allsettled: ^1.0.5 rimraf: ^3.0.2 + rollup: ^2.75.6 + rollup-plugin-dts: ^4.2.2 + rollup-plugin-esbuild: ^4.9.1 + rollup-plugin-terser: ^7.0.2 streamsaver: ^2.0.6 tape: ^5.5.3 terser-webpack-plugin: ^2.3.8 @@ -2083,6 +2191,13 @@ __metadata: languageName: node linkType: hard +"@types/babel__plugin-transform-runtime@npm:^7": + version: 7.9.2 + resolution: "@types/babel__plugin-transform-runtime@npm:7.9.2" + checksum: 0eb18bf14b478804d34f96d47b992e53043776b8679e0c110051985a22ec18497e6f2c6d20f5289876c6094ccac2d41fa2f716a150e7512cee0a5c2ae1cf79b3 + languageName: node + linkType: hard + "@types/cacheable-request@npm:^6.0.1": version: 6.0.2 resolution: "@types/cacheable-request@npm:6.0.2" @@ -2130,6 +2245,20 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:*": + version: 0.0.51 + resolution: "@types/estree@npm:0.0.51" + checksum: e56a3bcf759fd9185e992e7fdb3c6a5f81e8ff120e871641607581fb3728d16c811702a7d40fa5f869b7f7b4437ab6a87eb8d98ffafeee51e85bbe955932a189 + languageName: node + linkType: hard + +"@types/estree@npm:0.0.39": + version: 0.0.39 + resolution: "@types/estree@npm:0.0.39" + checksum: 412fb5b9868f2c418126451821833414189b75cc6bf84361156feed733e3d92ec220b9d74a89e52722e03d5e241b2932732711b7497374a404fad49087adc248 + languageName: node + linkType: hard + "@types/http-cache-semantics@npm:*": version: 4.0.1 resolution: "@types/http-cache-semantics@npm:4.0.1" @@ -2209,6 +2338,15 @@ __metadata: languageName: node linkType: hard +"@types/resolve@npm:1.17.1": + version: 1.17.1 + resolution: "@types/resolve@npm:1.17.1" + dependencies: + "@types/node": "*" + checksum: dc6a6df507656004e242dcb02c784479deca516d5f4b58a1707e708022b269ae147e1da0521f3e8ad0d63638869d87e0adc023f0bd5454aa6f72ac66c7525cf5 + languageName: node + linkType: hard + "@types/responselike@npm:*, @types/responselike@npm:^1.0.0": version: 1.0.0 resolution: "@types/responselike@npm:1.0.0" @@ -2821,7 +2959,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.7.1": +"acorn@npm:^8.5.0, acorn@npm:^8.7.1": version: 8.7.1 resolution: "acorn@npm:8.7.1" bin: @@ -3285,7 +3423,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.0.2, base64-js@npm:^1.3.1": +"base64-js@npm:^1.0.2": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 @@ -3592,13 +3730,10 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^6.0.3": - version: 6.0.3 - resolution: "buffer@npm:6.0.3" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.2.1 - checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 +"builtin-modules@npm:^3.0.0": + version: 3.3.0 + resolution: "builtin-modules@npm:3.3.0" + checksum: db021755d7ed8be048f25668fe2117620861ef6703ea2c65ed2779c9e3636d5c3b82325bd912244293959ff3ae303afa3471f6a15bf5060c103e4cc3a839749d languageName: node linkType: hard @@ -4490,6 +4625,13 @@ __metadata: languageName: node linkType: hard +"deepmerge@npm:^4.2.2": + version: 4.2.2 + resolution: "deepmerge@npm:4.2.2" + checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b + languageName: node + linkType: hard + "default-require-extensions@npm:^3.0.0": version: 3.0.0 resolution: "default-require-extensions@npm:3.0.0" @@ -4997,6 +5139,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^0.9.3": + version: 0.9.3 + resolution: "es-module-lexer@npm:0.9.3" + checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8 + languageName: node + linkType: hard + "es-to-primitive@npm:^1.2.1": version: 1.2.1 resolution: "es-to-primitive@npm:1.2.1" @@ -5031,6 +5180,217 @@ __metadata: languageName: node linkType: hard +"esbuild-android-64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-android-64@npm:0.14.43" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"esbuild-android-arm64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-android-arm64@npm:0.14.43" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-darwin-64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-darwin-64@npm:0.14.43" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"esbuild-darwin-arm64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-darwin-arm64@npm:0.14.43" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-freebsd-64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-freebsd-64@npm:0.14.43" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-freebsd-arm64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-freebsd-arm64@npm:0.14.43" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-32@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-linux-32@npm:0.14.43" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-linux-64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-linux-64@npm:0.14.43" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"esbuild-linux-arm64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-linux-arm64@npm:0.14.43" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-arm@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-linux-arm@npm:0.14.43" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"esbuild-linux-mips64le@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-linux-mips64le@npm:0.14.43" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"esbuild-linux-ppc64le@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-linux-ppc64le@npm:0.14.43" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"esbuild-linux-riscv64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-linux-riscv64@npm:0.14.43" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"esbuild-linux-s390x@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-linux-s390x@npm:0.14.43" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"esbuild-netbsd-64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-netbsd-64@npm:0.14.43" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-openbsd-64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-openbsd-64@npm:0.14.43" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-sunos-64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-sunos-64@npm:0.14.43" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-32@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-windows-32@npm:0.14.43" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-windows-64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-windows-64@npm:0.14.43" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-arm64@npm:0.14.43": + version: 0.14.43 + resolution: "esbuild-windows-arm64@npm:0.14.43" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"esbuild@npm:^0.14.43": + version: 0.14.43 + resolution: "esbuild@npm:0.14.43" + dependencies: + esbuild-android-64: 0.14.43 + esbuild-android-arm64: 0.14.43 + esbuild-darwin-64: 0.14.43 + esbuild-darwin-arm64: 0.14.43 + esbuild-freebsd-64: 0.14.43 + esbuild-freebsd-arm64: 0.14.43 + esbuild-linux-32: 0.14.43 + esbuild-linux-64: 0.14.43 + esbuild-linux-arm: 0.14.43 + esbuild-linux-arm64: 0.14.43 + esbuild-linux-mips64le: 0.14.43 + esbuild-linux-ppc64le: 0.14.43 + esbuild-linux-riscv64: 0.14.43 + esbuild-linux-s390x: 0.14.43 + esbuild-netbsd-64: 0.14.43 + esbuild-openbsd-64: 0.14.43 + esbuild-sunos-64: 0.14.43 + esbuild-windows-32: 0.14.43 + esbuild-windows-64: 0.14.43 + esbuild-windows-arm64: 0.14.43 + dependenciesMeta: + esbuild-android-64: + optional: true + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-linux-riscv64: + optional: true + esbuild-linux-s390x: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: c5988ba9d3b62c794aaf6752ca4cf0f009d0dc127a19d21c1bbeb2fe6d983c7fe39f3d330e2c00d5a9b6de4a71bfb0f5f347e69c37eb545ab61dc4824b5b2bb3 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -5323,7 +5683,14 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:^2.0.2": +"estree-walker@npm:^1.0.1": + version: 1.0.1 + resolution: "estree-walker@npm:1.0.1" + checksum: 7e70da539691f6db03a08e7ce94f394ce2eef4180e136d251af299d41f92fb2d28ebcd9a6e393e3728d7970aeb5358705ddf7209d52fbcb2dd4693f95dcf925f + languageName: node + linkType: hard + +"estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2": version: 2.0.2 resolution: "estree-walker@npm:2.0.2" checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc @@ -6385,7 +6752,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": +"ieee754@npm:^1.1.4": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e @@ -6624,6 +6991,15 @@ __metadata: languageName: node linkType: hard +"is-builtin-module@npm:^3.1.0": + version: 3.1.0 + resolution: "is-builtin-module@npm:3.1.0" + dependencies: + builtin-modules: ^3.0.0 + checksum: f1e5dd2cd5f252d4d799b20a0c8c4f7e9c399c4d141749af76ca0121058d4062c3015d026f1b1409dd3d2a4ddfb9b15cf6eb9c370fed53fea8652ce35b5e95cb + languageName: node + linkType: hard + "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.2": version: 1.2.2 resolution: "is-callable@npm:1.2.2" @@ -6788,6 +7164,13 @@ __metadata: languageName: node linkType: hard +"is-module@npm:^1.0.0": + version: 1.0.0 + resolution: "is-module@npm:1.0.0" + checksum: 8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f + languageName: node + linkType: hard + "is-negative-zero@npm:^2.0.0": version: 2.0.0 resolution: "is-negative-zero@npm:2.0.0" @@ -6836,6 +7219,15 @@ __metadata: languageName: node linkType: hard +"is-reference@npm:^1.2.1": + version: 1.2.1 + resolution: "is-reference@npm:1.2.1" + dependencies: + "@types/estree": "*" + checksum: e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc + languageName: node + linkType: hard + "is-regex@npm:^1.1.1": version: 1.1.1 resolution: "is-regex@npm:1.1.1" @@ -7185,6 +7577,24 @@ __metadata: languageName: node linkType: hard +"jest-worker@npm:^26.2.1": + version: 26.6.2 + resolution: "jest-worker@npm:26.6.2" + dependencies: + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^7.0.0 + checksum: f9afa3b88e3f12027901e4964ba3ff048285b5783b5225cab28fac25b4058cea8ad54001e9a1577ee2bed125fac3ccf5c80dc507b120300cc1bbcb368796533e + languageName: node + linkType: hard + +"joycon@npm:^3.0.1": + version: 3.1.1 + resolution: "joycon@npm:3.1.1" + checksum: 8003c9c3fc79c5c7602b1c7e9f7a2df2e9916f046b0dbad862aa589be78c15734d11beb9fe846f5e06138df22cb2ad29961b6a986ba81c4920ce2b15a7f11067 + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -7349,6 +7759,13 @@ __metadata: languageName: node linkType: hard +"jsonc-parser@npm:^3.0.0": + version: 3.0.0 + resolution: "jsonc-parser@npm:3.0.0" + checksum: 1df2326f1f9688de30c70ff19c5b2a83ba3b89a1036160da79821d1361090775e9db502dc57a67c11b56e1186fc1ed70b887f25c5febf9a3ec4f91435836c99d + languageName: node + linkType: hard + "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -7670,6 +8087,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.26.1": + version: 0.26.2 + resolution: "magic-string@npm:0.26.2" + dependencies: + sourcemap-codec: ^1.4.8 + checksum: b4db4e2b370ac8d9ffc6443a2b591b75364bf1fc9121b5a4068d5b89804abff6709d1fa4a0e0c2d54f2e61e0e44db83efdfe219a5ab0ba6d25ee1f2b51fbed55 + languageName: node + linkType: hard + "make-dir@npm:^2.0.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -8786,7 +9212,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.2.3": +"picomatch@npm:^2.2.2, picomatch@npm:^2.2.3": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf @@ -9506,7 +9932,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.14.2, resolve@npm:^1.18.1, resolve@npm:^1.20.0, resolve@npm:^1.22.0": +"resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.18.1, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0": version: 1.22.0 resolution: "resolve@npm:1.22.0" dependencies: @@ -9539,7 +9965,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.18.1#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin": +"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.18.1#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin": version: 1.22.0 resolution: "resolve@patch:resolve@npm%3A1.22.0#~builtin::version=1.22.0&hash=07638b" dependencies: @@ -9651,6 +10077,66 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-dts@npm:^4.2.2": + version: 4.2.2 + resolution: "rollup-plugin-dts@npm:4.2.2" + dependencies: + "@babel/code-frame": ^7.16.7 + magic-string: ^0.26.1 + peerDependencies: + rollup: ^2.55 + typescript: ^4.1 + dependenciesMeta: + "@babel/code-frame": + optional: true + checksum: cf4b45f6cca442a5f44af0f0fb567c8fc540ecb792c763571d1bcda9bf495803bcc8d4eaef451a2dd32f7f391eb822e2b96cc6b86b096db54a4d3935236fd8da + languageName: node + linkType: hard + +"rollup-plugin-esbuild@npm:^4.9.1": + version: 4.9.1 + resolution: "rollup-plugin-esbuild@npm:4.9.1" + dependencies: + "@rollup/pluginutils": ^4.1.1 + debug: ^4.3.3 + es-module-lexer: ^0.9.3 + joycon: ^3.0.1 + jsonc-parser: ^3.0.0 + peerDependencies: + esbuild: ">=0.10.1" + rollup: ^1.20.0 || ^2.0.0 + checksum: 9b74a7ccff6e1487956c2f3f79e302e96b97036e445f2e56749decccda8733e49354fb1e01698420909fc0c817d535771bdbbb8beb046d961af3e08f005741d8 + languageName: node + linkType: hard + +"rollup-plugin-terser@npm:^7.0.2": + version: 7.0.2 + resolution: "rollup-plugin-terser@npm:7.0.2" + dependencies: + "@babel/code-frame": ^7.10.4 + jest-worker: ^26.2.1 + serialize-javascript: ^4.0.0 + terser: ^5.0.0 + peerDependencies: + rollup: ^2.0.0 + checksum: af84bb7a7a894cd00852b6486528dfb8653cf94df4c126f95f389a346f401d054b08c46bee519a2ab6a22b33804d1d6ac6d8c90b1b2bf8fffb097eed73fc3c72 + languageName: node + linkType: hard + +"rollup@npm:^2.75.6": + version: 2.75.6 + resolution: "rollup@npm:2.75.6" + dependencies: + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: df83c6d43a144a296daf82bed7f12f2dfcc6c495a64245e840d15fd21f2ab8b66bb3423e61c974875b33ccf53fb659d2ed099f272937ecf23af48815277c6cd5 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -10088,7 +10574,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:~0.5.12": +"source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -10126,7 +10612,7 @@ __metadata: languageName: node linkType: hard -"sourcemap-codec@npm:^1.4.4": +"sourcemap-codec@npm:^1.4.4, sourcemap-codec@npm:^1.4.8": version: 1.4.8 resolution: "sourcemap-codec@npm:1.4.8" checksum: b57981c05611afef31605732b598ccf65124a9fcb03b833532659ac4d29ac0f7bfacbc0d6c5a28a03e84c7510e7e556d758d0bb57786e214660016fb94279316 @@ -10631,6 +11117,20 @@ __metadata: languageName: node linkType: hard +"terser@npm:^5.0.0": + version: 5.14.1 + resolution: "terser@npm:5.14.1" + dependencies: + "@jridgewell/source-map": ^0.3.2 + acorn: ^8.5.0 + commander: ^2.20.0 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: 7b0e51f3d193a11cad82f07e3b0c1d62122eec786f809bdf2a54b865aaa1450872c3a7b6c33b5a40e264834060ffc1d4e197f971a76da5b0137997d756eb7548 + languageName: node + linkType: hard + "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0" From 944907953768e04b7845a924b9684eef52f23ab8 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Wed, 15 Jun 2022 16:08:55 -0700 Subject: [PATCH 02/17] rm unused dep --- package.json | 4 - yarn.lock | 211 ++++----------------------------------------------- 2 files changed, 13 insertions(+), 202 deletions(-) diff --git a/package.json b/package.json index fe6cc58e..55af8fcd 100644 --- a/package.json +++ b/package.json @@ -79,9 +79,6 @@ "@babel/plugin-transform-runtime": "^7.18.5", "@babel/preset-env": "^7.18.2", "@babel/preset-typescript": "^7.17.12", - "@rollup/plugin-babel": "^5.3.1", - "@rollup/plugin-commonjs": "^22.0.0", - "@rollup/plugin-node-resolve": "^13.3.0", "@types/babel__plugin-transform-runtime": "^7", "@types/mime-types": "^2.1.1", "@types/node": "^17.0.40", @@ -114,7 +111,6 @@ "rollup": "^2.75.6", "rollup-plugin-dts": "^4.2.2", "rollup-plugin-esbuild": "^4.9.1", - "rollup-plugin-terser": "^7.0.2", "tape": "^5.5.3", "terser-webpack-plugin": "^2.3.8", "typescript": "^4.7.3", diff --git a/yarn.lock b/yarn.lock index 177c5bcc..1d274086 100644 --- a/yarn.lock +++ b/yarn.lock @@ -397,15 +397,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-module-imports@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212 - languageName: node - linkType: hard - "@babel/helper-module-imports@npm:^7.12.1": version: 7.12.1 resolution: "@babel/helper-module-imports@npm:7.12.1" @@ -415,6 +406,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.7": + version: 7.16.7 + resolution: "@babel/helper-module-imports@npm:7.16.7" + dependencies: + "@babel/types": ^7.16.7 + checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.12.1": version: 7.12.1 resolution: "@babel/helper-module-transforms@npm:7.12.1" @@ -1917,16 +1917,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/source-map@npm:0.3.2" - dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482 - languageName: node - linkType: hard - "@jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.11 resolution: "@jridgewell/sourcemap-codec@npm:1.4.11" @@ -2001,69 +1991,6 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-babel@npm:^5.3.1": - version: 5.3.1 - resolution: "@rollup/plugin-babel@npm:5.3.1" - dependencies: - "@babel/helper-module-imports": ^7.10.4 - "@rollup/pluginutils": ^3.1.0 - peerDependencies: - "@babel/core": ^7.0.0 - "@types/babel__core": ^7.1.9 - rollup: ^1.20.0||^2.0.0 - peerDependenciesMeta: - "@types/babel__core": - optional: true - checksum: 220d71e4647330f252ef33d5f29700aef2e8284a0b61acfcceb47617a7f96208aa1ed16eae75619424bf08811ede5241e271a6d031f07026dee6b3a2bdcdc638 - languageName: node - linkType: hard - -"@rollup/plugin-commonjs@npm:^22.0.0": - version: 22.0.0 - resolution: "@rollup/plugin-commonjs@npm:22.0.0" - dependencies: - "@rollup/pluginutils": ^3.1.0 - commondir: ^1.0.1 - estree-walker: ^2.0.1 - glob: ^7.1.6 - is-reference: ^1.2.1 - magic-string: ^0.25.7 - resolve: ^1.17.0 - peerDependencies: - rollup: ^2.68.0 - checksum: fdcce2bf58875fde0e06f001544c0d9a0509a12929393862f72dcef8fcbf4d5d0ba0d5db6cf10ba4351335caf67a3dbdb95000678c468585e3972994f92e2ce9 - languageName: node - linkType: hard - -"@rollup/plugin-node-resolve@npm:^13.3.0": - version: 13.3.0 - resolution: "@rollup/plugin-node-resolve@npm:13.3.0" - dependencies: - "@rollup/pluginutils": ^3.1.0 - "@types/resolve": 1.17.1 - deepmerge: ^4.2.2 - is-builtin-module: ^3.1.0 - is-module: ^1.0.0 - resolve: ^1.19.0 - peerDependencies: - rollup: ^2.42.0 - checksum: ec5418e6b3c23a9e30683056b3010e9d325316dcfae93fbc673ae64dad8e56a2ce761c15c48f5e2dcfe0c822fdc4a4905ee6346e3dcf90603ba2260afef5a5e6 - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^3.1.0": - version: 3.1.0 - resolution: "@rollup/pluginutils@npm:3.1.0" - dependencies: - "@types/estree": 0.0.39 - estree-walker: ^1.0.1 - picomatch: ^2.2.2 - peerDependencies: - rollup: ^1.20.0||^2.0.0 - checksum: 8be16e27863c219edbb25a4e6ec2fe0e1e451d9e917b6a43cf2ae5bc025a6b8faaa40f82a6e53b66d0de37b58ff472c6c3d57a83037ae635041f8df959d6d9aa - languageName: node - linkType: hard - "@rollup/pluginutils@npm:^4.1.1": version: 4.2.1 resolution: "@rollup/pluginutils@npm:4.2.1" @@ -2125,9 +2052,6 @@ __metadata: "@babel/plugin-transform-runtime": ^7.18.5 "@babel/preset-env": ^7.18.2 "@babel/preset-typescript": ^7.17.12 - "@rollup/plugin-babel": ^5.3.1 - "@rollup/plugin-commonjs": ^22.0.0 - "@rollup/plugin-node-resolve": ^13.3.0 "@transcend-io/conflux": ^3.2.2 "@transcend-io/remote-web-streams": 1.0.5 "@types/babel__plugin-transform-runtime": ^7 @@ -2167,7 +2091,6 @@ __metadata: rollup: ^2.75.6 rollup-plugin-dts: ^4.2.2 rollup-plugin-esbuild: ^4.9.1 - rollup-plugin-terser: ^7.0.2 streamsaver: ^2.0.6 tape: ^5.5.3 terser-webpack-plugin: ^2.3.8 @@ -2245,20 +2168,6 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*": - version: 0.0.51 - resolution: "@types/estree@npm:0.0.51" - checksum: e56a3bcf759fd9185e992e7fdb3c6a5f81e8ff120e871641607581fb3728d16c811702a7d40fa5f869b7f7b4437ab6a87eb8d98ffafeee51e85bbe955932a189 - languageName: node - linkType: hard - -"@types/estree@npm:0.0.39": - version: 0.0.39 - resolution: "@types/estree@npm:0.0.39" - checksum: 412fb5b9868f2c418126451821833414189b75cc6bf84361156feed733e3d92ec220b9d74a89e52722e03d5e241b2932732711b7497374a404fad49087adc248 - languageName: node - linkType: hard - "@types/http-cache-semantics@npm:*": version: 4.0.1 resolution: "@types/http-cache-semantics@npm:4.0.1" @@ -2338,15 +2247,6 @@ __metadata: languageName: node linkType: hard -"@types/resolve@npm:1.17.1": - version: 1.17.1 - resolution: "@types/resolve@npm:1.17.1" - dependencies: - "@types/node": "*" - checksum: dc6a6df507656004e242dcb02c784479deca516d5f4b58a1707e708022b269ae147e1da0521f3e8ad0d63638869d87e0adc023f0bd5454aa6f72ac66c7525cf5 - languageName: node - linkType: hard - "@types/responselike@npm:*, @types/responselike@npm:^1.0.0": version: 1.0.0 resolution: "@types/responselike@npm:1.0.0" @@ -2959,7 +2859,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.5.0, acorn@npm:^8.7.1": +"acorn@npm:^8.7.1": version: 8.7.1 resolution: "acorn@npm:8.7.1" bin: @@ -3730,13 +3630,6 @@ __metadata: languageName: node linkType: hard -"builtin-modules@npm:^3.0.0": - version: 3.3.0 - resolution: "builtin-modules@npm:3.3.0" - checksum: db021755d7ed8be048f25668fe2117620861ef6703ea2c65ed2779c9e3636d5c3b82325bd912244293959ff3ae303afa3471f6a15bf5060c103e4cc3a839749d - languageName: node - linkType: hard - "builtin-status-codes@npm:^3.0.0": version: 3.0.0 resolution: "builtin-status-codes@npm:3.0.0" @@ -4625,13 +4518,6 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b - languageName: node - linkType: hard - "default-require-extensions@npm:^3.0.0": version: 3.0.0 resolution: "default-require-extensions@npm:3.0.0" @@ -5683,13 +5569,6 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:^1.0.1": - version: 1.0.1 - resolution: "estree-walker@npm:1.0.1" - checksum: 7e70da539691f6db03a08e7ce94f394ce2eef4180e136d251af299d41f92fb2d28ebcd9a6e393e3728d7970aeb5358705ddf7209d52fbcb2dd4693f95dcf925f - languageName: node - linkType: hard - "estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2": version: 2.0.2 resolution: "estree-walker@npm:2.0.2" @@ -6991,15 +6870,6 @@ __metadata: languageName: node linkType: hard -"is-builtin-module@npm:^3.1.0": - version: 3.1.0 - resolution: "is-builtin-module@npm:3.1.0" - dependencies: - builtin-modules: ^3.0.0 - checksum: f1e5dd2cd5f252d4d799b20a0c8c4f7e9c399c4d141749af76ca0121058d4062c3015d026f1b1409dd3d2a4ddfb9b15cf6eb9c370fed53fea8652ce35b5e95cb - languageName: node - linkType: hard - "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.2": version: 1.2.2 resolution: "is-callable@npm:1.2.2" @@ -7164,13 +7034,6 @@ __metadata: languageName: node linkType: hard -"is-module@npm:^1.0.0": - version: 1.0.0 - resolution: "is-module@npm:1.0.0" - checksum: 8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f - languageName: node - linkType: hard - "is-negative-zero@npm:^2.0.0": version: 2.0.0 resolution: "is-negative-zero@npm:2.0.0" @@ -7219,15 +7082,6 @@ __metadata: languageName: node linkType: hard -"is-reference@npm:^1.2.1": - version: 1.2.1 - resolution: "is-reference@npm:1.2.1" - dependencies: - "@types/estree": "*" - checksum: e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc - languageName: node - linkType: hard - "is-regex@npm:^1.1.1": version: 1.1.1 resolution: "is-regex@npm:1.1.1" @@ -7577,17 +7431,6 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^26.2.1": - version: 26.6.2 - resolution: "jest-worker@npm:26.6.2" - dependencies: - "@types/node": "*" - merge-stream: ^2.0.0 - supports-color: ^7.0.0 - checksum: f9afa3b88e3f12027901e4964ba3ff048285b5783b5225cab28fac25b4058cea8ad54001e9a1577ee2bed125fac3ccf5c80dc507b120300cc1bbcb368796533e - languageName: node - linkType: hard - "joycon@npm:^3.0.1": version: 3.1.1 resolution: "joycon@npm:3.1.1" @@ -9932,7 +9775,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.18.1, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0": +"resolve@npm:^1.14.2, resolve@npm:^1.18.1, resolve@npm:^1.20.0, resolve@npm:^1.22.0": version: 1.22.0 resolution: "resolve@npm:1.22.0" dependencies: @@ -9965,7 +9808,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.18.1#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin": +"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.18.1#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin": version: 1.22.0 resolution: "resolve@patch:resolve@npm%3A1.22.0#~builtin::version=1.22.0&hash=07638b" dependencies: @@ -10109,20 +9952,6 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-terser@npm:^7.0.2": - version: 7.0.2 - resolution: "rollup-plugin-terser@npm:7.0.2" - dependencies: - "@babel/code-frame": ^7.10.4 - jest-worker: ^26.2.1 - serialize-javascript: ^4.0.0 - terser: ^5.0.0 - peerDependencies: - rollup: ^2.0.0 - checksum: af84bb7a7a894cd00852b6486528dfb8653cf94df4c126f95f389a346f401d054b08c46bee519a2ab6a22b33804d1d6ac6d8c90b1b2bf8fffb097eed73fc3c72 - languageName: node - linkType: hard - "rollup@npm:^2.75.6": version: 2.75.6 resolution: "rollup@npm:2.75.6" @@ -10574,7 +10403,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": +"source-map-support@npm:~0.5.12": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -11117,20 +10946,6 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.0.0": - version: 5.14.1 - resolution: "terser@npm:5.14.1" - dependencies: - "@jridgewell/source-map": ^0.3.2 - acorn: ^8.5.0 - commander: ^2.20.0 - source-map-support: ~0.5.20 - bin: - terser: bin/terser - checksum: 7b0e51f3d193a11cad82f07e3b0c1d62122eec786f809bdf2a54b865aaa1450872c3a7b6c33b5a40e264834060ffc1d4e197f971a76da5b0137997d756eb7548 - languageName: node - linkType: hard - "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0" From b74ac2c019309981374b73ab6c5d39bfdf46ef19 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Wed, 15 Jun 2022 16:56:25 -0700 Subject: [PATCH 03/17] new entrypoints in package.json --- package.json | 7 ++++--- rollup.config.js | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 55af8fcd..62fbcf87 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "name": "@transcend-io/penumbra", - "version": "5.3.0", + "version": "6.0.0", "description": "Crypto streams for the browser.", - "main": "dist/main.penumbra.js", - "types": "ts-build/src/index.d.ts", + "main": "dist/main/cjs/index.js", + "module": "dist/main/esm/index.js", + "types": "dist/main/types/index.d.ts", "directories": { "example": "example" }, diff --git a/rollup.config.js b/rollup.config.js index d51391ea..56d60d85 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -35,7 +35,7 @@ export default [ main({ plugins: [dts()], output: { - file: 'dist/main/types/penumbra.main.d.ts', + file: 'dist/main/types/index.d.ts', format: 'es', }, }), From 4f6ff72b99967993847cc58057f5efc514312bad Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Wed, 15 Jun 2022 16:57:56 -0700 Subject: [PATCH 04/17] drop unused deps --- package.json | 2 -- yarn.lock | 25 ------------------------- 2 files changed, 27 deletions(-) diff --git a/package.json b/package.json index 62fbcf87..0bd9c12b 100644 --- a/package.json +++ b/package.json @@ -77,10 +77,8 @@ "devDependencies": { "@babel/core": "^7.18.2", "@babel/plugin-proposal-class-properties": "^7.17.12", - "@babel/plugin-transform-runtime": "^7.18.5", "@babel/preset-env": "^7.18.2", "@babel/preset-typescript": "^7.17.12", - "@types/babel__plugin-transform-runtime": "^7", "@types/mime-types": "^2.1.1", "@types/node": "^17.0.40", "@types/tape": "^4.13.2", diff --git a/yarn.lock b/yarn.lock index 1d274086..d15873ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1452,22 +1452,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:^7.18.5": - version: 7.18.5 - resolution: "@babel/plugin-transform-runtime@npm:7.18.5" - dependencies: - "@babel/helper-module-imports": ^7.16.7 - "@babel/helper-plugin-utils": ^7.17.12 - babel-plugin-polyfill-corejs2: ^0.3.0 - babel-plugin-polyfill-corejs3: ^0.5.0 - babel-plugin-polyfill-regenerator: ^0.3.0 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2a9d9ad0b6393639eeaf3ca3130f52f276f5c3f676f33e29d1b1db5d19308155a5068764e20999fe69331720e83407a400912332e3b4405fa19dfdc54721d00c - languageName: node - linkType: hard - "@babel/plugin-transform-shorthand-properties@npm:^7.16.7": version: 7.16.7 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.16.7" @@ -2049,12 +2033,10 @@ __metadata: dependencies: "@babel/core": ^7.18.2 "@babel/plugin-proposal-class-properties": ^7.17.12 - "@babel/plugin-transform-runtime": ^7.18.5 "@babel/preset-env": ^7.18.2 "@babel/preset-typescript": ^7.17.12 "@transcend-io/conflux": ^3.2.2 "@transcend-io/remote-web-streams": 1.0.5 - "@types/babel__plugin-transform-runtime": ^7 "@types/mime-types": ^2.1.1 "@types/node": ^17.0.40 "@types/tape": ^4.13.2 @@ -2114,13 +2096,6 @@ __metadata: languageName: node linkType: hard -"@types/babel__plugin-transform-runtime@npm:^7": - version: 7.9.2 - resolution: "@types/babel__plugin-transform-runtime@npm:7.9.2" - checksum: 0eb18bf14b478804d34f96d47b992e53043776b8679e0c110051985a22ec18497e6f2c6d20f5289876c6094ccac2d41fa2f716a150e7512cee0a5c2ae1cf79b3 - languageName: node - linkType: hard - "@types/cacheable-request@npm:^6.0.1": version: 6.0.2 resolution: "@types/cacheable-request@npm:6.0.2" From 8bdfc566a61e8147165b33349a3d588c15b30819 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Wed, 15 Jun 2022 21:36:21 -0700 Subject: [PATCH 05/17] esbuild-only --- build.js | 18 +++++++ example/index.html | 2 +- package.json | 6 +-- rollup.config.js | 51 ++++++++++-------- src/@types/worker-loader/index.d.ts | 10 ++-- src/API.ts | 4 +- src/utils/index.ts | 1 - src/utils/intoStream.ts | 27 ---------- src/workers.ts | 7 ++- src/zip.ts | 4 +- tsconfig.json | 3 +- yarn.lock | 80 +++++++++-------------------- 12 files changed, 89 insertions(+), 124 deletions(-) create mode 100644 build.js delete mode 100644 src/utils/intoStream.ts diff --git a/build.js b/build.js new file mode 100644 index 00000000..6a3eae03 --- /dev/null +++ b/build.js @@ -0,0 +1,18 @@ +// @ts-check +const { build } = require('esbuild'); + +/** + * @type {import('esbuild').BuildOptions} + */ +const options = { + entryPoints: ['./src/index.ts'], + minify: process.env.NODE_ENV === 'production', + sourcemap: true, + bundle: true, + outfile: './dist/penumbra.js', +}; + +build(options).catch((err) => { + process.stderr.write(err.stderr); + process.exit(1); +}); diff --git a/example/index.html b/example/index.html index 3b7508de..8997f4c0 100644 --- a/example/index.html +++ b/example/index.html @@ -36,7 +36,7 @@

The data below is downloaded and decrypted

- + diff --git a/package.json b/package.json index 0bd9c12b..bbbf3055 100644 --- a/package.json +++ b/package.json @@ -67,11 +67,10 @@ "comlink": "^4.3.1", "core-js": "^3.22.8", "crypto-browserify": "^3.12.0", - "mime-types": "^2.1.35", + "mime": "^3.0.0", "promise.allsettled": "^1.0.5", "streamsaver": "^2.0.6", "typedarray-to-buffer": "^4.0.0", - "web-streams-node": "^0.4.0", "web-streams-polyfill": "^3.2.1" }, "devDependencies": { @@ -79,7 +78,7 @@ "@babel/plugin-proposal-class-properties": "^7.17.12", "@babel/preset-env": "^7.18.2", "@babel/preset-typescript": "^7.17.12", - "@types/mime-types": "^2.1.1", + "@types/mime": "^2.0.3", "@types/node": "^17.0.40", "@types/tape": "^4.13.2", "@typescript-eslint/eslint-plugin": "^5.27.1", @@ -110,6 +109,7 @@ "rollup": "^2.75.6", "rollup-plugin-dts": "^4.2.2", "rollup-plugin-esbuild": "^4.9.1", + "rollup-plugin-web-worker-loader": "^1.6.1", "tape": "^5.5.3", "terser-webpack-plugin": "^2.3.8", "typescript": "^4.7.3", diff --git a/rollup.config.js b/rollup.config.js index 56d60d85..878d5fab 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -11,7 +11,6 @@ const main = (config) => ({ const worker = (config) => ({ ...config, - // TODO: convert to .ts input: 'src/worker.penumbra.js', external: (id) => !/^[./]/.test(id), }); @@ -21,47 +20,55 @@ export default [ plugins: [esbuild()], output: [ { - dir: 'dist/main/cjs/', + dir: 'dist/cjs/', format: 'cjs', sourcemap: true, }, { - dir: 'dist/main/esm/', + dir: 'dist/esm/', format: 'es', sourcemap: true, }, ], }), - main({ - plugins: [dts()], - output: { - file: 'dist/main/types/index.d.ts', - format: 'es', - }, - }), worker({ plugins: [esbuild()], output: [ { - dir: 'dist/worker/cjs/', + file: 'dist/cjs/worker.penumbra.js', format: 'cjs', sourcemap: true, }, { - dir: 'dist/worker/esm/', + file: 'dist/esm/worker.penumbra.js', format: 'es', sourcemap: true, }, + { + file: 'dist/umd/worker.penumbra.js', + format: 'umd', + sourcemap: true, + }, ], }), - /** - * TODO: convert worker to TypeScript - */ - // worker({ - // plugins: [dts({ compilerOptions: { allowJs: true } })], - // output: { - // file: 'dist/worker/types/penumbra.worker.d.ts', - // format: 'es', - // }, - // }), + main({ + plugins: [dts()], + output: { + file: 'dist/types/index.d.ts', + format: 'es', + }, + }), + { + input: 'src/index.ts', + plugins: [esbuild()], + output: [ + { + file: 'dist/umd/index.js', + format: 'iife', + name: 'penumbra', + inlineDynamicImports: true, + }, + ], + sourcemap: true, + }, ]; diff --git a/src/@types/worker-loader/index.d.ts b/src/@types/worker-loader/index.d.ts index 04930efe..8416fe21 100644 --- a/src/@types/worker-loader/index.d.ts +++ b/src/@types/worker-loader/index.d.ts @@ -1,10 +1,6 @@ /** Webpack worker-loader type setup */ -declare module 'worker-loader!*' { +declare module 'web-worker:*' { /** Worker */ - class WebpackWorker extends Worker { - /** Webpack's Worker constructor */ - public constructor(); - } - - export default WebpackWorker; + class PenumbraWebWorker extends Worker {} + export default PenumbraWebWorker; } diff --git a/src/API.ts b/src/API.ts index 6b20e98e..c1257411 100644 --- a/src/API.ts +++ b/src/API.ts @@ -5,7 +5,7 @@ import { RemoteReadableStream, RemoteWritableStream, } from '@transcend-io/remote-web-streams'; -import mime from 'mime-types'; +import { getExtension } from 'mime'; import { streamSaver } from './streamsaver'; import { ReadableStream } from './streams'; @@ -178,7 +178,7 @@ function save( 'stream' in files ? (files as unknown as PenumbraFile) : files[0]; const [ filename, - extension = file.mimetype ? mime.extension(file.mimetype) : '', + extension = file.mimetype ? `.${getExtension(file.mimetype)}` : '', ] = (fileName || file.filePrefix || DEFAULT_FILENAME) .split(/(\.\w+\s*$)/) // split filename extension .filter(Boolean); // filter empty matches diff --git a/src/utils/index.ts b/src/utils/index.ts index b78e9767..a16e4882 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -8,6 +8,5 @@ export { default as getTextFromRS } from './getTextFromRS'; export { default as toBuff } from './toBuff'; export { default as blobCache } from './blobCache'; export { default as isViewableText } from './isViewableText'; -export { default as intoStream } from './intoStream'; export { default as isNumber } from './isNumber'; export { default as throwOutside } from './throwOutside'; diff --git a/src/utils/intoStream.ts b/src/utils/intoStream.ts deleted file mode 100644 index f7b6a5eb..00000000 --- a/src/utils/intoStream.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { toWebReadableStream } from 'web-streams-node'; -import { NativeReadableStream } from '../streams'; - -/** - * Converts arrays into ReadableStreams - * - * @param input - Input - * @returns Stream - */ -const intoStream = ( - input: - | ArrayBuffer - | ArrayBufferView - | ReadableStream - | NodeJS.ReadableStream - | NodeJS.TypedArray - | Buffer, -): ReadableStream => - input instanceof NativeReadableStream || - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (input as any)?.constructor?.name === 'ReadableStream' - ? (input as ReadableStream) - : input instanceof ArrayBuffer || ArrayBuffer.isView(input) - ? new Response(input).body - : toWebReadableStream(input); - -export default intoStream; diff --git a/src/workers.ts b/src/workers.ts index 0fd6c679..cd9a115e 100644 --- a/src/workers.ts +++ b/src/workers.ts @@ -28,7 +28,7 @@ const DEFAULT_WORKERS = { }; const SHOULD_LOG_EVENTS = - 'process' in self && process.env.PENUMBRA_LOG_START === 'true'; + typeof process !== 'undefined' && process.env.PENUMBRA_LOG_START === 'true'; // //// // // Init // @@ -149,8 +149,11 @@ let workerID = 0; export async function createPenumbraWorker( url: URL | string, ): Promise { - const worker = new Worker(url /* , { type: 'module' } */); const id = workerID++; + const worker = new Worker(url, { + // type: 'module', // waiting on Firefox + name: `penumbra-worker-${id}`, + }); const penumbraWorker: PenumbraWorker = { worker, id, diff --git a/src/zip.ts b/src/zip.ts index 7639aff3..1aab0d3b 100644 --- a/src/zip.ts +++ b/src/zip.ts @@ -1,7 +1,7 @@ /* eslint-disable max-lines */ import allSettled from 'promise.allsettled'; import { Writer } from '@transcend-io/conflux'; -import mime from 'mime-types'; +import { getExtension } from 'mime'; import { streamSaver } from './streamsaver'; import { PenumbraFile, ZipOptions } from './types'; import { isNumber, emitZipProgress, emitZipCompletion } from './utils'; @@ -209,7 +209,7 @@ export class PenumbraZipWriter extends EventTarget { } const [ filename, - extension = mimetype ? mime.extension(mimetype) : '', + extension = mimetype ? `.${getExtension(mimetype)}` : '', ] = name .split(/(\.\w+\s*$)/) // split filename extension .filter(Boolean); // filter empty matches diff --git a/tsconfig.json b/tsconfig.json index 44028b53..239985d8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,8 +13,7 @@ "esModuleInterop": true, "tsBuildInfoFile": "dist/.tsbuildinfo", "baseUrl": ".", - "outDir": "ts-build", - "types": ["node"], + // "types": ["node"], "composite": false, "moduleResolution": "node", "strict": true, diff --git a/yarn.lock b/yarn.lock index d15873ee..87771ce7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2037,7 +2037,7 @@ __metadata: "@babel/preset-typescript": ^7.17.12 "@transcend-io/conflux": ^3.2.2 "@transcend-io/remote-web-streams": 1.0.5 - "@types/mime-types": ^2.1.1 + "@types/mime": ^2.0.3 "@types/node": ^17.0.40 "@types/tape": ^4.13.2 "@typescript-eslint/eslint-plugin": ^5.27.1 @@ -2065,7 +2065,7 @@ __metadata: karma-sourcemap-loader: ^0.3.8 karma-tap: ^4.2.0 karma-webpack: ^4.0.2 - mime-types: ^2.1.35 + mime: ^3.0.0 nyc: ^15.1.0 prettier: ^2.6.2 promise.allsettled: ^1.0.5 @@ -2073,12 +2073,12 @@ __metadata: rollup: ^2.75.6 rollup-plugin-dts: ^4.2.2 rollup-plugin-esbuild: ^4.9.1 + rollup-plugin-web-worker-loader: ^1.6.1 streamsaver: ^2.0.6 tape: ^5.5.3 terser-webpack-plugin: ^2.3.8 typedarray-to-buffer: ^4.0.0 typescript: ^4.7.3 - web-streams-node: ^0.4.0 web-streams-polyfill: ^3.2.1 webpack: ^4.46.0 webpack-cli: ^3.3.12 @@ -2173,10 +2173,10 @@ __metadata: languageName: node linkType: hard -"@types/mime-types@npm:^2.1.1": - version: 2.1.1 - resolution: "@types/mime-types@npm:2.1.1" - checksum: 106b5d556add46446a579ad25ff15d6b421851790d887edcad558c90c1e64b1defc72bfbaf4b08f208916e21d9cc45cdb951d77be51268b18221544cfe054a3c +"@types/mime@npm:^2.0.3": + version: 2.0.3 + resolution: "@types/mime@npm:2.0.3" + checksum: 1f4f144423e149f300438f7cdca9b308d7a18a944e63f5ddf262558208a22a64c8e79b6973d602d86928e19052b3256b492429951b34d037242bb1bdfddae388 languageName: node linkType: hard @@ -7104,13 +7104,6 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^1.1.0": - version: 1.1.0 - resolution: "is-stream@npm:1.1.0" - checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae - languageName: node - linkType: hard - "is-stream@npm:^2.0.0": version: 2.0.0 resolution: "is-stream@npm:2.0.0" @@ -8082,22 +8075,6 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f - languageName: node - linkType: hard - -"mime-types@npm:^2.1.35": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: 1.52.0 - checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 - languageName: node - linkType: hard - "mime-types@npm:~2.1.24": version: 2.1.26 resolution: "mime-types@npm:2.1.26" @@ -8125,6 +8102,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: f43f9b7bfa64534e6b05bd6062961681aeb406a5b53673b53b683f27fcc4e739989941836a355eef831f4478923651ecc739f4a5f6e20a76487b432bfd4db928 + languageName: node + linkType: hard + "mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" @@ -9399,13 +9385,6 @@ __metadata: languageName: node linkType: hard -"readable-stream-node-to-web@npm:^1.0.1": - version: 1.0.1 - resolution: "readable-stream-node-to-web@npm:1.0.1" - checksum: 36cf32aa844c5de00a4bff22513583472aeeb39390bf9a2ae95ae87649e9fce85f0091a336abc71703290f0ddb7d332e78b8eb423a531a8902a6493954fa715b - languageName: node - linkType: hard - "readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": version: 2.3.7 resolution: "readable-stream@npm:2.3.7" @@ -9927,6 +9906,15 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-web-worker-loader@npm:^1.6.1": + version: 1.6.1 + resolution: "rollup-plugin-web-worker-loader@npm:1.6.1" + peerDependencies: + rollup: ^1.9.2 || ^2.0.0 + checksum: 1239c2657bfaea5d3c7a0df901cfc8016cc306dc0a9eb3945b0750e48aec45b0fa0f9e587164e94187e0a84a3fe842bf71697c76a475c66d5e36fbff97fd8730 + languageName: node + linkType: hard + "rollup@npm:^2.75.6": version: 2.75.6 resolution: "rollup@npm:2.75.6" @@ -11471,17 +11459,6 @@ __metadata: languageName: node linkType: hard -"web-streams-node@npm:^0.4.0": - version: 0.4.0 - resolution: "web-streams-node@npm:0.4.0" - dependencies: - is-stream: ^1.1.0 - readable-stream-node-to-web: ^1.0.1 - web-streams-ponyfill: ^1.4.1 - checksum: 25ca7c864bdb49d5db487784872f8095953590b2f0ec8a6230a61eb80ae0d315105eeded87f6c3807982c905b8ef70ef53b155a8934841fdf6cb743e28a6331a - languageName: node - linkType: hard - "web-streams-polyfill@npm:^3.0.0": version: 3.0.0 resolution: "web-streams-polyfill@npm:3.0.0" @@ -11503,13 +11480,6 @@ __metadata: languageName: node linkType: hard -"web-streams-ponyfill@npm:^1.4.1": - version: 1.4.2 - resolution: "web-streams-ponyfill@npm:1.4.2" - checksum: 4ffc1f3bf2276f2ca617f183c1f349d0747fff456dd26f3b67da64a2def24d3efd6c64b68c257457cd7dee4d56038b86db14413f6fcf9dab1b1735e31cccc5cc - languageName: node - linkType: hard - "webpack-cli@npm:^3.3.12": version: 3.3.12 resolution: "webpack-cli@npm:3.3.12" From fd970e8a36727827fbdc3d9506ee2639737d4e69 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Thu, 16 Jun 2022 09:18:49 -0700 Subject: [PATCH 06/17] Working with esm only --- build.js | 47 ++++++++++++++---- demo/demo.js | 4 +- demo/index.html | 4 +- example/index.html | 2 +- example/index.js | 3 -- package.json | 26 +++++----- rollup.config.js | 74 ----------------------------- src/workers.ts | 3 +- tsconfig.json | 1 + yarn.lock | 115 +++++---------------------------------------- 10 files changed, 72 insertions(+), 207 deletions(-) delete mode 100644 rollup.config.js diff --git a/build.js b/build.js index 6a3eae03..238cddde 100644 --- a/build.js +++ b/build.js @@ -1,18 +1,47 @@ -// @ts-check +const { + NodeGlobalsPolyfillPlugin, +} = require('@esbuild-plugins/node-globals-polyfill'); + const { build } = require('esbuild'); /** * @type {import('esbuild').BuildOptions} */ -const options = { - entryPoints: ['./src/index.ts'], - minify: process.env.NODE_ENV === 'production', +const sharedOptions = { + entryPoints: ['./src/index.ts', './src/worker.penumbra.js'], sourcemap: true, bundle: true, - outfile: './dist/penumbra.js', + plugins: [ + NodeGlobalsPolyfillPlugin({ + process: true, + buffer: true, + }), + ], + define: { + global: 'globalThis', + }, +}; + +/** + * @type {import('esbuild').BuildOptions} + */ +const iifeOptions = { + ...sharedOptions, + format: 'iife', + minify: true, + outdir: './dist/iife/', + globalName: 'penumbra', +}; + +build(iifeOptions).catch(() => process.exit(1)); + +/** + * @type {import('esbuild').BuildOptions} + */ +const esmOptions = { + ...sharedOptions, + format: 'esm', + outdir: './dist/esm/', }; -build(options).catch((err) => { - process.stderr.write(err.stderr); - process.exit(1); -}); +build(esmOptions).catch(() => process.exit(1)); diff --git a/demo/demo.js b/demo/demo.js index 8aa65269..1320d920 100644 --- a/demo/demo.js +++ b/demo/demo.js @@ -55,8 +55,8 @@ const onReady = async ( ); return false; } - const cacheBuster = Math.random().toString(10).slice(2); - await penumbra.setWorkerLocation(`worker.penumbra.js?${cacheBuster}`); + // const cacheBuster = Math.random().toString(10).slice(2); + // await penumbra.setWorkerLocation(`worker.penumbra.js?${cacheBuster}`); const NYT = { url: 'https://s3-us-west-2.amazonaws.com/bencmbrook/NYT.txt.enc', filePrefix: 'NYT', diff --git a/demo/index.html b/demo/index.html index 72d8efbd..c6375566 100644 --- a/demo/index.html +++ b/demo/index.html @@ -30,8 +30,8 @@

Penumbra Tests

const demo = penumbra.cloneNode(); penumbra.dataset.penumbra = ''; - penumbra.dataset.worker = `worker.penumbra.js?${cacheBuster}`; - penumbra.src = `main.penumbra.js?${cacheBuster}`; + // penumbra.dataset.worker = `../dist/iife/worker.penumbra.js?${cacheBuster}`; + penumbra.src = `../dist/iife/index.js?${cacheBuster}`; demo.src = `demo.js?${cacheBuster}`; scripts.appendChild(demo); diff --git a/example/index.html b/example/index.html index 8997f4c0..49bdec6f 100644 --- a/example/index.html +++ b/example/index.html @@ -36,7 +36,7 @@

The data below is downloaded and decrypted

- + diff --git a/example/index.js b/example/index.js index 0d08b49d..01a6e02f 100644 --- a/example/index.js +++ b/example/index.js @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-function-return-type */ -/* eslint-disable require-jsdoc */ - // This is all of the Penumbra-relevant code: const onReady = async ( { detail: { penumbra } } = { diff --git a/package.json b/package.json index bbbf3055..c47f5ac0 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,11 @@ "name": "@transcend-io/penumbra", "version": "6.0.0", "description": "Crypto streams for the browser.", - "main": "dist/main/cjs/index.js", - "module": "dist/main/esm/index.js", - "types": "dist/main/types/index.d.ts", + "main": "dist/esm/index.js", + "module": "dist/esm/index.js", + "jsdelivr": "dist/iife/index.js", + "unpkg": "dist/iife/index.js", + "types": "dist/types/index.d.ts", "directories": { "example": "example" }, @@ -22,8 +24,8 @@ "####### Linting #######": "", "lint": "yarn pnpify eslint src --ext .ts", "####### Start #########": "", - "start:example": "yarn build:example && http-server example/build/ --port 8080 -o", - "start:demo": "yarn build:demo && http-server demo/build/ --port 8081 -o", + "start:example": "yarn build:dist && open http://localhost:8080/example && http-server --port 8080", + "start:demo": "yarn build:dist && open http://localhost:8081/demo && http-server --port 8081", "####### Testing #######": "", "test:interactive": "yarn start:demo", "test:local": "karma start karma.local.js", @@ -31,11 +33,14 @@ "test:browserstack": "karma start karma.browserstack.js", "####### Build #######": "", "clean": "rimraf dist && rimraf ts-build && rimraf coverage", - "build": "rollup -c", - "build:example": "rimraf example/build && yarn build && mkdir -p example/build && cp example/*.* example/build/ && cp -a dist/. example/build/", - "build:demo": "rimraf demo/build && yarn build && mkdir -p demo/build && cp demo/*.* demo/build/ && cp -a dist/. demo/build/", + "build": "yarn build:dist && yarn build:types", + "build:dist": "node build.js", + "build:types": "tsc --emitDeclarationOnly --declaration --project tsconfig.json", "webpack:watch": "yarn clean && webpack --config webpack.dev.js --watch" }, + "browser": { + "stream": "stream-browserify" + }, "repository": { "type": "git", "url": "git+https://github.com/transcend-io/penumbra.git" @@ -78,6 +83,7 @@ "@babel/plugin-proposal-class-properties": "^7.17.12", "@babel/preset-env": "^7.18.2", "@babel/preset-typescript": "^7.17.12", + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", "@types/mime": "^2.0.3", "@types/node": "^17.0.40", "@types/tape": "^4.13.2", @@ -106,10 +112,6 @@ "nyc": "^15.1.0", "prettier": "^2.6.2", "rimraf": "^3.0.2", - "rollup": "^2.75.6", - "rollup-plugin-dts": "^4.2.2", - "rollup-plugin-esbuild": "^4.9.1", - "rollup-plugin-web-worker-loader": "^1.6.1", "tape": "^5.5.3", "terser-webpack-plugin": "^2.3.8", "typescript": "^4.7.3", diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 878d5fab..00000000 --- a/rollup.config.js +++ /dev/null @@ -1,74 +0,0 @@ -import dts from 'rollup-plugin-dts'; -import esbuild from 'rollup-plugin-esbuild'; - -// const name = require('./package.json').main.replace(/\.js$/, ''); - -const main = (config) => ({ - ...config, - input: 'src/index.ts', - external: (id) => !/^[./]/.test(id), -}); - -const worker = (config) => ({ - ...config, - input: 'src/worker.penumbra.js', - external: (id) => !/^[./]/.test(id), -}); - -export default [ - main({ - plugins: [esbuild()], - output: [ - { - dir: 'dist/cjs/', - format: 'cjs', - sourcemap: true, - }, - { - dir: 'dist/esm/', - format: 'es', - sourcemap: true, - }, - ], - }), - worker({ - plugins: [esbuild()], - output: [ - { - file: 'dist/cjs/worker.penumbra.js', - format: 'cjs', - sourcemap: true, - }, - { - file: 'dist/esm/worker.penumbra.js', - format: 'es', - sourcemap: true, - }, - { - file: 'dist/umd/worker.penumbra.js', - format: 'umd', - sourcemap: true, - }, - ], - }), - main({ - plugins: [dts()], - output: { - file: 'dist/types/index.d.ts', - format: 'es', - }, - }), - { - input: 'src/index.ts', - plugins: [esbuild()], - output: [ - { - file: 'dist/umd/index.js', - format: 'iife', - name: 'penumbra', - inlineDynamicImports: true, - }, - ], - sourcemap: true, - }, -]; diff --git a/src/workers.ts b/src/workers.ts index cd9a115e..212590b0 100644 --- a/src/workers.ts +++ b/src/workers.ts @@ -27,8 +27,7 @@ const DEFAULT_WORKERS = { StreamSaver: 'streamsaver.penumbra.serviceworker.js', }; -const SHOULD_LOG_EVENTS = - typeof process !== 'undefined' && process.env.PENUMBRA_LOG_START === 'true'; +const SHOULD_LOG_EVENTS = process?.env?.PENUMBRA_LOG_START === 'true'; // //// // // Init // diff --git a/tsconfig.json b/tsconfig.json index 239985d8..c26e4b8e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,6 +13,7 @@ "esModuleInterop": true, "tsBuildInfoFile": "dist/.tsbuildinfo", "baseUrl": ".", + "outDir": "dist/types", // "types": ["node"], "composite": false, "moduleResolution": "node", diff --git a/yarn.lock b/yarn.lock index 87771ce7..06477a31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1814,6 +1814,15 @@ __metadata: languageName: node linkType: hard +"@esbuild-plugins/node-globals-polyfill@npm:^0.1.1": + version: 0.1.1 + resolution: "@esbuild-plugins/node-globals-polyfill@npm:0.1.1" + peerDependencies: + esbuild: "*" + checksum: 68a41e2c377724e9cd46ca344ad219d289cc41a8b273d0d89bbc82bd90025b067b28234a865d8862a3f38c2a028ca4c93138dfca4e1e75e617efc314156c1ce0 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^1.3.0": version: 1.3.0 resolution: "@eslint/eslintrc@npm:1.3.0" @@ -1975,16 +1984,6 @@ __metadata: languageName: node linkType: hard -"@rollup/pluginutils@npm:^4.1.1": - version: 4.2.1 - resolution: "@rollup/pluginutils@npm:4.2.1" - dependencies: - estree-walker: ^2.0.1 - picomatch: ^2.2.2 - checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 - languageName: node - linkType: hard - "@sindresorhus/is@npm:^4.0.0": version: 4.5.0 resolution: "@sindresorhus/is@npm:4.5.0" @@ -2035,6 +2034,7 @@ __metadata: "@babel/plugin-proposal-class-properties": ^7.17.12 "@babel/preset-env": ^7.18.2 "@babel/preset-typescript": ^7.17.12 + "@esbuild-plugins/node-globals-polyfill": ^0.1.1 "@transcend-io/conflux": ^3.2.2 "@transcend-io/remote-web-streams": 1.0.5 "@types/mime": ^2.0.3 @@ -2070,10 +2070,6 @@ __metadata: prettier: ^2.6.2 promise.allsettled: ^1.0.5 rimraf: ^3.0.2 - rollup: ^2.75.6 - rollup-plugin-dts: ^4.2.2 - rollup-plugin-esbuild: ^4.9.1 - rollup-plugin-web-worker-loader: ^1.6.1 streamsaver: ^2.0.6 tape: ^5.5.3 terser-webpack-plugin: ^2.3.8 @@ -5000,13 +4996,6 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.9.3": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8 - languageName: node - linkType: hard - "es-to-primitive@npm:^1.2.1": version: 1.2.1 resolution: "es-to-primitive@npm:1.2.1" @@ -5544,7 +5533,7 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2": +"estree-walker@npm:^2.0.2": version: 2.0.2 resolution: "estree-walker@npm:2.0.2" checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc @@ -7399,13 +7388,6 @@ __metadata: languageName: node linkType: hard -"joycon@npm:^3.0.1": - version: 3.1.1 - resolution: "joycon@npm:3.1.1" - checksum: 8003c9c3fc79c5c7602b1c7e9f7a2df2e9916f046b0dbad862aa589be78c15734d11beb9fe846f5e06138df22cb2ad29961b6a986ba81c4920ce2b15a7f11067 - languageName: node - linkType: hard - "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -7570,13 +7552,6 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:^3.0.0": - version: 3.0.0 - resolution: "jsonc-parser@npm:3.0.0" - checksum: 1df2326f1f9688de30c70ff19c5b2a83ba3b89a1036160da79821d1361090775e9db502dc57a67c11b56e1186fc1ed70b887f25c5febf9a3ec4f91435836c99d - languageName: node - linkType: hard - "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -7898,15 +7873,6 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.26.1": - version: 0.26.2 - resolution: "magic-string@npm:0.26.2" - dependencies: - sourcemap-codec: ^1.4.8 - checksum: b4db4e2b370ac8d9ffc6443a2b591b75364bf1fc9121b5a4068d5b89804abff6709d1fa4a0e0c2d54f2e61e0e44db83efdfe219a5ab0ba6d25ee1f2b51fbed55 - languageName: node - linkType: hard - "make-dir@npm:^2.0.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -9016,7 +8982,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.2.2, picomatch@npm:^2.2.3": +"picomatch@npm:^2.2.3": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf @@ -9874,61 +9840,6 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-dts@npm:^4.2.2": - version: 4.2.2 - resolution: "rollup-plugin-dts@npm:4.2.2" - dependencies: - "@babel/code-frame": ^7.16.7 - magic-string: ^0.26.1 - peerDependencies: - rollup: ^2.55 - typescript: ^4.1 - dependenciesMeta: - "@babel/code-frame": - optional: true - checksum: cf4b45f6cca442a5f44af0f0fb567c8fc540ecb792c763571d1bcda9bf495803bcc8d4eaef451a2dd32f7f391eb822e2b96cc6b86b096db54a4d3935236fd8da - languageName: node - linkType: hard - -"rollup-plugin-esbuild@npm:^4.9.1": - version: 4.9.1 - resolution: "rollup-plugin-esbuild@npm:4.9.1" - dependencies: - "@rollup/pluginutils": ^4.1.1 - debug: ^4.3.3 - es-module-lexer: ^0.9.3 - joycon: ^3.0.1 - jsonc-parser: ^3.0.0 - peerDependencies: - esbuild: ">=0.10.1" - rollup: ^1.20.0 || ^2.0.0 - checksum: 9b74a7ccff6e1487956c2f3f79e302e96b97036e445f2e56749decccda8733e49354fb1e01698420909fc0c817d535771bdbbb8beb046d961af3e08f005741d8 - languageName: node - linkType: hard - -"rollup-plugin-web-worker-loader@npm:^1.6.1": - version: 1.6.1 - resolution: "rollup-plugin-web-worker-loader@npm:1.6.1" - peerDependencies: - rollup: ^1.9.2 || ^2.0.0 - checksum: 1239c2657bfaea5d3c7a0df901cfc8016cc306dc0a9eb3945b0750e48aec45b0fa0f9e587164e94187e0a84a3fe842bf71697c76a475c66d5e36fbff97fd8730 - languageName: node - linkType: hard - -"rollup@npm:^2.75.6": - version: 2.75.6 - resolution: "rollup@npm:2.75.6" - dependencies: - fsevents: ~2.3.2 - dependenciesMeta: - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: df83c6d43a144a296daf82bed7f12f2dfcc6c495a64245e840d15fd21f2ab8b66bb3423e61c974875b33ccf53fb659d2ed099f272937ecf23af48815277c6cd5 - languageName: node - linkType: hard - "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -10404,7 +10315,7 @@ __metadata: languageName: node linkType: hard -"sourcemap-codec@npm:^1.4.4, sourcemap-codec@npm:^1.4.8": +"sourcemap-codec@npm:^1.4.4": version: 1.4.8 resolution: "sourcemap-codec@npm:1.4.8" checksum: b57981c05611afef31605732b598ccf65124a9fcb03b833532659ac4d29ac0f7bfacbc0d6c5a28a03e84c7510e7e556d758d0bb57786e214660016fb94279316 From 9fd9e454acca298b1cceb02bb66860ab45f6935e Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Fri, 17 Jun 2022 12:46:35 -0700 Subject: [PATCH 07/17] with externalized/unbundled dependencies in dist/node/* --- build.js | 46 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 23 ++++++++++++----------- 2 files changed, 54 insertions(+), 15 deletions(-) diff --git a/build.js b/build.js index 238cddde..a3239fc4 100644 --- a/build.js +++ b/build.js @@ -11,6 +11,13 @@ const sharedOptions = { entryPoints: ['./src/index.ts', './src/worker.penumbra.js'], sourcemap: true, bundle: true, +}; + +/** + * @type {import('esbuild').BuildOptions} + */ +const browserOptions = { + platform: 'browser', plugins: [ NodeGlobalsPolyfillPlugin({ process: true, @@ -27,12 +34,12 @@ const sharedOptions = { */ const iifeOptions = { ...sharedOptions, + ...browserOptions, format: 'iife', minify: true, - outdir: './dist/iife/', + outdir: './dist/browser/iife/', globalName: 'penumbra', }; - build(iifeOptions).catch(() => process.exit(1)); /** @@ -40,8 +47,39 @@ build(iifeOptions).catch(() => process.exit(1)); */ const esmOptions = { ...sharedOptions, + ...browserOptions, format: 'esm', - outdir: './dist/esm/', + outdir: './dist/browser/esm/', }; - build(esmOptions).catch(() => process.exit(1)); + +/** + * @type {import('esbuild').BuildOptions} + */ +const nodeOptions = { + platform: 'node', + // target: 'esnext', + external: ['./node_modules/*'], +}; + +/** + * @type {import('esbuild').BuildOptions} + */ +const nodeEsmOptions = { + ...sharedOptions, + ...nodeOptions, + format: 'esm', + outdir: './dist/node/esm/', +}; +build(nodeEsmOptions).catch(() => process.exit(1)); + +/** + * @type {import('esbuild').BuildOptions} + */ +const nodeCjsOptions = { + ...sharedOptions, + ...nodeOptions, + format: 'cjs', + outdir: './dist/node/cjs/', +}; +build(nodeCjsOptions).catch(() => process.exit(1)); diff --git a/package.json b/package.json index c47f5ac0..3753878c 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,16 @@ "name": "@transcend-io/penumbra", "version": "6.0.0", "description": "Crypto streams for the browser.", - "main": "dist/esm/index.js", - "module": "dist/esm/index.js", - "jsdelivr": "dist/iife/index.js", - "unpkg": "dist/iife/index.js", - "types": "dist/types/index.d.ts", + "main": "./dist/node/cjs/index.js", + "module": "./dist/node/esm/index.js", + "jsdelivr": "./dist/browser/iife/index.js", + "unpkg": "./dist/browser/iife/index.js", + "types": "./dist/types/index.d.ts", + "browser": { + "stream": "stream-browserify", + "./dist/node/cjs/index.js": "./dist/browser/iife/index.js", + "./dist/node/esm/index.js": "./dist/browser/esm/index.js" + }, "directories": { "example": "example" }, @@ -33,14 +38,11 @@ "test:browserstack": "karma start karma.browserstack.js", "####### Build #######": "", "clean": "rimraf dist && rimraf ts-build && rimraf coverage", - "build": "yarn build:dist && yarn build:types", - "build:dist": "node build.js", + "build": "yarn clean && yarn build:dist && yarn build:types", + "build:dist": "yarn node build.js", "build:types": "tsc --emitDeclarationOnly --declaration --project tsconfig.json", "webpack:watch": "yarn clean && webpack --config webpack.dev.js --watch" }, - "browser": { - "stream": "stream-browserify" - }, "repository": { "type": "git", "url": "git+https://github.com/transcend-io/penumbra.git" @@ -61,7 +63,6 @@ }, "files": [ "dist/**/*", - "ts-build/**/*", "src/**/*", "tsconfig.json" ], From 92192f8e610d15b9dc852423c818f8afd150ab17 Mon Sep 17 00:00:00 2001 From: eligrey <~@eligrey.com> Date: Wed, 22 Jun 2022 00:08:10 -0700 Subject: [PATCH 08/17] fix yarn test:interactive, remove custom StreamSaver serviceworker support --- README.md | 3 +-- demo/demo.js | 1 - demo/index.html | 4 ++-- package.json | 4 ++-- src/settings.ts | 8 +++----- src/types.ts | 2 -- src/workers.ts | 5 +---- webpack.common.js | 2 +- 8 files changed, 10 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 1de571d5..53b96315 100644 --- a/README.md +++ b/README.md @@ -527,13 +527,12 @@ On Amazon S3, this means adding the following line to your bucket policy, inside ```ts // Set only the base URL by passing a string -penumbra.setWorkerLocation('/penumbra-workers/'); +penumbra.setWorkerLocation('/penumbra-workers/worker.penumbra.js'); // Set all worker URLs by passing a WorkerLocation object penumbra.setWorkerLocation({ base: '/penumbra-workers/', penumbra: 'worker.penumbra.js', - StreamSaver: 'StreamSaver.js', }); // Set a single worker's location diff --git a/demo/demo.js b/demo/demo.js index 1320d920..9e8e22bf 100644 --- a/demo/demo.js +++ b/demo/demo.js @@ -2,7 +2,6 @@ const view = self; const tests = []; -const results = []; let failures = 0; const logger = console; diff --git a/demo/index.html b/demo/index.html index c6375566..9be070d6 100644 --- a/demo/index.html +++ b/demo/index.html @@ -30,8 +30,8 @@

Penumbra Tests

const demo = penumbra.cloneNode(); penumbra.dataset.penumbra = ''; - // penumbra.dataset.worker = `../dist/iife/worker.penumbra.js?${cacheBuster}`; - penumbra.src = `../dist/iife/index.js?${cacheBuster}`; + penumbra.dataset.worker = `/dist/browser/iife/worker.penumbra.js?${cacheBuster}`; + penumbra.src = `/dist/browser/iife/index.js?${cacheBuster}`; demo.src = `demo.js?${cacheBuster}`; scripts.appendChild(demo); diff --git a/package.json b/package.json index 3753878c..720666b1 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,9 @@ "unpkg": "./dist/browser/iife/index.js", "types": "./dist/types/index.d.ts", "browser": { - "stream": "stream-browserify", "./dist/node/cjs/index.js": "./dist/browser/iife/index.js", - "./dist/node/esm/index.js": "./dist/browser/esm/index.js" + "./dist/node/esm/index.js": "./dist/browser/esm/index.js", + "stream": "stream-browserify" }, "directories": { "example": "example" diff --git a/src/settings.ts b/src/settings.ts index dc14be71..deeec11f 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,5 +1,3 @@ -export const settings = ( - document.currentScript || - document.querySelector('script[data-penumbra]') || - ({ dataset: {} } as HTMLScriptElement) -).dataset; +export const settings = + (document.currentScript || document.querySelector('script[data-penumbra]')) + ?.dataset || ({} as DOMStringMap); diff --git a/src/types.ts b/src/types.ts index c9ee3d63..25f7b40c 100644 --- a/src/types.ts +++ b/src/types.ts @@ -291,8 +291,6 @@ export interface WorkerLocation { base: URL; /** The location of the Penumbra Worker script */ penumbra: URL; - /** The location of the StreamSaver ServiceWorker script */ - StreamSaver: URL; } /** diff --git a/src/workers.ts b/src/workers.ts index 212590b0..3945265d 100644 --- a/src/workers.ts +++ b/src/workers.ts @@ -23,8 +23,7 @@ import { settings } from './settings'; * The default worker file locations */ const DEFAULT_WORKERS = { - penumbra: 'worker.penumbra.js', - StreamSaver: 'streamsaver.penumbra.serviceworker.js', + penumbra: '/worker.penumbra.js', }; const SHOULD_LOG_EVENTS = process?.env?.PENUMBRA_LOG_START === 'true'; @@ -111,7 +110,6 @@ export function getWorkerLocation(): WorkerLocation { return { base: context, penumbra: new URL(penumbra, context), - StreamSaver: new URL(StreamSaver, context), }; } @@ -270,7 +268,6 @@ view.addEventListener('beforeunload', cleanup); * penumbra.setWorkerLocation({ * base: '/penumbra-workers/', * penumbra: 'worker.penumbra.js', - * StreamSaver: 'StreamSaver.js', * }); * // Set a single worker's location * penumbra.setWorkerLocation({decrypt: 'penumbra.decrypt.js'}); diff --git a/webpack.common.js b/webpack.common.js index cf159921..ace9d06d 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -5,7 +5,7 @@ // external const { join } = require('path'); -const { ProvidePlugin } = require('webpack'); +// const { ProvidePlugin } = require('webpack'); module.exports = { entry: { From ad5aaa537b35a13296ad980d715d6bc8e1b429e8 Mon Sep 17 00:00:00 2001 From: eligrey <~@eligrey.com> Date: Wed, 22 Jun 2022 00:23:50 -0700 Subject: [PATCH 09/17] fixing semantics; iife = a form of cjs --- build.js | 39 ++++--------------------------- demo/{index.html => cjs.html} | 4 ++-- demo/esm.html | 44 +++++++++++++++++++++++++++++++++++ example/index.html | 2 +- package.json | 12 ++++++---- 5 files changed, 58 insertions(+), 43 deletions(-) rename demo/{index.html => cjs.html} (87%) create mode 100644 demo/esm.html diff --git a/build.js b/build.js index a3239fc4..94ae7ca4 100644 --- a/build.js +++ b/build.js @@ -32,15 +32,15 @@ const browserOptions = { /** * @type {import('esbuild').BuildOptions} */ -const iifeOptions = { +const cjsOptions = { ...sharedOptions, ...browserOptions, format: 'iife', minify: true, - outdir: './dist/browser/iife/', + outdir: './dist/cjs/', globalName: 'penumbra', }; -build(iifeOptions).catch(() => process.exit(1)); +build(cjsOptions).catch(() => process.exit(1)); /** * @type {import('esbuild').BuildOptions} @@ -49,37 +49,6 @@ const esmOptions = { ...sharedOptions, ...browserOptions, format: 'esm', - outdir: './dist/browser/esm/', + outdir: './dist/esm/', }; build(esmOptions).catch(() => process.exit(1)); - -/** - * @type {import('esbuild').BuildOptions} - */ -const nodeOptions = { - platform: 'node', - // target: 'esnext', - external: ['./node_modules/*'], -}; - -/** - * @type {import('esbuild').BuildOptions} - */ -const nodeEsmOptions = { - ...sharedOptions, - ...nodeOptions, - format: 'esm', - outdir: './dist/node/esm/', -}; -build(nodeEsmOptions).catch(() => process.exit(1)); - -/** - * @type {import('esbuild').BuildOptions} - */ -const nodeCjsOptions = { - ...sharedOptions, - ...nodeOptions, - format: 'cjs', - outdir: './dist/node/cjs/', -}; -build(nodeCjsOptions).catch(() => process.exit(1)); diff --git a/demo/index.html b/demo/cjs.html similarity index 87% rename from demo/index.html rename to demo/cjs.html index 9be070d6..2a8d2c3b 100644 --- a/demo/index.html +++ b/demo/cjs.html @@ -30,8 +30,8 @@

Penumbra Tests

const demo = penumbra.cloneNode(); penumbra.dataset.penumbra = ''; - penumbra.dataset.worker = `/dist/browser/iife/worker.penumbra.js?${cacheBuster}`; - penumbra.src = `/dist/browser/iife/index.js?${cacheBuster}`; + penumbra.dataset.worker = `/dist/cjs/worker.penumbra.js?${cacheBuster}`; + penumbra.src = `/dist/cjs/index.js?${cacheBuster}`; demo.src = `demo.js?${cacheBuster}`; scripts.appendChild(demo); diff --git a/demo/esm.html b/demo/esm.html new file mode 100644 index 00000000..d9891700 --- /dev/null +++ b/demo/esm.html @@ -0,0 +1,44 @@ + + + + Penumbra Tests + + + + + +
+

Penumbra Tests

+
+
+

Open your console (Option+Command+I) to view test results.

+
+ + + + diff --git a/example/index.html b/example/index.html index 49bdec6f..e6a53e6b 100644 --- a/example/index.html +++ b/example/index.html @@ -36,7 +36,7 @@

The data below is downloaded and decrypted

- + diff --git a/package.json b/package.json index 720666b1..d35bf0ae 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,12 @@ "description": "Crypto streams for the browser.", "main": "./dist/node/cjs/index.js", "module": "./dist/node/esm/index.js", - "jsdelivr": "./dist/browser/iife/index.js", - "unpkg": "./dist/browser/iife/index.js", + "jsdelivr": "./dist/cjs/index.js", + "unpkg": "./dist/cjs/index.js", "types": "./dist/types/index.d.ts", "browser": { - "./dist/node/cjs/index.js": "./dist/browser/iife/index.js", - "./dist/node/esm/index.js": "./dist/browser/esm/index.js", + "./dist/cjs/index.js": "./dist/cjs/index.js", + "./dist/esm/index.js": "./dist/esm/index.js", "stream": "stream-browserify" }, "directories": { @@ -30,9 +30,11 @@ "lint": "yarn pnpify eslint src --ext .ts", "####### Start #########": "", "start:example": "yarn build:dist && open http://localhost:8080/example && http-server --port 8080", - "start:demo": "yarn build:dist && open http://localhost:8081/demo && http-server --port 8081", + "start:demo": "yarn build:dist && open http://localhost:8081/demo/cjs.html && http-server --port 8081", + "start:demo:esm": "yarn build:dist && open http://localhost:8081/demo/esm.html && http-server --port 8081", "####### Testing #######": "", "test:interactive": "yarn start:demo", + "test:esm:interactive": "yarn start:demo:esm", "test:local": "karma start karma.local.js", "test:local:rebuild": "yarn && karma start karma.local.js", "test:browserstack": "karma start karma.browserstack.js", From 5c223c8a60fabd7fa7bf31772beff7ad992637b1 Mon Sep 17 00:00:00 2001 From: eligrey <~@eligrey.com> Date: Wed, 22 Jun 2022 02:07:33 -0700 Subject: [PATCH 10/17] fix esm tests --- demo/esm.html | 34 ++++++++-------------------------- package.json | 2 +- 2 files changed, 9 insertions(+), 27 deletions(-) diff --git a/demo/esm.html b/demo/esm.html index d9891700..7af97407 100644 --- a/demo/esm.html +++ b/demo/esm.html @@ -13,32 +13,14 @@

Penumbra Tests

Open your console (Option+Command+I) to view test results.

- - diff --git a/package.json b/package.json index d35bf0ae..672db1ad 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "start:demo:esm": "yarn build:dist && open http://localhost:8081/demo/esm.html && http-server --port 8081", "####### Testing #######": "", "test:interactive": "yarn start:demo", - "test:esm:interactive": "yarn start:demo:esm", + "test:interactive:esm": "yarn start:demo:esm", "test:local": "karma start karma.local.js", "test:local:rebuild": "yarn && karma start karma.local.js", "test:browserstack": "karma start karma.browserstack.js", From 2ee86c309eaa6c4eecc923b0b2f9a99c7b38b02f Mon Sep 17 00:00:00 2001 From: eligrey <~@eligrey.com> Date: Wed, 22 Jun 2022 12:47:34 -0700 Subject: [PATCH 11/17] Fix Vercel deploy where do I change the code that's calling build:example? --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 672db1ad..6f932790 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "clean": "rimraf dist && rimraf ts-build && rimraf coverage", "build": "yarn clean && yarn build:dist && yarn build:types", "build:dist": "yarn node build.js", + "build:example": "yarn build:dist", "build:types": "tsc --emitDeclarationOnly --declaration --project tsconfig.json", "webpack:watch": "yarn clean && webpack --config webpack.dev.js --watch" }, From 3ab77e2d89f52da5dfbd0ce0f3ef6ec404fc1011 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Sat, 16 Jul 2022 09:28:24 -0400 Subject: [PATCH 12/17] Don't assume worker is on base path --- src/workers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/workers.ts b/src/workers.ts index 3945265d..32a167fe 100644 --- a/src/workers.ts +++ b/src/workers.ts @@ -23,7 +23,7 @@ import { settings } from './settings'; * The default worker file locations */ const DEFAULT_WORKERS = { - penumbra: '/worker.penumbra.js', + penumbra: 'worker.penumbra.js', }; const SHOULD_LOG_EVENTS = process?.env?.PENUMBRA_LOG_START === 'true'; From 29519984c02e2c707809366fd2da6da7465d225c Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Sat, 16 Jul 2022 09:32:41 -0400 Subject: [PATCH 13/17] lint err --- src/workers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/workers.ts b/src/workers.ts index 32a167fe..909cf473 100644 --- a/src/workers.ts +++ b/src/workers.ts @@ -103,7 +103,7 @@ export function getWorkerLocation(): WorkerLocation { penumbra: settings.worker || DEFAULT_WORKERS.penumbra, ...(typeof config === 'object' ? config : {}), }; - const { base, penumbra, StreamSaver } = options; + const { base, penumbra } = options; const context = resolve(base || scriptUrl); From 2f0fd13c1a9bb646c233c49a5dd178980d40ea35 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Sat, 16 Jul 2022 09:39:01 -0400 Subject: [PATCH 14/17] relative paths in example --- example/index.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/example/index.html b/example/index.html index e6a53e6b..fc68841b 100644 --- a/example/index.html +++ b/example/index.html @@ -33,10 +33,10 @@

The data below is downloaded and decrypted

- - - - - + + + + + From 35d6ae40703af78f5aa87dc8b6221da77f322796 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Sat, 16 Jul 2022 09:42:21 -0400 Subject: [PATCH 15/17] absolute paths in example --- example/index.html | 12 ++++++------ netlify.toml | 5 ----- vercel.json | 3 +++ 3 files changed, 9 insertions(+), 11 deletions(-) delete mode 100644 netlify.toml create mode 100644 vercel.json diff --git a/example/index.html b/example/index.html index fc68841b..38d5b598 100644 --- a/example/index.html +++ b/example/index.html @@ -9,7 +9,7 @@

Penumbra: Browser Decryption Demo 2

- Compare vs. Web Crypto + Compare vs. Web Crypto

Click the canvas below to test browser responsiveness. @@ -33,10 +33,10 @@

The data below is downloaded and decrypted

- - - - - + + + + + diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index 8676c8a6..00000000 --- a/netlify.toml +++ /dev/null @@ -1,5 +0,0 @@ -## Yarn 3 cache does not work out of the box as of Jan 2022. Context: -## https://github.com/netlify/build/issues/1535#issuecomment-1021947989 -[build.environment] -YARN_CACHE_FOLDER = "/opt/buildhome/.yarn_cache" -YARN_VERSION = "1.22.5" diff --git a/vercel.json b/vercel.json new file mode 100644 index 00000000..43d22064 --- /dev/null +++ b/vercel.json @@ -0,0 +1,3 @@ +{ + "redirects": [{ "source": "/", "destination": "/example" }] +} From 2330459ba39cac21544c88689bc8cf5f47bca668 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Sat, 16 Jul 2022 09:45:51 -0400 Subject: [PATCH 16/17] rm vercel.json --- vercel.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 vercel.json diff --git a/vercel.json b/vercel.json deleted file mode 100644 index 43d22064..00000000 --- a/vercel.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "redirects": [{ "source": "/", "destination": "/example" }] -} From e526dde48617a4056a90a9b51825d2331287e808 Mon Sep 17 00:00:00 2001 From: bencmbrook Date: Sat, 16 Jul 2022 09:47:52 -0400 Subject: [PATCH 17/17] revert --- example/index.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/example/index.html b/example/index.html index 38d5b598..e6a53e6b 100644 --- a/example/index.html +++ b/example/index.html @@ -9,7 +9,7 @@

Penumbra: Browser Decryption Demo 2

- Compare vs. Web Crypto + Compare vs. Web Crypto

Click the canvas below to test browser responsiveness. @@ -33,10 +33,10 @@

The data below is downloaded and decrypted

- - - + + + - +