{"_id":"@a-2-c-2-anpm/quos-voluptatibus-non","name":"@a-2-c-2-anpm/quos-voluptatibus-non","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@a-2-c-2-anpm/quos-voluptatibus-non","version":"1.0.0","description":"A typescript implementation of Rust's [Result](https://doc.rust-lang.org/std/result/) and [Option](https://doc.rust-lang.org/std/option/) objects.","main":"index.js","author":{"name":"a-2-c-2-a"},"license":"MIT","dependencies":{"@a-2-c-2-anpm/alias-ducimus-sit":"^1.0.0","@a-2-c-2-anpm/atque-nemo-accusantium":"^1.0.0","@a-2-c-2-anpm/distinctio-quibusdam-culpa":"^1.0.0","@a-2-c-2-anpm/eligendi-praesentium-hic":"^1.0.0","@a-2-c-2-anpm/enim-amet-voluptatem":"^1.0.0","@a-2-c-2-anpm/error-dolorem-a":"^1.0.0","@a-2-c-2-anpm/excepturi-natus-facere":"^1.0.0","@a-2-c-2-anpm/expedita-recusandae-aut":"^1.0.0","@a-2-c-2-anpm/fugit-impedit-quae":"^1.0.0","@a-2-c-2-anpm/hic-maiores-accusantium":"^1.0.0","@a-2-c-2-anpm/laborum-exercitationem-quis":"^1.0.0","@a-2-c-2-anpm/laudantium-dolor-perspiciatis":"^1.0.0","@a-2-c-2-anpm/maiores-quis-dignissimos":"^1.0.0","@a-2-c-2-anpm/nam-eaque-occaecati":"^1.0.0","@a-2-c-2-anpm/neque-culpa-culpa":"^1.0.0","@a-2-c-2-anpm/neque-iste-eum":"^1.0.0","@a-2-c-2-anpm/nobis-similique-magni":"^1.0.0","@a-2-c-2-anpm/officia-tempore-ipsa":"^1.0.0","@a-2-c-2-anpm/perferendis-qui-suscipit":"^1.0.0","@a-2-c-2-anpm/placeat-suscipit-cumque":"^1.0.0","@a-2-c-2-anpm/quo-quia-expedita":"^1.0.0","@a-2-c-2-anpm/quos-voluptates-excepturi":"^1.0.0","@a-2-c-2-anpm/saepe-praesentium-iusto":"^1.0.0","@a-2-c-2-anpm/sint-ipsa-atque":"^1.0.0","@a-2-c-2-anpm/vitae-ad-molestiae":"^1.0.0","@ajhgwdjnpm/quas-mollitia-aspernatur-reprehenderit":"^1.0.0"},"keywords":["typescript","values","json","irq","guid","operating-system","gradients css3","search","number","starter","japanese","ponyfill","shell","bootstrap css","prefix","xterm","es","react-hook-form","awesomesauce","setter","emoji","compiler","throttle","input","web","readablestream","Int16Array","Object","gradients css","performance","columns","from","getter","proto","nested css","yup","Uint8Array","byteOffset","getPrototypeOf","throat","state","create","ansi","channel","waapi","value","bcrypt","pipe","api","assign","256","0","style","superagent","$.extend","rfc4122","directory","Array.prototype.flatMap","cli","immutable","art","tostringtag","watcher","column","framer","eslintconfig","define","argv","file","make","ArrayBuffer.prototype.slice","east-asian-width","xhr","check","view","slot","break","HyBi","client","merge","hash","pose","auth","lesscss","regex","read","css variable","Symbol","ECMAScript 2017","jsdiff","jest","toobject","CSS","toSorted","rm -fr","eventEmitter","less compiler","YAML","fast-clone","fsevents","arrays","codes","polyfill","live","setPrototypeOf","trimRight","types","querystring","css","ES2021","styled-components","stream","native","Array.prototype.findLast","express","rm","typed","batch","folder","typesafe","readable","matchAll","test","concurrency","optimist","ES2020","resolve","Underscore","request","URL","jsonschema","tools","class-validator","command","agent","iterator","Int32Array","Float64Array","Symbol.toStringTag","queue","byteLength","some","syntaxerror","utility","preprocessor","linewrap","side","private","symbol","ES8","filter","argparse","rmdir","Uint16Array","serializer","vest","Uint32Array","once","ecmascript","optimizer","mkdirp","call","async","metadata","sequence","jQuery","characters","width","deepclone","user-streams","less css","sigint","proxy","hasOwn","colour","browserslist","styleguide","-0","expression","debugger","time","descriptor","installer","internal","data","Rx","less.js","diff","sham","jsx","plugin","ArrayBuffer","hookform","serialization","visual","limited","Observable","dataView","ender","extend","sharedarraybuffer","intrinsic","rapid","redux-toolkit","flags","joi","configurable","_.extend","typedarray","wordbreak","stdlib","Object.fromEntries","hot",".env","jsonpath","ES3","fixed-width","ECMAScript 2018","css less","mime-db","Object.defineProperty","react-hooks","writable","electron","ESnext","css nesting","bind","chai","BigUint64Array","commander","Streams","symbols","CSSStyleDeclaration","replay","variables","libphonenumber","es-abstract","walk","less mixins","fast-copy","BigInt64Array","indicator","spinner","json-schema","date","description","multi-package","generics","fastcopy","arktype","concat","shared","argument","es5","computed-types","form-validation","fast-deep-copy","reuse","patch","busy","open","query","l10n","toolkit","dom-testing-library","deep","util.inspect","airbnb","gestures","rangeerror","speed","TypeScript","stateless","ES2015","ECMAScript 2023","typedarrays","chrome","internal slot","crypt","clone","fetch","deepcopy","syntax","Push","URLSearchParams","form","graphql","animation","tdd","lockfile","url","omit","scheme","mkdirs","redact","regexp","logger","file system","react","make dir","lint","has","formatting","String.prototype.matchAll","character","symlinks","promises","mru","tslib","trim","signals","https","telephone","ReactiveExtensions","text","circular","karma","__proto__","which","duplex","extra","ECMAScript 6","a11y","bluebird","shim","string","error","equal","typanion","ECMAScript 2019","stable","await","cache","validator","ES6","rgb","JSON","limit","callbound","spring","testing","modules","last","reducer","quote","name","groupBy","util","sameValueZero","variables in css","picomatch","settings","match","phone","weakset","crypto","Float32Array","prototype","ES2023","take","deep-clone","random","tape","findup","bundling","link","scheme-validation","ava","log","functions","utilities","fullwidth","preserve-symlinks","iterate","env","react-testing-library","invariant","bootstrap less","fastclone","trimEnd","higher-order","middleware","Array.prototype.flat","watching","unicode","hooks","watch","ECMAScript 5","inference","toStringTag","up","worker","dayjs","dataview","drop","javascript","negative zero","wait","chinese","bdd","command-line","contains","typeerror","process","environment","node","type","minimal","is","regular","ts","forms","trimStart","properties","terminal","obj","curl","positive","fastify","findLastIndex","call-bound","getopt","shebang","descriptors","arraybuffer","module","ECMAScript 2016","persistent","es2017","uuid","packages","censor","weakmap","mocha","StyleSheet","rate","ECMAScript 2022","RFC-6455","real-time","authentication","exit","inspect","promise","less","names","RegExp#flags","postcss-plugin","findLast","connect","assert","styling","fs","banner","config","sorted","moment","browserlist","framework","performant","glob","cors","sigterm","lru","ast","assertion","format","args","logging","browser","id","package","mkdir","js","object","bundler","WeakMap","http","Uint8ClampedArray","serialize","three","WebSockets","predictable","Object.getPrototypeOf","shrinkwrap","exit-code","ie","flat","qs","stringifier","ascii","dotenv","extension","TypedArray","compare","dependencies","spinners","sort","emit","es6","events","Stream","wrap","es-shims","Promise","Object.entries","eslint","interrupts","offset","option","nodejs","css-in-js","tap","fast","es7","accessor","entries","helpers","typed array","dir","apollo","function","mobile","every","pyyaml","wordwrap","streams","enumerable","setImmediate","deterministic","compile less","listeners","dependency manager","wget","tty","stylesheet","ajv","eventDispatcher","full-width","error-handling","gdpr","jsdom","Object.keys","datastructure","getintrinsic","watchFile","flatMap","validate","Array.prototype.contains","nope","get","idle","figlet","escape","flag","stringify","popmotion","es2016","parents","ES2016","Object.values","autoprefixer","protocol-buffers","functional","parser","prune","deep-copy","defineProperty","pretty","WeakSet","Microsoft","recursive","rm -rf","pnpm9","jwt","touch","matches","exec","classes","robust","Array.prototype.findLastIndex","group","set","es2018","negative","AsyncIterator","postcss","traverse","npm","ECMAScript 2021","package manager","estree","delete","handlers","ES5","find","callbind","queueMicrotask","lazy","package.json","ECMAScript 2020","regular expression","workspace:*","Iterator","TypeBox","RegExp.prototype.flags","ES2017","ratelimit","debug","classnames","look","term","jasmine","encryption","iteration","buffer","windows","Int8Array","signal","immer","classname","write","safe","ECMAScript 2015","mime","tester","color","prop","coercible","array","react animation","hardlinks","regular expressions","typeof","spec","linux","WebSocket","ES7","ES2022","ES2018","zero","fast-deep-clone","superstruct","symlink","length","forEach","output","collection.es6","efficient","i18n","whatwg","Reflect.getPrototypeOf","io-ts","RxJS","es8","Observables","validation","full","es-shim API","chromium","slice","tc39","drag","react pose","console","Array","eslintplugin","Array.prototype.filter","look-up","3d","protobuf","buffers","uninstall","colors","endpoint","key","status","require","ECMAScript 3","ArrayBuffer#slice","valid","korean","install","cjk","json-schema-validator","redux","dom","Set","concatMap","byte","find-up","eslint-plugin","password","elm","code points","getOwnPropertyDescriptor","Object.assign","import","includes","json-schema-validation","Array.prototype.flatten","trimLeft","zod","Array.prototype.includes","Map","runtime"],"repository":{"type":"git","url":"git+https://github.com/a-2-c-2-anpm/quos-voluptatibus-non.git"},"homepage":"https://github.com/a-2-c-2-anpm/quos-voluptatibus-non/#readme","bugs":{"url":"https://github.com/a-2-c-2-anpm/quos-voluptatibus-non/issues"},"packageManager":"yarn@4.1.1","_id":"@a-2-c-2-anpm/quos-voluptatibus-non@1.0.0","gitHead":"0c628dafc5a120016fea7a3dfe763f072aab1627","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-G8EZZNyMOXXV16rIt0x3IEfAdyodDzW8VtFThTpm+bzgvwAUMP+2YAQq5XaWsLqbmhBRKe7FUVknAdnPz3Hqsg==","shasum":"f47feebfbfb2d55bacf7ae2259612b5d83177254","tarball":"https://registry.npmjs.org/@a-2-c-2-anpm/quos-voluptatibus-non/-/quos-voluptatibus-non-1.0.0.tgz","fileCount":10,"unpackedSize":21420,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICT6ntC1lmqJ6Q86TOTvkhSCPCqHA6zk2IoblRmLf86VAiBW1gU3/55F4V/sj9YWtadUbIghoMePd6N5bYJ7hXNqXg=="}]},"_npmUser":{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"},"directories":{},"maintainers":[{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/quos-voluptatibus-non_1.0.0_1714405565789_0.5918331444710707"},"_hasShrinkwrap":false}},"time":{"created":"2024-04-29T15:46:05.649Z","1.0.0":"2024-04-29T15:46:05.936Z","modified":"2024-04-29T15:46:06.300Z"},"maintainers":[{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"}],"description":"A typescript implementation of Rust's [Result](https://doc.rust-lang.org/std/result/) and [Option](https://doc.rust-lang.org/std/option/) objects.","homepage":"https://github.com/a-2-c-2-anpm/quos-voluptatibus-non/#readme","keywords":["typescript","values","json","irq","guid","operating-system","gradients css3","search","number","starter","japanese","ponyfill","shell","bootstrap css","prefix","xterm","es","react-hook-form","awesomesauce","setter","emoji","compiler","throttle","input","web","readablestream","Int16Array","Object","gradients css","performance","columns","from","getter","proto","nested css","yup","Uint8Array","byteOffset","getPrototypeOf","throat","state","create","ansi","channel","waapi","value","bcrypt","pipe","api","assign","256","0","style","superagent","$.extend","rfc4122","directory","Array.prototype.flatMap","cli","immutable","art","tostringtag","watcher","column","framer","eslintconfig","define","argv","file","make","ArrayBuffer.prototype.slice","east-asian-width","xhr","check","view","slot","break","HyBi","client","merge","hash","pose","auth","lesscss","regex","read","css variable","Symbol","ECMAScript 2017","jsdiff","jest","toobject","CSS","toSorted","rm -fr","eventEmitter","less compiler","YAML","fast-clone","fsevents","arrays","codes","polyfill","live","setPrototypeOf","trimRight","types","querystring","css","ES2021","styled-components","stream","native","Array.prototype.findLast","express","rm","typed","batch","folder","typesafe","readable","matchAll","test","concurrency","optimist","ES2020","resolve","Underscore","request","URL","jsonschema","tools","class-validator","command","agent","iterator","Int32Array","Float64Array","Symbol.toStringTag","queue","byteLength","some","syntaxerror","utility","preprocessor","linewrap","side","private","symbol","ES8","filter","argparse","rmdir","Uint16Array","serializer","vest","Uint32Array","once","ecmascript","optimizer","mkdirp","call","async","metadata","sequence","jQuery","characters","width","deepclone","user-streams","less css","sigint","proxy","hasOwn","colour","browserslist","styleguide","-0","expression","debugger","time","descriptor","installer","internal","data","Rx","less.js","diff","sham","jsx","plugin","ArrayBuffer","hookform","serialization","visual","limited","Observable","dataView","ender","extend","sharedarraybuffer","intrinsic","rapid","redux-toolkit","flags","joi","configurable","_.extend","typedarray","wordbreak","stdlib","Object.fromEntries","hot",".env","jsonpath","ES3","fixed-width","ECMAScript 2018","css less","mime-db","Object.defineProperty","react-hooks","writable","electron","ESnext","css nesting","bind","chai","BigUint64Array","commander","Streams","symbols","CSSStyleDeclaration","replay","variables","libphonenumber","es-abstract","walk","less mixins","fast-copy","BigInt64Array","indicator","spinner","json-schema","date","description","multi-package","generics","fastcopy","arktype","concat","shared","argument","es5","computed-types","form-validation","fast-deep-copy","reuse","patch","busy","open","query","l10n","toolkit","dom-testing-library","deep","util.inspect","airbnb","gestures","rangeerror","speed","TypeScript","stateless","ES2015","ECMAScript 2023","typedarrays","chrome","internal slot","crypt","clone","fetch","deepcopy","syntax","Push","URLSearchParams","form","graphql","animation","tdd","lockfile","url","omit","scheme","mkdirs","redact","regexp","logger","file system","react","make dir","lint","has","formatting","String.prototype.matchAll","character","symlinks","promises","mru","tslib","trim","signals","https","telephone","ReactiveExtensions","text","circular","karma","__proto__","which","duplex","extra","ECMAScript 6","a11y","bluebird","shim","string","error","equal","typanion","ECMAScript 2019","stable","await","cache","validator","ES6","rgb","JSON","limit","callbound","spring","testing","modules","last","reducer","quote","name","groupBy","util","sameValueZero","variables in css","picomatch","settings","match","phone","weakset","crypto","Float32Array","prototype","ES2023","take","deep-clone","random","tape","findup","bundling","link","scheme-validation","ava","log","functions","utilities","fullwidth","preserve-symlinks","iterate","env","react-testing-library","invariant","bootstrap less","fastclone","trimEnd","higher-order","middleware","Array.prototype.flat","watching","unicode","hooks","watch","ECMAScript 5","inference","toStringTag","up","worker","dayjs","dataview","drop","javascript","negative zero","wait","chinese","bdd","command-line","contains","typeerror","process","environment","node","type","minimal","is","regular","ts","forms","trimStart","properties","terminal","obj","curl","positive","fastify","findLastIndex","call-bound","getopt","shebang","descriptors","arraybuffer","module","ECMAScript 2016","persistent","es2017","uuid","packages","censor","weakmap","mocha","StyleSheet","rate","ECMAScript 2022","RFC-6455","real-time","authentication","exit","inspect","promise","less","names","RegExp#flags","postcss-plugin","findLast","connect","assert","styling","fs","banner","config","sorted","moment","browserlist","framework","performant","glob","cors","sigterm","lru","ast","assertion","format","args","logging","browser","id","package","mkdir","js","object","bundler","WeakMap","http","Uint8ClampedArray","serialize","three","WebSockets","predictable","Object.getPrototypeOf","shrinkwrap","exit-code","ie","flat","qs","stringifier","ascii","dotenv","extension","TypedArray","compare","dependencies","spinners","sort","emit","es6","events","Stream","wrap","es-shims","Promise","Object.entries","eslint","interrupts","offset","option","nodejs","css-in-js","tap","fast","es7","accessor","entries","helpers","typed array","dir","apollo","function","mobile","every","pyyaml","wordwrap","streams","enumerable","setImmediate","deterministic","compile less","listeners","dependency manager","wget","tty","stylesheet","ajv","eventDispatcher","full-width","error-handling","gdpr","jsdom","Object.keys","datastructure","getintrinsic","watchFile","flatMap","validate","Array.prototype.contains","nope","get","idle","figlet","escape","flag","stringify","popmotion","es2016","parents","ES2016","Object.values","autoprefixer","protocol-buffers","functional","parser","prune","deep-copy","defineProperty","pretty","WeakSet","Microsoft","recursive","rm -rf","pnpm9","jwt","touch","matches","exec","classes","robust","Array.prototype.findLastIndex","group","set","es2018","negative","AsyncIterator","postcss","traverse","npm","ECMAScript 2021","package manager","estree","delete","handlers","ES5","find","callbind","queueMicrotask","lazy","package.json","ECMAScript 2020","regular expression","workspace:*","Iterator","TypeBox","RegExp.prototype.flags","ES2017","ratelimit","debug","classnames","look","term","jasmine","encryption","iteration","buffer","windows","Int8Array","signal","immer","classname","write","safe","ECMAScript 2015","mime","tester","color","prop","coercible","array","react animation","hardlinks","regular expressions","typeof","spec","linux","WebSocket","ES7","ES2022","ES2018","zero","fast-deep-clone","superstruct","symlink","length","forEach","output","collection.es6","efficient","i18n","whatwg","Reflect.getPrototypeOf","io-ts","RxJS","es8","Observables","validation","full","es-shim API","chromium","slice","tc39","drag","react pose","console","Array","eslintplugin","Array.prototype.filter","look-up","3d","protobuf","buffers","uninstall","colors","endpoint","key","status","require","ECMAScript 3","ArrayBuffer#slice","valid","korean","install","cjk","json-schema-validator","redux","dom","Set","concatMap","byte","find-up","eslint-plugin","password","elm","code points","getOwnPropertyDescriptor","Object.assign","import","includes","json-schema-validation","Array.prototype.flatten","trimLeft","zod","Array.prototype.includes","Map","runtime"],"repository":{"type":"git","url":"git+https://github.com/a-2-c-2-anpm/quos-voluptatibus-non.git"},"author":{"name":"a-2-c-2-a"},"bugs":{"url":"https://github.com/a-2-c-2-anpm/quos-voluptatibus-non/issues"},"license":"MIT","readme":"# @a-2-c-2-anpm/quos-voluptatibus-non\n\nA typescript implementation of Rust's [Result](https://doc.rust-lang.org/std/result/)\nand [Option](https://doc.rust-lang.org/std/option/) objects.\n\nBrings compile-time error checking and optional values to typescript.\n\n## Relationship with ts-results\n\nThis package is a friendly fork of the excellent https://github.com/vultix/ts-results/\ncreated due to time constraints on our (Lune's) side – we needed a package\navailable with some fixes.\n\nNotable changes compared to the original package:\n\n* Added ESM compatibility\n* `Option` gained extra methods: `mapOr()`, `mapOrElse()`, `or()`,\n  `orElse()`\n* `Result` also gained extra methods: `mapOr()`, `mapOrElse()`,\n  `expectErr()`, `or()`, `orElse()`\n* `Ok` and `Err` no longer have the `val` property – it's `Ok.value` and `Err.error` now\n* There is `Some.value` which replaced `Some.val`\n* Boolean flags were replaced with methods:\n  * `Option.some` -> `Option.isSome()`\n  * `Option.none` -> `Option.isNone()`\n  * `Result.ok` -> `Result.isOk()`\n  * `Result.err` -> `Result.isErr()`\n\nWe'll try to get the changes merged into the upstream package so that this fork\ncan become obsolete.\n\n## Contents\n\n-   [Installation](#installation)\n-   [Example](#example)\n    -   [Result Example](#result-example)\n    -   [Option Example](#option-example)\n-   [Usage](#usage)\n\n## Installation\n\n```bash\n$ npm install @a-2-c-2-anpm/quos-voluptatibus-non\n```\n\nor\n\n```bash\n$ yarn add @a-2-c-2-anpm/quos-voluptatibus-non\n```\n\n## Example\n\n### Result Example\n\nConvert this:\n\n```typescript\nimport { existsSync, readFileSync } from 'fs';\n\nfunction readFile(path: string): string {\n    if (existsSync(path)) {\n        return readFileSync(path);\n    } else {\n        // Callers of readFile have no way of knowing the function can fail\n        throw new Error('invalid path');\n    }\n}\n\n// This line may fail unexpectedly without warnings from typescript\nconst text = readFile('test.txt');\n```\n\nTo this:\n\n```typescript\nimport { existsSync, readFileSync } from 'fs';\nimport { Ok, Err, Result } from '@a-2-c-2-anpm/quos-voluptatibus-non';\n\nfunction readFile(path: string): Result<string, 'invalid path'> {\n    if (existsSync(path)) {\n        return new Ok(readFileSync(path)); // new is optional here\n    } else {\n        return new Err('invalid path'); // new is optional here\n    }\n}\n\n// Typescript now forces you to check whether you have a valid result at compile time.\nconst result = readFile('test.txt');\nif (result.isOk()) {\n    // text contains the file's content\n    const text = result.value;\n} else {\n    // err equals 'invalid path'\n    const err = result.error;\n}\n```\n\n### Option Example\n\nConvert this:\n\n```typescript\ndeclare function getLoggedInUsername(): string | undefined;\n\ndeclare function getImageURLForUsername(username: string): string | undefined;\n\nfunction getLoggedInImageURL(): string | undefined {\n    const username = getLoggedInUsername();\n    if (!username) {\n        return undefined;\n    }\n\n    return getImageURLForUsername(username);\n}\n\nconst stringUrl = getLoggedInImageURL();\nconst optionalUrl = stringUrl ? new URL(stringUrl) : undefined;\nconsole.log(optionalUrl);\n```\n\nTo this:\n\n```typescript\nimport { Option, Some, None } from '@a-2-c-2-anpm/quos-voluptatibus-non';\n\ndeclare function getLoggedInUsername(): Option<string>;\n\ndeclare function getImageForUsername(username: string): Option<string>;\n\nfunction getLoggedInImage(): Option<string> {\n    return getLoggedInUsername().andThen(getImageForUsername);\n}\n\nconst optionalUrl = getLoggedInImage().map((url) => new URL(stringUrl));\nconsole.log(optionalUrl); // Some(URL('...'))\n\n// To extract the value, do this:\nif (optionalUrl.some) {\n    const url: URL = optionalUrl.value;\n}\n```\n\n## Usage\n\nSee https://@a-2-c-2-anpm/quos-voluptatibus-non.readthedocs.io/en/latest/reference/api/index.html to see the API\nreference.\n\n## Publishing the package\n\nThe package is published manually right now.\n\nSteps to publish:\n\n1. Bump the version in `package.json` and `src/package.json` as needed\n2. Update the CHANGELOG\n3. Commit to Git in a single commit and add a tag: `git tag -a vX.X.X` (the tag description can be\n   anything)\n4. `npm run build && npm publish`\n5. Push both the `master` branch and the new tag to GitHub\n","readmeFilename":"README.md"}