ketting 7.2.0 → 7.3.0
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/browser/ketting.min.js +1 -1
- package/browser/ketting.min.js.map +1 -1
- package/dist/client.d.ts +24 -4
- package/dist/client.js +96 -29
- package/dist/client.js.map +1 -1
- package/dist/http/fetcher.js +1 -1
- package/dist/http/fetcher.js.map +1 -1
- package/dist/link.js +2 -2
- package/dist/link.js.map +1 -1
- package/dist/middlewares/cache.js +20 -44
- package/dist/middlewares/cache.js.map +1 -1
- package/dist/middlewares/warning.js +1 -1
- package/dist/middlewares/warning.js.map +1 -1
- package/dist/resource.js +6 -6
- package/dist/resource.js.map +1 -1
- package/dist/src/client.d.ts +24 -4
- package/dist/state/base-state.js +3 -3
- package/dist/state/base-state.js.map +1 -1
- package/dist/state/binary.js +1 -1
- package/dist/state/binary.js.map +1 -1
- package/dist/state/collection-json.js +1 -1
- package/dist/state/collection-json.js.map +1 -1
- package/dist/state/hal.js +8 -6
- package/dist/state/hal.js.map +1 -1
- package/dist/state/head.js +1 -1
- package/dist/state/head.js.map +1 -1
- package/dist/state/html.js +3 -3
- package/dist/state/html.js.map +1 -1
- package/dist/state/jsonapi.js +1 -1
- package/dist/state/jsonapi.js.map +1 -1
- package/dist/state/siren.js +3 -3
- package/dist/state/siren.js.map +1 -1
- package/dist/state/text.js +1 -1
- package/dist/state/text.js.map +1 -1
- package/dist/util/html.js +2 -2
- package/dist/util/html.js.map +1 -1
- package/dist/util/html.web.js +2 -2
- package/dist/util/html.web.js.map +1 -1
- package/dist/util/uri-template.js +1 -1
- package/dist/util/uri-template.js.map +1 -1
- package/dist/util/uri.js +3 -3
- package/dist/util/uri.js.map +1 -1
- package/package.json +8 -7
- package/src/action.ts +1 -1
- package/src/client.ts +118 -33
- package/src/http/fetcher.ts +1 -1
- package/src/link.ts +1 -1
- package/src/middlewares/cache.ts +18 -49
- package/src/resource.ts +1 -1
- package/src/state/hal.ts +4 -3
package/dist/client.d.ts
CHANGED
|
@@ -75,10 +75,6 @@ export default class Client {
|
|
|
75
75
|
* Clears the entire state cache
|
|
76
76
|
*/
|
|
77
77
|
clearCache(): void;
|
|
78
|
-
/**
|
|
79
|
-
* Transforms a fetch Response to a State object.
|
|
80
|
-
*/
|
|
81
|
-
getStateForResponse(uri: string, response: Response): Promise<State>;
|
|
82
78
|
/**
|
|
83
79
|
* Caches a State object
|
|
84
80
|
*
|
|
@@ -86,4 +82,28 @@ export default class Client {
|
|
|
86
82
|
* embedded states.
|
|
87
83
|
*/
|
|
88
84
|
cacheState(state: State): void;
|
|
85
|
+
/**
|
|
86
|
+
* cacheDependencies contains all cache relationships between
|
|
87
|
+
* resources.
|
|
88
|
+
*
|
|
89
|
+
* This lets a user (for example) let a resource automatically
|
|
90
|
+
* expire, if another one expires.
|
|
91
|
+
*
|
|
92
|
+
* A server can populate this list using the `inv-by' link.
|
|
93
|
+
*/
|
|
94
|
+
cacheDependencies: Map<string, Set<string>>;
|
|
95
|
+
/**
|
|
96
|
+
* Helper function for clearing the cache for a resource.
|
|
97
|
+
*
|
|
98
|
+
* This function will also emit the 'stale' event for resources that have
|
|
99
|
+
* subscribers, and handle any dependent resource caches.
|
|
100
|
+
*
|
|
101
|
+
* If any resources are specified in deletedUris, those will not
|
|
102
|
+
* receive 'stale' events, but 'delete' events instead.
|
|
103
|
+
*/
|
|
104
|
+
clearResourceCache(staleUris: string[], deletedUris: string[]): void;
|
|
105
|
+
/**
|
|
106
|
+
* Transforms a fetch Response to a State object.
|
|
107
|
+
*/
|
|
108
|
+
getStateForResponse(uri: string, response: Response): Promise<State>;
|
|
89
109
|
}
|
package/dist/client.js
CHANGED
|
@@ -29,11 +29,21 @@ class Client {
|
|
|
29
29
|
'application/json': [state_1.halStateFactory, '0.7'],
|
|
30
30
|
'text/html': [state_1.htmlStateFactory, '0.6'],
|
|
31
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* cacheDependencies contains all cache relationships between
|
|
34
|
+
* resources.
|
|
35
|
+
*
|
|
36
|
+
* This lets a user (for example) let a resource automatically
|
|
37
|
+
* expire, if another one expires.
|
|
38
|
+
*
|
|
39
|
+
* A server can populate this list using the `inv-by' link.
|
|
40
|
+
*/
|
|
41
|
+
this.cacheDependencies = new Map();
|
|
32
42
|
this.bookmarkUri = bookmarkUri;
|
|
33
43
|
this.fetcher = new fetcher_1.Fetcher();
|
|
34
|
-
this.fetcher.use(cache_2.default(this));
|
|
35
|
-
this.fetcher.use(accept_header_1.default(this));
|
|
36
|
-
this.fetcher.use(warning_1.default());
|
|
44
|
+
this.fetcher.use((0, cache_2.default)(this));
|
|
45
|
+
this.fetcher.use((0, accept_header_1.default)(this));
|
|
46
|
+
this.fetcher.use((0, warning_1.default)());
|
|
37
47
|
this.cache = new cache_1.ForeverCache();
|
|
38
48
|
this.resources = new Map();
|
|
39
49
|
}
|
|
@@ -66,7 +76,7 @@ class Client {
|
|
|
66
76
|
go(uri) {
|
|
67
77
|
let absoluteUri;
|
|
68
78
|
if (uri !== undefined) {
|
|
69
|
-
absoluteUri = uri_1.resolve(this.bookmarkUri, uri);
|
|
79
|
+
absoluteUri = (0, uri_1.resolve)(this.bookmarkUri, uri);
|
|
70
80
|
}
|
|
71
81
|
else {
|
|
72
82
|
absoluteUri = this.bookmarkUri;
|
|
@@ -93,31 +103,7 @@ class Client {
|
|
|
93
103
|
*/
|
|
94
104
|
clearCache() {
|
|
95
105
|
this.cache.clear();
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Transforms a fetch Response to a State object.
|
|
99
|
-
*/
|
|
100
|
-
async getStateForResponse(uri, response) {
|
|
101
|
-
const contentType = util_1.parseContentType(response.headers.get('Content-Type'));
|
|
102
|
-
let state;
|
|
103
|
-
if (!contentType) {
|
|
104
|
-
return state_1.binaryStateFactory(this, uri, response);
|
|
105
|
-
}
|
|
106
|
-
if (contentType in this.contentTypeMap) {
|
|
107
|
-
state = await this.contentTypeMap[contentType][0](this, uri, response);
|
|
108
|
-
}
|
|
109
|
-
else if (contentType.startsWith('text/')) {
|
|
110
|
-
// Default to TextState for any format starting with text/
|
|
111
|
-
state = await state_1.textStateFactory(this, uri, response);
|
|
112
|
-
}
|
|
113
|
-
else if (contentType.match(/^application\/[A-Za-z-.]+\+json/)) {
|
|
114
|
-
// Default to HalState for any format containing a pattern like application/*+json
|
|
115
|
-
state = await state_1.halStateFactory(this, uri, response);
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
state = await state_1.binaryStateFactory(this, uri, response);
|
|
119
|
-
}
|
|
120
|
-
return state;
|
|
106
|
+
this.cacheDependencies = new Map();
|
|
121
107
|
}
|
|
122
108
|
/**
|
|
123
109
|
* Caches a State object
|
|
@@ -137,6 +123,87 @@ class Client {
|
|
|
137
123
|
this.cacheState(embeddedState);
|
|
138
124
|
}
|
|
139
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Helper function for clearing the cache for a resource.
|
|
128
|
+
*
|
|
129
|
+
* This function will also emit the 'stale' event for resources that have
|
|
130
|
+
* subscribers, and handle any dependent resource caches.
|
|
131
|
+
*
|
|
132
|
+
* If any resources are specified in deletedUris, those will not
|
|
133
|
+
* receive 'stale' events, but 'delete' events instead.
|
|
134
|
+
*/
|
|
135
|
+
clearResourceCache(staleUris, deletedUris) {
|
|
136
|
+
let stale = new Set();
|
|
137
|
+
const deleted = new Set();
|
|
138
|
+
for (const uri of staleUris) {
|
|
139
|
+
stale.add((0, uri_1.resolve)(this.bookmarkUri, uri));
|
|
140
|
+
}
|
|
141
|
+
for (const uri of deletedUris) {
|
|
142
|
+
stale.add((0, uri_1.resolve)(this.bookmarkUri, uri));
|
|
143
|
+
deleted.add((0, uri_1.resolve)(this.bookmarkUri, uri));
|
|
144
|
+
}
|
|
145
|
+
stale = expandCacheDependencies(new Set([...stale, ...deleted]), this.cacheDependencies);
|
|
146
|
+
for (const uri of stale) {
|
|
147
|
+
this.cache.delete(uri);
|
|
148
|
+
const resource = this.resources.get(uri);
|
|
149
|
+
if (resource) {
|
|
150
|
+
if (deleted.has(uri)) {
|
|
151
|
+
resource.emit('delete');
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
resource.emit('stale');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Transforms a fetch Response to a State object.
|
|
161
|
+
*/
|
|
162
|
+
async getStateForResponse(uri, response) {
|
|
163
|
+
const contentType = (0, util_1.parseContentType)(response.headers.get('Content-Type'));
|
|
164
|
+
if (!contentType || response.status === 204) {
|
|
165
|
+
return (0, state_1.binaryStateFactory)(this, uri, response);
|
|
166
|
+
}
|
|
167
|
+
if (contentType in this.contentTypeMap) {
|
|
168
|
+
return this.contentTypeMap[contentType][0](this, uri, response);
|
|
169
|
+
}
|
|
170
|
+
else if (contentType.startsWith('text/')) {
|
|
171
|
+
// Default to TextState for any format starting with text/
|
|
172
|
+
return (0, state_1.textStateFactory)(this, uri, response);
|
|
173
|
+
}
|
|
174
|
+
else if (contentType.match(/^application\/[A-Za-z-.]+\+json/)) {
|
|
175
|
+
// Default to HalState for any format containing a pattern like application/*+json
|
|
176
|
+
return (0, state_1.halStateFactory)(this, uri, response);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
return (0, state_1.binaryStateFactory)(this, uri, response);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
140
182
|
}
|
|
141
183
|
exports.default = Client;
|
|
184
|
+
/**
|
|
185
|
+
* Find all dependencies for a given resource.
|
|
186
|
+
*
|
|
187
|
+
* For example, if
|
|
188
|
+
* * if resourceA depends on resourceB
|
|
189
|
+
* * and resourceB depends on resourceC
|
|
190
|
+
*
|
|
191
|
+
* Then if 'resourceC' expires, so should 'resourceA' and 'resourceB'.
|
|
192
|
+
*
|
|
193
|
+
* This function helps us find these dependencies recursively and guarding
|
|
194
|
+
* against recursive loops.
|
|
195
|
+
*/
|
|
196
|
+
function expandCacheDependencies(uris, dependencies, output) {
|
|
197
|
+
if (!output)
|
|
198
|
+
output = new Set();
|
|
199
|
+
for (const uri of uris) {
|
|
200
|
+
if (!output.has(uri)) {
|
|
201
|
+
output.add(uri);
|
|
202
|
+
if (dependencies.has(uri)) {
|
|
203
|
+
expandCacheDependencies(dependencies.get(uri), dependencies, output);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return output;
|
|
208
|
+
}
|
|
142
209
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AAAA,4CAA0D;AAC1D,yCAAkC;AAElC,mCAQiB;AACjB,sCAA+C;AAC/C,oCAAqC;AAGrC,mCAAmD;AACnD,+CAAwD;AACxD,+DAA2D;AAC3D,mDAAsD;AAEtD,MAAqB,MAAM;IA+CzB,YAAY,WAAmB;QAtC/B;;;;;;;;WAQG;QACH,mBAAc,GAEV;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/http/fetcher.js
CHANGED
package/dist/http/fetcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/http/fetcher.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,4BAA0B;AAK1B;;;;;;GAMG;AACH,MAAa,OAAO;IAApB;QAEE,gBAAW,GAAgC,EAAE,CAAC;QAE9C,qBAAgB,GAAY,IAAI,
|
|
1
|
+
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/http/fetcher.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,4BAA0B;AAK1B;;;;;;GAMG;AACH,MAAa,OAAO;IAApB;QAEE,gBAAW,GAAgC,EAAE,CAAC;QAE9C,qBAAgB,GAAY,IAAI,CAAC;IA6EnC,CAAC;IA3EC;;;;;OAKG;IACH,KAAK,CAAC,QAAwB,EAAE,IAAkB;QAEhD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,CAAC,YAAqB,EAAE,EAAE;YAEjC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACpE,8DAA8D;gBAC9D,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC;aAC5F;YAED,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEzC,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,MAAc;QAEnC,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5B,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE;YACzB,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;IAEL,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAmB,EAAE,SAAiB,GAAG;QAE3C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAC/B,IAAI,CAAC,EAAE,CACL,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAC9C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEf,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAErC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,QAAwB,EAAE,IAAkB;QAE7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAElD,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,OAAO,QAAQ,CAAC;SACjB;aAAM;YACL,MAAM,MAAM,IAAA,eAAc,EAAC,QAAQ,CAAC,CAAC;SACtC;IAEH,CAAC;CAEF;AAjFD,0BAiFC;AACD,kBAAe,OAAO,CAAC;AAEvB,SAAS,iBAAiB,CAAC,GAAsB,EAAE,OAAgB;IAEjE,OAAO,GAAG,CAAC,CAAC,CAAC,CACX,OAAO,EACP,CAAC,WAAoB,EAAE,EAAE;QACvB,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC,CACF,CAAC;AAEJ,CAAC"}
|
package/dist/link.js
CHANGED
|
@@ -82,8 +82,8 @@ class Links {
|
|
|
82
82
|
if (!uris)
|
|
83
83
|
return;
|
|
84
84
|
this.store.delete(rel);
|
|
85
|
-
const absHref = uri_1.resolve(this.defaultContext, href);
|
|
86
|
-
this.store.set(rel, uris.filter(uri => uri_1.resolve(uri) !== absHref));
|
|
85
|
+
const absHref = (0, uri_1.resolve)(this.defaultContext, href);
|
|
86
|
+
this.store.set(rel, uris.filter(uri => (0, uri_1.resolve)(uri) !== absHref));
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
89
|
* Return all links that have a given rel.
|
package/dist/link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":";;;AACA,oCAAqC;AA+DrC;;GAEG;AACH,MAAa,KAAK;IAIhB,YAAmB,cAAsB,EAAE,KAAsB;QAA9C,mBAAc,GAAd,cAAc,CAAQ;QAEvC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QAEvB,IAAI,KAAK,EAAE;YACT,IAAI,KAAK,YAAY,KAAK,EAAE;gBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;aAC7B;iBAAM;gBACL,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;oBACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAChB;aACF;SACF;IAEH,CAAC;IAOD,GAAG,CAAC,GAAG,IAAW;QAEhB,IAAI,KAAa,CAAC;QAElB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC/B,KAAK,GAAG,CAAC;oBACP,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;oBACZ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;oBACb,OAAO,EAAE,IAAI,CAAC,cAAc;iBAC7B,CAAC,CAAC;SACJ;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,GAAG,uBAAS,OAAO,EAAE,IAAI,CAAC,cAAc,IAAK,IAAI,EAAG,CAAA,CAAC,CAAE,CAAC;SAClF;QAED,KAAI,MAAM,IAAI,IAAI,KAAK,EAAE;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtC;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aAClC;SACF;IAEH,CAAC;IASD,GAAG,CAAC,IAAS,EAAE,IAAU;QAEvB,IAAI,IAAU,CAAC;QACf,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,GAAG;gBACL,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI,CAAC,cAAc;aAC7B,CAAC;SACH;aAAM;YACL,IAAI,mBACF,OAAO,EAAE,IAAI,CAAC,cAAc,IACzB,IAAI,CACR,CAAC;SACH;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnC,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAW;QAEb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAElB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAW,EAAE,IAAa;QAE/B,IAAI,IAAI,KAAG,SAAS,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,aAAO,
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@ const uri_1 = require("../util/uri");
|
|
|
13
13
|
* It's also responsible for emitting 'stale' events.
|
|
14
14
|
*/
|
|
15
15
|
function default_1(client) {
|
|
16
|
-
const cacheDependencies = new Map();
|
|
17
16
|
return async (request, next) => {
|
|
18
17
|
/**
|
|
19
18
|
* Prevent a 'stale' event from being emitted, but only for the main
|
|
@@ -30,16 +29,16 @@ function default_1(client) {
|
|
|
30
29
|
// expire.
|
|
31
30
|
if (response.headers.has('Link')) {
|
|
32
31
|
for (const httpLink of LinkHeader.parse(response.headers.get('Link')).rel('inv-by')) {
|
|
33
|
-
const uri = uri_1.resolve(request.url, httpLink.uri);
|
|
34
|
-
if (cacheDependencies.has(uri)) {
|
|
35
|
-
cacheDependencies.get(uri).add(request.url);
|
|
32
|
+
const uri = (0, uri_1.resolve)(request.url, httpLink.uri);
|
|
33
|
+
if (client.cacheDependencies.has(uri)) {
|
|
34
|
+
client.cacheDependencies.get(uri).add(request.url);
|
|
36
35
|
}
|
|
37
36
|
else {
|
|
38
|
-
cacheDependencies.set(uri, new Set([request.url]));
|
|
37
|
+
client.cacheDependencies.set(uri, new Set([request.url]));
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
|
-
if (util_1.isSafeMethod(request.method)) {
|
|
41
|
+
if ((0, util_1.isSafeMethod)(request.method)) {
|
|
43
42
|
return response;
|
|
44
43
|
}
|
|
45
44
|
if (!response.ok) {
|
|
@@ -47,60 +46,37 @@ function default_1(client) {
|
|
|
47
46
|
return response;
|
|
48
47
|
}
|
|
49
48
|
// We just processed an unsafe method, lets notify all subsystems.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
const stale = [];
|
|
50
|
+
const deleted = [];
|
|
51
|
+
if (request.method === 'DELETE') {
|
|
52
|
+
deleted.push(request.url);
|
|
53
|
+
}
|
|
54
|
+
else if (!noStaleEvent) {
|
|
55
|
+
stale.push(request.url);
|
|
54
56
|
}
|
|
55
57
|
// If the response had a Link: rel=invalidate header, we want to
|
|
56
58
|
// expire those too.
|
|
57
59
|
if (response.headers.has('Link')) {
|
|
58
60
|
for (const httpLink of LinkHeader.parse(response.headers.get('Link')).rel('invalidates')) {
|
|
59
|
-
const uri = uri_1.resolve(request.url, httpLink.uri);
|
|
60
|
-
|
|
61
|
+
const uri = (0, uri_1.resolve)(request.url, httpLink.uri);
|
|
62
|
+
stale.push(uri);
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
// Location headers should also expire
|
|
64
66
|
if (response.headers.has('Location')) {
|
|
65
|
-
|
|
67
|
+
stale.push((0, uri_1.resolve)(request.url, response.headers.get('Location')));
|
|
66
68
|
}
|
|
67
|
-
|
|
69
|
+
client.clearResourceCache(stale, deleted);
|
|
70
|
+
// If the response had a 'Content-Location' header, it means that the
|
|
71
|
+
// response body is the _new_ state for the url in the content-location
|
|
72
|
+
// header, so we store it!
|
|
68
73
|
if (response.headers.has('Content-Location')) {
|
|
69
|
-
const cl = uri_1.resolve(request.url, response.headers.get('Content-Location'));
|
|
74
|
+
const cl = (0, uri_1.resolve)(request.url, response.headers.get('Content-Location'));
|
|
70
75
|
const clState = await client.getStateForResponse(cl, response);
|
|
71
76
|
client.cacheState(clState);
|
|
72
77
|
}
|
|
73
|
-
expireUris = expandCacheDependencies(expireUris, cacheDependencies);
|
|
74
|
-
for (const uri of expireUris) {
|
|
75
|
-
client.cache.delete(uri);
|
|
76
|
-
const resource = client.resources.get(uri);
|
|
77
|
-
if (resource) {
|
|
78
|
-
// We have a resource for this object, notify it as well.
|
|
79
|
-
resource.emit('stale');
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (request.method === 'DELETE') {
|
|
83
|
-
client.cache.delete(request.url);
|
|
84
|
-
const resource = client.resources.get(request.url);
|
|
85
|
-
if (resource) {
|
|
86
|
-
resource.emit('delete');
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
78
|
return response;
|
|
90
79
|
};
|
|
91
80
|
}
|
|
92
81
|
exports.default = default_1;
|
|
93
|
-
function expandCacheDependencies(uris, dependencies, output) {
|
|
94
|
-
if (!output)
|
|
95
|
-
output = new Set();
|
|
96
|
-
for (const uri of uris) {
|
|
97
|
-
if (!output.has(uri)) {
|
|
98
|
-
output.add(uri);
|
|
99
|
-
if (dependencies.has(uri)) {
|
|
100
|
-
expandCacheDependencies(dependencies.get(uri), dependencies, output);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return output;
|
|
105
|
-
}
|
|
106
82
|
//# sourceMappingURL=cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/middlewares/cache.ts"],"names":[],"mappings":";;AACA,uCAA4C;AAC5C,+CAA+C;AAC/C,qCAAsC;AAGtC;;;;;;;;GAQG;AACH,mBAAwB,MAAc;IAEpC,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/middlewares/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ function default_1() {
|
|
|
20
20
|
}
|
|
21
21
|
if (response.headers.has('Link')) {
|
|
22
22
|
for (const httpLink of LinkHeader.parse(response.headers.get('Link')).rel('deprecation')) {
|
|
23
|
-
const uri = uri_1.resolve(request.url, httpLink.uri);
|
|
23
|
+
const uri = (0, uri_1.resolve)(request.url, httpLink.uri);
|
|
24
24
|
msg += `See ${uri} for more information.`;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warning.js","sourceRoot":"","sources":["../../src/middlewares/warning.ts"],"names":[],"mappings":";;AACA,+CAA+C;AAC/C,qCAAsC;AAEtC;;;;;GAKG;AACH;IAEE,OAAO,KAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,WAAW,EAAE;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,GAAG,GAAG,0BAA0B,OAAO,CAAC,GAAG,iBAAiB,CAAC;YACjE,IAAI,MAAM,EAAE;gBACV,GAAG,IAAI,6BAA6B,GAAG,MAAM,CAAC;aAC/C;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;oBACzF,MAAM,GAAG,GAAG,aAAO,
|
|
1
|
+
{"version":3,"file":"warning.js","sourceRoot":"","sources":["../../src/middlewares/warning.ts"],"names":[],"mappings":";;AACA,+CAA+C;AAC/C,qCAAsC;AAEtC;;;;;GAKG;AACH;IAEE,OAAO,KAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,WAAW,EAAE;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,GAAG,GAAG,0BAA0B,OAAO,CAAC,GAAG,iBAAiB,CAAC;YACjE,IAAI,MAAM,EAAE;gBACV,GAAG,IAAI,6BAA6B,GAAG,MAAM,CAAC;aAC/C;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;oBACzF,MAAM,GAAG,GAAG,IAAA,aAAO,EAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC/C,GAAG,IAAI,OAAO,GAAG,wBAAwB,CAAC;iBAC3C;aACF;YAED,yCAAyC;YACzC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAEnB;QACD,OAAO,QAAQ,CAAC;IAElB,CAAC,CAAC;AAEJ,CAAC;AA3BD,4BA2BC"}
|
package/dist/resource.js
CHANGED
|
@@ -63,7 +63,7 @@ class Resource extends events_1.EventEmitter {
|
|
|
63
63
|
return state;
|
|
64
64
|
}
|
|
65
65
|
const response = await this.fetchOrThrow(optionsToRequestInit('HEAD', headOptions));
|
|
66
|
-
state = await state_1.headStateFactory(this.client, this.uri, response);
|
|
66
|
+
state = await (0, state_1.headStateFactory)(this.client, this.uri, response);
|
|
67
67
|
return state;
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
@@ -103,11 +103,11 @@ class Resource extends events_1.EventEmitter {
|
|
|
103
103
|
* We're gonna track that with a custom header that will be removed
|
|
104
104
|
* later in the fetch pipeline.
|
|
105
105
|
*/
|
|
106
|
-
if (state_1.isState(options)) {
|
|
106
|
+
if ((0, state_1.isState)(options)) {
|
|
107
107
|
requestInit.headers.set('X-KETTING-NO-STALE', '1');
|
|
108
108
|
}
|
|
109
109
|
await this.fetchOrThrow(requestInit);
|
|
110
|
-
if (state_1.isState(options)) {
|
|
110
|
+
if ((0, state_1.isState)(options)) {
|
|
111
111
|
this.updateCache(options);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
@@ -194,7 +194,7 @@ class Resource extends events_1.EventEmitter {
|
|
|
194
194
|
* This function doesn't do any HTTP requests.
|
|
195
195
|
*/
|
|
196
196
|
go(uri) {
|
|
197
|
-
uri = uri_1.resolve(this.uri, uri);
|
|
197
|
+
uri = (0, uri_1.resolve)(this.uri, uri);
|
|
198
198
|
return this.client.go(uri);
|
|
199
199
|
}
|
|
200
200
|
/**
|
|
@@ -227,7 +227,7 @@ class Resource extends events_1.EventEmitter {
|
|
|
227
227
|
* Clears the state cache for this resource.
|
|
228
228
|
*/
|
|
229
229
|
clearCache() {
|
|
230
|
-
this.client.
|
|
230
|
+
this.client.clearResourceCache([this.uri], []);
|
|
231
231
|
}
|
|
232
232
|
/**
|
|
233
233
|
* Retrieves the current cached resource state, and return `null` if it's
|
|
@@ -305,7 +305,7 @@ function optionsToRequestInit(method, options) {
|
|
|
305
305
|
}
|
|
306
306
|
else if (options.data) {
|
|
307
307
|
body = options.data;
|
|
308
|
-
if (fetch_body_helper_1.needsJsonStringify(body)) {
|
|
308
|
+
if ((0, fetch_body_helper_1.needsJsonStringify)(body)) {
|
|
309
309
|
body = JSON.stringify(body);
|
|
310
310
|
}
|
|
311
311
|
}
|
package/dist/resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":";;;AACA,mCAAsE;AACtE,oCAAqC;AACrC,qDAAuE;AACvE,iCAA2D;AAC3D,mCAAsC;AAEtC,gEAA8D;AAE9D;;;;;GAKG;AACH,MAAa,QAAkB,SAAQ,qBAAY;IAcjD;;;;OAIG;IACH,YAAY,MAAc,EAAE,GAAW;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAE5B,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,UAA8B;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,EAAE;YACT,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC/B;QAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,CAAC,KAAK,IAAuB,EAAE;gBAClD,IAAI;oBACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;oBACxE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACxB,OAAO,KAAK,CAAC;iBACd;wBAAS;oBACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;YACH,CAAC,CAAC,EAAE,CAAC;SACN;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAE5B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,WAAgC;QAEzC,IAAI,KAAK,GAAyB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CACtC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAC1C,CAAC;QAEF,KAAK,GAAG,MAAM,wBAAgB,
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -75,10 +75,6 @@ export default class Client {
|
|
|
75
75
|
* Clears the entire state cache
|
|
76
76
|
*/
|
|
77
77
|
clearCache(): void;
|
|
78
|
-
/**
|
|
79
|
-
* Transforms a fetch Response to a State object.
|
|
80
|
-
*/
|
|
81
|
-
getStateForResponse(uri: string, response: Response): Promise<State>;
|
|
82
78
|
/**
|
|
83
79
|
* Caches a State object
|
|
84
80
|
*
|
|
@@ -86,4 +82,28 @@ export default class Client {
|
|
|
86
82
|
* embedded states.
|
|
87
83
|
*/
|
|
88
84
|
cacheState(state: State): void;
|
|
85
|
+
/**
|
|
86
|
+
* cacheDependencies contains all cache relationships between
|
|
87
|
+
* resources.
|
|
88
|
+
*
|
|
89
|
+
* This lets a user (for example) let a resource automatically
|
|
90
|
+
* expire, if another one expires.
|
|
91
|
+
*
|
|
92
|
+
* A server can populate this list using the `inv-by' link.
|
|
93
|
+
*/
|
|
94
|
+
cacheDependencies: Map<string, Set<string>>;
|
|
95
|
+
/**
|
|
96
|
+
* Helper function for clearing the cache for a resource.
|
|
97
|
+
*
|
|
98
|
+
* This function will also emit the 'stale' event for resources that have
|
|
99
|
+
* subscribers, and handle any dependent resource caches.
|
|
100
|
+
*
|
|
101
|
+
* If any resources are specified in deletedUris, those will not
|
|
102
|
+
* receive 'stale' events, but 'delete' events instead.
|
|
103
|
+
*/
|
|
104
|
+
clearResourceCache(staleUris: string[], deletedUris: string[]): void;
|
|
105
|
+
/**
|
|
106
|
+
* Transforms a fetch Response to a State object.
|
|
107
|
+
*/
|
|
108
|
+
getStateForResponse(uri: string, response: Response): Promise<State>;
|
|
89
109
|
}
|
package/dist/state/base-state.js
CHANGED
|
@@ -31,10 +31,10 @@ class BaseHeadState {
|
|
|
31
31
|
throw new link_1.LinkNotFound(`Link with rel ${rel} on ${this.uri} not found`);
|
|
32
32
|
let href;
|
|
33
33
|
if (link.templated) {
|
|
34
|
-
href = uri_template_1.expand(link, variables || {});
|
|
34
|
+
href = (0, uri_template_1.expand)(link, variables || {});
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
href = uri_1.resolve(link);
|
|
37
|
+
href = (0, uri_1.resolve)(link);
|
|
38
38
|
}
|
|
39
39
|
if (((_a = link.hints) === null || _a === void 0 ? void 0 : _a.status) === 'deprecated') {
|
|
40
40
|
/* eslint-disable-next-line no-console */
|
|
@@ -55,7 +55,7 @@ class BaseHeadState {
|
|
|
55
55
|
/* eslint-disable-next-line no-console */
|
|
56
56
|
console.warn(`[ketting] The ${link.rel} link on ${this.uri} is marked deprecated.`, link);
|
|
57
57
|
}
|
|
58
|
-
const href = uri_1.resolve(link);
|
|
58
|
+
const href = (0, uri_1.resolve)(link);
|
|
59
59
|
return this.client.go(href);
|
|
60
60
|
});
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-state.js","sourceRoot":"","sources":["../../src/state/base-state.ts"],"names":[],"mappings":";;;AACA,kCAA6D;AAE7D,sCAA6E;AAE7E,qCAAsC;AACtC,uDAA8C;AAC9C,uCAAiD;AAwBjD;;GAEG;AACH,MAAa,aAAa;IAwBxB,YAAY,IAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAA0B,GAAW,EAAE,SAAyB;;QAEpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,mBAAY,CAAC,iBAAiB,GAAG,OAAO,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAEnF,IAAI,IAAI,CAAC;QAET,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,GAAG,qBAAM,
|
|
1
|
+
{"version":3,"file":"base-state.js","sourceRoot":"","sources":["../../src/state/base-state.ts"],"names":[],"mappings":"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"}
|
package/dist/state/binary.js
CHANGED
|
@@ -12,7 +12,7 @@ const factory = async (client, uri, response) => {
|
|
|
12
12
|
uri,
|
|
13
13
|
data: await response.blob(),
|
|
14
14
|
headers: response.headers,
|
|
15
|
-
links: util_1.parseLink(uri, response.headers.get('Link')),
|
|
15
|
+
links: (0, util_1.parseLink)(uri, response.headers.get('Link')),
|
|
16
16
|
});
|
|
17
17
|
};
|
|
18
18
|
exports.factory = factory;
|
package/dist/state/binary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/state/binary.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,uCAAyC;AAEzC;;GAEG;AACI,MAAM,OAAO,GAAuB,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAA4B,EAAE;IAEnG,OAAO,IAAI,sBAAS,CAAC;QACnB,MAAM;QACN,GAAG;QACH,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,gBAAS,
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/state/binary.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,uCAAyC;AAEzC;;GAEG;AACI,MAAM,OAAO,GAAuB,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAA4B,EAAE;IAEnG,OAAO,IAAI,sBAAS,CAAC;QACnB,MAAM;QACN,GAAG;QACH,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,IAAA,gBAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACpD,CAAC,CAAC;AAEL,CAAC,CAAC;AAVW,QAAA,OAAO,WAUlB"}
|
|
@@ -28,7 +28,7 @@ exports.CjState = CjState;
|
|
|
28
28
|
*/
|
|
29
29
|
const factory = async (client, uri, response) => {
|
|
30
30
|
const body = await response.json();
|
|
31
|
-
const links = util_1.parseLink(uri, response.headers.get('Link'));
|
|
31
|
+
const links = (0, util_1.parseLink)(uri, response.headers.get('Link'));
|
|
32
32
|
links.add(...parseCjLinks(uri, body));
|
|
33
33
|
// Remove _links and _embedded from body
|
|
34
34
|
const { _embedded, _links } = body, newBody = __rest(body, ["_embedded", "_links"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-json.js","sourceRoot":"","sources":["../../src/state/collection-json.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6CAAyC;AACzC,uCAAyC;AAIzC;;GAEG;AACH,MAAa,OAAiB,SAAQ,sBAAY;IAEhD,aAAa;QAEX,MAAM,IAAI,KAAK,CAAC,kJAAkJ,CAAC,CAAC;IACtK,CAAC;CAEF;AAPD,0BAOC;AAED;;GAEG;AACI,MAAM,OAAO,GAAiB,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAkC,EAAE;IAEnG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,MAAM,KAAK,GAAG,gBAAS,
|
|
1
|
+
{"version":3,"file":"collection-json.js","sourceRoot":"","sources":["../../src/state/collection-json.ts"],"names":[],"mappings":"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"}
|