{"id":13468597,"url":"https://github.com/jamesplease/redux-resource","last_synced_at":"2025-10-08T11:45:24.351Z","repository":{"id":48437077,"uuid":"94016412","full_name":"jamesplease/redux-resource","owner":"jamesplease","description":"3kb resource management for Redux","archived":false,"fork":false,"pushed_at":"2021-03-16T21:59:30.000Z","size":2359,"stargazers_count":234,"open_issues_count":12,"forks_count":28,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-15T00:54:30.761Z","etag":null,"topics":["database","redux","resources"],"latest_commit_sha":null,"homepage":"https://redux-resource.js.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamesplease.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-11T16:14:04.000Z","updated_at":"2025-07-10T15:01:48.000Z","dependencies_parsed_at":"2022-08-22T06:30:50.621Z","dependency_job_id":null,"html_url":"https://github.com/jamesplease/redux-resource","commit_stats":null,"previous_names":["jmeas/resourceful-redux","jmeas/redux-resource"],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/jamesplease/redux-resource","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesplease%2Fredux-resource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesplease%2Fredux-resource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesplease%2Fredux-resource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesplease%2Fredux-resource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamesplease","download_url":"https://codeload.github.com/jamesplease/redux-resource/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesplease%2Fredux-resource/sbom","scorecard":{"id":504148,"data":{"date":"2025-08-11","repo":{"name":"github.com/jamesplease/redux-resource","commit":"5894ec8e4f99f7972443a3fa0b2331e4044bee75"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":7,"reason":"Found 15/19 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T22:51:48.723Z","repository_id":48437077,"created_at":"2025-08-19T22:51:48.723Z","updated_at":"2025-08-19T22:51:48.723Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277510823,"owners_count":25830554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-29T02:00:09.175Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","redux","resources"],"created_at":"2024-07-31T15:01:14.626Z","updated_at":"2025-10-08T11:45:24.287Z","avatar_url":"https://github.com/jamesplease.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"http://redux-resource.js.org\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/2322305/35489731-63e3bb20-044e-11e8-8211-b7d153722865.png\" height=\"120\" alt=\"Redux Resource Logo\" aria-label=\"redux-resource.js.org\" /\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://travis-ci.org/jamesplease/redux-resource\"\u003e\n    \u003cimg src=\"http://img.shields.io/travis/jamesplease/redux-resource.svg?style=flat\" alt=\"Redux Resource Travis Builds\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/redux-resource\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/redux-resource.svg\" alt=\"Redux Resource NPM Package\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/redux-resource\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/dm/redux-resource.svg\" alt=\"Redux Resource NPM Download Count\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://coveralls.io/github/jamesplease/redux-resource?branch=master\"\u003e\n    \u003cimg src=\"https://coveralls.io/repos/github/jamesplease/redux-resource/badge.svg?branch=master\" alt=\"Redux Resource Code Coverage\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://unpkg.com/redux-resource/dist/redux-resource.min.js\"\u003e\n    \u003cimg src=\"http://img.badgesize.io/https://unpkg.com/redux-resource/dist/redux-resource.min.js?compression=gzip\" alt=\"Redux Resource gzip Size\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nA tiny but powerful system for managing 'resources': data that is persisted to\nremote servers.\n\n✓ Removes nearly all boilerplate code for remotely-stored data  \n✓ Incrementally adoptable  \n✓ Encourages best practices like [normalized state](http://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html)  \n✓ Works well with APIs that adhere to standardized formats, such as JSON API  \n✓ Works well with APIs that don't adhere to standardized formats, too  \n✓ Integrates well with your favorite technologies: HTTP, gRPC, normalizr, redux-observable, redux-saga, and more  \n✓ Microscopic file size (3kb gzipped!)\n\n### Installation\n\nTo install the latest version:\n\n```\nnpm install --save redux-resource\n```\n\n### Documentation\n\nView the documentation at\n**[redux-resource.js.org ⇗](https://redux-resource.js.org/)**.\n\n\u003e Looking for the v2.4.1 documentation? **[View it here](https://jamesplease.github.io/redux-resource-2.4.1-docs/)**.\n\n\u003e Migration guides to the latest version can be found\n\u003e **[here](https://redux-resource.js.org/docs/other-guides/migration-guides.html)**.\n\n### Quick Start\n\nFollow this guide to get a taste of what it's like to work with Redux\nResource.\n\nFirst, we set up our store with a \"resource reducer,\" which is a reducer that\nmanages the state for one type of resource. In this guide, our reducer will\nhandle the data for our \"books\" resource.\n\n```js\nimport { createStore, combineReducers } from 'redux';\nimport { resourceReducer } from 'redux-resource';\n\nconst reducer = combineReducers({\n  books: resourceReducer('books')\n});\n\nconst store = createStore(reducer);\n```\n\nOnce we have a store, we can start dispatching actions to it. In this example,\nwe initiate a request to read a book with an ID of 24, then follow it up with an\naction representing success. There are two actions, because requests usually\noccur over a network, and therefore take time to complete.\n\n```js\nimport { actionTypes } from 'redux-resource';\nimport store from './store';\n\n// This action represents beginning the request to read a book with ID of 24. This\n// could represent the start of an HTTP request, for instance.\nstore.dispatch({\n  type: actionTypes.READ_RESOURCES_PENDING,\n  resourceType: 'books',\n  resources: [24]\n});\n\n// Later, when the request succeeds, we dispatch the success action.\nstore.dispatch({\n  type: actionTypes.READ_RESOURCES_SUCCEEDED,\n  resourceType: 'books',\n  // The `resources` list here is usually the response from an API call\n  resources: [{\n    id: 24,\n    title: 'My Name is Red',\n    releaseYear: 1998,\n    author: 'Orhan Pamuk'\n  }]\n});\n```\n\nLater, in your view layer, you can access information about the status of\nthis request. When it succeeds, accessing the returned book is straightforward.\n\n```js\nimport { getStatus } from 'redux-resource';\nimport store from './store';\n\nconst state = store.getState();\n// The second argument to this method is a path into the state tree. This method\n// protects you from needing to check for undefined values.\nconst readStatus = getStatus(store, 'books.meta[24].readStatus');\n\nif (readStatus.pending) {\n  console.log('The request is in flight.');\n}\n\nelse if (readStatus.failed) {\n  console.log('The request failed.');\n}\n\nelse if (readStatus.succeeded) {\n  const book = state.books.resources[24];\n\n  console.log('The book was retrieved successfully, and here is the data:', book);\n}\n```\n\nThis is just a small sample of what it's like working with Redux Resource.\n\nFor a real-life webapp example that uses many more CRUD operations, check out\nthe **[zero-boilerplate-redux webapp ⇗](https://github.com/jamesplease/zero-boilerplate-redux)**.\nThis example project uses [React](https://facebook.github.io/react/), although\nRedux Resource works well with any view layer.\n\n### Repository Structure\n\nThis repository is a [Lerna](https://github.com/lerna/lerna) project. That means\nit's a single repository that allows us to control the publishing of a number\nof packages. The source for each package can be found in the[\n  `./packages`](https://github.com/jamesplease/redux-resource/tree/master/packages)\n  directory.\n\n| Package | Version | Description |\n| ---- | ---- | ---- |\n| `redux-resource` | [![npm version](https://img.shields.io/npm/v/redux-resource.svg)](https://www.npmjs.com/package/redux-resource) | The main library |\n| `redux-resource-xhr` | [![npm version](https://img.shields.io/npm/v/redux-resource-xhr.svg)](https://www.npmjs.com/package/redux-resource-xhr) | A library that exports a powerful HTTP CRUD action creator |\n| `redux-resource-plugins` | [![npm version](https://img.shields.io/npm/v/redux-resource-plugins.svg)](https://www.npmjs.com/package/redux-resource-plugins) | A collection of common plugins |\n| `redux-resource-prop-types` | [![npm version](https://img.shields.io/npm/v/redux-resource-prop-types.svg)](https://www.npmjs.com/package/redux-resource-prop-types) | Handy Prop Types to use with Redux Resource |\n| `redux-resource-action-creators` | [![npm version](https://img.shields.io/npm/v/redux-resource-action-creators.svg)](https://www.npmjs.com/package/redux-resource-action-creators) | Unopinionated action creators for Redux Resource (bring your own HTTP request) |\n\n### Contributing\n\nThanks for your interest in helping out! Check out the\n[Contributing Guide](./CONTRIBUTING.md), which covers everything you'll need to\n get up and running.\n\n### Contributors\n\n([Emoji key](https://github.com/kentcdodds/all-contributors#emoji-key))\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore --\u003e\n| [\u003cimg src=\"https://avatars3.githubusercontent.com/u/2322305?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJames, please\u003c/b\u003e\u003c/sub\u003e](http://www.jmeas.com)\u003cbr /\u003e[💻](https://github.com/jamesplease/redux-resource/commits?author=jamesplease \"Code\") [🔌](#plugin-jamesplease \"Plugin/utility libraries\") [📖](https://github.com/jamesplease/redux-resource/commits?author=jamesplease \"Documentation\") [🤔](#ideas-jamesplease \"Ideas, Planning, \u0026 Feedback\") | [\u003cimg src=\"https://avatars3.githubusercontent.com/u/682566?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStephen Rivas JR\u003c/b\u003e\u003c/sub\u003e](http://www.stephenrivasjr.com)\u003cbr /\u003e[💻](https://github.com/jamesplease/redux-resource/commits?author=sprjr \"Code\") [📖](https://github.com/jamesplease/redux-resource/commits?author=sprjr \"Documentation\") [🤔](#ideas-sprjr \"Ideas, Planning, \u0026 Feedback\") [🔌](#plugin-sprjr \"Plugin/utility libraries\") | [\u003cimg src=\"https://avatars0.githubusercontent.com/u/4119765?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIan Stewart\u003c/b\u003e\u003c/sub\u003e](https://github.com/ianmstew)\u003cbr /\u003e[🤔](#ideas-ianmstew \"Ideas, Planning, \u0026 Feedback\") | [\u003cimg src=\"https://avatars3.githubusercontent.com/u/181635?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTim Branyen\u003c/b\u003e\u003c/sub\u003e](http://tbranyen.com/)\u003cbr /\u003e[🤔](#ideas-tbranyen \"Ideas, Planning, \u0026 Feedback\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/254562?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJason Laster\u003c/b\u003e\u003c/sub\u003e](https://github.com/jasonLaster)\u003cbr /\u003e[🤔](#ideas-jasonLaster \"Ideas, Planning, \u0026 Feedback\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/1104846?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003emarlonpp\u003c/b\u003e\u003c/sub\u003e](https://github.com/marlonpp)\u003cbr /\u003e[🤔](#ideas-marlonpp \"Ideas, Planning, \u0026 Feedback\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/4296756?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJavier Porrero\u003c/b\u003e\u003c/sub\u003e](https://github.com/JPorry)\u003cbr /\u003e[🤔](#ideas-JPorry \"Ideas, Planning, \u0026 Feedback\") |\n| :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n| [\u003cimg src=\"https://avatars2.githubusercontent.com/u/25591356?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSmai Fullerton\u003c/b\u003e\u003c/sub\u003e](https://github.com/smaifullerton-wk)\u003cbr /\u003e[📖](https://github.com/jamesplease/redux-resource/commits?author=smaifullerton-wk \"Documentation\") | [\u003cimg src=\"https://avatars3.githubusercontent.com/u/276971?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003evinodkl\u003c/b\u003e\u003c/sub\u003e](https://github.com/vinodkl)\u003cbr /\u003e[🤔](#ideas-vinodkl \"Ideas, Planning, \u0026 Feedback\") | [\u003cimg src=\"https://avatars3.githubusercontent.com/u/828125?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEric Valadas\u003c/b\u003e\u003c/sub\u003e](https://github.com/ericvaladas)\u003cbr /\u003e[📖](https://github.com/jamesplease/redux-resource/commits?author=ericvaladas \"Documentation\") | [\u003cimg src=\"https://avatars0.githubusercontent.com/u/195580?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJeremy Fairbank\u003c/b\u003e\u003c/sub\u003e](http://blog.jeremyfairbank.com)\u003cbr /\u003e[🚇](#infra-jfairbank \"Infrastructure (Hosting, Build-Tools, etc)\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/4226956?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYihang Ho\u003c/b\u003e\u003c/sub\u003e](https://www.yihangho.com)\u003cbr /\u003e[💻](https://github.com/jamesplease/redux-resource/commits?author=yihangho \"Code\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/1026002?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBryce Reynolds\u003c/b\u003e\u003c/sub\u003e](https://github.com/brycereynolds)\u003cbr /\u003e[💡](#example-brycereynolds \"Examples\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/5614134?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBen Creasy\u003c/b\u003e\u003c/sub\u003e](http://bencreasy.com)\u003cbr /\u003e[📖](https://github.com/jamesplease/redux-resource/commits?author=jcrben \"Documentation\") |\n| [\u003cimg src=\"https://avatars3.githubusercontent.com/u/3513444?v=4\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGuillaume Jasmin\u003c/b\u003e\u003c/sub\u003e](http://www.guillaume-jasmin.fr)\u003cbr /\u003e[💻](https://github.com/jamesplease/redux-resource/commits?author=GuillaumeJasmin \"Code\") [🔌](#plugin-GuillaumeJasmin \"Plugin/utility libraries\") |\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/kentcdodds/all-contributors)\nspecification. Contributions of any kind are welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesplease%2Fredux-resource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesplease%2Fredux-resource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesplease%2Fredux-resource/lists"}