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.
Files changed (81) hide show
  1. package/LICENSE +1 -1
  2. package/browser/ketting.min.js +1 -1
  3. package/browser/ketting.min.js.map +1 -1
  4. package/dist/client.d.ts +24 -4
  5. package/dist/client.js +96 -29
  6. package/dist/client.js.map +1 -1
  7. package/dist/http/error.js +1 -1
  8. package/dist/http/error.js.map +1 -1
  9. package/dist/http/fetch-polyfill.js.map +1 -1
  10. package/dist/http/fetcher.js +3 -3
  11. package/dist/http/fetcher.js.map +1 -1
  12. package/dist/index.d.ts +3 -1
  13. package/dist/index.js +7 -5
  14. package/dist/index.js.map +1 -1
  15. package/dist/link.js +2 -2
  16. package/dist/link.js.map +1 -1
  17. package/dist/middlewares/accept-header.js +1 -1
  18. package/dist/middlewares/accept-header.js.map +1 -1
  19. package/dist/middlewares/cache.js +30 -25
  20. package/dist/middlewares/cache.js.map +1 -1
  21. package/dist/middlewares/warning.js +2 -1
  22. package/dist/middlewares/warning.js.map +1 -1
  23. package/dist/resource.d.ts +1 -1
  24. package/dist/resource.js +6 -6
  25. package/dist/resource.js.map +1 -1
  26. package/dist/src/client.d.ts +24 -4
  27. package/dist/src/index.d.ts +3 -1
  28. package/dist/src/resource.d.ts +1 -1
  29. package/dist/state/base-state.js +6 -4
  30. package/dist/state/base-state.js.map +1 -1
  31. package/dist/state/binary.js +1 -1
  32. package/dist/state/binary.js.map +1 -1
  33. package/dist/state/collection-json.js +1 -1
  34. package/dist/state/collection-json.js.map +1 -1
  35. package/dist/state/hal.js +13 -9
  36. package/dist/state/hal.js.map +1 -1
  37. package/dist/state/head.js +1 -1
  38. package/dist/state/head.js.map +1 -1
  39. package/dist/state/html.js +3 -3
  40. package/dist/state/html.js.map +1 -1
  41. package/dist/state/jsonapi.js +1 -1
  42. package/dist/state/jsonapi.js.map +1 -1
  43. package/dist/state/siren.js +3 -3
  44. package/dist/state/siren.js.map +1 -1
  45. package/dist/state/text.js +1 -1
  46. package/dist/state/text.js.map +1 -1
  47. package/dist/util/html.js +2 -2
  48. package/dist/util/html.js.map +1 -1
  49. package/dist/util/html.web.js +2 -2
  50. package/dist/util/html.web.js.map +1 -1
  51. package/dist/util/uri-template.js +1 -1
  52. package/dist/util/uri-template.js.map +1 -1
  53. package/dist/util/uri.js +3 -3
  54. package/dist/util/uri.js.map +1 -1
  55. package/dist/util/uri.web.js +1 -1
  56. package/dist/util/uri.web.js.map +1 -1
  57. package/package.json +11 -10
  58. package/src/action.ts +2 -2
  59. package/src/client.ts +119 -34
  60. package/src/field.ts +9 -9
  61. package/src/http/error.ts +7 -7
  62. package/src/http/fetch-polyfill.ts +4 -4
  63. package/src/http/fetcher.ts +3 -3
  64. package/src/index.ts +3 -5
  65. package/src/link.ts +10 -10
  66. package/src/middlewares/accept-header.ts +1 -1
  67. package/src/middlewares/cache.ts +31 -24
  68. package/src/middlewares/warning.ts +1 -0
  69. package/src/resource.ts +8 -8
  70. package/src/state/base-state.ts +5 -3
  71. package/src/state/collection-json.ts +28 -28
  72. package/src/state/hal.ts +12 -7
  73. package/src/state/interface.ts +2 -2
  74. package/src/state/jsonapi.ts +9 -9
  75. package/src/state/siren.ts +23 -23
  76. package/src/types.ts +1 -1
  77. package/src/util/html.ts +10 -10
  78. package/src/util/html.web.ts +7 -7
  79. package/src/util/uri.ts +1 -1
  80. package/src/util/uri.web.ts +2 -2
  81. 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
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -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 && contentType.match(/^application\/problem\+json/i)) {
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
  }
@@ -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,IAAI,WAAW,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE;QACpE,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
+ {"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;AAClC,MAAO,CAAC,KAAK,GAAG,oBAAS,CAAC;AAC1B,MAAO,CAAC,OAAO,GAAG,oBAAO,CAAC;AAC1B,MAAO,CAAC,OAAO,GAAG,oBAAO,CAAC;AAC1B,MAAO,CAAC,QAAQ,GAAG,qBAAQ,CAAC"}
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"}
@@ -39,9 +39,9 @@ class Fetcher {
39
39
  * a specific origin
40
40
  */
41
41
  getMiddlewaresByOrigin(origin) {
42
- return this.middlewares.filter(([regex, middleware]) => {
42
+ return this.middlewares.filter(([regex]) => {
43
43
  return regex.test(origin);
44
- }).map(([regex, middleware]) => {
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
  }
@@ -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,CAAA;IA6ElC,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,EAAE,UAAU,CAAC,EAAE,EAAE;YACtD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5B,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE;YAC9B,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,eAAc,CAAC,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"}
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, NeverCache, ShortCache, } from './cache';
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.ShortCache = exports.NeverCache = 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;
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 cache_1 = require("./cache");
23
- Object.defineProperty(exports, "ForeverCache", { enumerable: true, get: function () { return cache_1.ForeverCache; } });
24
- Object.defineProperty(exports, "NeverCache", { enumerable: true, get: function () { return cache_1.NeverCache; } });
25
- Object.defineProperty(exports, "ShortCache", { enumerable: true, get: function () { return cache_1.ShortCache; } });
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,iCAIiB;AAHf,qGAAA,YAAY,OAAA;AACZ,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AAGZ,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"}
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":"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"}
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, [stateFactory, q]]) => contentType + ';q=' + q).join(', ');
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,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAC9D,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"}
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
- if (util_1.isSafeMethod(request.method)) {
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 expireUris = [];
36
- if (!noStaleEvent && request.method !== 'DELETE') {
37
- // Sorry for the double negative
38
- expireUris.push(request.url);
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
- expireUris.push(uri);
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
- expireUris.push(uri_1.resolve(request.url, response.headers.get('Location')));
67
+ stale.push((0, uri_1.resolve)(request.url, response.headers.get('Location')));
51
68
  }
52
- // Content-Location headers should also expire
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":"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"}
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,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC/C,GAAG,IAAI,OAAO,GAAG,wBAAwB,CAAC;iBAC3C;aACF;YAED,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAEnB;QACD,OAAO,QAAQ,CAAC;IAElB,CAAC,CAAC;AAEJ,CAAC;AA1BD,4BA0BC"}
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"}
@@ -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<void | State<T>>;
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.cache.delete(this.uri);
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
@@ -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
  }
@@ -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, NeverCache, ShortCache, } from './cache';
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';