ng-http-caching 1.0.14 → 13.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +31 -8
  2. package/esm2020/lib/ng-http-caching-interceptor.service.mjs +66 -0
  3. package/esm2020/lib/ng-http-caching.module.mjs +45 -0
  4. package/esm2020/lib/ng-http-caching.service.mjs +265 -0
  5. package/esm2020/lib/storage/ng-http-caching-local-storage.mjs +121 -0
  6. package/esm2020/lib/storage/ng-http-caching-memory-storage.mjs +28 -0
  7. package/esm2020/lib/storage/ng-http-caching-storage.interface.mjs +2 -0
  8. package/{esm2015/ng-http-caching.js → esm2020/ng-http-caching.mjs} +0 -0
  9. package/esm2020/public-api.mjs +10 -0
  10. package/fesm2015/ng-http-caching.mjs +530 -0
  11. package/fesm2015/ng-http-caching.mjs.map +1 -0
  12. package/{fesm2015/ng-http-caching.js → fesm2020/ng-http-caching.mjs} +181 -52
  13. package/fesm2020/ng-http-caching.mjs.map +1 -0
  14. package/lib/ng-http-caching-interceptor.service.d.ts +2 -2
  15. package/lib/ng-http-caching.module.d.ts +3 -2
  16. package/lib/ng-http-caching.service.d.ts +3 -3
  17. package/lib/storage/ng-http-caching-local-storage.d.ts +11 -0
  18. package/package.json +24 -14
  19. package/public-api.d.ts +1 -0
  20. package/bundles/ng-http-caching.umd.js +0 -430
  21. package/bundles/ng-http-caching.umd.js.map +0 -1
  22. package/bundles/ng-http-caching.umd.min.js +0 -2
  23. package/bundles/ng-http-caching.umd.min.js.map +0 -1
  24. package/esm2015/lib/ng-http-caching-interceptor.service.js +0 -65
  25. package/esm2015/lib/ng-http-caching.module.js +0 -44
  26. package/esm2015/lib/ng-http-caching.service.js +0 -260
  27. package/esm2015/lib/storage/ng-http-caching-memory-storage.js +0 -27
  28. package/esm2015/lib/storage/ng-http-caching-storage.interface.js +0 -1
  29. package/esm2015/public-api.js +0 -9
  30. package/fesm2015/ng-http-caching.js.map +0 -1
@@ -0,0 +1,121 @@
1
+ import { HttpHeaders, HttpParams, HttpRequest, HttpResponse } from '@angular/common/http';
2
+ const KEY_PREFIX = 'NgHttpCaching::';
3
+ function serializeRequest(req) {
4
+ const request = req.clone(); // Make a clone, useful for doing destructive things
5
+ return JSON.stringify({
6
+ headers: Object.fromEntries(// Just a helper to make this into an object, not really required but makes the output nicer
7
+ request.headers.keys().map(// Get all of the headers
8
+ (key) => [key, request.headers.getAll(key)] // Get all of the corresponding values for the headers
9
+ )),
10
+ method: request.method,
11
+ url: request.url,
12
+ params: Object.fromEntries(// Just a helper to make this into an object, not really required but makes the output nicer
13
+ request.headers.keys().map(// Get all of the headers
14
+ (key) => [key, request.headers.getAll(key)] // Get all of the corresponding values for the headers
15
+ )),
16
+ withCredentials: request.withCredentials,
17
+ respnseType: request.responseType,
18
+ body: request.serializeBody() // Serialize the body, all well and good since we are working on a clone
19
+ });
20
+ }
21
+ function serializeResponse(res) {
22
+ const response = res.clone();
23
+ return JSON.stringify({
24
+ headers: Object.fromEntries(// Just a helper to make this into an object, not really required but makes the output nicer
25
+ response.headers.keys().map(// Get all of the headers
26
+ (key) => [key, response.headers.getAll(key)] // Get all of the corresponding values for the headers
27
+ )),
28
+ status: response.status,
29
+ statusText: response.statusText,
30
+ url: response.url,
31
+ body: response // Serialize the body, all well and good since we are working on a clone
32
+ });
33
+ }
34
+ function deserializeRequest(req) {
35
+ const request = JSON.parse(req);
36
+ const headers = new HttpHeaders(request.headers);
37
+ const params = new HttpParams(); // Probably some way to make this a one-liner, but alas, there are no good docs
38
+ // tslint:disable-next-line: forin
39
+ for (const parameter in request.params) {
40
+ request.params[parameter].forEach((paramValue) => params.append(parameter, paramValue));
41
+ }
42
+ return new HttpRequest(request.method, request.url, request.body, {
43
+ headers,
44
+ params,
45
+ responseType: request.responseType,
46
+ withCredentials: request.withCredentials
47
+ });
48
+ }
49
+ function deserializeResponse(res) {
50
+ const response = JSON.parse(res);
51
+ return new HttpResponse({
52
+ url: response.url,
53
+ headers: new HttpHeaders(response.headers),
54
+ body: response.body,
55
+ status: response.status,
56
+ statusText: response.statusText,
57
+ });
58
+ }
59
+ export class NgHttpCachingLocalStorage {
60
+ get size() {
61
+ let count = 0;
62
+ for (let i = 0, e = localStorage.length; i < e; i++) {
63
+ const key = localStorage.key(i);
64
+ if (key && key.startsWith(KEY_PREFIX)) {
65
+ count++;
66
+ }
67
+ }
68
+ return count;
69
+ }
70
+ clear() {
71
+ for (let i = 0, e = localStorage.length; i < e; i++) {
72
+ const key = localStorage.key(i);
73
+ if (key && key.startsWith(KEY_PREFIX)) {
74
+ localStorage.removeItem(key);
75
+ }
76
+ }
77
+ }
78
+ delete(key) {
79
+ localStorage.removeItem(KEY_PREFIX + key);
80
+ return true;
81
+ }
82
+ // eslint-disable-next-line no-unused-vars
83
+ forEach(callbackfn) {
84
+ // iterate localStorage
85
+ const lenPrefix = KEY_PREFIX.length;
86
+ for (let i = 0, e = localStorage.length; i < e; i++) {
87
+ const key = localStorage.key(i);
88
+ if (key && key.startsWith(KEY_PREFIX)) {
89
+ const value = this.get(key.substring(lenPrefix));
90
+ if (value) {
91
+ callbackfn(value, key);
92
+ }
93
+ }
94
+ }
95
+ }
96
+ get(key) {
97
+ const item = localStorage.getItem(KEY_PREFIX + key);
98
+ if (item) {
99
+ const parsedItem = JSON.parse(item);
100
+ return {
101
+ url: parsedItem.url,
102
+ response: deserializeResponse(parsedItem.response),
103
+ request: deserializeRequest(parsedItem.request),
104
+ addedTime: parsedItem.addedTime
105
+ };
106
+ }
107
+ return undefined;
108
+ }
109
+ has(key) {
110
+ return localStorage.getItem(KEY_PREFIX + key) !== undefined;
111
+ }
112
+ set(key, value) {
113
+ localStorage.setItem(KEY_PREFIX + key, JSON.stringify({
114
+ url: value.url,
115
+ response: serializeResponse(value.response),
116
+ request: serializeRequest(value.request),
117
+ addedTime: value.addedTime
118
+ }));
119
+ }
120
+ }
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaHR0cC1jYWNoaW5nLWxvY2FsLXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1odHRwLWNhY2hpbmcvc3JjL2xpYi9zdG9yYWdlL25nLWh0dHAtY2FjaGluZy1sb2NhbC1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRixNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztBQUVyQyxTQUFTLGdCQUFnQixDQUFDLEdBQXFCO0lBQzNDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLG9EQUFvRDtJQUNqRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUUsNEZBQTRGO1FBQ3JILE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFFLHlCQUF5QjtRQUNqRCxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzREFBc0Q7U0FDN0csQ0FDSjtRQUNELE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7UUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUUsNEZBQTRGO1FBQ3BILE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFFLHlCQUF5QjtRQUNqRCxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzREFBc0Q7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SjtJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELElBQUksSUFBSSxFQUFFO1lBQ04sTUFBTSxVQUFVLEdBQXVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsT0FBTztnQkFDSCxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUc7Z0JBQ25CLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsUUFBNkIsQ0FBQztnQkFDdkUsT0FBTyxFQUFFLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUE0QixDQUFDO2dCQUNwRSxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7YUFDbEMsQ0FBQztTQUNMO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXO1FBQ1gsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDaEUsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBeUI7UUFDdEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDbEQsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDM0MsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDeEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdIdHRwQ2FjaGluZ1N0b3JhZ2VJbnRlcmZhY2UgfSBmcm9tICcuL25nLWh0dHAtY2FjaGluZy1zdG9yYWdlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE5nSHR0cENhY2hpbmdFbnRyeSB9IGZyb20gJy4uL25nLWh0dHAtY2FjaGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5jb25zdCBLRVlfUFJFRklYID0gJ05nSHR0cENhY2hpbmc6Oic7XHJcblxyXG5mdW5jdGlvbiBzZXJpYWxpemVSZXF1ZXN0KHJlcTogSHR0cFJlcXVlc3Q8YW55Pik6IHN0cmluZyB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0gcmVxLmNsb25lKCk7IC8vIE1ha2UgYSBjbG9uZSwgdXNlZnVsIGZvciBkb2luZyBkZXN0cnVjdGl2ZSB0aGluZ3NcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKCAvLyBKdXN0IGEgaGVscGVyIHRvIG1ha2UgdGhpcyBpbnRvIGFuIG9iamVjdCwgbm90IHJlYWxseSByZXF1aXJlZCBidXQgbWFrZXMgdGhlIG91dHB1dCBuaWNlclxyXG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMua2V5cygpLm1hcCggLy8gR2V0IGFsbCBvZiB0aGUgaGVhZGVyc1xyXG4gICAgICAgICAgICAgICAgKGtleTogc3RyaW5nKSA9PiBba2V5LCByZXF1ZXN0LmhlYWRlcnMuZ2V0QWxsKGtleSldIC8vIEdldCBhbGwgb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGZvciB0aGUgaGVhZGVyc1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKSxcclxuICAgICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLCAvLyBUaGUgUmVxdWVzdCBNZXRob2QsIGUuZy4gR0VULCBQT1NULCBERUxFVEVcclxuICAgICAgICB1cmw6IHJlcXVlc3QudXJsLCAvLyBUaGUgVVJMXHJcbiAgICAgICAgcGFyYW1zOiBPYmplY3QuZnJvbUVudHJpZXMoIC8vIEp1c3QgYSBoZWxwZXIgdG8gbWFrZSB0aGlzIGludG8gYW4gb2JqZWN0LCBub3QgcmVhbGx5IHJlcXVpcmVkIGJ1dCBtYWtlcyB0aGUgb3V0cHV0IG5pY2VyXHJcbiAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5rZXlzKCkubWFwKCAvLyBHZXQgYWxsIG9mIHRoZSBoZWFkZXJzXHJcbiAgICAgICAgICAgICAgICAoa2V5OiBzdHJpbmcpID0+IFtrZXksIHJlcXVlc3QuaGVhZGVycy5nZXRBbGwoa2V5KV0gLy8gR2V0IGFsbCBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZXMgZm9yIHRoZSBoZWFkZXJzXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApLCAvLyBUaGUgcmVxdWVzdCBwYXJhbWV0ZXJzXHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiByZXF1ZXN0LndpdGhDcmVkZW50aWFscywgLy8gV2hldGhlciBjcmVkZW50aWFscyBhcmUgYmVpbmcgc2VudFxyXG4gICAgICAgIHJlc3Buc2VUeXBlOiByZXF1ZXN0LnJlc3BvbnNlVHlwZSwgLy8gVGhlIHJlc3BvbnNlIHR5cGVcclxuICAgICAgICBib2R5OiByZXF1ZXN0LnNlcmlhbGl6ZUJvZHkoKSAvLyBTZXJpYWxpemUgdGhlIGJvZHksIGFsbCB3ZWxsIGFuZCBnb29kIHNpbmNlIHdlIGFyZSB3b3JraW5nIG9uIGEgY2xvbmVcclxuICAgIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZXJpYWxpemVSZXNwb25zZShyZXM6IEh0dHBSZXNwb25zZTxhbnk+KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzLmNsb25lKCk7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyggLy8gSnVzdCBhIGhlbHBlciB0byBtYWtlIHRoaXMgaW50byBhbiBvYmplY3QsIG5vdCByZWFsbHkgcmVxdWlyZWQgYnV0IG1ha2VzIHRoZSBvdXRwdXQgbmljZXJcclxuICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5rZXlzKCkubWFwKCAvLyBHZXQgYWxsIG9mIHRoZSBoZWFkZXJzXHJcbiAgICAgICAgICAgICAgICAoa2V5OiBzdHJpbmcpID0+IFtrZXksIHJlc3BvbnNlLmhlYWRlcnMuZ2V0QWxsKGtleSldIC8vIEdldCBhbGwgb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGZvciB0aGUgaGVhZGVyc1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKSxcclxuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcclxuICAgICAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0LFxyXG4gICAgICAgIHVybDogcmVzcG9uc2UudXJsLFxyXG4gICAgICAgIGJvZHk6IHJlc3BvbnNlIC8vIFNlcmlhbGl6ZSB0aGUgYm9keSwgYWxsIHdlbGwgYW5kIGdvb2Qgc2luY2Ugd2UgYXJlIHdvcmtpbmcgb24gYSBjbG9uZVxyXG4gICAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlc2VyaWFsaXplUmVxdWVzdDxUID0gYW55PihyZXE6IHN0cmluZyk6IEh0dHBSZXF1ZXN0PFQ+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSBKU09OLnBhcnNlKHJlcSk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHJlcXVlc3QuaGVhZGVycyk7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpOyAvLyBQcm9iYWJseSBzb21lIHdheSB0byBtYWtlIHRoaXMgYSBvbmUtbGluZXIsIGJ1dCBhbGFzLCB0aGVyZSBhcmUgbm8gZ29vZCBkb2NzXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGZvcmluXHJcbiAgICBmb3IgKGNvbnN0IHBhcmFtZXRlciBpbiByZXF1ZXN0LnBhcmFtcykge1xyXG4gICAgICAgIHJlcXVlc3QucGFyYW1zW3BhcmFtZXRlcl0uZm9yRWFjaCgocGFyYW1WYWx1ZTogc3RyaW5nKSA9PiBwYXJhbXMuYXBwZW5kKHBhcmFtZXRlciwgcGFyYW1WYWx1ZSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBIdHRwUmVxdWVzdChyZXF1ZXN0Lm1ldGhvZCwgcmVxdWVzdC51cmwsIHJlcXVlc3QuYm9keSwge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogcmVxdWVzdC5yZXNwb25zZVR5cGUsXHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiByZXF1ZXN0LndpdGhDcmVkZW50aWFsc1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlc2VyaWFsaXplUmVzcG9uc2U8VCA9IGFueT4ocmVzOiBzdHJpbmcpOiBIdHRwUmVzcG9uc2U8VD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHJlcyk7XHJcbiAgICByZXR1cm4gbmV3IEh0dHBSZXNwb25zZTxUPih7XHJcbiAgICAgICAgdXJsOiByZXNwb25zZS51cmwsXHJcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHJlc3BvbnNlLmhlYWRlcnMpLFxyXG4gICAgICAgIGJvZHk6IHJlc3BvbnNlLmJvZHksXHJcbiAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXHJcbiAgICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTmdIdHRwQ2FjaGluZ0xvY2FsU3RvcmFnZSBpbXBsZW1lbnRzIE5nSHR0cENhY2hpbmdTdG9yYWdlSW50ZXJmYWNlIHtcclxuXHJcbiAgICBnZXQgc2l6ZSgpOiBudW1iZXIge1xyXG4gICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGUgPSBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpIDwgZTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XHJcbiAgICAgICAgICAgIGlmIChrZXkgJiYga2V5LnN0YXJ0c1dpdGgoS0VZX1BSRUZJWCkpIHtcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBlID0gbG9jYWxTdG9yYWdlLmxlbmd0aDsgaSA8IGU7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xyXG4gICAgICAgICAgICBpZiAoa2V5ICYmIGtleS5zdGFydHNXaXRoKEtFWV9QUkVGSVgpKSB7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKEtFWV9QUkVGSVggKyBrZXkpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IE5nSHR0cENhY2hpbmdFbnRyeSwga2V5OiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICAvLyBpdGVyYXRlIGxvY2FsU3RvcmFnZVxyXG4gICAgICAgIGNvbnN0IGxlblByZWZpeCA9IEtFWV9QUkVGSVgubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBlID0gbG9jYWxTdG9yYWdlLmxlbmd0aDsgaSA8IGU7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xyXG4gICAgICAgICAgICBpZiAoa2V5ICYmIGtleS5zdGFydHNXaXRoKEtFWV9QUkVGSVgpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0KGtleS5zdWJzdHJpbmcobGVuUHJlZml4KSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFja2ZuKHZhbHVlLCBrZXkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldChrZXk6IHN0cmluZyk6IE5nSHR0cENhY2hpbmdFbnRyeSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKEtFWV9QUkVGSVggKyBrZXkpO1xyXG4gICAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEl0ZW06IE5nSHR0cENhY2hpbmdFbnRyeSA9IEpTT04ucGFyc2UoaXRlbSk7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICB1cmw6IHBhcnNlZEl0ZW0udXJsLFxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2U6IGRlc2VyaWFsaXplUmVzcG9uc2UocGFyc2VkSXRlbS5yZXNwb25zZSBhcyB1bmtub3duIGFzIHN0cmluZyksXHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0OiBkZXNlcmlhbGl6ZVJlcXVlc3QocGFyc2VkSXRlbS5yZXF1ZXN0IGFzIHVua25vd24gYXMgc3RyaW5nKSxcclxuICAgICAgICAgICAgICAgIGFkZGVkVGltZTogcGFyc2VkSXRlbS5hZGRlZFRpbWVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oS0VZX1BSRUZJWCArIGtleSkgIT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBOZ0h0dHBDYWNoaW5nRW50cnkpOiB2b2lkIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShLRVlfUFJFRklYICsga2V5LCBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgIHVybDogdmFsdWUudXJsLFxyXG4gICAgICAgICAgICByZXNwb25zZTogc2VyaWFsaXplUmVzcG9uc2UodmFsdWUucmVzcG9uc2UpLFxyXG4gICAgICAgICAgICByZXF1ZXN0OiBzZXJpYWxpemVSZXF1ZXN0KHZhbHVlLnJlcXVlc3QpLFxyXG4gICAgICAgICAgICBhZGRlZFRpbWU6IHZhbHVlLmFkZGVkVGltZVxyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,28 @@
1
+ export class NgHttpCachingMemoryStorage {
2
+ constructor() {
3
+ this.store = new Map();
4
+ }
5
+ get size() {
6
+ return this.store.size;
7
+ }
8
+ clear() {
9
+ this.store.clear();
10
+ }
11
+ delete(key) {
12
+ return this.store.delete(key);
13
+ }
14
+ // eslint-disable-next-line no-unused-vars
15
+ forEach(callbackfn) {
16
+ return this.store.forEach(callbackfn);
17
+ }
18
+ get(key) {
19
+ return this.store.get(key);
20
+ }
21
+ has(key) {
22
+ return this.store.has(key);
23
+ }
24
+ set(key, value) {
25
+ this.store.set(key, value);
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaHR0cC1jYWNoaW5nLW1lbW9yeS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaHR0cC1jYWNoaW5nL3NyYy9saWIvc3RvcmFnZS9uZy1odHRwLWNhY2hpbmctbWVtb3J5LXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQU1ZLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztJQTBCMUQsQ0FBQztJQTlCRyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFJRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsT0FBTyxDQUFDLFVBQTREO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQXlCO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0h0dHBDYWNoaW5nU3RvcmFnZUludGVyZmFjZSB9IGZyb20gJy4vbmctaHR0cC1jYWNoaW5nLXN0b3JhZ2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTmdIdHRwQ2FjaGluZ0VudHJ5IH0gZnJvbSAnLi4vbmctaHR0cC1jYWNoaW5nLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE5nSHR0cENhY2hpbmdNZW1vcnlTdG9yYWdlIGltcGxlbWVudHMgTmdIdHRwQ2FjaGluZ1N0b3JhZ2VJbnRlcmZhY2Uge1xyXG5cclxuICAgIGdldCBzaXplKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0b3JlID0gbmV3IE1hcDxzdHJpbmcsIE5nSHR0cENhY2hpbmdFbnRyeT4oKTtcclxuXHJcbiAgICBjbGVhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN0b3JlLmNsZWFyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGVsZXRlKGtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBmb3JFYWNoKGNhbGxiYWNrZm46ICh2YWx1ZTogTmdIdHRwQ2FjaGluZ0VudHJ5LCBrZXk6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLmZvckVhY2goY2FsbGJhY2tmbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KGtleTogc3RyaW5nKTogTmdIdHRwQ2FjaGluZ0VudHJ5IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXQoa2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5oYXMoa2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBOZ0h0dHBDYWNoaW5nRW50cnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN0b3JlLnNldChrZXksIHZhbHVlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaHR0cC1jYWNoaW5nLXN0b3JhZ2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaHR0cC1jYWNoaW5nL3NyYy9saWIvc3RvcmFnZS9uZy1odHRwLWNhY2hpbmctc3RvcmFnZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXHJcbmltcG9ydCB7IE5nSHR0cENhY2hpbmdFbnRyeSB9IGZyb20gJy4uL25nLWh0dHAtY2FjaGluZy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmdIdHRwQ2FjaGluZ1N0b3JhZ2VJbnRlcmZhY2Uge1xyXG5cclxuICAgIHJlYWRvbmx5IHNpemU6IG51bWJlcjtcclxuXHJcbiAgICBjbGVhcigpOiB2b2lkO1xyXG5cclxuICAgIGRlbGV0ZShrZXk6IHN0cmluZyk6IGJvb2xlYW47XHJcblxyXG4gICAgZm9yRWFjaChjYWxsYmFja2ZuOiAodmFsdWU6IE5nSHR0cENhY2hpbmdFbnRyeSwga2V5OiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkO1xyXG5cclxuICAgIGdldChrZXk6IHN0cmluZyk6IE5nSHR0cENhY2hpbmdFbnRyeSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xyXG5cclxuICAgIHNldChrZXk6IHN0cmluZywgdmFsdWU6IE5nSHR0cENhY2hpbmdFbnRyeSk6IHZvaWQ7XHJcbn1cclxuIl19
@@ -0,0 +1,10 @@
1
+ /*
2
+ * Public API Surface of ng-http-caching
3
+ */
4
+ export * from './lib/ng-http-caching-interceptor.service';
5
+ export * from './lib/ng-http-caching.service';
6
+ export * from './lib/ng-http-caching.module';
7
+ export * from './lib/storage/ng-http-caching-storage.interface';
8
+ export * from './lib/storage/ng-http-caching-memory-storage';
9
+ export * from './lib/storage/ng-http-caching-local-storage';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWh0dHAtY2FjaGluZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLWh0dHAtY2FjaGluZ1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWh0dHAtY2FjaGluZy1pbnRlcmNlcHRvci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctaHR0cC1jYWNoaW5nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1odHRwLWNhY2hpbmcubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmFnZS9uZy1odHRwLWNhY2hpbmctc3RvcmFnZS5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdG9yYWdlL25nLWh0dHAtY2FjaGluZy1tZW1vcnktc3RvcmFnZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JhZ2UvbmctaHR0cC1jYWNoaW5nLWxvY2FsLXN0b3JhZ2UnO1xyXG4iXX0=