{"_id":"@emiplegiaqmnpm/dicta-aliquid-aut","name":"@emiplegiaqmnpm/dicta-aliquid-aut","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@emiplegiaqmnpm/dicta-aliquid-aut","version":"1.0.0","description":"> Explicit states for predictable user experiences","main":"index.js","author":{"name":"emiplegiaqM"},"license":"MIT","dependencies":{"@emiplegiaqmnpm/ad-aliquam-temporibus":"^1.0.0","@emiplegiaqmnpm/adipisci-nisi-laudantium":"^1.0.0","@emiplegiaqmnpm/at-cum-saepe":"^1.0.0","@emiplegiaqmnpm/cupiditate-excepturi-necessitatibus":"^1.0.0","@emiplegiaqmnpm/deserunt-odit-eveniet":"^1.0.0","@emiplegiaqmnpm/dolorum-vitae-itaque":"^1.0.0","@emiplegiaqmnpm/eaque-vitae-recusandae":"^1.0.0","@emiplegiaqmnpm/esse-quos-sunt":"^1.0.0","@emiplegiaqmnpm/explicabo-dolor-quo":"^1.0.0","@emiplegiaqmnpm/fugit-vero-voluptas":"^1.0.0","@emiplegiaqmnpm/id-magnam-quo":"^1.0.0","@emiplegiaqmnpm/iure-autem-nobis":"^1.0.0","@emiplegiaqmnpm/magni-doloremque-facilis":"^1.0.0","@emiplegiaqmnpm/minima-cumque-dolore":"^1.0.0","@emiplegiaqmnpm/porro-culpa-sint":"^1.0.0","@emiplegiaqmnpm/praesentium-ut-quam":"^1.0.0","@emiplegiaqmnpm/quaerat-totam-pariatur":"^1.0.0","@emiplegiaqmnpm/quas-vero-impedit":"^1.0.0","@emiplegiaqmnpm/quis-quis-voluptate":"^1.0.0","@emiplegiaqmnpm/reiciendis-sint-iusto":"^1.0.0","@emiplegiaqmnpm/repudiandae-dolorem-facere":"^1.0.0","@emiplegiaqmnpm/sit-nisi-praesentium":"^1.0.0","@emiplegiaqmnpm/temporibus-error-harum":"^1.0.0","@emiplegiaqmnpm/temporibus-iusto-quisquam":"^1.0.0","@emiplegiaqmnpm/ut-cum-libero":"^1.0.0","@emiplegiaqmnpm/voluptatum-praesentium-necessitatibus":"^1.0.0","@lambrioanpm/odio-nulla-recusandae":"^1.0.0","@lambrioanpm/odit-suscipit-rem":"^1.0.0","@odczynflnpm/alias-aperiam-accusamus":"^1.0.0"},"keywords":["interrupts","trimEnd","shim","every","middleware","byte","typeerror","json-schema-validator","file system","eslint-plugin","babel","dependency manager","ECMAScript 6","logger","eventEmitter","term","Int32Array","form-validation","array","symlink","es","byteOffset","io-ts","validator","starter","workspace:*","patch","offset","group","TypeBox","concatMap","es7","ES2017","streams2","query","dotenv","gdpr","ECMAScript 7","spinners","variables","limited","look","classnames","typedarray","arraybuffer","valid","regex","String.prototype.matchAll","mixins","queue","random","node","call-bound","const","path","keys","Object.defineProperty","groupBy","debugger","wordwrap","promises","zod","callbound","positive","folder","merge","ES8","debug","browserlist","fullwidth","negative zero","quote","assign","dayjs","toStringTag","banner","traverse","iteration","let","web","byteLength","gestures","width","variables in css","spawn","browser","password","request","bound","configurable","key","expression","deep-clone","weakset","ansi","values","hooks","ajax","@@toStringTag","animation","framer","stylesheet","ECMAScript 2023","less css","buffer","express","copy","column","flag","once","readablestream","regular","colors","es2016","es-shims","hasOwn","app","throat","flags","indicator","text","protocol-buffers","remove","256","commander","WeakMap","filter","fsevents","runtime","ajv","ECMAScript 2021","bdd","wget","nested css","jsonpath","typanion","Promise","internal slot","Function.prototype.name","schema","gradients css3","less mixins","stringifier","higher-order","es-shim API","Array.prototype.flat","CSSStyleDeclaration","read","await","chromium","minimal","private","json-schema","[[Prototype]]","fast-clone","less","async","match",".env","ES2015","fast-deep-copy","ES6","WebSockets","hardlinks","toolkit","opener","BigInt64Array","delete","parent","process","trimLeft","waapi","emit","matchAll","ECMAScript 2015","jasmine","WeakSet","es5","serializer","postcss-plugin","defineProperty","electron","Array.prototype.findLast","name","limit","form","find","last","tc39","plugin","getopt","args","forEach","callback","import","pose","object","language","npm","Object.entries","prune","6to5","util.inspect","description","JSON","ES2020","intrinsic","deep","tty","wait","macos","jsdiff","lockfile","side","hookform","sanitize","warning","http","serialization","0","exec","fp","figlet","Object.assign","eslint","ECMAScript 2016","_.extend","l10n","ramda","inference","url","promise","serialize","reuse","packages","fast-deep-clone","postcss","cache","querystring","tools","pipe","arrays","includes","css less","TypedArray","console","fast-copy","Object.is","resolve","stream","safe","slot","regexp","Object.fromEntries","toobject","type","https","ECMAScript 3","emoji","concurrency","has","idle","dataview","trim","helpers","scheme-validation","cors","ECMAScript 2020","argv","launch","Map","transpile","graphql","dom-testing-library","parents","file","signal","react","call","walking","efficient","japanese","ES2016","argument","watchFile","functions","error-handling","ecmascript","output","trimRight","moment","HyBi","watching","functional","yup","mimetypes","shared","modules","mkdirp","testing","Microsoft","styles","less compiler","signals","ReactiveExtensions","tslib","guid","eslintplugin","real-time","compare","get","consume","fastify","core-js","function","spinner","robust","css nesting","queueMicrotask","Rx","fastclone","opens","util","symlinks","persistent","editor","check","CSS","optimist","tdd","ts","proto","module","sham","write","harmony","env","three","Uint16Array","fixed-width","ES2022","parser","encryption","ender","status","Underscore","arguments","loading","redux","pnpm9","slice","awesomesauce","entries","generics","Array.prototype.contains","prefix","accessibility","RegExp#flags","batch","tacit","getOwnPropertyDescriptor","reduce","protobuf","shrinkwrap","watcher","chrome","Object.keys","uninstall","joi","Push","operating-system","call-bind","set","negative","preprocessor","rapid","stateless","telephone","bcrypt","mobile","stringify","channel","sanitization","es-abstract","writable","sorted","karma","pure","structuredClone","up","accessor","full","redux-toolkit","browserslist","types","view","estree","readable","sigterm","symbol","descriptor","equal","String.prototype.trim","ArrayBuffer","fast","Set","duplex","Array","tap","core","reducer","censor","superagent","extend","child","rate","curl","rm","ArrayBuffer#slice","map","pretty","utilities","ES2018","art","installer","babel-core","error","cli","bundler","bootstrap less","regular expressions","ES2021","jsx","rfc4122","compile less","RFC-6455","assertion","prop","Symbol","react-hook-form","BigUint64Array","shell","syntax","environment","xterm","jsonschema","property","codes","ES7","css"],"repository":{"type":"git","url":"git+https://github.com/emiplegiaqmnpm/dicta-aliquid-aut.git"},"homepage":"https://github.com/emiplegiaqmnpm/dicta-aliquid-aut/#readme","bugs":{"url":"https://github.com/emiplegiaqmnpm/dicta-aliquid-aut/issues"},"packageManager":"yarn@4.1.1","_id":"@emiplegiaqmnpm/dicta-aliquid-aut@1.0.0","gitHead":"73ee4772ef01653f7feb6a3ba57a8c58103c9e82","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-wg3MLz3lB+C/81XbaF77rya0j9fnuUZGqohM1regJKRq8ttCXlpOZW/BSXj009RLxXNcD+jI0I56Mb7LIzswgw==","shasum":"8c433a972cda4600ad2452c3004dffcff97df988","tarball":"https://registry.npmjs.org/@emiplegiaqmnpm/dicta-aliquid-aut/-/dicta-aliquid-aut-1.0.0.tgz","fileCount":10,"unpackedSize":14979,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBGoM+BuCxkYknKbZZpG+6qFxuU84t6AR6Hw6wi7wLeOAiAktmsFBMOLWiSPgXDSyLF4TfdY+UPCLmRpJRXd8DpvBg=="}]},"_npmUser":{"name":"hn413381","email":"hn413381@gmail.com"},"directories":{},"maintainers":[{"name":"hn413381","email":"hn413381@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dicta-aliquid-aut_1.0.0_1714028357155_0.2653967740524048"},"_hasShrinkwrap":false}},"time":{"created":"2024-04-25T06:59:17.067Z","1.0.0":"2024-04-25T06:59:17.304Z","modified":"2024-04-25T06:59:17.734Z"},"maintainers":[{"name":"hn413381","email":"hn413381@gmail.com"}],"description":"> Explicit states for predictable user experiences","homepage":"https://github.com/emiplegiaqmnpm/dicta-aliquid-aut/#readme","keywords":["interrupts","trimEnd","shim","every","middleware","byte","typeerror","json-schema-validator","file system","eslint-plugin","babel","dependency manager","ECMAScript 6","logger","eventEmitter","term","Int32Array","form-validation","array","symlink","es","byteOffset","io-ts","validator","starter","workspace:*","patch","offset","group","TypeBox","concatMap","es7","ES2017","streams2","query","dotenv","gdpr","ECMAScript 7","spinners","variables","limited","look","classnames","typedarray","arraybuffer","valid","regex","String.prototype.matchAll","mixins","queue","random","node","call-bound","const","path","keys","Object.defineProperty","groupBy","debugger","wordwrap","promises","zod","callbound","positive","folder","merge","ES8","debug","browserlist","fullwidth","negative zero","quote","assign","dayjs","toStringTag","banner","traverse","iteration","let","web","byteLength","gestures","width","variables in css","spawn","browser","password","request","bound","configurable","key","expression","deep-clone","weakset","ansi","values","hooks","ajax","@@toStringTag","animation","framer","stylesheet","ECMAScript 2023","less css","buffer","express","copy","column","flag","once","readablestream","regular","colors","es2016","es-shims","hasOwn","app","throat","flags","indicator","text","protocol-buffers","remove","256","commander","WeakMap","filter","fsevents","runtime","ajv","ECMAScript 2021","bdd","wget","nested css","jsonpath","typanion","Promise","internal slot","Function.prototype.name","schema","gradients css3","less mixins","stringifier","higher-order","es-shim API","Array.prototype.flat","CSSStyleDeclaration","read","await","chromium","minimal","private","json-schema","[[Prototype]]","fast-clone","less","async","match",".env","ES2015","fast-deep-copy","ES6","WebSockets","hardlinks","toolkit","opener","BigInt64Array","delete","parent","process","trimLeft","waapi","emit","matchAll","ECMAScript 2015","jasmine","WeakSet","es5","serializer","postcss-plugin","defineProperty","electron","Array.prototype.findLast","name","limit","form","find","last","tc39","plugin","getopt","args","forEach","callback","import","pose","object","language","npm","Object.entries","prune","6to5","util.inspect","description","JSON","ES2020","intrinsic","deep","tty","wait","macos","jsdiff","lockfile","side","hookform","sanitize","warning","http","serialization","0","exec","fp","figlet","Object.assign","eslint","ECMAScript 2016","_.extend","l10n","ramda","inference","url","promise","serialize","reuse","packages","fast-deep-clone","postcss","cache","querystring","tools","pipe","arrays","includes","css less","TypedArray","console","fast-copy","Object.is","resolve","stream","safe","slot","regexp","Object.fromEntries","toobject","type","https","ECMAScript 3","emoji","concurrency","has","idle","dataview","trim","helpers","scheme-validation","cors","ECMAScript 2020","argv","launch","Map","transpile","graphql","dom-testing-library","parents","file","signal","react","call","walking","efficient","japanese","ES2016","argument","watchFile","functions","error-handling","ecmascript","output","trimRight","moment","HyBi","watching","functional","yup","mimetypes","shared","modules","mkdirp","testing","Microsoft","styles","less compiler","signals","ReactiveExtensions","tslib","guid","eslintplugin","real-time","compare","get","consume","fastify","core-js","function","spinner","robust","css nesting","queueMicrotask","Rx","fastclone","opens","util","symlinks","persistent","editor","check","CSS","optimist","tdd","ts","proto","module","sham","write","harmony","env","three","Uint16Array","fixed-width","ES2022","parser","encryption","ender","status","Underscore","arguments","loading","redux","pnpm9","slice","awesomesauce","entries","generics","Array.prototype.contains","prefix","accessibility","RegExp#flags","batch","tacit","getOwnPropertyDescriptor","reduce","protobuf","shrinkwrap","watcher","chrome","Object.keys","uninstall","joi","Push","operating-system","call-bind","set","negative","preprocessor","rapid","stateless","telephone","bcrypt","mobile","stringify","channel","sanitization","es-abstract","writable","sorted","karma","pure","structuredClone","up","accessor","full","redux-toolkit","browserslist","types","view","estree","readable","sigterm","symbol","descriptor","equal","String.prototype.trim","ArrayBuffer","fast","Set","duplex","Array","tap","core","reducer","censor","superagent","extend","child","rate","curl","rm","ArrayBuffer#slice","map","pretty","utilities","ES2018","art","installer","babel-core","error","cli","bundler","bootstrap less","regular expressions","ES2021","jsx","rfc4122","compile less","RFC-6455","assertion","prop","Symbol","react-hook-form","BigUint64Array","shell","syntax","environment","xterm","jsonschema","property","codes","ES7","css"],"repository":{"type":"git","url":"git+https://github.com/emiplegiaqmnpm/dicta-aliquid-aut.git"},"author":{"name":"emiplegiaqM"},"bugs":{"url":"https://github.com/emiplegiaqmnpm/dicta-aliquid-aut/issues"},"license":"MIT","readme":"# react-states\n\n> Explicit states for predictable user experiences\n\n## Install\n\n```sh\nnpm install react-states\n```\n\n## Introduction to react-states\n\n[![react-states](https://img.youtube.com/vi/4M--Kp41CjI/0.jpg)](https://www.youtube.com/watch?v=4M--Kp41CjI)\n\n## Examples\n\n- [Resizer in the Devtools](./src/devtools//Resizer.tsx)\n- [ExcalidrawFirebase](https://github.com/codesandbox/excalidraw-firebase/tree/main/src)\n- [FamilyScrum](https://github.com/christianalfoni/family-scrum-v2/tree/main/src)\n\n## Documentation\n\n- [API](./docs/api.md)\n- [Patterns](./docs/patterns.md)\n\n## Values\n\n- \"It is just a reducer\"\n- Simple utilities\n- Enhanced type safety\n- Reducer does not express side effects\n\n## Learn by example\n\nInstead of expressing your state implicitly:\n\n```ts\ntype State = {\n  isLoading: boolean;\n  error: string | null;\n  data: string[];\n};\n```\n\nYou can do so explicitly:\n\n```ts\ntype State =\n  | {\n      state: 'NOT_LOADED';\n    }\n  | {\n      state: 'LOADING';\n    }\n  | {\n      state: 'LOADED';\n      data: string[];\n    }\n  | {\n      state: 'ERROR';\n      error: string;\n    };\n```\n\nWith explicit states you can guard what actions are valid in what states using `transition`:\n\n```ts\nimport { transition } from 'react-states';\n\nconst reducer = (prevState: State, action: Action) =>\n  transition(prevState, action, {\n    NOT_LOADED: {\n      FETCH: () => ({\n        state: 'LOADING',\n      }),\n    },\n    LOADING: {\n      FETCH_SUCCESS: (_, { data }) => ({\n        state: 'LOADED',\n        data,\n      }),\n      FETCH_ERROR: (_, { error }) => ({\n        state: 'ERROR',\n        error,\n      }),\n    },\n    LOADED: {},\n    ERROR: {},\n  });\n```\n\nWith additional utilities like `createStates`, `createActions` and `match` you will increase safety and reduce boilerplate in your code.\n","readmeFilename":"README.md"}