{"_id":"@aaronmaturen/monofun-password","_rev":"4-f18ce1702e687e83e35fcb21a25ce2b4","name":"@aaronmaturen/monofun-password","dist-tags":{"latest":"0.7.2","next":"0.7.2-alpha.0"},"versions":{"0.7.0":{"version":"0.7.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-password","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-password.esm.js","size-limit":[{"path":"dist/monofun-password.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-password.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"494987dba952bc722975d51fc58fa4a1898fd2db","dependencies":{"@aaronmaturen/monofun-input":"0.6.3"},"description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-password@0.7.0","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","dist":{"integrity":"sha512-3EXG3O6T8W6Vx6EC48T5k+2XzROzgYHVr9bOw/1ai8i7JbcJH7hgIj8A2WLvZasl5tQnhIYIcAZGkZxo/XVSdg==","shasum":"019c306f8390abb2235c7ca8eb7897fb37ab0f3d","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-password/-/monofun-password-0.7.0.tgz","fileCount":15,"unpackedSize":16321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iSNCRA9TVsSAnZWagAA2MsP/isKGGQ9rzBcEnj9FVJx\n21qQohxD/g5ZEbZXhcHKQZi0ADza8JotG4OGZOwHIxSmuZVg0uch0Nd7bc8Y\nUVJ4ifqDY7wmopgA4kYlPfSMTMKZT2eRIudiMxnYrt5RkI1R+a5ocJQwiFCs\nPd5t4AAbLzB6fUMmTBTOyKLzx+E0dxI8NO43grjkNM8V5Z5GeBJlq5eEFOFc\nlyZGv4Wfjn+/hi1YfnkAtDNgw8buU9B0hHjPGswi3YWVSR8isGTsXeJuxh9l\nuW6SeyBJYWy5tIpxHF8aSoRjDzChHLpsdgCC9e0Xu0P131PPnVQegXUWkMEx\nQl44yQNSdVsiSLkL2Rep7ZmPoS90UKi9V2L7LJG8zA+xjPFRG/ZpbNOs691g\nbEXjLo5ul+38yAEl/dATIYP11nK4usVSFtJn+R0BW49W3r7Kn1sIew9hozQT\n4WvSyjHbubBbGP/l/uddV9cp1OENQzVEJ5TOppE2NBYuCzk4N+3CE4rUKKEB\nQzRUu4C7nYGAO7V4TUW6PrsRl97wb19wKiEgdNavdpX4gp9LjYM3IPiJOkPL\nXNb6s1jCDsHN5K1kgbwyFwe9AXc6YoKy/rT3TTzcCx6pbVpt+gSmUQJUl7pi\nhH8wV2WcoRNFgvpewq4vbkuMCQVuEQoFR4SjsH7EeIJLQtVZU8jSSuTIgli2\nydI4\r\n=dmoE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICgKEKDRW7UTSwtqmQZA4CvZre0wAYWrWq+opT+x90NPAiEA+2Zv6ta9LmShnnVVZYsJfBn7rYhKo9+oyOvSfieYLjc="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-password_0.7.0_1609180301484_0.07400007986123547"},"_hasShrinkwrap":false},"0.7.1":{"version":"0.7.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-password","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-password.esm.js","size-limit":[{"path":"dist/monofun-password.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-password.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"52a1e6e4b7883c5dd24059bf99e9104874a3e88c","dependencies":{"@aaronmaturen/monofun-input":"0.6.4"},"description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-password@0.7.1","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","dist":{"integrity":"sha512-IBRkgVvjQtcS3Pjz7cZUiLlOWwqs6gSdXAKskEOZ6Y75uJQD5uuQvExmPe7fF8tRQIJJDQwI+fiKOyoNeTTrhQ==","shasum":"f51cb01df0f9c7bd0fb6116007f4eb12446e092c","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-password/-/monofun-password-0.7.1.tgz","fileCount":15,"unpackedSize":16548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iUaCRA9TVsSAnZWagAAiOsP/jeNUYyPPYooF8BWx5Om\nbP+9dPKillBJk3TU+wpd8TElNp6gI0q/78kSvUypFGoYsiqlcASfOU9eMBXM\no3zr2xFRWhEKsqjHK/EQl/GxIjQSL06DOfvtxxXq9j+sSUiPESMHRl/oVXK8\nZv5iZa86Mp1OQxoALojWYU1Cs8lXBBPnuGqd1OfcJqEEcjl3DpOCitCcNM+V\n5yiuOwepFPnY5Ita7F1mYO8WW+mrhOGaahqb3GC0iVFcre622BrJ07nhbC/1\njF5STiXfgR9ESxn6mNRrBZ2t6fXTe/2CTQ81Z41D9sM1+SA0hvkxcZ4F3zPr\nxuw+0rHwZCCvax7K+O2BJJLdFFN1538R1VaBcrsoaRm20mWP8R/p9Sh5KP+N\netEy4ya2xY0H1NteEd1+zZ2xTQSk+1m6RwGJ7eOVGKzQo1pCBDZU9c8aeVdC\nthgmHmDNQDP6OEH8K3ZRRRh5Cs/QJOBZwevjFNb6gwelPiDUhWWlgQfUHdcc\n1k45vAryRPN4yAtnF1ZVhiL9iw54srZFaUAMYL6mgCi62BdQjjgYhS+FjDWp\ngaU6d9QJuAwcfV6dg3SrvSVdgZNMddQLgBS5YL7w6/INT46HoHV6mbLlIKuK\nMAYGooY2dTxndAc1qTYLDRAUPEUlikdooakkqCoj7daozbC3o/H45FLWiE1i\nMVpG\r\n=X1pL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4Ve1wA4hDyr7UYw7RZS0Ag6GIKt05v5k/YAe79NKffQIhAMRiAHpaiOmiaNu7iS/GKc6dUXbd+IVL8sb4LUcgXol/"}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-password_0.7.1_1609180441850_0.705045238340881"},"_hasShrinkwrap":false},"0.7.2-alpha.0":{"version":"0.7.2-alpha.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-password","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-password.esm.js","size-limit":[{"path":"dist/monofun-password.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-password.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"2392e0cf11680de9b73499886c54bfc6df97cba6","dependencies":{"@aaronmaturen/monofun-input":"0.6.5-alpha.0"},"readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-password@0.7.2-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-YbITNbzmjUg/2mseSgaT67m4H+1A4Yv9C7hbtzJ1+wsyGyKMk4YCaCfDQdpZM52z7mjdOni1bDCc7xLYXdVSWA==","shasum":"9a8bf50fafc2254d143b30d32fe0779dbccebfd8","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-password/-/monofun-password-0.7.2-alpha.0.tgz","fileCount":15,"unpackedSize":16761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iynCRA9TVsSAnZWagAA1QkQAIW9dsiQ56irlNg04Zhq\nvNfLm3872gfclBfOkAA/Xk2kr24RCHiev2ulRJRwcJaEG+DUEFgAVEvVNj/o\n+unaQDog5Zzp5aykO7AChnofYFt5yc7SvzfwFVhFPWSu83ALndD07mSHv15m\nBM+5KlARz9ytSnXNIkskWiPlgD2DrgwngukPwSjYGJAyuxzXDV+dpMp4Q/01\nCsCjn+VxLZPeDWVJQVxAGMyzJXEwSEc5QnwGF+65kFQGrqYltmjVFt6NdCoL\nQFs14csKkk3mxqLl/qEpBsd/L3bgLiO6HrtdzeOeex5JpH2wVohJshe9L/5Y\nYpYDDa/EeFcRjHYyjkTB2rSuX8NFK8EwFSypPKlm9i4gkuGdnfYWxEnIjcqq\nlqoECH7YilAY8FQCRm8YPY902ALyE25eIJcVlYb+AHvy+X4PFq162sDg3q0t\n80QrmzWvBO9lLv2HfPrbSS1Q+1TXc/fSF+w8c/cZouxhpajtm4c1804+A5se\n67qurV6pbpWlNWByet2LLZQ+UN/4mPMCsu1VctKg1gEAd8kYi/tDYHSoCL+7\nmn0GZcEL3ZOLYT8QtWgQxhP9INde+vnprNXfFvyFyXj2EIHUDY3a7vMVPZhG\nCMnRp22YxyQxXllJlO8gnmbpLyTMaGNMZ5fMgULiVPSpx+68skU6VOckTiwt\nXfr3\r\n=+18b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE74g3XyNAILGys40qDu4M7FcwGKZEz/BAydcjqW7XbPAiEA1OZJA8T88sHoKDmdrlgo2+n7GOxIVkbpDKpXTU49mJs="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-password_0.7.2-alpha.0_1609182375422_0.23449368961440875"},"_hasShrinkwrap":false},"0.7.2":{"version":"0.7.2","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-password","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-password.esm.js","size-limit":[{"path":"dist/monofun-password.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-password.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"6bbd03a17b62f6a1d9067883a87fc36fdc2eca1b","dependencies":{"@aaronmaturen/monofun-input":"0.6.5"},"description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-password@0.7.2","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-xZLnDFp3Q/ZONMxicq+QehtuHuGLp7bbCuSSumxpKu27PtOU2n8CGPFSd94IVWsi/dLr8f7aS1mYupnrsU2MRw==","shasum":"f88693aba539707fa60c15dcbe6698a22cdf5764","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-password/-/monofun-password-0.7.2.tgz","fileCount":15,"unpackedSize":16845,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6i2/CRA9TVsSAnZWagAApD4P/ijRLSl+tydQR34a3zfw\n3yvEbKEQAbX+JsrNp8XHvenUq9bhV8reCaBeYrCwEqlf3kHLtyG2uboE+m09\n42WFsll1XfDEIWtv8/9PBzZ+GAL4p+2izEVK+c3r+pKGmSqvdOCH1AQZpiyS\nT6wuWzdqQHU4npv0bdXVIq187w2o5YgHByQ9YY3Z0AN2cGU/QVYfOpqA3CGm\nwipxOf8/sRfYxFyjsgqYnBSCkuenyirz1Ki6tfNtarqJJK7IdfEjR0KTRo3C\n0OtEoaei+t5hOI3H7EjsYwmZKaaLwEs8UHYMwI9MDgpi4ztxvTbLb05AE5ZN\nHhS2A5GbaQIh3Swg29OfBduQj4HlfrB0PdJAqmtckyVPb03oXKrqofhYPhX4\nrQqZgA2mKCoOQ3QzT0Ei8kRsnjVIOs4sVtyRXxyAOMgjNn/nL/+H783x9aNV\n+jmdoRJinWLWTQI0u6omyQNdCBlNnRg8hAF49n3q4b/09g030UvtP2l7wQ36\npYMDKBqTvTvz+0zuqkiP20dyqzCMWbso0M1ff44WTFIJuWGvNCkSuK+MKbfv\n5gfTh1M03O02eJP+WyBCsidBzy9rroGyjCUmyQRBBDdjG/7PUbprwF9CdV9T\n52p6rnGKUssWfqogEeg6+r0EjUvayeH+erftGT+dZ8at68p2U4N69jrsOj9A\n/k+5\r\n=qjKb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/Y2cM1xpvyvv6uLwahJYt0K1iBuT6u0UsGUBssq8z6AIgXI6sdAOhB3iIw8Zs2C9Y63ZoHii1ubqvf0rWpsLOg8E="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-password_0.7.2_1609182654616_0.9244138722705619"},"_hasShrinkwrap":false}},"time":{"created":"2020-12-28T18:31:41.450Z","0.7.0":"2020-12-28T18:31:41.615Z","modified":"2022-04-04T10:55:43.894Z","0.7.1":"2020-12-28T18:34:01.968Z","0.7.2-alpha.0":"2020-12-28T19:06:15.548Z","0.7.2":"2020-12-28T19:10:54.741Z"},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","author":{"name":"Maturen, Aaron T."},"license":"MIT","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md"}