ketting 7.0.1 → 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/error.js +1 -1
- package/dist/http/error.js.map +1 -1
- package/dist/http/fetch-polyfill.js.map +1 -1
- package/dist/http/fetcher.js +3 -3
- package/dist/http/fetcher.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/link.js +2 -2
- package/dist/link.js.map +1 -1
- package/dist/middlewares/accept-header.js +1 -1
- package/dist/middlewares/accept-header.js.map +1 -1
- package/dist/middlewares/cache.js +30 -25
- package/dist/middlewares/cache.js.map +1 -1
- package/dist/middlewares/warning.js +2 -1
- package/dist/middlewares/warning.js.map +1 -1
- package/dist/resource.d.ts +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/src/index.d.ts +3 -1
- package/dist/src/resource.d.ts +1 -1
- package/dist/state/base-state.js +6 -4
- 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 +13 -9
- 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/dist/util/uri.web.js +1 -1
- package/dist/util/uri.web.js.map +1 -1
- package/package.json +11 -10
- package/src/action.ts +2 -2
- package/src/client.ts +119 -34
- package/src/field.ts +9 -9
- package/src/http/error.ts +7 -7
- package/src/http/fetch-polyfill.ts +4 -4
- package/src/http/fetcher.ts +3 -3
- package/src/index.ts +3 -5
- package/src/link.ts +10 -10
- package/src/middlewares/accept-header.ts +1 -1
- package/src/middlewares/cache.ts +31 -24
- package/src/middlewares/warning.ts +1 -0
- package/src/resource.ts +8 -8
- package/src/state/base-state.ts +5 -3
- package/src/state/collection-json.ts +28 -28
- package/src/state/hal.ts +12 -7
- package/src/state/interface.ts +2 -2
- package/src/state/jsonapi.ts +9 -9
- package/src/state/siren.ts +23 -23
- package/src/types.ts +1 -1
- package/src/util/html.ts +10 -10
- package/src/util/html.web.ts +7 -7
- package/src/util/uri.ts +1 -1
- package/src/util/uri.web.ts +2 -2
- package/changelog.md +0 -894
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/error.js
CHANGED
|
@@ -46,7 +46,7 @@ exports.Problem = Problem;
|
|
|
46
46
|
*/
|
|
47
47
|
async function problemFactory(response) {
|
|
48
48
|
const contentType = response.headers.get('Content-Type');
|
|
49
|
-
if (contentType
|
|
49
|
+
if (contentType === null || contentType === void 0 ? void 0 : contentType.match(/^application\/problem\+json/i)) {
|
|
50
50
|
const problemBody = await response.json();
|
|
51
51
|
return new Problem(response, problemBody);
|
|
52
52
|
}
|
package/dist/http/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/http/error.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,SAAU,SAAQ,KAAK;IAKlC,YAAY,QAAkB;QAC5B,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;CAEF;AAXD,8BAWC;AAED;;;;;;GAMG;AACH,MAAa,OAAQ,SAAQ,SAAS;IAWpC,YAAY,QAAkB,EAAE,WAAgC;;QAC9D,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhB,IAAI,CAAC,IAAI,mBACP,IAAI,EAAE,MAAA,WAAW,CAAC,IAAI,mCAAI,aAAa,EACvC,MAAM,EAAE,MAAA,WAAW,CAAC,MAAM,mCAAI,IAAI,CAAC,MAAM,IACtC,WAAW,CACf,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,OAAO,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;SACrE;IACH,CAAC;CAEF;AAzBD,0BAyBC;AAED;;;;;;;;;GASG;AACY,KAAK,UAAU,cAAc,CAAC,QAAkB;IAE7D,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/http/error.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,SAAU,SAAQ,KAAK;IAKlC,YAAY,QAAkB;QAC5B,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;CAEF;AAXD,8BAWC;AAED;;;;;;GAMG;AACH,MAAa,OAAQ,SAAQ,SAAS;IAWpC,YAAY,QAAkB,EAAE,WAAgC;;QAC9D,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhB,IAAI,CAAC,IAAI,mBACP,IAAI,EAAE,MAAA,WAAW,CAAC,IAAI,mCAAI,aAAa,EACvC,MAAM,EAAE,MAAA,WAAW,CAAC,MAAM,mCAAI,IAAI,CAAC,MAAM,IACtC,WAAW,CACf,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,OAAO,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;SACrE;IACH,CAAC;CAEF;AAzBD,0BAyBC;AAED;;;;;;;;;GASG;AACY,KAAK,UAAU,cAAc,CAAC,QAAkB;IAE7D,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC,8BAA8B,CAAC,EAAE;QACtD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;KAC3C;SAAM;QACL,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;KAChC;AAEH,CAAC;AAVD,iCAUC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-polyfill.js","sourceRoot":"","sources":["../../src/http/fetch-polyfill.ts"],"names":[],"mappings":";;AAAA,2CAKoB;AAEpB,yCAAyC;
|
|
1
|
+
{"version":3,"file":"fetch-polyfill.js","sourceRoot":"","sources":["../../src/http/fetch-polyfill.ts"],"names":[],"mappings":";;AAAA,2CAKoB;AAEpB,yCAAyC;AACxC,MAAc,CAAC,KAAK,GAAG,oBAAS,CAAC;AACjC,MAAc,CAAC,OAAO,GAAG,oBAAO,CAAC;AACjC,MAAc,CAAC,OAAO,GAAG,oBAAO,CAAC;AACjC,MAAc,CAAC,QAAQ,GAAG,qBAAQ,CAAC"}
|
package/dist/http/fetcher.js
CHANGED
|
@@ -39,9 +39,9 @@ class Fetcher {
|
|
|
39
39
|
* a specific origin
|
|
40
40
|
*/
|
|
41
41
|
getMiddlewaresByOrigin(origin) {
|
|
42
|
-
return this.middlewares.filter(([regex
|
|
42
|
+
return this.middlewares.filter(([regex]) => {
|
|
43
43
|
return regex.test(origin);
|
|
44
|
-
}).map(([
|
|
44
|
+
}).map(([, middleware]) => {
|
|
45
45
|
return middleware;
|
|
46
46
|
});
|
|
47
47
|
}
|
|
@@ -66,7 +66,7 @@ class Fetcher {
|
|
|
66
66
|
return response;
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
throw await error_1.default(response);
|
|
69
|
+
throw await (0, error_1.default)(response);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
}
|
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/index.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ export { default as Resource } from './resource';
|
|
|
3
3
|
export { Link, LinkNotFound, Links } from './link';
|
|
4
4
|
export { resolve } from './util/uri';
|
|
5
5
|
export { BaseState, BaseHeadState, State, HalState, SirenState, CjState, isState, } from './state';
|
|
6
|
-
export { ForeverCache
|
|
6
|
+
export { ForeverCache } from './cache/forever';
|
|
7
|
+
export { ShortCache } from './cache/short';
|
|
8
|
+
export { NeverCache } from './cache/never';
|
|
7
9
|
export { default as basicAuth } from './http/basic-auth';
|
|
8
10
|
export { default as bearerAuth } from './http/bearer-auth';
|
|
9
11
|
export { default as oauth2 } from './http/oauth2';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FollowPromiseMany = exports.FollowPromiseOne = exports.Problem = exports.oauth2 = exports.bearerAuth = exports.basicAuth = exports.
|
|
3
|
+
exports.FollowPromiseMany = exports.FollowPromiseOne = exports.Problem = exports.oauth2 = exports.bearerAuth = exports.basicAuth = exports.NeverCache = exports.ShortCache = exports.ForeverCache = exports.isState = exports.CjState = exports.SirenState = exports.HalState = exports.BaseHeadState = exports.BaseState = exports.resolve = exports.Links = exports.LinkNotFound = exports.Resource = exports.default = exports.Ketting = exports.Client = void 0;
|
|
4
4
|
var client_1 = require("./client");
|
|
5
5
|
Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return client_1.default; } });
|
|
6
6
|
Object.defineProperty(exports, "Ketting", { enumerable: true, get: function () { return client_1.default; } });
|
|
@@ -19,10 +19,12 @@ Object.defineProperty(exports, "HalState", { enumerable: true, get: function ()
|
|
|
19
19
|
Object.defineProperty(exports, "SirenState", { enumerable: true, get: function () { return state_1.SirenState; } });
|
|
20
20
|
Object.defineProperty(exports, "CjState", { enumerable: true, get: function () { return state_1.CjState; } });
|
|
21
21
|
Object.defineProperty(exports, "isState", { enumerable: true, get: function () { return state_1.isState; } });
|
|
22
|
-
var
|
|
23
|
-
Object.defineProperty(exports, "ForeverCache", { enumerable: true, get: function () { return
|
|
24
|
-
|
|
25
|
-
Object.defineProperty(exports, "ShortCache", { enumerable: true, get: function () { return
|
|
22
|
+
var forever_1 = require("./cache/forever");
|
|
23
|
+
Object.defineProperty(exports, "ForeverCache", { enumerable: true, get: function () { return forever_1.ForeverCache; } });
|
|
24
|
+
var short_1 = require("./cache/short");
|
|
25
|
+
Object.defineProperty(exports, "ShortCache", { enumerable: true, get: function () { return short_1.ShortCache; } });
|
|
26
|
+
var never_1 = require("./cache/never");
|
|
27
|
+
Object.defineProperty(exports, "NeverCache", { enumerable: true, get: function () { return never_1.NeverCache; } });
|
|
26
28
|
var basic_auth_1 = require("./http/basic-auth");
|
|
27
29
|
Object.defineProperty(exports, "basicAuth", { enumerable: true, get: function () { return basic_auth_1.default; } });
|
|
28
30
|
var bearer_auth_1 = require("./http/bearer-auth");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA0E;AAAjE,gGAAA,OAAO,OAAU;AAAE,iGAAA,OAAO,OAAW;AAAE,iGAAA,OAAO,OAAA;AACvD,uCAAiD;AAAxC,oGAAA,OAAO,OAAY;AAE5B,+BAAmD;AAApC,oGAAA,YAAY,OAAA;AAAE,6FAAA,KAAK,OAAA;AAElC,kCAAqC;AAA5B,8FAAA,OAAO,OAAA;AAEhB,iCAQiB;AAPf,kGAAA,SAAS,OAAA;AACT,sGAAA,aAAa,OAAA;AAEb,iGAAA,QAAQ,OAAA;AACR,mGAAA,UAAU,OAAA;AACV,gGAAA,OAAO,OAAA;AACP,gGAAA,OAAO,OAAA;AAGT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA0E;AAAjE,gGAAA,OAAO,OAAU;AAAE,iGAAA,OAAO,OAAW;AAAE,iGAAA,OAAO,OAAA;AACvD,uCAAiD;AAAxC,oGAAA,OAAO,OAAY;AAE5B,+BAAmD;AAApC,oGAAA,YAAY,OAAA;AAAE,6FAAA,KAAK,OAAA;AAElC,kCAAqC;AAA5B,8FAAA,OAAO,OAAA;AAEhB,iCAQiB;AAPf,kGAAA,SAAS,OAAA;AACT,sGAAA,aAAa,OAAA;AAEb,iGAAA,QAAQ,OAAA;AACR,mGAAA,UAAU,OAAA;AACV,gGAAA,OAAO,OAAA;AACP,gGAAA,OAAO,OAAA;AAGT,2CAA+C;AAAtC,uGAAA,YAAY,OAAA;AACrB,uCAA2C;AAAlC,mGAAA,UAAU,OAAA;AACnB,uCAA2C;AAAlC,mGAAA,UAAU,OAAA;AAEnB,gDAAyD;AAAhD,uGAAA,OAAO,OAAa;AAC7B,kDAA2D;AAAlD,yGAAA,OAAO,OAAc;AAC9B,wCAAkD;AAAzC,gGAAA,OAAO,OAAU;AAE1B,sCAAuC;AAA9B,gGAAA,OAAO,OAAA;AAKhB,mDAAuE;AAA9D,kHAAA,gBAAgB,OAAA;AAAE,mHAAA,iBAAiB,OAAA"}
|
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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"}
|
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
function default_1(client) {
|
|
10
10
|
return async (request, next) => {
|
|
11
11
|
if (!request.headers.has('Accept')) {
|
|
12
|
-
const acceptHeader = Object.entries(client.contentTypeMap).map(([contentType, [
|
|
12
|
+
const acceptHeader = Object.entries(client.contentTypeMap).map(([contentType, [, q]]) => contentType + ';q=' + q).join(', ');
|
|
13
13
|
request.headers.set('Accept', acceptHeader);
|
|
14
14
|
}
|
|
15
15
|
return next(request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accept-header.js","sourceRoot":"","sources":["../../src/middlewares/accept-header.ts"],"names":[],"mappings":";;AAGA;;;;;GAKG;AACH,mBAAwB,MAAc;IAEpC,OAAO,KAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAE5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAC5D,CAAC,CAAC,WAAW,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"accept-header.js","sourceRoot":"","sources":["../../src/middlewares/accept-header.ts"],"names":[],"mappings":";;AAGA;;;;;GAKG;AACH,mBAAwB,MAAc;IAEpC,OAAO,KAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAE5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAC5D,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvB,CAAC,CAAC;AAEJ,CAAC;AAdD,4BAcC"}
|
|
@@ -24,7 +24,21 @@ function default_1(client) {
|
|
|
24
24
|
request.headers.delete('X-KETTING-NO-STALE');
|
|
25
25
|
}
|
|
26
26
|
const response = await next(request);
|
|
27
|
-
|
|
27
|
+
// If the response had a Link: rel=inv-by header, it means that when the
|
|
28
|
+
// target uri's cache expires, the uri of this resource should also
|
|
29
|
+
// expire.
|
|
30
|
+
if (response.headers.has('Link')) {
|
|
31
|
+
for (const httpLink of LinkHeader.parse(response.headers.get('Link')).rel('inv-by')) {
|
|
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);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
client.cacheDependencies.set(uri, new Set([request.url]));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if ((0, util_1.isSafeMethod)(request.method)) {
|
|
28
42
|
return response;
|
|
29
43
|
}
|
|
30
44
|
if (!response.ok) {
|
|
@@ -32,44 +46,35 @@ function default_1(client) {
|
|
|
32
46
|
return response;
|
|
33
47
|
}
|
|
34
48
|
// We just processed an unsafe method, lets notify all subsystems.
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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);
|
|
39
56
|
}
|
|
40
57
|
// If the response had a Link: rel=invalidate header, we want to
|
|
41
58
|
// expire those too.
|
|
42
59
|
if (response.headers.has('Link')) {
|
|
43
60
|
for (const httpLink of LinkHeader.parse(response.headers.get('Link')).rel('invalidates')) {
|
|
44
|
-
const uri = uri_1.resolve(request.url, httpLink.uri);
|
|
45
|
-
|
|
61
|
+
const uri = (0, uri_1.resolve)(request.url, httpLink.uri);
|
|
62
|
+
stale.push(uri);
|
|
46
63
|
}
|
|
47
64
|
}
|
|
48
65
|
// Location headers should also expire
|
|
49
66
|
if (response.headers.has('Location')) {
|
|
50
|
-
|
|
67
|
+
stale.push((0, uri_1.resolve)(request.url, response.headers.get('Location')));
|
|
51
68
|
}
|
|
52
|
-
|
|
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!
|
|
53
73
|
if (response.headers.has('Content-Location')) {
|
|
54
|
-
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'));
|
|
55
75
|
const clState = await client.getStateForResponse(cl, response);
|
|
56
76
|
client.cacheState(clState);
|
|
57
77
|
}
|
|
58
|
-
for (const uri of expireUris) {
|
|
59
|
-
client.cache.delete(request.url);
|
|
60
|
-
const resource = client.resources.get(uri);
|
|
61
|
-
if (resource) {
|
|
62
|
-
// We have a resource for this object, notify it as well.
|
|
63
|
-
resource.emit('stale');
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (request.method === 'DELETE') {
|
|
67
|
-
client.cache.delete(request.url);
|
|
68
|
-
const resource = client.resources.get(request.url);
|
|
69
|
-
if (resource) {
|
|
70
|
-
resource.emit('delete');
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
78
|
return response;
|
|
74
79
|
};
|
|
75
80
|
}
|
|
@@ -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,OAAO,KAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAE5B;;;WAGG;QACH,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;YAC7C,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SAC9C;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/middlewares/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,10 +20,11 @@ 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
|
}
|
|
27
|
+
/* eslint-disable-next-line no-console */
|
|
27
28
|
console.warn(msg);
|
|
28
29
|
}
|
|
29
30
|
return response;
|
|
@@ -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.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ export declare class Resource<T = any> extends EventEmitter {
|
|
|
81
81
|
*
|
|
82
82
|
* If the server responds with 200 Status code this will return a State object
|
|
83
83
|
*/
|
|
84
|
-
patch(options: PatchRequestOptions): Promise<
|
|
84
|
+
patch(options: PatchRequestOptions): Promise<undefined | State<T>>;
|
|
85
85
|
/**
|
|
86
86
|
* Follows a relationship, based on its reltype. For example, this might be
|
|
87
87
|
* 'alternate', 'item', 'edit' or a custom url-based one.
|
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/src/index.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ export { default as Resource } from './resource';
|
|
|
3
3
|
export { Link, LinkNotFound, Links } from './link';
|
|
4
4
|
export { resolve } from './util/uri';
|
|
5
5
|
export { BaseState, BaseHeadState, State, HalState, SirenState, CjState, isState, } from './state';
|
|
6
|
-
export { ForeverCache
|
|
6
|
+
export { ForeverCache } from './cache/forever';
|
|
7
|
+
export { ShortCache } from './cache/short';
|
|
8
|
+
export { NeverCache } from './cache/never';
|
|
7
9
|
export { default as basicAuth } from './http/basic-auth';
|
|
8
10
|
export { default as bearerAuth } from './http/bearer-auth';
|
|
9
11
|
export { default as oauth2 } from './http/oauth2';
|