p3x-angular-http-cache-interceptor 2022.4.110 → 2022.4.123
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.
- package/LICENSE +1 -1
- package/README.md +4 -4
- package/esm2020/lib/http-cache-interceptor.interceptor.mjs +4 -4
- package/esm2020/lib/http-cache-interceptor.module.mjs +5 -5
- package/fesm2015/p3x-angular-http-cache-interceptor.mjs +7 -8
- package/fesm2015/p3x-angular-http-cache-interceptor.mjs.map +1 -1
- package/fesm2020/p3x-angular-http-cache-interceptor.mjs +7 -8
- package/fesm2020/p3x-angular-http-cache-interceptor.mjs.map +1 -1
- package/package.json +2 -2
package/LICENSE
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
@license p3x-angular-http-cache-interceptor v2022.4.
|
|
2
|
+
@license p3x-angular-http-cache-interceptor v2022.4.122
|
|
3
3
|
|
|
4
4
|
🔥 Cache every request in Angular, not only the GET, but all methods of this interceptor, and allows you to interact with the interceptor via specific headers and modify the request, and these specific headers will be not included in the final request
|
|
5
5
|
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
# 🔥 Cache every request in Angular, not only the GET, but all methods of this interceptor, and allows you to interact with the interceptor via specific headers and modify the request, and these specific headers will be not included in the final request v2022.4.
|
|
14
|
+
# 🔥 Cache every request in Angular, not only the GET, but all methods of this interceptor, and allows you to interact with the interceptor via specific headers and modify the request, and these specific headers will be not included in the final request v2022.4.123
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
### Built on NodeJs version
|
|
26
26
|
|
|
27
27
|
```txt
|
|
28
|
-
v16.
|
|
28
|
+
v16.15.0
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
|
|
@@ -34,7 +34,7 @@ v16.14.0
|
|
|
34
34
|
# Built on Angular
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
|
-
13.
|
|
37
|
+
13.3.11
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
|
|
@@ -186,7 +186,7 @@ All my domains ([patrikx3.com](https://patrikx3.com) and [corifeus.com](https://
|
|
|
186
186
|
|
|
187
187
|
---
|
|
188
188
|
|
|
189
|
-
[**P3X-ANGULAR-HTTP-CACHE-INTERCEPTOR**](https://corifeus.com/angular-http-cache-interceptor) Build v2022.4.
|
|
189
|
+
[**P3X-ANGULAR-HTTP-CACHE-INTERCEPTOR**](https://corifeus.com/angular-http-cache-interceptor) Build v2022.4.123
|
|
190
190
|
|
|
191
191
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
192
192
|
|
|
@@ -99,9 +99,9 @@ export class HttpCacheInterceptorInterceptor {
|
|
|
99
99
|
*/
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
HttpCacheInterceptorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
103
|
-
HttpCacheInterceptorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
102
|
+
HttpCacheInterceptorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor, deps: [{ token: P3X_HTTP_CACHE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
103
|
+
HttpCacheInterceptorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor });
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor, decorators: [{
|
|
105
105
|
type: Injectable
|
|
106
106
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
107
107
|
type: Inject,
|
|
@@ -109,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
109
109
|
}, {
|
|
110
110
|
type: Optional
|
|
111
111
|
}] }]; } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jYWNoZS1pbnRlcmNlcHRvci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItaHR0cC1jYWNoZS1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtY2FjaGUtaW50ZXJjZXB0b3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBdUQsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDeEcsT0FBTyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUE7QUFDbkMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7O0FBSWhFLE1BQU0sV0FBVyxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUE7QUFFRCxNQUFNLFdBQVcsR0FBSSxJQUFJLEdBQUcsRUFBZSxDQUFBO0FBRzNDLE1BQU0sT0FBTywrQkFBK0I7SUF5QjFDLFlBQXVELG9CQUFxQztRQXZCcEYsZUFBVSxHQUFLLElBQUksR0FBRyxFQUFlLENBQUE7UUFFN0Msb0JBQWUsR0FBcUI7WUFDbEMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxLQUFLO1lBQzlCLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTTtTQUMzQixDQUFBO1FBbUJDLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsSUFBSSxDQUFD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QVksWUFBWSxVQUFVLENBQUM7b0JBQ3pDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUM3QztZQUVELDZDQUE2QztZQUU3QyxpREFBaUQ7WUFDakQsc0RBQXNEO1lBQ3RELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNqRCxHQUFHLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxVQUFVLFlBQVksWUFBWSxFQUFFO29CQUN0QyxJQUFJLENBQUMsUUFBUSxDQUNYLEdBQUcsRUFDSCxVQUFVLENBQUMsS0FBSyxFQUFFLENBQ25CLENBQUM7aUJBQ0g7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUQsb0VBQW9FO1lBQ3BFLDBDQUEwQztZQUUxQyxPQUFPLGFBQWEsQ0FBQztTQUN0QjthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDbkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO1NBQzFEO1FBRUQ7Ozs7O1dBS0c7SUFHTCxDQUFDOzs0SEEzR1UsK0JBQStCLGtCQXlCdEIscUJBQXFCO2dJQXpCOUIsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVU7OzBCQTBCSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCAqIGFzIGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnXG5pbXBvcnQge3RhcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7Q2FjaGluZ0hlYWRlcnN9IGZyb20gXCIuL2NhY2hpbmctaGVhZGVycy5lbnVtXCI7XG5pbXBvcnQge0NhY2hpbmdTdG9yZX0gZnJvbSBcIi4vY2FjaGluZy1zdG9yZS5lbnVtXCI7XG5cbmltcG9ydCB7UDNYX0hUVFBfQ0FDSEVfQ09ORklHfSBmcm9tIFwiLi9odHRwLWNhY2hlLWNvbmZpZy50b2tlblwiO1xuaW1wb3J0IHtIdHRwQ2FjaGVDb25maWd9IGZyb20gXCIuL2h0dHAtY2FjaGUtY29uZmlnXCI7XG5cblxuY29uc3QgaGFzaE9wdGlvbnMgPSB7XG4gIGFsZ29yaXRobTogJ21kNScsXG4gIGVuY29kaW5nOiAnaGV4J1xufVxuXG5jb25zdCBnbG9iYWxDYWNoZSA9ICBuZXcgTWFwPHN0cmluZywgYW55PigpXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwQ2FjaGVJbnRlcmNlcHRvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICBwcml2YXRlIGNhY2hlZERhdGEgID0gIG5ldyBNYXA8c3RyaW5nLCBhbnk+KClcblxuICBodHRwQ2FjaGVDb25maWcgOiBIdHRwQ2FjaGVDb25maWcgPSB7XG4gICAgYmVoYXZpb3I6IENhY2hpbmdIZWFkZXJzLkNhY2hlLFxuICAgIHN0b3JlOiBDYWNoaW5nU3RvcmUuR2xvYmFsLFxuICB9XG5cbiAgZ2V0Q2FjaGUoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5odHRwQ2FjaGVDb25maWcuc3RvcmUgPT09IENhY2hpbmdTdG9yZS5HbG9iYWwpIHtcbiAgICAgIHJldHVybiBnbG9iYWxDYWNoZS5nZXQoa2V5KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZWREYXRhLmdldChrZXkpXG4gICAgfVxuICB9XG5cbiAgc2V0Q2FjaGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5odHRwQ2FjaGVDb25maWcuc3RvcmUgPT09IENhY2hpbmdTdG9yZS5HbG9iYWwpIHtcbiAgICAgIGdsb2JhbENhY2hlLnNldChrZXksIHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhY2hlZERhdGEuc2V0KGtleSwgdmFsdWUpXG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQM1hfSFRUUF9DQUNIRV9DT05GSUcpIEBPcHRpb25hbCgpIGh0dHBDYWNoZUNvbmZpZ1Rva2VuOiBIdHRwQ2FjaGVDb25maWcpIHtcbiAgICBpZiAoaHR0cENhY2hlQ29uZmlnVG9rZW4pIHtcbiAgICAgIHRoaXMuaHR0cENhY2hlQ29uZmlnID0gaHR0cENhY2hlQ29uZmlnVG9rZW5cbiAgICB9XG4gIH1cblxuICBodHRwVG9LZXkoaHR0cFJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pIHtcbiAgICBjb25zdCBib2R5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShodHRwUmVxdWVzdC5ib2R5KSlcbiAgICBjb25zdCBrZXkgPSBodHRwUmVxdWVzdC5tZXRob2QgKyAnQCcgKyBodHRwUmVxdWVzdC51cmxXaXRoUGFyYW1zICsgJ0AnICsgaGFzaChodHRwUmVxdWVzdC5wYXJhbXMsIGhhc2hPcHRpb25zKSArICdAJyArIGhhc2goYm9keSwgaGFzaE9wdGlvbnMpXG4gICAgcmV0dXJuIGtleVxuICB9XG5cbiAgaW50ZXJjZXB0KGh0dHBSZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuXG5cbiAgICAvL2NvbnNvbGUubG9nKGh0dHBSZXF1ZXN0KVxuICAgIC8vY29uc29sZS5sb2coJ2hhcycsIGh0dHBSZXF1ZXN0LmhlYWRlcnMuaGFzKENhY2hpbmdIZWFkZXJzLk5vQ2FjaGUpKVxuICAgIC8vY29uc29sZS5sb2coJ3ZhbHVlJywgaHR0cFJlcXVlc3QuaGVhZGVycy5nZXQoQ2FjaGluZ0hlYWRlcnMuTm9DYWNoZSkpXG5cbiAgICBjb25zdCBmb3JjZWRDYWNoZSA9IGh0dHBSZXF1ZXN0LmhlYWRlcnMuZ2V0KENhY2hpbmdIZWFkZXJzLkNhY2hlKSAhPT0gbnVsbFxuICAgIGNvbnN0IGZvcmNlZE5vbmVDYWNoZSA9IGh0dHBSZXF1ZXN0LmhlYWRlcnMuZ2V0KENhY2hpbmdIZWFkZXJzLk5vQ2FjaGUpICE9PSBudWxsXG5cbiAgICAvL2NvbnNvbGUubG9nKCdmb3JjZWRDYWNoZScsIGZvcmNlZENhY2hlLCAnZm9yY2VkTm9uZUNhY2hlJywgZm9yY2VkTm9uZUNhY2hlKVxuXG4gICAgbGV0IGhlYWRlcnMgPSBodHRwUmVxdWVzdC5oZWFkZXJzLmRlbGV0ZShDYWNoaW5nSGVhZGVycy5Ob0NhY2hlKVxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLmRlbGV0ZShDYWNoaW5nSGVhZGVycy5DYWNoZSlcbiAgICBodHRwUmVxdWVzdCA9IGh0dHBSZXF1ZXN0LmNsb25lKHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnNcbiAgICB9KVxuXG4gICAgaWYgKGZvcmNlZENhY2hlICYmIGZvcmNlZE5vbmVDYWNoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHVzZSBjYWNoZSBhbmQgbm9uLWNhY2hlIGhlYWRlciBhdCBvbmNlIScpXG4gICAgfSBlbHNlIGlmIChmb3JjZWROb25lQ2FjaGUgfHwgKHRoaXMuaHR0cENhY2hlQ29uZmlnLmJlaGF2aW9yID09PSBDYWNoaW5nSGVhZGVycy5Ob0NhY2hlICYmICFmb3JjZWRDYWNoZSkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShodHRwUmVxdWVzdCk7XG4gICAgfSBlbHNlIGlmIChmb3JjZWRDYWNoZSB8fCAodGhpcy5odHRwQ2FjaGVDb25maWcuYmVoYXZpb3IgPT09IENhY2hpbmdIZWFkZXJzLkNhY2hlICYmICFmb3JjZWROb25lQ2FjaGUpKSB7XG4gICAgICAvLyBDaGVja2VkIGlmIHRoZXJlIGlzIGNhY2hlZCBkYXRhIGZvciB0aGlzIFVSSVxuICAgICAgY29uc3Qga2V5ID0gdGhpcy5odHRwVG9LZXkoaHR0cFJlcXVlc3QpXG4gICAgICBjb25zdCBsYXN0UmVzcG9uc2UgPSB0aGlzLmdldENhY2hlKGtleSk7XG4gICAgICBpZiAobGFzdFJlc3BvbnNlKSB7XG4gICAgICAgIC8vIEluIGNhc2Ugb2YgcGFyYWxsZWwgcmVxdWVzdHMgdG8gc2FtZSBVUkksXG4gICAgICAgIC8vIHJldHVybiB0aGUgcmVxdWVzdCBhbHJlYWR5IGluIHByb2dyZXNzXG4gICAgICAgIC8vIG90aGVyd2lzZSByZXR1cm4gdGhlIGxhc3QgY2FjaGVkIGRhdGFcblxuICAgICAgICAvL2NvbnNvbGUuaW5mbygnaHR0cCBjYWNoZSBpbnRlcmNlcHRvciBoaXQgY2FjaGUnLCBrZXkpXG5cbiAgICAgICAgcmV0dXJuIChsYXN0UmVzcG9uc2UgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKVxuICAgICAgICAgID8gbGFzdFJlc3BvbnNlIDogb2YobGFzdFJlc3BvbnNlLmNsb25lKCkpO1xuICAgICAgfVxuXG4gICAgICAvL2NvbnNvbGUuaW5mbygnaHR0cCBjYWNoZSBpbnRlcmNlcHRvcicsIGtleSlcblxuICAgICAgLy8gSWYgdGhlIHJlcXVlc3Qgb2YgZ29pbmcgdGhyb3VnaCBmb3IgZmlyc3QgdGltZVxuICAgICAgLy8gdGhlbiBsZXQgdGhlIHJlcXVlc3QgcHJvY2VlZCBhbmQgY2FjaGUgdGhlIHJlc3BvbnNlXG4gICAgICBjb25zdCByZXF1ZXN0SGFuZGxlID0gbmV4dC5oYW5kbGUoaHR0cFJlcXVlc3QpLnBpcGUoXG4gICAgICAgIHRhcCgoc3RhdGVFdmVudDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXRlRXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FjaGUoXG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgc3RhdGVFdmVudC5jbG9uZSgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcblxuICAgICAgLy8gTWVhbndoaWxlIGNhY2hlIHRoZSByZXF1ZXN0IE9ic2VydmFibGUgdG8gaGFuZGxlIHBhcmFsbGVsIHJlcXVlc3RcbiAgICAgIC8vdGhpcy5jYWNoZWREYXRhLnNldChrZXksIHJlcXVlc3RIYW5kbGUpO1xuXG4gICAgICByZXR1cm4gcmVxdWVzdEhhbmRsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcih0aGlzLmh0dHBDYWNoZUNvbmZpZylcbiAgICAgIGNvbnNvbGUuZXJyb3IoaHR0cFJlcXVlc3QuaGVhZGVycylcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlcmUgaXMgYSBjb25maWd1cmF0aW9uIGluIHlvdXIgc2V0dXAnKVxuICAgIH1cblxuICAgIC8qXG4gICAgLy8gQWxzbyBsZWF2ZSBzY29wZSBvZiByZXNldHRpbmcgYWxyZWFkeSBjYWNoZWQgZGF0YSBmb3IgYSBVUklcbiAgICBpZiAoaHR0cFJlcXVlc3QuaGVhZGVycy5nZXQoXCJyZXNldC1jYWNoZVwiKSkge1xuICAgICAgdGhpcy5jYWNoZWREYXRhLmRlbGV0ZShodHRwUmVxdWVzdC51cmxXaXRoUGFyYW1zKTtcbiAgICB9XG4gICAgICovXG5cblxuICB9XG59XG4iXX0=
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jYWNoZS1pbnRlcmNlcHRvci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItaHR0cC1jYWNoZS1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtY2FjaGUtaW50ZXJjZXB0b3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBdUQsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDeEcsT0FBTyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUE7QUFDbkMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7O0FBSWhFLE1BQU0sV0FBVyxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUE7QUFFRCxNQUFNLFdBQVcsR0FBSSxJQUFJLEdBQUcsRUFBZSxDQUFBO0FBRzNDLE1BQU0sT0FBTywrQkFBK0I7SUF5QjFDLFlBQXVELG9CQUFxQztRQXZCcEYsZUFBVSxHQUFLLElBQUksR0FBRyxFQUFlLENBQUE7UUFFN0Msb0JBQWUsR0FBcUI7WUFDbEMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxLQUFLO1lBQzlCLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTTtTQUMzQixDQUFBO1FBbUJDLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsSUFBSSxDQUFD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QVksWUFBWSxVQUFVLENBQUM7b0JBQ3pDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUM3QztZQUVELDZDQUE2QztZQUU3QyxpREFBaUQ7WUFDakQsc0RBQXNEO1lBQ3RELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNqRCxHQUFHLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxVQUFVLFlBQVksWUFBWSxFQUFFO29CQUN0QyxJQUFJLENBQUMsUUFBUSxDQUNYLEdBQUcsRUFDSCxVQUFVLENBQUMsS0FBSyxFQUFFLENBQ25CLENBQUM7aUJBQ0g7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUQsb0VBQW9FO1lBQ3BFLDBDQUEwQztZQUUxQyxPQUFPLGFBQWEsQ0FBQztTQUN0QjthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDbkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO1NBQzFEO1FBRUQ7Ozs7O1dBS0c7SUFHTCxDQUFDOzs2SEEzR1UsK0JBQStCLGtCQXlCdEIscUJBQXFCO2lJQXpCOUIsK0JBQStCOzRGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVU7OzBCQTBCSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCAqIGFzIGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnXG5pbXBvcnQge3RhcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7Q2FjaGluZ0hlYWRlcnN9IGZyb20gXCIuL2NhY2hpbmctaGVhZGVycy5lbnVtXCI7XG5pbXBvcnQge0NhY2hpbmdTdG9yZX0gZnJvbSBcIi4vY2FjaGluZy1zdG9yZS5lbnVtXCI7XG5cbmltcG9ydCB7UDNYX0hUVFBfQ0FDSEVfQ09ORklHfSBmcm9tIFwiLi9odHRwLWNhY2hlLWNvbmZpZy50b2tlblwiO1xuaW1wb3J0IHtIdHRwQ2FjaGVDb25maWd9IGZyb20gXCIuL2h0dHAtY2FjaGUtY29uZmlnXCI7XG5cblxuY29uc3QgaGFzaE9wdGlvbnMgPSB7XG4gIGFsZ29yaXRobTogJ21kNScsXG4gIGVuY29kaW5nOiAnaGV4J1xufVxuXG5jb25zdCBnbG9iYWxDYWNoZSA9ICBuZXcgTWFwPHN0cmluZywgYW55PigpXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwQ2FjaGVJbnRlcmNlcHRvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICBwcml2YXRlIGNhY2hlZERhdGEgID0gIG5ldyBNYXA8c3RyaW5nLCBhbnk+KClcblxuICBodHRwQ2FjaGVDb25maWcgOiBIdHRwQ2FjaGVDb25maWcgPSB7XG4gICAgYmVoYXZpb3I6IENhY2hpbmdIZWFkZXJzLkNhY2hlLFxuICAgIHN0b3JlOiBDYWNoaW5nU3RvcmUuR2xvYmFsLFxuICB9XG5cbiAgZ2V0Q2FjaGUoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5odHRwQ2FjaGVDb25maWcuc3RvcmUgPT09IENhY2hpbmdTdG9yZS5HbG9iYWwpIHtcbiAgICAgIHJldHVybiBnbG9iYWxDYWNoZS5nZXQoa2V5KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZWREYXRhLmdldChrZXkpXG4gICAgfVxuICB9XG5cbiAgc2V0Q2FjaGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5odHRwQ2FjaGVDb25maWcuc3RvcmUgPT09IENhY2hpbmdTdG9yZS5HbG9iYWwpIHtcbiAgICAgIGdsb2JhbENhY2hlLnNldChrZXksIHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhY2hlZERhdGEuc2V0KGtleSwgdmFsdWUpXG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQM1hfSFRUUF9DQUNIRV9DT05GSUcpIEBPcHRpb25hbCgpIGh0dHBDYWNoZUNvbmZpZ1Rva2VuOiBIdHRwQ2FjaGVDb25maWcpIHtcbiAgICBpZiAoaHR0cENhY2hlQ29uZmlnVG9rZW4pIHtcbiAgICAgIHRoaXMuaHR0cENhY2hlQ29uZmlnID0gaHR0cENhY2hlQ29uZmlnVG9rZW5cbiAgICB9XG4gIH1cblxuICBodHRwVG9LZXkoaHR0cFJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pIHtcbiAgICBjb25zdCBib2R5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShodHRwUmVxdWVzdC5ib2R5KSlcbiAgICBjb25zdCBrZXkgPSBodHRwUmVxdWVzdC5tZXRob2QgKyAnQCcgKyBodHRwUmVxdWVzdC51cmxXaXRoUGFyYW1zICsgJ0AnICsgaGFzaChodHRwUmVxdWVzdC5wYXJhbXMsIGhhc2hPcHRpb25zKSArICdAJyArIGhhc2goYm9keSwgaGFzaE9wdGlvbnMpXG4gICAgcmV0dXJuIGtleVxuICB9XG5cbiAgaW50ZXJjZXB0KGh0dHBSZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuXG5cbiAgICAvL2NvbnNvbGUubG9nKGh0dHBSZXF1ZXN0KVxuICAgIC8vY29uc29sZS5sb2coJ2hhcycsIGh0dHBSZXF1ZXN0LmhlYWRlcnMuaGFzKENhY2hpbmdIZWFkZXJzLk5vQ2FjaGUpKVxuICAgIC8vY29uc29sZS5sb2coJ3ZhbHVlJywgaHR0cFJlcXVlc3QuaGVhZGVycy5nZXQoQ2FjaGluZ0hlYWRlcnMuTm9DYWNoZSkpXG5cbiAgICBjb25zdCBmb3JjZWRDYWNoZSA9IGh0dHBSZXF1ZXN0LmhlYWRlcnMuZ2V0KENhY2hpbmdIZWFkZXJzLkNhY2hlKSAhPT0gbnVsbFxuICAgIGNvbnN0IGZvcmNlZE5vbmVDYWNoZSA9IGh0dHBSZXF1ZXN0LmhlYWRlcnMuZ2V0KENhY2hpbmdIZWFkZXJzLk5vQ2FjaGUpICE9PSBudWxsXG5cbiAgICAvL2NvbnNvbGUubG9nKCdmb3JjZWRDYWNoZScsIGZvcmNlZENhY2hlLCAnZm9yY2VkTm9uZUNhY2hlJywgZm9yY2VkTm9uZUNhY2hlKVxuXG4gICAgbGV0IGhlYWRlcnMgPSBodHRwUmVxdWVzdC5oZWFkZXJzLmRlbGV0ZShDYWNoaW5nSGVhZGVycy5Ob0NhY2hlKVxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLmRlbGV0ZShDYWNoaW5nSGVhZGVycy5DYWNoZSlcbiAgICBodHRwUmVxdWVzdCA9IGh0dHBSZXF1ZXN0LmNsb25lKHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnNcbiAgICB9KVxuXG4gICAgaWYgKGZvcmNlZENhY2hlICYmIGZvcmNlZE5vbmVDYWNoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHVzZSBjYWNoZSBhbmQgbm9uLWNhY2hlIGhlYWRlciBhdCBvbmNlIScpXG4gICAgfSBlbHNlIGlmIChmb3JjZWROb25lQ2FjaGUgfHwgKHRoaXMuaHR0cENhY2hlQ29uZmlnLmJlaGF2aW9yID09PSBDYWNoaW5nSGVhZGVycy5Ob0NhY2hlICYmICFmb3JjZWRDYWNoZSkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShodHRwUmVxdWVzdCk7XG4gICAgfSBlbHNlIGlmIChmb3JjZWRDYWNoZSB8fCAodGhpcy5odHRwQ2FjaGVDb25maWcuYmVoYXZpb3IgPT09IENhY2hpbmdIZWFkZXJzLkNhY2hlICYmICFmb3JjZWROb25lQ2FjaGUpKSB7XG4gICAgICAvLyBDaGVja2VkIGlmIHRoZXJlIGlzIGNhY2hlZCBkYXRhIGZvciB0aGlzIFVSSVxuICAgICAgY29uc3Qga2V5ID0gdGhpcy5odHRwVG9LZXkoaHR0cFJlcXVlc3QpXG4gICAgICBjb25zdCBsYXN0UmVzcG9uc2UgPSB0aGlzLmdldENhY2hlKGtleSk7XG4gICAgICBpZiAobGFzdFJlc3BvbnNlKSB7XG4gICAgICAgIC8vIEluIGNhc2Ugb2YgcGFyYWxsZWwgcmVxdWVzdHMgdG8gc2FtZSBVUkksXG4gICAgICAgIC8vIHJldHVybiB0aGUgcmVxdWVzdCBhbHJlYWR5IGluIHByb2dyZXNzXG4gICAgICAgIC8vIG90aGVyd2lzZSByZXR1cm4gdGhlIGxhc3QgY2FjaGVkIGRhdGFcblxuICAgICAgICAvL2NvbnNvbGUuaW5mbygnaHR0cCBjYWNoZSBpbnRlcmNlcHRvciBoaXQgY2FjaGUnLCBrZXkpXG5cbiAgICAgICAgcmV0dXJuIChsYXN0UmVzcG9uc2UgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKVxuICAgICAgICAgID8gbGFzdFJlc3BvbnNlIDogb2YobGFzdFJlc3BvbnNlLmNsb25lKCkpO1xuICAgICAgfVxuXG4gICAgICAvL2NvbnNvbGUuaW5mbygnaHR0cCBjYWNoZSBpbnRlcmNlcHRvcicsIGtleSlcblxuICAgICAgLy8gSWYgdGhlIHJlcXVlc3Qgb2YgZ29pbmcgdGhyb3VnaCBmb3IgZmlyc3QgdGltZVxuICAgICAgLy8gdGhlbiBsZXQgdGhlIHJlcXVlc3QgcHJvY2VlZCBhbmQgY2FjaGUgdGhlIHJlc3BvbnNlXG4gICAgICBjb25zdCByZXF1ZXN0SGFuZGxlID0gbmV4dC5oYW5kbGUoaHR0cFJlcXVlc3QpLnBpcGUoXG4gICAgICAgIHRhcCgoc3RhdGVFdmVudDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXRlRXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FjaGUoXG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgc3RhdGVFdmVudC5jbG9uZSgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcblxuICAgICAgLy8gTWVhbndoaWxlIGNhY2hlIHRoZSByZXF1ZXN0IE9ic2VydmFibGUgdG8gaGFuZGxlIHBhcmFsbGVsIHJlcXVlc3RcbiAgICAgIC8vdGhpcy5jYWNoZWREYXRhLnNldChrZXksIHJlcXVlc3RIYW5kbGUpO1xuXG4gICAgICByZXR1cm4gcmVxdWVzdEhhbmRsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcih0aGlzLmh0dHBDYWNoZUNvbmZpZylcbiAgICAgIGNvbnNvbGUuZXJyb3IoaHR0cFJlcXVlc3QuaGVhZGVycylcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlcmUgaXMgYSBjb25maWd1cmF0aW9uIGluIHlvdXIgc2V0dXAnKVxuICAgIH1cblxuICAgIC8qXG4gICAgLy8gQWxzbyBsZWF2ZSBzY29wZSBvZiByZXNldHRpbmcgYWxyZWFkeSBjYWNoZWQgZGF0YSBmb3IgYSBVUklcbiAgICBpZiAoaHR0cFJlcXVlc3QuaGVhZGVycy5nZXQoXCJyZXNldC1jYWNoZVwiKSkge1xuICAgICAgdGhpcy5jYWNoZWREYXRhLmRlbGV0ZShodHRwUmVxdWVzdC51cmxXaXRoUGFyYW1zKTtcbiAgICB9XG4gICAgICovXG5cblxuICB9XG59XG4iXX0=
|
|
@@ -16,16 +16,16 @@ export class P3XHttpCacheInterceptorModule {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
P3XHttpCacheInterceptorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
20
|
-
P3XHttpCacheInterceptorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
21
|
-
P3XHttpCacheInterceptorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
19
|
+
P3XHttpCacheInterceptorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
+
P3XHttpCacheInterceptorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule });
|
|
21
|
+
P3XHttpCacheInterceptorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, providers: [
|
|
22
22
|
{
|
|
23
23
|
provide: HTTP_INTERCEPTORS,
|
|
24
24
|
useClass: HttpCacheInterceptorInterceptor,
|
|
25
25
|
multi: true
|
|
26
26
|
}
|
|
27
27
|
], imports: [[]] });
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, decorators: [{
|
|
29
29
|
type: NgModule,
|
|
30
30
|
args: [{
|
|
31
31
|
declarations: [],
|
|
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
40
40
|
exports: []
|
|
41
41
|
}]
|
|
42
42
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jYWNoZS1pbnRlcmNlcHRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWh0dHAtY2FjaGUtaW50ZXJjZXB0b3Ivc3JjL2xpYi9odHRwLWNhY2hlLWludGVyY2VwdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUV0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFnQmxFLE1BQU0sT0FBTyw2QkFBNkI7SUFFeEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFnQztRQUM3QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLDZCQUE2QjtZQUN2QyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtvQkFDOUIsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7MkhBWlUsNkJBQTZCOzRIQUE3Qiw2QkFBNkI7NEhBQTdCLDZCQUE2QixhQVQ3QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixRQUFRLEVBQUUsK0JBQStCO1lBQ3pDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQVJRLEVBQ1I7NEZBVVUsNkJBQTZCO2tCQWJ6QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFDUjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsUUFBUSxFQUFFLCtCQUErQjs0QkFDekMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SFRUUF9JTlRFUkNFUFRPUlN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSHR0cENhY2hlSW50ZXJjZXB0b3JJbnRlcmNlcHRvciB9IGZyb20gJy4vaHR0cC1jYWNoZS1pbnRlcmNlcHRvci5pbnRlcmNlcHRvcidcblxuaW1wb3J0IHsgUDNYX0hUVFBfQ0FDSEVfQ09ORklHIH0gZnJvbSBcIi4vaHR0cC1jYWNoZS1jb25maWcudG9rZW5cIjtcbmltcG9ydCB7IEh0dHBDYWNoZUNvbmZpZyB9IGZyb20gXCIuL2h0dHAtY2FjaGUtY29uZmlnXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICB1c2VDbGFzczogSHR0cENhY2hlSW50ZXJjZXB0b3JJbnRlcmNlcHRvcixcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBleHBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBQM1hIdHRwQ2FjaGVJbnRlcmNlcHRvck1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoaHR0cENhY2hlQ29uZmlnOiBIdHRwQ2FjaGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFAzWEh0dHBDYWNoZUludGVyY2VwdG9yTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBQM1hIdHRwQ2FjaGVJbnRlcmNlcHRvck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogUDNYX0hUVFBfQ0FDSEVfQ09ORklHLFxuICAgICAgICAgIHVzZVZhbHVlOiBodHRwQ2FjaGVDb25maWdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxufVxuIl19
|
|
@@ -113,9 +113,9 @@ class HttpCacheInterceptorInterceptor {
|
|
|
113
113
|
*/
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
HttpCacheInterceptorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
117
|
-
HttpCacheInterceptorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
116
|
+
HttpCacheInterceptorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor, deps: [{ token: P3X_HTTP_CACHE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
117
|
+
HttpCacheInterceptorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor });
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor, decorators: [{
|
|
119
119
|
type: Injectable
|
|
120
120
|
}], ctorParameters: function () {
|
|
121
121
|
return [{ type: undefined, decorators: [{
|
|
@@ -139,16 +139,16 @@ class P3XHttpCacheInterceptorModule {
|
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
P3XHttpCacheInterceptorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
143
|
-
P3XHttpCacheInterceptorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
144
|
-
P3XHttpCacheInterceptorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
142
|
+
P3XHttpCacheInterceptorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
143
|
+
P3XHttpCacheInterceptorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule });
|
|
144
|
+
P3XHttpCacheInterceptorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, providers: [
|
|
145
145
|
{
|
|
146
146
|
provide: HTTP_INTERCEPTORS,
|
|
147
147
|
useClass: HttpCacheInterceptorInterceptor,
|
|
148
148
|
multi: true
|
|
149
149
|
}
|
|
150
150
|
], imports: [[]] });
|
|
151
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, decorators: [{
|
|
152
152
|
type: NgModule,
|
|
153
153
|
args: [{
|
|
154
154
|
declarations: [],
|
|
@@ -173,4 +173,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
173
173
|
*/
|
|
174
174
|
|
|
175
175
|
export { CachingHeaders, CachingStore, P3XHttpCacheInterceptorModule, P3X_HTTP_CACHE_CONFIG };
|
|
176
|
-
//# sourceMappingURL=p3x-angular-http-cache-interceptor.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p3x-angular-http-cache-interceptor.mjs","sources":["../../../projects/angular-http-cache-interceptor/src/lib/caching-headers.enum.ts","../../../projects/angular-http-cache-interceptor/src/lib/caching-store.enum.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-config.token.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-interceptor.interceptor.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-interceptor.module.ts","../../../projects/angular-http-cache-interceptor/src/public-api.ts","../../../projects/angular-http-cache-interceptor/src/p3x-angular-http-cache-interceptor.ts"],"sourcesContent":["// cache headers has to have a x- prefix\nexport enum CachingHeaders {\n NoCache = \"x-p3x-no-cache\",\n Cache = \"x-p3x-cache\",\n}\n","// cache headers has to have a x- prefix\nexport enum CachingStore {\n Global,\n PerModule\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { HttpCacheConfig } from \"./http-cache-config\";\n\nexport const P3X_HTTP_CACHE_CONFIG = new InjectionToken(\n 'P3X_HTTP_CACHE_CONFIG'\n)\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';\nimport {Observable, of} from 'rxjs';\n\nimport * as hash from 'object-hash'\nimport {tap} from \"rxjs/operators\";\n\nimport {CachingHeaders} from \"./caching-headers.enum\";\nimport {CachingStore} from \"./caching-store.enum\";\n\nimport {P3X_HTTP_CACHE_CONFIG} from \"./http-cache-config.token\";\nimport {HttpCacheConfig} from \"./http-cache-config\";\n\n\nconst hashOptions = {\n algorithm: 'md5',\n encoding: 'hex'\n}\n\nconst globalCache = new Map<string, any>()\n\n@Injectable()\nexport class HttpCacheInterceptorInterceptor implements HttpInterceptor {\n\n private cachedData = new Map<string, any>()\n\n httpCacheConfig : HttpCacheConfig = {\n behavior: CachingHeaders.Cache,\n store: CachingStore.Global,\n }\n\n getCache(key: string) {\n if (this.httpCacheConfig.store === CachingStore.Global) {\n return globalCache.get(key)\n } else {\n return this.cachedData.get(key)\n }\n }\n\n setCache(key: string, value: any) {\n if (this.httpCacheConfig.store === CachingStore.Global) {\n globalCache.set(key, value)\n } else {\n this.cachedData.set(key, value)\n }\n }\n\n constructor(@Inject(P3X_HTTP_CACHE_CONFIG) @Optional() httpCacheConfigToken: HttpCacheConfig) {\n if (httpCacheConfigToken) {\n this.httpCacheConfig = httpCacheConfigToken\n }\n }\n\n httpToKey(httpRequest: HttpRequest<any>) {\n const body = JSON.parse(JSON.stringify(httpRequest.body))\n const key = httpRequest.method + '@' + httpRequest.urlWithParams + '@' + hash(httpRequest.params, hashOptions) + '@' + hash(body, hashOptions)\n return key\n }\n\n intercept(httpRequest: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n\n\n //console.log(httpRequest)\n //console.log('has', httpRequest.headers.has(CachingHeaders.NoCache))\n //console.log('value', httpRequest.headers.get(CachingHeaders.NoCache))\n\n const forcedCache = httpRequest.headers.get(CachingHeaders.Cache) !== null\n const forcedNoneCache = httpRequest.headers.get(CachingHeaders.NoCache) !== null\n\n //console.log('forcedCache', forcedCache, 'forcedNoneCache', forcedNoneCache)\n\n let headers = httpRequest.headers.delete(CachingHeaders.NoCache)\n headers = headers.delete(CachingHeaders.Cache)\n httpRequest = httpRequest.clone({\n headers: headers\n })\n\n if (forcedCache && forcedNoneCache) {\n throw new Error('You cannot use cache and non-cache header at once!')\n } else if (forcedNoneCache || (this.httpCacheConfig.behavior === CachingHeaders.NoCache && !forcedCache)) {\n return next.handle(httpRequest);\n } else if (forcedCache || (this.httpCacheConfig.behavior === CachingHeaders.Cache && !forcedNoneCache)) {\n // Checked if there is cached data for this URI\n const key = this.httpToKey(httpRequest)\n const lastResponse = this.getCache(key);\n if (lastResponse) {\n // In case of parallel requests to same URI,\n // return the request already in progress\n // otherwise return the last cached data\n\n //console.info('http cache interceptor hit cache', key)\n\n return (lastResponse instanceof Observable)\n ? lastResponse : of(lastResponse.clone());\n }\n\n //console.info('http cache interceptor', key)\n\n // If the request of going through for first time\n // then let the request proceed and cache the response\n const requestHandle = next.handle(httpRequest).pipe(\n tap((stateEvent: any) => {\n if (stateEvent instanceof HttpResponse) {\n this.setCache(\n key,\n stateEvent.clone()\n );\n }\n })\n )\n\n // Meanwhile cache the request Observable to handle parallel request\n //this.cachedData.set(key, requestHandle);\n\n return requestHandle;\n } else {\n console.error(this.httpCacheConfig)\n console.error(httpRequest.headers)\n throw new Error('There is a configuration in your setup')\n }\n\n /*\n // Also leave scope of resetting already cached data for a URI\n if (httpRequest.headers.get(\"reset-cache\")) {\n this.cachedData.delete(httpRequest.urlWithParams);\n }\n */\n\n\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS} from \"@angular/common/http\";\nimport { HttpCacheInterceptorInterceptor } from './http-cache-interceptor.interceptor'\n\nimport { P3X_HTTP_CACHE_CONFIG } from \"./http-cache-config.token\";\nimport { HttpCacheConfig } from \"./http-cache-config\";\n\n@NgModule({\n declarations: [],\n imports: [\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpCacheInterceptorInterceptor,\n multi: true\n }\n ],\n exports: []\n})\nexport class P3XHttpCacheInterceptorModule {\n\n static forRoot(httpCacheConfig: HttpCacheConfig): ModuleWithProviders<P3XHttpCacheInterceptorModule> {\n return {\n ngModule: P3XHttpCacheInterceptorModule,\n providers: [\n {\n provide: P3X_HTTP_CACHE_CONFIG,\n useValue: httpCacheConfig\n }\n ]\n };\n }\n\n}\n","/*\n * Public API Surface of angular-http-cache-interceptor\n */\n\nexport * from './lib/http-cache-interceptor.module';\nexport * from './lib/caching-headers.enum'\nexport * from './lib/http-cache-config'\nexport * from './lib/http-cache-config.token'\nexport * from './lib/caching-store.enum'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"p3x-angular-http-cache-interceptor.mjs","sources":["../../../projects/angular-http-cache-interceptor/src/lib/caching-headers.enum.ts","../../../projects/angular-http-cache-interceptor/src/lib/caching-store.enum.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-config.token.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-interceptor.interceptor.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-interceptor.module.ts","../../../projects/angular-http-cache-interceptor/src/public-api.ts","../../../projects/angular-http-cache-interceptor/src/p3x-angular-http-cache-interceptor.ts"],"sourcesContent":["// cache headers has to have a x- prefix\nexport enum CachingHeaders {\n NoCache = \"x-p3x-no-cache\",\n Cache = \"x-p3x-cache\",\n}\n","// cache headers has to have a x- prefix\nexport enum CachingStore {\n Global,\n PerModule\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { HttpCacheConfig } from \"./http-cache-config\";\n\nexport const P3X_HTTP_CACHE_CONFIG = new InjectionToken(\n 'P3X_HTTP_CACHE_CONFIG'\n)\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';\nimport {Observable, of} from 'rxjs';\n\nimport * as hash from 'object-hash'\nimport {tap} from \"rxjs/operators\";\n\nimport {CachingHeaders} from \"./caching-headers.enum\";\nimport {CachingStore} from \"./caching-store.enum\";\n\nimport {P3X_HTTP_CACHE_CONFIG} from \"./http-cache-config.token\";\nimport {HttpCacheConfig} from \"./http-cache-config\";\n\n\nconst hashOptions = {\n algorithm: 'md5',\n encoding: 'hex'\n}\n\nconst globalCache = new Map<string, any>()\n\n@Injectable()\nexport class HttpCacheInterceptorInterceptor implements HttpInterceptor {\n\n private cachedData = new Map<string, any>()\n\n httpCacheConfig : HttpCacheConfig = {\n behavior: CachingHeaders.Cache,\n store: CachingStore.Global,\n }\n\n getCache(key: string) {\n if (this.httpCacheConfig.store === CachingStore.Global) {\n return globalCache.get(key)\n } else {\n return this.cachedData.get(key)\n }\n }\n\n setCache(key: string, value: any) {\n if (this.httpCacheConfig.store === CachingStore.Global) {\n globalCache.set(key, value)\n } else {\n this.cachedData.set(key, value)\n }\n }\n\n constructor(@Inject(P3X_HTTP_CACHE_CONFIG) @Optional() httpCacheConfigToken: HttpCacheConfig) {\n if (httpCacheConfigToken) {\n this.httpCacheConfig = httpCacheConfigToken\n }\n }\n\n httpToKey(httpRequest: HttpRequest<any>) {\n const body = JSON.parse(JSON.stringify(httpRequest.body))\n const key = httpRequest.method + '@' + httpRequest.urlWithParams + '@' + hash(httpRequest.params, hashOptions) + '@' + hash(body, hashOptions)\n return key\n }\n\n intercept(httpRequest: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n\n\n //console.log(httpRequest)\n //console.log('has', httpRequest.headers.has(CachingHeaders.NoCache))\n //console.log('value', httpRequest.headers.get(CachingHeaders.NoCache))\n\n const forcedCache = httpRequest.headers.get(CachingHeaders.Cache) !== null\n const forcedNoneCache = httpRequest.headers.get(CachingHeaders.NoCache) !== null\n\n //console.log('forcedCache', forcedCache, 'forcedNoneCache', forcedNoneCache)\n\n let headers = httpRequest.headers.delete(CachingHeaders.NoCache)\n headers = headers.delete(CachingHeaders.Cache)\n httpRequest = httpRequest.clone({\n headers: headers\n })\n\n if (forcedCache && forcedNoneCache) {\n throw new Error('You cannot use cache and non-cache header at once!')\n } else if (forcedNoneCache || (this.httpCacheConfig.behavior === CachingHeaders.NoCache && !forcedCache)) {\n return next.handle(httpRequest);\n } else if (forcedCache || (this.httpCacheConfig.behavior === CachingHeaders.Cache && !forcedNoneCache)) {\n // Checked if there is cached data for this URI\n const key = this.httpToKey(httpRequest)\n const lastResponse = this.getCache(key);\n if (lastResponse) {\n // In case of parallel requests to same URI,\n // return the request already in progress\n // otherwise return the last cached data\n\n //console.info('http cache interceptor hit cache', key)\n\n return (lastResponse instanceof Observable)\n ? lastResponse : of(lastResponse.clone());\n }\n\n //console.info('http cache interceptor', key)\n\n // If the request of going through for first time\n // then let the request proceed and cache the response\n const requestHandle = next.handle(httpRequest).pipe(\n tap((stateEvent: any) => {\n if (stateEvent instanceof HttpResponse) {\n this.setCache(\n key,\n stateEvent.clone()\n );\n }\n })\n )\n\n // Meanwhile cache the request Observable to handle parallel request\n //this.cachedData.set(key, requestHandle);\n\n return requestHandle;\n } else {\n console.error(this.httpCacheConfig)\n console.error(httpRequest.headers)\n throw new Error('There is a configuration in your setup')\n }\n\n /*\n // Also leave scope of resetting already cached data for a URI\n if (httpRequest.headers.get(\"reset-cache\")) {\n this.cachedData.delete(httpRequest.urlWithParams);\n }\n */\n\n\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS} from \"@angular/common/http\";\nimport { HttpCacheInterceptorInterceptor } from './http-cache-interceptor.interceptor'\n\nimport { P3X_HTTP_CACHE_CONFIG } from \"./http-cache-config.token\";\nimport { HttpCacheConfig } from \"./http-cache-config\";\n\n@NgModule({\n declarations: [],\n imports: [\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpCacheInterceptorInterceptor,\n multi: true\n }\n ],\n exports: []\n})\nexport class P3XHttpCacheInterceptorModule {\n\n static forRoot(httpCacheConfig: HttpCacheConfig): ModuleWithProviders<P3XHttpCacheInterceptorModule> {\n return {\n ngModule: P3XHttpCacheInterceptorModule,\n providers: [\n {\n provide: P3X_HTTP_CACHE_CONFIG,\n useValue: httpCacheConfig\n }\n ]\n };\n }\n\n}\n","/*\n * Public API Surface of angular-http-cache-interceptor\n */\n\nexport * from './lib/http-cache-interceptor.module';\nexport * from './lib/caching-headers.enum'\nexport * from './lib/http-cache-config'\nexport * from './lib/http-cache-config.token'\nexport * from './lib/caching-store.enum'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -113,9 +113,9 @@ class HttpCacheInterceptorInterceptor {
|
|
|
113
113
|
*/
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
HttpCacheInterceptorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
117
|
-
HttpCacheInterceptorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
116
|
+
HttpCacheInterceptorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor, deps: [{ token: P3X_HTTP_CACHE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
117
|
+
HttpCacheInterceptorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor });
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpCacheInterceptorInterceptor, decorators: [{
|
|
119
119
|
type: Injectable
|
|
120
120
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
121
121
|
type: Inject,
|
|
@@ -137,16 +137,16 @@ class P3XHttpCacheInterceptorModule {
|
|
|
137
137
|
};
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
P3XHttpCacheInterceptorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
141
|
-
P3XHttpCacheInterceptorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
142
|
-
P3XHttpCacheInterceptorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
140
|
+
P3XHttpCacheInterceptorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
141
|
+
P3XHttpCacheInterceptorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule });
|
|
142
|
+
P3XHttpCacheInterceptorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, providers: [
|
|
143
143
|
{
|
|
144
144
|
provide: HTTP_INTERCEPTORS,
|
|
145
145
|
useClass: HttpCacheInterceptorInterceptor,
|
|
146
146
|
multi: true
|
|
147
147
|
}
|
|
148
148
|
], imports: [[]] });
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: P3XHttpCacheInterceptorModule, decorators: [{
|
|
150
150
|
type: NgModule,
|
|
151
151
|
args: [{
|
|
152
152
|
declarations: [],
|
|
@@ -171,4 +171,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
171
171
|
*/
|
|
172
172
|
|
|
173
173
|
export { CachingHeaders, CachingStore, P3XHttpCacheInterceptorModule, P3X_HTTP_CACHE_CONFIG };
|
|
174
|
-
//# sourceMappingURL=p3x-angular-http-cache-interceptor.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p3x-angular-http-cache-interceptor.mjs","sources":["../../../projects/angular-http-cache-interceptor/src/lib/caching-headers.enum.ts","../../../projects/angular-http-cache-interceptor/src/lib/caching-store.enum.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-config.token.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-interceptor.interceptor.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-interceptor.module.ts","../../../projects/angular-http-cache-interceptor/src/public-api.ts","../../../projects/angular-http-cache-interceptor/src/p3x-angular-http-cache-interceptor.ts"],"sourcesContent":["// cache headers has to have a x- prefix\nexport enum CachingHeaders {\n NoCache = \"x-p3x-no-cache\",\n Cache = \"x-p3x-cache\",\n}\n","// cache headers has to have a x- prefix\nexport enum CachingStore {\n Global,\n PerModule\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { HttpCacheConfig } from \"./http-cache-config\";\n\nexport const P3X_HTTP_CACHE_CONFIG = new InjectionToken(\n 'P3X_HTTP_CACHE_CONFIG'\n)\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';\nimport {Observable, of} from 'rxjs';\n\nimport * as hash from 'object-hash'\nimport {tap} from \"rxjs/operators\";\n\nimport {CachingHeaders} from \"./caching-headers.enum\";\nimport {CachingStore} from \"./caching-store.enum\";\n\nimport {P3X_HTTP_CACHE_CONFIG} from \"./http-cache-config.token\";\nimport {HttpCacheConfig} from \"./http-cache-config\";\n\n\nconst hashOptions = {\n algorithm: 'md5',\n encoding: 'hex'\n}\n\nconst globalCache = new Map<string, any>()\n\n@Injectable()\nexport class HttpCacheInterceptorInterceptor implements HttpInterceptor {\n\n private cachedData = new Map<string, any>()\n\n httpCacheConfig : HttpCacheConfig = {\n behavior: CachingHeaders.Cache,\n store: CachingStore.Global,\n }\n\n getCache(key: string) {\n if (this.httpCacheConfig.store === CachingStore.Global) {\n return globalCache.get(key)\n } else {\n return this.cachedData.get(key)\n }\n }\n\n setCache(key: string, value: any) {\n if (this.httpCacheConfig.store === CachingStore.Global) {\n globalCache.set(key, value)\n } else {\n this.cachedData.set(key, value)\n }\n }\n\n constructor(@Inject(P3X_HTTP_CACHE_CONFIG) @Optional() httpCacheConfigToken: HttpCacheConfig) {\n if (httpCacheConfigToken) {\n this.httpCacheConfig = httpCacheConfigToken\n }\n }\n\n httpToKey(httpRequest: HttpRequest<any>) {\n const body = JSON.parse(JSON.stringify(httpRequest.body))\n const key = httpRequest.method + '@' + httpRequest.urlWithParams + '@' + hash(httpRequest.params, hashOptions) + '@' + hash(body, hashOptions)\n return key\n }\n\n intercept(httpRequest: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n\n\n //console.log(httpRequest)\n //console.log('has', httpRequest.headers.has(CachingHeaders.NoCache))\n //console.log('value', httpRequest.headers.get(CachingHeaders.NoCache))\n\n const forcedCache = httpRequest.headers.get(CachingHeaders.Cache) !== null\n const forcedNoneCache = httpRequest.headers.get(CachingHeaders.NoCache) !== null\n\n //console.log('forcedCache', forcedCache, 'forcedNoneCache', forcedNoneCache)\n\n let headers = httpRequest.headers.delete(CachingHeaders.NoCache)\n headers = headers.delete(CachingHeaders.Cache)\n httpRequest = httpRequest.clone({\n headers: headers\n })\n\n if (forcedCache && forcedNoneCache) {\n throw new Error('You cannot use cache and non-cache header at once!')\n } else if (forcedNoneCache || (this.httpCacheConfig.behavior === CachingHeaders.NoCache && !forcedCache)) {\n return next.handle(httpRequest);\n } else if (forcedCache || (this.httpCacheConfig.behavior === CachingHeaders.Cache && !forcedNoneCache)) {\n // Checked if there is cached data for this URI\n const key = this.httpToKey(httpRequest)\n const lastResponse = this.getCache(key);\n if (lastResponse) {\n // In case of parallel requests to same URI,\n // return the request already in progress\n // otherwise return the last cached data\n\n //console.info('http cache interceptor hit cache', key)\n\n return (lastResponse instanceof Observable)\n ? lastResponse : of(lastResponse.clone());\n }\n\n //console.info('http cache interceptor', key)\n\n // If the request of going through for first time\n // then let the request proceed and cache the response\n const requestHandle = next.handle(httpRequest).pipe(\n tap((stateEvent: any) => {\n if (stateEvent instanceof HttpResponse) {\n this.setCache(\n key,\n stateEvent.clone()\n );\n }\n })\n )\n\n // Meanwhile cache the request Observable to handle parallel request\n //this.cachedData.set(key, requestHandle);\n\n return requestHandle;\n } else {\n console.error(this.httpCacheConfig)\n console.error(httpRequest.headers)\n throw new Error('There is a configuration in your setup')\n }\n\n /*\n // Also leave scope of resetting already cached data for a URI\n if (httpRequest.headers.get(\"reset-cache\")) {\n this.cachedData.delete(httpRequest.urlWithParams);\n }\n */\n\n\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS} from \"@angular/common/http\";\nimport { HttpCacheInterceptorInterceptor } from './http-cache-interceptor.interceptor'\n\nimport { P3X_HTTP_CACHE_CONFIG } from \"./http-cache-config.token\";\nimport { HttpCacheConfig } from \"./http-cache-config\";\n\n@NgModule({\n declarations: [],\n imports: [\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpCacheInterceptorInterceptor,\n multi: true\n }\n ],\n exports: []\n})\nexport class P3XHttpCacheInterceptorModule {\n\n static forRoot(httpCacheConfig: HttpCacheConfig): ModuleWithProviders<P3XHttpCacheInterceptorModule> {\n return {\n ngModule: P3XHttpCacheInterceptorModule,\n providers: [\n {\n provide: P3X_HTTP_CACHE_CONFIG,\n useValue: httpCacheConfig\n }\n ]\n };\n }\n\n}\n","/*\n * Public API Surface of angular-http-cache-interceptor\n */\n\nexport * from './lib/http-cache-interceptor.module';\nexport * from './lib/caching-headers.enum'\nexport * from './lib/http-cache-config'\nexport * from './lib/http-cache-config.token'\nexport * from './lib/caching-store.enum'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAAA;IACY;AAAZ,WAAY,cAAc;IACxB,4CAA0B,CAAA;IAC1B,uCAAqB,CAAA;AACvB,CAAC,EAHW,cAAc,KAAd,cAAc;;ACD1B;IACY;AAAZ,WAAY,YAAY;IACtB,mDAAM,CAAA;IACN,yDAAS,CAAA;AACX,CAAC,EAHW,YAAY,KAAZ,YAAY;;MCEX,qBAAqB,GAAG,IAAI,cAAc,CACrD,uBAAuB;;ACUzB,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;CAChB,CAAA;AAED,MAAM,WAAW,GAAI,IAAI,GAAG,EAAe,CAAA;MAG9B,+BAA+B;IAyB1C,YAAuD,oBAAqC;QAvBpF,eAAU,GAAK,IAAI,GAAG,EAAe,CAAA;QAE7C,oBAAe,GAAqB;YAClC,QAAQ,EAAE,cAAc,CAAC,KAAK;YAC9B,KAAK,EAAE,YAAY,CAAC,MAAM;SAC3B,CAAA;QAmBC,IAAI,oBAAoB,EAAE;YACxB,IAAI,CAAC,eAAe,GAAG,oBAAoB,CAAA;SAC5C;KACF;IApBD,QAAQ,CAAC,GAAW;QAClB,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM,EAAE;YACtD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SAC5B;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SAChC;KACF;IAED,QAAQ,CAAC,GAAW,EAAE,KAAU;QAC9B,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM,EAAE;YACtD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC5B;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAChC;KACF;IAQD,SAAS,CAAC,WAA6B;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAC9I,OAAO,GAAG,CAAA;KACX;IAED,SAAS,CAAC,WAAiC,EAAE,IAAiB;;;;QAO5D,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;QAC1E,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;;QAIhF,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC9C,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC;YAC9B,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;QAEF,IAAI,WAAW,IAAI,eAAe,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;SACtE;aAAM,IAAI,eAAe,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,KAAK,cAAc,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE;YACxG,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACjC;aAAM,IAAI,WAAW,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,KAAK,cAAc,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,EAAE;;YAEtG,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,YAAY,EAAE;;;;;gBAOhB,OAAO,CAAC,YAAY,YAAY,UAAU;sBACtC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;aAC7C;;;;YAMD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CACjD,GAAG,CAAC,CAAC,UAAe;gBAClB,IAAI,UAAU,YAAY,YAAY,EAAE;oBACtC,IAAI,CAAC,QAAQ,CACX,GAAG,EACH,UAAU,CAAC,KAAK,EAAE,CACnB,CAAC;iBACH;aACF,CAAC,CACH,CAAA;;;YAKD,OAAO,aAAa,CAAC;SACtB;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACnC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;SAC1D;;;;;;;KAUF;;4HA3GU,+BAA+B,kBAyBtB,qBAAqB;gIAzB9B,+BAA+B;2FAA/B,+BAA+B;kBAD3C,UAAU;;0BA0BI,MAAM;2BAAC,qBAAqB;;0BAAG,QAAQ;;;MC3BzC,6BAA6B;IAExC,OAAO,OAAO,CAAC,eAAgC;QAC7C,OAAO;YACL,QAAQ,EAAE,6BAA6B;YACvC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,eAAe;iBAC1B;aACF;SACF,CAAC;KACH;;0HAZU,6BAA6B;2HAA7B,6BAA6B;2HAA7B,6BAA6B,aAT7B;QACT;YACE,OAAO,EAAE,iBAAiB;YAC1B,QAAQ,EAAE,+BAA+B;YACzC,KAAK,EAAE,IAAI;SACZ;KACF,YARQ,EACR;2FAUU,6BAA6B;kBAbzC,QAAQ;mBAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,EACR;oBACD,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,QAAQ,EAAE,+BAA+B;4BACzC,KAAK,EAAE,IAAI;yBACZ;qBACF;oBACD,OAAO,EAAE,EAAE;iBACZ;;;ACnBD;;;;ACAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"p3x-angular-http-cache-interceptor.mjs","sources":["../../../projects/angular-http-cache-interceptor/src/lib/caching-headers.enum.ts","../../../projects/angular-http-cache-interceptor/src/lib/caching-store.enum.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-config.token.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-interceptor.interceptor.ts","../../../projects/angular-http-cache-interceptor/src/lib/http-cache-interceptor.module.ts","../../../projects/angular-http-cache-interceptor/src/public-api.ts","../../../projects/angular-http-cache-interceptor/src/p3x-angular-http-cache-interceptor.ts"],"sourcesContent":["// cache headers has to have a x- prefix\nexport enum CachingHeaders {\n NoCache = \"x-p3x-no-cache\",\n Cache = \"x-p3x-cache\",\n}\n","// cache headers has to have a x- prefix\nexport enum CachingStore {\n Global,\n PerModule\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { HttpCacheConfig } from \"./http-cache-config\";\n\nexport const P3X_HTTP_CACHE_CONFIG = new InjectionToken(\n 'P3X_HTTP_CACHE_CONFIG'\n)\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';\nimport {Observable, of} from 'rxjs';\n\nimport * as hash from 'object-hash'\nimport {tap} from \"rxjs/operators\";\n\nimport {CachingHeaders} from \"./caching-headers.enum\";\nimport {CachingStore} from \"./caching-store.enum\";\n\nimport {P3X_HTTP_CACHE_CONFIG} from \"./http-cache-config.token\";\nimport {HttpCacheConfig} from \"./http-cache-config\";\n\n\nconst hashOptions = {\n algorithm: 'md5',\n encoding: 'hex'\n}\n\nconst globalCache = new Map<string, any>()\n\n@Injectable()\nexport class HttpCacheInterceptorInterceptor implements HttpInterceptor {\n\n private cachedData = new Map<string, any>()\n\n httpCacheConfig : HttpCacheConfig = {\n behavior: CachingHeaders.Cache,\n store: CachingStore.Global,\n }\n\n getCache(key: string) {\n if (this.httpCacheConfig.store === CachingStore.Global) {\n return globalCache.get(key)\n } else {\n return this.cachedData.get(key)\n }\n }\n\n setCache(key: string, value: any) {\n if (this.httpCacheConfig.store === CachingStore.Global) {\n globalCache.set(key, value)\n } else {\n this.cachedData.set(key, value)\n }\n }\n\n constructor(@Inject(P3X_HTTP_CACHE_CONFIG) @Optional() httpCacheConfigToken: HttpCacheConfig) {\n if (httpCacheConfigToken) {\n this.httpCacheConfig = httpCacheConfigToken\n }\n }\n\n httpToKey(httpRequest: HttpRequest<any>) {\n const body = JSON.parse(JSON.stringify(httpRequest.body))\n const key = httpRequest.method + '@' + httpRequest.urlWithParams + '@' + hash(httpRequest.params, hashOptions) + '@' + hash(body, hashOptions)\n return key\n }\n\n intercept(httpRequest: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n\n\n //console.log(httpRequest)\n //console.log('has', httpRequest.headers.has(CachingHeaders.NoCache))\n //console.log('value', httpRequest.headers.get(CachingHeaders.NoCache))\n\n const forcedCache = httpRequest.headers.get(CachingHeaders.Cache) !== null\n const forcedNoneCache = httpRequest.headers.get(CachingHeaders.NoCache) !== null\n\n //console.log('forcedCache', forcedCache, 'forcedNoneCache', forcedNoneCache)\n\n let headers = httpRequest.headers.delete(CachingHeaders.NoCache)\n headers = headers.delete(CachingHeaders.Cache)\n httpRequest = httpRequest.clone({\n headers: headers\n })\n\n if (forcedCache && forcedNoneCache) {\n throw new Error('You cannot use cache and non-cache header at once!')\n } else if (forcedNoneCache || (this.httpCacheConfig.behavior === CachingHeaders.NoCache && !forcedCache)) {\n return next.handle(httpRequest);\n } else if (forcedCache || (this.httpCacheConfig.behavior === CachingHeaders.Cache && !forcedNoneCache)) {\n // Checked if there is cached data for this URI\n const key = this.httpToKey(httpRequest)\n const lastResponse = this.getCache(key);\n if (lastResponse) {\n // In case of parallel requests to same URI,\n // return the request already in progress\n // otherwise return the last cached data\n\n //console.info('http cache interceptor hit cache', key)\n\n return (lastResponse instanceof Observable)\n ? lastResponse : of(lastResponse.clone());\n }\n\n //console.info('http cache interceptor', key)\n\n // If the request of going through for first time\n // then let the request proceed and cache the response\n const requestHandle = next.handle(httpRequest).pipe(\n tap((stateEvent: any) => {\n if (stateEvent instanceof HttpResponse) {\n this.setCache(\n key,\n stateEvent.clone()\n );\n }\n })\n )\n\n // Meanwhile cache the request Observable to handle parallel request\n //this.cachedData.set(key, requestHandle);\n\n return requestHandle;\n } else {\n console.error(this.httpCacheConfig)\n console.error(httpRequest.headers)\n throw new Error('There is a configuration in your setup')\n }\n\n /*\n // Also leave scope of resetting already cached data for a URI\n if (httpRequest.headers.get(\"reset-cache\")) {\n this.cachedData.delete(httpRequest.urlWithParams);\n }\n */\n\n\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS} from \"@angular/common/http\";\nimport { HttpCacheInterceptorInterceptor } from './http-cache-interceptor.interceptor'\n\nimport { P3X_HTTP_CACHE_CONFIG } from \"./http-cache-config.token\";\nimport { HttpCacheConfig } from \"./http-cache-config\";\n\n@NgModule({\n declarations: [],\n imports: [\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpCacheInterceptorInterceptor,\n multi: true\n }\n ],\n exports: []\n})\nexport class P3XHttpCacheInterceptorModule {\n\n static forRoot(httpCacheConfig: HttpCacheConfig): ModuleWithProviders<P3XHttpCacheInterceptorModule> {\n return {\n ngModule: P3XHttpCacheInterceptorModule,\n providers: [\n {\n provide: P3X_HTTP_CACHE_CONFIG,\n useValue: httpCacheConfig\n }\n ]\n };\n }\n\n}\n","/*\n * Public API Surface of angular-http-cache-interceptor\n */\n\nexport * from './lib/http-cache-interceptor.module';\nexport * from './lib/caching-headers.enum'\nexport * from './lib/http-cache-config'\nexport * from './lib/http-cache-config.token'\nexport * from './lib/caching-store.enum'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
},
|
|
33
33
|
"sideEffects": false,
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"corifeus-builder": "^2022.4.
|
|
35
|
+
"corifeus-builder": "^2022.4.125"
|
|
36
36
|
},
|
|
37
|
-
"version": "2022.4.
|
|
37
|
+
"version": "2022.4.123",
|
|
38
38
|
"description": "🔥 Cache every request in Angular, not only the GET, but all methods of this interceptor, and allows you to interact with the interceptor via specific headers and modify the request, and these specific headers will be not included in the final request",
|
|
39
39
|
"repository": {
|
|
40
40
|
"type": "git",
|