{"_id":"storybook-addon-fetch-mock","_rev":"8-339400c0e12058d913bf7b0d5cbfdb20","name":"storybook-addon-fetch-mock","dist-tags":{"latest":"2.0.1","next":"2.0.0"},"versions":{"1.0.0-beta.1":{"name":"storybook-addon-fetch-mock","version":"1.0.0-beta.1","keywords":["storybook-addons","data-state","fetch","fetch-mock"],"author":{"url":"https://john.albin.net/","name":"John Albin Wilkins","email":"virtually.johnalbin@gmail.com"},"license":"(MIT OR GPL-2.0-only)","_id":"storybook-addon-fetch-mock@1.0.0-beta.1","maintainers":[{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"}],"homepage":"https://github.com/JohnAlbin/storybook-addon-fetch-mock#readme","bugs":{"url":"https://github.com/JohnAlbin/storybook-addon-fetch-mock/issues"},"dist":{"shasum":"50db6c7d4730b3c2debc9a9eaba39c7ca1589eae","tarball":"https://registry.npmjs.org/storybook-addon-fetch-mock/-/storybook-addon-fetch-mock-1.0.0-beta.1.tgz","fileCount":20,"integrity":"sha512-3S5M7XWbNehCdLSC5paHerI7SGjPDTlhewvCuWxRQ7lYjaXeYbi+iLM0OYwEs1yt9IwZODUSfMONRxpDhkAlEw==","signatures":[{"sig":"MEQCIBIRR//lsqhEAgRO7r5GKHGjSp3hFuBcMeOziGS/nd0TAiA5xdstQQNBwuKJ3LSQwEXplM1Im0sC66bpdGB6muMjpA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30063,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixelwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpICQ//cMVKp+iIWaZ3Ym3Ti4V6BhYElNL6TRdX7Fj5HURHUhOh/eRM\r\nRQdu6ZsYVE1GpkUICqi61bdiykw1DDsEpqCljAyBmKn+41+qESUIlmOvR3ZV\r\nTFB+O0s8BZjpkcbUcZ723jmsX+3n/Espk/VzJpO9/5TBZgIYreQQsr8Q9QpY\r\n0xlGC3pN4ACJ9d4klfeT2HEmM4jWmlsBV9sI+KV44ytsM9V055acd0a560n2\r\nBlD7dSx6Pl6JQRhOn1K6kaOb882/7rVPt6FCdeaplv93mF8+DY1bGAmn+s1a\r\ncy11piAAi5cVNJ4eYi4jWqn1+ZW+Zq6wYoPQxc5pgfhv2ItdJWoebJRIRT3o\r\nBl4PDVI2oLb61sKHUfv6PWuOA1M0QxA6J1I573ZF1CMAzN1JxCUnGPXIJp19\r\nwB8ulFqvMgUVV8v/+Ie2OC7oeymeCGWBGbhduey4/AmCwAGV8qZUqKXKCCyS\r\nqrM0bIIbYJaF68YqmOpgAIV/PxppIxTKcgqC3W5QUgnvzxfAQir+M4f6TlQf\r\nQBxPFEt034c/qnXgaB/7Up/gh26GM9JyKzp680KDE4GIvNmTFHgcnwciQdR/\r\nEkWG9yeIG+Q15Ucdg1grjCzAccybiKp2g0gPiYCCCVM5pu9uqbZMHLp5KHdF\r\n+p3lWwrS7knAl/2iizZih0ro3VC7RFIJPmk=\r\n=Pjm3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cjs/index.js","types":"dist/ts/index.d.ts","module":"dist/esm/index.js","gitHead":"c48961a0d0d72b4f9e65c7973c5fe4ddbeb80aa5","scripts":{"lint":"eslint src/","test":"echo \"Error: no test specified\" && exit 1","build":"npm run build:babel && npm run build:tsc","clean":"rimraf ./dist","format":"npm run lint:fix && npm run prettier","ci:lint":"npm run lint && npm run prettier:check","prepare":"npm run build","pretest":"npm run ci:lint","lint:fix":"eslint --fix src/","prebuild":"npm run clean","prettier":"prettier --write \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","build:tsc":"tsc --declaration --emitDeclarationOnly --outDir ./dist/ts","storybook":"start-storybook -p 6006","build:babel":"npm run build:babel:cjs && npm run build:babel:esm","prettier:check":"prettier --check \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","build:babel:cjs":"babel ./src -d ./dist/cjs --extensions \".js,.jsx,.ts,.tsx\"","build:babel:esm":"babel ./src -d ./dist/esm --env-name esm --extensions \".js,.jsx,.ts,.tsx\"","storybook:build":"build-storybook"},"_npmUser":{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"},"storybook":{"icon":"https://raw.githubusercontent.com/JohnAlbin/storybook-addon-fetch-mock/main/storybook-addon-fetch-mock.png","displayName":"Mock fetch()","supportedFrameworks":["react","vue","angular","web-components","ember","html","svelte","preact","react-native"]},"repository":{"url":"git+https://github.com/JohnAlbin/storybook-addon-fetch-mock.git","type":"git"},"_npmVersion":"8.12.1","description":"Adds fetch() mocking to Storybook.js using fetch-mock","directories":{},"_nodeVersion":"18.4.0","dependencies":{"fetch-mock":"^9.11.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","eslint":"^8.19.0","rimraf":"^3.0.2","prettier":"^2.7.1","react-dom":"^18.2.0","@babel/cli":"^7.18.6","typescript":"^4.7.4","@babel/core":"^7.18.6","babel-loader":"^8.2.5","release-please":"^13.19.0","@storybook/react":"^6.5.9","@babel/preset-env":"^7.18.6","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.30.5","@storybook/addon-essentials":"^6.5.9","@storybook/builder-webpack5":"^6.5.9","@storybook/manager-webpack5":"^6.5.9","eslint-plugin-unused-imports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.30.5","eslint-import-resolver-typescript":"^3.2.4"},"peerDependencies":{"@storybook/addons":"^6.5.0 || ^7.0.0"},"peerDependenciesMeta":{"@storybook/addons":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-fetch-mock_1.0.0-beta.1_1657137520046_0.9731037584429909","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"storybook-addon-fetch-mock","version":"1.0.0","keywords":["storybook-addons","data-state","fetch","fetch-mock"],"author":{"url":"https://john.albin.net/","name":"John Albin Wilkins","email":"virtually.johnalbin@gmail.com"},"license":"(MIT OR GPL-2.0-only)","_id":"storybook-addon-fetch-mock@1.0.0","maintainers":[{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"}],"homepage":"https://github.com/JohnAlbin/storybook-addon-fetch-mock#readme","bugs":{"url":"https://github.com/JohnAlbin/storybook-addon-fetch-mock/issues"},"dist":{"shasum":"548e84fbb40f6094865aa5d60076147e46475e9f","tarball":"https://registry.npmjs.org/storybook-addon-fetch-mock/-/storybook-addon-fetch-mock-1.0.0.tgz","fileCount":18,"integrity":"sha512-IgOrBiYdthqWYmzy1Pd/x9mStsmghpVGVFCJKt3no2DMX4cbRoDkM3Hkz7NbEYTMZ6IxJBGDbY9712m/j9VXMQ==","signatures":[{"sig":"MEYCIQDWqX2SAgdX/FMrCZLndsglaWa6SWsf3OYE+CwceGBFPQIhALu1VkF1bMAS954xNb5PkA5kQBANXxqag9Dx0xfPm+U5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixfAjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqfxAAmbLIK5qDnnBCfoPqvGrO6kAp4wk5fY5fcc1ePh3k95LFTMlZ\r\nhbQttapkRCcXa5+jc86sGsfUsZDy/HLjQ9AxQlmbvzISG8tvHdV03TF65fsm\r\nmMJ9Box3+C2fhhHt4BsSXAHcvdF3HLKvKUtUw0GVp6Dyn8/sY44XpbQGC458\r\naDMBEjEhsbhvfYO8G5LrBM1U8Nnd9/+ObYfMLTbgGGrQ5XMvpnDlMtBCObc2\r\nPYPS/yt99wMPjw9HB+8NGxsgwC51+BWYhNyrGmzscL2QfFerV8x2OymL/kdH\r\nobvBHFDDScdSdnAvPwbB8c0qHdJa3w4Z6wSRgk2qRoi9b3TuyGN8XM7F1g5e\r\n8yKYpHcBI3JJ4LLvJK/AipkTsO+0Jb3BPIvluaNg7rtX9mOQjflZ3RLGwtns\r\nwdVO1/uAhBFjN1NoOExt84NGMuKcyHw9RmafyoNsJbuEqpdJ2qKXb0VIuvBo\r\nZnxag0S2F6BEKglkQuCj79WMGPWQK8rnhpQ+oCa8/svIxC9cx7p+E6Jof2d5\r\noqHp9gGrU1SKxEMAS/BaeZNpvZzlaTGwfTBS8+lO8Kek0aeL4WTl7EgXRYbX\r\nhatZ9zIn3xSp/HJa6mvomSmRJXmQDnN4LDM6gwZG5BVjs1ahGYEdWSkM5hVc\r\nIDMrCfhgEEhXkD/USgdaAHrtLgo1mmBOBHQ=\r\n=jwku\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cjs/index.js","types":"dist/ts/index.d.ts","module":"dist/esm/index.js","gitHead":"22f75f667f610eef5771faa4be5a3fc740988837","scripts":{"lint":"eslint src/","test":"echo \"Error: no test specified\" && exit 1","build":"npm run build:babel && npm run build:tsc","clean":"rimraf ./dist","format":"npm run lint:fix && npm run prettier","ci:lint":"npm run lint && npm run prettier:check","prepare":"npm run build","pretest":"npm run ci:lint","lint:fix":"eslint --fix src/","prebuild":"npm run clean","prettier":"prettier --write \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","build:tsc":"tsc --declaration --emitDeclarationOnly --outDir ./dist/ts","storybook":"start-storybook -p 6006","build:babel":"npm run build:babel:cjs && npm run build:babel:esm","prettier:check":"prettier --check \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","build:babel:cjs":"babel ./src -d ./dist/cjs --extensions \".js,.jsx,.ts,.tsx\"","build:babel:esm":"babel ./src -d ./dist/esm --env-name esm --extensions \".js,.jsx,.ts,.tsx\"","storybook:build":"build-storybook"},"_npmUser":{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"},"storybook":{"icon":"https://raw.githubusercontent.com/JohnAlbin/storybook-addon-fetch-mock/main/storybook-addon-fetch-mock.png","displayName":"Mock fetch()","supportedFrameworks":["react","vue","angular","web-components","ember","html","svelte","preact","react-native"]},"repository":{"url":"git+https://github.com/JohnAlbin/storybook-addon-fetch-mock.git","type":"git"},"_npmVersion":"8.12.1","description":"Adds fetch() mocking to Storybook.js using fetch-mock","directories":{},"_nodeVersion":"18.4.0","dependencies":{"fetch-mock":"^9.11.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","eslint":"^8.19.0","rimraf":"^3.0.2","prettier":"^2.7.1","react-dom":"^18.2.0","@babel/cli":"^7.18.6","typescript":"^4.7.4","@babel/core":"^7.18.6","babel-loader":"^8.2.5","release-please":"^13.19.0","@storybook/react":"^6.5.9","@babel/preset-env":"^7.18.6","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.30.5","@storybook/addon-essentials":"^6.5.9","@storybook/builder-webpack5":"^6.5.9","@storybook/manager-webpack5":"^6.5.9","eslint-plugin-unused-imports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.30.5","eslint-import-resolver-typescript":"^3.2.4"},"peerDependencies":{"@storybook/addons":"^6.5.0 || ^7.0.0"},"peerDependenciesMeta":{"@storybook/addons":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-fetch-mock_1.0.0_1657139235409_0.6789483808446692","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"storybook-addon-fetch-mock","version":"1.0.1","keywords":["storybook-addons","data-state","fetch","fetch-mock"],"author":{"url":"https://john.albin.net/","name":"John Albin Wilkins","email":"virtually.johnalbin@gmail.com"},"license":"(MIT OR GPL-2.0-only)","_id":"storybook-addon-fetch-mock@1.0.1","maintainers":[{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"}],"homepage":"https://github.com/JohnAlbin/storybook-addon-fetch-mock#readme","bugs":{"url":"https://github.com/JohnAlbin/storybook-addon-fetch-mock/issues"},"dist":{"shasum":"ed92074f9d792cff3b5781d8f37fb55aadda66c5","tarball":"https://registry.npmjs.org/storybook-addon-fetch-mock/-/storybook-addon-fetch-mock-1.0.1.tgz","fileCount":18,"integrity":"sha512-OrK9NzZkjhv5C+Nx7fgDIlg4UmDUp6W+HHSD0STJtxC9DxC2dumDY+tUAoc0DDgkchLK/qugKp5f07bfcY37aQ==","signatures":[{"sig":"MEQCID+e1MdpN8psI7bv82/L+TeFbMjd5Vcglkuvq7L21ULTAiAPBs8BrjBaPSvoYbrAkPLG2qdJlZ9Tsun9OvBRtW2hmg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi0FuzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxfRAAiq8gtL1yFNFktJajw8Pia825CouMm9Kr0ABf0QlNYTXDSF6J\r\nwaT6eLllg1Z8JbVk8irYHBejh8RYeKDVRMpzAHY6hwee/+bE4g37VStq/yBC\r\n14luCmkmuHULyR+hEZN+2qb32IMoI5ssGvLXe3QUMTcHYx7BTPAAvRxZ0tY1\r\n3njLcpGcK4PAbDl4AXaC97Nt5JwtOGbu0BmqF7A0fcXXgRlmlxmC3xE/VXf5\r\n5RwdjjrmWJGFCfz5RLgCZkO1qr3VB8xoGIZZCdCJPzVFumIyEfFp2a/o3van\r\nVB6czT+ujx8eRXvG3tff9wCFCaNL2Lu6F0QE8TWxUf4/9G4wXtX9rLH8bmEf\r\nssouCaqai6kO1A2Ymxmso+SnQsec7zDGqlYFfMs5XbBiXyfm6ls+VApjICpU\r\nSRdBJMnio9k7CTrsVXEoYN9MLMXDEXscE8b1cyDHgoWRy1c2b95IRXGkmcvJ\r\nvcgDjAdv/kXCeo+Sk2KxzIAAEMDxbiIvsIYOja2LXu6bTgOWVEyC2hfvpCky\r\njApmnngRJiTYhxR551NF6BGMwPQuItlD+qkKBcjxQt2YYmHxVpjIwDXfOSGH\r\nA4mTeBIooMHzBVywls+PgxCjN9nOZgsoWz7nY6ia9xL++anfD76MA85uuKSP\r\nIs54SBGavt+o9H4BXsjFXWEzej11RS3rvWw=\r\n=yvov\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cjs/index.js","types":"dist/ts/index.d.ts","module":"dist/esm/index.js","gitHead":"03c9f87aee2e17d0242fddafae0fbce163048a8e","scripts":{"lint":"eslint src/","test":"echo \"Error: no test specified\" && exit 1","build":"npm run build:babel && npm run build:tsc","clean":"rimraf ./dist","format":"npm run lint:fix && npm run prettier","ci:lint":"npm run lint && npm run prettier:check","prepare":"npm run build","pretest":"npm run ci:lint","lint:fix":"eslint --fix src/","prebuild":"npm run clean","prettier":"prettier --write \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","build:tsc":"tsc --declaration --emitDeclarationOnly --outDir ./dist/ts","storybook":"start-storybook -p 6006","build:babel":"npm run build:babel:cjs && npm run build:babel:esm","prettier:check":"prettier --check \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","build:babel:cjs":"babel ./src -d ./dist/cjs --extensions \".js,.jsx,.ts,.tsx\"","build:babel:esm":"babel ./src -d ./dist/esm --env-name esm --extensions \".js,.jsx,.ts,.tsx\"","storybook:build":"build-storybook"},"_npmUser":{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"},"storybook":{"icon":"https://raw.githubusercontent.com/JohnAlbin/storybook-addon-fetch-mock/main/storybook-addon-fetch-mock.png","displayName":"Mock fetch()","supportedFrameworks":["react","vue","angular","web-components","ember","html","svelte","preact","react-native"]},"repository":{"url":"git+https://github.com/JohnAlbin/storybook-addon-fetch-mock.git","type":"git"},"_npmVersion":"8.12.1","description":"Adds fetch() mocking to Storybook.js using fetch-mock","directories":{},"_nodeVersion":"18.4.0","dependencies":{"fetch-mock":"^9.11.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","eslint":"^8.19.0","rimraf":"^3.0.2","prettier":"^2.7.1","react-dom":"^18.2.0","@babel/cli":"^7.18.6","typescript":"^4.7.4","@babel/core":"^7.18.6","babel-loader":"^8.2.5","release-please":"^13.19.0","@storybook/react":"^6.5.9","@babel/preset-env":"^7.18.6","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.30.5","@storybook/addon-essentials":"^6.5.9","@storybook/builder-webpack5":"^6.5.9","@storybook/manager-webpack5":"^6.5.9","eslint-plugin-unused-imports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.30.5","eslint-import-resolver-typescript":"^3.2.4"},"peerDependencies":{"@storybook/addons":"^6.5.0 || ^7.0.0"},"peerDependenciesMeta":{"@storybook/addons":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-fetch-mock_1.0.1_1657822131496_0.5874546486384196","host":"s3://npm-registry-packages"}},"2.0.0-beta.1":{"name":"storybook-addon-fetch-mock","version":"2.0.0-beta.1","keywords":["storybook-addons","data-state","fetch","fetch-mock"],"author":{"url":"https://john.albin.net/","name":"John Albin Wilkins","email":"virtually.johnalbin@gmail.com"},"license":"(MIT OR GPL-2.0-only)","_id":"storybook-addon-fetch-mock@2.0.0-beta.1","maintainers":[{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"}],"homepage":"https://github.com/JohnAlbin/storybook-addon-fetch-mock#readme","bugs":{"url":"https://github.com/JohnAlbin/storybook-addon-fetch-mock/issues"},"dist":{"shasum":"28f427da36426734956d68197855c3dec37842e8","tarball":"https://registry.npmjs.org/storybook-addon-fetch-mock/-/storybook-addon-fetch-mock-2.0.0-beta.1.tgz","fileCount":20,"integrity":"sha512-OKITaQpAJFzQ4c2goe4t4+w16eYSqgc11ktRy0VNu1NVdb/D0CBDzGoxKJXV8sN+BSKBoMqx3QxNzAOZmhhrpQ==","signatures":[{"sig":"MEYCIQC9a97OSRYEY3ilU3ThM1fvaK/haSsk8Y52Hxl6k+w3JQIhAP6tUo5+FKOwBbOA3PYJmxsgzojX44Iuv9//XmTyjvYC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31400},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./preview":{"import":{"types":"./dist/preview.d.ts","defualt":"./dist/preview.js"},"require":{"types":"./dist/preview.d.cts","default":"./dist/preview.cjs"}},"./package.json":"./package.json"},"gitHead":"4953dfe9edfff59bca4cd46aac2ef08bb515d913","scripts":{"lint":"eslint src/","test":"echo \"Error: no test specified\" && exit 1","build":"tsup","format":"npm run lint:fix && npm run prettier","ci:lint":"npm run lint && npm run prettier:check","prepare":"npm run build","pretest":"npm run ci:lint","lint:fix":"eslint --fix src/","prettier":"prettier --write \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","storybook":"start-storybook -p 6006","build:watch":"npm run build --watch","prettier:check":"prettier --check \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","storybook:build":"build-storybook"},"_npmUser":{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"},"storybook":{"icon":"https://raw.githubusercontent.com/JohnAlbin/storybook-addon-fetch-mock/main/storybook-addon-fetch-mock.png","displayName":"Mock fetch()","supportedFrameworks":["react","vue","angular","web-components","ember","html","svelte","preact","react-native"]},"repository":{"url":"git+https://github.com/JohnAlbin/storybook-addon-fetch-mock.git","type":"git"},"_npmVersion":"10.1.0","description":"Adds fetch() mocking to Storybook.js using fetch-mock","directories":{},"_nodeVersion":"20.9.0","dependencies":{"fetch-mock":"^9.11.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","react":"^18.2.0","eslint":"^8.53.0","prettier":"^3.1.0","react-dom":"^18.2.0","typescript":"^5.2.2","release-please":"^16.2.0","@storybook/react":"^7.5.3","eslint-plugin-import":"^2.29.0","@storybook/preview-api":"^7.5.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.10.0","eslint-plugin-unused-imports":"^3.0.0","@typescript-eslint/eslint-plugin":"^6.10.0","eslint-import-resolver-typescript":"^3.6.1"},"peerDependencies":{"@storybook/preview-api":"^7.0.0 || next"},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-fetch-mock_2.0.0-beta.1_1699899971467_0.6459818747259809","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"storybook-addon-fetch-mock","version":"2.0.0","keywords":["storybook-addons","data-state","fetch","fetch-mock"],"author":{"url":"https://john.albin.net/","name":"John Albin Wilkins","email":"virtually.johnalbin@gmail.com"},"license":"(MIT OR GPL-2.0-only)","_id":"storybook-addon-fetch-mock@2.0.0","maintainers":[{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"}],"homepage":"https://github.com/JohnAlbin/storybook-addon-fetch-mock#readme","bugs":{"url":"https://github.com/JohnAlbin/storybook-addon-fetch-mock/issues"},"dist":{"shasum":"4a5f470a57cf9b801fc37be30059a63007f01ce3","tarball":"https://registry.npmjs.org/storybook-addon-fetch-mock/-/storybook-addon-fetch-mock-2.0.0.tgz","fileCount":20,"integrity":"sha512-G7DQUdZVLwe3aDksRL4+goWbnRXGTEPWanQgcmQ6O3TNq3jhZ/ivba/Kf2PaN5u+5rfncw1XdMCykjL7guss9g==","signatures":[{"sig":"MEQCIFTzlXp4c5Pd7rdfYJpU8lIKYfqJl0DF+7TdDR71sGTiAiBtfR0Y43JgiYZwagqEAQMgvBus+1Y7HaNqliBZAohWPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31153},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./preview":{"import":{"types":"./dist/preview.d.ts","default":"./dist/preview.js"},"require":{"types":"./dist/preview.d.cts","default":"./dist/preview.cjs"}},"./package.json":"./package.json"},"gitHead":"2f352571cf9a9301a84ea96a243816c48ae3d17d","scripts":{"lint":"eslint src/","test":"echo \"Error: no test specified\" && exit 1","build":"tsup","format":"npm run lint:fix && npm run prettier","ci:lint":"npm run lint && npm run prettier:check","prepare":"npm run build","pretest":"npm run ci:lint","lint:fix":"eslint --fix src/","prettier":"prettier --write \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","storybook":"start-storybook -p 6006","build:watch":"npm run build --watch","prettier:check":"prettier --check \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","storybook:build":"build-storybook"},"_npmUser":{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"},"storybook":{"icon":"https://raw.githubusercontent.com/JohnAlbin/storybook-addon-fetch-mock/main/storybook-addon-fetch-mock.png","displayName":"Mock fetch()","supportedFrameworks":["react","vue","angular","web-components","ember","html","svelte","preact","react-native"]},"repository":{"url":"git+https://github.com/JohnAlbin/storybook-addon-fetch-mock.git","type":"git"},"_npmVersion":"10.2.4","description":"Adds fetch() mocking to Storybook.js using fetch-mock","directories":{},"_nodeVersion":"20.11.1","dependencies":{"fetch-mock":"^9.11.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.3.0","react":"^18.2.0","eslint":"^8.57.0","prettier":"^3.2.5","react-dom":"^18.2.0","typescript":"^5.4.2","release-please":"^16.10.1","@storybook/react":"^8.0.0","eslint-plugin-import":"^2.29.1","@storybook/preview-api":"^8.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.2.0","eslint-plugin-unused-imports":"^3.1.0","@typescript-eslint/eslint-plugin":"^7.2.0","eslint-import-resolver-typescript":"^3.6.1"},"peerDependencies":{"@storybook/preview-api":"^7.0.0 || 8.0.0 || next"},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-fetch-mock_2.0.0_1710398762317_0.27287390442184556","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"storybook-addon-fetch-mock","version":"2.0.1","description":"Adds fetch() mocking to Storybook.js using fetch-mock","author":{"name":"John Albin Wilkins","email":"virtually.johnalbin@gmail.com","url":"https://john.albin.net/"},"homepage":"https://github.com/JohnAlbin/storybook-addon-fetch-mock#readme","bugs":{"url":"https://github.com/JohnAlbin/storybook-addon-fetch-mock/issues"},"repository":{"type":"git","url":"git+https://github.com/JohnAlbin/storybook-addon-fetch-mock.git"},"license":"(MIT OR GPL-2.0-only)","keywords":["storybook-addons","data-state","fetch","fetch-mock"],"type":"module","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./preview":{"import":{"types":"./dist/preview.d.ts","default":"./dist/preview.js"},"require":{"types":"./dist/preview.d.cts","default":"./dist/preview.cjs"}},"./package.json":"./package.json"},"scripts":{"build":"tsup","build:watch":"npm run build --watch","prepare":"npm run build","lint":"eslint src/","lint:fix":"eslint --fix src/","prettier":"prettier --write \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","prettier:check":"prettier --check \"{.*/**/*,*,**/*}.{js,jsx,ts,tsx,json,md,yml,css,scss}\"","format":"npm run lint:fix && npm run prettier","ci:lint":"npm run lint && npm run prettier:check","pretest":"npm run ci:lint","test":"echo \"Error: no test specified\" && exit 1","storybook":"start-storybook -p 6006","storybook:build":"build-storybook"},"dependencies":{"fetch-mock":"^9.11.0"},"peerDependencies":{"@storybook/preview-api":"^7.0.0 || ^8.0.0 || next"},"devDependencies":{"@storybook/preview-api":"^8.0.0","@storybook/react":"^8.0.0","@typescript-eslint/eslint-plugin":"^7.2.0","@typescript-eslint/parser":"^7.2.0","eslint":"^8.57.0","eslint-config-prettier":"^9.1.0","eslint-import-resolver-typescript":"^3.6.1","eslint-plugin-import":"^2.29.1","eslint-plugin-prettier":"^5.1.3","eslint-plugin-unused-imports":"^3.1.0","prettier":"^3.2.5","react":"^18.2.0","react-dom":"^18.2.0","release-please":"^16.10.1","tsup":"^7.3.0","typescript":"^5.4.2"},"storybook":{"displayName":"Mock fetch()","supportedFrameworks":["react","vue","angular","web-components","ember","html","svelte","preact","react-native"],"icon":"https://raw.githubusercontent.com/JohnAlbin/storybook-addon-fetch-mock/main/storybook-addon-fetch-mock.png"},"_id":"storybook-addon-fetch-mock@2.0.1","gitHead":"a9367b1b096c6ffb08fb2e9947deef2f34f15ad3","_nodeVersion":"20.15.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-s9fVg8sv03tHU8jeidruI9fzt8LPYfo27mAYKCEoXsBzVK8KA4XTyHOVLkYXIRs9Y6QGOAvksBfZR3PmAqwvYg==","shasum":"40a5d3e9ae53f2910f04a84ba8322de8f9bd1446","tarball":"https://registry.npmjs.org/storybook-addon-fetch-mock/-/storybook-addon-fetch-mock-2.0.1.tgz","fileCount":20,"unpackedSize":31144,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSRjL/kKWNCzromyVc+3tkRecJnOs2+BNakEzyyEZqWAIgAdC1B9iGVMXPLShVU1qKFuv3wcFhdip6nvKaHNQtQXA="}]},"_npmUser":{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"},"directories":{},"maintainers":[{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/storybook-addon-fetch-mock_2.0.1_1721748381206_0.573043607882002"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-06T19:58:40.044Z","modified":"2024-07-23T15:26:21.619Z","1.0.0-beta.1":"2022-07-06T19:58:40.257Z","1.0.0":"2022-07-06T20:27:15.643Z","1.0.1":"2022-07-14T18:08:51.692Z","2.0.0-beta.1":"2023-11-13T18:26:11.723Z","2.0.0":"2024-03-14T06:46:02.516Z","2.0.1":"2024-07-23T15:26:21.468Z"},"bugs":{"url":"https://github.com/JohnAlbin/storybook-addon-fetch-mock/issues"},"author":{"name":"John Albin Wilkins","email":"virtually.johnalbin@gmail.com","url":"https://john.albin.net/"},"license":"(MIT OR GPL-2.0-only)","homepage":"https://github.com/JohnAlbin/storybook-addon-fetch-mock#readme","keywords":["storybook-addons","data-state","fetch","fetch-mock"],"repository":{"type":"git","url":"git+https://github.com/JohnAlbin/storybook-addon-fetch-mock.git"},"description":"Adds fetch() mocking to Storybook.js using fetch-mock","maintainers":[{"name":"johnalbin","email":"virtually.johnalbin@gmail.com"}],"readme":"<div align=\"center\">\n<img src=\"https://raw.githubusercontent.com/JohnAlbin/storybook-addon-fetch-mock/main/storybook-addon-fetch-mock.svg\" width=\"382\" height=\"250\" alt=\"Project icon has pink arrows going between Storybook and fetch-mock\" />\n</div>\n\n# storybook-addon-fetch-mock\n\nThis [Storybook.js](https://storybook.js.org/) addon adds `fetch()` mocking using [`fetch-mock`](http://www.wheresrhys.co.uk/fetch-mock/).\n\n[![Node.js CI Status](https://github.com/JohnAlbin/storybook-addon-fetch-mock/actions/workflows/node.js.yml/badge.svg)](https://github.com/JohnAlbin/storybook-addon-fetch-mock/actions/workflows/node.js.yml)\n\n## Why use storybook-addon-fetch-mock?\n\nIf you are already using [Storybook.js](https://storybook.js.org/), you may have components that call API endpoints. And to ensure your component Storybook documentation isn’t dependent on those API endpoints being available, you’ll want to mock any calls to those API endpoints. This is doubly true if any of your components alter data on the endpoint.\n\nFortunately, the Storybook ecosystem has many addons to make mocking Fetch APIs easier. Any of these addons will allow you to intercept the real API calls in your components and return any mocked data response you’d like.\n\n| Storybook Addon                                                                   | full Fetch mocking | Mock functions  |  Mock objects   |\n| --------------------------------------------------------------------------------- | :----------------: | :-------------: | :-------------: |\n| [Mock Service Worker addon](https://storybook.js.org/addons/msw-storybook-addon/) |         ✅         | ✅ <sup>2</sup> |       ❌        |\n| [Mock API Request addon](https://storybook.js.org/addons/storybook-addon-mock/)   |  ❌ <sup>1</sup>   |       ✅        |       ✅        |\n| storybook-addon-fetch-mock                                                        |         ✅         |       ✅        | ✅ <sup>3</sup> |\n\n**<sup>1</sup>** If you use XMLHttpRequest (XHR), the Mock API Request addon will serve you well, but we don’t recommend it for Fetch API mocking. Its capabilities are very basic and some Fetch API requests cannot be mocked with this addon.\n\n**<sup>2</sup>** If you are wanting to mock a Fetch API that you are writing, writing mock resolver functions with the Mock Service Worker addon might be the easiest method.\n\n**<sup>3</sup>** If you are wanting to mock a Fetch API that you _aren’t_ writing, writing simple JavaScript objects might be the easiest method of mocking. This project, storybook-addon-fetch-mock, is a light wrapper around the [`fetch-mock`](http://www.wheresrhys.co.uk/fetch-mock/) library, a well-maintained, highly-configurable mocking library available since 2015. It allows you to write mocks as simple JavaScript objects, as resolver functions, or a combination of the two.\n\n## A quick example\n\nImagine a `UnicornSearch` component that uses `fetch()` to call an endpoint to search for a list of unicorns. You can use the `storybook-addon-fetch-mock` to bypass the actual API endpoint and return a mocked response. After following the “Installation” instructions below, you could configure `UnicornSearch.stories.js` like this:\n\n```js\nimport UnicornSearch from './UnicornSearch';\n\nexport default {\n  title: 'Unicorn Search',\n  component: UnicornSearch,\n};\n\n// We define the story here using CSF 3.0.\nexport const ShowMeTheUnicorns = {\n  args: {\n    search: '',\n  },\n  parameters: {\n    fetchMock: {\n      // \"fetchMock.mocks\" is a list of mocked\n      // API endpoints.\n      mocks: [\n        {\n          // The \"matcher\" determines if this\n          // mock should respond to the current\n          // call to fetch().\n          matcher: {\n            name: 'searchSuccess',\n            url: 'path:/unicorn/list',\n            query: {\n              search: 'Charlie',\n            },\n          },\n          // If the \"matcher\" matches the current\n          // fetch() call, the fetch response is\n          // built using this \"response\".\n          response: {\n            status: 200,\n            body: {\n              count: 1,\n              unicorns: [\n                {\n                  name: 'Charlie',\n                  location: 'magical Candy Mountain',\n                },\n              ],\n            },\n          },\n        },\n        {\n          matcher: {\n            name: 'searchFail',\n            url: 'path:/unicorn/list',\n          },\n          response: {\n            status: 200,\n            body: {\n              count: 0,\n              unicorns: [],\n            },\n          },\n        },\n      ],\n    },\n  },\n};\n```\n\nIf we open the “Show Me The Unicorns” story in Storybook, we can fill out the “search” field with “Charlie” and, assuming `UnicornSearch` calls `fetch()` to `https://example.com/unicorn/list?search=charlie`, our Storybook addon will compare each mock in `parameters.fetchMock.mocks` until it finds a match and will return the first mock’s response.\n\nIf we fill out the “search” field with a different value, our Storybook addon will return the second mock’s response.\n\n## Installation\n\n1. Install the addon as a dev dependency:\n\n   ```shell\n   npm i -D storybook-addon-fetch-mock\n   ```\n\n2. Register the Storybook addon by adding its name to the addons array in `.storybook/main.js`:\n\n   ```js\n   module.exports = {\n     addons: ['storybook-addon-fetch-mock'],\n   };\n   ```\n\n3. Optionally, configure the addon by adding a `fetchMock` entry to the `parameters` object in `.storybook/preview.js`. See the “Configure global parameters for all stories” section below for details.\n\n4. Add mock data to your stories. See the “Configure mock data” section below for details.\n\n## Configure mock data\n\nTo intercept the `fetch` calls to your API endpoints, add a `parameters.fetchMock.mocks` array containing one or more endpoint mocks.\n\n### Where do the parameters go?\n\nIf you place the `parameters.fetchMock.mocks` array inside a single story’s export, the mocks will apply to just that story:\n\n```js\nexport const MyStory = {\n  parameters: {\n    fetchMock: {\n      mocks: [\n        // ...mocks go here\n      ],\n    },\n  },\n};\n```\n\nIf you place the `parameters.fetchMock.mocks` array inside a Storybook file’s `default` export, the mocks will apply to all stories in that file. But, if you need to, you can still override the mocks per story.\n\n```js\nexport default {\n  title: 'Components/Unicorn Search',\n  component: UnicornSearch,\n  parameters: {\n    fetchMock: {\n      mocks: [\n        // ...mocks go here\n      ],\n    },\n  },\n};\n```\n\nYou can also place the `parameters.fetchMock.mocks` array inside Storybook’s `preview.js` configuration file, but that isn’t recommended. For better alternatives, see the “Configure global parameters for all stories” section below.\n\n### The `parameters.fetchMock.mocks` array\n\nWhen a call to `fetch()` is made, each mock in the `parameters.fetchMock.mocks` array is compared to the `fetch()` request until a match is found.\n\nEach mock should be an object containing the following possible keys:\n\n- `matcher` (required): Each mock’s `matcher` object has one or more criteria that is used to match. If multiple criteria are included in the `matcher` all of the criteria must match in order for the mock to be used.\n- `response` (optional): Once the match is made, the matched mock’s `response` is used to configure the `fetch()` response.\n  - If the mock does not specify a `response`, the `fetch()` response will use an HTTP 200 status with no body data.\n  - If the `response` is an object, those values are used to create the `fetch()` response.\n  - If the `response` is a function, the function should return an object whose values are used to create the `fetch()` response.\n- `options` (optional): Further options for configuring mocking behaviour.\n\nHere’s the full list of possible keys for `matcher`, `response`, and `options`:\n\n```js\nconst exampleMock = {\n  // Criteria for deciding which requests should match this\n  // mock. If multiple criteria are included, all of the\n  // criteria must match in order for the mock to be used.\n  matcher: {\n    // Match only requests where the endpoint \"url\" is matched\n    // using any one of these formats:\n    // - \"url\" - Match an exact url.\n    //     e.g. \"http://www.site.com/page.html\"\n    // - \"*\" - Match any url\n    // - \"begin:...\" - Match a url beginning with a string,\n    //     e.g. \"begin:http://www.site.com\"\n    // - \"end:...\" - Match a url ending with a string\n    //     e.g. \"end:.jpg\"\n    // - \"path:...\" - Match a url which has a given path\n    //     e.g. \"path:/posts/2018/7/3\"\n    // - \"glob:...\" - Match a url using a glob pattern\n    //     e.g. \"glob:http://*.*\"\n    // - \"express:...\" - Match a url that satisfies an express\n    //     style path. e.g. \"express:/user/:user\"\n    // - RegExp - Match a url that satisfies a regular\n    //     expression. e.g. /(article|post)\\/\\d+/\n    url: 'https://example.com/endpoint/search',\n\n    // If you have multiple mocks that use the same \"url\",\n    // a unique \"name\" is required.\n    name: 'searchSuccess',\n\n    // Match only requests using this HTTP method. Not\n    // case-sensitive.\n    method: 'POST',\n\n    // Match only requests that have these headers set.\n    headers: {\n      Authorization: 'Basic 123',\n    },\n\n    // Match only requests that send a JSON body with the\n    // exact structure and properties as the one provided.\n    // See matcher.matchPartialBody below to override this.\n    body: {\n      unicornName: 'Charlie',\n    },\n\n    // Match calls that only partially match the specified\n    // matcher.body JSON.\n    matchPartialBody: true,\n\n    // Match only requests that have these query parameters\n    // set (in any order).\n    query: {\n      q: 'cute+kittenz',\n    },\n\n    // When the express: keyword is used in the \"url\"\n    // matcher, match only requests with these express\n    // parameters.\n    params: {\n      user: 'charlie',\n    },\n\n    // Match if the function returns something truthy. The\n    // function will be passed the url and options fetch was\n    // called with. If fetch was called with a Request\n    // instance, it will be passed url and options inferred\n    // from the Request instance, with the original Request\n    // will be passed as a third argument.\n    functionMatcher: (url, options, request) => {\n      return !!options.headers.Authorization;\n    },\n\n    // Limits the number of times the mock can be matched.\n    // If the mock has already been used \"repeat\" times,\n    // the call to fetch() will fall through to be handled\n    // by any other mocks.\n    repeat: 1,\n  },\n\n  // Configures the HTTP response returned by the mock.\n  response: {\n    // The mock response’s \"statusText\" is automatically set\n    // based on this \"status\" number. Defaults to 200.\n    status: 200,\n\n    // By default, the optional \"body\" object will be converted\n    // into a JSON string. See options.sendAsJson to override.\n    body: {\n      unicorns: true,\n    },\n\n    // Set the mock response’s headers.\n    headers: {\n      'Content-Type': 'text/html',\n    },\n\n    // The url from which the mocked response should claim\n    // to originate from (to imitate followed directs).\n    // Will also set `redirected: true` on the response.\n    redirectUrl: 'https://example.com/search',\n\n    // Force fetch to return a Promise rejected with the\n    // value of \"throws\".\n    throws: new TypeError('Failed to fetch'),\n  },\n\n  // Alternatively, the `response` can be a function that\n  // returns an object with any of the keys above. The\n  // function will be passed the url and options fetch was\n  // called with. If fetch was called with a Request\n  // instance, it will be passed url and options inferred\n  // from the Request instance, with the original Request\n  // will be passed as a third argument.\n  response: (url, options, request) => {\n    return {\n      status: options.headers.Authorization ? 200 : 403,\n    };\n  },\n\n  // An object containing further options for configuring\n  // mocking behaviour.\n  options: {\n    // If set, the mocked response is delayed for the\n    // specified number of milliseconds.\n    delay: 500,\n\n    // By default, the \"body\" object is converted to a JSON\n    // string and the \"Content-Type: application/json\"\n    // header will be set on the mock response. If this\n    // option is set to false, the \"body\" object can be any\n    // of the other types that fetch() supports, e.g. Blob,\n    // ArrayBuffer, TypedArray, DataView, FormData,\n    // URLSearchParams, string or ReadableStream.\n    sendAsJson: false,\n\n    // By default, a Content-Length header is set on each\n    // mock response. This can be disabled when this option\n    // is set to false.\n    includeContentLength: false,\n  },\n};\n```\n\n## Configure global parameters for all stories\n\nThe following options are designed to be used in Storybook’s `preview.js` config file.\n\n```js\n// .storybook/preview.js\nexport const parameters = {\n  fetchMock: {\n    // When the story is reloaded (or you navigate to a new\n    // story, this addon will be reset and a list of\n    // previous mock matches will be sent to the browser’s\n    // console if \"debug\" is true.\n    debug: true,\n\n    // Do any additional configuration of fetch-mock, e.g.\n    // setting fetchMock.config or calling other fetch-mock\n    // API methods. This function is given the fetchMock\n    // instance as its only parameter and is called after\n    // mocks are added but before catchAllMocks are added.\n    useFetchMock: (fetchMock) => {\n      fetchMock.config.overwriteRoutes = false;\n    },\n\n    // After each story’s `mocks` are added, these catch-all\n    // mocks are added.\n    catchAllMocks: [\n      { matcher: { url: 'path:/endpoint1' }, response: 200 },\n      { matcher: { url: 'path:/endpoint2' }, response: 200 },\n    ],\n\n    // A simple list of URLs to ensure that calls to\n    // `fetch( [url] )` don’t go to the network. The mocked\n    // fetch response will use HTTP status 404 to make it\n    // easy to determine one of the catchAllURLs was matched.\n    // These mocks are added after any catchAllMocks.\n    catchAllURLs: [\n      // This is equivalent to the mock object:\n      // {\n      //   matcher: { url: 'begin:http://example.com/' },\n      //   response: { status: 404 },\n      // }\n      'http://example.com/',\n    ],\n  },\n};\n```\n","readmeFilename":"README.md"}