{"_id":"@apitizer/endpoint","_rev":"13-5a2c3f76f0bb19d1b4e885c17af2b1ab","name":"@apitizer/endpoint","dist-tags":{"latest":"0.1.0","next":"0.0.4-alpha.18"},"versions":{"0.0.3":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.3","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"dependencies":{"@apitizer/query":"^0.0.3"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"b71029435096f566c164e91ba63aae36920635cb","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.3","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-dyNSv6WgMcC7Uo2W1dzl95rq7xTB5719LM53a2sDKDveFQ0X188XSAuq1vAT8vUPdmzoJic7VLNY6VY6NnUTTA==","shasum":"1b8efbee45a935f8c7e7d1e735e3f70e48491808","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.3.tgz","fileCount":7,"unpackedSize":7750,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec9P/CRA9TVsSAnZWagAA2ywP/A67JAM+bNLZEfCfWe/+\neXayGM0ymQs5FXbkAjnn0P0RWC3Gyd8VzLFshz1I0ak2F0m/G3ZjxCH8pSTT\nkvgRAbfQyIJOVupAu4O9ulhEKwGiVe6cg5+3v7PwIZqlfM1ulraVbEFWrjYs\nuNDnI5LH8qiANMVAYXu7ZlSSsyBKlcZIzYs1PKD9IepIu2aZ9qwPP2B1L+AI\nttgjSMYNcN5mrAf7BVNM4cfq1TC4ireiIM+HIG1Dj5s+SKgZAh15lG8D6G3e\ne3B3ySQPOw5SF6Op+agOvJBdjwMEpGApb8eo4bIrFxYEP+FoSfjSIOGoroiH\nZdn3ottSkyj2r2gnpmCHN53gv4vyEizRbc4wZXQjHunQNsuBHqJtEpofVggs\nims3ilzOAqFAAKTX4462SXapDiYbe8b+dyFpdDu7hfSXMWHtM8/yP7GMCKxZ\nW7+sHDXRu35AUjLbQNFerLRPJAfBmdi5M/plHKlColfNDnmhrb5U15/1E/kU\nvknGq2IwvENr91mU4cvcQSrCEvcKpxHU911sPyHdmrheLq7r5ohX7Ap1eVS2\nDwAsff7qO4KqopwQBv/FKAfC3FkHNEP3Cmb6OcgbN+UEhOvQ7zmG2XavpttD\n+G53fgTah/NBhGi3uD610eBz+bjZ1QcA9W1fXZNSkaNII0is+03OpG+kslm2\nhroq\r\n=/bu4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1SY7ss2RAnxM62d/xcI+X1ISf8IMaOfitbW/IxyaCZgIgXZFnRrfUSsosCiEgetdItL9lVO2Hd9oUyi/VFdG3yVU="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.3_1584649215165_0.08148626467811004"},"_hasShrinkwrap":false},"0.0.4-alpha.0":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.0","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"dependencies":{"@apitizer/query":"^0.0.4-alpha.0+b710294"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"b71029435096f566c164e91ba63aae36920635cb","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-ifWCw4cA+wjsvvds/8KmXfcTTyoQb/EaibfeKnK9ZNN2QtYOZ7OJHPyLnAnNBE6iFceWGmA0/upiQWZ9JgDpQg==","shasum":"482924c3a29605c11766c5176707d12bc03a3258","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.0.tgz","fileCount":7,"unpackedSize":7782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec9UJCRA9TVsSAnZWagAAHV0P/RFbX8NwViq3wk1BZu+y\n8aT5+LQayqfhBF/XEXgVEAe/evfLlPzc03hYWdeGfWBQqG6ZOCmLJjeATTCV\n77eXV+zU7lhhEBV0ksA/rx5JzapTV1MHkTIxnY5jvsNkXe25YpJFmeO2aXAi\nkTqoWSj5AeZGzK1fxtlgT/q0rq9eX5LjKml6l61Oyn8Kkg2p3BbcLFZO4ezj\ndYFJW7m1g2yh73o1655LbuMkta0eowb/wGHf3H+a6kPlasHDMieUjqtMKM+0\nyWbP3V5K5phlQdJIY60wcNBJXDOkkI/dugTpcNibTkk65fbfbaFBWt/TsgEV\nIdlbmfMsiJevwRuimo4OUFFADaZsBWkPcCGSEo/DAIZUyDdY1CtK9OCd9csf\nddIDCSEH4JwRXfRSymO3ln2+BeK8wPz7oPs7IZ2wZCEhmLcJbs7nh0gh/qkR\nuC+9S4EVCtRA2Sz+DruCDNuhhZy3sdiNa6CqW59m97VR8kxmGFkRq1L2nDGF\nsaOOCrSe/nZBKYm3+8aBN378p7L6gHNgi8zbCfMkC9P/hPLeDEO3i4AQiSKT\nYbF4KGbWboqDd5Py9MAD8VHX/BEIdud6N3juoz92qWSkodEJOKuV8+qP9El9\nxsjHjT//sMV2uOI0ASFslCwqo1IRJpLeowOIDAx8SE3b2IFSDSb0gHCWNp9e\nvLNx\r\n=pZ4N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFMb6HeSoPknyM/GMShk28OcDYDCYhChwccVirAC9WcuAiEAsVqjEm3UHVT0ToR8vwFjg2LLSIaltaKH2buTZWxDAPs="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.0_1584649481603_0.025526821621726148"},"_hasShrinkwrap":false},"0.0.4-alpha.1":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.1","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"dependencies":{"@apitizer/query":"^0.0.4-alpha.1+5414e9f"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"5414e9fc1061d94b610e2d004009773680b5bc9a","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.1","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-VQkbIx9kwAZ7XnT5cHNVlyGaJUo1d5Z1jJLF//gjWf/o+PhqafcoPIIEpMcXCAPqrVvkpi6z1R6WXC7yDpuaqQ==","shasum":"0d6c5c5da28eacff4415d33fed511ff0075f5ac1","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.1.tgz","fileCount":7,"unpackedSize":7782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec9ibCRA9TVsSAnZWagAArQoP/1MKk0cSFwW2NxVDBQef\nj6TSlJs94CCC6/OobvwWFgzKQN173wcTFdLS/kLxBbPArDbn8OInjqBosjIv\nyxcbeqXs9Ce4e2j9PEc/dzIpH9Vt2VKEuO0qIZUYE2/Z0EYO32xY1Fjc3W4y\njSxoW7NbS0Vto1flq5KbVPS9j6uaCVz70Ki55EOEmfiSJlMbml04b181wWfU\nSkICp63sIUteDtwGDOHPzkVKkGUjh83PfVvPMAs21IKOlNRhbxiGkZdd6wrN\nmyMy/sGGX7zSer/08fORv/xsMeXGKW4hdGJMK4+YzSgDl4ZNGnCkRvFNgF5D\npmoHvmehCeBWxvvpnLzq8y0atuvY5dI1yBwKA4Flm5LHL0HjIoAR5+JdMkAd\nNw4kXF1TnkAsZsDzUhrjmrEHF+tUCNlGUfhi1OHjfrSc8DulvkrR5nGtU+Sq\n5tq8tiHAp04JJ1c4JEQfQ81D48Lw3lwQ9L/8yYAiraNK1Wo5Jt3f8GZ2PP5j\n5KHcToginl6k7cQf++ki1Zgw7BZhMMAv4JiIgUNQvc0NawhOlJyI7C3JQEJ3\njEPuiadxkdOwaClzGlwAug7/JjZNA9nwdNYv0BcAXxQtf5Tz0vkjOmGF0u5m\nQlyK9mqjDl0sqEwmMV2D+RS7NfOgHA6kQrmETkfN2Lw2ho4OUTAUbzs2onou\nMAeS\r\n=Z7vt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCltGS6DY4REmGDsYYHGnnTa+0BoTVKkHb/i/jvTxvPHwIgCjYUcSzrKH8tmzkdDyTMSjIru3BxDAWaYuPwTSjWUNs="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.1_1584650394630_0.8141921419082121"},"_hasShrinkwrap":false},"0.0.4-alpha.5":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.5","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"dependencies":{"@apitizer/query":"^0.0.4-alpha.5+b2b7495"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"b2b7495e4a304b996d54d19607419d1c7c2b0613","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.5","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-JkoBbyG1AMd1/xzww6Af8rbleFtp0bgmsTG+LLg7UpwrXImWEjGGHA2lXcMKhUc2j6OkULJwporWE2rtg+j5dg==","shasum":"894638230d4eac00acf494cef2329ab6e22a05bf","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.5.tgz","fileCount":8,"unpackedSize":14658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec+TSCRA9TVsSAnZWagAAWdQP/RVMC52e2en8Ro8bxq1C\nerljoenIXaNePhRzxenczaUlOod21ukJZxeYj3MIOU6/Wfgg+Eg7RWEnrv3l\npPtEzitwaGMtFQkpl7FQGV2hVSa5ZMOpgIei05iQqgWKVEvHrL+NoXUnT5FA\njkTlAfLUWLkZGYqK92YcTSJYckzxMVDl8vdwp0x+5/JOi/hkL2pHBCFF7pkR\n0wMgUFzy8sVdF9ho9grUzw1MePqdd8ctEphGpQw7vJo8dwhorN2QEcl5uOy3\nYCBd/tiGtqr7dxOi77lPJbGLXAhEmFLcCc42Hv24srjlaA8zItmV7PJHsy/L\n275FUS+vKnqHi/iTq8MWUNVc7+NGIeH8DpBl8TxDYDsCcBg5gwqelsnDDSz3\n137itJ9sP6MFP8yfLOaatwjF2DPnKqVkvu6i302/k3bnRZhIWLaMGuzstFDA\nOkNhfkf+pL7IEaE1fQ72VNGU3D2USEgP2nfvjFQ3louB2K97rMMt/tbUfTFS\nClQqOSx+cdF0jJ2V9BADqEpMp0Gy2RB8wHL6K0XS4LMLWddDYFKMNpVb8Jri\ntIcyk7ySPQLFR+hT37EoWXExyGoZI9WRHX+8jvfTkoZz2tNQT1jU6GOAayh5\nvhroXcCfCjmx06gHI10+/ventuXS042QrSVb9ifpy3LeYxaeCPM3i77bGoq7\nCQYG\r\n=OSxm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEvC6upYsnUW6krHnwVN0++F5/8DVt9Wrq3M//U8b0ozAiA93tiQ2pKvfO79FHZ+igEMRmh51OGO4cVnKN/BNP1iDg=="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.5_1584653521756_0.9733853914858566"},"_hasShrinkwrap":false},"0.0.4-alpha.7":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.7","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"dependencies":{"@apitizer/query":"^0.0.4-alpha.7+8879e68"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"8879e686824338f821359de2f83c8ad83ffd23fe","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.7","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-STug27LsywumaWg2JCeqPsMn4E+lKKkArIznB5/382MPcP1J5xxtVciK99HKRxJ8vEHI13+XM3PqvPrLb2TiNg==","shasum":"7f580731e9f40217aedcf3d5206879cd420665ca","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.7.tgz","fileCount":8,"unpackedSize":14690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec+YMCRA9TVsSAnZWagAAAn8QAJFF9SX0JEj99FvYGKCE\nchDO0DXGhvFrFwjZ/lwec2mrpOQ/nUpB+aKoFCR7hrzm08j8dP13j3GDlGR0\n0NYHkKxOBnxJb5wciWfU73ykLRRD7Nn2faLrYVvvEGpDXkXl9YIyQNEs9sn0\nOxlhGnGSN+zc6E0clf/Af1F0e+SQ8PLqfFbFYpuPRj3ODmZ0GszlfqsAOPPq\nHa3yGW8PfQeRcx4egp5EjDX9+0f8jbMXeV7jXTq9hu6meALpbuQuRQp2ETxf\nWTAXpiLdUCQPSuVfE7ZtLL0iOPh3FCHSOV6KeWxzv4ThDAW7HlpUUBfAJj1S\n4d25eZtEtYtzsLWcn2aTCabt10CP/mbOEsxGfntU9tlB3yVSKEgPxrFmDN9u\n5Gu8FzyCXFC0yl3fKZV0za+IeDPhAyZCsx1SDV4dXHX6EJ2pUZYnQvndCVrl\nx7bZE330oPTs1g8UvdZmtz8ZgBX/3DBqTug2tcy9Z/3wDmr4b86j1+OeqeZV\nkOPg9JNhh75KQROa+aqtviagPtZp9TncwiNUFSSRZJlZ4jXO8x+7BD6jAsLZ\nH4faZZoT47TncMwsYcVGYvAaY9AaQCTncribM2PunEWMsrsy9tlEGIgFHZed\n3IB9iBYtki2Lo/dO2T+e5VSSFcLFmHv+01Grgc/IOT94nqatknY3a8IA3mm5\nWA8t\r\n=o7E+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/Qyx5le+wd2yFhNSGPbugINQME3nfBwhiYpyO8CkYpgIhAPMIBJzSx6CNbKdRCZFdZh4zbd3+rIqU5j+KO45DcF0t"}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.7_1584653836479_0.2831574052223915"},"_hasShrinkwrap":false},"0.0.4-alpha.8":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.8","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"devDependencies":{"@apitizer/query":"^0.0.4-alpha.8+8764abd"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"8764abdc6ecae8ba4b9de3217fff94e9d8af2d3e","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.8","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-wlt9UsckOTQ0/q0EdTypPmLCMSe/v7ORY8zeb2+CXe3cxCd1hLo1/UA9+tK1uJmjigq/70CusdlyAQiJNa0kcA==","shasum":"c891540e971b1d9be53f0a3dd48b3795543708e2","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.8.tgz","fileCount":8,"unpackedSize":14661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec+b5CRA9TVsSAnZWagAAl58P/1CSGmrT2kyN3t8sXiGs\nzZoZmjTzGxhkoTbAUQR9Y2aNoJSxY1AH4dGC99P1c/COFAD1BynrmRYgNhfD\n9bP3a8QSAtblTWYuAv/9FIlYYfQmyBYDs8Prk3QbDuEAU57v4z8Nhwn+RjIM\nHEXsX1bXUEnSFvAw7ZqRtXv0hx8Um2YCbaRa4t7qC2pWIn9IYNAxkzRDJWs5\n7jVIgcv7KyEzLjXVZgCf3G901ZUS/KyFxkllivDokbk/vDVcks+qHqoLq1mG\nSr0S6Uw6N2XGGjAdWf67sEZPEeqcCKiP7VwvU10uzIkOlm/cLmzukbpAf1c3\n4QpZ+ZdtAFy+DQYlARWpMZDaalo7BDSIkkMzmSSNLY0t4mPYNU1HwVJMeuT1\nTNUihWf3t67Uv+jn2NoxBQXoo+Y1TxyW3hdLmZCpFKYiFCHdAwnuE+nr+Saj\nEB+s7emZws/QHA7wzX7NMSB6UfygdfgX8aohsyl6fU07BNypCr6+x8CokQRi\nXTKHltMG3WpyGu3q3kelkMMSu2sezA9jki97Zs9o95hGKeX1P4dxShzXf69I\nz86xrd1nbQUJQWnNIYOlS00eYNx4eEK34IeYq/Y+NSCwo+sCGI6qTkHiMoSQ\nsWIZ6UFNPPWD31lgZi4c8bNCLrIihJk4J3wvPXVQ4rRqN+0IElin1de6OlKH\nckSM\r\n=tSo0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxsIg9iinCkqxRfn6fDCDgwt0bcB600bppP3A8uEodYAiAOEuD1m8f7jsM/UIy0qLmJs94A3gmwP6WSbBxm5cuEiw=="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.8_1584654073102_0.11414787077433042"},"_hasShrinkwrap":false},"0.0.4-alpha.9":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.9","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"devDependencies":{"@apitizer/query":"^0.0.4-alpha.9+2a7fdc9"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"2a7fdc9d61040f227b7156bd5dbe4b32962335c5","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.9","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-Eg4LSO3/Yzx32JcTw3ZHds1mN9gLJAE/81UghKX7SK7R/jjaWoreGlpQE+GAWCqzAYyzB+6pdhEsPqeROCe+ag==","shasum":"9655cfeb464ee34de0b214c483ab998661eee7e7","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.9.tgz","fileCount":8,"unpackedSize":14661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec+mBCRA9TVsSAnZWagAAbQkP/1ZqhlFQ8ONb2Ac3r7Y9\no+moNCflRyeTMWLTA/BfduzklI5PekTCOdja7E20fivUlWgHiR762GsL5ykZ\ntm6rAxdy2XQEWM/jw9q6ZCSwIGDbZvICXE26l7pZ54Rl75Uvv7u+9ta8yyfA\nvm3S4RONRfSM9tLup/HHczmqiDA98RI/pYN//cj3y5IZKJU8cfxzIQTDgr1g\nfwCIYu3CB1na0R47kjWspySJ+o86fNSf4ES6qiNnLuuMYguW0CYGOc8dSkLg\noFXtKdtoaDbdkA0MiKR5RmefkdKmOJ7pVt/GMl70ohAzV2vKfSNtYmFrUZPf\nv667Gm5RkU14zOg6NcYpOuz8lZ0YBlsXZEhDkhh/Mh9UbLhFBwXFGQDaHnUi\nsMrnylw1KVGLy+YRCE9JBVbZuGOBUyAIM5dye9TqePuu7YphQ6Krj0uW09Us\nim2o6oafVZXDdlFrrGRGk6YrbJfjfFUIBNw4EUjQJCeLfWkh3AuRLsiQbLwQ\nWY98l8lwjnHFHhgKbwnoEOS5ZnNVkqdVgJfoDqKdLCL7/+tqGClyYVZGn7q3\nfOCRz8qaze93203rFXOOpsSqamLwAd1sWH0SX37LPEZpzwTwrU7DPNEahG5P\nENRmd5snwl98aUoFd42aG2K+vQfFg1mcZjAj4XSI/5FmJQ2yYnNbMYFPeuUR\nMqfv\r\n=KTQ/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAJekvUmuKRhHG4pO+CpJvNa7p4Ml7WvYshRH6CSy+7gAiALIEvyp+3oKyeuJp6nRzjatLkWHi7edILmCxgYQQnIfw=="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.9_1584654721406_0.8364382376183814"},"_hasShrinkwrap":false},"0.0.4-alpha.10":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.10","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"devDependencies":{"@apitizer/query":"^0.0.4-alpha.10+5085c33"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"5085c335fd7bb7bb5921fa6cb0f51443ab269117","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.10","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-oK1TLSbG/Lc+zMyWkEB1l3Ch/6a2Voq4Wx4YP1/wZ7NLGOHCIKOB139o8IT4HPwIywmsQLfDB77zHJVASusgnQ==","shasum":"f3090222abb1168224783fddcfe2bba3371d7fbc","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.10.tgz","fileCount":8,"unpackedSize":14663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec+qXCRA9TVsSAnZWagAAe6kQAJuGO7NGCtjX9B67/NLj\nz4HqylIfNhUKoGVrblz6vF0t2RYoUSJiCsF6oYJHoxBrmC6j3y4xug+/xs8J\nEJf6H6vd6zCHphoFHqaFlhSnmoO8LBv0H8Q+946L3S5ZsFBY55e0FVGAuI6c\nUOsxHSQfL2xEF+DJfQZ6JErzXxKufX9HA8cFD6bazTuLALLf6gJekZ3HoKWn\n1FVlxlNcP9797QF+20gOPAY9zckUr3YthT1XfkKcAwlO88rd/AYIUqoFGL1g\n2isyU08khAPzfjvB7whsAM7meAeB9TPrxCw5WJNuryMJD4P/mFDvkuMSh9S3\nFISIIJyxuv5Va3bSgLayH0FnvRwNOXsW62tu+P6JxqUlTUi5fLd7QAX7XXMN\nGg4eVR+Tz3+GHr7luTRs09pP5O74/A+FMSOflaI/zGifg/FPyKdcZuC98oz7\nqGET77bqYm9pJYwqQbTlL0HEclujWJOdUKi1r29arAaHDfd+4pWzCFqgS6Ds\nrYTRw5XyKFFRh5npS3z2VxCU4e1YngWQBxJ9a8rmR8aYQuIf4LpGKmzw+mDX\nhEK7ocMTgDL/2cBltjhulrZSwGslRvAUF5vjp8HbaMny1cguKvaUQ+YfrIwD\nBzPobWjDFFnzVr2VzHJVwKAdkBvjymjFmbfQrL7F+KY96PpNdR7+8x/8nKTJ\nyQmu\r\n=XMCK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDACrnNY6PT7hmFnde4DcBhhsdMICQZC5GQVmdhmC7ZRwIgENSlCEETi38HYMU+rvHu8RHARumVUq/j9I5NA9YMcQ8="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.10_1584654999485_0.953005390289982"},"_hasShrinkwrap":false},"0.1.0":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.1.0","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"devDependencies":{"@apitizer/query":"^0.0.3"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"aece60e0b0bd15add6dd7315e1579cc276c8eda8","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.1.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-oesBdE7Pkgxei48TIuHbCdclDZWsUBbdwhiokYA7/knyECVGacCPcZyJpLF4HLn/h8tr1ORyyeq7APE6jw867Q==","shasum":"b2c7fa4dab522588f32eff8cabf8a2774cea91e3","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.1.0.tgz","fileCount":8,"unpackedSize":15229,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec+wOCRA9TVsSAnZWagAArQ0QAKPBMOC8X//KerN0m5ak\nRyZ4BUQPk82X/rmwTu2vA46DT8byw/P9wOOXg3PTq/rq8XT0i7SIzCp+4XQT\nSb9HmN0drWBEl5/ApV6bQtD/ii4IKPHVBWlrWm+n/JWTxuo9uE+Xp/KyiQGj\nnQt1Dzollc5ohytG1iiCfLGr1trr+Qu1KR8qx89UWpHMbnJESs5/z7kg+Ofx\nt624VUxcNwThsBYqMervY6GkxIhz7ZZPdDCV4EeMnHYLloJIsLnYJf3yN6Q+\n3EWJ4qEkXTxDDl2dMOnppE6GZrbNNZbFS5wGQpmqhGR7k13Gg/BMdoPOagVU\nu7iY+Ckpwzl7tELpZppkeUmQT4MLiQ//UzzpN4LuMZ+xORQk+KoWO2UNQuBm\n36YjX8P3GCyfHgd6tykMq9AGhdNakGIZohlAkMNRGWND/V7vs9ay8BTCvB8r\nWHn9iL0l37sATLa2L0DdvjDL+te86uUYLXzJoauaCKzhYn2DicqMf97UCczV\n8oL7hHOc/qSGRjzQ8qr+2GcYBzJCT9kUsWDXCR8bMiq+5y2Ht0p4SKqONkHZ\nCa+5mEJKv2xQV6RQcSXr1FbR45XgzMt38lD5BHDhYnrTFttwr4Y1jqpK8t2x\nWaVgLADzPcUgUDHXo1lJQ+v+7dJuxzOPNTsSkDvmyKUMvLAQ9NPIcp7FkuE3\ndL+6\r\n=Oq1j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrdbnnnfTBdyVjyUTOpHE/AeLBqPDOaTRoGZeVWCsowgIgOvHWVaqrHzDY4HDdmm3fVFxWp7Cg72zF3n6+UVmRUzk="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.1.0_1584655373703_0.7786267292239415"},"_hasShrinkwrap":false},"0.0.4-alpha.11":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.11","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"devDependencies":{"@apitizer/query":"^0.0.4-alpha.11+c8c02a3"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"c8c02a375e713ccaaa61fbfae0ebebb84ac0c4c2","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.11","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-71eMl4g9f+ZvopfBIQ50MfHUecYpruKGPGW2ZSi5aTlRJf+90tkw/Xwm5mfgJSWuZYiHTNd3ZunTA0hGFbd3Zw==","shasum":"d120c6b1ce3f20c9f4ca160df0b0dd877731b710","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.11.tgz","fileCount":8,"unpackedSize":14663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedADFCRA9TVsSAnZWagAAWYAQAKRF1/aJrr5o4Y4e4OAv\ncYvrODQ+M3yJUxGNW1/D6Pu+P1ZfqZQEu3BRBTBmiaE/Fiy3aKL3ajQg7j3N\nMV+OnDENBoN0JpOoNGdDUZDIR3lvV896VVvCrzah050P96ZX48VP9TrwPkML\n/j+IZEBT0zO9SeDtlzemBtzFjEQaQJl0f4ZeJXKNMC8rYATRz/KtbQUew2Fk\nxK8SACop0+MVsTfu2bCsESYexh1KVb6TiYKEHlE84sJjwkQEbBC+vLxx/h/k\nX94odHpMbdIuLt6anvdeCUYDXAILqMRM3dWVnYkIZtcB99IQWY1r4C1+bexU\nJaBIO7vDGv5AlDMwgNz0lJls/PrYnxBP/qrRDo5126Az0qFzp/rMzEJyM0Uu\n/cH/dvfxo0L0PWlB6gSjispJ2N6GE0Lm2VHCooywJPuN6/3r7hlJ0IBwS1VB\nZ47zsFKAVdh+D40UmXmCYQHbnnkjDPXv1RjJwo1f+V76u2tpqwXc/I8/HLFd\nT7HJrq1Xl1w37FhMobsFVwzc5qeUj3g0N+zD9kw9WMr4PC2wqBiCY5WFfnPk\nN9p6no8tDs+C+1rOF1YbG+zDyPtROMMA2cF3xHoaO+QZaWPUjiyDdvTlxn/R\nTti4GXRvjkKUy+Aahz35WATI1ktBYCkHQAo+kLEbHfwR8biyWrmDx1i2izPh\n3c70\r\n=DM1B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG7uCSkAZ179D/WNS0+XLKUs2MPHLGdTanDTg3UQOvoOAiEA6uh14zXbjvUIukDewbAFPQIdud/emH6FUDdL95m3E+8="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.11_1584660677497_0.9397499174231263"},"_hasShrinkwrap":false},"0.0.4-alpha.16":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.16","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"devDependencies":{"@apitizer/query":"^0.0.4-alpha.16+7dc72d8"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"7dc72d8f242d6be174ab1c936726674c738fde95","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.16","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-+wpHWWckHsWCsGVMblI5dAHgK6sKjFoXStn0XLAlIjt9PM+doKXGVTFLPpOxtWmeBuWijPR02oVjGcd+7tHmyg==","shasum":"d5796a2b715ee2c136bb594c944f0d4c18cae32c","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.16.tgz","fileCount":8,"unpackedSize":14880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedVOWCRA9TVsSAnZWagAAcSIP+wdgfla8kwBMFZtl0dls\nNlLTSi4q8bKO7o+48jBI/HPRDGwlCfukybs1U5eM/UlArVDxnXUQPkK2U8A4\nSoOgCIHoxcXkWGHX3RDO8sX8UyZEw4VGrrw0M1TS2EcP9TfIYP9tdqFiDkvo\nwfq//e1OIFeyvh2O6lyr0TFLUD/T3UOVaKfmWg36NMRY0A3PuVotktLsCf7/\nhOJARYl50m/FXKpTGvcq//89PkVsmrIuSsmVXY8nd0A8fT9viuDvSEsgodux\n3XuXNhvl00KCsSb7gzPkt1D4xIOsRhPznUvgU5vFWUNcvsOREhl655NsD8/I\nbsSpGwG8QExDR7m6IRTpm/cyWG2VhqgbxUuZS+nnbvU4eKtetPq4BIvu8mlr\nikFc6UcYXbcgm/N/JoqpVblLfr5hyio6oSfyASyy1VpXvokQGYDE0C18ED3L\nl/yfnoT+hWyi2m+J1huWWTr3Wjn2JctTbEioELPhB7ThWhqCrZz2lkQwcaAe\nD+9DFZNnxcItJKq1CITP7sYmpoiyGyaq8elhTo3Hvm+dOLr9yidO7X7GDrR0\nFuIbsLt4kv4TASy6hQ2mkmKrTYJNxH/PenMTsNRLS2NLS6XeALZqdG98sMUT\ng28gVnpKwsXS0B4ilRDnWc4rJ0VyEiTB3F/8WiksH3IcwR9s7CVnMCipVHBz\nzErg\r\n=i+WA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCEOzecYVqIlT2A+HCNdSd2DSknxiF2lQ/EWhxgFmN7gIgWIIlAmutO28FMdxSqA8qZ4Wzn65dRxSgAZufaS6aj6o="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.16_1584747414265_0.69234036337972"},"_hasShrinkwrap":false},"0.0.4-alpha.17":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.17","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"devDependencies":{"@apitizer/query":"^0.0.4-alpha.17+3f7d6e5"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"3f7d6e58042330e2007db0d1ee824de85d2e1ee0","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.17","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-iHOV0N1iyBwWxzZln7wXmwI0RcvU/JjpDLQ7mKZlB+p+fyrZKBgN23F3s2z9vcFOYcPATIvSoRW8ecYuoUqDpQ==","shasum":"c56d952eaf1a8ba58d8b09a10fb6183e8fa31f32","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.17.tgz","fileCount":8,"unpackedSize":15480,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedVS3CRA9TVsSAnZWagAAeEgQAJ1TYxngw1renzGaZ1s4\nwzY8HLvRWKueaGSPZ6c+d8fo1x5bdUyRtXqLIlH2NpEv6IujqMv2111DmfkJ\nAwI9v8464HQTImsM824jiUqNiIRgO322sQz1Hy2Da5LJw40NVaa6s8c1ji0y\neUmSzje6PM8Gej1joGr9IYWKhqs+ka7WKIFliVPbAajyYj34UnHRq8m2kLHn\nTG5WcoTJSHGboKZHaYRWP249iiY5pRekjLTFD6iN0ieXt/sZ4ZXiN/mE8jKK\nhxoJy8LiUavH1Tn+5yQLtsjs9f8saxSutMbjwrMUt/TKsUP00SDnSzSmqmr7\n0WxWSZle/cfK4rv7biH17aTLi2C+8HNAzxtXcHCFWXWEcjspgnCueNHnRnBc\nNPVNElb/T4r/KhUCp80dw/CeDci4hYPGRt3RRRqDMD3lPv3oHWvK1QdwhY9N\nC9rIlUTAY9NtS23Oux1rorqtvuL1YEEVLRGQ9x7EAOPsN8EKc5P+ovzyxBZd\nLp9kTSyZpp+DAJ0Vj+rKg1+yoLoPHhtTXPhz8Qg9+oJwnnYMJQLpiy7mNIcD\noIdpcD6G5tkxBC8ywl1Vv+f6Wsbh/ts7GfTLNh79jvYnSFt49hMHhIiKpYzs\nO4DVTuQU7nFD1pPV/LSjx4YwT4x4hM0Q4VFaVy0OPDtMV4KfF2VUf9xppJBp\n2w6K\r\n=Uxjc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHvf1DlS4kay+Q5GNs3vivjLUghW1VW9qhJt0zM+VjZmAiEAxCZcjS4LQ8lyI2AcTuUKcaNAEu2PlOmPqChgsH7O1lw="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.17_1584747702684_0.9268979009174296"},"_hasShrinkwrap":false},"0.0.4-alpha.18":{"name":"@apitizer/endpoint","main":"lib/cjs/index.js","module":"lib/esm/index.js","description":"The Endpoint Builder for the delightful rest api utility","version":"0.0.4-alpha.18","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"keywords":["restful","api","typescript"],"scripts":{"compile:cjs":"rm -rf lib/cjs && tsc --p tsconfig.cjs.json","compile:esm":"rm -rf lib/esm && tsc --p tsconfig.esm.json"},"devDependencies":{"@apitizer/query":"^0.0.4-alpha.18+9239851"},"peerDependencies":{"@apitizer/query":"^0.0.0"},"gitHead":"9239851db7b0623e195f574eedbac8d25c809a58","readme":"# @apitizer/endpoint <!-- omit in toc -->\n\nThe **endpoint** package of **apitizer** aims for a chainable and flat api to generate restful api urls in a semantic way.\nIt's designed to follow functional principles and has a high support for generic types.\n\n## Installation <!-- omit in toc -->\n\nThe **endpoint** package has a peer dependency on the **query** package:\n\n```bash\nyarn add @apitizer/endpoint @apitizer/query\n```\n\nor\n\n```bash\nnpm install @apitizer/endpoint @apitizer/query\n```\n\n## Documentation <!-- omit in toc -->\n\n- [Creating an Endpoint](#creating-an-endpoint)\n- [Reaching for a List of a Resource](#reaching-for-a-list-of-a-resource)\n- [Reaching for a single Resource](#reaching-for-a-single-resource)\n- [Setting the Query](#setting-the-query)\n- [Retieve the actual URL.](#retieve-the-actual-url)\n- [Setting Initial Values](#setting-initial-values)\n- [Templates](#templates)\n\n### Creating an Endpoint\n\nAn endpoint is created using the `endpoint()` factory exported by **@apitizer/endpoint**.\n\n```ts\nimport { endpoint } from '@apitizer/endpoint';\n\nconst api = endpoint('http://myapi.com');\n```\n\nThe returned object gives access to several chainable method to create a restful api url in a semantic way. These are namely `many`, `one` and `query`. The actual url can be retrieved by calling `get`.\n\nWhenever a method is chained, a new immutable instance of `endpoint()` is created.\n\n### Reaching for a List of a Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return an array of items.\n\n```ts\n// ...\n\n// Endpoint<User[], UserData>\nconst users = api.many<User, UserData>('users');\n\n// http://myapi.com/users\nconst url = users.get();\n```\n\n### Reaching for a single Resource\n\nProduces a deeper nested url pointing to a resource which is intended to return a single resource which is identfiable.\n\n```ts\n// ...\n\n// Endpoint<User, UserData>\nconst userWithIdOne = api.one<User, UserData>('users', 1);\n\n// http://myapi.com/users/1\nconst url = users.get();\n```\n\n### Setting the Query\n\nSets query parameters on the current url. If you pass an instance\nof a `Query` using the `query()` factory from **@apitizer/query**, all previously set query parameters derived from parents are discarded.\n\n```ts\n// ...\nimport { query } from '@apitizer/query';\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query().param('active', 'yes'));\nconst activeUsers = users.query(query({ active: 'yes' }));\nconst activeUsers = users.query(query().params({ active: 'yes' }));\n\n// http://myapi.com/users?active=yes\nconst url = activeUsers.get();\n```\n\nHowever, query parameters from parents can be carried on by passing a callback which will receive the query of the parent to generate a new query:\n\n```ts\n// ...\n\n// Always Endpoint<User[], UserData>\nconst activeUsers = users.query(query => query.param('active', 'yes'));\n\nconst activeUsersWithFirstName = activeUsers.query(query =>\n  query.param('firstName', 'John')\n);\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n```\n\n### Retieve the actual URL.\n\nTo retrieve the actual url string, the `get` method is called.\n\n```ts\n// ...\n\n// http://myapi.com/users?active=yes&firstName=John\nconst url = activeUsersWithFirstName.get();\n\n// Omit query parameters\n// http://myapi.com/users\nconst url = activeUsersWithFirstName.get(true);\n```\n\n### Setting Initial Values\n\nThe `endpoint` factory can be called with an initial query beside of the initial url.\n\n```ts\n// ...\n\nconst withToken = query({ token: '123' });\nconst api = endpoint<User, UserData>('http://myapi.com', withToken);\n```\n\n### Templates\n\nSince it's often required to create deeper api urls based on certain parameters, the `template()` method can be used to create a template function based on a factory function to create these.\n\nThe parameter typing as the endpoint typing will be transported to the actual template function.\n\n```ts\n// ...\n\nconst getUserCommentsEndpoint = api.template((endpoint, id: number) =>\n  endpoint.one('users', id).many<Comment, CommentData>('comments')\n);\n\n// Endpoint<Comment[], CommentData>\nconst commentsForUser = getUserCommentsEndpoint(1);\n\n// http://myapi.com/users/1/comments\ncommentsForUser.get();\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"homepage":"https://github.com/jeanfortheweb/apitizer#readme","_id":"@apitizer/endpoint@0.0.4-alpha.18","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-Xl2kWYuJGvurCE8vC6HUh+mXcY11NFwwsHurrRuxjlqdh4N3aEuLHIZVUI5stkst7ea4rM1b4G2FPhRs3UuVtw==","shasum":"6ee43e17c503ab7c69fceae504852a9e214dce53","tarball":"https://registry.npmjs.org/@apitizer/endpoint/-/endpoint-0.0.4-alpha.18.tgz","fileCount":8,"unpackedSize":15480,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedVbDCRA9TVsSAnZWagAAZ6sP/2pNAXFHqoEhctZnrN64\ngtT50tbm6/WzPWA0RuNqh7HJX0AZw/ATVKUuDNxCcpneJynOwdZhmYwlDJmP\n4vp1EAirfPwAHAy5jzKPSj+l1Zwz7/JAPFvcPT4xnz+xMkJS37uJpzayCgSk\nAm5+J/4NobPay5jYvoRKh8sQ9sOFf/9NyJ7v7H0F0qhcmBrxd5UBbzNMsP7I\nY1s8ANyEKSDHY14Re+yj7VwRP1/WG6/P/0zDOhqKDivbC8NXKe3optP3bZz3\njO3LIFmu3L7ZfI+YpzGBDHw+FHmCw2inuh5C9AWZfqZZ0FZ6MJQgQJBUVIqW\nJTQMdH/riA8OSJeYsxM8viqnLnDLRq+t9vXB9D+YFy0Zn81AyOMPKs4HwjXD\n48ZsJ0VpQoDJutDWcB2U10avfFbDXcgye+fI6NIN2COLFpQ5ps7N+hcOhaiy\nszPCbukq0YFz06WfUcoyXQYyoYjQn54OM0K9qUUb2A3T1G1YgNkvq6nTYsoV\nxy2XVXZa7RNwIwUixUSF+nEdjKz4ov6CQtHsFt+SqVMN7VCaZQpJBhxCWogE\nc2SkKVf3yGc2qyvruw7Im8RKx/XuRgb/OfuM2ILQ4uk8mhCAsKHoKFex5Wtt\nZy5TlIR6CWRXBvoLmJ5KfgZOKmfBD6aeszOYdwZ2ZNSF2UrMo7ZUfj2+F7EV\nSXSR\r\n=sAH8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChf3Jwklh5zKnTo+8paJlZVIUaEDh5+xU5eyWYwLO5zQIgWyoCnFyAn5WSo5rPsPZ9rtNJ8T2AZlRTAAvzquzUN2k="}]},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"_npmUser":{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/endpoint_0.0.4-alpha.18_1584748226654_0.1092631464439795"},"_hasShrinkwrap":false}},"time":{"created":"2020-03-19T20:20:14.923Z","0.0.3":"2020-03-19T20:20:15.272Z","modified":"2022-04-04T14:38:33.871Z","0.0.4-alpha.0":"2020-03-19T20:24:41.749Z","0.0.4-alpha.1":"2020-03-19T20:39:54.756Z","0.0.4-alpha.5":"2020-03-19T21:32:01.897Z","0.0.4-alpha.7":"2020-03-19T21:37:16.614Z","0.0.4-alpha.8":"2020-03-19T21:41:13.237Z","0.0.4-alpha.9":"2020-03-19T21:52:01.544Z","0.0.4-alpha.10":"2020-03-19T21:56:39.577Z","0.1.0":"2020-03-19T22:02:53.845Z","0.0.4-alpha.11":"2020-03-19T23:31:17.638Z","0.0.4-alpha.16":"2020-03-20T23:36:54.434Z","0.0.4-alpha.17":"2020-03-20T23:41:43.084Z","0.0.4-alpha.18":"2020-03-20T23:50:26.752Z"},"maintainers":[{"name":"jeanfortheweb","email":"jeanfortheweb@gmail.com"}],"description":"The Endpoint Builder for the delightful rest api utility","homepage":"https://github.com/jeanfortheweb/apitizer#readme","keywords":["restful","api","typescript"],"repository":{"type":"git","url":"git+https://github.com/jeanfortheweb/apitizer.git"},"author":{"name":"Jean-Pascal 'Johnny' Hövel","email":"jeanfortheweb@gmail.com"},"bugs":{"url":"https://github.com/jeanfortheweb/apitizer/issues"},"license":"MIT","readme":"","readmeFilename":""}