{"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"keywords":["ionic","ionic","cache","angular2"],"dist-tags":{"latest":"2.1.5"},"author":{"name":"MobileThinking"},"description":"Ionic cache service with angular 4 - cache request, data, promises","readme":"# Ionic cache service with angular 4 \n\nThis repo is a fork from https://github.com/Nodonisko/ionic-cache.\nIonic cache service that can cache almost everything. **It caches requests, observables, promises and classic data.** It uses [Ionic Storage](https://ionicframework.com/docs/storage/) so we support IndexedDB, SQLite (Cordova), WebSQL in this order.\nIt can be used separatelety in Angular 2 application.\n\nKey features:\n+ Request caching\n+ Delayed observable caching (see docs for more info)\n+ Don't invalidate cache if is browser offline\n+ Set and invalidate groups of entries\n+ Supports IndexedDB, SQLite (Cordova), WebSQL via Ionic Storage\n\nPlease report all bugs to bug report or fix it and send pull request :)\n\n#### Big thanks to all contributors for help:\n+ Special thanks to [ihadeed](https://github.com/ihadeed)\n+ [imatefx](https://github.com/imatefx)\n+ [Vojta Tranta](https://github.com/vojtatranta)\n\n## Install\n\nVia NPM:\n\n```bash\nnpm install ionic-angular4-cache @ionic/storage --save\n```\n\nYou can optionally add [Cordova SQLite](https://ionicframework.com/docs/native/sqlite/).\n\nAnd inject service to your app:\n\n*app.module.ts*\n\n```ts\nimport { IonicAngular4CacheModule } from \"ionic-angular4-cache\";\n\n@NgModule({\n  ...\n  imports: [\n    IonicAngular4CacheModule.forRoot()\n  ],\n})\n```\n\n*app.component.ts*\n\n```ts\nimport { IonicAngular4CacheService } from \"ionic-angular4-cache\";\n\n@Component({\n    templateUrl: \"build/app.html\"\n})\nclass MyApp {\n    constructor(public ionicAngular4Cache: IonicAngular4CacheService) {\n        ...\n        ionicAngular4Cache.setDefaultTTL(60 * 60); //set default cache TTL for 1 hour\n        ....\n    }\n    ...\n}\n```\n\n## Usage\n\n#### Cache request with angular interceptor\n\n```ts\n...\nimport { IonicAngular4CacheService } from \"ionic-angular4-cache\";\n\n@Injectable()\nexport class CacheInterceptor implements HttpInterceptor {\n    constructor(public ionicAngular4Cache: IonicAngular4CacheService) {}\n    \n      public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n        if (req.method !== \"GET\") {\n          return next.handle(req);\n        }\n        const key = req.url.toString();\n        return this.ionicAngular4Cache.loadFromObservable2(key, next, req);\n      }\n    ...\n```\n\n#### Cache whole request response\n\nSometimes you need to cache whole response, if you need to look to Headers etc. It can be done only with simple \nmove *.map(res => res.json())* after *loadFromObservable* method. *loadFromObservable* returns Observable, so you can also use other \nObservable operators.\n\n```js\n...\nlet request = this.http.get(url);\nreturn this.cache.loadFromObservable(cacheKey, request).map(res => res.json());\n...\n```\n\n#### Cache classic data (arrays, objects, strings, numbers etc.)\n\nCache service works well with observables, but you can cache classic data as well.\n\n```js\n...\nlet key = 'heavily-calculated-function';\n\nthis.cache.getItem(key).catch(() => {\n    // fall here if item is expired or doesn't exist\n    let result = heavilyCalculatedFunction();\n    return this.cache.saveItem(key, result);\n}).then((data) => {\n    console.log(\"Saved data: \", data);\n});\n...\n```\n\n#### Cache promises\n\n```js\n...\nlet key = 'some-promise';\n\nthis.cache.getItem(key).catch(() => {\n    // fall here if item is expired or doesn't exist\n    return somePromiseFunction().then(result => {\n        return this.cache.saveItem(key, result);\n    });\n}).then((data) => {\n    console.log(\"Saved data: \", data);\n});\n...\n```\n\n#### Cache with custom Observable operators\n\n*loadFromObservable* method using Observable and return Observable, so you are free to use all Observable operators. \nFor example error handling (on error, retry request every 6 seconds if fails):\n\n```js\n...\nlet request = this.http.get(url)\n                    .retryWhen((error) => {\n                        return error.timer(6000);\n                    }).map(res => res.json());\nreturn this.cache.loadFromObservable(cacheKey, request);\n...\n```\n\n#### Cache entries grouping\n\nSometimes you need to invalidate only some group of cache entries.\nFor example if you have have long infinite scroll with lots of pages, and user trigger pull to request you want to delete\nall cache entries for all pages. So this is time for third parameter.\n\n```js\n...\nloadList(pageNumber) {\n    let url = \"http://google.com/?page=\" + pageNumber;\n    let cacheKey = url;\n    let groupKey = \"googleSearchPages\"\n\n    let request = this.http.get(url).map(res => res.json());\n    return this.cache.loadFromObservable(cacheKey, request, groupKey);\n}\n...\n```\n\nAnd when pull to refresh is fired, delete all cache entries in group *googleListPages*:\n\n```js\n...\npullToRefresh() {\n    this.cache.clearGroup(\"googleSearchPages\");\n}\n...\n```\n\n#### Delayed observable caching\n\nFeatures that using full power of observables. When you call this method and it will return data from cache (even if they are expired) \nand immediately send request to server and return new data after request successfuly finish. See example for more details:\n\n```js\n...\n    let request = this.http.get(url).map(res => res.json());\n    let delayType = 'all'; // send new request to server everytime, if it's set to none it will send new request only when entry is expired\n    let response = this.cache.loadFromDelayedObservable(cacheKey, request, groupKey, ttl, delayType);\n\n    response.subscribe(data => {\n        console.log(\"Data:\" data);\n    });\n\n    //result will look like this:\n    // Data: \"Hello world from cache\"\n    // Data: \"Hello world from server\"\n...\n```\n\n#### Set custom TTL for single request\n\nIf you want custom TTL for single request, it can by easily done by third parameter.\n\n```js\nlet ttl = 60 * 60 * 24 * 7; // TTL in seconds for one week\nlet request = this.http.get(url).map(res => res.json());\n\nreturn this.cache.loadFromObservable(cacheKey, request, groupKey, ttl);\n```\n\n#### Set default TTL\n\n```js\nthis.cache.setDefaultTTL(60 * 60); //set default cache TTL for 1 hour\n```\n\n#### Delete expired entries\n\nIt's automatically done on every startup, but you can do it manually.\n\n```js\nthis.cache.clearExpired();\n```\n\n#### Delete all entries\n\n```js\nthis.cache.clearAll();\n```\n\n#### Disable cache\n\nYou can disable cache without any worrying, it will pass origin Observable through and all Promises will be rejected.\nWithout any errors.\n\n```js\nthis.cache.enableCache(false);\n```\n\n#### Disable offline invalidate\n\nIf you want disable \"don't invalidate\" when device is offline, you can do it simply.\n\n```js\nthis.cache.setOfflineInvalidate(false);\n```\n","repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"users":{"andy008":true},"bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"license":"MIT","versions":{"2.0.5":{"name":"ionic-angular4-cache","version":"2.0.5","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"67ffb60f884ec1eaaaddb124f939cb82ee6edb0a","_id":"ionic-angular4-cache@2.0.5","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-flAjLHsZ2QvAa6DJ0om3q+L8XBb39D5WAF3f64pJQaHra6Dz+CfA2f08Jzv/llUJPzBgd9pYPZXg6osYUJnESA==","shasum":"30c54a3fc5d2b29e679e7216718d8d8b8053a521","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkGysIFuOJkYK1npym/iah64oy0Kti5jBbU9I5rNP9pAIhANrlfligxgIMSmLY0wbAZCS72ZTdY9RoyEnv7gU9K4jH"}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.0.5.tgz_1516009232185_0.34473917866125703"},"directories":{}},"2.0.6":{"name":"ionic-angular4-cache","version":"2.0.6","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"7ccaa536e240b2e15bea50b7b826a6007e530717","_id":"ionic-angular4-cache@2.0.6","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-FyGg+lHNV3hP5x1nHosurljhKi8wlVI+1jvR4AP0/GcUvMoxuhOihchZD58l2CH17fYnhWob/izzuO5NduPmpg==","shasum":"a06171d20e89a4d5993cc873bcb2e79c6e086196","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQRAC0DPwJa1XQ4chKQcLa21XB7XHyp6LLrel99Ihs7QIgFHz9QO/5E/l/dGLWJnvaos773Rk6JMMLhAbjjsjhvuY="}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.0.6.tgz_1516010613791_0.5077960367780179"},"directories":{}},"2.0.7":{"name":"ionic-angular4-cache","version":"2.0.7","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"3fd1c6a3fe639e9064cd09e05dfd202eb95ee483","_id":"ionic-angular4-cache@2.0.7","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-a9mrDhaysEuhw+WTeQSaqON6ZUda/NJIfQz3qyy9hgwNzhK/sVpDd6SfWE6FAUkCXw2WgB29GbF1+i2s/3jhig==","shasum":"937a4c829c1af5a535b505c3946a634f7d7458fd","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNCL62zbajn5kRqwVVaeKnWlBiSGUk0cR+n11QtHrg8wIgBHrigie1+oMrxNk3HidU/Ki5hpZce76GQNVsSVAHaAM="}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.0.7.tgz_1516615051649_0.8185293772257864"},"directories":{}},"2.0.8":{"name":"ionic-angular4-cache","version":"2.0.8","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"cb20840299d2b21c2239fb2c1a4bc1ca1e77498a","_id":"ionic-angular4-cache@2.0.8","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-D5jHPyQFuFr5m40n+IGjwuf+/ZNMcG5BAXpg+qyi9239HVH5A5ar+ATHbasrMLKAhkXZY5Mbbpdx+R9OUZpiRg==","shasum":"d372894a8eb97d2a62ca8a10595ce39b31897b06","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.0.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC69V8/dMvMCMVDsKWKijGxvFP3PKRaW8G5M5pEeDKiqgIhAL9zoKELkJMoMCI26m/yydPfDZP8zr4p9L0zK9U1Qubh"}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.0.8.tgz_1516615502832_0.7260701179038733"},"directories":{}},"2.1.0":{"name":"ionic-angular4-cache","version":"2.1.0","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"a4a9acdac92db93be41d10b30d525a04bf3a3bd0","_id":"ionic-angular4-cache@2.1.0","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-ZHoZ3PK3IBjdY/SREB4JpQ/+66tGp+m4+XVJZS14MKo4DgnhiiGhJCdeGFTPP7Rrp4cRmQ7jmOMBBomFL0qNWA==","shasum":"c7301b48de40ee33f8aef246eb37f67c9b1c4cb6","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsIC3vEqMrLhND7+Nhi7IqKDjxkQo2WfLmkZgMahB1fgIhAMeKQQ13ZajTNM1muWaIxv1U8Q/j2rbuuhH1pXbXS7D/"}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.1.0.tgz_1516617875622_0.9155943386722356"},"directories":{}},"2.1.1":{"name":"ionic-angular4-cache","version":"2.1.1","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"beb27528a11633c8ff7508cd43dff70fe34d6730","_id":"ionic-angular4-cache@2.1.1","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-GUqK5QrHsLBF9HeK+FBWpYrnMBRiJTqFTeu68iwPbte5DAzdiyfIrOMAkQcpsctXSyxFKTXzfHUXj62kl61y0w==","shasum":"f2973f822ed8e1b3c7c7bd010909614d25e6a758","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFfzyBKs5aTe3O1JH8ahEVYAAGqGovREWTxs0s3xtgBUAiEA3mlpWnYPdBwhkiP5VORVIUV0nvs3++baxwfzzmzadSY="}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.1.1.tgz_1516618574010_0.139747254550457"},"directories":{}},"2.1.2":{"name":"ionic-angular4-cache","version":"2.1.2","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"c00b2ccd7a0fef0fd108e2a8fe32d4e35f16ca4c","_id":"ionic-angular4-cache@2.1.2","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-kWYHG7Xr1TU3fUH5o9+0DW8DXieFZz7Y3gReFz0bleW8CxCXEgVs7RAQP31EEH0CA3mLGVYAmpLyGkFJ5ptbrw==","shasum":"efda5c5f74e81fe4b53e79cc31d8f83e9256ed4d","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWR3whP4dRD5+D4CVzGc6xOwnpFVNAShLQ3jpsdm8DgAIhAJxENizo7qjLwmxvPjKk1/r9AHMy4/LAkvkQCo3zLpOv"}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.1.2.tgz_1516624111968_0.26656969590112567"},"directories":{}},"2.1.3":{"name":"ionic-angular4-cache","version":"2.1.3","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"d602454e50e6a711c6b49ddad9ed5d7bb8a72d4a","_id":"ionic-angular4-cache@2.1.3","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-BUMgrwgUTmvGgjpcoz+tZcazlVZ9+GNVzTJrFlU4Ol9TCYaXByjTeE1XdQtN8nmw4d/vsG1DbWgyy0HEYMeUgw==","shasum":"9b811db73787d35bd47f5073fd62f72886cfb692","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.1.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhm44P8+74Anp5y4xvoL6M9NhrDf7aQ4mORVZXYmNjAwIhAOCyszlj34aBkF28XFpSBNSkp/nh322+ChseBUfndOdU"}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.1.3.tgz_1516628848825_0.015501198591664433"},"directories":{}},"2.1.4":{"name":"ionic-angular4-cache","version":"2.1.4","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"9559bd9e739dc0896b31a9ca26f2518eba251f81","_id":"ionic-angular4-cache@2.1.4","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-Tb5Ttyw2E5ECcpwJ9X+EFUZ5UlFI5qE7Ijzu+zXSsidnR3QqONI6unkyMVrQK9S3VpGKgzkx9+bXA8vDzXr2oA==","shasum":"6d97213783009f7716f8db5f85ea616c163eb2ac","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.1.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCC1N+0bwLWyTeTZcrOC014APdnH2MhtpnMIHCOw0R5QIgNz+bURDORKd9E3WlHSpD84cfbwG7hYnoh8n9dzFltww="}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.1.4.tgz_1516629741713_0.27202053531073034"},"directories":{}},"2.1.5":{"name":"ionic-angular4-cache","version":"2.1.5","description":"Ionic cache service with angular 4 - cache request, data, promises","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/index.js","files":["dist"],"scripts":{"test":"karma start karma.conf.js --single-run","test:watch":"karma start karma.conf.js","build":"rm -rf dist aot && ngc","lint":"tslint \"src/**/*.ts\"","prepublish":"npm run lint && npm run build"},"repository":{"type":"git","url":"git+http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache.git"},"keywords":["ionic","ionic","cache","angular2"],"author":{"name":"MobileThinking"},"license":"MIT","bugs":{"url":"http://gitlab.mobilethinking.ch/MobileThinking/angular4-ionic-cache/issues"},"homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts","devDependencies":{"@angular/common":"^4.1.3","@angular/compiler":"^4.1.3","@angular/compiler-cli":"^4.1.3","@angular/core":"^4.1.3","@angular/http":"^4.1.3","@angular/platform-browser":"^4.1.3","@angular/platform-browser-dynamic":"^4.1.3","@ionic/storage":"^2.0.1","@types/jasmine":"^2.5.47","@types/node":"^7.0.18","@types/websql":"0.0.27","jasmine-core":"^2.6.1","karma":"^1.6.0","karma-chrome-launcher":"^2.1.0","karma-cli":"^1.0.1","karma-jasmine":"^1.1.0","karma-phantomjs-launcher":"^1.0.4","karma-typescript":"^3.0.3","karma-typescript-angular2-transform":"^1.0.0","karma-typescript-es6-transform":"^1.0.0","rxjs":"^5.4.0","tslint":"^3.15.1","tslint-ionic-rules":"^0.0.8","typescript":"^2.3.4","zone.js":"^0.8.11"},"peerDependencies":{"@ionic/storage":"^2.0.1"},"dependencies":{"babel-preset-es2015":"^6.24.1"},"gitHead":"56b1a9770c7a2878ab0ceb1f35e5a4b12881347a","_id":"ionic-angular4-cache@2.1.5","_npmVersion":"5.5.1","_nodeVersion":"6.11.4","_npmUser":{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"},"dist":{"integrity":"sha512-owaVM3yOi9WDkgh+K8pN+I0LU+OSy4bOdV4W/ahr5nc7sHKNCgdlDaprGbWyU1J+mEBlqvukhK/lu0Pv47mIdQ==","shasum":"5e527aea8e0c425b9841da5093431261d2cacac7","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/ionic-angular4-cache/-/ionic-angular4-cache-2.1.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGH/AWvKcFOX12OBu2DMbK8ZaXdJCYQrzKB1sOpyfSOBAiEAmnYC6MGNJsNS7HDavX/WM53Z+poOYizj8s2vTs2Puz0="}]},"maintainers":[{"name":"anonymous","email":"hassanhelbawi+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ionic-angular4-cache-2.1.5.tgz_1516634903978_0.3479152196086943"},"directories":{}}},"name":"ionic-angular4-cache","time":{"modified":"2022-05-06T02:27:35.348Z","created":"2018-01-15T09:40:33.275Z","2.0.5":"2018-01-15T09:40:33.275Z","2.0.6":"2018-01-15T10:03:34.881Z","2.0.7":"2018-01-22T09:57:32.764Z","2.0.8":"2018-01-22T10:05:03.839Z","2.1.0":"2018-01-22T10:44:35.729Z","2.1.1":"2018-01-22T10:56:15.191Z","2.1.2":"2018-01-22T12:28:33.089Z","2.1.3":"2018-01-22T13:47:30.809Z","2.1.4":"2018-01-22T14:02:23.063Z","2.1.5":"2018-01-22T15:28:25.229Z"},"readmeFilename":"README.md","homepage":"http://gitlab.mobilethinking.ch/MobileThinking/ionic-angular4-cache#readme.ts"}