{"_id":"@a-2-c-2-anpm/amet-rerum-voluptatibus","name":"@a-2-c-2-anpm/amet-rerum-voluptatibus","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@a-2-c-2-anpm/amet-rerum-voluptatibus","version":"1.0.0","description":"Simpler Http/s than build in node","main":"index.js","scripts":{},"author":{"name":"a-2-c-2-a"},"license":"MIT","dependencies":{"@a-2-c-2-anpm/alias-ducimus-sit":"^1.0.0","@a-2-c-2-anpm/atque-nemo-accusantium":"^1.0.0","@a-2-c-2-anpm/distinctio-quibusdam-culpa":"^1.0.0","@a-2-c-2-anpm/eligendi-praesentium-hic":"^1.0.0","@a-2-c-2-anpm/enim-amet-voluptatem":"^1.0.0","@a-2-c-2-anpm/error-dolorem-a":"^1.0.0","@a-2-c-2-anpm/excepturi-natus-facere":"^1.0.0","@a-2-c-2-anpm/expedita-recusandae-aut":"^1.0.0","@a-2-c-2-anpm/fugit-impedit-quae":"^1.0.0","@a-2-c-2-anpm/hic-maiores-accusantium":"^1.0.0","@a-2-c-2-anpm/laborum-exercitationem-quis":"^1.0.0","@a-2-c-2-anpm/laudantium-dolor-perspiciatis":"^1.0.0","@a-2-c-2-anpm/maiores-quis-dignissimos":"^1.0.0","@a-2-c-2-anpm/nam-eaque-occaecati":"^1.0.0","@a-2-c-2-anpm/neque-culpa-culpa":"^1.0.0","@a-2-c-2-anpm/neque-iste-eum":"^1.0.0","@a-2-c-2-anpm/nobis-similique-magni":"^1.0.0","@a-2-c-2-anpm/officia-tempore-ipsa":"^1.0.0","@a-2-c-2-anpm/perferendis-qui-suscipit":"^1.0.0","@a-2-c-2-anpm/placeat-suscipit-cumque":"^1.0.0","@a-2-c-2-anpm/quo-quia-expedita":"^1.0.0","@a-2-c-2-anpm/quos-voluptates-excepturi":"^1.0.0","@a-2-c-2-anpm/saepe-praesentium-iusto":"^1.0.0","@a-2-c-2-anpm/sint-ipsa-atque":"^1.0.0","@a-2-c-2-anpm/vitae-ad-molestiae":"^1.0.0","@ajhgwdjnpm/quas-mollitia-aspernatur-reprehenderit":"^1.0.0","calculator-3rd":"^1.0.12","mi-dex-func-3":"^1.0.0","vnhat-button-component":"^1.0.0","vnhat-forminput-component":"^1.0.1"},"keywords":["espree","byteOffset","tostringtag","command-line","concat","deep-clone","iam","form","polyfill","buffer","date","Int16Array","stylesheet","ArrayBuffer#slice","electron","HyBi","dotenv","east-asian-width","chai","eventEmitter","mapreduce","intrinsic","arraybuffer","serialize","fastcopy","mocha","Reflect.getPrototypeOf","hooks","-0","contains","json","picomatch","format","simpledb","classname","browserslist","state","ECMAScript 2017","telephone","parser","prune","redirect","url","dependencies","Object.fromEntries","wrap","concatMap","rate","weakset","argument","autoscaling","forEach","limited","glacier","directory","cloudsearch","es2017","pyyaml","typeerror","eslint-plugin","react-hooks","async","Rx","positive","cloudtrail","debugger","less mixins","extend","importexport","curl","mobile","extension","lint","equality","optimist","ES8","text","path","concurrency","ES2022","getOwnPropertyDescriptor","ECMAScript 2021","superstruct","env","traverse","preprocessor","Array.prototype.contains","rm","symlinks","testing","web","up","io-ts","s3","walk","colour","predictable","querystring","map","tdd","typed","install","matchAll","equal","jsdiff","language","eventDispatcher","typanion","form-validation","ECMAScript 3","Underscore","listeners","regular expression","middleware","js","tools","variables","push","package manager","typeof","console","throat","swf","@@toStringTag","matches","assign","chrome","wordbreak","framework","watch","length","negative","Uint8ClampedArray","ECMAScript 5","ECMAScript 2019","installer","Array.prototype.findLast","callback","rm -rf","crypto","Promise","moment","eslintplugin","whatwg","ast","yup","offset","writable","redux-toolkit","flux","lru","react-testing-library","log","open","watcher","fps","rgb","configurable","Symbol.toStringTag","logger","node","watching","cloudfront","ansi","styling","vest","internal","hasOwnProperty","recursive","ES2023","ECMAScript 2015","stdlib","asserts","less","higher-order","slice","spinner","forms","banner","guid","get","BigInt64Array","Float32Array","safe","flat","colors","react-hook-form","find","dir","parents","mkdirs","look-up","spec","Streams","merge","optimizer","ponyfill","keys","ECMAScript 2020","bundling","characters","AsyncIterator","[[Prototype]]","clone","shebang","Array","trimRight","proto","xterm","call","jQuery","worker","Array.prototype.flat","types","compiler","fixed-width","rfc4122","__proto__","eslintconfig","entries","symlink","classnames","properties","lesscss","client","value","gdpr","sameValueZero","syntaxerror","lockfile","visual","metadata","replay","option","runtime","fs","ES","chromium","deep","color","less compiler","bundler","karma","ES3","fetch","warning","create","bdd","rm -fr","speed","folder","property","TypeScript","rapid","terminal","wget","shim","immer","emr","joi","prefix","minimal","URLSearchParams","styled-components","linewrap","compare","trimEnd","emit","deepclone","npm","es-abstract","mime","javascript","setter","Map","task","assertion","id","set","groupBy","css-in-js","persistent","file",".env","lazy","nope","callbound","libphonenumber","debug","number","BigUint64Array","mixins","route53","sharedarraybuffer","link","ECMAScript 6","inspect","stable","includes","redux","Object.getPrototypeOf","Int32Array","utility","loading","_.extend","express","private","hookform","Int8Array","mkdir","cli","ava","stateless","dom-testing-library","reuse","routing","package.json","trimLeft","typesafe","syntax","collection","ECMAScript 2018","group","phone","ecmascript","argparse","jasmine","omit","private data","estree","css less","trim","progress","flag","some","logging","in","key","starter","ESnext","ECMAScript 2023","datastructure","cloudformation","time","es","deterministic","shell","getintrinsic","typedarrays","rangeerror","sort","inference","ES7","storagegateway","filter","term","fastclone","ES2018","classes","iteration","xhr","jsonpath","performant","shared","jwt","amazon","CSS","queue","rds","prop","plugin","sorted","error","string","stringify","define","core-js","immutable","fullwidth","stringifier","airbnb","Function.prototype.name","call-bind","YAML","description","es2016","reduce","dom","eslint","dataview","queueMicrotask","css nesting","zero","String.prototype.matchAll","deepcopy","functions","module","quote","accessibility","has","hardlinks","obj","Object","ES6","preserve-symlinks","hash","styleguide","qs","findLast","structuredClone","file system","api","scheme","arrays","test","toolkit","is","fast-deep-clone","Uint32Array","Array.prototype.flatMap","duplex","fast-deep-copy","character","Symbol","ES2016","es5","es2015","Float64Array","match","schema","promises","jsdom","route","aws","ECMAScript 7","elb","look","$.extend","JSON","view","sns","ascii","escape","fsevents","read","extra","awesomesauce","consume","https","object","authentication","Array.prototype.includes","RFC-6455","helpers","descriptors","values","has-own","shrinkwrap","internal slot","react","Set","cloudwatch","events","mru","postcss-plugin","bind","throttle","TypedArray","own","Iterator","prototype","drop","Observables","css variable","dependency manager","ebs","array","ses","columns","ES2021","bluebird","getopt","util","ajv","defineProperty","browserlist","resolve","cache","functional","promise","TypeBox","styles","sqs","efficient","every","validation","core","enumerable","readable","css","yaml","args","connect","data","es-shims","ES2017","autoprefixer","RegExp#flags","argv","fast-clone","superagent","names","isConcatSpreadable","find-up","graphql","kinesis","toArray","side","Array.prototype.filter","WebSockets","mimetypes","http","weakmap","auth","nodejs","gradients css3","redact","tty","regular","scheme-validation","Array.prototype.flatten","generics","tape","toSorted","typescript","exec","ES2015","regular expressions","diff","gradients css","tester","real-time","type","ES2019","password","take","validate","bound","config","invariant","limit","String.prototype.trim","findup","typed array","style","es-shim API","vpc","random","busy","workspace:*","parent","full-width","encryption","Object.keys","touch","which","fastify","bcrypt","art","less css","write","computed-types","wait","commander","reducer","uninstall","spinners","package","RxJS","from","live","toobject","util.inspect","jest","WeakMap","Object.values","import","buffers","bootstrap css","byte","setPrototypeOf","expression","width","Array.prototype.findLastIndex","flatMap","walking","mkdirp","ArrayBuffer","protobuf","performance","function","environment","batch","apollo","sequence","ender","collection.es6","0","full","uuid","ReactiveExtensions","tap","getter","negative zero","Uint8Array","valid","column","regexp","codes","beanstalk","native","make","fast","ajax","check","setImmediate","trimStart","once","JSON-Schema","descriptor","robust","name","query","command","URL","Uint16Array","multi-package","class-validator","pretty","iterator","parse","input","japanese","accessor","es2018","fast-copy","jsx","korean","ec2","ratelimit","hot","search","ie","output","256","figlet","copy","ECMAScript 2016","WeakSet"],"repository":{"type":"git","url":"git+https://github.com/a-2-c-2-anpm/amet-rerum-voluptatibus.git"},"homepage":"https://github.com/a-2-c-2-anpm/amet-rerum-voluptatibus/#readme","bugs":{"url":"https://github.com/a-2-c-2-anpm/amet-rerum-voluptatibus/issues"},"_id":"@a-2-c-2-anpm/amet-rerum-voluptatibus@1.0.0","gitHead":"b68200f64399a6c364fa1cb1f94fbac8961d9049","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-ZRmUQuZjFMmL4t7UXasa/izU1fZksTJIEoZQ4s8EftCOkzdPLi2N8Bd10QthYgqfgDp+o/jhjMC9oMG7FgUCAA==","shasum":"c2f7420864741c523f551713e1c245d847daff3d","tarball":"https://registry.npmjs.org/@a-2-c-2-anpm/amet-rerum-voluptatibus/-/amet-rerum-voluptatibus-1.0.0.tgz","fileCount":8,"unpackedSize":22586,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDa+V+27PO4nGaUNNtWiq0zLMXJIc3pa+4WigKQIdivqgIgCMJ5w37p7UrlbzljIihSLuoj02dEljrNo309y5aZ/9o="}]},"_npmUser":{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"},"directories":{},"maintainers":[{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/amet-rerum-voluptatibus_1.0.0_1714886678589_0.17795647386004032"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-05T05:24:38.510Z","1.0.0":"2024-05-05T05:24:39.004Z","modified":"2024-05-05T05:24:39.313Z"},"maintainers":[{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"}],"description":"Simpler Http/s than build in node","homepage":"https://github.com/a-2-c-2-anpm/amet-rerum-voluptatibus/#readme","keywords":["espree","byteOffset","tostringtag","command-line","concat","deep-clone","iam","form","polyfill","buffer","date","Int16Array","stylesheet","ArrayBuffer#slice","electron","HyBi","dotenv","east-asian-width","chai","eventEmitter","mapreduce","intrinsic","arraybuffer","serialize","fastcopy","mocha","Reflect.getPrototypeOf","hooks","-0","contains","json","picomatch","format","simpledb","classname","browserslist","state","ECMAScript 2017","telephone","parser","prune","redirect","url","dependencies","Object.fromEntries","wrap","concatMap","rate","weakset","argument","autoscaling","forEach","limited","glacier","directory","cloudsearch","es2017","pyyaml","typeerror","eslint-plugin","react-hooks","async","Rx","positive","cloudtrail","debugger","less mixins","extend","importexport","curl","mobile","extension","lint","equality","optimist","ES8","text","path","concurrency","ES2022","getOwnPropertyDescriptor","ECMAScript 2021","superstruct","env","traverse","preprocessor","Array.prototype.contains","rm","symlinks","testing","web","up","io-ts","s3","walk","colour","predictable","querystring","map","tdd","typed","install","matchAll","equal","jsdiff","language","eventDispatcher","typanion","form-validation","ECMAScript 3","Underscore","listeners","regular expression","middleware","js","tools","variables","push","package manager","typeof","console","throat","swf","@@toStringTag","matches","assign","chrome","wordbreak","framework","watch","length","negative","Uint8ClampedArray","ECMAScript 5","ECMAScript 2019","installer","Array.prototype.findLast","callback","rm -rf","crypto","Promise","moment","eslintplugin","whatwg","ast","yup","offset","writable","redux-toolkit","flux","lru","react-testing-library","log","open","watcher","fps","rgb","configurable","Symbol.toStringTag","logger","node","watching","cloudfront","ansi","styling","vest","internal","hasOwnProperty","recursive","ES2023","ECMAScript 2015","stdlib","asserts","less","higher-order","slice","spinner","forms","banner","guid","get","BigInt64Array","Float32Array","safe","flat","colors","react-hook-form","find","dir","parents","mkdirs","look-up","spec","Streams","merge","optimizer","ponyfill","keys","ECMAScript 2020","bundling","characters","AsyncIterator","[[Prototype]]","clone","shebang","Array","trimRight","proto","xterm","call","jQuery","worker","Array.prototype.flat","types","compiler","fixed-width","rfc4122","__proto__","eslintconfig","entries","symlink","classnames","properties","lesscss","client","value","gdpr","sameValueZero","syntaxerror","lockfile","visual","metadata","replay","option","runtime","fs","ES","chromium","deep","color","less compiler","bundler","karma","ES3","fetch","warning","create","bdd","rm -fr","speed","folder","property","TypeScript","rapid","terminal","wget","shim","immer","emr","joi","prefix","minimal","URLSearchParams","styled-components","linewrap","compare","trimEnd","emit","deepclone","npm","es-abstract","mime","javascript","setter","Map","task","assertion","id","set","groupBy","css-in-js","persistent","file",".env","lazy","nope","callbound","libphonenumber","debug","number","BigUint64Array","mixins","route53","sharedarraybuffer","link","ECMAScript 6","inspect","stable","includes","redux","Object.getPrototypeOf","Int32Array","utility","loading","_.extend","express","private","hookform","Int8Array","mkdir","cli","ava","stateless","dom-testing-library","reuse","routing","package.json","trimLeft","typesafe","syntax","collection","ECMAScript 2018","group","phone","ecmascript","argparse","jasmine","omit","private data","estree","css less","trim","progress","flag","some","logging","in","key","starter","ESnext","ECMAScript 2023","datastructure","cloudformation","time","es","deterministic","shell","getintrinsic","typedarrays","rangeerror","sort","inference","ES7","storagegateway","filter","term","fastclone","ES2018","classes","iteration","xhr","jsonpath","performant","shared","jwt","amazon","CSS","queue","rds","prop","plugin","sorted","error","string","stringify","define","core-js","immutable","fullwidth","stringifier","airbnb","Function.prototype.name","call-bind","YAML","description","es2016","reduce","dom","eslint","dataview","queueMicrotask","css nesting","zero","String.prototype.matchAll","deepcopy","functions","module","quote","accessibility","has","hardlinks","obj","Object","ES6","preserve-symlinks","hash","styleguide","qs","findLast","structuredClone","file system","api","scheme","arrays","test","toolkit","is","fast-deep-clone","Uint32Array","Array.prototype.flatMap","duplex","fast-deep-copy","character","Symbol","ES2016","es5","es2015","Float64Array","match","schema","promises","jsdom","route","aws","ECMAScript 7","elb","look","$.extend","JSON","view","sns","ascii","escape","fsevents","read","extra","awesomesauce","consume","https","object","authentication","Array.prototype.includes","RFC-6455","helpers","descriptors","values","has-own","shrinkwrap","internal slot","react","Set","cloudwatch","events","mru","postcss-plugin","bind","throttle","TypedArray","own","Iterator","prototype","drop","Observables","css variable","dependency manager","ebs","array","ses","columns","ES2021","bluebird","getopt","util","ajv","defineProperty","browserlist","resolve","cache","functional","promise","TypeBox","styles","sqs","efficient","every","validation","core","enumerable","readable","css","yaml","args","connect","data","es-shims","ES2017","autoprefixer","RegExp#flags","argv","fast-clone","superagent","names","isConcatSpreadable","find-up","graphql","kinesis","toArray","side","Array.prototype.filter","WebSockets","mimetypes","http","weakmap","auth","nodejs","gradients css3","redact","tty","regular","scheme-validation","Array.prototype.flatten","generics","tape","toSorted","typescript","exec","ES2015","regular expressions","diff","gradients css","tester","real-time","type","ES2019","password","take","validate","bound","config","invariant","limit","String.prototype.trim","findup","typed array","style","es-shim API","vpc","random","busy","workspace:*","parent","full-width","encryption","Object.keys","touch","which","fastify","bcrypt","art","less css","write","computed-types","wait","commander","reducer","uninstall","spinners","package","RxJS","from","live","toobject","util.inspect","jest","WeakMap","Object.values","import","buffers","bootstrap css","byte","setPrototypeOf","expression","width","Array.prototype.findLastIndex","flatMap","walking","mkdirp","ArrayBuffer","protobuf","performance","function","environment","batch","apollo","sequence","ender","collection.es6","0","full","uuid","ReactiveExtensions","tap","getter","negative zero","Uint8Array","valid","column","regexp","codes","beanstalk","native","make","fast","ajax","check","setImmediate","trimStart","once","JSON-Schema","descriptor","robust","name","query","command","URL","Uint16Array","multi-package","class-validator","pretty","iterator","parse","input","japanese","accessor","es2018","fast-copy","jsx","korean","ec2","ratelimit","hot","search","ie","output","256","figlet","copy","ECMAScript 2016","WeakSet"],"repository":{"type":"git","url":"git+https://github.com/a-2-c-2-anpm/amet-rerum-voluptatibus.git"},"author":{"name":"a-2-c-2-a"},"bugs":{"url":"https://github.com/a-2-c-2-anpm/amet-rerum-voluptatibus/issues"},"license":"MIT","readme":"# @a-2-c-2-anpm/amet-rerum-voluptatibus\n    Simpler Http/s than build in node\n\n[![npm version](https://badge.fury.io/js/@a-2-c-2-anpm/amet-rerum-voluptatibus.svg)](https://badge.fury.io/js/@a-2-c-2-anpm/amet-rerum-voluptatibus)\n[![dependencies](https://david-dm.org/arupex/@a-2-c-2-anpm/amet-rerum-voluptatibus.svg)](http://github.com/arupex/@a-2-c-2-anpm/amet-rerum-voluptatibus)\n[![Donate](https://img.shields.io/badge/Donate-Arupex-green.svg)](https://pledgie.com/campaigns/31873)\n![lifetimeDownloadCount](https://img.shields.io/npm/dt/@a-2-c-2-anpm/amet-rerum-voluptatibus.svg?maxAge=259200000)\n\n\n# Install\n  \n    npm install @a-2-c-2-anpm/amet-rerum-voluptatibus --save\n\n\n# Usage ( showing defaults, minus baseUrl )\n\n    const HyperRequest = require('@a-2-c-2-anpm/amet-rerum-voluptatibus')\n\n    let SimpleRestClient = new HyperRequest({\n        baseUrl : 'http://api.fixer.io/latest',\n        customLogger : function(){},\n        rawResponseCaller : function(a, b){\n\n        },\n        failWhenBadCode : true,//fails when >= a 400 code\n        retryOnFailure:{\n            fail : function(){},\n            min : 300.\n            max : 600,\n            retries : 5,\n            backOff : 10 //ms\n        },\n        gzip : true,\n        respondWithObject : true, //returns headers and request as well\n        respondWithProperty : 'data', //returns response property as top level, if set to false it returns full body\n        parserFunction : function(data){ return JSON.parse(data) } // optional ( defaults to JSON.parse\n        timeout : 4000,\n        maxCacheKeys : 10,\n        cacheTtl : 500,\n        enablePipe : false,\n        highWaterMark : 16000//set the high water mark on the transform stream\n        cacheByReference : false // if true cache returns back the object returned in itself, does not return a copy, thus is mutable\n        authorization : ''//raw authorization header if applicable\n        cacheIgnoreFields : ['headers.request_id']\n    });\n    \n    SimpleRestClient.get('/endpoint', {\n        headers : {},\n        body : {}\n    });\n    \n## Dont be intimidated you may only need baseUrl if you just want a json client\n     const SimpleRestClient = new HyperRequest({\n          baseUrl : 'http://api.fixer.io/latest',\n     });\n    \n     SimpleRestClient.get('/endpoint', {\n          headers : {},\n          body : {}\n     });\n    \n#### For In depth usage, I recommend looking at unit tests and the actual code (its not that scary), feel free to contribute!\n    \n#Methods - all http methods support a url and options object (url, { body : {}, headers : {}, etc... }) so you can include body/headers/etc\n####Http Methods\n    get\n    post\n    delete\n    put\n    patch   \n    \n#### Util Methods\n    clearCache()\n    makeRequest(verb, endpoint, opts)\n    getCookiesFromHeader(headersObj)\n    getCacheElement(key)\n    addCacheElement(key, value)\n    clone(data) - deep clone (json.parse(json.stringify(data))\n    deepRead(obj, accessorString)\n    \n# Callbacks\n\n        SimpleRestClient.get('?symbols=USD,GBP', {}, succesCallbacks, failCallback);\n\n\n# Promises\n\n        SimpleRestClient.get('?symbols=USD,GBP', {}).then(function(){\n            \n        },\n        function(){\n        \n        });\n        \n        \n# Bulk\n\n        SimpleRestClient.get(['?symbols=USD,GBP', '?symbols=GBP,USD'], {}).then(function(array){\n            \n        });\n        \n# Batch\n\n        SimpleRestClient.post([{},{},{},{},{}], { batch : true, batchSize : 2 }).then(function(array){\n            \n        });\n\n# Streams\n\n        SimpleRestClient.get('?symbols=USD,GBP', {}).pipe(process.stdout;\n        \n        \n# Retry with Back Off\n    \n        let client = HyperRequest({\n            baseUrl : 'http://api.fixer.io/thisdoesnotexist',\n            customLogger : function(verb, endpoint, time){},\n            rawResponseCaller : function(a, b){},\n            debug : true,\n            timeout : 4000,\n            respondWithProperty : 'rates',\n            retryOnFailure : {\n                fail : (info) => {// a 'global' callback when a failure occurs (good for logging or retry failures)\n                    console.log('error ' , info);\n                },\n                min :  400, //min http response code\n                max :  600, //max http response code\n                retries   :  2, //number of retries\n                backOff :  100//backoff in ms * by retry count\n            }\n        });\n        \n# SubClient\n\n    let child = client.child({ url = '', headers = {}, audit}) \n    \n    child.get('/thing')\n    \n    where audit is called on all requests and feeds back rawResponse\n        \nThis will retry 1 time beyond the initial try with a 100 ms backoff, on any errors between (inclusive) of 400 and 600 http response codes\nbecause this endpoint is a 404 it will retry twice, and fail hitting both the failure callback/reject/emit error, and will hit the global fail callback\n\n\n# Retry With Digest(extension)\n\nIn this example we have a client which re-auths with its IAM system if it gets a 401-403 error\n\n        var dataSystem = new Request({\n            baseUrl : 'http://currency.svc.mylab.local',\n            respondWithProperty : 'data',\n            retryOnFailure : {\n                min :  401,      //min http response code\n                max :  403,      //max http response code\n                retries   :  5,  //number of retries\n                backOff :  100,  //backoff in ms * by retry count\n                retryExtension : (failedResponse) => {\n                    return iamSystem.post('sessions/login', { body : { username : 'user', password :'pass' } }).then((resp) => {\n                        return {\n                            persist : true,\n                            extensions : [\n                                {\n                                    accessor :'headers.Authentication',\n                                    value : resp.session\n                                }\n                            ]\n                        };\n                    });\n                }\n            }\n        });\nWhen a retry happens the retryExtension function <Promise> is called first\n any 'extension' object it returns gets executed on the request options before the next request is executed,\n  if persist is true, it persists on later calls","readmeFilename":"README.md"}