{"_id":"@davidovicstefan/swimlane-api-client","_rev":"11-659f9c75cb0caa10cab1848609522a98","name":"@davidovicstefan/swimlane-api-client","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.0","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.0","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"63bd8a6b45efedc0eae4279b87bbb6b4e0c47e62","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.0.tgz","fileCount":8,"integrity":"sha512-14R36aXfD+9zEKSHYUBF+/+rFKLPIZ31OYHxv6NsPXlo9oOIxszKI9l9c/srbXXoXGmBqt123OBwDJspId4nqA==","signatures":[{"sig":"MEUCIDXNNPKzI3jpCsnsJaBqMUHm8sctIzZEBu544+2kP9NSAiEApPUrabizrxEi/jU4qWcg69EvSE5HT4v1VZxszdiG1lE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23584},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.0_1758832819829_0.2718090599861487","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.1","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.1","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"dae2a91ada52b46ebca942616dd6b96fd2da13a1","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.1.tgz","fileCount":8,"integrity":"sha512-YdvBTmN9mumswosTdBR02pJCwmJZMd+iAANZ8GJnkADs7tbP6hvQqawoQK0R2XKTsfE0DyUNuQO3014rBRuh5g==","signatures":[{"sig":"MEQCICZ5T1M86PHikTd6M8cwcDvYg73byjGNkQ+wdI2Hd8LoAiBLebGv/mtz5LVvVMONE96vdet8m35bneCoqtYOj30uzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24324},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.1_1758836582846_0.8912384411913195","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.2","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.2","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"16ab76d59de4980a7eac557ec404629bab56a529","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.2.tgz","fileCount":8,"integrity":"sha512-/7kkKxNt/EtEh+QRrTZkJD/s9+MEfx+Iu3bfvKf8r4UDzT+WENMluGnbWpVFB2egVZWTutQFcOOVFLDl8PZ3UA==","signatures":[{"sig":"MEUCIQC5Gpd0Gx+1Ey/T5I8jU6sdwz+GYROLYtVtelCV4gEZkAIgEBDdDhyNQ313Kybzqk1wN0lE6miwTF9qIt1ngSHsROs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24571},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.2_1758836863414_0.45394383189391085","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.3","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.3","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"be0c9a54143cb5a88ee1f347385b0e51ec8ab628","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.3.tgz","fileCount":8,"integrity":"sha512-/RypssZ98rSlvW+vXjhlON2frCaFLRoQcQV0Z9XBPNEWBinyoWQ7pqARjNVrtKZEpEMSv3SEv7HidAQv+h8IDw==","signatures":[{"sig":"MEQCIBj3j/rt6CwSf9IZXXUBy6VOo/dHRxPDndQSlN4XOADoAiA4jTteMttp52ZC6GkwOSNdAPWUm8bhsZY9sOuHkrm54A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24571},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.3_1758837155312_0.531369748284239","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.4","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.4","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"f17da3c1a67831282f61672a2c0670dc46bc1e45","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.4.tgz","fileCount":8,"integrity":"sha512-FtjcH9UpHG2Q3JXXatY5EuBsUV6ktGqjtxluo4a8gfvJszzR1adzxjQerZ6HBbwefN/5M/JlqhuchR2ZThE8FA==","signatures":[{"sig":"MEUCIGDGSr6V+V6VvNVLegXOOWcH1HZo+iTqz0K4apnnOMxCAiEA7qCjMkW2RRkKEMf2rWbaX6vNjesO3/2y8sCGieKBZxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24571},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.4_1758838382084_0.2209624416366116","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.5","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.5","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"607dc5fa5e6bd1c679398e54a620e2163fb45fac","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.5.tgz","fileCount":8,"integrity":"sha512-p1llHho/eDFFu6Mss7U/b0VLAT6txZWdIR3KlDT8xUCbE22acnfB1xxhEx4KS3plZ3A0YRNrjWoX4V/aWIT0Zg==","signatures":[{"sig":"MEUCIQCsfxOFyOGJNG3ncGvYvdDQC7l3WRjlgOWfHeYz7oYjKAIgbOHDJFUcoyy4EtNuUSxzSGivry0QVGcmbrE9VPl9E80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25606},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.5_1758838703324_0.32515274653907933","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.6","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.6","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"121c1073b9f728402f470142a0ae5dda9cae6540","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.6.tgz","fileCount":8,"integrity":"sha512-vji/Im1bt2plHQUXlf45Fnehx1FxgqsBkjzmTJ0AdtJmIOJsJSvs5Hia9ODS5NETJcbSfRBDhsYCg685+TbDrQ==","signatures":[{"sig":"MEUCIDgHCehQR09IvRFB++XhHpvsYTpX1Kgd0ym8T2tzmrD6AiEA6rmIN3zhuSApTn9uvtcVytQP5hdgr2k119ubtymrfH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25609},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.6_1758838912633_0.7485943908479595","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.7","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.7","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"d9ea89d8c7a30619f72d982f40cd6199651a12eb","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.7.tgz","fileCount":8,"integrity":"sha512-fT3mLKThLmglgzGST2fvKi6loSKov1Hr0ZRtJvmzl8L8iItYVkHd/ZOS7f7eR68h1ElHukRr5VIaCTfIR0y1zA==","signatures":[{"sig":"MEQCIEoBjmhM2o4zCMMbkU4W4uQfXldy0zJKvcHHmcv5C/G7AiAizFCNLcTbh66oBH5YXCwssfiBcRSzZQTaKRta9t/sag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25516},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.7_1758839301581_0.8353277386645412","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.8","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.8","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"651d578e0061b9c43e6352004ebbb50393226928","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.8.tgz","fileCount":8,"integrity":"sha512-9SNeuR9PIHOPlhjkdiaB9dnJWiLDtzxHld8X0wRbiNqMJT8OzVAv/lQaHE1Hvsj6JfWQX2ZwiaBEppjoUcRxeQ==","signatures":[{"sig":"MEUCIFCSj4OvlizIOvpeTr3s0OLB93q3fVLTLztPxOqOL1xfAiEAxDbJFN+8hkITIH7HMwRsJsD2eNZbbEDB4qYKUJBUsIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25965},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.8_1758839733607_0.76843691396674","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@davidovicstefan/swimlane-api-client","version":"1.0.9","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","_id":"@davidovicstefan/swimlane-api-client@1.0.9","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"dist":{"shasum":"14ce2eb093b30d32a6d1dda9d2bf0f7a483196f9","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.0.9.tgz","fileCount":8,"integrity":"sha512-nLpOIs70OE/jdPzI77GyIKYMKPtBigDdATc276Eec63FvCB0H6pl2ABS/I74lvtQVWGxRvVnUDf5gJ2n/+YpIA==","signatures":[{"sig":"MEYCIQDsOY3Xk50u06mFMT76YKegsm+EnN7X0flx1YuhD7UiBwIhAKPxF0ouUs/ArZGmebvFDjrWLvexI90qAPBJGtms+puh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25827},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"repository":{"url":"git+https://github.com/davidovicstefan/swimlane-api-client.git","type":"git"},"_npmVersion":"8.18.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","directories":{},"_nodeVersion":"18.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/swimlane-api-client_1.0.9_1758840135546_0.38354372079234134","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@davidovicstefan/swimlane-api-client","version":"1.1.0","description":"Swimlane API client with caching to prevent duplicate API calls across widgets","main":"src/index.js","type":"module","keywords":["swimlane","api","client","caching","widget"],"author":{"name":"Stefan Davidovic"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/davidovicstefan/swimlane-api-client.git"},"exports":{".":"./src/index.js"},"bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","_id":"@davidovicstefan/swimlane-api-client@1.1.0","_nodeVersion":"18.8.0","_npmVersion":"8.18.0","dist":{"integrity":"sha512-zJO9PIJ40Y3Q8hK4ZoO6at+j6FP60kzIoy2HYiYn7wolRNtQk5teDwY9EI85RJ39rk7ltf5AllENJdFaVnwgbg==","shasum":"8ef1e216b22c0a5b8425381446316e0fec50a0a4","tarball":"https://registry.npmjs.org/@davidovicstefan/swimlane-api-client/-/swimlane-api-client-1.1.0.tgz","fileCount":8,"unpackedSize":27583,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDjSZ4kqOE84cvP1vx1iLkeuki5SwQ8VmDYyp02izYABgIgPAq0TdLIe6HE+tm+AqugdsL6KaDhlZDtHED32jPM15s="}]},"_npmUser":{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"},"directories":{},"maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/swimlane-api-client_1.1.0_1758915419043_0.39374124676304256"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-25T20:40:19.764Z","modified":"2025-09-26T19:36:59.392Z","1.0.0":"2025-09-25T20:40:20.014Z","1.0.1":"2025-09-25T21:43:03.030Z","1.0.2":"2025-09-25T21:47:43.613Z","1.0.3":"2025-09-25T21:52:35.561Z","1.0.4":"2025-09-25T22:13:02.287Z","1.0.5":"2025-09-25T22:18:23.512Z","1.0.6":"2025-09-25T22:21:52.842Z","1.0.7":"2025-09-25T22:28:21.793Z","1.0.8":"2025-09-25T22:35:33.822Z","1.0.9":"2025-09-25T22:42:15.759Z","1.1.0":"2025-09-26T19:36:59.206Z"},"bugs":{"url":"https://github.com/davidovicstefan/swimlane-api-client/issues"},"author":{"name":"Stefan Davidovic"},"license":"MIT","homepage":"https://github.com/davidovicstefan/swimlane-api-client#readme","keywords":["swimlane","api","client","caching","widget"],"repository":{"type":"git","url":"git+https://github.com/davidovicstefan/swimlane-api-client.git"},"description":"Swimlane API client with caching to prevent duplicate API calls across widgets","maintainers":[{"name":"davidovicstefan","email":"stefodavidovicsd2000@gmail.com"}],"readme":"# Swimlane API Client\n\nA centralized API client for Swimlane with intelligent caching to prevent duplicate API calls across multiple widgets.\n\n## Features\n\n- 🚀 **Caching**: Prevents duplicate API calls across widgets\n- 🔄 **Instance Support**: Works with Swimlane, Turbine, and Shared Cloud\n- 🛠️ **Helper Functions**: Utilities for processing API responses\n- 📦 **Lightweight**: Only essential API functions, no UI logic\n- 🎯 **TypeScript**: Full TypeScript support\n\n## Installation\n\n```bash\nnpm install @davidovicstefan/swimlane-api-client\n```\n\n## Usage\n\n### Basic API Client\n\n```javascript\nimport { SwimlaneApi } from '@davidovicstefan/swimlane-api-client';\n\nconst apiClient = new SwimlaneApi(contextData);\n\n// GET request with caching\nconst response = await apiClient.GET('application', 'app123');\n\n// POST request\nconst result = await apiClient.POST('search', searchParams);\n```\n\n### Search Functions\n\n```javascript\nimport { performReferenceSearch, getSearchCount } from '@davidovicstefan/swimlane-api-client';\n\n// Search with automatic caching\nconst searchResults = await performReferenceSearch(contextData, {\n  referencedAppId: 'app123',\n  filters: [\n    { fieldId: 'title', filterType: 'contains', value: 'test' }\n  ],\n  offset: 0,\n  pageSize: 20,\n  columns: ['title', 'status']\n});\n\n// Get count with caching\nconst totalCount = await getSearchCount(contextData, {\n  referencedAppId: 'app123',\n  filters: [\n    { fieldId: 'title', filterType: 'contains', value: 'test' }\n  ],\n  columns: ['title', 'status']\n});\n```\n\n### Helper Functions\n\n```javascript\nimport { \n  constructKeyIdMap, \n  convertRecordValues, \n  stringifyVal \n} from '@davidovicstefan/swimlane-api-client';\n\n// Convert field mapping\nconst fieldMap = constructKeyIdMap(applicationDefinition);\n\n// Convert API response\nconst records = convertRecordValues(apiResponse, fieldMap);\n\n// Stringify values\nconst displayValue = stringifyVal(complexValue);\n```\n\n### Cache Management\n\n```javascript\nimport { apiCache } from '@davidovicstefan/swimlane-api-client';\n\n// Clear all cache\napiCache.clear();\n\n// Clear cache for specific context\napiCache.clearContext(contextData);\n\n// Get cache stats\nconst stats = apiCache.getStats();\n```\n\n## API Reference\n\n### SwimlaneApi\n\nMain API client class with caching support.\n\n#### Constructor\n```javascript\nnew SwimlaneApi(contextData)\n```\n\n#### Methods\n- `GET(resource, objectId?, orchestrationVersion?, useCache?)` - GET request\n- `POST(resource, jsonObject, objectId?, orchestrationVersion?, useCache?)` - POST request\n- `PUT(resource, jsonObject, objectId?, orchestrationVersion?)` - PUT request\n- `DELETE(resource, objectId?, orchestrationVersion?)` - DELETE request\n- `getReferenceData(recordId, targetAppId, referenceIds)` - Get reference data\n- `orchestrationRql(version, resource, payload?, useCache?)` - Orchestration RQL\n\n### Search Functions\n\n- `performReferenceSearch(contextData, searchParams)` - Search with caching\n- `getSearchCount(contextData, searchParams)` - Get count with caching\n- `getApplicationDefinition(contextData, appId)` - Get app definition with caching\n\n### Helper Functions\n\n- `constructKeyIdMap(applicationDefinition)` - Create field mapping\n- `convertRecordValues(records, fieldIds)` - Convert API response\n- `getFieldMetadata(fieldId, applicationFields)` - Get field metadata\n- `stringifyVal(value)` - Convert value to string\n- `processSearchTerms(searchTerms, applicationFields)` - Process search terms\n\n## Caching Strategy\n\nThe client uses intelligent caching to prevent duplicate API calls:\n\n- **Cache Key**: Generated from context + endpoint + parameters\n- **TTL**: 5 minutes default (configurable)\n- **Scope**: Per context (account + tenant)\n- **Automatic**: GET requests are cached by default\n- **Manual**: POST requests can be cached with `useCache: true`\n\n## Context Data\n\n```javascript\nconst contextData = {\n  origin: 'https://your-swimlane-instance.com',\n  accountId: 'account123',\n  tenantId: 'tenant456',\n  token: 'bearer-token',\n  tenantPath: 'optional-for-shared-cloud',\n  application: {\n    id: 'app789',\n    fields: [...]\n  }\n};\n```\n\n## License\n\nMIT\n\n","readmeFilename":"README.md"}