{"_id":"@4c/todos-api","_rev":"9-fa2af450d4c7dc12ee593a0f40cc9130","name":"@4c/todos-api","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.1":{"name":"@4c/todos-api","version":"1.0.1","main":"lib/index.js","module":"es/index.js","repository":{"type":"git","url":"git+https://github.com/4Catalyzer/todos-api.git"},"author":{"name":"4Catalyzer"},"license":"MIT","scripts":{"babel":"babel src --ignore **/__tests__  --copy-files --delete-dir-on-start -x .js,.ts,.tsx","build":"yarn babel -d lib && yarn babel -d es --env-name esm && yarn build:types","build:types":"tsc --emitDeclarationOnly --outDir lib && tsc --outDir es","eslint":"eslint . --ext .js,.ts,.tsx","format":"yarn eslint && yarn import-sort --write && yarn prettier --write","import-sort":"import-sort '**/src/**/*.{js,ts,tsx}' '!**/__generated__/*' '!**/*.d.ts'","lint":"tsc --noEmit && yarn eslint && yarn import-sort --list-different && yarn prettier --list-different","prepublishOnly":"yarn run build","prettier":"prettier --ignore-path .eslintignore '**/*.{json,css,md}'","release":"rollout","tdd":"jest --watch","test":"yarn lint && jest","testonly":"jest"},"publishConfig":{"access":"public"},"prettier":{"printWidth":79,"singleQuote":true,"trailingComma":"all"},"importSort":{".js, .ts, .tsx":{"parser":"@4c/import-sort/parser-ts","style":"@4c/import-sort/style"}},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts,tsx}":["eslint --fix","import-sort --write","git add"],"*.{json,css,md}":["prettier --write --ignore-path .eslintignore","git add"]},"jest":{"preset":"@4c/jest-preset","testEnvironment":"jsdom"},"devDependencies":{"@4c/babel-preset-4catalyzer":"^4.1.1","@4c/import-sort":"^4.3.0","@4c/jest-preset":"^1.3.0","@4c/rollout":"^1.2.0","@4c/tsconfig":"^0.1.1","@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/preset-typescript":"^7.1.0","@typescript-eslint/eslint-plugin":"^1.1.1","babel-core":"^7.0.0-bridge.0","eslint":"^5.12.0","eslint-config-4catalyzer-jest":"^1.1.0","eslint-config-4catalyzer-react":"^0.7.0","eslint-config-4catalyzer-typescript":"^0.10.1","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jest":"^22.1.2","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-prettier":"^3.0.1","eslint-plugin-react":"^7.12.3","husky":"^1.1.2","import-sort-cli":"^5.2.0","jest":"^24.0.0","lint-staged":"^8.1.0","prettier":"^1.15.3","typescript":"^3.2.2"},"gitHead":"4e07dad911e01c6afcbc294380d5e8732608df82","bugs":{"url":"https://github.com/4Catalyzer/todos-api/issues"},"homepage":"https://github.com/4Catalyzer/todos-api#readme","_id":"@4c/todos-api@1.0.1","_nodeVersion":"10.1.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-XE+bLaYd7TfYZnke/QvtMCOLJ3KOpC8zkGGtI8mqDlbPMIWsxIJp5ndiW1XmbiORg1qLcPFZbKQQ5uw0/hIO8w==","shasum":"e4c44290f4e802e0916959dca3f1b9ac8541fd7c","tarball":"https://registry.npmjs.org/@4c/todos-api/-/todos-api-1.0.1.tgz","fileCount":20,"unpackedSize":301085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYamnCRA9TVsSAnZWagAAV0YP/i0JRwKvZzDM7Bx9AuJC\nLuNl5UEfemfWCDEWBwE21XPJCSwjdbCvSCqD3BmthRZpeWeN4TnmmJB1/Ih3\nVbmugjeYhoh7PoQ//rAMO+52ay/xDvix7MA/Q39l7irf1I0TYNrbDufpT/Qq\nFei40AEkFH1zDDvlaLMiQj7HGVnFb9sIPPcnPiU2T3JZRUnQZ4R4tpyVVuqM\nYkfMOATVmGMrnfBVH8r7D0ycHqxifZ2uQ1fBcsRqJysCNINanmA9fYIWAZoH\ngacaq61lJYngdO+9v+yfnOQoK4ym1CPqa9ccrQg+H/DXctNZuHQCnmjq64ki\nC1dyUkDxadpiTZShNhUx4V2nfqKnws5LdZ/bk5MClZoLLosB2iYdmWoxh90p\npWKKVMjxiSJazW00fNtINvLkNJvpstpgv8/moY2AFkWkQ2VWC7L7Ltr7I1vR\ndRwEfdWMGtm8WRMZERAFto8XO6/IfD1wBRv7t9Ob31NBviFcLUYwmEZORRux\njGfW+W4gpAJow3gbsmdsOKgsuSYmDnX5oHY0gaFgApQUy4ZIwLCxTMWhEeBs\nrnFqE5fpisLrP1eR6s6EfUXjgX23kbHcehgSuzb5dudwboyHd9gK0oLji1VP\nz6EwNs9HciH/84jWqk7Rl3TybIfK/zIVX59WBORmzckR/C2WhQ7VtLEq1+bH\nHY/D\r\n=4kGu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/uIlVBZU7nNn6+MWGhrNXOybboQ9sWjtwXY/R80D8/wIgBwH7T4M9f9T1FM0hKoJ5fc+tJ60jFf11yji4JjUO2AQ="}]},"maintainers":[{"name":"taion","email":"tesrin@gmail.com"},{"name":"monastic.panic","email":"monastic.panic@gmail.com"},{"name":"itajaja","email":"giacomo.tag@gmail.com"}],"_npmUser":{"name":"monastic.panic","email":"monastic.panic@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/todos-api_1.0.1_1549904294799_0.018658152268738792"},"_hasShrinkwrap":false},"1.0.2":{"name":"@4c/todos-api","version":"1.0.2","main":"lib/index.js","module":"es/index.js","repository":{"type":"git","url":"git+https://github.com/4Catalyzer/todos-api.git"},"author":{"name":"4Catalyzer"},"license":"MIT","scripts":{"babel":"babel src --ignore **/__tests__  --copy-files --delete-dir-on-start -x .js,.ts,.tsx","build":"yarn babel -d lib && yarn babel -d es --env-name esm && yarn build:types","build:types":"tsc --emitDeclarationOnly --outDir lib && tsc --outDir es","eslint":"eslint . --ext .js,.ts,.tsx","format":"yarn eslint && yarn import-sort --write && yarn prettier --write","import-sort":"import-sort '**/src/**/*.{js,ts,tsx}' '!**/__generated__/*' '!**/*.d.ts'","lint":"tsc --noEmit && yarn eslint && yarn import-sort --list-different && yarn prettier --list-different","prepublishOnly":"yarn run build","prettier":"prettier --ignore-path .eslintignore '**/*.{json,css,md}'","release":"rollout","tdd":"jest --watch","test":"yarn lint && jest","testonly":"jest"},"publishConfig":{"access":"public"},"prettier":{"printWidth":79,"singleQuote":true,"trailingComma":"all"},"importSort":{".js, .ts, .tsx":{"parser":"@4c/import-sort/parser-ts","style":"@4c/import-sort/style"}},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts,tsx}":["eslint --fix","import-sort --write","git add"],"*.{json,css,md}":["prettier --write --ignore-path .eslintignore","git add"]},"jest":{"preset":"@4c/jest-preset","testEnvironment":"jsdom"},"devDependencies":{"@4c/babel-preset-4catalyzer":"^4.1.1","@4c/import-sort":"^4.3.0","@4c/jest-preset":"^1.3.0","@4c/rollout":"^1.2.0","@4c/tsconfig":"^0.1.1","@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/preset-typescript":"^7.1.0","@typescript-eslint/eslint-plugin":"^1.1.1","babel-core":"^7.0.0-bridge.0","eslint":"^5.12.0","eslint-config-4catalyzer-jest":"^1.1.0","eslint-config-4catalyzer-react":"^0.7.0","eslint-config-4catalyzer-typescript":"^0.10.1","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jest":"^22.1.2","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-prettier":"^3.0.1","eslint-plugin-react":"^7.12.3","husky":"^1.1.2","import-sort-cli":"^5.2.0","jest":"^24.0.0","lint-staged":"^8.1.0","prettier":"^1.15.3","typescript":"^3.2.2"},"dependencies":{"date-arithmetic":"^3.1.0"},"gitHead":"2c86aa843b00d99ee707e0665f5bd52992c5460b","description":"A fake, in memory, backend for a todo list server","bugs":{"url":"https://github.com/4Catalyzer/todos-api/issues"},"homepage":"https://github.com/4Catalyzer/todos-api#readme","_id":"@4c/todos-api@1.0.2","_nodeVersion":"10.1.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-flv9NXkwdcYOyNYd7iyTQ5PeNvm97hpmZDsM4kJfDiVADsXdSmF/wek2H/crJ1QgpYib0asWS921DvFYu/SEXQ==","shasum":"d64c95baa27fb8ed4f79184d681b895c27111ef7","tarball":"https://registry.npmjs.org/@4c/todos-api/-/todos-api-1.0.2.tgz","fileCount":22,"unpackedSize":309624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYb2XCRA9TVsSAnZWagAAnZoQAIEN467lz+bXKn4AmRw0\nbY/Iz4jKqbzqCtxYsZigdxp0dyh67UHLwfskr0edPKXDpkh4YdJW+8YofjDL\nqgAEN50PTjhRhjpWnDkOnqsY3jB/4IoiJ7pUir1O7eTChRaOQPURKdrKcvim\nGOw9ZLDgfs3Go4IaOIceuAccah6ehLCLgGR/qclOTe169y5oK5OBGGrMurYo\n/9sjd1XxGg0hETP6T8qpF42FKisbTjADEhULtGxBQS0Ow32QP96FLAyETt/y\npcFhh+cDeS1qn7phZINMVvZ2gz1a3LAkbQWk8LpxrWTe7XfMZRRmxNWJrtKg\nvoRDeo56UEpspYivYyip3SUrjgnnHZkkBu+8YxN+iEYFoIWFlye/4Wl1KdMP\nBq2mEp6zJ9078x++7DjsdZFFaY5T1uCg3NVMXDXPNXWI0o9zuHd65GivT3+E\n/YLBErfzxn+zl8BekInihlT7wAZNNkDHV2B54uL0VABXXCRCMd3t9AG4Uw8P\nWRt6E7XvmYgx2H+BedVVGsegoCBupGYVWZzk9lskz0MZYciiZyK+W9htwJGX\nLYqwb8CPc/Jm2c3pLk7f2q3SMxhOQQVdG+CaK5YfSc8NZkVqNwq5HCXZN96x\nOl8S5pwBGxn405fobjsCSQjquKhM1n2xT/9E8HYlVV1XCLDo6DR+gLCciSuH\nHvqR\r\n=Gfof\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3LpmTwISeptGmqSTKSaaw48B12IAG/e5ihzfRP+2gVwIgL0HC3YNE6K7ZsbmmEdgHWFEgvMtastjZ9IZ9LUkQaE0="}]},"maintainers":[{"name":"itajaja","email":"giacomo.tag@gmail.com"},{"name":"monastic.panic","email":"monastic.panic@gmail.com"},{"name":"taion","email":"tesrin@gmail.com"}],"_npmUser":{"name":"monastic.panic","email":"monastic.panic@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/todos-api_1.0.2_1549909399366_0.2390935661019271"},"_hasShrinkwrap":false},"1.1.0":{"name":"@4c/todos-api","version":"1.1.0","main":"lib/index.js","module":"es/index.js","repository":{"type":"git","url":"git+https://github.com/4Catalyzer/todos-api.git"},"author":{"name":"4Catalyzer"},"license":"MIT","scripts":{"babel":"babel src --ignore **/__tests__  --copy-files --delete-dir-on-start -x .js,.ts,.tsx","build":"yarn babel -d lib && yarn babel -d es --env-name esm && yarn build:types","build:types":"tsc --emitDeclarationOnly --outDir lib && tsc --outDir es","eslint":"eslint . --ext .js,.ts,.tsx","format":"yarn eslint && 4c format src","lint":"tsc --noEmit && yarn eslint && 4c format src --check","prepublishOnly":"yarn run build","release":"4c release","tdd":"jest --watch","test":"yarn lint && jest","testonly":"jest"},"publishConfig":{"access":"public"},"prettier":{"printWidth":79,"singleQuote":true,"trailingComma":"all"},"importSort":{".js, .ts, .tsx":{"parser":"@4c/import-sort/parser-ts","style":"@4c/import-sort/style"}},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,ts,tsx}":["eslint --fix","import-sort --write","git add"],"*.{json,css,md}":["prettier --write --ignore-path .eslintignore","git add"]},"jest":{"preset":"@4c/jest-preset","testEnvironment":"jsdom"},"devDependencies":{"@4c/babel-preset-4catalyzer":"^4.1.1","@4c/cli":"^0.6.0","@4c/import-sort":"^4.3.0","@4c/jest-preset":"^1.3.0","@4c/tsconfig":"^0.1.1","@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/preset-typescript":"^7.1.0","@typescript-eslint/eslint-plugin":"^1.1.1","babel-core":"^7.0.0-bridge.0","eslint":"^5.12.0","eslint-config-4catalyzer-jest":"^1.1.0","eslint-config-4catalyzer-react":"^0.7.0","eslint-config-4catalyzer-typescript":"^0.10.1","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jest":"^22.1.2","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-prettier":"^3.0.1","eslint-plugin-react":"^7.12.3","husky":"^1.1.2","import-sort-cli":"^5.2.0","jest":"^24.0.0","lint-staged":"^8.1.0","prettier":"^1.15.3","typescript":"^3.2.2"},"dependencies":{"date-arithmetic":"^3.1.0"},"gitHead":"db8379f6dbe552551a046b9218ee58dc0b244448","description":"A fake, in memory, backend for a todo list server","bugs":{"url":"https://github.com/4Catalyzer/todos-api/issues"},"homepage":"https://github.com/4Catalyzer/todos-api#readme","_id":"@4c/todos-api@1.1.0","_nodeVersion":"10.1.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-S0pkQGzi7woqxuXh8YvVo4bnjj/gOZmrPUud+34ZS92loLqqO/DmHHhNMPpkbz2jYiwl1yyX5ipkGrg3Z9G3Mg==","shasum":"b5fb964cfba9221593bf038b5d7a4e9147e90b34","tarball":"https://registry.npmjs.org/@4c/todos-api/-/todos-api-1.1.0.tgz","fileCount":22,"unpackedSize":331742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciPU5CRA9TVsSAnZWagAAVbQP+gJEgfnIBhFcwTIAA4ZH\nnVlmr0eeDYxtDmpuFvu3oxXEFuuhyipEnOmHo/CAIaM1dTc6z64eDSdBOn7u\nLu7ryfCHMjP4CxiCvEx8sQ51F+hL06Mxh7zgHUw4L2v8kqoMk9aNiC6Bnkxl\nUYQWlYz750MWJln34v+N8k9rQim/vTNa+tDIVmIzi7xuEkxIiNMSRXQa38Uz\nUqDWbnl4ERrekcB06EMDnVaqtMJpejbCh1hwOB7+/xZ8/dCeQk2cSqzH+LdK\nLBaXtKDLYdyGFRXUGD1pv80c8zN9WIt9WXGB5jEM8/4bihYGm4iYPV9NO7W9\nkNqopUb38ibvwMlYUTfCLQONRT1e/YmQ4msfxUUQsgc6B7zYdHyFfUwE3o3G\nedXgAfxcfcI/BpFUXplZJy6kSCJ1wt+vPkezZ1leKLNZEn8sTFD6ADBv+8B6\nkn75vQSO/HjJWle9qXB4YuTeEH1Rn9zKrM53APiLijnOHmvc7eF4mBSuh/EP\npauEJeezKHPTKMVtHxS5pJH9dXy4qRO7JF0Dtz1cD6TzAkTAFgl2EXOANibG\n+N2L0o5/e/macoLD3TUyi7m9HHTHBPHemtDDN5k1cYtVqxIoU4pix10r/Iqr\nlk4KIyMV02TKMR15wiXQZJfuIjFAELGvrht7zxIpb8MfUZtOEaR80jNgkhfv\nqwiC\r\n=W7A3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG586eD9ZBMClY24g8EBYthG9fl6XJdrw3TN/CCAcmLHAiApeduFbLnBNLtZ5Ybn2Dy2X3KtKU9qcATNonkv9LWfgw=="}]},"maintainers":[{"email":"giacomo.tag@gmail.com","name":"itajaja"},{"email":"monastic.panic@gmail.com","name":"monastic.panic"},{"email":"sloria1@gmail.com","name":"sloria"},{"email":"tesrin@gmail.com","name":"taion"}],"_npmUser":{"name":"monastic.panic","email":"monastic.panic@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/todos-api_1.1.0_1552479544539_0.07044320323619502"},"_hasShrinkwrap":false}},"time":{"created":"2019-02-11T16:58:14.659Z","1.0.1":"2019-02-11T16:58:14.929Z","modified":"2022-04-08T14:00:57.049Z","1.0.2":"2019-02-11T18:23:19.463Z","1.1.0":"2019-03-13T12:19:04.708Z"},"maintainers":[{"email":"stephen.liu@alumni.stanford.edu","name":"stephen_liu"},{"email":"monastic.panic@gmail.com","name":"monastic.panic"},{"email":"sloria1@gmail.com","name":"sloria"}],"homepage":"https://github.com/4Catalyzer/todos-api#readme","repository":{"type":"git","url":"git+https://github.com/4Catalyzer/todos-api.git"},"author":{"name":"4Catalyzer"},"bugs":{"url":"https://github.com/4Catalyzer/todos-api/issues"},"license":"MIT","readme":"# `todos-api`\n\nA fake, in memory, backend for a todo list server\n\n## Usage\n\n```js\nimport api from '@4c/todos-api';\n\nawait api.getTodos();\n```\n\n## Interfaces\n\n### `Todo`\n\n```ts\ninterface Todo {\n  id: UuidString;\n  title: string;\n  completed: boolean;\n  labels: Label[];\n  dueDate: ISODateString | null;\n  completedAt: ISODateString | null;\n}\n```\n\n### `TodoInput`\n\nA 'partial' `Todo` for patching, updating, or creating a `Todo`\n\n```ts\ninterface TodoInput {\n  id?: UuidString;\n  title: string;\n  completed?: boolean = false;\n  labels?: Label[];\n  dueDate?: ISODateString | null;\n  completedAt?: ISODateString | null;\n}\n```\n\n### `Label`\n\n```ts\nexport interface Label {\n  id: UuidString;\n  title: string;\n  color: string | null;\n}\n```\n\n### `LabelInput`\n\nA 'partial' `Label` for patching, updating, or creating a `Label`\n\n```ts\ninterface LabelInput {\n  title: string;\n  color?: string;\n}\n```\n\n## API Documentation\n\nAll methods return a `Promise` and resolve after some simulated latency of a few hundred milliseconds.\n\n### `api.getTodo(todoId: UuidString): Promise<Todo | null>`\n\nReturns a single `Todo` object or `null`;\n\n```js\nconst myTodo = await api.getTodo('25ba9d67-3741-4513-895e-06f33ef6a509');\n```\n\n### `api.getTodos(options?: { filter: Filter<Todo> }): Promise<Todo[]>`\n\nReturns an array of `Todo`s optionally filtered by the provided filter (see the filtering docs section);\n\n```js\nconst allTodos = await api.getTodos();\n\nconst completedTodos = await api.getTodos({\n  filter: { completed: { $eq: true } },\n});\n```\n\n### `api.saveTodo(todoInput: TodoInput): Promise<Todo>`\n\nUpdates **or** creates a new todo, depending on whether the input as an `id`. Updates\nare like `PATCH`s, meaning the input is merged into the existing todo.\n\n```js\nconst newTodo = await api.saveTodo({ title: 'My todo' });\n\nconst updatedTodo = await api.saveTodo({\n  ...newTodo,\n  completed: true,\n});\n```\n\n### `api.getLabel(labelId: UuidString): Promise<Label | null>`\n\nReturns a single `Label` object or `null`;\n\n```js\nconst myLabel = await api.getLabel('25ba9d67-3741-4513-895e-06f33ef6a509');\n```\n\n### `api.getLabels(options?: { filter: Filter<Label> } ): Promise<Label[]>`\n\nReturns an array of `Label`s optionally filtered by the provided filter (see: below);\n\n```js\nconst allLabels = await api.getLabels();\n\nconst redLabels = await api.getLabels({\n  filter: { color: { $eq: '#ff0000' } },\n});\n```\n\n### `api.saveLabel(labelInput: LabelInput): Promise<label>`\n\nUpdates **or** creates a new label, depending on whether the input as an `id`. Updates\nare like `PATCH`s, meaning the input is merged into the existing label.\n\n```js\nconst newlabel = await api.savelabel({ title: 'My label' });\n\nconst updatedlabel = await api.savelabel({\n  ...newlabel,\n  color: '#ff0000',\n});\n```\n\n## Filtering\n\nBasic filtering is implemented for API methods that return arrays. The filter\nobject allows filterings on any of the top-level object properties via a small\nset of operators. Below is a contrived example of a filter object:\n\n```js\nconst filter = {\n  name: { $eq: 'John' },\n  age: { $gte: 24, $lt: 30 },\n};\n```\n\nIf we applied that filter to the following list:\n\n```js\nconst people = [\n  { name: 'John', age: 18 },\n  { name: 'Jane', age: 32 },\n  { name: 'John', age: 28 },\n  { name: 'John', age: 45 },\n];\n```\n\nThe result would be: `[{ name: 'John', age: 28 }]`\n\n### Filter Operators\n\n- `$eq`: returns for properties that are strictly equal (`===`) to the value. **This is case sensitive**\n- `$neq`: returns for properties that are strictly **NOT** equal (`!==`) to the value. **This is case sensitive**\n- `$lt`: \"less than\", returns if the value is `<` e.g. `4 < 5`\n- `$lte`: \"less than or equal to\", returns if the value is `<=` e.g. `5 <= 5`\n- `$gt`: \"greater than\", returns if the value is `>` e.g. `5 > 6`\n- `$gte`: \"greater than or equal to\", returns if the value is `>=` e.g. `5 >= 5`\n","readmeFilename":"README.md","description":"A fake, in memory, backend for a todo list server"}