{"_id":"@awahlig/appfairy","_rev":"69-28c9fb7ad86d01affed7daa9a0b27f15","name":"@awahlig/appfairy","dist-tags":{"latest":"0.10.4","alpha":"0.8.17-alpha.0"},"versions":{"0.8.3":{"name":"@awahlig/appfairy","version":"0.8.3","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"31b25acab636671152a72979999ef92812a8eeb6","_id":"@awahlig/appfairy@0.8.3","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-dz01Z26wJaus98+6kGR9gxJ85EdR7m37OJP1uAdzWFGp//B3s3pGV9EQxVa4g9y/v0oWZT7+IzEp2w+h2cK1Uw==","shasum":"a65e9565be983ff2adf8b09353032e2125c7de41","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.3.tgz","fileCount":30,"unpackedSize":207227,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkWWUHzvmayGbUAKuLS6raPtlLLhwzaovEYgRWo4FqPwIhAPUJb0EsJUzVTGEKVVT0+FrKntJJHh5v3Xo2QcLKtmob"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJig+KhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmouWA/9G+hX6D/D/3911NI4dIXH/+e/olG8IQ7lMbQ5ykoYDZtj8KrZ\r\ntjGveLWvhwKtYbWpTVcAW5tz+Q7SPEA0bLYW39387dLRynNgXKIY+AxyLwBU\r\nNMa2d7+LWQFP1MoQf/XHDcC+Dt9sFiyHkg1buxvBfzGZUvuILacc+ZImuyWj\r\nTnYw1hXhJUkCGlnmPrImBObgKRQOeZLkGUsRmt3GkXLjmCvR39PJ9tEqSsrk\r\nDfpPh2hhq8GVPLjpUWUm+UUB22KZ5cGpv04hB9TsoAJWd0qHx+vvlyu6Ox58\r\n2i6fnCrGH0ZkS3Bfj2v7bYQWCE1MzUCrb0k8SGCmR3oHVEhbCv9BPPGxU6Bd\r\niAL0B7Mu6HoRDSZ+uYpzBdeEsxZWL4Y6apv8lGEz9wF9GQibB18PdBDXNHKk\r\n4wINM2Vt5E1dWq5G4xBwL+kqWidR06cYH7QA5de1lHCKwfcGKf3m83ZE05hL\r\nxNMCPhGlfQjGjXdW/2FuboMaLE8hqN6Stj9nX4NcWKBzWAdS/fDzvViwk7Rg\r\noFn8RsVIvzMA9Vee88esxIcUs4GtLr2x2hyS6bR3yCdGyJ6d1iB1KcMLJu7T\r\nw7kcDUv2D7CL4j796kukpTDOOyY3ARJPV2aAxzjRVXl3YmKhUXpUCtbTivnD\r\nwHnYs17NfiGjVrUOKkKor7urmRyOvYJ5YRc=\r\n=j4yr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.3_1652810401035_0.5965489276491311"},"_hasShrinkwrap":false},"0.8.4":{"name":"@awahlig/appfairy","version":"0.8.4","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"a3a3d4c57acab362d94a414d397881344c46dbfd","_id":"@awahlig/appfairy@0.8.4","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-5zSCGK4VOH07rC5vIKPWqruvUDPqSEj40UY9Ej6+MMYWhxngQWtVa2JaGWSWF9GW62p/Ta8UtZx5Ik8HeQwKJg==","shasum":"c2d7162cd69937ecfcb5e812462c3f7a1439bc01","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.4.tgz","fileCount":30,"unpackedSize":207344,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLOX+VIOaTHFCAQ8pwSDyXnk3rR5NkdPD+BHyG9WqwKAIga0tz1C07lrRiL6cXdz73gwkHkK803hdpDewel+YtA3Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJii4nlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoAXQ/8CpMj1qS7U3viOR3WYvjvxpT/Z3uDXlTveEfdLhFXQ/o/cWE4\r\nFgj+KjEKOsmiR132GQbwsUrhEEHTrv7ITjp8PYoYU772vpEadB1raZ35DxVl\r\nZ8Y2P6c86xDgzkJa8CMhRMmI9FNTNnUlYokoG7brnsvpW8lTwX8UJTQ4SHQd\r\nE6e1t2TSumxO2KuDH8Cl6M4ym1ioUOUjacIV2lpCgz15jV3nmDphPGxDJqst\r\nuPAY7IkJZn5je7ilkG1E7HTxKH584l1TVnGPBQq9EwfQX1j8UHdanSfUOaez\r\nUIbLpNHvl3bZ72ItNmD9ThhFmhz4lRBXaW7nr9Lb7gdENJrQ7LZrHlar9/EU\r\nrwJJPRsPSy8XLMjZYzupHnnwXwdQ+fiU/AhJH93DR+6R0rs2Z6m2lYHER1qQ\r\nKhgoDyDBpMoXOEUQsyVxqguTGHbvJQJOtUYWzs6UZSrGYEPvTj3hQBI9yK30\r\nMTaCBVWxwNWtiXAeOaBK8T2Eo89eXM53cjYxkHzLrZWwI0mbN/wtWljIZ9/2\r\n/rHdtN+5XVV9fmYZkfmoIfYUkFgoGHdl5wQ+TrVr5iA5x4AwU8R3CFbw7URR\r\nTUlOOXErY15uc9k9kTfxwL1aTHMSwGtium8pfDJpyzeuBZgmhwYIgRcgGHdt\r\nOLz413/7wvgdo1pc/p8KJpdwegTHkK+kZ5A=\r\n=Dr0U\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.4_1653311973568_0.11653384512938181"},"_hasShrinkwrap":false},"0.8.5-alpha.0":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.0","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"4e6dbb67264e283fbbeae3a4bc383bddb9ebede1","_id":"@awahlig/appfairy@0.8.5-alpha.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-7TSz6GR3K/sqogAovJgr4Oj1GYGSR9UyxLEo3TdUYkrQn4bQD23mcoMqvwIi5jymP4+4SldCcadWimiPr5wV4Q==","shasum":"0358a58430cd237e53345e5596d547f2eebf8a1d","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.0.tgz","fileCount":30,"unpackedSize":208689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHdxy+kksKiXOE7pARs0LMUXjZXjxXu1rJFfIYJZpGfQIgOXnP+LLjnXC3TWlDeqwbP8QVXI73wI12XLuLWx8ElpQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJii/TdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpRA//f0Jzm7REEQd62vT10qeopEkoBvutpZYy8ZSyA2P+XtGlVxos\r\naLPpKEErDvGx9SD4p8esgX3TS1091/2x8bf7eRwLAybZ+YJqSTw05gItOzWa\r\nnuDEcfa7YwgR3EURPo9pHGFj/L/lqclgAJ+kqBEE3ZNrp8yxzVAE9nCFTSTM\r\n6ahU8TgOvT/bCEzBttMc/5L+BZ01YptSY0kW7anrBclbWwgwyp3vO1HEEDaN\r\n9NQCokdw51QTJ2HqRwk83RCKr3pclDxVZng6uwFHTCpcEuYOxFS8ezVmPHsH\r\nkDeSbJGFA/8t+0oKl7V1feaXm3/s5xeW+UxA8Qw4bU4l5QVGhXX+SckPLo8+\r\nru5p4pu9W2bxVeoxApDo6PBrZJYRaWAdPG0r5WLo2H6xmgpewF8x6PVrd9qc\r\nbhyjfgO7zRC/KSBnDstlQKL9BhGdbGFipvdlqk9HOptyIuo4BGaxT4U198/d\r\n5gnNfZmuQuobxweCPMa2KM6T5xRf/XhCrnv7K2daX5zjY+pjfdCWsXlwYjks\r\n7RzYrUuhTf7bL8+/UGvmYnXIzGzD6c5nUG0PdzyRd9FwtM7TkQ67LL6GSqg2\r\n/M+Vm/X+hOSJJPLh3LJ65ZGo4MhWNmDbCM8IFuXGBK/OxANjQ/UFyK+rkPJB\r\nTTxNh09JG+Pxp3YACaJmA0ZUcl9HVWtomoM=\r\n=tyqQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.0_1653339356929_0.06526354746545704"},"_hasShrinkwrap":false},"0.8.5-alpha.1":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.1","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"f78ade81edbe29d294571a091c6c415e172f1c16","_id":"@awahlig/appfairy@0.8.5-alpha.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-iMAy0KMaqEUwlgubItmJJrQWTUTmcpjbQC44UnAeww2MdbcIlqDF/JGayo1VOl0ZYiqCx2j2NnLMd+ydqmr/Gw==","shasum":"e3a290d78eb8cae053fc651d1f2c23594c42824f","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.1.tgz","fileCount":30,"unpackedSize":209018,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF754mGjIlb/GcyaMjyfQaqv/WpRLB6p0xjE4k/Ul9TXAiAfr3p+qYH/plbuga/Ob115qJqSyiApWNhdcqEiYn0C2A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJii/egACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQ2hAAil1bY4S+M6U7to0GArtKPVXP9iw6rllPfgTpT4/yd84DhOkV\r\nKnNBKd4J7pxxoRX0Hn7PtVbLsVu7UIARgnS8MKVkF9CCj6SZC2MX+Zk9lS6A\r\nKWqZiwJQYbNh18eecsPW+WWXYU1OQUQgGUtRzo8kQPGJZ59BPQK5GXPz0U/U\r\nHvEnbCM4JZI7IbiwKM6O6awUc2/zsELdEkbEt28giUkxlA0tL2iqljttf2t8\r\nR4cb//d00AVM9lynLeohGLY419NLe/UZiEGUE+cPC44EebJOeWP1ksA9xSeN\r\nhZAU3XWQ+Zne8AevHjxv2sYIKi2CJINw95ERRFjTuf6x68tsIbzJRBmk0URM\r\nRCZYauqQWeKj8I5wLTLkq+fATWSFccH8q/+Dpe5jawg7t/j/co5WQgDEfRuY\r\nzSPTf95vGpEVxk2v55+GqbQVhZXSdmx0I1+6nUJCaBe6wnbajIdHWyxQX1dn\r\nS/TMrXbpO6SCxAMZlg8YHDDOPl43bg+PsW6Vx15szMwx8FfceokIhOuYsNby\r\nGOBlVbFk61OZtQk/dI5OmiMqQyDd/w8W29+Hlj+4ei8ubDvGiK2sWyuZcAjx\r\ng5dT6ZN6OaCnZPmj4T03yMdBu+fA8CMYaYflY1E/kLrzxBkDBtvRSsoB0ssx\r\nxgajxDz6V7NwklAB7p9g5sn06CVTrzi1/Z4=\r\n=8LDD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.1_1653340064616_0.4184095561832877"},"_hasShrinkwrap":false},"0.8.5-alpha.2":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.2","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"1453dd685e43af89f9bbdf2f1a5306041098c2a4","_id":"@awahlig/appfairy@0.8.5-alpha.2","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-gCw8m3n4sjtx/zyEQHiX79Wuh6iUUdLqTMdpF23dGCVweBFfqpKVs6wy9lxIdlHceDrPBmg4nMhFglOAd4HUVg==","shasum":"32e75d27778db341ee80d8870ecd30bf7987c5ee","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.2.tgz","fileCount":30,"unpackedSize":209733,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB2d1VuvC3d82cGPQCZotLGpOgmeyCYyPqx2opDxHgiqAiEAkZUBRAUM7RXDBvfajJX6aEil2GfDoRv5aQX/tXUFamQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJii/mAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5Ng/9HS4ZWCGDr7AeVKJpDgYXWpoPELCI8fRufUkNlVipgsqBQLXa\r\ntlWy+DQlDcizDnNZqKLobKYBTPEZrkquL5ZPBPizqXCa1oUlfHa6D79Dznld\r\n4QGKBQT12Rk4/Hv8a9w5STmbQAoUpmmv6i6PaXxmVBJ06YkI/sW64qZw+or/\r\nqDVg+11IKqnM3l8MueGPImnZww3iuPYAfIj4k1mptnb6/LKJhAZ2Wgp5OQPf\r\ns429pehLEXuLWLTtMDqfFOvFlgICPy4Et0oVtEQ0YSpeN1G+Gb87RJ+JgPKB\r\nNitwe6EuMcI+u6O9qv0oaofeLu4hS858cRgThzyIMOn9SirpHoKen1sVDX1Q\r\ndbUpA3KH8tjDmxOMUt9BK0OlEIeXgpxLN8LBc/p6AcJkYgc8juKf8qyi2Peq\r\nczdL6leRyPwRqyzUd2GZ4ak/mkrTfsEb2HKKCUS54GfwzyNlCnpg9pMP718U\r\nVXI3KheoB7SdAFyhItT+PCh0cWLVt1R8LV96xDYRaNQjcJ90VuCD0mApUqvc\r\nwZO6gPmSbLFtLrgpv/H8tq39wTQ2iX5H5uqPp4MMB5Dy92o5gXhcKUbVxB9O\r\nBHAAfG90yRsYWDaxy5e1c9Y7SRwqEcygSlrQyOTF9V4rIwZTT+Lw6Q8u1Cmj\r\n09aE3e7iaiD2ByEwlfT3bu9rPxVbUgEvKAE=\r\n=AhXp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.2_1653340544607_0.38940217484923845"},"_hasShrinkwrap":false},"0.8.5-alpha.3":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.3","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"c4ede3ce88fbbc1601540fb8892d10d028195d31","_id":"@awahlig/appfairy@0.8.5-alpha.3","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-9xS278lpA9RroZ4dC+QX0vUhohCtcwQBFdDeNZatwgkBNoL/HvW78FJa2uGfQAgr4VB930v7G61wPw0x6oBp0Q==","shasum":"507b37df824b602f208445e194330fc0cb1c5838","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.3.tgz","fileCount":30,"unpackedSize":209873,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID4Giw0oOlfcxE3Ea1nHs8cL5pKrPUxqQ4h6UBUVrmj5AiBqn62DaI09HHM+kbnVZIMcRXudjcCOOEHxPw7Wh2xZMQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJii/xSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6lRAAkquObycRV2fI1c+JdBac2kgDk/Tdhqq7M+64sUC74zAV4Ysi\r\n8uJzYanxlm+Hj6hZYl9Ri9csE6ecOI8IWoN8NfqBGsTgm4cA3WA53owSRk6N\r\nH9taYzAcO5rmWKsGgkmcYNGxmXvO7+03Sk23/qQo8PJaqa24ypi/tPwwV5RV\r\nifMG85Mu+aHv67xuzOXcqhEt8Qa2bYzlPGYMmV4njE2wt4S/4IDr9NR152N1\r\n0fkwg/SfI3/egwH27D6GytRi3ySfqy8JmOSLOFv71b7BVsMo66aWTN7KPfJo\r\nEoBC3/4suwbciUOSQX5GgY/R5P3vupV2xF70J5vlVf0QKvXBLgA+eRUa8UzB\r\nVZ0NdciKzF+QTkARuK1as2BLO54dApGA0jlWBYly8amVTpehhAJPBrpD7Q9s\r\nt8BznKjGD4rN5BQerklbzxfGG4RwIppTJti/3UMpruN/aN6nt6Bz/OB5Xcyu\r\n5HBoYq9KoLAc+PQ8ueolImDNH8/cjDONB//nynSyfFEaY4CHySDykRQMlH5n\r\nBHaervy+dEhfdYUCe6HXM2iHPsxphyuYOJ+0j2FM88rBAnijE+Rqls7rr6zZ\r\nrM30wChNbq8SP3RSOYusCVUPUt4ZTpjI56nvi7ZvkeJDCk4PtpBua7nOgrxv\r\nk1CvDm9uOV3MCW24eYV67GjOuJPc28ytLSQ=\r\n=Ox0S\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.3_1653341266071_0.7174770519098377"},"_hasShrinkwrap":false},"0.8.5-alpha.4":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.4","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"2b332eb826a699459d48a298f4818462b1c291c9","_id":"@awahlig/appfairy@0.8.5-alpha.4","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-UrQvCzROtE8f6XL3uCJTgTkwjpg0POdxYeRVHnWz2zAyxgFUUvPKxJb/mSVuyGN22RNYpqCVa30yBdq63faTrg==","shasum":"8962ae49400ad1cc97891f3ef0fd896aaf1160bc","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.4.tgz","fileCount":30,"unpackedSize":210056,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHULX1R+Zc1FGObp94XPQnyRG7nLGCovgEaoFN6phIDPAiEAh7unYooX/VYngl0797R4ezG0xzpNwESjBJN68N8Bth8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJii/xxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBhA//ZLfuFhoyStlp/1y5FzsZIGoU4olKfMVnP96VA6PN+B4z3wmh\r\nsyisfTR2vw6Vg3A3NFs38o/YuPf7sKzeB1Sflq1V4RgzXeaw7E8UZ0AbBooQ\r\nnrBOjzIoY0V8yvcO0LKqyyfhJhe4otmMrNHuUxaDSsQUKh6pj9ONhJbSbLc+\r\n2Eq0r12aIz/9qecWnwfE+fkqOlIcBRCnURuCvccQ+R/NHhsZozdXRqC8NGnS\r\nOMZfKcGdG8B0MPuL042LvFy5L8fLcMv3GxDIM6HaAG+3Bh5rPckDj2EytqAF\r\niom6T4h9KV2Uz7mqYmdhUBQuV+HkA2Wo0PsLtXpa+TERwUvSvBgN8mZzVvzL\r\nsrVSoGXxvlNaeV5lHc67OMlLboVXCv7NKdgu9tzDe5c3CdKidUV4P1UNC3CS\r\nk+wWILUU3bD4Bm/4Ez1NscjGgtXofDBYSZjyNa1yRakiE+7zOe22i5NcmaVa\r\n4sYrlkmoSznIDUxs5uwIL9sSNjHD9eKaqQXYUm0GE8GKVJfWIoVZPNn9LDdw\r\ni59Ut391piqRAhUFXxqefoQL+D/I6VYELiE9slPaukEDQP9QAy5ALB743GDe\r\ntgPJcmKv0k4Hstsf0qm3waWYAR8+TUMMboM7+mrQiauGG+7UpO5jQ0HCAire\r\n+5Udt//Xije6AgXf+b4cTqPZiceF4fdhyqY=\r\n=7cQ3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.4_1653341297553_0.6183198318989049"},"_hasShrinkwrap":false},"0.8.5-alpha.5":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.5","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"4216a0c2266d191945c131276d91ca749ea13244","_id":"@awahlig/appfairy@0.8.5-alpha.5","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-rAlzbo147SSU3jw9gHjTlIsc3zztnh9crkMZZ6hx0VYA6+nmQQpYJdBRI8cVzaniL7qebz5ByaYmacrjr20oyA==","shasum":"63a73151c459d2c7fad9778bd09a0ccb06cc60a2","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.5.tgz","fileCount":30,"unpackedSize":210056,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKRF0fBDJhk2ojOhWc61YDT+igTi6gZljHUdfnyEkdCAIgBE9tPk8vOanDSOuQez90S0FF7LoxHzthxFakvAZAzkU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJii/7PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5Bg//R9tL9EboG21xCfB9GPtoPrGTiPqOmz+0gpIDr1uI5JeGJsXn\r\nL3n7588doOgRBrzaWzPNCD8bUX44VH5eLCmWZj0b4l21siDWEFm5KsbrzTFl\r\ngDOLw6+GiDkygNdHBEjWD/OtyZvGeElI0rLYJ+8PSW6PVqhmUtrp2eN5zr/L\r\nHciWKJy/X4g1lt/xrKGFwmpW6CzRHiqVKRblhPtekh41alZEnoziWoKpBHSl\r\n2x5w1Gp7cRcYG1CVQdDoshJcjnYKlJlk9fxoGIUPbM+f9H++VU2U4AW/eDN5\r\nJbzGdGefmkWGuMMwz8/SaSoSp47zn2Wt/9dDfZBdKhmeMc4JmTMc+MVvlgQM\r\natIALjhuXxw2wLujBdf+C/zFSl42Kzvb7yDUgUP9EheFfyykCLZIOv6JsenQ\r\nXp1UAgyE1U1+2ZmAqc/bJrGwvkvKAuK/BAaoflKdZ3pNnlAIhmX0y2gb53U8\r\n5Hv3uLQIdGEOkDeaI3cao/3sqE7ilUpGSED3IakPXUi3/nOjctvPcErzCMmI\r\nYCaSD0opqgwRd44i4UuZNV/ILsq4Hqm3lh4l19Pab+FOUpSLdcetOvmDJFUm\r\nu+tsSUQX58TZjQkGMCKdJe0uCGgfcaWWNj1JXqg7JGV1tJz+y7/TvGZbFIkz\r\nIdJQRJhmnuar/HxQBkfcWm72wo0deR4xmRI=\r\n=FOG9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.5_1653341902821_0.43521969738387023"},"_hasShrinkwrap":false},"0.8.5-alpha.6":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.6","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"9471b92c7432c8e8d08393dd22ef7dddf60c3716","_id":"@awahlig/appfairy@0.8.5-alpha.6","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-g5UlJnp+yBuFm961dKVXwhuzRvmQ6+k7Yk5hhDXvwVmfY5TF36z3LglC6AfLff2j4TKGsVFNmxyNaPjXXGpeQA==","shasum":"de3f266820966087b2395cc1d9789c036eb8b22c","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.6.tgz","fileCount":30,"unpackedSize":210056,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDG/dbRE7Xnjya2CZfUNzp2/RroBx8qHQ1q0CucCrg+1gIhAI7i20UppbAumgzR8LlQBtDb3B/5yIS1bdDD49QkMwbQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijABNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmprng//SgWKhPaOMUcMfMLneb4aTmriR6/Npez9nCd3XzxRlKK7QOTY\r\nJQiXj48qmXk1hY+Ey32nvbev+KlzGFNy+Sd+/GekQ+zjVghQ3hoMqDf/rRtO\r\nugsDmvcov4n8utr9CboPGB8dKPpUWfyHKLvx2v0Aca7oc2gYcfuHZ+bv1RKj\r\n7o2vpchDlFTKu+n58EgAU4mXp4Rp7lgDHbocSYgBBt+puLZ9A3piiF9oQDAN\r\n/hynkjcWe1ZmGu+Wss5P1kLKhV77CcDqm7LBuZ+cHtOqPsrYAoHdoNrgzLCC\r\nB27qVNNmYLkGMyL3RiHpqlI76oPHB68/87g5xF4tsmWNW8CG6pZ4j92eD9Se\r\ng0pi9vNrWpeu5LlT6RanJsXq6hrcVYNbagJoKdmWsMB0SYuBbX8zT/FPUSLW\r\nxJ6hh2DfMrvszHAJgF2eGzhjskMOsfoNHfs4BGg8Q2SZNxfUqdql48HWc1Tn\r\nOxcHENxRubP9+oRpReavfOEwzelPgeSfSWdYVf7DmN4R6+wGUQvi0dXiMzq0\r\n/TIXRx/gZneksEA0yk3NRtLIVypIjNMKP9RyX6m8HBA1AsIZGvN1rSwz3EJw\r\nWFtVKCCIJnlkSwo2EwHKXrkuq4Tc2GcH8c7sj+HpppHLiPyG3Vv4dCEDLsNs\r\n2syNGEBX28bzhcrl0wi/Nhk1OriQ6H2bQXo=\r\n=WSp3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.6_1653342285263_0.19881151862915503"},"_hasShrinkwrap":false},"0.8.5-alpha.7":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.7","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"958210b9edd4d0f1bf24d217e291cad54bb5a2e8","_id":"@awahlig/appfairy@0.8.5-alpha.7","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-QFwDMCi9/uI9feMN7yfgjh3iQ7rmvUW4QArWfmzcOvgVdFDjLWRxnbFxKOYfb2LnaoIsu8jEt5inZJdV0NxnZA==","shasum":"820ff12e6d612907da76a9042190124d3d72634a","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.7.tgz","fileCount":30,"unpackedSize":209939,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFjsCilQ4KMmPXCV21HVuGBsc2E3D5/G9SYvHkXVbIBAIgf+jpkbV3sOjn+i+FN4vc4I1DtMFWhe6sVbiVfsw1UyY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijARjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPRw/+LF/0QeDqQpaz0JljXkXforxfHb47dzCHWuEOkQcbURGqrMVr\r\nbL8elcXBAeQogoBws0tTlrQQV+Oku/Wiwk4CyHduJIxed24JFSF+D6r3L1z9\r\no0AmPLqwTdn4P+K9r5emKQ4Xnn/59QuFB3GNzryZedqarZ+5fVPtqFwE0/ai\r\ny+xMDH5raFAMIPfJWSS7d9sMg9Bi925q1ObmZC0NxkmcO8p3dSH2wsbYv5W5\r\noCLMxVYcqinp7PJ+rTDv3f5x4EWqOu1MC1oyIeC/R+CyqN4buoc1DhAerdJm\r\nMbMFEqlwZ7mQs5se6Ilc8LyYU8lsBconoqPk1UYv2iSXJb3G9OCO2hVzCR5a\r\nLTQrbjy5/obun4OnTPobaBVjTsj2jTj/aY2DfjG3mi0TuCDMo9k/402fHdzU\r\nWGA+ud0gAfmyxU5rh4gIy6gR+ikMfjCL4L2wpZubcNHb04UL7sa6E3q5ISLc\r\n/7GEvGiA4LLCnIQN0q37bXhWPOYem2pioeH9+JxPmwiZ9abOI5kh7tFj0KBt\r\n0tb6kPsVweaDglQBpSyAQu6PjdX93DxptMG5QmAzaXVHKoDNnmakjfWzm2ae\r\nXSDdBwK8Gbbft5oR0rRBGEzcvXF2yisNmp16ffYIh2HYH0cHDEYbwGNrW7z5\r\nQ+w5DInANo7Uo8VaicnPtGHEjEYzaDxh+G4=\r\n=165Z\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.7_1653343331641_0.6572504572584814"},"_hasShrinkwrap":false},"0.8.5-alpha.8":{"name":"@awahlig/appfairy","version":"0.8.5-alpha.8","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"dec8f86a58a19970deee075d624578a4db1e53eb","_id":"@awahlig/appfairy@0.8.5-alpha.8","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-XbNL5sLJygcZt8HWiWc5FFIiOp7WTnVYCrl3+RXVbud07+80QQdN/7U7doaV0E2vPuaHn6hQ8ylEt4QXea+cuA==","shasum":"697d58ae501f8d5ab0fc3594eea5684d8d076976","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5-alpha.8.tgz","fileCount":30,"unpackedSize":210040,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMCd4A7B4bM2TeqZpJU6vb2bnY+dDiFDQ4lqSB6w7VVgIgBERCpG6nwIJ8kulNsNobAk0oMNxak8pmHlqowBU49u4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijAcVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoySw//UJdwRaT7n9pSq2VAryNlErt8wkq6zkNiIRjEbfWj63/EsZ7C\r\nLW8R2Eh1LdPtn8I3EuO/46l1XNEKQWE3xbQ8if3/wOIJ2kqEglS0OFyIMi6A\r\nAJyoq9Bl8s+bK6varZbhXpiOOQoT+52AAvIv4BTTr/CMsDE0wZkYaPuxvVW8\r\nfTxUOaPx9AGw6MYgCsaEJQUZs7SniXkZn3Bc+mFE56ms4q/4EtDKV/fGs3Y/\r\niGZx06gB8CXBCfCGm6BkUq8L2ADHYE/BGbq2ywduQdxfukFbmm6+eabVfaBS\r\nj5zIVW0TXqKetplMrU12BIWFu5soY8sssCAnDEFot+qP2LTOo48D0HHbpQ/u\r\nyzfNn9CA584ZnVqSwcdTT5EohgdJKfiaQTvcLAASSrxMEIcv87nY4B6nhNNo\r\nQzMCCYoNyP6UinVkQ4uBeDmlHQRCC0jGAoknaL3W43tVQB5ia2x/HJalfToy\r\nNQWUsIPf7X8xfHDb8ZgvDoWPPZeeIic1G6qUGxJWJpXhVpP//midhM6t9ve1\r\nH0m7N+E2se5AZpgY4FDC5dIL1Tec54xbm4jaIl21dOBou03dMQBLDAqjjeux\r\n0iEdBKN3oAaOdG7Ti469HWfao/DZSeIKa8envk1fU/V9yiysp8ZIpEYr7ewN\r\n+cyhR+RIpGo6O0e3kbe8bisNQic6ANVUvQA=\r\n=6i8R\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5-alpha.8_1653344021179_0.6083392676267456"},"_hasShrinkwrap":false},"0.8.5":{"name":"@awahlig/appfairy","version":"0.8.5","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"f1aa3172a4c8b2879470cbf47c2746e7ec5ba990","_id":"@awahlig/appfairy@0.8.5","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-ETqKRF61mPQUT0rxWEt25pdCqx0PmIc6Lzk9x44K6zRr0LT35edbYkSahiiwVnCE9W+LHaNY+e/M/GXHvwXwaw==","shasum":"0091a0eb97a42a2e27bad01af34092a2f75b4899","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.5.tgz","fileCount":30,"unpackedSize":209904,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDhNP1ukDSvp6tl0hM5E2wuRYLHmobiAs+Ssk9gT9MjEAiEAsp3toAUbpon0Uo3+I9JBGumv0WAM40EY1jhR9tb6/xU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijA0qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoqrRAAm8pAiZK8dQnA9y+FV+XjV1VDqmAJTfS0L0Fsq21CNFdz2Ljd\r\n0tOp+tJ4TYd25pzfEPuvcQ9QHgMvSMS2MThCWjjB75VeDCQTyOo1/usHgoVp\r\nueSSAqIBt9ZJ6s3HMQkOIE3wlpiivm4TTxM4IvIJh+TMcONePxekTWkzJF2m\r\nZ6xFCsXojJHZvrWHhTORYXo/4jB76uO3NRmoP/C2kjheG8QkeYtyLgxDEBn4\r\nDJQVzu6ifhhVJ0sskhZ42oNnvhiURJQUr+4VZXf7+3gf83Xjun/wKZPCC9uK\r\nN80J/TqRXOrjsAJuizEKqfyWzu3LjV8CTyIvHlCQLrwrfVgtG9GV7X2OPpJE\r\nLmrZ4uykJFHEZZnPAUAtGPYUDyKbqRlZW93PmGwmBeSLXrq9k2cKIo5iaJ35\r\n5gUy0zRTfaWn5rNkjWCSuMbqJK6MDTfZ8SFd4uusaYLLd9wYnonn1NtULsj3\r\nOqp7Y4XHhgvh7SyxhHx2S/OW+CzCGMxNvOyCRh4m6Qdhj5LCg5StWjPDJakm\r\n65GnieuRdAr7n+zxTrz/mYqgQKMKe9sP7+9I3U3ynPipCZzl1vdGL9/XB+6S\r\nGpMCTrF7w6ec2Su8NL/TpwuPkjq6hcfY8BA9Zkr2VDusO5xzeUkxY6fu3caV\r\n5c+pJ2ZqQQOuHxH95NA99uuLROJl7UFQEwo=\r\n=koO/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.5_1653345578487_0.8366380926573427"},"_hasShrinkwrap":false},"0.8.6-alpha.0":{"name":"@awahlig/appfairy","version":"0.8.6-alpha.0","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"b6c6bd33c8145d202de8cec5e9f88370fc27f539","_id":"@awahlig/appfairy@0.8.6-alpha.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-AWk2DDWQQeEO6vNscs7w5QAtnMm2JAWfX35geVMDz+FNn9uYRi0eN/5lZGjW3vkCive81vFGU5T98I0n95Ehiw==","shasum":"a18f7fbcba98db588138ba7647cd76a34d670b69","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.6-alpha.0.tgz","fileCount":30,"unpackedSize":210260,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZV0lbrRMwPXyLOGOd3r0nwqtAVC+AdXSLfZZT9LvE4AiEAt/vCuT/gOvNH4XW5ziae2F9+p29ubNsqSatU4c3otgI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijCF2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEgxAAkoBBs4JqZHqr5CZHwRMUQ0WZd+UIq6WzYD6SMt0jtIzMKMXK\r\njeEw/NKTnItYohA42sWOYzeQ9DnOCgAyHSrl0ZVr0sC82IG1XLp4wkkSpkz3\r\nF3iqMzrnNETu+uUmvGlntAZbRXfNSnWhTLxZ0wLl2ibbhGyJ75SUeYm+t1pu\r\npTtej7E+2+Ug6/5Sv2r3DunWSwOLiImJbjH26mt1ZA5ONaK7QAAK+imn8brY\r\nDN4/jI2MAMvz0QszIYJTEr5hd1aX4Y2H/HXfW8ix8pWGfweSNl4mHKh+WnA9\r\nU/yUN1+ygib3FvtRDgAkh/O204cuwTwnTkvjdPMpOee93n8tsrzP6RyCp+wK\r\nL2CU1qHziuKan05Qi/Ezlp9Eqpwn7cBJxYuL9mbsTb3gp3qTjj7HAVZG7hHd\r\nJKmwxbDCfz81Pn5FvuucnPIkotsyERbNiNrFQR3RXkyR28cOfbHaE+mMgfHE\r\nkP06zn+cyE+omY3W4Wg4Fjic19qA3TS59KCsTCJWwPNhDmTncIcEWEGX5FR4\r\n4PKkh+9zmEYg+OQT1anEWYvWjOSwq1y5u00SXFONfmW3PPXzZdn4n5gBYmjR\r\nXY7y6laUI4KpAyhb02s1Eu+Fm67pxLOQIBKa3wlSAgTc1JzemRJILB5OR5n1\r\nyWQ4FswNdJmNOuZUBok0OrFlAzmzfSqdNnM=\r\n=pcdR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.6-alpha.0_1653350774494_0.662353494324168"},"_hasShrinkwrap":false},"0.8.6":{"name":"@awahlig/appfairy","version":"0.8.6","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"db307c28b38e91b8b56130ee6c389e86db6ec8df","_id":"@awahlig/appfairy@0.8.6","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-FDEYDTb5opnnl8gXU5n/KYbese/VTkkqUz+GIE0Kky0c841ohnxTQfvDdFUS22PEB6Bc6ySmYd1s2c7IMOpTvA==","shasum":"8e9bb6c3df55e1e9a6bae180881a7c88c8a28ac3","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.6.tgz","fileCount":30,"unpackedSize":210252,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEAVR1iR9bfSRhYthuJzcyYpE1wG2ufczHOf8s8mPtG3AiEAs978aHUrdfIKz3LRZvey9zQEKqMA/OZ3KjMV4hiFhfw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijCToACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXOA//ai5MwjO9frRf6Xv6Yq1v2a6CKvM8d34h4ZsICuK6Pt6rP33n\r\nWOz2Kkq+Cp3xp2dyI4hdxrvd1GAe7BCzLm7AJ08R1QAdr6g9NcMXnhtLxd0C\r\n2EuOEVDRC+oaKma0t4Kg5GuDPgBljbU0uCRU+RuWVg7QGBHlmLehgatRR9gp\r\nlcBIISFTAOTrmse/DiHRm/rs0510mS6Pxml0duHgzMkm93e0YkIeXCxq8SGk\r\n8SvSwuO8wBL0rBFNUfay/YUH+oyW6N2L72ZqCB07ro06UKGZKDsnwStYV3iN\r\n7T/pv6X4bx3sQbVK6/iAeBXMRHBqI7BgXvKZpYvKgFDSZo+tQY9Ppc4dv4GZ\r\nW5n+kBGkXSXerc2kNGrLWD5A36ELLk+T5lNHPaQp+gddX3RQpsWbGNf1OjOU\r\nJTh1QVDrXxDs8ED1kvdRU2KGlwwdXiYwktJJKBYnZl9+BScsZ4IIL81203or\r\n0iTOw0UB5N3cv7Y5XnyoWB3Du0YuzqmsTk4zgXX4FrFBi7KD3spXt9U2QBcW\r\nR+uguCUZFnOBrM4RcLYnyjykRqHkag2Xda+1EEz4bWErWwxe7gR8ET9Dp7dS\r\niwCjC8Oov/mlqTA6WUHJMbr/zBnp1FxnF/zfdhWKLaLX43PFsUYACoSp6kXC\r\nyt4iXZfY1bTbGrWbMrC4UfIrE5jK3x22jz8=\r\n=vfnX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.6_1653351656725_0.22303041893233755"},"_hasShrinkwrap":false},"0.8.7-alpha.0":{"name":"@awahlig/appfairy","version":"0.8.7-alpha.0","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only last one is used)\n- Don't encapsulate normalize.css (changes specificity of selectors which needs to stay low)\n- Bugfix: wrong paths in git integration when root folder not git top-level directory\n\nThis version is published in the `@awahlig` namespace and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"3a661b4906bb376a43114ddd0bdb1158a5fbe4a5","_id":"@awahlig/appfairy@0.8.7-alpha.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-JmrnvhA5JDUZW5XaYdSLEM7XVBb3WqwjBMyuE+t19ZmpRjjZmq8I6CJOnVa7hmjFSVSLbgUNY+2BuWOALPsoyg==","shasum":"fd2c8659e5d7347a3e7249cd539819639015c6bb","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.7-alpha.0.tgz","fileCount":30,"unpackedSize":211255,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKLPwlrphxmRtsHmJ1Q7FDGeBaV53F8ZLXvh8ksUwKfwIhAOemmTY1tY+XXzsQkC8q0Wd1eni8xWClVdHSTbaAvktC"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijSxBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpENQ/+JCZ8e8m0Kbwgps+VRWd97LNhLChQiuQ+1GfuPY3Dg+KtSLF+\r\nyRrMS0oJ5Gbxvn2d004UodyOqVJcf46yN88PBMvWmDDzubTaD5ZGzfqERf1+\r\n2kOz66DJNLIbyG06I3yxrdFoK84AyQ+fAB7NbTVLBVwNc9s4qnFvh9pKL2Yj\r\n9gZ69Psf7sfbodah8Ce2NLgQ4qKcMieck5LIIodObEjbJzMgaIhoVp+qX2xA\r\noitUCf0pUmmLHBbC/l9v7MSwuTybXmddwPJsUPXqEvqRGE5uPxzySBcR2/55\r\nJhPmeiQkb13En8qCRxEiU6nplPecHmgxFn/ZWpz2AfQ/6wOGM6XvWBQy3c63\r\nbypfaT7qCMCCZ6RK/dF0jJErFc6M/GKrVyXSz5GBri4d/rpCiVSizEYmqeyG\r\nx6jfD5L/tocWUbX/+eGJEhgeKlIu0Exnc/lHbM4lsYOqFGkJ3+UN5uyF8EwI\r\nyN2/kB/rpXQ1hQFqCGma+lym2IvnbemLJ2bl8eWcL+3chPReND3WvUhMa9eo\r\nHIA/9HsohM3vfYxo8swxb+8N3FbV0rcvEdFtez25CHqTR9MGYlyMVEjHkYyR\r\nb3dirtgH/JwlilNB5VE86Vqekniuwlfpg/yeary2UUnV6Ew98QpV52J22gta\r\n1WaqJa0jffPUAYMO8rWnvFMjvaSq+x4t2m4=\r\n=0soX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.7-alpha.0_1653419073725_0.5479320998998758"},"_hasShrinkwrap":false},"0.8.7-alpha.1":{"name":"@awahlig/appfairy","version":"0.8.7-alpha.1","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only last one is used)\n- Don't encapsulate normalize.css (changes specificity of selectors which needs to stay low)\n- Bugfix: wrong paths in git integration when root folder not git top-level directory\n\nThis version is published in the `@awahlig` namespace and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"bd208c9a461cfdba6c2419e97c4ca281b1d9cab0","_id":"@awahlig/appfairy@0.8.7-alpha.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-vnRHRYOyf+ZtokTlORngT8I/OI8lsMVVku6Uxu07ty86QwOeMa8MVqDyNL2m8L81tYWciVI/9QFKLCX1DSOWFw==","shasum":"3daee1b66e2399824c4e341821b32640e00020ed","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.7-alpha.1.tgz","fileCount":30,"unpackedSize":211263,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyAy3oiQXwWJiYripOVWiDo/vQmcOlOIegG7ErCiwoCQIgIXlrym72U1LYMIvgJZbxOgT9LpgaXYz81oiIQ+wMD0s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijS9kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmomXQ//clGj1B29Z464VsEvHi2LzZ+dKszeV6xcZdfMx7SaKrLoiuNr\r\nkhqck34Wk3FVjEgolFD1Rem+wO4dagy7uGdpff2g2oS1ML879vCKhzIGWT6f\r\nCZJVquRDu4ipc+N/xaJsiAkBx6zy9VUluuxjM5zH7xP6A2jApN6LrRCDMSyy\r\ngpz6y9AeIMP5wZJwAOY2J7qrk+ZCy/jH20ZdEtg5lTrZ1DefR4a8mzngj5fy\r\ncIdYwynIdj+L8EYRQ9qLogM+0bVThtZNnq+nUwbK8Wti7FdaJ79S3N1PD55I\r\nmuzVQqaK1IlSU+P1YyHxh+VnvlevR48wlL2d4P8cAhAWa28v/oWmdG4Aw/qc\r\nyTL4RvortmO46t4YVd10gsWqgkRQFdi5XcFcccLAjpV/5x/NU75hcw/lq/5Y\r\nYqWHN/KYaAOnFG02jNnPXL9u8vmdidOvdLdBT7oJMN7sYGCD7sbWRP72bTmN\r\nQ6mcfreAGAf/HqWJycM2f9kvoH7jdbRaEXhntGYrqQ4AjvErqXe12txEUe3T\r\nl7TfQ9x3zTTOYG9m3KCLNi4M10bygGigsBF8gWbz9oKuAI8AD+jS0d+Inw3Z\r\n6XiiKOohV7FMMorLZhzYcBujEdmSDPzTKb9YnMwRMGYMf0q7he6T5zJ8l301\r\nI/vygx6NlP8Sm6K6lHxgB6Uq53QQt3cZaKE=\r\n=jkIX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.7-alpha.1_1653419875895_0.3725744402046387"},"_hasShrinkwrap":false},"0.8.7-alpha.2":{"name":"@awahlig/appfairy","version":"0.8.7-alpha.2","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only last one is used)\n- Don't encapsulate normalize.css (changes specificity of selectors which needs to stay low)\n- Bugfix: wrong paths in git integration when root folder not git top-level directory\n\nThis version is published in the `@awahlig` namespace and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"a5ee712deb1dcdc3c9aaa1dcac1702a4f3db6684","_id":"@awahlig/appfairy@0.8.7-alpha.2","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-TzrFlUD0/DKIrOJRWrTACTO6AH8UUOpFKdEdO1sYlHTPPABDWltKRfqT2tK/tSGohskdWpLriiTgy4bENlVoTA==","shasum":"8db12a112b75c02fae556a61139bb9522923e9c3","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.7-alpha.2.tgz","fileCount":30,"unpackedSize":211855,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEVIe6CrmsyYHoS9aGuIHnNbwsx3xI0h3NrOJoP7yKJQAiEA7bEIpmQtYfaIqJy6lN23hJ85ro9jxsCbFHggFWh0Jvo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijTVkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsyQ//Qt8BC9g4EPdYDEikcgBaYsYHpmpqxrfIL0UU/Ly+bziR8ZIb\r\ncH4rBVNuR8rWpR6sUpCyD8fqCbbCgRauahvcXc5I0vVbrKHNelQtxkdMecSA\r\n0G13jA1ikBfuQPSyipikErIE+q3Cd6c+zWPOCq5dGv5wtHZ4KIVXRA705u7P\r\ncOprJumYzUh60RivWEzWlOROFq+fnqxjo+dMxrJber9Awp1HnthjWGgiDbbo\r\nty4uGa/udy28pOCzhR1eqA9XSCjET8IutsrId7b191HNkQDHMgmoNXjD/MJX\r\nfxqaj7C31sjO6f41IYm7aNttL4Kq4M14ELmhju1+b0X2R9ZET1P/4/FdKUXL\r\npBmYR/0j79uhF0gGJyunOWUpYWPI8x7i8kq/gDApOMsF1faayv08RWultnxQ\r\nVuZ3gm9ZvFIMe6GELGuZ4zZFPtMbyBiMUC5nPU7DPwpGmsd5+fKaB9WrtfTA\r\nKUK5BtZqjTu7py1spuckqdztpv7PRv33kU7UpWirxyzcFzdf2JMHasg3JyXC\r\n4lDe8zVLecv5+IsXxwxxPjRRHnruawCSZkzRWlqm0+NhCabe5AcgmCpX4Xye\r\n9O/ZxiB0dq+gL+EZVTRg/DX3VStPq910+P+PWlUJk5OlS2ICuEeu1P6CM5bN\r\nIEl8dUUN6clqQDBCmYuRuuyvdEXFZQOqDkM=\r\n=ALv6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.7-alpha.2_1653421412023_0.39978262081466465"},"_hasShrinkwrap":false},"0.8.7-alpha.3":{"name":"@awahlig/appfairy","version":"0.8.7-alpha.3","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only last one is used)\n- Don't encapsulate normalize.css (changes specificity of selectors which needs to stay low)\n- Bugfix: wrong paths in git integration when root folder not git top-level directory\n\nThis version is published in the `@awahlig` namespace and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"7feb5192c9b89f18a64c56c98e2de8bfb7354bb7","_id":"@awahlig/appfairy@0.8.7-alpha.3","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-si7VV00PLMLEplBQH6OOXL7y3p8HucdXJ/R1HClzRll6NEaM6pJQ/FEyADbgARiakidnXBnIvvovio4rk8eCoA==","shasum":"8014205bf336c7b49503fd97e863949eea8fd6fe","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.7-alpha.3.tgz","fileCount":30,"unpackedSize":212017,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA88FGe/grc5itUQ4PnO7l26c+heRNC2dHTafm/reF8fAiEAqTvBjXhYRPHcTgMSVDTFKV9Ymh7/WH0M/6sG1Ck9VWY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijUEmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmohRRAAgLADOMWAZZaOokbBHRKIojhV56LkYbZSiqPEUDP0gk4skqmW\r\ngUYZdboymf+6QkCmRLYS57MWdZovrRgd5/ghdLPisKubwThU/mavkpo0/Que\r\nV9jFQEOkBqtzxuD/KjqCwe0WdnX6urg9GqJaV6s108KFKZbseSNthiLgu8bX\r\nqv1nckgvLWo8ljGFB3LiaxULvKCQ01pPRE4UCnSlOyh3Y5V4fZ240Ttw0aHC\r\nmrZFrtbdmdRQ7ba1NqdKEwGGYwzGn1wmM0aeSI9ejDD0ieVhP+ahzS+0xoPp\r\nkb1uSECirlpUT8C42QpCAAxF45jJhAMeGlzXhH9uy3PV3XMsJkzFYkPKjGBa\r\nPz3LCwtq7LnPeYOPS4kdf3HCBJ6Fg8F2Z9kOZkHZ9lmu1QLvRugj03F1s93V\r\nZhJZhH4J6jFNN8Zxm/a1vrjWx2LtKiBe9P5QIl+nDos09lrYVGtz7L0pongO\r\nf4v582+VxgoNAfazNH+4+TasJlc1xvgKtaouogPRCuxo4bS/+lWjkF7KyvtO\r\nkOKhwZWS+Ywa4SKCKiLgVuRD1uRSMw2jnP/aaCIoz/Owu4FnvXtpGg+hOCgF\r\nnujmhvkeXKK5XJzop30LLWpQPxsHYT8TkbAiSoktbodkPz+WwHCfhTTQPVjx\r\nSSlGbqqISqf30K8SDnsBroq2VJA7XPM2wWE=\r\n=hPNf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.7-alpha.3_1653424421813_0.5299187880129743"},"_hasShrinkwrap":false},"0.8.7":{"name":"@awahlig/appfairy","version":"0.8.7","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"2ff0d2119fdcf20585255c40f2fbf73185093f63","_id":"@awahlig/appfairy@0.8.7","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-cESW4qSPt3+IRKqGt9oQCTqj1Vg5x9ghp+u6AvafIRYqoobcvVW3Gjc+tsrTdJW0vhViDKfExi+jksNrUM3MbQ==","shasum":"44e615f613d8bb3a98b7ffe6214820634dfeb9f6","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.7.tgz","fileCount":30,"unpackedSize":212016,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAyKg4a67EYjoOzEeFd98NYgKV0SQuxtX82dwl1pL7GJAiB4IYJX7e8OjQBRj/n2SEq03VVLOKP95B0InpP06fwF5A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijU1kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqbXxAAiWHB7r0O70Zb4AW0h/rFbthYxrNDZfkS3wuO/A07YwZ/m9gy\r\nYHM4AV5Czj+8Z7HpQrMgxYgXjvkEwFyotjYbNvRIHNqnNOG/LVG1D1hKjdWO\r\nAospoxt9meQKqoIsXMjS3ge3z7CiAwx4reE4Sg3CmVgGT2p3ctYc0igTsg1J\r\nq/Ia37uD9qSsSh7le6jMFAOduwbBckYjul3oYEM6JSRT2vtjVMFFWhdZXohG\r\nTtVQzzHHlLdVZquYvUxzN0XNY2UXoTmKR3AK9gH0EMqOy8zXJkJJqL0CG7a5\r\nyXKP9yfgEkemMpjdn3d9NGOlKVZM7GmU/AtOD+CXuZ73Mjqv+FaahTJJVgQB\r\nsR5m2bHGjJUuKrWPENbjNMYqYsZkG3MmIpwWxopY7+gmt5wyGwwALwmoW/tV\r\n4hcs76h03zxzfYuFX0oB5MjVFSEDprOMv8JMjDlNne5o5yt1gf1hx1EYeQhy\r\nFc8gMUqm8v8rbl+TqqmoLmf3EAQk88AYSV+BzsDK6ofriNHC1YOnJjlRHf1i\r\nRkWfXM0zwf+aOLli9YAOm7QVseuboMfizFeXfn1YsG8q0n7MgUPiyhz5BvRE\r\noI2vVbbMCU28qIxIRF3HVXAYjEBzivkx4dRyhMs3AE8FWU/HSW1Ocw8hwQE1\r\nnRZp06j1+AGvYz3Omm/MseCSRXWx2vj0ZB4=\r\n=7oEW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.7_1653427556602_0.7603224004422329"},"_hasShrinkwrap":false},"0.8.8-alpha.0":{"name":"@awahlig/appfairy","version":"0.8.8-alpha.0","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only last one is used)\n- Option to disable styles imports (if adding them by hand to React's index.html)\n- Don't encapsulate normalize.css (changes specificity of selectors which needs to stay low)\n- Bugfixes\n\nThis version is published in the `@awahlig` namespace and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"1234fea2e120bd07c0796c3719e5f07784188302","_id":"@awahlig/appfairy@0.8.8-alpha.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-/lkrRKg/QHaV5m9k1Rv99+f1IbTKJnOxvbEP5ms/YI4Nv3nnmKPiG9tkTUM6kb3rSZTJV/e3te8tUL4YrU7Swg==","shasum":"679b2f8948284f36924eeedeceefef12a9dfffbb","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.8-alpha.0.tgz","fileCount":30,"unpackedSize":212080,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUjVV/PXW9bixThIsgE0u3PBZgZ2AM0b7Okmjv4wCEqgIgfKsspN9nUgIIwYi5kTkvIzOfXkuAFCrszR6qfzXV4Kw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijV75ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTHw//YiZwpDUlUgggvkl0KuXpW+R+WA/JWP6/0AehM7zHJFL8o6fh\r\nAcZh05v6OuPdf3XoLEDCWG77DDhEQ6sFynrl+glsd9ykxqD5LfJ0z8d02iGl\r\nIpo/L6CEkNptLfZx6EBtMz8bQolceDOho6mGxz/rFY1n38HMR3Hu/k75gC27\r\n04TZ0wNwZ7St7x/PeFLu0zbQzuMayGho/04MAxGbeElKm9Di6zI+0kdGq0QA\r\nUndrL7junicz52tdBa4UaREOIxHFoww91Va80FuobpMGZhTpzEypwb+MPvdc\r\nwqzSccfAuUF3PjvUgqDFj6t8ptw54xrEr9AFBMdIKOzJfpoeNYRKz4SO2nTm\r\nlfhs8kDlLAUEHg/p4tq+GxM8r3Fg+NjxyZToVwH0avQ6NkiGg8qIIhzMtA8c\r\nQD7aB6tWvC6Tk9WlLM4dQ3V4tyPga/cnobNHcIENyXOXHBIbYEdAvXSaNK3l\r\n4li2GKpiChUR8n9sZg1A3XCcH8JqeeAsd4qIsg/ZHeoBTeJGCqto8DcdMaBa\r\nlig4Fwpn1DUSD+AkqEZcKDrn1NFw/A8CvjyPSjBUIzv7uMxgiM85et/HW56F\r\nEFnYl3ZsT4NRANiFVwolg8Lc//k4h3oNh67LCSOt8e9bWTY3X7R5C9Xium6y\r\nUjfY2sT86B8yuwxMK6aTyBmkifJFuHxcfRU=\r\n=VaVF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.8-alpha.0_1653432057040_0.42554911052447464"},"_hasShrinkwrap":false},"0.8.8":{"name":"@awahlig/appfairy","version":"0.8.8","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"75d01e5c90fce680e262927ec4532814731c1765","_id":"@awahlig/appfairy@0.8.8","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-WaklTMKAxyNo7CyTI3yrGE+tDnqR9i0V3HbbCtU46ZZJp1OOYwA2hivZabQdXCzGrSC4gmjYFRsWpvjiR42IMQ==","shasum":"c740bf1e69d678ac4118da4a3de0596b962d321d","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.8.tgz","fileCount":30,"unpackedSize":212072,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcKB+5/IWVnuxm59yAV+3o3N+pxcToGKjr7b6AXmMSFwIhANrPG28Vnz0ZbI3OIxFP2Q5b29VT1fCY+K6ljsps16Fo"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijWAHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCOg//eI3veNRm0q58COCUMjgw8sn/j8jynRh4xVYfbkoKGBH8mEV6\r\nYilMY8wra1IczbFvn29FAEVeVvxngbbfnIgHdMTPzJb7bnM48nXFcwLxyG6z\r\nF7DClk4vUmBboTXAwgjktuMDASUE9kYJ3sqWmICYtSONO7xMhUVYDD7v5lzs\r\nNN8Akh5hKh6u+I30e5lnr6D4RzVV3Sdh7d1uK/4yN/kN4bGfveT0KC9hiWHG\r\nc7PzXI8W0SsSUxbb76Z1F8crJzf1QgSRJJjEqSjCNDN+5rsWBwnmtvzT9WJX\r\nw0STqRUyJ/aYKKUxW66eJuoZpWphFdjGf7JzO3BuLIPr7kgAEQuwzLd7uCEM\r\nLr+US7TnWCmygabXh0/yh8pl3/bqhAMchvm3vz6u4PUw4P7CfwzsPIBed/Gf\r\neG0nlXTY8XJ50jjH+ReRWrm0fqYGWLgAE0+Q38yJ1BVwZbeCU9skyys7i726\r\n4dSJ7Ay5I9CNVxDoeSmETZIQh157UVX47KquoNxH8g0JdAGL0zh/YC3EHE48\r\nqB+kec318rlJw2cLsx8KTj+JqCJWUBoZVffqDypnK6awT4wa8Sz7sYR6flfn\r\nNUH6pUv4f3Qo1LtVJ0Mmc5bT7Sk+5JxFxLoiY/ZFbjrQfqmdSyUm7J21UeO2\r\nfdDiXnoFLm52LBzXyCiYooOITebLqvy8Rlw=\r\n=3vbD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.8_1653432326869_0.6986849201000243"},"_hasShrinkwrap":false},"0.8.9-alpha.0":{"name":"@awahlig/appfairy","version":"0.8.9-alpha.0","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only last one is used)\n- Option to disable styles imports (if adding them by hand to React's index.html)\n- Don't encapsulate normalize.css (changes specificity of selectors which needs to stay low)\n- Bugfixes\n\nThis version is published in the `@awahlig` namespace and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"d535d7b8916739649b22fd7ee0d49226b6a9eeee","_id":"@awahlig/appfairy@0.8.9-alpha.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-2HyrQZq/HmxZ9JOmY3q1IksWjjHSRjIvhYNkeg++F5QiDZvLmB++3y/AgPTcQgIrvzr6d5ZfBAbqecCZoPt5kQ==","shasum":"036b4da826a4a1e6f177455bd88d468f0757a9e5","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.9-alpha.0.tgz","fileCount":30,"unpackedSize":213967,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDVM8VCwMcZF4T+1aqjKsUjhMuoT1xdlZ8jw6cvibyt7AiBI+HhpHcafb+MfBUkxUxpKm0dZWcmsX9Y0nYnQzngnKw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijiVAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrODQ/9EJStmJSEDXdpYRMvOio+KZmQNIDNJSASiqNNrBwtZ5rXm+r2\r\nrSI4r6jfBzFOwWKLMagnlMGY0l27fm35h6XNeqGIpuuEa/bdGrs0TOjR416J\r\nmW29groY72agFAF8gH8wKHDprn8zn1h7jetz7eWBeWO8/7w+FThTVM7+ikLI\r\nbWpS4fCN8IuPAyUc6JXdJHOLazP1xp6QIp6izoSkz82g0Defsl4zntPQ1X4+\r\nwZPPZk1zYKi0MPY/WOP2Y0ysFNLAX6GCMNPl6f34+83gFIb2tn4ljSlJPjck\r\n2fFCaswCnfqnlKBHc3DmPMIeV7bSdpibCLHxDDCAMF6U45YftUsiOxlgbt0W\r\nurwGIjkay2HghTkkF1uP4GVdirI+q31eFmdaHSknexEnooDDi+Szud8egb0l\r\n4nUPJuWV5uZ8tNeL0xZX9FfUkymV14i42ONvi0RxfNYeTyIkCHXMXuCuB3Qf\r\n/HFF/jAhwN7/c/KGw7P9NuDKkHWxF0P3D6Mq5dB4xZwlQ1h0adCj55cgEaTp\r\nkrrPSZ/TsEhThgRz/+PiJQWjsEJwS4qLol/TpDBTZux1GNEljHiA4JJBkB+2\r\n2U3/az0GkuoEptBw/Fz1BGwInerqYVwtEp0gUprgP7NnOBH7YMvnP9SyaEAi\r\ny6dvE8dR1RmsqTKVBYB+WcEiM5nLVSZVyTc=\r\n=r8g2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.9-alpha.0_1653482815826_0.9407158622725407"},"_hasShrinkwrap":false},"0.8.9-alpha.1":{"name":"@awahlig/appfairy","version":"0.8.9-alpha.1","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only last one is used)\n- Option to disable styles imports (if adding them by hand to React's index.html)\n- Don't encapsulate normalize.css (changes specificity of selectors which needs to stay low)\n- Bugfixes\n\nThis version is published in the `@awahlig` namespace and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"e9334274bc25c2e5f1c6c93623e05905f20af93f","_id":"@awahlig/appfairy@0.8.9-alpha.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-pdQvrtMkZb4GZ8WoQJFs1QYONL/WzbOExv58WjLJ5S9iDBG1vmCdEsvpNVr20RIeLALSerJmlL8OobBueHrdWA==","shasum":"be0a5b2d20b3e0df9c762126711b18e03db954f8","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.9-alpha.1.tgz","fileCount":30,"unpackedSize":213502,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDC630AX7gVGn4/diFLTUqXNHHwr15W8dQOFpyop/TzegIgPxn0YKFk0lCIyoDs/fyp3NSV6ZHtSWEWVsFQ53jhbVM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijiZHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/oA/6A+zmvxUr3nB7xx7zAEHUTIElfd8hpyrdorrw/dM/MOWSIasS\r\nOzZHwca9q9uE1gDKYn0JVspIcoF2W/xFaLp1WAt2naYJcpzylWnuE4AXOpel\r\nV+UO9G3hpT23TcU7uG0gno3aDmFZveawFTg+JJX7ezp4ELeTQTXGKOjD1Zf6\r\naX5gunQdP/A0fzknxfi0CFU98QRb+DVvqERBbLHLexmkG9X+m/wDmFZk+Rqm\r\noM3ZSwotpbjin3Iv+IxO84j5L4xzo8YjfFsGc6biWnJeP7WVuLcTPBLJXIe5\r\nnkR2K7hQjVMV37TcZtwiXiEb9tH3Nzy2t3Q6p54aCLw0b8YHm4PYb8xcoSgd\r\noEQnOH+eELNvW8S16RzWtJoIK8Avtvaxz8muYfET9Qmqa0FvTYXxCbc/x05R\r\n6OgjAIiysX3tS3GvCIli5xzpwZLRrT84Y+hsb2aiHh1GLTBvIVu1ahMC7eF3\r\n9vAtdVKH7K1Yh2bzOBrtywBp+bMTs/w+MRK2MJJTucpLfr1vOzYoJlaUX/Ek\r\nqJ1MV3LzHloEx5+F4gS6kLJt40EKr4sxiK4Hh70zsGyt1X3eb102+aPZQOQd\r\nuS6/cFTtU2MWuO3sHIu5X1HzE27wU+6uUWg8jzTSlV9qYyRj6ddPPLBqnY8C\r\nyUjpmZaDVMEJ7EB3mGRpo8iPFzjIeBFk9EM=\r\n=p8vg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.9-alpha.1_1653483079249_0.7618970524230246"},"_hasShrinkwrap":false},"0.8.9":{"name":"@awahlig/appfairy","version":"0.8.9","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"411ad27d24ed631b9992b7f98d0391ab4440d182","_id":"@awahlig/appfairy@0.8.9","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-nSP/VonaO4aKcDRe0zZrnZjSPdJ121oAKJ4eUWWHf9ynP/7Pud3wFRRdhr7SP3JhUM5AX+P33KqV9kEaGzhHKg==","shasum":"a6223f47133b3e76a8e81b7c2f6679ffbb5177ff","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.9.tgz","fileCount":30,"unpackedSize":213494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF7qqu6PfDf28hSJ3Smq+QGQzAy+Jd0jr+maXLXeq03hAiEAsEjk3iEpcqEECog/mTQH2KjaRupsSpRNZ6w8TMOkVJo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijicxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBsg/9HvcaHKvem7eMNMTyq2IVME+AMk4/nmD+7gVeiRPZE3MXr9Ut\r\nyLK2QcP1ab/CINSmtG/l405jFdOLF4nqPE+6Gy3MR5u+1OaZ8hAOX5D8c/Gg\r\n7S9cSaqfbxA5ahzKWNrrmMs8SxhVZtLHL2PIbxEGHgenWrD3UXFplFQ+XD7g\r\nfBJzoRF0vkecw9RLYzUAcNmfJiyBaKF+HurY5/zOS4uuuV4LRhONo0Zan/2n\r\n2QaAPqS9q4of4eHRwlyJQ5XPZrV9Y3JVmplbluTfIs38JezUAueNuhgsWbuB\r\nZSXOPPUSlSnATWs+jtFRR+ycZRciDECabRo7RJQ09CglJ/fe1Un5Q2wjTeuJ\r\nwJT3BDpAjM5AXrYKGO5wQdccuaT7dgozf+VNOfhzk9L5pFAcd0f55oCq4r5m\r\nbzxgQYeA7Lj2g7nvGhxcerLArdJp+sfVC5RMJli7EIm9i3p+Hqgr6ekC3rDo\r\nXnWOz8MraHAXak2WN8scnPrCCKEUz87aNnFXazKgVFqivv8nHLv3nkN8s1o3\r\ngdW/rABnXAo2b4Wg1rZt4q6dGHKJ6BCKTphW3U1Rtw8kVpa2eY2rth7e1nIm\r\nyY2dM5tsF8fH2lYk7rAP0x2xjGza1pEd3XKlJwh6n7cNcZ0EJXGzmXc3kBTB\r\nGCiOY12QRMSRaCUgE0d+vuvUCXhMl0v5zhg=\r\n=CdYP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.9_1653483312892_0.6964039197527863"},"_hasShrinkwrap":false},"0.8.10-alpha.0":{"name":"@awahlig/appfairy","version":"0.8.10-alpha.0","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only last one is used)\n- Option to disable styles imports (if adding them by hand to React's index.html)\n- Don't encapsulate normalize.css (changes specificity of selectors which needs to stay low)\n- Bugfixes\n\nThis version is published in the `@awahlig` namespace and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"32ce9edd25d425e58943559f130437c80ea8ab3a","_id":"@awahlig/appfairy@0.8.10-alpha.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-PEMt0w8HnqkK4pQCkz/ZKgxhkYCgxH17ehmSu/hXp+Ml56gSVtrosRXZPVzX08olQ9Pr/qsiwn7G/34Vsh1Sfg==","shasum":"f06e0cb30762bcc0093ed21f818a9cca1ad4a44d","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.10-alpha.0.tgz","fileCount":30,"unpackedSize":213295,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDajfTIL2Gn1/HIO7pe+HuTKzICpF3+CGcInQEwA8OnnAIgZlFrAGDA1a/i7RH9kCOZzeZmyaOXAPlnxY0RRSc6naA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikXALACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2JBAAlPCJdTb05P2HoMosKMddm0W2jJppg3OH6zp+ba6N7EjbHs9S\r\n2RfFJIWenbHj8CXa147WSqUajVLjfGbnr7qFFh+C1ddJSDQ+OLMWXXOO9RYk\r\nyURHgdoKW08lToW0+/0njZ31Sh9VZy3tY4OvXsuUr4OUlrSvEsSrYOtCjbKH\r\nMZP18wfEHmppC2Ty5Om3IR9Yn8uy1uZSxCY5ST2QxGv/lCW9l+YGjFiGD/0P\r\nMtg/gR65Kx76iDfp7Lrtn9D0TpsvVIT8Bq+oVHoV/7g2Ab8UmzWWZ5h7Teh2\r\nZZhpPm0M+mfAyA/jvKIJ0Kmh1ubR15iNlZf1ZLmUPWZ1r1w2QelvvJ+V8kwV\r\nK+JwQKTW6MZojwgbcVt+wKC1Nz3OiHBWzYLk3xMIQU5dXkp1WvvLhJFzxm/n\r\nGOdJu0Twi5lw5KwrgMMWviG2l4O6pPcys7lo4/5bPpMVcsGM72y+tfhCoW6s\r\nd7sMMhFnIUzOilBVkAXBiwo288+zAO/ZCRprkKlr/EMXzGNeJNsdXyVzbzlc\r\nWSHqoefGuLWek/wKF2PvFyaMO4i7PiGLEDiUUkqgQKNrdbIjr+o6+H5m1MY1\r\nbLFPDvdDtJFAba4OcE91A2kzqq6+jEZ+fOfPg/epoVBQVlCsny6+lKds2USM\r\nyLA+HAXBdvYVfleIaXsZhJl+Z2WWxMMinBQ=\r\n=Un87\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.10-alpha.0_1653698571059_0.7811460898566129"},"_hasShrinkwrap":false},"0.8.10":{"name":"@awahlig/appfairy","version":"0.8.10","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"27bc97c591ab30a4e95f0c618fd89489fb3d00a4","_id":"@awahlig/appfairy@0.8.10","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-vy/Uvgzgi0lLcBcBy9V9TbpZpndSaANKxZkIxGXEyh9XGho2utqsibBgNw9eSIjdI6dYTS59X+8zcp3qXA8nEA==","shasum":"e9995b93381075b66babdb9ccb67b3b151d41cdb","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.10.tgz","fileCount":30,"unpackedSize":213287,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBa/XJswWPyTuFWrIHcg81gwKhPQGuUYGZXOaRHYSb+hAiAOxUvGnrohsnARcuG9LMVKpJY/y6myjL5I20svi6NCSg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikXLiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVaw/+Jg0O2h873mehs+iMRnKMN4Dti2oGudEJxeagF0czOeoYsmLn\r\nlyj3/TBP2yLEGVwm7CuiYgTfeBvgqeEJgzNQyLvYeS8QgCJHMht70f3MlgAV\r\nuCFuVnE8uA3A4xfEeqYEuJFx/fmzPw/rBdnPuKlCPvBtPfECVt8ZyxzqbVWp\r\njMxCvOAf3MHWBN2jm+vpmpxwz7VKrVKPIzQfvRbMiFiyKexghjKB4FzWF7ra\r\nsyo7QlUKVC5Egm4wVeRcjZsopPTO572TWA52OlxoX/gTFezxL71gshb4t/la\r\njZVqK9LSIsT8q2QZnFuLQIBqFq835d3Sep6QZoDM/NTggNvhmsc3kN4gEDi+\r\nnmpFaKcQIxR3SSNWe7Aoes8wJ7tqpwq0VTMeDUv5C0tGupoUH1qCnddVrwo9\r\nadGC5Zf54JxJDmdjHLuNzaLOLsGYzOLGfNgq7wImc4xsGfHL1W5gjNSH+IV3\r\nhula762ePq/drBq8Qg/0zybPSYC6ewmA7yKeJFScgfbS5OfmnX+VLeTYWX3b\r\nv0/sEK3o1t408/tvNnZKh/KYgzj+K67Auyc2fVXAd/CpqcYK1HIyVyXwpBoQ\r\nX9cb2raYAOHGTA5E7Sw8MYM6YkBzqDTdqbjLy1Bw0j3K2/t9DrdpBLb24WLb\r\n6WHfAEEzBx5C9CsrGKU7s5r5pLXBL/PdUEk=\r\n=s3cf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.10_1653699297995_0.7151063063256342"},"_hasShrinkwrap":false},"0.8.11":{"name":"@awahlig/appfairy","version":"0.8.11","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"a912d9f64d61c6b928077a95771770e6dcc7130d","_id":"@awahlig/appfairy@0.8.11","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-kxyw61LFVctmD/rK1l29tjfKaDPbEQynl3UlAiaIx6ZpPTuRBvGFAgijAT1Yx3pFsu2uOGoQxWpigd0oZXalmA==","shasum":"ef2fb48aa473caf4e487f4698ea011d52026361e","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.11.tgz","fileCount":30,"unpackedSize":213226,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHS9O0FMLmvEAdSF98nabJlzRQ3JQ/A8JGCH1ldC5W3hAiBGBuU7nNoO6D6OxEcenWEvBbHwofIrBewlQcGHZ70NUQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikX65ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrChg/6As9KCtchjYNXJE66jqx+UTjbm1fVerNuDGWIhJf4xY5t9RyL\r\nGSfBVgkTMEVDI7Ert2apwoNzgU/+QxT5gfumq1In0JdFCj11U3HBytC7ZG9J\r\n8vZs+7yvXdiNw/2rrlmEYTC0DFL6gH3WNlqfqeGbXQfWFvFXfNpf5m/MpKaB\r\niTjVEggrpa5gD/OtPva9OTgc1VgHm6XgY7nq29pBDaarF8qCjlNs75g4DzP/\r\nlm9DFl2LQ+Zvlwz6HizwoBbpWPWrD9rGbKMxh3isLiH4ZR1J5iO9Sm4xWO4q\r\n+jQfmwbAYn8odd2b59eucDQktqYgyM5mHxOs8udHfDMG5m8R/M2VkdqbR+XC\r\nyBvhSBIWbaRz/e7OxkTahV2pd/+A7I7s/IBpcHuD4RbiCnN8oE3kF/XeugoQ\r\nlUc5lKmhaaJaCAFvBsTgKBWUWtNNEnd4bnzpDqx9JkHek1NZWst1YX6b5k5I\r\nxMSXj04njQcobDvsKfFmhY/3Gk/BssmHkCJ6vKUISsqjsI0S7Nex4R0cSiPn\r\nErw3dcepVAFRgkpS4LTbAJ95PcSIwe6le4Ix16+RL0gbDppTtzR4IrLoE9xM\r\nLhBqX5qy4Dple9jS+3Mn+wuuv/oddox1WU2nDhpXSneO7ri6SDxrQXGX7E6p\r\nHTD8GhSIeT0OwCWBUPi/RNFSsb2/iK5rzdo=\r\n=S0Gj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.11_1653702329729_0.0568289708352423"},"_hasShrinkwrap":false},"0.8.12":{"name":"@awahlig/appfairy","version":"0.8.12","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"800dab0bca0b6cbbd2e6205701cb2098352be5bc","_id":"@awahlig/appfairy@0.8.12","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Q3lxcCYfjhquoaWK5v33mFZdRXnBMp1iI1xneWHcIoelsGfJwLzPyhR2mEpOyDVTjjoK3wAUxXK1jAIexEiXqA==","shasum":"3f6761e42558d4da04313dc1756ed3c013308b2a","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.12.tgz","fileCount":144,"unpackedSize":88530149,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+DvOcPJBF0HrM3YikWEHtDHfOA9g3/OVn2Ecow0bXHAIgZI+GYfKDWK/LJZRk3+zTvCG+BP7Svg97/y9YyvZoz3k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJik5GaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmof6Q/+I6jkIRhJJYUSvAQrpCCRsalORHvh8mEcZow0xoStOWMCMwiN\r\nfB8unAJkVzkxNCdHP40pFaSoxleLxj2pAUmeWsH/hvAiO/CxMGLFf8FQGhYC\r\nW88w3OCm3tIYH6l0m3qeKlCkWvm+DSR5douiN4fPQjW8UN174PBmO037T9Bj\r\npF3kRTy9eKZRPwttXU6P99O1xFdkfMjfQUztPsdm/AKZCc1dzNIBzF9tdovg\r\nRFjhUYEm3/cop8wvh8FYsa5Ph3zqQYuK3drhZ6TQN1Ik8ucl4sds33n24wAF\r\n3kIAaeiMYsPp7SwJwyhr7lHKsH9Emt/LLCp+Je09MGSHPUvKl4Ofn+eZiKX0\r\n5eo4j+vNrD7liCbkQwFv5AnGUFnOAB94QTX5fkDUmqpzxJ9U13Bl6VuBsPKL\r\nbfL40MZC7RDUbIL0qzmMb1SOilJEPNKbh4E5T7+BP6VeY3g5fXRB/xzSZ3tq\r\ntSbBiUIy5IgTz2yFrC0iUMxhhlhKTsoqW1beRfNMitzleOWoJDyY+gs/W1FZ\r\nUmCR7KHl+kL8pCeqhxyDf5tNFknZ3+JAvVfWCfN4Efk8YSoPjzsTO3pNDJTW\r\nBES57Rufk33jsBLU4UFgFSFnHbT5VoSqSZE3Y+rQGFMS7MC6cvNWIepeUALi\r\nkVPFGe1QIBzPNpWWf0n4Mmi6++ir7GBwVCk=\r\n=5/a8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.12_1653838232924_0.05324343906858786"},"_hasShrinkwrap":false},"0.8.13":{"name":"@awahlig/appfairy","version":"0.8.13","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"fca03c8e228c3cdedbcbb1878c01b92b2b890acc","_id":"@awahlig/appfairy@0.8.13","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-UWKWgHUKSiE2cXSm4wE2MFHwV7Q8WHbzYPImoP/OVssGsNJRDdyu2FH0BmllUy8G9xJSGRPdTfqzj4H4iXyYrA==","shasum":"bada71aa0cdf8963b38b9f4df3e3639a3ee18564","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.13.tgz","fileCount":30,"unpackedSize":216081,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBIwCgKlbSHmoTSVlbTUIhQnWPNPImHsvRr5wX9IuyrvAiAQvGRtA1IhwabcTWyVpjf+V0JNdPjRim1kOwnIa/N4Ig=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJik5G/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgzQ/+P3ti0c+GJ21wn4JuwhhbPs6+Vsirpb9LuEIjpU9EhD+MxvYU\r\nGdfx22VgMzsrJaY5Y4cAL52780RzNnRSzednH4B0HU4oWzYq9Ze/9Hbt2qm/\r\nPamcFJ+N4u2fnTM6ad3Yt6/0C7c5jTSJBZ2RI9DpMfik7al0YGmO9603ar8x\r\nTdBeiOAW4VRfANBraH7AhUhrRYno/85jM/Fawu76CIzgOrW7d8s73eyOLsus\r\n+ndDasidZ3A0fi3lEnl7bk+XOKjSrkwY2WuIoCVUROxTApmIQQCz+GHm7W2X\r\nkeqXGwCaJRI4BS3ZdlIyYZYYJOXDp/nKrullaxEQUBqEEp+woJqUVm5BluW3\r\nLDmuWbWVo/JCtMJzOYEzwnN3yqvWj9/fEVLcXWYbFn1uDC0dzitZrbIHZc2W\r\n/UgaFpYnQWwQKJN4zUdAQG+XyGXg7BrHAYDpIeXcsEFlh0Ea9kvMO1vJXfSy\r\nlW20wRPcP+LgY0Fm2pegAXeqeGj2wL6EzUCSEyJnGPZ3+oiM3y+1lHqPZ4Jn\r\nJdkAGy5iKig5YQPuNr4jBbtOZwfTNJitCxvnL905xb0nNTU6Ti2zgvCfgRaL\r\nztfnKJkn5fz+yNiJSohFh2YpnkFrYTA5krztQNQHbcVNHZ8fGO6tx+SLPC5x\r\nXzNG3B5l4hqeZxgVrLsdIA9vpqIDbjGjNWc=\r\n=SJ2V\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.13_1653838270958_0.7568271120523014"},"_hasShrinkwrap":false},"0.8.14":{"name":"@awahlig/appfairy","version":"0.8.14","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"d522b999949d11b5311cdaf501e0890d121ea39c","_id":"@awahlig/appfairy@0.8.14","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-S8X2Q26/O6Z6DqkUb1TNWS3mHPh69uFkGbI1kbtMMM83tfzZnXvU4OPlQlOiIX/0dO2/bUNNGAz9n38uJCralQ==","shasum":"2c7d27ac7a3dd098a29976eab2870b5bc9330a09","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.14.tgz","fileCount":30,"unpackedSize":216244,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFMnC1D/R+32ZH7CWwPJ1KhCP7SkQH58UlUDQ6aMxpAwIgMwgOjCfuGWA1o9pVdR1/ZJI7OIujYH/sFQ8mppsKZiE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJik9GYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmofVQ//UhjeRb729syh+CFKJ04nwAQclsEHHNsj9o0DjAh3vQRa+IBF\r\nxOH1xY5lukgkcIKg2glBEP/kK7PLF7iUkJKUCDWq5kiSQ8ar/CEai4evB3Bw\r\nPnE8JD4YNxKykQaFoK/s3e/Zv+Uhj52BoOHNf0Wj1rHZ8XZGZgNmifFU5cS0\r\ntdkTd4ods9razav/v3s/Oz0Qnfhi8B/95M7fFT2m6amsGMJQXFxvG0Dtk4tm\r\n+o1QPy7zQOaz4/hrgspjxGIanRMwp/aVcZNulE8q3LdxY/pkkiR1M3HnkQZv\r\ntnTCaiy1222yIEND2B623JbCMCH2lvK0/dYkJuRfmUie1x4CYtN8Z16UTCur\r\n0O8i14S/HDdZ5bCjHtXxC123KoSQ4VPJi4VHtCEs621SoE1MJWXfq8D5uOQG\r\nBXVwCf8cs6gReTgUHlmdkNCAlldI0SsEWzK5gBhT3cEOb66ttuSBdOeZpd3S\r\nE+4ok1PSMukRC80fqNvuwzfozlJ6QMCu0ItC4VliJ06Mt4VaIxWwnXJW8civ\r\nVMqj7Tz6XMSZ2512+Cp/9aWGZODT9Q4Ot1sX3ldN+wTdfAslWrcziWZNzs5m\r\nLFCHZ5AGfO7K+L16bsQRmbHoDFQLTq+7Rhzwglb7bw6pSBKMtEsujEnDqBIt\r\ncvv4nvVMynhkmfPZ939cJpTdj6jqaFpOka4=\r\n=lQHc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.14_1653854615815_0.09794065931371199"},"_hasShrinkwrap":false},"0.8.15":{"name":"@awahlig/appfairy","version":"0.8.15","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"0c873c530502e700f35ee32c9319ead9277f48e1","_id":"@awahlig/appfairy@0.8.15","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-ZPfKh60zx8pgYVCMRPfCyuZijuJIiW+I59jlbpe4cFy2fw1XMVzJsa0uf/4KlhM1AbO64XkPs7bci4X+igPJYg==","shasum":"8846f309a7d2065cc6dab194e297b74aa079044c","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.15.tgz","fileCount":30,"unpackedSize":216355,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5ak4nKUK5NZN6sHDtlAxy+1UMAw75NO5x3BbrA7WS8wIhAJg6yX6YMlaeckOMUnOBgvVIszNINGgJSAoVHuwBoLlj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioxvwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoveg//cq69S7rrDMd27YyxLkVQShOl5FU59hc6ufHuxNOazVMqxpEx\r\nc+aGQIh2Mzbia1SeX+AILOP7I3zQltFV50K8GtY+OdmIteokcBqYp2Oc93lV\r\nNvI91YogIGnArZceL/XeIs28JxsEfWDS4v4k+wGiUAikxSy/EjlLZ4MLfYjA\r\nQsb9EwgdZ2dYmmF+sfWjGAtdpKIHhF+bHp/dNx7+JZbJZZNkXAneNck6v5z/\r\nBHaWz0cYPeEyay/l+jxGgw2YxRR15prtJGH10QOgpvQv4vZoJqey+QDQfuQv\r\nrJjKxAqf+rlm8cbQ0Xusva3LXwOC2oLKnLs6QTf3A7tPFHUZts4ytCq33cTd\r\n7ioT7N55xK5mSGok0I6IcAoe1J3GLikDIVUanYdbX9VgwdN4N5PxK3nEym1y\r\nnzlsSeW+AOtXACy6d3djX6bEO2qFuOBf3c0J3WHQi2oajGk+GQQrH0Y8NPpn\r\nJAoo4gZ8Ssypw1709TnJeOVbbQEvTrQ5Pp9MyAMZivss3EWE5Gk8CfjXyMQT\r\nGRfVy0xDPcl0RxaaRWp5YM3+Js9hPcCkZ+5fOfqvYthewcWFBjy6EBw6f/t9\r\n+Eyd+lG10g2BYuBzz3bEx79LUZ/+HofTCOWCwp/0QrS8Cf4sNgSXMd3HGeFC\r\nqt4s9R6niuIESFjmw3B6Uyz8PuLwz3ScpLQ=\r\n=P9y+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.15_1654856687892_0.9439614427744938"},"_hasShrinkwrap":false},"0.8.16":{"name":"@awahlig/appfairy","version":"0.8.16","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"2d7e07ef234fc4f4a2f855ab963f6154672e68bc","_id":"@awahlig/appfairy@0.8.16","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-0xUXN2G9ykrfZBAmXyv96rbn5zw2wWobg4Qi/QDoah07xpMqIP0ysppn+EVybCfFAfUqDHEIrJfl0jwbxqsh7A==","shasum":"509e6f52c482f3eb34d0d101efbeb91af3f08e8b","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.16.tgz","fileCount":30,"unpackedSize":216465,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDJ8oV0PDbRZ3n54G03fmfSXmoRO1U/q0NRQWUExJtxfAiEAwn53suQwqgv9qc+QXIFrCOUSYrMO/fvHSUXEVsLjldg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioyseACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoC/w//RrT8Bjr8pEhDiaU1gZHbZn+NYdR71Sl51sFeVqB9JHccEXYe\r\nBpxRRwqII6DqrrZ0bzcWJX9jJs8BgXA55dMhgVGpsyR77bqmieXGPReVlueR\r\nijGbtw+uevOOALCad6sgidd1BKvkvWAkiD5KJOKYSZZ5P3ReRdpJKIAb6wFX\r\nEgx3viNYPI8SStjC+JUYBb5cMW/VoPwWQHt13WUUXv9P9TDooD0nuHYF+9hM\r\nvDfVk2Kdo3j2dQXlI79ySMDNpfiAIVlM+XyFOXei1vNEjO6rQgFFkPg53AcN\r\noN5M0Xjtq5PUUpd9nkPUqC0Fh6UXwGF5BMCP/ljpXIWvv0b/tRb4xln68DTD\r\nFnKk8u7PcHoZFAfpQgBM34tKWu74r77elYBkIAgDYR3AdK66zYmb+KOV1CXq\r\nsFy53WvdTPEwWbLvJBvk1eT+BCpFMFcB48mjY6sQ0AmpoMPCu+MXloSFvf9m\r\nfElR8LdWHbEbNOBi9MT6TdjiD5pb0MrmiLDnIRpSJIpg6fyFOmNZV6aK+Z36\r\ndPHDERiGYj6WZUTMjFWDxrk+fS5ro2xjzmr4KKnPBmP4gVuazWVkFk5CvY4W\r\n03fguaJyYHLXc2Ml19oKDZahs/LJev+RMbNlAnP40nTVw2V0C2Sz83+wkzW6\r\nJL5YeBfZTnc4y7m+83zNq3XUGaNAahHIqb8=\r\n=V2o4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.16_1654860574655_0.7119658422048489"},"_hasShrinkwrap":false},"0.8.17-alpha.0":{"name":"@awahlig/appfairy","version":"0.8.17-alpha.0","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"readme":"Changes made in this fork:\n\n- Support for page folders (namespaces for pages)\n- Support for multiple sockets with the same name (single proxy referring to multiple elements in the view)\n- Support for multiple child views with the same name (only first one is used)\n- Option to disable styles imports (if adding them by hand to React's index.html)\n- No encapsulation of normalize.css (it changes specificity of selectors and they need to stay low)\n- Bugfixes\n\nThis version is published in the `@awahlig` scope and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md:\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport React from 'react'\nimport ConsultFormView from '../views/ConsultFormView'\n\nclass ConsultFormController extends React.Component {\n  state = {}\n\n  render() {\n    return (\n      <ConsultFormView>\n        <name onChange={this.setName} />\n        <phone onChange={this.setPhone} />\n        <email onChange={this.setEmail} />\n        <description onChange={this.setDescription} />\n        <submit onClick={this.submit} />\n      </ConsultFormView>\n    )\n  }\n\n  setName = (e) => {\n    this.setState({\n      name: e.target.value\n    })\n  }\n  setPhone = (e) => {\n    this.setState({\n      phone: e.target.value\n    })\n  }\n\n  setEmail = (e) => {\n    this.setState({\n      email: e.target.value\n    })\n  }\n\n  setDescription = (e) => {\n    this.setState({\n      description: e.target.value\n    })\n  }\n\n  submit = () => {\n    alert(`\n      ${this.name}\n      ${this.phone}\n      ${this.email}\n      ${this.description}\n    `)\n  }\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply unzip it into a directory called `.appfairy` in the root of your project and run `$ appfairy`. Be sure to stash all your git changes as beforehand as Appfairy uses git as a version control. After doing so you'll notice that a new git-commit has been created saying `appfairy: Migrate`. This commit include all the changes that Appfairy has made, and shouldn't be edited or reworded.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input dir for the Webflow exported files. Defaults to `.appfairy` dir in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--prefetch**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","gitHead":"99651d44b80dee2a146f4fa7e1ef0be236e0dbe5","_id":"@awahlig/appfairy@0.8.17-alpha.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-/MuYI6O5msDBFJFg04O+8TlgnRjObkIDXGwuhiEKamqh/g/O1Z4RUuasABBSFrrO/ljVlWkdda95xPzBX7wnFg==","shasum":"59f3b17372997a31f50806321cd2c3b2d4e464e1","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.17-alpha.0.tgz","fileCount":30,"unpackedSize":217959,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAV5AKlKufQBy6T7FFeZFTXKKnOoFGaGscg240DqoSKQIhAN5m4XqYtgdhm2LVjRVi83DA1hqAZ/dgH18W1m4eyoId"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqfVgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmooNg//Ys/dYOKX4pOiSHah8jBRNXaMX2Y8llsR/tP9lDJah+SNqacB\r\n1wP7Dfe5ev6OA6Uh2cXbjm7Ixb8f67URFNg/KzQ9Adaf15mBazmWDtDYLiE0\r\n3nz3pvQvKxChQYh+ZsDf9Z3j5K7jtaDBk2GkZEt7ZGJAwaoJlFXPSoQ6piHg\r\nCgGDsVyUspk06TgaEJFiuO2PJPbmvcSIb+v7j1AikqfzHlhEi10qBVwn3PUa\r\npXaLIS9e0IrI4G+ilkDXXywfq9cvNMPgPrUwh9DgsH8HBdhYvZ4HG+TuvOCn\r\niuS3FY3kxejOWvaLmWeqhT4Hx9CX19tDXqykJNAKrZJP0cs6zkzigcD7w9XS\r\n6UG2kJoevKadAhYqLu1GsoShK1buthh2aISVpoav7O8krbJpuUxKb5vV23BX\r\nusW1NL/keRByYG16fBbp9H1MVUr4IExbsGhr9Io90NxpVxbb8dy5hWoFiR3L\r\nqH2gIeLkV1OO/Iq5g/xsaFz99SMVtwuRJKUgRbNQwJv8kjJ6yaESJnW9gNkX\r\nCV6iT+jcooI8XrHD8ywLRUQwy+4v4jnP9IjO8wuvOlY23UOhmer1qgqn5Hx4\r\n+CtE3TMi1aysRFC+QH6JICWDUUbpL3xhgH/qbjOhc9G5hDg7mg6UbqWtANiG\r\nffp0R8MzMNbcF1/eXECxxOj1WRq2MIEPszA=\r\n=h4K8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.17-alpha.0_1655305568745_0.6456321251281814"},"_hasShrinkwrap":false},"0.8.17":{"name":"@awahlig/appfairy","version":"0.8.17","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"c68355fd9b9219d10b019c185d438924e81c44be","_id":"@awahlig/appfairy@0.8.17","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-CPnzVJXgUl6LphpkPqETU51DTyaewJnhAG/0Lmf2kVZH4OmAojHGqIWIl+IVWaHrXT4szbN8WHo7833Pk4fpMQ==","shasum":"0190e2e5ee79bce5186e77e57ce8f259f83d2cd8","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.17.tgz","fileCount":30,"unpackedSize":217951,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCG+kqPI5sfwHQpJdcPrXv2RRy0Cch+9pgS9GeW1mCywIhAIe399XJAL8dZtZg6Xz4X6s/3rFaJdvrL/FhOMovBBJB"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqfcVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBtA/+Ii+7aGl40L65HtGK6WlbnouOkoj3zitZsgg7H/+0xxU88i4k\r\n62+oKrcGsVpoYqhl5S7ZEfzQLnbfPrd0t2arSZuNTt6iRV1LvpHzRjwbwD2K\r\nJysPFRt0ltbPPdwtCQyXfIuKJR+f9AZGpese1P9Sbwa84AHmUiEG8wP7Mhj1\r\nu8HFwKyV3ce3Y9u37bkJPSl3e17HgVyCPJ1wFmH6+7h63F+gs6haEjyf/3ZW\r\nvdgD2xsFMRnZJj43BVbV/uTfYpt28JXu6MHRdRhmRkeZQ1bEffiepYspQz8m\r\n0hlYWydoM4zUu3HtH3qW1rfE3nH19ej6ezzOz0ZJ27Ytc7f7rKW8gjOONgbH\r\nwSSeRNE1VoYWZmj6e3dnOzHTpAoSb9vJvqww03qWjwYTvhJk2QKspaxBd2v1\r\nY409kodjPL2Ns+oEOlS48Y+nDRRfYqKCAVWLlwJOqkxMCVYYxe/vm+kFAATq\r\n+w9dwaP4epm6Y6LsiU5ID9PWo+1TRMZ+Hw+Ioq+iz2KRFFXxRNNcfaNyh0Tm\r\n/wLT9O1rXLWep+gxixKjQ2vQ31diQ3snzyCuwLrbeBX8SwNO1oOpmD3oMLL2\r\ne055XT6E9xLLBLJkhJo9q/XzBGO4ljN+lJ7ZlOq7M+rM5Ra/aFpQ7D59/EXs\r\nTRaXZJHDsjRa6Lf06ec6gisNaExXyWJxkjk=\r\n=buvA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.17_1655306005370_0.15964085534913064"},"_hasShrinkwrap":false},"0.8.18":{"name":"@awahlig/appfairy","version":"0.8.18","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"7eaf88fec7e3c4ab949eb79c4fdd002666b0f1b3","_id":"@awahlig/appfairy@0.8.18","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-+cDky8xi/jnRqZFbw2XDm3dZviqalWDbuLXqKXidgAwreJeMFIiOHBLXYLrui35LRCMQCxjO69JEzbrvfR2YgQ==","shasum":"a4c1fb796b7e25213e9dbe9872ce3ba0c3c5e599","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.18.tgz","fileCount":30,"unpackedSize":218955,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHrEFwxyGZi4pzckIsI5glhKLxR6pc2+OU/UlYAjLaTnAiBWMhr6pCDOavH2JIKo72MFQcAeLd1e5QI8YAdvk/iuTw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivawtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqubw//UywyLdPBYr6OX5kQN4gSZljsgLGXsy60kTaNSuWEjuXkHP72\r\nnK6oQ0pQEb6ODXlO8iY7yyipQXocaDIJb7sc2Mz50YJ6WxKJmzfKPrTdI/VA\r\nW4ORK2SQk7JGjXd6yirPq9ls0P2moa0BFmohSP5YS/kO6kVPJMrHLoRaTAhR\r\nzf3Tty7JaTPBWRfC+Fs1dBhES+n04tf/g4RtG1wufS+aGBlQ4NVnwPFASMnt\r\nZBqmyPbUvVQbdg+kKC8bcHwPmBSAtk1vCb91pTzNYRbQ8btWR6i6gGdV4Bi2\r\no3oXqj9Olcn6sgYxseu5s5lAMbnm1hpPvmPm+5aSW5SJ8lWR2Uce+A9MALcM\r\nD8zNDe0H0KGS77vcKBkx0BFRVF2JQSRhGGtZ9j4LTfn7zcd6aC5k2Q2VrX/3\r\n7wnYvQwF/6BFFicp5cXfaYPMxcs4O1bVEnHBa+DmHbuYM38rEpdtpY3NwHha\r\nJ9dDwNDXc3StSZp98ZoBE6Tpw76jcnFyBdzCMLQv1nOYZT+O42qxRxtknBin\r\nX0lmp+FLQmLz/sYhHKf+iiKa9H8ZzbI5TS3S+0QWUhdrPdR+XYuCH/s6E8O3\r\nzsWpyOtpu8bwpb/+vE+yX1PH++mTpHxI6FH+LWntsGIQPD2j5jzYjnQYvyeQ\r\nohavAgTQiiT/YUSMlD29uxhH4gXULJYSJlY=\r\n=ArC6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.18_1656597549016_0.0010238058604146172"},"_hasShrinkwrap":false},"0.8.19":{"name":"@awahlig/appfairy","version":"0.8.19","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"83cd41c190715292308dc392a53b299b47a6ace7","_id":"@awahlig/appfairy@0.8.19","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-luIyrn+vFwANjA8zFDJOvTv8Z0Oum0HwnRyzKLRuZEn9j2oMA5pmvabviFaWM1Us5y7trUZIBi2erBz2DkBScQ==","shasum":"d66e2aae34be30c9f63f698f4a9430b2f407322a","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.19.tgz","fileCount":30,"unpackedSize":219076,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB3KKYr47K4YcWcWuBZ7OBJj7o1+T65ZcKjBFLbXOEk5AiEA3YbzyJVC8y+Z7Yw0XCYgs6/WAbxQ5Cj1GIsabqkweE0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiva1sACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpywA/+I320E7O7dT3f9N5ms346jRtD3AXjSWDWrqAbztUeU8S7WHYP\r\nE8TtZMAADlsFn0GX18WggRSlEkioAENLI7fsJ7w/YlowAwIeWf9W+/74Wx0K\r\n0/iVnvx46smCvlB7GCzTQnwa98mtxh1H3VV+wH6hKz8Fk3EOpFtb58cPj9Od\r\n3QaOYwGLrP98AuMVNDdAJ6RRuaYxH4OsIpxHIR0WqBZw042Np1P7uMXAL90C\r\ns+dfmETKJPbrD26bD8ScHAthqGwWPXxzxhqiQWLWVtzglh/WjoZLUfyyXFzg\r\nRKpQ5mDzQkNwPyP4gaH0SzobBshADgdfXQZkZZ7HkSROLL5I2H1yevIvV/V1\r\nzwd/kREWpePRWTasvXVAnRw5WNp29H3CTn9VNTRMZgrhQCu142HbJo/BHYio\r\nbVSoFeujpdtiuVx4X/SOZBWm6dzcZZ8XUiiNrR9TMe+cBG4PHAePUF7SuHVV\r\niRuEi7n3bEqIZvh5pGo/FkpGNFjP56ahrpMpzgSsvt5g6EM6Ka4IeaTxdfgr\r\n2k4RiCoRW9qSX1r/MVvkAmazFUOpQOLFJlW4ygV5BZL00dt0w0ZlHb6EiSBv\r\nDDrkE8k2FUBBue0DCpSNKT8q3wHnCSxn4ju4Dcvq8yZhYj2/tPBPU0N6X02+\r\nt3kpmBLq1LmkQkO01Gy8okjZ1zv1NmRKv7U=\r\n=R5Qg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.19_1656597868293_0.24645693371490562"},"_hasShrinkwrap":false},"0.8.20":{"name":"@awahlig/appfairy","version":"0.8.20","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"cbf690daa328777176492d5b632535d9e626fffc","_id":"@awahlig/appfairy@0.8.20","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-9MAeKXhJPBhBvkSMswXASVwT5oc0x4OOcSjJXqju6KHsD+1xEHD+6I4/4mq9T9UV3FmuvKaKAFwrwdqcTunbWA==","shasum":"483db2e76ad4b5049a5b7bea16631fcf4c6fc430","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.20.tgz","fileCount":30,"unpackedSize":219063,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEeEHpLqjfn7vv+s/XbAdDFR6qOtsCWN+ATuEBEwC1RGAiBqsP9ROMvl3neN3RUMRsyf4ZcxY7jZKj6Uez9Aq+dsdQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiva3IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrk0g//fEgJ4lbdjlggEMnWcWXFFSUnY5X/cteCj0NJf9BMXpVgB+Ob\r\ntDewLiXtZhEwsmcU6l/zgBCJxlQAbZVYRSOIg9l99nIlmzskRe2vDX8bfJNo\r\nMIzP3sb20Pymdo8jl5o2SQJTn3+YdMzxL9xVbOc6g4ImxyUcy9/Ok/PXYGgB\r\nKqNDUIuzorZ6SKzFN7W1ai5x9whI16uvGiuBg1hi2FuUTnrYf/R7jeUFnXYl\r\noXGD23ZWrbAzPKLoFtx/kP6Lpqd3q+agVtBVijwmNK6LMSvdO7f8QBbb60XT\r\nlrx8Qs5pjU39TC86U3+HE/fNfBxYHVVBpKw0Hx3lo0Sh+0t/JnhQXUqQtmIv\r\n1yTwKG8dMOOpp5U8D84Bkh2IPo5NAOS8SwA7LPsl1iGnpBqwcxzt8Ktzem6M\r\nwYlHKMg+Ci9C9LhXrjzCtD+sDpLzxcNfBkIJ3Jof5W2/N36ZRoTZdQstnle/\r\nL/N1/XYGsQ2H371QjQQkH/v+4MMsju7J5urGBMwb9+FllXthIF/dsoR2942F\r\nZKA6853Y7AxxpM7gWWQGDpqDgALtTxvy5W5YTFD73jNOyYDpPkt+pvUoSY50\r\nF/LWakZnnEyqV4zjNv1/uBf7j7DIAfWL3eKut2ffBzCr5nxodsy+qNr7EFY7\r\nwJsTZaU7nyOEz3GGxe0/dIStk5mbs1QFCdg=\r\n=oVNn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.20_1656597959968_0.13116108289471673"},"_hasShrinkwrap":false},"0.8.21":{"name":"@awahlig/appfairy","version":"0.8.21","description":"A CLI tool to Migrate a Webflow project into a React app","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","recursive-readdir":"^2.2.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"e5e27d74e464f7ecf8c2278de91b82e8884f0230","_id":"@awahlig/appfairy@0.8.21","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Nw+jqKh3rd4NfHxzwh+UeMGmjhMQNxVUD0vK7vrv70q2Hclywd5DBkijugLkrfl593dSldvcLK0dNoTFF6Royw==","shasum":"fbfd8d84bfb1a9466bff8a5846fafc5444a6df60","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.8.21.tgz","fileCount":30,"unpackedSize":219041,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGh4xFatVofaDx0obf9nkRn7IsDfSHw3jAk/h5mzq70rAiEAwjidftUX4oIUp7hGsood5nBtotmeyOyrZA/fP9gQ0hg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY6WpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrq1xAAjvJWevUDNjMpjfAkZj/PUAj1F5ZpzQ0i7CMnBSsEChEH/WNz\r\nT6bjiogfKPJZIAf9I2awCzE+kp1IzmJhjudtY4b7EYK3l3JBdFv8R9pC54bF\r\nba7JUN8GKDW51O5prWnHgyOBVNhD9F9axXnQp2Ickt4ueOT9mwOLNhbOADFU\r\n7I62ukQq5Sx913DdewDBysemaIfje0nsPxO03QqArfaBvbI19ueXX8muWPBy\r\n9TytXPZT+aCpWjXl9QKTNfuP2I0TMeaOvzVC110DcDp0Oo1iTitX/TPC36X/\r\nFmaJtqZg6pf3FVU9BTvrs2KxjYrIwsHXLxmqyc2zOMtFhMoNP1pKUR7J9ZuP\r\neAc5HPvnpP+wETt7SnVLJxnJ4LAlyZnzxTgVWGB/bP0kXQz+sUoArKh3QYjh\r\ndxHbzFaxKsV26ZUA6o5uavBA2LyY8LR7qjJhJ2f1fri98A1cfyV7pLNZ8qon\r\nozwAWybkLJ7CNnbC/nvVPTV1EZ4GrPFXx3HNhJczX2nLut8hRUfdUB/UOO20\r\niLD9TTzltslp0sOh91Ndk9UzyPidgzbEwQbbYMvnuR9THslEaaE8keLZsT15\r\ntXSfHQcWhAveo8DBRiEnBAaM3/OsChuJcA0k/S6u0vd3Tg48/Z3Pt0bbc0Ug\r\nQ7ODjvbfZSn1y+NScNuU08MhVe31/swJkrQ=\r\n=NbvC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.dev"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.8.21_1667474856897_0.735846987386793"},"_hasShrinkwrap":false},"0.9.3":{"name":"@awahlig/appfairy","version":"0.9.3","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"09fb1bacf00bfc635a6677a45ab8fdb986d4b151","_id":"@awahlig/appfairy@0.9.3","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-zcngOaXr61INvfu/0IdgejCM+7aSUQ9HdcHxMj7yAGUQuD9NiPgoapvTpDBkCYRrMWP3LD/4Ny9dqBKpI9zgXA==","shasum":"7ece5fac9b8a75ce0924d4a8050c16a7b3977615","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.3.tgz","fileCount":23,"unpackedSize":215602,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDlrAoBBr6Rz+TrCsahA4XhufaBR+s9MFzpLTWZqV70fAiBaiMCuEggAaEPMGDWsfFKoJVZE1IjG5CbuGyYiaH6TGA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaGSaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqVJg//UOCguqoSnD7kfOk1sJ6kfiWkRWChEGfV6PjyHxr51PvmKtUN\r\n+avuMS0tFxNA3wkyyre0WbW+ByLC9JWdzqrRaQRvTS2hx2bN9nMrSkNzgp1q\r\n27H5H+VG2gRpi5kskhvaRHbH2A+bHUNF3x5+MDrbPWL3+e3JMUuebC4WwGb/\r\nE80dKB9ucvrp5zoIYmomlsD2hbm5iQAYpWFpT096VSLnkAsxLgXmag0RRuZC\r\nfs0DI/SGmeB+7VF/Q/Xeq1Y039rQ9UKtaUdyI0kT2ifT+fzX+sxs4I9v0RAa\r\nq6TVXoKGo9jY022qh2v0f9e0Lo3+7fEOhroqtXn4ar8JMPkUWLHbWP3CA8Ej\r\n9Kd6P+k3PXNRXvfKygYBlk38PoJZ0WVd+bZMLgyWAqSeXSKy2BU3oa88st9D\r\nNRzRrG5r+LrhDBxUPhJU39GKCSypdUW1ciYhzTvzfPqaMjVVd4+gMDVVxux/\r\nKh2N8VEN84qovEwxdOr/9VKcGLR5GwAS6fmn9RFY7HDEfHZid22oOr7dEqzV\r\nXn/7FGGKwvcRDis1MT2RHRaJbyN1XrkpnOnsHEC2kuQ6vNrx41P+O8sTSzT2\r\nsX80qfbxmhiTokAuUM/mJ+lGb5K+v4fL1VaVUFWI2ESvPocqSG86+yGjBqxN\r\nUm2MmmgMBD6AMwSytu9BmvVkHMppxPDgFlw=\r\n=IW2n\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.3_1667785882199_0.49077340044262785"},"_hasShrinkwrap":false},"0.9.4":{"name":"@awahlig/appfairy","version":"0.9.4","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"482a0db18d1d4966fb446c49aca90904f943ae83","_id":"@awahlig/appfairy@0.9.4","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-JhNnUYNSj4ZWfAZCeddj3mj9Tsxq9LpFW/QrcFr7LYBFw3gHpQ6EU6Cbw5KU6JrODMuNNDUhB/7OSSofXTr3Xw==","shasum":"e388a1d171279f59bd4e4cd72f83209140f70d10","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.4.tgz","fileCount":23,"unpackedSize":216473,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQ8PlaQSn4OPpKXWod9PkELZds2IblWXf1xfYKBBu49gIgVFNT/5oeHRc76V+zJFwITT52ribBPma3/GJcbuu/yjo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaIoiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEkw/7BVW0lNAiDTl9EXFnnW6TH4oOSlM0KyGTwvZkxM9BV6v0OgNh\r\nW8wRsEzN19eFP/pejH8LNR1ytnW+qRgP+FokMRTnv4Ax0ux6Fct6x2pdZBmZ\r\nzVZl09O8Vw23bith18nx4oj25GLUUmd5PMuUkIXujnYpkuh51D0PGixfN7wQ\r\n2lM9KqgV4MOTQUhCIY6D0rbmfkQtW6MRuLdBhHfUngNFfIMPIwZbpGws9J/g\r\nKMPRGyeE6B0sxwVYtz3FzLcCkgq5hk5xjgzBzhANUYcva1DD3LX9BmHtDrvb\r\nGzPC5XBDykBm/xrXpDxBAqfSzrB6/fkgCs8djGyFen/d63P6zSAWrqAF1wi6\r\nGrrtzMNgO5IJymxi4++oBHKmFa++aYb8GuBL2tj661V1dAGCxkuk6makcv1z\r\nmhg3yQ3BAWZjLJutoKlNYRohylqUooS2OTNwPkPG9EcAmidLY4ZMfJOYOP0z\r\n88I5J7riLKMN8c7BLFDx3fzI5vebabEWOpqDfJcde+48dl3Iz6Fd+sVGAouA\r\nvwRjilbPc++etOA4cFiBo3HoX/iCwU01fLjtvfykumbrKXgy56PcGUtGHm9e\r\nzhZ5aGHWes3lFsmq8BCHrZMibiL6dRzuaMRAb+X1kQFI0TqwQ02cMCzbr2Dd\r\nbpwhBFnlqjJehDdgPUXEkJJvyw2Rl2zgQfw=\r\n=fTDp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.4_1667795490729_0.6021623479260154"},"_hasShrinkwrap":false},"0.9.5":{"name":"@awahlig/appfairy","version":"0.9.5","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"ac4b45fd50e454676cf9fe6e8273ee6fffc62e9a","_id":"@awahlig/appfairy@0.9.5","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-F1pOrhclTYrifFL6IHLglTZBIZkT4mD2Q4nbIxrW0NkIwkxnY2HRGxcrB1a4j8Nkczio1sOzOTrJZoWYFgmfbQ==","shasum":"d51853333948c1f667407b8b6b50422454b220af","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.5.tgz","fileCount":23,"unpackedSize":220373,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqMkIUm4oo2EOEKECJwWcT1fkMLih4G6G8b9WLmf/ZvgIhALNP4mMouiS5n4YHaoY6lrB28f40cUHn9lKk3rmla0QV"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjap+xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqBfhAAoCEnhF+X+XnQd2YzErHTkh0UcdhNORaTYiWPcacuaV0lJSp4\r\nxovWcFSTW4e12sxKK93eMewishllWKJ4fcO+3wgJysZnbGe2NzVRb3VDHsyh\r\nrwiEF5h7D9tQdXR/rV2zvDawwKi5D9xyVX9d0qIwYRc28EgV2zo9Wjoko2Q6\r\nUYfulngGHOIj29tcrb/eBWuDRqyyt7FgsT7Z2yLLQwh4Y/7tDLd6fOQgKRQ8\r\n37h4LKTXGXhJrFBq8Qw9lr4RXWO8F9wcWJjMz7bLrH0RssiAVWsepydBTcW/\r\nMnUGu1JGUgcwDd0pUToVNfwfwTOedpDgktb7jzcEU+Ih2AOhXAJ2ZlLl/tSH\r\n+WgDHyLKfG5GQxEYV+UmksuIDPQDA6Xn7YTIkVEcgsu54ZASoUTpIkkYK7pa\r\nYy/rOvZPDBobReeh+AE89DqcRawFp6I7k3jDRUB5tcOvgVxpfdjujv4vpljB\r\ni893mTfFxq63hdpWRWr5NWP82Upkzs79htikgvIL5StQWqEzEK7d4FgCqmNc\r\nfzcDozCOtNUxfbiseb7pEk4lzJfulmOA3fa+SE+Z3ecm2DE3TCtV9ffx1+MY\r\nwPjTaM/TH+hvdqBLvKwriJHVHYtElx+/1Tzv4aC/zSHZi2ldW02yIlMVp29T\r\n9JtfyLSvJ/JmgN4UY0BZcRo2JWb7y4pUGwo=\r\n=yRUm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.5_1667932080863_0.12804128323313613"},"_hasShrinkwrap":false},"0.9.6":{"name":"@awahlig/appfairy","version":"0.9.6","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"f588e59282c4603d4edba3fbeb32d33e6a70763c","_id":"@awahlig/appfairy@0.9.6","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-6AtkHPGpaReNorXJYkLIPv1gv1yVUZqngSK6j8yR4f6QcetAuwHRnqAvMyq4R28pZA7jFK2sizzs52wZ2bSDGA==","shasum":"df2b18e81443f4d14adb01d4bdd1f214d3b82c22","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.6.tgz","fileCount":23,"unpackedSize":224727,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3bBd8LbnceuqKzHbDFCu+OLKDmeJm1duZjsS7sYQf0gIhAMYkwDIkfYdLtbsxnW6lbnnPzrZ4uzyE/fJCi9Y4Tcvd"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbKngACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrIsg//RyHQNi8P/cAh6MeoHgpcJc9CVIHiteE+gahhGmnxQR3Amhua\r\nv1yH564ng+9wZetErKljSQtckZgQWI9U1Qsf10XR/aaHFp3bPkb4ogdbZvTJ\r\nLQtAASAth0lLvVOJuTK6chTwax3xSpQffX9mixFv1v+WAyovVh2T5RzEWq6X\r\naShs3ZFBu0Bxr2IVbsNR9HgA+aa/5aG0s336imdegI8k2SPom5jrYdZqLMDv\r\nzbSQ2OPHv8sYEkX+3pWZAYDBz9fWBcS2jBY8a8eXxGfwZlm4dOEwN8febvz3\r\nSJ4OtPrZtdSnEE9tyLP91ezVkp3NcLN8YVb7GzEMj31vcGn1v1/b29o9I01n\r\nNu7LNuaGoBXUE9z/oygNhBBrLSMOo4VSngXcy0SgJvgDr0S+Xf1bID8K4CWC\r\nd5rW/k8ADuNFXj+pPvZ28FIarUKy/hzjBacgQh+GmFhX30BS6fojjhAfCZL8\r\nznB4sXtE1v+my7Wh9+k+Yd2ixAYxzsp6Z4z0hbHVDonIg6E/RaWscpAZH1yU\r\n40dNMcyzrNxj6yD7rYs8gUetzRWMgoXLEwNP8KqmdQfNjIxHXNumri59WacC\r\nbclpWFjAxs66cIBOuc3JzePlvNvOx6bMxqwhxN9lahFsS866KvJLf4oYAPdW\r\npo/qtitSdd3PKV3ZrIEB9QmNSDvlYJqQw5o=\r\n=STQ0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.6_1668065760662_0.6054782893751463"},"_hasShrinkwrap":false},"0.9.7":{"name":"@awahlig/appfairy","version":"0.9.7","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"3e860e3687990fb2bf764e77a559f25fb410ce51","_id":"@awahlig/appfairy@0.9.7","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-dxOq9QyX4Tm/8uUhMhExjdfz4zRHLQx5oib/a88xgd7h/OTREwvYoR6oXXI3tPqWigH+hEnLPRmPJ0uMOirSrA==","shasum":"fcfeffaa653b31248fb6deca00e095658f465a6a","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.7.tgz","fileCount":23,"unpackedSize":224914,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLyd8Yw2IEJfWUEql08/6YYjd5Gjv+6eWIoHOIUkpL0wIhALl5NZTNcR7i/lH6J33m6rEZ99zseq3+7oKUYL1zFV3h"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbMC2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpV4A//TqRds39Ff9OxiRE0FT66X4tJuMbo+bditrfWlxr5Tt7E9fzC\r\n4oqFRNWlaNNqeeudc5RJcbvpD81ZTSOs5krMLSgLvVRE7en1A4PdnbUAO/7E\r\nx8FLMAi2rouuh2r5DDvrd19+PKA00f6r/cG9mHwxA85gljV5K0Z6eW/TGAMF\r\nJoZKVcZ6WRwrWaRo3ARmQSLVTX3N5eCLMKNjwWwCDkBA1gOxO2im55SOYkiz\r\nwIG/IB/LK29m6jS973iKmoOtVIzOnK1zbWsxzvEuj/XwA8VgtczYI/1bFBgR\r\nRd1aQXbOdiQZwOzO/7dA1ErMKlPSs71HNcmDBFl7D+aOuBlhn2dL4lkjbgtE\r\nyc+V76j4R87sg17boPMUTi9Swn9J6w/vJ+VLv2JXeNPUgu+KtOmGAC9CVYlw\r\nuCytgaIRfz9NgMKpEFi2+FPTKe/9dujk+4pLoVCsO63TAA5dWgmwkUA2sUPJ\r\n6h444AvgpHunSOQUPDYIVVsklmCUj+BmVuAViruAVGb8cXy8LrphYqmauGZd\r\n5sDaPIjo3by0N/c3a4dA6bDiqAz5OrKicp2jtRv27vCeZDKycX/nqy6b5koC\r\nKkYwNkK35vHcS86diE5uYle6Aa6WFSfDdNhb42JcPhiga+s174W2dXF0srYX\r\nomDu0YVbZpuvRjLQ8BQ364kFMJbAwWrnDZg=\r\n=H9VX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.7_1668071606452_0.23227280337597733"},"_hasShrinkwrap":false},"0.9.8":{"name":"@awahlig/appfairy","version":"0.9.8","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"e279fb128f923368b7b0e56177a83362dff1df4e","_id":"@awahlig/appfairy@0.9.8","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-tjN1rY6KzHrKIa8z2d45Z3u0JEqL7f3PQjMEdbozW/FXSOiu2Aepj2NSADCPiLtm/2QzrJWSArupz3YAlonIvQ==","shasum":"858a1cc7a2034338faba67bbe67fe8622c525492","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.8.tgz","fileCount":23,"unpackedSize":227355,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH3UM2bPzVKlMtfLMxL9gQiue++A9phFupjwTRgpEzxbAiBYK7KNStTT1vKEnxYATS9PCyPy/KHywV0a1+MJsEUjrQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcN2XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpfSA/9FUtPWcKHd1cirA8N+dVuppKKpDtRAoIayDGS215LFLD+7nOT\r\nNiCLsaXRkVmgP3NT91X7PSP6/ggF0Q+ZTcwxtuBTDrs7Nt5jTnwXHXnmikdB\r\nhzFO2Zhs11hYHVYvgTCqnllT3R33vUMEvnVWFrKiAvfbpeV5gO2HJhxXeXbY\r\nRjKEA+7WeaSGrD0BhJanOxq9NNYTcxPumVqktjCqTO0zzEzOEq/U3PdxjUru\r\nnOQmhhMQwBDopaRtab/ttf/wb+RDY3afUD4qrsM3U5hK6usrfADbD+Z4HN+B\r\n98j20OTexjZlb150FJ+3njcAw8Lmw78wJYtp/HJvCexxZ8lfsFq7mufbv4hp\r\n7qW+AJGn/seLoM8YDBxpYZDHxJ0KoeV7HXwhUq6CW0rHIwm7MLBhCsKnf285\r\nUTni/fDlEYVwO2iRVRoXt7vHYdgrropBjyndKlJKyjMFcTt91fLyLHOmcavg\r\nBuQ3pGFp8UXeNmwdM5Sum+eSC+2wkRBNtrlkZfTrTPMZNCrcGJXvIh7OWuL9\r\nDSN48doO7f1ZG4Z/pLjXkzxhEwvf6jPA3lB28Ccf7EvhPw3KuO5PzESPK9fx\r\n58lHQGMxpY1qNTmUbHzclN2fKRYswH89VaKV+QswfHBZ5RGF4mYMJil4TsqF\r\n7ArpstY6e/OibzfKRWG7nfjCOBNgZd/rEng=\r\n=kIex\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.8_1668341143408_0.3915326317037515"},"_hasShrinkwrap":false},"0.9.9":{"name":"@awahlig/appfairy","version":"0.9.9","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"48dfe61519913256b813e82151a2ff4fb18c7c5a","_id":"@awahlig/appfairy@0.9.9","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-AJds1LFrGUEiyRD9/kTlgGWJilBSuOizmptbiUVI1F8c9I/rT1LNdLhl1m0nW8Jxf4OiUEVC1dBsKoU+LdHA8g==","shasum":"3ad9c2469bda268162c0a3aac2c46d4f682d368c","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.9.tgz","fileCount":23,"unpackedSize":225542,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGw85J7sonWgBGABLqOqotJCPxkMZqzFffItDqG2IX2oAiEA63ILsErpoJYoTz8uXdYILnErSTyhRojpPaoQI8nLclI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdBLtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2jw/+MFv5h7z25n7sXRNySUlD24jx4SQXDJ2EkJjfMiGsngkHHb/P\r\nflwCreDgxAqS8sWGgQRYnd9laZhJ4il8IVxPN39gHEyTLeeaaA472/9faz9x\r\nKkkF8qyVd6LKyoFlHmF2kWpK1mYqifocRvPI9eOiPme3DGK+MAzmGP2iLzsR\r\nt63EoAQ5TYDQ+PK6tmqo0UueFpMjq/k+0n5FqB3/4AEdmUC5KnfNeW+lyyRe\r\nlF/5NaCOe2Dwzu0kVkr6ke2HA46IQXl0FPH9X/tT2rLSvnZry0r9sqYD5b4o\r\ni61J12px0dbOo/2zcHJcgBw+8C6ZfJ7o1OXtqYu9NyLB86GryuvsK133Zs4X\r\n9owAj8et3EJwleFE9uZwYd4qfLtYKezioGvKdi8ogsnhZeD+X1vDqpF3Rg3f\r\nb3bg751Ha8o90a2GKSuaOXRUTHGnIMn7yLMGAFChBjqs3R14YbDNnhzataAf\r\nl3ia9wyGTY65ldlPovtp5snRIrYAqnAiBRbryZftbB/Hhh3NDtKw1EMde6QO\r\neJRIRYuWwjAH1TdgnXIKLrw0mmuj3sS0nP+raKrG59KmrjjsYKl3tat3JBBf\r\nkfqGKP5bQ8uiR5wgmvXvr4P+GCeVJj1OwMwAwAnHcyJF2zUoyPYyw9DAzBd6\r\nTWKcyJu0moptLtikyv6O+4/h6qulmuORCKw=\r\n=87ST\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.9_1668551404899_0.06348651953458284"},"_hasShrinkwrap":false},"0.9.10":{"name":"@awahlig/appfairy","version":"0.9.10","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"f5d21130a07b35c44283422b6d3eaf433fbc1ed6","_id":"@awahlig/appfairy@0.9.10","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-5Q5WWU0S5ocK3j9MahkjYByewPdA9JRdD0J7QEnJI0a08z+DFIf/7XkiZ5ZkuU/lUBoEY68z11aJvlLOPqFWMQ==","shasum":"a10629cbdea9d8bd29ce0043ce2699f9be0d154f","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.10.tgz","fileCount":23,"unpackedSize":229512,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCybnRqQvNW4wBdpY2dEFTyPI9ctnxTV/kFYcWMvy6nFwIhAO98xBW332INcHVlo+d03RGHqOQEc6BGJ04odpZTAS8w"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdRDNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQFxAAgYFZfEEvOaXhOOzyNHLCXA0+Mc44ggLsAaIe81DHpZF3aqE9\r\nfh9CK9GbtlSFpMRlHltY7DUrxBenNcCK9Z6YbLPKNgkS57MbuK/7g8XSfKs1\r\n83KtWyjx6/wfA5ulnalXyEx9Exw8YlzIb66JAv3bLjI8nsPWGTm4KldApiJW\r\nNyRN0UW49Dpu4Ov7xVmlp9npU0CHL4OLTAaVPxCCqvoXVCbLlhurdFGBX45O\r\nn+YcXFV1wKyZgSLgOhLiZzU9a15HKzuJ98GtkwXoBoqzXSbazcPr82gYmnKM\r\niEFLBOrhVY5eTZIlbFpgWt4RIyzn8aFNX7aQ5xFUK9Jekc3VO/ToV+wCRp4I\r\nTYwTbBIb2nk0d9LQhMnJJElr7RihmA8RFl4aXdljSk8vUf6+GGsrACCfIr+7\r\nj/lMmJNPo9aIqW+KT07TUMZWjDAEoF6B6uSgTVxUdgAQoCA1sQ9AJflsIUCr\r\n2+hfD+HlzytIHC+J1C4f45lT7gQfohTJr4EvmyZnjQk19ne5A0tGbgSyK+9R\r\n28M+um9GdymEbMWMo69jJaY8V4C3M760910lbg5iBcgnbQciJg17nn0YFqEO\r\no/aSqi32NzaP+Q64OE0Jfn+fXiow/B7AxGMnjR0C/MZ/GOhkxHLc1I3CK84g\r\n7VbHW/ti6OWUIJX08yzkGs84aZwaRXTxNLI=\r\n=mwdm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.10_1668616397277_0.9403441972797577"},"_hasShrinkwrap":false},"0.9.11":{"name":"@awahlig/appfairy","version":"0.9.11","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"809588e26d22ff660bb130d765430880a5ac1e2e","_id":"@awahlig/appfairy@0.9.11","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-1wTJgeklJdQ/HVXEWgVf4bc6y4sFt7+zn0Eln7GYbEqm+pkFTnb65zpL9qAzxt3q4H98AQgVPcwgUvD/HtbDtQ==","shasum":"e1653e72ed946aef488525fd7dde7257eb7dd497","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.11.tgz","fileCount":24,"unpackedSize":307178,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHHb9wELI2dzZWyYRAc7v4lYzu5Ah5XS6RT5zMqe8V6dAiEAyaxoz/8mPg16HXLx4ODS3BfyNaSU91hfLCFQCinaxeg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdRqCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWZg/9GFr4+3ZfsYwqar13pgT71zTIZrtbj0U4OVp+MOOKxVVWLc3w\r\naKTiGpQ442Mzgb/23LRRHCYWUuUK2r/vCozilONBOqjW7AJb4sPLcHj9Quhw\r\nQcgEIKUCgFMArU6X1/KnW1B2eumtOxB5o3ONQi68T7rEt2kfhNOMz6vQOq7L\r\n0qkGOVnKvT++siN/cT8fkCwOzI76XuXWF1BsvkmDJm22rINq9lFtvnb4Gepw\r\nG1d0NImG4LQqITv3/Lllbr3TGxgox5XiR7uZbrYro0Mc0lDwyClNlIAQ1rzE\r\n5e2vnZTQmgRbOV4LEogr08i2Ueitcf/yjqmzH2vUlSk1vuGy/NAz4sk0HAZt\r\nPKerajMcz2OkfC0fwBhnUyQ2t0U4E1u2N8T51o65UxCawGPfT+3rlvp8xDYP\r\nn5lxOWqzvwYTAzNmnHPYC75OO7//TSWyGM/V+YEe36x63pAMuaQ/QnQmaKcp\r\nT3cNatevP9Hc8HTSOJfCIJj9szkETWmvAssi258XP4q/KyBRw36zs3R/mvs3\r\nNN74ZbQhgl15Q4WTOpAGPFY0xnNsrby5b2sFqfsDzUwI2JHFHZCoEQ3GhRV7\r\nfXBDFYZwVrFgjM3ZeNHmNlKdElXadUu8o7mVbjP4MoSATOrcSgqAOkvTURbU\r\nqYTjPzFFvSqMIF9RPMFhD36mFhCcG+N5euc=\r\n=LmHT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.11_1668618882422_0.6251809605730116"},"_hasShrinkwrap":false},"0.9.12":{"name":"@awahlig/appfairy","version":"0.9.12","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"224b33651b88c8183dfab0ac05d5f42f4605ea2a","_id":"@awahlig/appfairy@0.9.12","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-3+po3DvBfni05dA4ON1upojbjE0OSNDfRUmLiVjODMVLpLx9bvlxa9u1OE5gg+ie/hDqg4CaCmEfFROAzDEzHA==","shasum":"ddbe0ec6b13915a61c8e46915461c18ae6744c92","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.12.tgz","fileCount":24,"unpackedSize":308760,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvOi2mM4FKf4069NUT2X8mGw5znmKJTyz3FXwY1xPLwAiEA2WEUVlPiUeLePW/zCtq4VXiKBhafcb9nirEhXY954fY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjegGYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRmQ//YPqCEwvZ/ljMm20tXHQLno36wpqoF978dIUx/+/wMogQBvpS\r\nLo+1vynJG2MX2nYkkOrEMI/Gl6lCQnDwMnFiTyGHDYHX7oOkKXMl72Kw2IsC\r\n+FiQ35OtXJl3BQzMRux+VaPrvsy3395NKr0oPWs/a3HWEWrj+NpVzsIg89yM\r\nIFeuIZOzE7HOa70bRDXWXfsbVqi8Fe2rvcyll6CV20/fDZ4/z86TC2fI3zqw\r\nNrAhwwsyoAxhtN20u+7iRUePtU9/tIjW9Q3FUE12i6n9J74UJO/Fho+s/IaE\r\nC86RXEAfPMrF1jZ+DHvWyoEim/7OrLNhsb1m35lqHgtVQDw+z8SH84464JD0\r\n4zMr52GL9E2/E0LRAmGgglOHm+ohHf+6/WbcbumkvfQpa03tgy7AFx9QzD3A\r\n4u+NMohHGt8xu3XdFHJ/Mdt0E6GzunHMy+0ebPY5yx/tgx96JZdsPAU4ZOyZ\r\nZ9uEib+3qhBw6YwtJE0DRs0PVmxVzcKjGqv+wfhaPSvv0r1EH7O4OVOBBvyT\r\nNWvsV5fWvdOr2dXbeDr75L2auS+9GVyq8GMsFTO7eoyzliZblMdSKGqi3rMl\r\nRJq1s+NarWXBhLaZN3GbX47SiPcSQ2W9oJ4IoxHdq4x97JSnkIETqAeooWxw\r\nG2GfNH8qusSvK7WooVmh9H2CPeKgyl2diPs=\r\n=5JXY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.12_1668940183926_0.7781230103489942"},"_hasShrinkwrap":false},"0.9.13":{"name":"@awahlig/appfairy","version":"0.9.13","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"c52ef5ac36e2f7d3e686ed7a7f65155c59192b07","_id":"@awahlig/appfairy@0.9.13","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-yHykNG2o6dhbVbQRFNrusXJhthrSrRf1QFWFd7uuOYVySC8+hGFYaE7kTZx5KlrOtj0e3oOf/wnyKHUrK7mnZg==","shasum":"e23ac41f7b662a98b4eaaa64a0f4e63e9f3fbd7c","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.13.tgz","fileCount":24,"unpackedSize":308718,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD38Y2AkyZffXaFB10hwewZuPAKgbtDapaUshydio2L0AIhALLjSLZvx0dg/WBXVCZBUTirLYYRAIvCxTb1MPH0v/op"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJje2gJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmppRA//axUZdY/wgb1Qfow9c1xNjqKlWS2lQmQD9KBR1i06ngxLp8QV\r\nfNz1VIEw0JBSNwp3V3h9sbEUHg2hGWLyCoF4XuqOdeUMbolPYWd1iXuXtety\r\nZ9Kw8umYuV2i33sFXiv4UA2ZKTF8ZEt0CNJy3PALsSEtC45bNsONDQNLDPyo\r\ng5SIbsntRUJPeBUwCYphlaTj301MikpN6Xf9EMMyJD59LAYScB/FIXmVUBug\r\nPgDQQjHik+Es126dDgifCgcVWr6/nSTpShmbMZ2qV3HiDia+vmY8G9Z+o9fn\r\n7SmDcmWXEGuP0q0fP7lhET9gWZAESWxSbH3jlo4Jooy2js0kmGlAdsmelyms\r\nhTM200/ae5Ra5soIkmPqxFy7phDP/TEZ1TuZIHAigpwuzqWXidhDyj7RWG6n\r\n0zBWd/ka1nU0JxJd+qbPXs4IFvOTvCyUpRrACkdiAAlp4TXepiVGcsvweJiw\r\nMY+ldfVQDwZUU3/3uFb4ilDrq51SGSP0N0HKw3uXjqQ3Yj02rcld6xiEEZow\r\nBcMOgCkiCaYAbQON7okSU6wxhpWH54tYv+F4urRlURn08oWw/aj4vzKROL4l\r\nT2whgVpGq9Z7GSovDrtRT77kb/LG4nItbo5URiMIZbmO/pHvoeWZM212Hq8X\r\nEEOGyQrgBDa7YMKPZDI4AMe77dvvU2YYIUI=\r\n=ajqq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.13_1669031945632_0.30876361828942467"},"_hasShrinkwrap":false},"0.9.14":{"name":"@awahlig/appfairy","version":"0.9.14","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"3d170e5be958b1197fdf9a4210c8c8358527b1be","_id":"@awahlig/appfairy@0.9.14","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-yTVTdQ5DSaZBtWPzoboYSAocWJSuO8OdPEdwb6GQp3x5tB9MfUcsJgLpW5o1JudCxIa2DhOKEDWPCG5cfmkAPQ==","shasum":"f1827e4b635a998544665feba34d9b04f4eca869","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.14.tgz","fileCount":24,"unpackedSize":315352,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD97ftn2HvoFeG0miP0sUAziCQwzSCSygs28UMN7kHgdQIhANlgzEwjob6pOTS5RNU6eXneO8SjrL9hbTZ7nHjZ0sd4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfzJ7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTuQ//fkNdXaBcnIG61iQdOtPLtbFt/mThI3R6x+TrslyJLLw4XQkX\r\ncMr9D39JO0SWgeyNCaUGjKZn+qvJ/KPBc618vxNXoNf/cgJCN/7hfoPRpGG+\r\n8WoyR8nc0eK1WXoX1gOIh3dO3JDAhpnM6hH6FyR3sRU3B2H2qLOMsYWCMYPA\r\naYgSBnn+PwiWe/vN/W4KBXyoOGWn+8+xhN2t3TtI4Or/aQLElk8oKzhK6NCW\r\nxKhbtVp0cQI2a4ENOErUrH+OHewwg99ud9aGdG0Th2z8G424jcvH5HQOIvJ3\r\n/aF8BKh1OhUlqda9EKRQAeAMBCSvcfk8X8UjT3uHMGjaSyK/AzxoxiQKh2bi\r\n92wzmriwiS6OG9oa0FdBjSxYsTOn4Sy9TTVpdpUIsPTmafD1FvjEVc+iixoy\r\nYQatmNRoui9ZS4s7z0hGOxR+Zz9qSnCMpqUoFbtGXyopwFxF0XdnLCmkeqYa\r\nZWgkeDvQ7dcRq8Z0pNDFX7k5xtj3StBUmm3UGm0fa0+I5Mn44NS0sGVuep9z\r\naIuVptSX7AiN2woKDoFuUMxk5exw2CSaU1sc2ukJbP2mJjZehh8PdQEPbeCm\r\nEtx9gXqaMx54XPhy1WMajUXHl7JTN64qR9w451Uy45oG1dSrG3iTzr9dhjoz\r\nBApUd+n7ZtHCCloiEeeE4wtxrymKFb+sgfA=\r\n=7rF/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.14_1669280379283_0.3518938089840262"},"_hasShrinkwrap":false},"0.9.15":{"name":"@awahlig/appfairy","version":"0.9.15","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"e0fa33edcd3c39444007aa688df17651b57b7dab","_id":"@awahlig/appfairy@0.9.15","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-GV4GnE4AQWWdkio0w2IUy2g7L3hYwlWVTvLdhDIFT66lLXqlq2ZDziDMcFjZAkChjTfO939iFEC+Zo1Dgl7PgA==","shasum":"33ff7f776ec15f30ab46127b553b0614931685dd","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.15.tgz","fileCount":26,"unpackedSize":321757,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyozQDDrMo4344vVvl6iVOIpeYSdzCmAqpfg13EP+qEQIgdevbIJ5aSngb9XLc2FTF7nSMpUeyIwEFky1yqdH+YyA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjgnSAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmorAg//c58b8kAbq+wLSgwnFRRDkvWmIc8ZhR6AM7cb69NRSmR0MGLO\r\npC+pLxfil9IJlNbMlFINNoRE0BwR2Hs7lvW2C3TUoQstUtcoKWuUIiYuVQ+s\r\nJggibc+DAKUbCYJMJScl7IK2W47JlGAMVvZ2cVOMVy+r2I4ddfMkl3zB//oP\r\n9DdlmkJnB85WVqQbsyjdPZlt2N2os11ZEoY45a4uSHAtbCeLie9TwkSccsor\r\n1jg6CJO8nV9zhVb39c4Te3I+EIfy0wXGTL6i52WprGwkDzx444E0iq/tBFzE\r\n20rTMwJWbuMz2gflMo8yT0r43hy5tTWgaPb147iN+sP1cJWfLCvRVrqCcmNk\r\nPHRNBElMM+FiC549Y4z7j79DlEEmwbOvQdvvA/ht9R80h5t7jsBZmul/5VqZ\r\nAICQfmLIOq71N1oWaR6WRkd7G2HaVovSO6xxfIoDwPFh9GTDsicDV0C+LZRj\r\nyDmAwJ+wMDgfaqnXODgV+s4z5stWmG/ztC9HkynnLxIm4DCbj/zL6gR51sHA\r\nU0DOdEncluWAawGWdbQJWxyWYR0eQ1+Ao7EoHGuLv5G4ix7De6d4kZKZ5kMj\r\nuFohEnLqQiglvRbwFw38peMSNpoQZ3wjlN2AwetNQE8iR18c+cSN/yMKYS1B\r\nH2SJlRk+JpAh6zVAAwJ/SiZhR8e7dfFw+6I=\r\n=LudT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.15_1669493888479_0.19651486884771385"},"_hasShrinkwrap":false},"0.9.16":{"name":"@awahlig/appfairy","version":"0.9.16","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"18762b603f1d446b9a2437a4146bb73c7bdb7509","_id":"@awahlig/appfairy@0.9.16","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-cFG2t6q7Hk4cWRG2aVrK9sPO5eooHs5Fvh8Cex1UrUlZVscCtHwMFECdSozVA80TI/igw95RMwxFuWPx0jYlbg==","shasum":"1dec20a45bad362172dc13a24d1a996faca93d4b","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.16.tgz","fileCount":25,"unpackedSize":321273,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAs0SXaGM3zhJbuJD4xVcWmvWOn6ymVbdikwd4HweiH+AiAxwpXRyLG817iY1ihlOC9d1YYfiuPXrdAzPI8JcY6eZA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjjDmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoEyhAAi1choMD5k+rPUGVJS4SMPoE5ezX1Ejb6etqgUk3UOS7gxppk\r\n3r3fGBDI2iDDKf2a44JfYWLI5EHbKmJoWl+Sz1sYhS5gV7g1qZUyliZQQG6q\r\negf/D7U6tinlGGHsvSgm1ewVPddzceiCwSBJJwJB7nXuPvqgiCu5MqwxDo0I\r\nqPikq+ZI1YuFmNe6u5ixeeILcUBUgQ/ouNl8wbChYCgobNBrM0g2Dv3uOtHD\r\nO7L9Wn9Inpa7p2L81gdpt252moW7EU2vb2itpCzTRxiJV1d6vH30F46hmqhW\r\neEdwlAdQ0vL5ttnUgvwrB3jzMHh7bXH+O2yEe8U4Ptp2tlOaZxbboPX4bg+R\r\nqmcxhSKw3MN+tkzZPrQGiCZD9MJJtpFTMsst6NO3zEejNCWCICQcgdaOTyjS\r\nV+unZpeW8+9C6+IvUoET1UL1tmCtzLDTmHMsQeP45WCijDZgsUsqgQQmS6gY\r\nUcxeO7TUzq5dVTGqH9GriWGWY5Ffu+WEBRmAnYsiQFoEc0EhuEscZhU6kN52\r\nz3m8V3EGQUKrZsTjmas9zqtXEsOuc+ZOIKTr67HXxAAgnRVJUTxvImkjo8Qb\r\na06JcCxtDf78XPYVsIvVNFaNVrjvFUhKSYNOf6wl1ACZ2NSR2VJ8G25a26Q5\r\n2GzvDmxHsDOUT4GjqiaBVlz2EcbGWvNg/SM=\r\n=1LMR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.16_1670263014322_0.6834872643333048"},"_hasShrinkwrap":false},"0.9.17":{"name":"@awahlig/appfairy","version":"0.9.17","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"174110427a5c997cc39dc95537dfe82375d4e5b1","_id":"@awahlig/appfairy@0.9.17","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-vssEyUlucU6DWsESU0wxmUmeiyQAVgcmLGOO82C8pbTOZ9KWY9zcWTuDoeaIpc1jgaVJGOI2NgAC67f7wXtHVQ==","shasum":"4dbf83ad97c0c3132636426460348f827239a063","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.17.tgz","fileCount":25,"unpackedSize":322095,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIErUclnnTRskwAGrZC7+Bp0kdZkRwDOGGMD02xrfkX/KAiEAreMifty57bbdYdAlQwCWC8t6lOCOA51fZxeam4tUFfE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjv010ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpnTQ//XQY8MqQxE9/z0/5ZqMRGCVrt6+XZ1Ey6gTWxUGn8iigIgsxS\r\nMW2nZJYlzFTXl9cNlbq5dwr6L+OQAG0IYB4bwJyPHGU0hT3x3381WQPcVxvE\r\nOdxQDMjnAhEnHQ/6Z4veNZPKwMz3yMzKxLOrhQF92nS/UCXYH3nBX5dMOPr7\r\n55FkvLlt6Lu14qPjMTi16FAZ137guFsxlvWq6DPKCNC0zgjmkvpnpElcvp0B\r\nmt4+b3iagMjG11ar4c/7KMn97hxhh80jkczj08e85Z7FjsvmHTM3HMb5uK0+\r\niydPXEwku9c3n2x9GDi6utMXpPrIrTwZnFg8hv36RFqXOhqBsFLEjqE9rfX4\r\noksNezypIsBx1pTAjkLl3sV1KoTG2b2iwD5OIkMm/3oYztd9ZyzfCexiPrRH\r\nTimn0tfu86tvVFPUPTREAdv1xuasE2uqB+5YGD1e8l1+n92xJxuFMXTJ+wPD\r\ntZ2kf0dCGsAFoxn/MIBZPz935mJzj6eIurWEO2eISoySv4/4KdB+wOLmgkeX\r\niGlvKp+sYbhBPtLZN3RyGPBPaqqG+7qPScxgdDeC8PYZI+MiGbntmkPeP8dD\r\nMp7S41T+yUID8MDZJ+FSUIOAvUxoWYG94dKAExNaDXsv36sSG8PRGDKv/PHM\r\nHzozn4JsfOscILOiIQxyJHT6j5wGb0y3VXs=\r\n=A3Fz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.17_1673481588656_0.5757537782337934"},"_hasShrinkwrap":false},"0.9.18":{"name":"@awahlig/appfairy","version":"0.9.18","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"63407736d5ca3b2b9a606770dc17762831d43375","_id":"@awahlig/appfairy@0.9.18","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-PEFsdEzy/utvOfuArR5ibtFsB3NBi3HlxCtX9YXY3QpQ5O2OeHmebBpGni3/6sA8ZJ0WqKiG3kvZsxGXoqIBEQ==","shasum":"bbd5962c370e77a53532ad8a816aa87f01b27c68","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.18.tgz","fileCount":25,"unpackedSize":327482,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjrkxhUGCvw7TwBhW3nSXy5N73MB52Cwef81KPYKyDvQIgCNzEDHUPPSMtiVzefJVr8dwMw9tvKHcdH6ETQ4SEld0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjv2hvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq9kQ//fxB0ZNkLoGMcRpXmJLbJn0+fx+Wyavr2DEatJvJ7BGmtS25F\r\njh522qSti/7K+NaNAS+z8EoNwAu90BMDvqovT2Bi6k3xMKRGmvg9jWCYHN39\r\nXMGjwFFEEppwCfwIltBAvH0kezx2/L8jQ1Jymmi7vPI89N9/AvQxSa7JLcI4\r\naXHfzmOQ+DNb2mpBbH9aumw52/czl/tuZpIKQxELP4JxzduF5Hh3HZS/S19u\r\n/QrjKwgZHxSgwZVGzoYiCxznAEYf10AGDZ9cJad4hfJzXQsJoFP1WPPMxdzY\r\nXANCqlY07JrF67hsdZasLUqQo5+8a5gndgP5bTjteXjrg9aFTvKaSINdvfHU\r\nANhdQTedme2niInWXhe4pd7mUGdQCk2vPuFtGSeYg0CkXPAsoGSQrSuhrGrA\r\nCKpVfm/kjiwL3umHjzQxkA7wCk3yKY+Z7RCRu782yTAgPVNJVjHBTwXUmCOv\r\nL9sleJnY1aw0YMBj7B5kPpa5pQHjYgSMTRA15RkGyqmXkvKtqnk43w4B2goR\r\nZtu0YeIFlJGIxawLDnnTP4C/2/49W8cje6492X347WdO7qUzyfTUmswMdp3h\r\nQYpnBq5tYP3mre4vWPCrrOeYONDmHpqPKj9hm/ueDNwFRv0amnni1ul1h0tj\r\nr2MX2zGhruMZ5QV2L9MJjnSVdW0Yy3F6ADQ=\r\n=vLHd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.18_1673488495422_0.791119632069007"},"_hasShrinkwrap":false},"0.9.19":{"name":"@awahlig/appfairy","version":"0.9.19","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"05f550f556c851f5ee7413b111f1aca47286b876","_id":"@awahlig/appfairy@0.9.19","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-8ezfjGQ9HBeQ/Yy2t6WWI9c5ZTCa5ZAuKWQaYCTIXHBP3tihDi91xaUMkyTxH4aSEa8mEHw/CWxAZ5EVre9l8w==","shasum":"87487d99484737d2f0b867eb841a07a9d52b9d4e","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.19.tgz","fileCount":25,"unpackedSize":329406,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICeyCMvg3ZzuJqbK430iQX/2pU2s4KTanVEr2Msa/3HpAiEAmIrw4sF5Q6jUl5LzITy9twvlVKQxXsKoQ0bJDNfkILw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0U1nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqq1xAAm6ObUDyOkmKDaYJGtFZijFH81mG0isMY1BwdJP9lh6fOuemU\r\nmGTfYLZZN2PFkuJcnVy8xWK77yEXcnPM4sfaU+W+DKJ5eUrAuOMHyiHOTI9F\r\nA0Agwm9dFMzaCnbECoLKcbQ64eMr/XCxIDQ2a6NS4qM4F2xCmxDzrkeEpJWP\r\nxiTPQDTU0C934NHN3/VTeBEfhlon3j3JQ1jPTjP+gUIkyE+8Xk/MhZ9Cwnpm\r\nzFE5MePrQbCIwZQxmGNHuklkhsRgRAMYNFiiX4QW+c1el1X4rynXb1XX3xpK\r\n/8U0pR2Dyt5tvkY/Ew+ikuBvsgcEmjQ4cd4RPXFlXoOMeTqbl9SU5zvsLu7l\r\nTq0eNVumH2GktS6bdfi/M8vRyzRUPocJIiVA6CLqTo6RPXmQZM8mmZpNdGAH\r\nus8M0u3la2TDaAh+Q/banSPH/h5vvE3e/IUZvIMrUXSF8B6M1tGCN4PtUdKF\r\n/LM88pBkSYkgTwlHcWHJRdUmA0l+O3SfOnZFwbiQD6RxumsIoHDgLrfj7gl7\r\nT6lHvgG5T0z61wBY0ZZpuuGYKYG1ni0D0w9+lDgb90trVt5q/MzUNBOBwVSW\r\nCaqJHt7cw6GVTsl+RwTQGBk1FAQzoZyxJRKdHe8w1nNEZlxNlMkAt/CmZ2ym\r\nBMIKxqlmQsljcFyQpUjAotuGucXxOkOEBls=\r\n=bx0J\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.19_1674661222981_0.9793153868575586"},"_hasShrinkwrap":false},"0.9.20":{"name":"@awahlig/appfairy","version":"0.9.20","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"7ce381867b5b6413bbf460cc4ec0cb9892eb8b92","_id":"@awahlig/appfairy@0.9.20","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-bAMJ8v0hHj1rArh2qyP+mt3KtbCD2U/7Zvy05+qtDgz502wBxFX5tOj3BUGJZQQ6IHz9PSton4BbjTchFvGnVg==","shasum":"3de19c1869aaa79ec7bdb3e9ae485de7687e1c97","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.20.tgz","fileCount":27,"unpackedSize":335522,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH0HuJFGqwBTKypDRBWcGL2vY1oK35c6ZFFTJYu3D5CGAiEA36+sM99yRbOfdzSh09ds384zm230rRlW7EWlbYsUjEM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2DoPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqudg/+L+UOAbiH1siUsvbj/QzVSQ5Me2hfMODxj99XLHHO8t0IBLnD\r\nyYtZ77k56TBCvvotoEAsQ8vQcKz3q8rn7cDjhoC35Zh0NV4MRWQzqUskMFH4\r\ndwdk5jYw1jVgJ5txB5GD4o7Oy9uoAI7ea9u58mnJX1HqYciMXDGKvqWKtj7T\r\nmC0llhoqGwhx+lJDwllf/ald6SXJnqlWWgTkditxsAzEKeyJ3cFOJ6IGtmzM\r\nbm+OoZavIukOcZhVnW1iqCtSEEtf85xCiJ5He+qQpU+xGiUB9brbla29bbuY\r\npVbyfC5T4uU1e36FE6NEHGKhYVXewlSnpA+l0BvwZweF/pdOs1nzjynMaIdz\r\n/90tzug/NkRMHgtayZckRrXo0h8fwCSnPry7IzfwX7UU7qljW+fjpKEZE/B8\r\nBqu881IpnZeqANtfR88FjEQC5sVRYIfM/X4BEpQYtBBs0Zg7MfJz0whipIKu\r\nivERcKR3iiPpoh/ApW30LUdqVw6dNGOZ9YbOlUwfnIe9xwkG6A90Ub3fMDAF\r\nZ+uG4yB47sYLbouFOUY/+zp/yfysPf+Un+6Z8n8xHdxnwrHplrh3KXBkhHHr\r\n4pvxSWM1Qe9FAY3JNFp8CanuDgLgmCHSS0azYujg4/FbwZwnwlqH88v3k8PW\r\nUHX+45U9+YrA3Ipc6/3P7nx5VKi67hoCG1M=\r\n=xYKi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.20_1675115023444_0.6317155817648237"},"_hasShrinkwrap":false},"0.9.21":{"name":"@awahlig/appfairy","version":"0.9.21","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"13e9e86761a672538749b62046c62f096b4d29f3","_id":"@awahlig/appfairy@0.9.21","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-xRhs3ugki3tZV1uWEjCLZh2ktpWHZzdPY7tyPPRWWvwzRcYWUPtAs3qoSi3wM1ELDwpXaLr5kkBgl7AJmZGD9Q==","shasum":"f1e3d3ba66be231b3b160de25f6bfab57e04030f","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.21.tgz","fileCount":27,"unpackedSize":336282,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICeWwS06p0CnrNVvDR3na/ffeHedGZHl/cVNQOrM5vjAAiEA6ybiatE+Vg9Ld2Zub236FOWhJByrJ9PzqX3Xlu+798s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj24KoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmptBg/8CjY/8eH779Xj95NofXu1BIYngq+oU6PxhAI+EVmRwgNM8T2Y\r\nQe13FvdrZ1WVQExl6vvfVmCcPt0DI7TJSncrtS0MYNXdj8wypgwJO9bju3ks\r\nf2jwMQAkCOSWozKcNlecjNX9fuw4/jrVnP7JlvDMk1QTMzOdLYL4AJhBvIWA\r\nlCoyA4Kl4luzCSYOgcaAE+tLl1vbHVu8ndSUJpbfS1pTT7gJUzITtkuhOPKK\r\nyAbbrNTRrUIw0KHcXfheXJkOKCw8GJbWWw+6zidAW7OqL9gLI3uesGSMqWVZ\r\nm8I2m//Dw0+/UYhvYhusiz8LSPfb1gAzzjZ7Y0xnslDppUO+jMZKuRabPO0b\r\nNyfW7mX9WuCf5NGR5Ssaq3pdzP9Sv3Qpl+SlcSSwshuVwL54TuZ7etEm7l0C\r\nOwP5hIVdPeBWoMb4AEdFo844w0gmVmi0AaRRLx1As/hBWDQDGbsNhpfhB1hY\r\nFfIqj/x3R/FbnZ3/3jdIBwj8lHNker9ga1yjDMKBNhaTb8O1SDvigR0bHMi2\r\nSbC3IJG815ZGoETqgLguWb2Js2F9+RmKw5y7e7K4OiPTyydSDak2I3ZuPCV9\r\nAs0JVqi3iKm9xrz2mkq9I4yMxX6JWEXskhoY5/UNuL4A+f3f1HpZAtCiMAr+\r\nGdqGt+GAOM0O5/hS+PqIGNeaWsPPqUulrMw=\r\n=yXk7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.21_1675330215829_0.8665847925295334"},"_hasShrinkwrap":false},"0.9.22":{"name":"@awahlig/appfairy","version":"0.9.22","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"5fdefe89bdd649416437caaabd73334ebcde9d50","_id":"@awahlig/appfairy@0.9.22","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-7C/fc7xzlh8pyzPaWKnngN1pn++ru4F8zXVPi+3n8L7czhjJUeL3SA5ml5pjEaVugnIAtqOhQow/VtF6uLoxPw==","shasum":"40fc2ec38ffd9048534bf3dbc28c1239853dfefd","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.22.tgz","fileCount":27,"unpackedSize":336484,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGcHEyZ+rAfCMCiCh0aXE6Dz1/sD+sGSrQzDVxDwAJs+AiEA88PI0IaN+nLnOx4fVh4e8lrcQ5oYMEv714pubpxWBZw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3lYGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVjg/+NFhOpUc3twJ3uTw2zOqk6yz9n084tKmv+5JJn4kaBr9pfwZT\r\ntRCfkBqy/tKirkcM+Ker7BjWLsS9PfhtEuGkU5C7mS5vkGsAnqZzVDB40iBf\r\nYniGNbUtDeTptCSZ5qnhvHINFhA5orUh62Q4xMZ7j/qlEoc0FHqW+G8UbPlC\r\nHh1N1GXHUjpSP+xWFhx0g+aCX8Bq7kbT10l/Hs1ciZhoWWBqfeh6PfyYeH57\r\nwsy8w6utceF+zY3PzlDs24LyC3OBXximsBcbKX5t/7rUejOLbSBgNhpu6IvL\r\nYFY67b/lodv9ISzz6pEmFwG/1PLmyDFgNt8qGisx4bA5L46UDsS3uTZuz1GG\r\nMQA7iP1fb+IcnwGbcw+nuuIptvx4BhQSmbMzH/zZ6hLP1e6LwD/fn9xPKdV0\r\nxkPS2VY1H2ODva5s7/LRYrQZJcFkeUgGSajKvalq62/qk8nuMlS+j0hiYAhK\r\nQ72glK1ZgfZkBbmb5brFBqv6pCIYqk17M6aGXleHhKiiIoJdINevsd65/Gh1\r\nZgnvGcndad2JiLIoEFA7b58HNS9Bb57r/G8URfvDFglu3kl5f737VZVs3FHe\r\nlqNZEAccKpRMvTiRJDMWovLEeioXkGXnrBai/kdD1rD20ZJ3rml7x38q4b+8\r\nIe0gIZjGOes6V60LiaTdkdWLQhJR1IkLts0=\r\n=RGpJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.22_1675515397998_0.009660804344934881"},"_hasShrinkwrap":false},"0.9.23":{"name":"@awahlig/appfairy","version":"0.9.23","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"1149e22e945e5107a94f5cc485da097e4d827d88","_id":"@awahlig/appfairy@0.9.23","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-lmmTTA7z/B8lgmIV+H0vNoUjaq7v/IGIvN+L7OyHgU75pRqq8ORzAP7MS/mOaNBvIiZ2Cse/jMarUCDPhx/exA==","shasum":"7cbf2ec24fcbde7e27788c4e3fb09e79a6186a52","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.9.23.tgz","fileCount":27,"unpackedSize":336119,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1um2teh9O48T2R7HxYjaGoON1jE7BwB3NdkT+FqQm2wIgZq3Pok6210jKzzNHkdN+scbeXKBObktD4wHamu4v2Pc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4Ch8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpG3Q/+IuL3Cgg6Yx/DbzIVq8ZRU+HV98IiQLlaOrUCJaGAPxtvfVJx\r\ndRHnmSau6NU9Zq096B60FQXq6gzo6/MKsuJjWz5B/e7y2LV3nWxRkc5gi9hu\r\nmYEgeeyApSqPUvjorcEs85nCUbTbC8dTxZn6b1JXu0lcHXs0kjj9fv0XDAke\r\nkJuU+OjRUvxJndid4KMQIUZCkF6nhlzcHctTLo6HHdGlxbfVvdlUVdPaxvox\r\nXfBx7IlTvB6EliYh2kJJmjybrFXJDre2eBDADX9spZ8cQJkE/I7lkFdLlmhu\r\nRyAu6Gf+csfk52SFR+M1FkQNSiuxqs2m0QxGSLrhztB4nZLvX28SeOnATl5z\r\nMbxPQqV/y1q+mwLiaegaE4kTmu9CwIP2jHwutpAgrS+lP1eFpOPt4KWMs4OW\r\nSFeSBoeL0Ada52nd5/Jo853tIifPygbnd03GFGRer40EWJUV6ZtCjdBE5vQL\r\ndfZEz1Q7wBdj87NClkR+r6dHKqZ9L62zv3m52IGuej455Z5KqymV6+DlB5Bf\r\nGkF8Y2OxQxVKj70Q8lTY5/uNrqzHccbNmmt7P2Z4ioObezZXXW72u//aqlSu\r\nnrB5wPOrEOb4TyP5KPFkF8yb1ioiAyY1V01at3v9/SCnQgIcXhwIagIfCp0H\r\n3nCTfs48hm5JGTCOwtR4YqT1ARmrd1lNqPU=\r\n=FRm5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.9.23_1675634812205_0.9284866589464311"},"_hasShrinkwrap":false},"0.10.0":{"name":"@awahlig/appfairy","version":"0.10.0","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"d92ea8afca0ad5b3d9c0ff132db449b59564fa33","_id":"@awahlig/appfairy@0.10.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-557E40grAhjr4s9RnKKvvjDaqQsx5TVwXYhy4jb6UjUZtaan58mqQ/1+EYNgdp4DxByM7ZtHO6pL/zr2oUxprw==","shasum":"edf440c4c0ab756542453419c28bfe87cbab42d5","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.10.0.tgz","fileCount":28,"unpackedSize":328085,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBsj0A5S/sC1hebHZmoPo7ZqKRNke8Z9e81Cyy5MXq8MAiBEpOye+QZoMCBRCpmbk0pbwvTyiMBj2WvYjJTWd0VuVw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9TbvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNsA//UP8FFCMqA0Ou6N9UHXojUc6VtsanDNTQL4btwWuK9pSWzmXB\r\nxHshEIK970qjTjkwqqXgSvq+FqSlVxdv3ZkU1rAXe/2O7oZjemMDULZ2WFp0\r\nNcTSJhXqaxhwlPH9gRF60LItlCl4TB3IINY7EeWXh9VlDSdH4htFKOrHsDB/\r\nIYJX3D6zvbWHq0x4sH6rB75LU8riEiSvE3/WwEFPF+BxO+VzXE0hpOFL67M1\r\nvctnxInGlekuwx9QMYZ/+G0kUTlaNjZQhiljecK5i97coPQHtwRw/YSz5rHx\r\nL7BNeKNl7ZkZEgE/Bx25hWVDvqUN9k8ErLvwH8rAHxJb38DPGlBVHWdBwgXm\r\nvKjbQtd6ypVAs12UCn4S4Xn7wSlK2KWtx2WGgo4ij/WHIPUSdYtwNiklq+5t\r\nVSUumXch3sQtSULHBcgzb5GiATyn1z/DEktRWPcEAjPA+s1msNl9IG0rEPjx\r\n0Jh0qa1CaV/nabC9uarz12Xb//ip22qtKCKdtQBoXjwgvqGqo1TpKHgwUU5m\r\npnNsJhPshvonArwPWohXne9UZdLMS4wmN0c+wwVBDwKdhyBIStGLl5iSBX+M\r\nbI5YISGOI3b9upLCBG9C4TVt86Bl6+gDgiA1AVZ4vKrd3RCdsmNwU2x2/MoJ\r\nzkwxnXkuhtCBYooeRxh69nEpH8ZMO8ueOvk=\r\n=np+X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.10.0_1677014766901_0.6209631326575322"},"_hasShrinkwrap":false},"0.10.1":{"name":"@awahlig/appfairy","version":"0.10.1","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"15bacff45a3e9855a24f3af8e376b8b1df311310","_id":"@awahlig/appfairy@0.10.1","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-1VeEkt+ajvzUu4Vc3Ttpe3vNkfk1dWFpZZulCqIdeW/QN0l0AKhattZnaxU6DluzaaWCYrRNd9Yig5B3qkSCPg==","shasum":"8411dad844cd148ef299254f5c3ad5f9b434d35d","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.10.1.tgz","fileCount":28,"unpackedSize":328476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYhMqNH4SSysj/KkqcOE9V/VJPiT5DoFNFBWU8pRJa3AiB6pbs+wgNIghz7jBYPtiebbWahYUdgOLoX9r9IAQYV3A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9j02ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqIChAAoWnMduRtjQEr6V+lkUQ8QhgnFPdLk+IszPVH/iAIcWS1ZjoV\r\nYj//1IV0Yum5NBWW4I3xX/Px7XjCr/zicp16za51neZtRyYTQyDCjy7Ukd37\r\nNVU7fwzeNNDM8B65pjYR+UZjLh/3AmSVsMJ+pG1YTs8qhKugF9F789ugAN54\r\nUFRzeaWiQ/IrtHgndeLaBeJH+ur3OagDZw+v6FghpbqwgfWbFpaoCoRzZlMI\r\n0UUe1++rQPqmO5KBbzYMmH3Zks7U0Hu6jgGmYma4UL6frVfBzmp9PpCzQLif\r\nDN9kVAz63J6LEZdEeOKeqjc9XWDf9m1Vf3PApBu02MqtPczKYvY7VF5D0B5G\r\nPESJ+mooExgSmFVL9LtXmFYhjqK82WnkahCNy74Pjtu22GlqcXIUCN4Sacbh\r\n5aHnREtXhD7ENrrSWB0+UpguVwkFkaIGYlqtniZKIGbZ8mIQshJOHtapdq3H\r\n/iKH72rDGzSfJ+3sfMUoXOSm4wPxhx3ZbSa2n5WrDiPOKZsAjvV0poc/lylW\r\nZJikiXhYKELqd/XUpnBtAcLiRGpoktvRHwJPt9gj1aMEz/NrGWLdW/qMwBMa\r\ndHYkKAz3P4zItkcP13NOjUhbaqt0n/589vjNZIe3U3r5i8gmAwPy5Dv+S01A\r\nzm2CaPwsZkoaCCbQQbrk6kq727pffzpcPZg=\r\n=gQjy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.10.1_1677081909907_0.8660614331350134"},"_hasShrinkwrap":false},"0.10.2":{"name":"@awahlig/appfairy","version":"0.10.2","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"a783aaf733950b9aca93d1ac46f1f82d22eb721f","_id":"@awahlig/appfairy@0.10.2","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-Pp3HiYYcFmGzQgAzBh3Pv/v53xMRuaOPD6qPnYqXQ/wlUaFud+3aXnauxjips7+7TLEK58A6lKrauoRVakKnHQ==","shasum":"6f059e69a78b084cf1f7f1a68d9dec9d3bf9594e","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.10.2.tgz","fileCount":28,"unpackedSize":331090,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAPDyAmSB5rP3sPwN2DsHI5Q+6Q8c6QEoOGBl9QrGfzUAiEAplOM5fsiI+YFoBwY8EycGZ4zpOMhDTwE3di86Ddvwg8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAeDpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrkMQ//V6x90Ty+ekzJesMd8Z8hLLb4DM3NMQZ/KHZG32xJtj+9HKNC\r\ndpAcFVsbHbCSSie6D7kpQEONzOZvCIRKL2J4e3QoszhfQnQVbKN5gmrq0/Xm\r\n0P9FQa7/j73dKV8ZeddSFTqnnk1QmjxSM7FqggS2hNQNHAC19DvgNg/fnXZy\r\nVmnStXi8alNEwBatHNhU4XnZyO0xn5t0EiYCArXVFDtiPHRNkwwSaQPIk6le\r\nCJ536QYMZKXEe6mwLdEwxneDtAGOzJ8TTe8bvnGtIqX6AQ6WoX23shfklNuc\r\neTSkxpWOAI6f2fuaENBp6DvQNwsJZP9IiUzp7qOMLQzIY2cNYgRly0RGnFJ1\r\nQruOsby6/HoQcgFHXkQOujDPMYgtj17OW1/igTBMBm/IYc2eEUOe7XULquF2\r\n6N0PaT+hlDcI4zNQ2TPedErweansjWn6YMizmc2m6OjMcXj4h6x2gZs1DOSQ\r\nDg/i98baWaQE/foW9ZNgNuHKgY/L6u3Kku0gC5jyOCVV8h1k9dTQhASUtUgk\r\nRpE/Q5P1KtGHGlm/5fMCe6m0bxW3DAR8J9yIK0AxnUoWjO12xByKSnou51Hw\r\n7GLMYJcVKIBuvRZhPv/GDoELkPRR9M6UpePCFji59WZMMT+AFEh9hTUtPgh1\r\nt+jBsXeypFeaSfFa5i0hGYPzECmgmI5UFm0=\r\n=jrT3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.10.2_1677844713226_0.47463945022613707"},"_hasShrinkwrap":false},"0.10.3":{"name":"@awahlig/appfairy","version":"0.10.3","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"8a6a3c9c1c9d3f5008fa62c234d3752a5c1d25f9","_id":"@awahlig/appfairy@0.10.3","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-naCDDPr7OYNn9ga+zN+AQszf0e1K80l9KHpyY2l+W8EFgyeTlZBFNmU66tDUqpzAU6Y1+GuxoAJrl+EfSO/4pQ==","shasum":"5ba06bc86821d9c57f2e3e8c89c408a792b46d28","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.10.3.tgz","fileCount":28,"unpackedSize":331041,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8S944+DTt+CfB6YLu3zhDkJws6j1Fa7tvAEambXOtwAiEAsKzEx/SJyasftG6F+qw6K7TTuRldyUeP6yHiR49edQg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAefkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqdtg//Ur8JXwb/fhLbOpB8HuOQFcJ3RlU7xtjgU1QFfAdAOE6XUPnf\r\nz22cfBQyDf4677KbqUDSWrLcpmw8J/Teu/KfOUcYCr8LJKjBe2Zn6+HuX+dU\r\n+vDmGNjZLQxviqQz0d2FHF603hOOTOjv7x1XDoWfHlZEu+iQWA9P55qsyoJ2\r\nJbn0JPYccxEoM9zUtwSoWJmGwH7+eH9VTXG9VQPF3LYplyPl4iCuN4WBr6h5\r\nsix83xtl1vwVL+blHxSWs3c6PFNTL1M+yPhirHPKX8Ac2ejo7/+5eBQARXWR\r\no4fXSAiPqypsMFZsQfuYO8R6XwJ2GG/rrOc6417lpMQrlRd1OOqSkKu9CZeu\r\nANSZIr2fwOiCiYnXWmG03qyzFDHfEmkdygw7w7/xlhTz8TynykYuUBQKgMH4\r\njVDG5uX7J4ifdyOZ94rQCsTichHAWnLz7xCNbz6qKjzIp5SafMu7sp/zMjAC\r\nCmRU44iB7MIFnI19JCOMHf4mXPMHfWMxkMg8oUqMlyI1dY+EgU6GHTjetiTH\r\nW1XgNTJbrAx+f/nj1hkoFz/GlecbW0CBfjotJptPmvlcGyF2wu0zFUSjIyZw\r\nzJ6qFNal+1s+JNs/UVTCZHmWUU9cxJR012Dj9n2UYDpgwTCaYZKtJjdgoR+7\r\nbOb3NNTyV1q+MFaD0XD95rMt4gjcOjlm854=\r\n=lrJU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.10.3_1677846499930_0.8034597212041494"},"_hasShrinkwrap":false},"0.10.4":{"name":"@awahlig/appfairy","version":"0.10.4","description":"A CLI tool to Migrate a Webflow project into a React app","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT","main":"build/appfairy.js","bin":{"appfairy":"appfairy"},"scripts":{"build":"webpack --config webpack_config.js","prepublish":"npm run build","format":"prettier --config .prettierrc 'src/**/*.js' --write"},"dependencies":{"anzip":"^0.2.0","babel-core":"^6.26.3","babel-preset-env":"^1.7.0","base32":"^0.0.7","cheerio":"^1.0.0-rc.2","clean-css":"^4.1.11","execa":"^0.11.0","find-root":"^1.1.0","fs-extra":"^7.0.0","htmltojsx":"^0.3.0","minimist":"^1.2.0","node-fetch":"^2.1.2","resolve":"^1.8.1","root-require":"^0.3.1","semver":"^7.3.8","source-map-support":"^0.5.9","statuses":"^1.5.0","uglify-js":"^3.4.5"},"devDependencies":{"babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-transform-decorators-legacy":"^1.3.5","babel-polyfill":"^6.26.0","babel-preset-es2017":"^6.24.1","babel-preset-stage-2":"^6.24.1","eslint":"^5.1.0","eslint-loader":"^2.1.0","prettier":"^2.8.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-node-externals":"^1.7.2"},"gitHead":"d4d47c7259a2a29745e1568850653ddbfab0d6d5","_id":"@awahlig/appfairy@0.10.4","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-XJgy6nr8vxwOWfDZ/6bJoSXwjcW64GynaP+cXBFIDYwO5agWhWBRRKV0DjuGTTq0+7CrZesIK3IKDwpN89OROw==","shasum":"2ac520d434ef27f05807fcedb1a6ac866747f298","tarball":"https://registry.npmjs.org/@awahlig/appfairy/-/appfairy-0.10.4.tgz","fileCount":28,"unpackedSize":329677,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7yh2c0UpL1QH7CMM1XfDd+xKzCMJZkZ9MfCYll9RfpgIhAJlIGLsJ5RpGSElPxTZSz0fFJ/D0jyFGh6Rh4KC+Yjkx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSthuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRmQ/9GeJmq441fsEJ4RPKotMMHrjgT6U9bgyRwet9z8aKdMHuoVk6\r\nZHu14Lj4MvZITUAH4hljunV4XkRwf+6Diu/IvQUbtf1UzusJV/eemuuiGtTU\r\nVNMQt1J1ZsKn9mcpgXiUvc3Jm4RbYORwncEFo8AJ/dsGvzAXCTuLs+CCTrKz\r\n7cBQ2IPkdqRtIUoiqfE6H5fYPDTAu/adsTQ5g58IFOaBjedPz7nsObU6pVIb\r\nEmo6NEjm0GsiUS2quR/wgABT/jhCECY/nIiM9J0qeYQ8YLez8DqzHAXFGkq8\r\nR1eFvC8bFZ9nj8hW3pIbxIuRef7sSbBEa4NkS9iFrTVvJXlTTTfOScxJHFZ+\r\nrLtTU8muIWkMaGyoZzj1GX7p3zUCt6a4hTnnzsp81fyCYQ6cexkBZ4SfCFBz\r\nbD6RbeaU7QlGNPjVR7Q3xGkdpEKnPK0uCf//8SftMwgJ0cg9g/FcENxv+d9M\r\nL35NahsKFsI7EI40js/O677XQYgpq93B72flhJccBdhf4D9DJ/qLl4wgblw+\r\nk2CQBj01zgfeY+2RBr8jLiesxR7uzfhLr62Ui3pW+/MVE3aSDtCB3Xff9iTR\r\nrSQUBKy/9n8Nqp88ApEkHZOikx4rlDZ7IwVkKMukY72dWuxZzh3+CTyd5G/J\r\ngknLmAJiJgXGW9deynDi0s/ok5fNfa29U6I=\r\n=f206\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"awahlig","email":"arkadiusz@wahlig.eu"},"directories":{},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/appfairy_0.10.4_1682626670608_0.9310090121281773"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-17T18:00:00.952Z","0.8.3":"2022-05-17T18:00:01.205Z","modified":"2023-04-27T20:17:50.973Z","0.8.4":"2022-05-23T13:19:33.714Z","0.8.5-alpha.0":"2022-05-23T20:55:57.105Z","0.8.5-alpha.1":"2022-05-23T21:07:44.878Z","0.8.5-alpha.2":"2022-05-23T21:15:44.826Z","0.8.5-alpha.3":"2022-05-23T21:27:46.269Z","0.8.5-alpha.4":"2022-05-23T21:28:17.729Z","0.8.5-alpha.5":"2022-05-23T21:38:23.241Z","0.8.5-alpha.6":"2022-05-23T21:44:45.440Z","0.8.5-alpha.7":"2022-05-23T22:02:11.828Z","0.8.5-alpha.8":"2022-05-23T22:13:41.432Z","0.8.5":"2022-05-23T22:39:38.716Z","0.8.6-alpha.0":"2022-05-24T00:06:14.708Z","0.8.6":"2022-05-24T00:20:56.888Z","0.8.7-alpha.0":"2022-05-24T19:04:33.909Z","0.8.7-alpha.1":"2022-05-24T19:17:56.159Z","0.8.7-alpha.2":"2022-05-24T19:43:32.307Z","0.8.7-alpha.3":"2022-05-24T20:33:42.003Z","0.8.7":"2022-05-24T21:25:56.963Z","0.8.8-alpha.0":"2022-05-24T22:40:57.320Z","0.8.8":"2022-05-24T22:45:27.027Z","0.8.9-alpha.0":"2022-05-25T12:46:55.996Z","0.8.9-alpha.1":"2022-05-25T12:51:19.473Z","0.8.9":"2022-05-25T12:55:13.048Z","0.8.10-alpha.0":"2022-05-28T00:42:51.220Z","0.8.10":"2022-05-28T00:54:58.224Z","0.8.11":"2022-05-28T01:45:29.959Z","0.8.12":"2022-05-29T15:30:34.217Z","0.8.13":"2022-05-29T15:31:11.094Z","0.8.14":"2022-05-29T20:03:35.986Z","0.8.15":"2022-06-10T10:24:48.126Z","0.8.16":"2022-06-10T11:29:34.828Z","0.8.17-alpha.0":"2022-06-15T15:06:08.881Z","0.8.17":"2022-06-15T15:13:25.867Z","0.8.18":"2022-06-30T13:59:09.259Z","0.8.19":"2022-06-30T14:04:28.510Z","0.8.20":"2022-06-30T14:06:00.163Z","0.8.21":"2022-11-03T11:27:37.063Z","0.9.0":"2022-11-06T20:37:44.341Z","0.9.1":"2022-11-06T21:00:09.596Z","0.9.2":"2022-11-06T22:46:30.876Z","0.9.3":"2022-11-07T01:51:22.425Z","0.9.4":"2022-11-07T04:31:30.946Z","0.9.5":"2022-11-08T18:28:01.088Z","0.9.6":"2022-11-10T07:36:00.879Z","0.9.7":"2022-11-10T09:13:26.778Z","0.9.8":"2022-11-13T12:05:43.594Z","0.9.9":"2022-11-15T22:30:05.147Z","0.9.10":"2022-11-16T16:33:17.543Z","0.9.11":"2022-11-16T17:14:42.619Z","0.9.12":"2022-11-20T10:29:44.071Z","0.9.13":"2022-11-21T11:59:05.895Z","0.9.14":"2022-11-24T08:59:39.436Z","0.9.15":"2022-11-26T20:18:08.655Z","0.9.16":"2022-12-05T17:56:54.540Z","0.9.17":"2023-01-11T23:59:48.782Z","0.9.18":"2023-01-12T01:54:55.629Z","0.9.19":"2023-01-25T15:40:23.159Z","0.9.20":"2023-01-30T21:43:43.603Z","0.9.21":"2023-02-02T09:30:15.979Z","0.9.22":"2023-02-04T12:56:38.160Z","0.9.23":"2023-02-05T22:06:52.403Z","0.10.0":"2023-02-21T21:26:07.127Z","0.10.1":"2023-02-22T16:05:10.148Z","0.10.2":"2023-03-03T11:58:33.406Z","0.10.3":"2023-03-03T12:28:20.116Z","0.10.4":"2023-04-27T20:17:50.842Z"},"maintainers":[{"name":"awahlig","email":"arkadiusz@wahlig.eu"}],"description":"A CLI tool to Migrate a Webflow project into a React app","readme":"Changes made in this fork:\n\n- Takes a zip file as input (no need to unzip manually)\n- Render in multiple stages using React components\n- Flexible view API removing the need for `af-el`\n- More reliable migration files tracking using a state file instead of git directly\n- Support for page folders\n- Support for TypeScript\n- Uses function components instead of class components\n- Encapsulation of CSS disabled by default\n- Bugfixes\n\nThis version is published in the `@awahlig` scope and can be installed using:\n\n    $ npm install @awahlig/appfairy -g\n\nOriginal README.md (outdated):\n\n# Appfairy\n\n<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/7648874/45173702-8e98e700-b23b-11e8-96c7-2426ab03abe0.png\" alt=\"appfairy\"></p>\n\nI'm just tired going through a design and translating it into React components. Appfairy is a CLI tool that does that for you - by running a single command the design will be transpiled into React components. As for now Appfairy works with Webflow only for web React apps, but the near future plans are to have that compatible with Sketch and React Native.\n\n## Methodology\n\nSince machine generated assets aren't very easy to maintain due to their complexity, Appfairy takes on an old school approach where a single component is made out of a view and a controller. The view is automatically generated by Appfairy and shouldn't be changed, we treat it as a black box. The controller however is user defined. Every element within the controller is a proxy to an element within the view.\n\nHere's an example of a possible controller:\n\n```js\nimport { useState } from 'react';\nimport { ConsultFormView, sock } from '../views/ConsultFormView'\n\nconst ConsultFormController = () => {\n  const [name, setName] = useState('')\n  const [phone, setPhone] = useState('')\n  const [email, setEmail] = useState('')\n  const [description, setDescription] = useState('')\n\n  const submit = () => {\n    alert(`\n      ${name}\n      ${phone}\n      ${email}\n      ${description}\n    `)\n  }\n\n  return (\n    <ConsultFormView>\n      <input af-sock={sock.name}\n             onChange={e => setName(e.target.value)} />\n      <input af-sock={sock.phone}\n             onChange={e => setPhone(e.target.value)} />\n      <input af-sock={sock.email}\n             onChange={e => setEmail(e.target.value)} />\n      <input af-sock={sock.description}\n             onChange={e => setDescription(e.target.value)} />\n      <input af-sock={sock.submit}\n             onClick={submit} />\n    </ConsultFormView>\n  )\n}\n\nexport default ConsultFormController\n```\n\nThis way the view can be changed without us worrying about re-binding the event listeners and props.\n\nFor an in-depth explanation regards Appfairy be sure to check-out the following:\n\n- [Medium blog post](https://medium.com/@eytanmanor/how-to-create-a-react-app-out-of-a-webflow-project-309b696a0533) - An introduction to Appfairy and the motives behind it.\n\n- [YouTube video](https://www.youtube.com/watch?v=6hJe6pZld0o) - I walk through Appfairy and an implementation of an example app.\n\n- [Example app](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch) - An example for a simple app which uses Appfairy.\n\n## Docs\n\nAppfairy is a CLI tool that can be installed using NPM:\n\n    $ npm install @awahlig/appfairy -g\n\nAfter exporting your Webflow project into a zip file, simply place it in the root of your project as `webflow.zip` and run `$ appfairy`. After doing so you'll notice that new files have been created in your project and that they have been automatically staged for a git commit. At this point feel free to commit those changes.\n\nThe commit consists of the following files (regardless if they were added, modified or deleted):\n\n- **public/** (public assets which should be served by our app's server)\n\n  - **images/**\n\n  - **fonts/**\n\n  - **css/**\n\n- **src/**\n\n  - **scripts/** (scripts that should be imported in index.js)\n\n  - **styles/** (css files that should be imported in index.js)\n\n  - **views/** (contains ConsultFormView - further explanation below)\n\nThe output can be controlled using a config file named `af_config.js` which should be located in the root of the project. The config file may (or may not) include some of the following options:\n\n- **prefetch (boolean)** - Prefetch the styles and scripts which are necessary for the design to work. If not specified, the scripts and styles will be fetched during runtime. An example app with prefetching enabled can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples/prefetch).\n\n- **encapsulateCSS (boolean)** - Encapsulate all CSS in af-classes. If not specified, CSS will not be encapsulated.\n\n- **source (source)** - Can either be set to `webflow`, `sketch` and represents the studio name that generated the basic CSS and HTML assets. If not set there will be little to no difference in the transpilation process but it will however make the CSS encapsulation more accurate. Examples for Webflow and Sketch apps can be found [here](https://github.com/DAB0mB/Appfairy/tree/master/examples).\n\n- **input (string)** - The input zip file exported from Webflow. Defaults to `webflow.zip` in the root of the project.\n\n- **output (string/object)** - If a string was provided, the output will be mapped to the specified dir. If an object, each key in the object will map its asset type to the specified dir in the value. The object has the following schema:\n\n  - **public (string)** - Public dir. Defaults to `public`.\n\n  - **src (string/object)** - Source dir. If a string is provided, all its content will be mapped to the specified dir, otherwise the mapping will be done according to the following object:\n\n    - **scripts (string)** - Scripts dir. Defaults to `src/scripts`.\n\n    - **styles (string)** - Scripts dir. Defaults to `src/styles`.\n\n    - **views (string)** - Scripts dir. Defaults to `src/views`.\n\nAlternatively, you may provide (extra) options through the command line like the following:\n\n    $ appfairy [...options]\n\nThe CLI tool supports the following options:\n\n- **--clean**\n\n- **--prefetch**\n\n- **--encapsulate-css**\n\n- **--source/--src**\n\n- **--input/--in**\n\n- **--output/--out**\n\n- **--config**\n\nThe behavior of Appfairy will change according to the specified options as detailed above, and the rest is self explanatory.\n\n## LICENSE\n\nMIT\n","readmeFilename":"README.md","homepage":"https://github.com/awahlig/Appfairy#readme","license":"MIT"}