diff --git a/dist/.npmignore b/dist/.npmignore deleted file mode 100644 index 19e714f9..00000000 --- a/dist/.npmignore +++ /dev/null @@ -1 +0,0 @@ -tsconfig.types.tsbuildinfo diff --git a/examples/angular/package.json b/examples/angular/package.json index 19b92207..eced618b 100644 --- a/examples/angular/package.json +++ b/examples/angular/package.json @@ -39,6 +39,7 @@ "@types/testing-library__jest-dom": "^5.14.5", "autoprefixer": "^10.4.8", "jest": "^28.1.3", + "jest-environment-jsdom": "28", "jest-preview": "^0.2.8", "postcss": "^8.4.16", "start-server-and-test": "^1.14.0", diff --git a/examples/create-react-app/src/__tests__/transform.test.tsx b/examples/create-react-app/src/__tests__/transform.test.tsx index d9b845e4..87c3410f 100644 --- a/examples/create-react-app/src/__tests__/transform.test.tsx +++ b/examples/create-react-app/src/__tests__/transform.test.tsx @@ -3,13 +3,15 @@ import { render } from '@testing-library/react'; import App from '../App'; describe('transform', () => { - it('should generate snapshots correctly in different OS', () => { + // TODO: Assert svg file only + // TODO: To investigate why svg has "role="img" on Windows + it.skip('should generate snapshots correctly in different OS', () => { render(); expect( document.body.outerHTML.replace(/\r\n|\n|\r/g, '\n'), ).toMatchInlineSnapshot( - `"
\\"logo\\"
\\"logo2\\"\\"static

Create React App example

Styled by CSS Modules

This text is styled by global configured SASS

This text is styled by imported SASS

This text is styled by SASS from load paths

An animated element style using @import ~

Watch me fade in!

Learn React
"`, + `"
\\"logo\\"
\\"logo2\\"\\"static

Create React App example

Styled by CSS Modules

This text is styled by global configured SASS

This text is styled by imported SASS

This text is styled by SASS from load paths

An animated element style using @import ~

Watch me fade in!

Learn React
"`, ); }); }); diff --git a/package.json b/package.json index d3162892..e02726e1 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ }, "main": "dist/index.js", "bin": { - "jest-preview": "./cli/index.js" + "jest-preview": "dist/cli/index.js" }, "files": [ "dist", @@ -37,18 +37,16 @@ "docs": "cd website && npm run start", "build:docs": "cd website && npm run build", "dev": "vite", - "types": "tsc --project tsconfig.types.json", - "build": "node scripts/clearBuildFolder.js && pnpm run build:only && pnpm run types", "build:legacy::only": "vite build", "build:legacy:watch": "vite build --watch", - "build:only": "rollup -c", - "build:watch": "rollup -c -w", + "build": "rimraf dist && rollup -c", + "build:watch": "rimraf dist && rollup -c -w", "prepublishOnly": "pnpm run build", "publish:alpha": "cross-env BUILD_TAG=alpha npm publish --tag alpha", "publish:latest": "cross-env BUILD_TAG=latest npm publish", "preview": "vite preview", - "server": "node cli/index.js", - "server:watch": "nodemon cli/index.js", + "server": "node dist/cli/index.js", + "server:watch": "nodemon dist/cli/index.js", "test:dev": "jest --clearCache && cross-env NODE_ENV=test jest --watch App", "test:dev:cache": "cross-env NODE_ENV=test jest --watch App", "test:ci": "cross-env NODE_ENV=test jest", @@ -57,7 +55,7 @@ "prettier": "prettier cli src --check", "prettier:fix": "pnpm run prettier -- --write", "sort": "npx sort-package-json", - "postinstall": "node -e \"try{require('./cli/clearCache')}catch(e){console.log(e)}\"", + "postinstall": "node -e \"try{require('./dist/cli/clearCache')}catch(e){console.log(e)}\"", "publish:local": "npm publish --registry http://0.0.0.0:4873/", "ecosystem-ci": "node scripts/ecosystem-ci.js", "lint": "eslint . --ext .tsx,.ts,.js,.jsx" @@ -73,6 +71,7 @@ "open": "^8.4.0", "postcss-import": "^14.1.0", "postcss-load-config": "^4.0.1", + "rollup-plugin-copy": "^3.4.0", "sirv": "^2.0.2", "slash": "^3.0.0", "string-hash": "^1.1.3", @@ -84,6 +83,8 @@ "@emotion/react": "^11.9.0", "@emotion/styled": "^11.8.1", "@jest/types": "27", + "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-node-resolve": "^15.0.1", "@stitches/react": "^1.2.8", "@swc/core": "^1.2.154", "@swc/jest": "^0.2.20", @@ -100,6 +101,7 @@ "@types/styled-components": "^5.1.24", "@types/svgo": "^2.6.3", "@types/testing-library__jest-dom": "^5.14.5", + "@types/ws": "^8.5.3", "@typescript-eslint/eslint-plugin": "^5.38.0", "@typescript-eslint/parser": "^5.38.0", "@vitejs/plugin-react": "^1.3.0", @@ -126,9 +128,10 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "react-is": "^18.2.0", - "rollup": "^2.77.2", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.31.2", + "rimraf": "^3.0.2", + "rollup": "^3.2.3", + "rollup-plugin-dts": "^5.0.0", + "rollup-plugin-esbuild": "^4.10.1", "sass": "^1.50.0", "styled-components": "^5.3.5", "tailwindcss": "^3.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64c7b2c8..777beef5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,8 @@ specifiers: '@emotion/react': ^11.9.0 '@emotion/styled': ^11.8.1 '@jest/types': '27' + '@rollup/plugin-commonjs': ^23.0.2 + '@rollup/plugin-node-resolve': ^15.0.1 '@stitches/react': ^1.2.8 '@svgr/core': ^6.2.1 '@swc/core': ^1.2.154 @@ -22,6 +24,7 @@ specifiers: '@types/styled-components': ^5.1.24 '@types/svgo': ^2.6.3 '@types/testing-library__jest-dom': ^5.14.5 + '@types/ws': ^8.5.3 '@typescript-eslint/eslint-plugin': ^5.38.0 '@typescript-eslint/parser': ^5.38.0 '@vitejs/plugin-react': ^1.3.0 @@ -57,9 +60,11 @@ specifiers: react: ^17.0.2 react-dom: ^17.0.2 react-is: ^18.2.0 - rollup: ^2.77.2 - rollup-plugin-terser: ^7.0.2 - rollup-plugin-typescript2: ^0.31.2 + rimraf: ^3.0.2 + rollup: ^3.2.3 + rollup-plugin-copy: ^3.4.0 + rollup-plugin-dts: ^5.0.0 + rollup-plugin-esbuild: ^4.10.1 sass: ^1.50.0 sirv: ^2.0.2 slash: ^3.0.0 @@ -83,6 +88,7 @@ dependencies: open: 8.4.0 postcss-import: 14.1.0_postcss@8.4.14 postcss-load-config: 4.0.1_postcss@8.4.14 + rollup-plugin-copy: 3.4.0 sirv: 2.0.2 slash: 3.0.0 string-hash: 1.1.3 @@ -94,6 +100,8 @@ devDependencies: '@emotion/react': 11.10.0_dix7ey6gbjrwvo6teqhxmfkyn4 '@emotion/styled': 11.10.0_nbf7fryyhih6f2mhpaw3jzv2d4 '@jest/types': 27.5.1 + '@rollup/plugin-commonjs': 23.0.2_rollup@3.2.3 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.2.3 '@stitches/react': 1.2.8_react@17.0.2 '@swc/core': 1.2.223 '@swc/jest': 0.2.22_@swc+core@1.2.223 @@ -110,6 +118,7 @@ devDependencies: '@types/styled-components': 5.1.25 '@types/svgo': 2.6.3 '@types/testing-library__jest-dom': 5.14.5 + '@types/ws': 8.5.3 '@typescript-eslint/eslint-plugin': 5.38.0_gl4g3tss5phduo5kw3bd5pm54i '@typescript-eslint/parser': 5.38.0_4brgkhw6cq4me3drk3kxrpb2mm '@vitejs/plugin-react': 1.3.2 @@ -136,12 +145,13 @@ devDependencies: react: 17.0.2 react-dom: 17.0.2_react@17.0.2 react-is: 18.2.0 - rollup: 2.77.2 - rollup-plugin-terser: 7.0.2_rollup@2.77.2 - rollup-plugin-typescript2: 0.31.2_oo3i3f3qmqiztdz5qgxrrjmd5e + rimraf: 3.0.2 + rollup: 3.2.3 + rollup-plugin-dts: 5.0.0_i32qiyxj2putgy75mzpmdgsoy4 + rollup-plugin-esbuild: 4.10.1_rollup@3.2.3 sass: 1.54.1 styled-components: 5.3.5_v5ja746gkdtknuc6tj46sve3be - tailwindcss: 3.1.7 + tailwindcss: 3.1.7_postcss@8.4.14 typescript: 4.7.4 vite: 2.9.14_less@4.1.3+sass@1.54.1 vite-plugin-svgr: 2.2.1_vite@2.9.14 @@ -995,13 +1005,6 @@ packages: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - /@jridgewell/source-map/0.3.2: - resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} - dependencies: - '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.14 - dev: true - /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} @@ -1017,12 +1020,10 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true /@nodelib/fs.stat/2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true /@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -1030,12 +1031,47 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 - dev: true /@polka/url/1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: false + /@rollup/plugin-commonjs/23.0.2_rollup@3.2.3: + resolution: {integrity: sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.2.3 + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.0.3 + is-reference: 1.2.1 + magic-string: 0.26.7 + rollup: 3.2.3 + dev: true + + /@rollup/plugin-node-resolve/15.0.1_rollup@3.2.3: + resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.2.3 + '@types/resolve': 1.20.2 + deepmerge: 4.2.2 + is-builtin-module: 3.2.0 + is-module: 1.0.0 + resolve: 1.22.1 + rollup: 3.2.3 + dev: true + /@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -1044,6 +1080,21 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/pluginutils/5.0.2_rollup@3.2.3: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.2.3 + dev: true + /@sinclair/typebox/0.24.26: resolution: {integrity: sha512-1ZVIyyS1NXDRVT8GjWD5jULjhDyM3IsIHef2VGUMdnWOlX2tkPjyEX/7K0TGSH2S8EaPhp1ylFdjSjUGQ+gecg==} dev: true @@ -1460,6 +1511,23 @@ packages: '@types/node': 18.6.3 dev: true + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + + /@types/fs-extra/8.1.2: + resolution: {integrity: sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==} + dependencies: + '@types/node': 18.6.3 + dev: false + + /@types/glob/7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 18.6.3 + dev: false + /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: @@ -1514,6 +1582,10 @@ packages: resolution: {integrity: sha512-1YXyYH83h6We1djyoUEqTlVyQtCfJAFXELSKW2ZRtjHD4hQ82CC4lvrv5D0l0FLcKBaiPbXyi3MpMsI9ZRgKsw==} dev: true + /@types/minimatch/5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: false + /@types/node/18.6.3: resolution: {integrity: sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==} @@ -1542,6 +1614,10 @@ packages: csstype: 3.1.0 dev: true + /@types/resolve/1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + dev: true + /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: @@ -1576,6 +1652,12 @@ packages: '@types/jest': 27.5.2 dev: true + /@types/ws/8.5.3: + resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} + dependencies: + '@types/node': 18.6.3 + dev: true + /@types/yargs-parser/21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true @@ -1734,14 +1816,6 @@ packages: - supports-color dev: true - /@yarn-tool/resolve-package/1.0.47: - resolution: {integrity: sha512-Zaw58gQxjQceJqhqybJi1oUDaORT8i2GTgwICPs8v/X/Pkx35FXQba69ldHVg5pQZ6YLKpROXgyHvBaCJOFXiA==} - dependencies: - pkg-dir: 5.0.0 - tslib: 2.4.0 - upath2: 3.1.13 - dev: true - /abab/2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true @@ -1905,7 +1979,6 @@ packages: /array-union/2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - dev: true /array.prototype.flat/1.3.0: resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} @@ -2054,7 +2127,6 @@ packages: /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} @@ -2079,6 +2151,11 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 dev: true /braces/3.0.2: @@ -2111,6 +2188,11 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true + /builtin-modules/3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + /builtins/5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: @@ -2277,6 +2359,10 @@ packages: /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /colorette/1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + dev: false + /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2284,10 +2370,6 @@ packages: delayed-stream: 1.0.0 dev: true - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true - /commander/9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} engines: {node: ^12.20.0 || >=14} @@ -2299,7 +2381,6 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /configstore/5.0.1: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} @@ -2589,7 +2670,6 @@ packages: engines: {node: '>=8'} dependencies: path-type: 4.0.0 - dev: true /dlv/1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -2709,6 +2789,10 @@ packages: unbox-primitive: 1.0.2 dev: true + /es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + dev: true + /es-shim-unscopables/1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: @@ -3319,7 +3403,6 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -3333,7 +3416,6 @@ packages: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 - dev: true /fb-watchman/2.0.1: resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} @@ -3369,15 +3451,6 @@ packages: - supports-color dev: false - /find-cache-dir/3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: true - /find-node-modules/2.1.3: resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} dependencies: @@ -3440,18 +3513,17 @@ packages: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true - /fs-extra/10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + /fs-extra/8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true /fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} @@ -3554,6 +3626,16 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + + /glob/8.0.3: + resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.0 + once: 1.4.0 dev: true /global-dirs/3.0.0: @@ -3594,6 +3676,20 @@ packages: type-fest: 0.20.2 dev: true + /globby/10.0.1: + resolution: {integrity: sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==} + engines: {node: '>=8'} + dependencies: + '@types/glob': 7.2.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + glob: 7.2.3 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -3778,7 +3874,6 @@ packages: /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} - dev: true /image-size/0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} @@ -3827,11 +3922,9 @@ packages: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true /ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} @@ -3874,6 +3967,13 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-builtin-module/3.2.0: + resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + /is-callable/1.2.4: resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} engines: {node: '>= 0.4'} @@ -3937,6 +4037,10 @@ packages: is-path-inside: 3.0.3 dev: false + /is-module/1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + /is-negative-zero/2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -3968,10 +4072,21 @@ packages: engines: {node: '>=8'} dev: false + /is-plain-object/3.0.1: + resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==} + engines: {node: '>=0.10.0'} + dev: false + /is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true + /is-reference/1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + dependencies: + '@types/estree': 1.0.0 + dev: true + /is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -4581,15 +4696,6 @@ packages: string-length: 4.0.2 dev: true - /jest-worker/26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 18.6.3 - merge-stream: 2.0.0 - supports-color: 7.2.0 - dev: true - /jest-worker/27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -4620,6 +4726,11 @@ packages: - utf-8-validate dev: true + /joycon/3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + /js-base64/2.6.4: resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} dev: true @@ -4724,13 +4835,15 @@ packages: engines: {node: '>=6'} hasBin: true - /jsonfile/6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.0 + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile/4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.10 - dev: true + dev: false /jsx-ast-utils/3.3.3: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} @@ -4875,6 +4988,13 @@ packages: hasBin: true dev: true + /magic-string/0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + engines: {node: '>=12'} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + /make-dir/2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -4913,7 +5033,6 @@ packages: /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: true /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -4961,6 +5080,12 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + + /minimatch/5.1.0: + resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 dev: true /minimist/1.2.6: @@ -5313,13 +5438,6 @@ packages: /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - dev: true - - /path-is-network-drive/1.0.15: - resolution: {integrity: sha512-bJGs1SxUne+q29P1xCLMkNBhMetku+vPN+yVQu8FGL/7diHesCSSIKoF4Wq42tcbwm7rK72XrGfK8FUXN00LLQ==} - dependencies: - tslib: 2.4.0 - dev: true /path-key/2.0.1: resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} @@ -5334,12 +5452,6 @@ packages: /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-strip-sep/1.0.12: - resolution: {integrity: sha512-EJZSC5WBjVlA9XHLCiluiyisYg6yzeMJ4nY3BQVCuedyEHA/I2crcHWdwuQ74h3V599U9nEbEZUTvvSxOK3vbQ==} - dependencies: - tslib: 2.4.0 - dev: true - /path-type/3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -5391,13 +5503,6 @@ packages: find-up: 4.1.0 dev: true - /pkg-dir/5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - dev: true - /postcss-import/14.1.0_postcss@8.4.14: resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} engines: {node: '>=10.0.0'} @@ -5646,19 +5751,12 @@ packages: /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} dev: true - /randombytes/2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - dependencies: - safe-buffer: 5.2.1 - dev: true - /rc/1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -5825,7 +5923,6 @@ packages: /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -5834,32 +5931,46 @@ packages: glob: 7.2.3 dev: true - /rollup-plugin-terser/7.0.2_rollup@2.77.2: - resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + /rollup-plugin-copy/3.4.0: + resolution: {integrity: sha512-rGUmYYsYsceRJRqLVlE9FivJMxJ7X6jDlP79fmFkL8sJs7VVMSVyA2yfyL+PGyO/vJs4A87hwhgVfz61njI+uQ==} + engines: {node: '>=8.3'} + dependencies: + '@types/fs-extra': 8.1.2 + colorette: 1.4.0 + fs-extra: 8.1.0 + globby: 10.0.1 + is-plain-object: 3.0.1 + dev: false + + /rollup-plugin-dts/5.0.0_i32qiyxj2putgy75mzpmdgsoy4: + resolution: {integrity: sha512-OO8ayCvuJCKaQSShyVTARxGurVVk4ulzbuvz+0zFd1f93vlnWFU5pBMT7HFeS6uj7MvvZLx4kUAarGATSU1+Ng==} + engines: {node: '>=v14'} peerDependencies: - rollup: ^2.0.0 + rollup: ^3.0.0 + typescript: ^4.1 dependencies: + magic-string: 0.26.7 + rollup: 3.2.3 + typescript: 4.7.4 + optionalDependencies: '@babel/code-frame': 7.18.6 - jest-worker: 26.6.2 - rollup: 2.77.2 - serialize-javascript: 4.0.0 - terser: 5.14.2 dev: true - /rollup-plugin-typescript2/0.31.2_oo3i3f3qmqiztdz5qgxrrjmd5e: - resolution: {integrity: sha512-hRwEYR1C8xDGVVMFJQdEVnNAeWRvpaY97g5mp3IeLnzhNXzSVq78Ye/BJ9PAaUfN4DXa/uDnqerifMOaMFY54Q==} + /rollup-plugin-esbuild/4.10.1_rollup@3.2.3: + resolution: {integrity: sha512-/ymcRB283zjFp1JTBXO8ekxv0c9vRc2L6OTljghsLthQ4vqeDSDWa9BVz1tHiVrx6SbUnUpDPLC0K/MXK7j5TA==} + engines: {node: '>=12'} peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' + esbuild: '>=0.10.1' + rollup: ^1.20.0 || ^2.0.0 dependencies: '@rollup/pluginutils': 4.2.1 - '@yarn-tool/resolve-package': 1.0.47 - find-cache-dir: 3.3.2 - fs-extra: 10.1.0 - resolve: 1.22.1 - rollup: 2.77.2 - tslib: 2.4.0 - typescript: 4.7.4 + debug: 4.3.4 + es-module-lexer: 0.9.3 + joycon: 3.1.1 + jsonc-parser: 3.2.0 + rollup: 3.2.3 + transitivePeerDependencies: + - supports-color dev: true /rollup/2.77.2: @@ -5870,19 +5981,22 @@ packages: fsevents: 2.3.2 dev: true + /rollup/3.2.3: + resolution: {integrity: sha512-qfadtkY5kl0F5e4dXVdj2D+GtOdifasXHFMiL1SMf9ADQDv5Eti6xReef9FKj+iQPR2pvtqWna57s/PjARY4fg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - dev: true /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true @@ -5944,12 +6058,6 @@ packages: dependencies: lru-cache: 6.0.0 - /serialize-javascript/4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - dependencies: - randombytes: 2.1.0 - dev: true - /shallowequal/1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} dev: true @@ -6056,6 +6164,10 @@ packages: engines: {node: '>= 8'} dev: true + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + dev: true + /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: @@ -6289,10 +6401,12 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /tailwindcss/3.1.7: + /tailwindcss/3.1.7_postcss@8.4.14: resolution: {integrity: sha512-r7mgumZ3k0InfVPpGWcX8X/Ut4xBfv+1O/+C73ar/m01LxGVzWvPxF/w6xIUPEztrCoz7axfx0SMdh8FH8ZvRQ==} engines: {node: '>=12.13.0'} hasBin: true + peerDependencies: + postcss: ^8.0.9 dependencies: arg: 5.0.2 chokidar: 3.5.3 @@ -6328,17 +6442,6 @@ packages: supports-hyperlinks: 2.2.0 dev: true - /terser/5.14.2: - resolution: {integrity: sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.2 - acorn: 8.8.0 - commander: 2.20.3 - source-map-support: 0.5.21 - dev: true - /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -6492,27 +6595,12 @@ packages: /universalify/0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - dev: true - - /universalify/2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - dev: true /unpipe/1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} dev: false - /upath2/3.1.13: - resolution: {integrity: sha512-M88uBoqgzrkXvXrF/+oSIPsTmL21uRwGhPVJKODrl+3lXkQ5NPKrTYuSBZVa+lgPGFoI6qYyHlSKACFHO0AoNw==} - dependencies: - '@types/node': 18.6.3 - path-is-network-drive: 1.0.15 - path-strip-sep: 1.0.12 - tslib: 2.4.0 - dev: true - /update-browserslist-db/1.0.5_browserslist@4.21.3: resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} hasBin: true diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 712704c6..00000000 --- a/rollup.config.js +++ /dev/null @@ -1,24 +0,0 @@ -import { defineConfig } from 'rollup'; -import typescript from 'rollup-plugin-typescript2'; - -function makeBundle({ filePath, dir = 'dist' }) { - return { - input: filePath, - output: { - dir: dir, - format: 'cjs', - }, - plugins: [typescript()], - external: ['path', 'camelcase', 'fs', 'child_process'], - }; -} - -export default defineConfig([ - makeBundle({ filePath: 'src/index.ts' }), - makeBundle({ filePath: 'src/preconfigTransform/css.ts', dir: 'transforms' }), - makeBundle({ filePath: 'src/preconfigTransform/file.ts', dir: 'transforms' }), - makeBundle({ - filePath: 'src/preconfigTransform/fileCRA.ts', - dir: 'transforms', - }), -]); diff --git a/rollup.config.mjs b/rollup.config.mjs new file mode 100644 index 00000000..6be1391c --- /dev/null +++ b/rollup.config.mjs @@ -0,0 +1,88 @@ +import { defineConfig } from 'rollup'; +import { builtinModules } from 'module'; +import esbuild from 'rollup-plugin-esbuild'; +import commonjs from '@rollup/plugin-commonjs'; +import dts from 'rollup-plugin-dts'; +import nodeResolve from '@rollup/plugin-node-resolve'; +import copy from 'rollup-plugin-copy'; + +import pkg from './package.json' assert { type: 'json' }; + +const external = [ + ...builtinModules, + ...Object.keys(pkg.dependencies), + ...Object.keys(pkg.devDependencies), +]; + +const plugins = [ + nodeResolve({ + preferBuiltins: true, + }), + commonjs(), + esbuild({ + target: 'node14', + }), +]; + +function makeBundle({ filePath, dir = 'dist' }) { + return { + input: filePath, + output: { + dir: dir, + format: 'cjs', + }, + plugins, + external, + }; +} + +export default defineConfig([ + makeBundle({ filePath: 'src/index.ts' }), + makeBundle({ filePath: 'src/preconfigTransform/css.ts', dir: 'transforms' }), + makeBundle({ filePath: 'src/preconfigTransform/file.ts', dir: 'transforms' }), + makeBundle({ + filePath: 'src/preconfigTransform/fileCRA.ts', + dir: 'transforms', + }), + { + input: 'src/cli/index.ts', + output: { + dir: 'dist', + format: 'cjs', + banner: '#!/usr/bin/env node', + entryFileNames: 'cli/index.js', + chunkFileNames: 'cli/[name].js', + }, + external, + plugins: [ + nodeResolve({ + preferBuiltins: true, + }), + esbuild({ + target: 'node14', + }), + copy({ + targets: [ + { + src: [ + 'src/cli/server/favicon.ico', + 'src/cli/server/ws-client.js', + 'src/cli/server/browser/openChrome.applescript', + ], + dest: 'dist/cli', + }, + ], + }), + ], + }, + { + input: 'src/index.ts', + output: { + dir: 'dist', + entryFileNames: `index.d.ts`, + format: 'esm', + }, + external, + plugins: [dts({ respectExternal: true })], + }, +]); diff --git a/cli/clearCache.js b/src/cli/clearCache.js similarity index 88% rename from cli/clearCache.js rename to src/cli/clearCache.js index 2f5a8930..c913b2a7 100644 --- a/cli/clearCache.js +++ b/src/cli/clearCache.js @@ -1,8 +1,10 @@ -#!/usr/bin/env node +import { execSync } from 'child_process'; +import path from 'path'; +import fs from 'fs'; + +// TODO +// import.meta.resolve const jestPath = require.resolve('jest/bin/jest'); -const { execSync } = require('child_process'); -const path = require('path'); -const fs = require('fs'); const CACHE_DIRECTORY = path.resolve( // Post install: process.env.INIT_CWD diff --git a/cli/configCra.js b/src/cli/configCra.ts similarity index 88% rename from cli/configCra.js rename to src/cli/configCra.ts index d10cd99f..39749074 100755 --- a/cli/configCra.js +++ b/src/cli/configCra.ts @@ -1,10 +1,8 @@ -#!/usr/bin/env node -// @ts-check -const path = require('path'); -const fs = require('fs'); +import path from 'path'; +import fs from 'fs'; // @ts-expect-error No typing for this package yet // TODO: Send them PR to add types -const findNodeModules = require('find-node-modules'); +import findNodeModules from 'find-node-modules'; const cwdNodeModules = findNodeModules({ relative: false }); // Append recursively node_modules to the module search path, // so require('react-scripts') / require.resolve('react-scripts') can work. @@ -13,10 +11,9 @@ module.paths.push(...cwdNodeModules); // 1. Create `jest.config.js` try { - // @ts-expect-error This is meant to run where react-scripts is installed const createJestConfig = require('react-scripts/scripts/utils/createJestConfig.js'); const jestConfig = createJestConfig( - (/** @type {string} */ filePath) => path.posix.join('', filePath), + (filePath: string) => path.posix.join('', filePath), null, true, ); @@ -29,8 +26,7 @@ try { }; jestConfig.transformIgnorePatterns = jestConfig.transformIgnorePatterns.filter( - (/** @type {string} */ pattern) => - pattern !== '^.+\\.module\\.(css|sass|scss)$', + (pattern: string) => pattern !== '^.+\\.module\\.(css|sass|scss)$', ); delete jestConfig.moduleNameMapper['^.+\\.module\\.(css|sass|scss)$']; @@ -95,11 +91,7 @@ try { } // 4. Configure Jest Preview using jestPreviewConfigure in `src/setupTests.ts` or `src/setupTests.js` -/** - * @param {string} filePath - * @param {string} content - */ -function injectToFileIfExisted(filePath, content) { +function injectToFileIfExisted(filePath: string, content: string) { if (fs.existsSync(filePath)) { fs.appendFileSync(filePath, content); } diff --git a/cli/index.js b/src/cli/index.ts similarity index 77% rename from cli/index.js rename to src/cli/index.ts index 2c645933..a52c6061 100755 --- a/cli/index.js +++ b/src/cli/index.ts @@ -1,32 +1,31 @@ -#!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; +import updateNotifier from 'update-notifier'; +import chalk from 'chalk'; program .command('config-cra') .description('Integrate Jest Preview with CRA.') .action(() => { - require('./configCra'); + import('./configCra'); }); program .command('clear-cache') .description('Clear Jest and Jest Preview cache.') .action(() => { - require('./clearCache'); + import('./clearCache'); }); program.description('Start Jest Preview server.').action(() => { - require('./server/previewServer'); + import('./server/previewServer'); }); program.parse(process.argv); // Checks for available update and notify user -const updateNotifier = require('update-notifier'); -const chalk = require('chalk'); - const notifier = updateNotifier({ - pkg: require('../package.json'), + // Built output is at /cli so the relative path is ../package.json + pkg: require('../../package.json'), updateCheckInterval: 0, // How often to check for updates shouldNotifyInNpmScript: true, // Allows notification to be shown when running as an npm script distTag: 'latest', // Can be use to notify user about pre-relase version diff --git a/cli/server/browser/index.js b/src/cli/server/browser/index.ts similarity index 89% rename from cli/server/browser/index.js rename to src/cli/server/browser/index.ts index 930cccb1..d353b784 100644 --- a/cli/server/browser/index.js +++ b/src/cli/server/browser/index.ts @@ -1,11 +1,12 @@ #!/usr/bin/env node // Credit to https://github.com/bpierre/create-react-app/blob/967db643fc9f85e1f8c84fff4708307c5f006e4f/packages/react-dev-utils/openBrowser.js -const execSync = require('child_process').execSync; -const open = require('open'); -var OSX_CHROME = 'google chrome'; +import { execSync } from 'child_process'; +import open from 'open'; -function openBrowser(url) { +const OSX_CHROME = 'google chrome'; + +function openBrowser(url: string) { // Attempt to honor this environment variable. // It is specific to the operating system. // See https://github.com/sindresorhus/opn#app for documentation. @@ -37,7 +38,7 @@ function openBrowser(url) { 'Chromium', ]; - for (let chromiumBrowser of supportedChromiumBrowsers) { + for (const chromiumBrowser of supportedChromiumBrowsers) { try { // Try our best to reuse existing tab // on OS X Google Chrome with AppleScript @@ -70,7 +71,7 @@ function openBrowser(url) { // Fallback to opn // (It will always open new tab) try { - var options = { app: browser }; + const options = { app: { name: browser as string } }; open(url, options).catch(() => {}); // Prevent `unhandledRejection` error. return true; } catch (err) { @@ -78,4 +79,4 @@ function openBrowser(url) { } } -module.exports = { openBrowser }; +export { openBrowser }; diff --git a/cli/server/browser/openChrome.applescript b/src/cli/server/browser/openChrome.applescript similarity index 100% rename from cli/server/browser/openChrome.applescript rename to src/cli/server/browser/openChrome.applescript diff --git a/cli/server/favicon.ico b/src/cli/server/favicon.ico similarity index 100% rename from cli/server/favicon.ico rename to src/cli/server/favicon.ico diff --git a/cli/server/previewServer.js b/src/cli/server/previewServer.ts similarity index 86% rename from cli/server/previewServer.js rename to src/cli/server/previewServer.ts index a6f5ac00..7107d55a 100755 --- a/cli/server/previewServer.js +++ b/src/cli/server/previewServer.ts @@ -1,13 +1,13 @@ -#!/usr/bin/env node -const http = require('http'); -const path = require('path'); -const fs = require('fs'); -const connect = require('connect'); -const sirv = require('sirv'); +import http from 'http'; +import path from 'path'; +import fs from 'fs'; +import connect from 'connect'; +import sirv from 'sirv'; +import chokidar from 'chokidar'; +import { WebSocketServer } from 'ws'; +import { openBrowser } from './browser'; + const app = connect(); -const chokidar = require('chokidar'); -const { openBrowser } = require('./browser'); -const { WebSocketServer } = require('ws'); const port = process.env.PORT || 3336; // TODO: Can we reuse `port`, I think Vite they can do that @@ -20,7 +20,7 @@ const INDEX_BASENAME = 'index.html'; const INDEX_PATH = path.join(CACHE_DIRECTORY, INDEX_BASENAME); const PUBLIC_CONFIG_BASENAME = 'cache-public.config'; const PUBLIC_CONFIG_PATH = path.join(CACHE_DIRECTORY, PUBLIC_CONFIG_BASENAME); -const FAV_ICON_PATH = './node_modules/jest-preview/cli/server/favicon.ico'; +const FAV_ICON_PATH = './node_modules/jest-preview/dist/cli/favicon.ico'; // Always set default public folder to `public` if not specified let publicFolder = 'public'; @@ -43,7 +43,7 @@ if (fs.existsSync(INDEX_PATH)) { }); } -let defaultIndexHtml = ` +const defaultIndexHtml = ` @@ -74,7 +74,7 @@ fs.writeFileSync(INDEX_PATH, defaultIndexHtml); const wss = new WebSocketServer({ port: wsPort }); wss.on('connection', function connection(ws) { - ws.on('message', function message(data) { + ws.on('message', function message(data: string) { console.log('received: %s', data); try { const dataJSON = JSON.parse(data); @@ -94,7 +94,7 @@ const watcher = chokidar.watch([INDEX_PATH, PUBLIC_CONFIG_PATH], { disableGlobbing: true, }); -function handleFileChange(filePath) { +function handleFileChange(filePath: string) { const basename = path.basename(filePath); // TODO: Check if this is the root cause for issue on linux if (basename === INDEX_BASENAME) { @@ -115,22 +115,14 @@ watcher .on('add', handleFileChange) .on('unlink', handleFileChange); -/** - * - * @param {string} string - * @param {string} word - * @param {string} injectWord - * @returns string - */ - -function injectToString(string, word, injectWord) { +function injectToString(string: string, word: string, injectWord: string) { const breakPosition = string.indexOf(word) + word.length; return ( string.slice(0, breakPosition) + injectWord + string.slice(breakPosition) ); } -function injectToHead(html, content) { +function injectToHead(html: string, content: string) { return injectToString(html, '', content); } @@ -146,9 +138,9 @@ app.use((req, res, next) => { } // Check if req.url is existed, if not, look up in public directory - const filePath = path.join('.', req.url); + const filePath = path.join('.', req.url as string); if (!fs.existsSync(filePath)) { - const newPath = path.join(publicFolder, req.url); + const newPath = path.join(publicFolder, req.url as string); if (fs.existsSync(newPath)) { req.url = newPath; } else { @@ -170,7 +162,7 @@ app.use((req, res, next) => { app.use('/', (req, res) => { const reloadScriptContent = fs .readFileSync(path.join(__dirname, './ws-client.js'), 'utf-8') - .replace(/\$PORT/g, wsPort); + .replace(/\$PORT/g, `${wsPort}`); let indexHtml = fs.readFileSync(INDEX_PATH, 'utf-8'); indexHtml += ``; indexHtml = injectToHead( diff --git a/cli/server/ws-client.js b/src/cli/server/ws-client.js similarity index 100% rename from cli/server/ws-client.js rename to src/cli/server/ws-client.js diff --git a/tsconfig.json b/tsconfig.json index 9c5f0b10..fc2b1819 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,6 +16,6 @@ "noEmit": true, "jsx": "react-jsx" }, - "include": ["demo", "src", "cli"], + "include": ["demo", "src"], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/tsconfig.types.json b/tsconfig.types.json deleted file mode 100644 index 589ed854..00000000 --- a/tsconfig.types.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "jsx": "react-jsx", - "incremental": true, - "declaration": true, - "emitDeclarationOnly": true, - "esModuleInterop": true, - "outDir": "dist" - }, - "include": ["src/index.ts"], -}