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/build.js b/build.js new file mode 100644 index 00000000..94ae7ca4 --- /dev/null +++ b/build.js @@ -0,0 +1,54 @@ +const { + NodeGlobalsPolyfillPlugin, +} = require('@esbuild-plugins/node-globals-polyfill'); + +const { build } = require('esbuild'); + +/** + * @type {import('esbuild').BuildOptions} + */ +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, + buffer: true, + }), + ], + define: { + global: 'globalThis', + }, +}; + +/** + * @type {import('esbuild').BuildOptions} + */ +const cjsOptions = { + ...sharedOptions, + ...browserOptions, + format: 'iife', + minify: true, + outdir: './dist/cjs/', + globalName: 'penumbra', +}; +build(cjsOptions).catch(() => process.exit(1)); + +/** + * @type {import('esbuild').BuildOptions} + */ +const esmOptions = { + ...sharedOptions, + ...browserOptions, + format: 'esm', + outdir: './dist/esm/', +}; +build(esmOptions).catch(() => process.exit(1)); diff --git a/demo/index.html b/demo/cjs.html similarity index 88% rename from demo/index.html rename to demo/cjs.html index 72d8efbd..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 = `worker.penumbra.js?${cacheBuster}`; - penumbra.src = `main.penumbra.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/demo.js b/demo/demo.js index 8aa65269..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; @@ -55,8 +54,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/esm.html b/demo/esm.html new file mode 100644 index 00000000..7af97407 --- /dev/null +++ b/demo/esm.html @@ -0,0 +1,26 @@ + + + + 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 3b7508de..e6a53e6b 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/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/package.json b/package.json index a6627eff..6f932790 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,17 @@ { "name": "@transcend-io/penumbra", - "version": "5.3.2", + "version": "6.0.0", "description": "Crypto streams for the browser.", - "main": "dist/main.penumbra.js", - "types": "ts-build/src/index.d.ts", + "main": "./dist/node/cjs/index.js", + "module": "./dist/node/esm/index.js", + "jsdelivr": "./dist/cjs/index.js", + "unpkg": "./dist/cjs/index.js", + "types": "./dist/types/index.d.ts", + "browser": { + "./dist/cjs/index.js": "./dist/cjs/index.js", + "./dist/esm/index.js": "./dist/esm/index.js", + "stream": "stream-browserify" + }, "directories": { "example": "example" }, @@ -21,18 +29,21 @@ "####### 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/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: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", "####### Build #######": "", "clean": "rimraf dist && rimraf ts-build && rimraf coverage", - "build": "yarn clean && mkdir -p dist && webpack --config webpack.prod.js && tsc", - "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 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" }, "repository": { @@ -55,7 +66,6 @@ }, "files": [ "dist/**/*", - "ts-build/**/*", "src/**/*", "tsconfig.json" ], @@ -66,11 +76,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": { @@ -78,7 +87,8 @@ "@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", + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@types/mime": "^2.0.3", "@types/node": "^17.0.40", "@types/tape": "^4.13.2", "@typescript-eslint/eslint-plugin": "^5.27.1", @@ -86,8 +96,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", 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/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/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 aa998eb3..909cf473 100644 --- a/src/workers.ts +++ b/src/workers.ts @@ -24,10 +24,9 @@ import { settings } from './settings'; */ const DEFAULT_WORKERS = { penumbra: 'worker.penumbra.js', - StreamSaver: 'streamsaver.penumbra.serviceworker.js', }; -const SHOULD_LOG_EVENTS = process.env.PENUMBRA_LOG_START === 'true'; +const SHOULD_LOG_EVENTS = process?.env?.PENUMBRA_LOG_START === 'true'; // //// // // Init // @@ -104,14 +103,13 @@ 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); return { base: context, penumbra: new URL(penumbra, context), - StreamSaver: new URL(StreamSaver, context), }; } @@ -148,8 +146,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, @@ -267,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/src/zip.ts b/src/zip.ts index aa298062..8465672f 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 3d131a18..c26e4b8e 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, + "outDir": "dist/types", + // "types": ["node"], + "composite": false, "moduleResolution": "node", "strict": true, "typeRoots": [ 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: { diff --git a/yarn.lock b/yarn.lock index 15512f77..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" @@ -2025,9 +2034,10 @@ __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-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 @@ -2035,11 +2045,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 @@ -2055,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 @@ -2065,7 +2075,6 @@ __metadata: 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 @@ -2160,10 +2169,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 @@ -3285,7 +3294,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,16 +3601,6 @@ __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 - languageName: node - linkType: hard - "builtin-status-codes@npm:^3.0.0": version: 3.0.0 resolution: "builtin-status-codes@npm:3.0.0" @@ -5031,6 +5030,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" @@ -6385,7 +6595,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 @@ -6883,13 +7093,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" @@ -7838,22 +8041,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" @@ -7881,6 +8068,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" @@ -9155,13 +9351,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" @@ -11181,17 +11370,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" @@ -11213,13 +11391,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"