@mountainpass/waychaser 4.0.38 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +37 -26
  3. package/dist/augment-options.d.ts +29 -0
  4. package/dist/augment-options.js +70 -0
  5. package/dist/augment-options.js.map +1 -0
  6. package/dist/expand-operation.d.ts +5 -0
  7. package/dist/expand-operation.js +78 -0
  8. package/dist/expand-operation.js.map +1 -0
  9. package/dist/handlers/hal/de-curie.d.ts +9 -0
  10. package/dist/handlers/hal/de-curie.js +50 -0
  11. package/dist/handlers/hal/de-curie.js.map +1 -0
  12. package/dist/handlers/hal/hal-handler.d.ts +6 -0
  13. package/dist/handlers/hal/hal-handler.js +91 -0
  14. package/dist/handlers/hal/hal-handler.js.map +1 -0
  15. package/dist/handlers/hal/map-hal-link-to-operation.d.ts +7 -0
  16. package/dist/handlers/hal/map-hal-link-to-operation.js +40 -0
  17. package/dist/handlers/hal/map-hal-link-to-operation.js.map +1 -0
  18. package/dist/handlers/link-header/link-header-handler.d.ts +7 -0
  19. package/dist/handlers/link-header/link-header-handler.js +83 -0
  20. package/dist/handlers/link-header/link-header-handler.js.map +1 -0
  21. package/dist/handlers/location-header/location-header-handler.d.ts +5 -0
  22. package/dist/handlers/location-header/location-header-handler.js +16 -0
  23. package/dist/handlers/location-header/location-header-handler.js.map +1 -0
  24. package/dist/handlers/siren/map-siren-action-to-operation.d.ts +6 -0
  25. package/dist/handlers/siren/map-siren-action-to-operation.js +63 -0
  26. package/dist/handlers/siren/map-siren-action-to-operation.js.map +1 -0
  27. package/dist/handlers/siren/map-siren-link-to-operation.d.ts +13 -0
  28. package/dist/handlers/siren/map-siren-link-to-operation.js +43 -0
  29. package/dist/handlers/siren/map-siren-link-to-operation.js.map +1 -0
  30. package/dist/handlers/siren/siren-action-handler.d.ts +5 -0
  31. package/dist/handlers/siren/siren-action-handler.js +46 -0
  32. package/dist/handlers/siren/siren-action-handler.js.map +1 -0
  33. package/dist/handlers/siren/siren-handler.d.ts +6 -0
  34. package/dist/handlers/siren/siren-handler.js +48 -0
  35. package/dist/handlers/siren/siren-handler.js.map +1 -0
  36. package/dist/handlers/siren/siren-link-handler.d.ts +6 -0
  37. package/dist/handlers/siren/siren-link-handler.js +59 -0
  38. package/dist/handlers/siren/siren-link-handler.js.map +1 -0
  39. package/dist/operation-array.d.ts +12 -0
  40. package/dist/operation-array.js +110 -0
  41. package/dist/operation-array.js.map +1 -0
  42. package/dist/operation.d.ts +24 -0
  43. package/dist/operation.js +304 -0
  44. package/dist/operation.js.map +1 -0
  45. package/dist/util/media-types.d.ts +5 -0
  46. package/dist/util/media-types.js +8 -0
  47. package/dist/util/media-types.js.map +1 -0
  48. package/dist/util/method-can-have-body.d.ts +4 -0
  49. package/dist/util/method-can-have-body.js +11 -0
  50. package/dist/util/method-can-have-body.js.map +1 -0
  51. package/dist/util/parse-accept.d.ts +6 -0
  52. package/dist/util/parse-accept.js +85 -0
  53. package/dist/util/parse-accept.js.map +1 -0
  54. package/dist/util/parse-operations.d.ts +14 -0
  55. package/dist/util/parse-operations.js +94 -0
  56. package/dist/util/parse-operations.js.map +1 -0
  57. package/dist/util/preferred-content-type.d.ts +6 -0
  58. package/dist/util/preferred-content-type.js +23 -0
  59. package/dist/util/preferred-content-type.js.map +1 -0
  60. package/dist/util/uri-template-lite.d.ts +1 -0
  61. package/dist/util/uri-template-lite.js +31 -0
  62. package/dist/util/uri-template-lite.js.map +1 -0
  63. package/dist/waychaser.d.ts +130 -0
  64. package/dist/waychaser.es.js +2331 -0
  65. package/dist/waychaser.es.min.js +15 -0
  66. package/dist/waychaser.js +582 -4527
  67. package/dist/waychaser.js.map +1 -1
  68. package/package.json +36 -63
  69. package/dist/waychaser.cjs +0 -14
  70. package/dist/waychaser.cjs.map +0 -1
  71. package/dist/waychaser.min.js +0 -7
  72. package/dist/waychaser.min.js.map +0 -1
  73. package/dist/waychaser.mjs +0 -14
  74. package/dist/waychaser.mjs.map +0 -1
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ var __rest = (this && this.__rest) || function (s, e) {
54
+ var t = {};
55
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
56
+ t[p] = s[p];
57
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
58
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
59
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
60
+ t[p[i]] = s[p[i]];
61
+ }
62
+ return t;
63
+ };
64
+ var __read = (this && this.__read) || function (o, n) {
65
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
66
+ if (!m) return o;
67
+ var i = m.call(o), r, ar = [], e;
68
+ try {
69
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
70
+ }
71
+ catch (error) { e = { error: error }; }
72
+ finally {
73
+ try {
74
+ if (r && !r.done && (m = i["return"])) m.call(i);
75
+ }
76
+ finally { if (e) throw e.error; }
77
+ }
78
+ return ar;
79
+ };
80
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
81
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
82
+ if (ar || !(i in from)) {
83
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
84
+ ar[i] = from[i];
85
+ }
86
+ }
87
+ return to.concat(ar || Array.prototype.slice.call(from));
88
+ };
89
+ var __values = (this && this.__values) || function(o) {
90
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
91
+ if (m) return m.call(o);
92
+ if (o && typeof o.length === "number") return {
93
+ next: function () {
94
+ if (o && i >= o.length) o = void 0;
95
+ return { value: o && o[i++], done: !o };
96
+ }
97
+ };
98
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
99
+ };
100
+ var __importDefault = (this && this.__importDefault) || function (mod) {
101
+ return (mod && mod.__esModule) ? mod : { "default": mod };
102
+ };
103
+ Object.defineProperty(exports, "__esModule", { value: true });
104
+ exports.InvocableOperation = exports.Operation = void 0;
105
+ var uri_template_lite_1 = require("./util/uri-template-lite");
106
+ var qs_stringify_1 = __importDefault(require("qs-stringify"));
107
+ var form_data_1 = __importDefault(require("form-data"));
108
+ var preferred_content_type_1 = require("./util/preferred-content-type");
109
+ var flat_1 = __importDefault(require("flat"));
110
+ var waychaser_1 = require("./waychaser");
111
+ var jsonpointer_1 = __importDefault(require("jsonpointer"));
112
+ var method_can_have_body_1 = require("./util/method-can-have-body");
113
+ var problem_document_1 = require("@mountainpass/problem-document");
114
+ var Operation = /** @class */ (function () {
115
+ function Operation(_a) {
116
+ var rel = _a.rel, uri = _a.uri, method = _a.method, parameters = _a.parameters, accept = _a.accept, anchor = _a.anchor, otherProperties = __rest(_a, ["rel", "uri", "method", "parameters", "accept", "anchor"]);
117
+ this.rel = rel;
118
+ this.uri = uri;
119
+ this.method = method;
120
+ this.parameters = parameters || {};
121
+ this.accept = accept;
122
+ this.anchor = anchor;
123
+ Object.assign(this, otherProperties);
124
+ }
125
+ return Operation;
126
+ }());
127
+ exports.Operation = Operation;
128
+ var InvocableOperation = /** @class */ (function (_super) {
129
+ __extends(InvocableOperation, _super);
130
+ function InvocableOperation(operation, response, defaultOptions, thisContext) {
131
+ var _this = _super.call(this, operation) || this;
132
+ _this.response = response;
133
+ _this.defaultOptions = defaultOptions;
134
+ if (_this.uri.includes('{this.')) {
135
+ _this.uri = uri_template_lite_1.URI.expand(_this.uri, thisContext);
136
+ }
137
+ return _this;
138
+ // const pathParameters = URI.parameters(operation.uri)
139
+ // for (const key in pathParameters) {
140
+ // this.parameters[key] = {}
141
+ // }
142
+ }
143
+ InvocableOperation.prototype.invokeAsFragment = function (parameters, validator) {
144
+ if (this.uri.startsWith('#/')) {
145
+ var anchor = this.expandUrl(parameters).toString();
146
+ var fragmentContent = this.response.fullContent && jsonpointer_1.default.get(this.response.fullContent, anchor.slice(1));
147
+ if (validator) {
148
+ var validationResult = validator(fragmentContent);
149
+ if ((0, waychaser_1.isValidationSuccess)(validationResult)) {
150
+ return new waychaser_1.WayChaserResponse({ defaultOptions: this.defaultOptions, baseResponse: this.response.response, content: validationResult.content, fullContent: this.response.fullContent, anchor: anchor, parentOperations: this.response.allOperations, parameters: parameters });
151
+ }
152
+ else {
153
+ throw new waychaser_1.WayChaserProblem({
154
+ problem: validationResult.problem,
155
+ response: new waychaser_1.WayChaserResponse({ defaultOptions: this.defaultOptions, baseResponse: this.response.response, content: fragmentContent, fullContent: this.response.fullContent, parameters: parameters })
156
+ });
157
+ }
158
+ }
159
+ else {
160
+ return new waychaser_1.WayChaserResponse({ defaultOptions: this.defaultOptions, baseResponse: this.response.response, content: fragmentContent, fullContent: this.response.fullContent, anchor: anchor, parentOperations: this.response.allOperations, parameters: parameters });
161
+ }
162
+ }
163
+ };
164
+ InvocableOperation.prototype.invokeAll = function (options) {
165
+ return __awaiter(this, void 0, void 0, function () {
166
+ var result;
167
+ return __generator(this, function (_a) {
168
+ if (this.uri.startsWith('#/') && this.response instanceof waychaser_1.WayChaserResponse) {
169
+ result = this.doInvokeAll((options === null || options === void 0 ? void 0 : options.parameters) || {});
170
+ return [2 /*return*/, Promise.all(result)];
171
+ }
172
+ return [2 /*return*/, Promise.all([this.invoke(options)])];
173
+ });
174
+ });
175
+ };
176
+ InvocableOperation.prototype.doInvokeAll = function (parameters, validator) {
177
+ var _this = this;
178
+ var response = this.response;
179
+ // expand the URI with whatever parameters have been passed in
180
+ var template = new uri_template_lite_1.URI.Template(this.uri);
181
+ var uriParameters = Object.assign(uri_template_lite_1.URI.parameters(this.uri), parameters);
182
+ var currentUri = template.expand(uriParameters).replace(/%7B/g, "{").replace(/%7D/g, "}");
183
+ // get unfilled parameters
184
+ var currentUriParameters = uri_template_lite_1.URI.parameters(currentUri);
185
+ var keys = Object.keys(currentUriParameters);
186
+ if (keys.length !== 0) {
187
+ var field = currentUriParameters[keys[0]];
188
+ var parentUri = currentUri.slice(1, currentUri.indexOf(field) - 1);
189
+ var parent_1 = parentUri === '' ? response.content : jsonpointer_1.default.get(response.content, parentUri);
190
+ if (parent_1) {
191
+ var indices = Array.isArray(parent_1) ? __spreadArray([], __read(Array.from({ length: parent_1.length }).keys()), false) : Object.keys(parent_1);
192
+ return indices.flatMap(function (index) {
193
+ var _a;
194
+ var extendedParameters = Object.assign({}, parameters, (_a = {}, _a[keys[0]] = index, _a));
195
+ return _this.doInvokeAll(extendedParameters, validator);
196
+ });
197
+ }
198
+ else {
199
+ throw new waychaser_1.WayChaserProblem({
200
+ response: this.response,
201
+ problem: new problem_document_1.ProblemDocument({
202
+ type: "https://waychaser.io/fragment-uri-error",
203
+ title: "The fragment URI does not match the content structure",
204
+ uri: parentUri, content: response.content,
205
+ parameters: parameters
206
+ }),
207
+ });
208
+ }
209
+ }
210
+ return [this.invokeAsFragment(parameters, validator)];
211
+ };
212
+ InvocableOperation.prototype.invoke = function (options) {
213
+ return __awaiter(this, void 0, void 0, function () {
214
+ var fragment, parameterSpecs, parameters, invokeUrl, body, parameterSpecs_1, parameterSpecs_1_1, key, _a, _b, key, encodedContent, headers, requestOptions, contentType, name_1;
215
+ var e_1, _c, e_2, _d;
216
+ return __generator(this, function (_e) {
217
+ fragment = this.invokeAsFragment(options === null || options === void 0 ? void 0 : options.parameters);
218
+ if (fragment) {
219
+ return [2 /*return*/, fragment];
220
+ }
221
+ parameterSpecs = this.parameters || {};
222
+ parameters = Object.assign({}, this.defaultOptions.parameters, options === null || options === void 0 ? void 0 : options.parameters);
223
+ invokeUrl = this.url(parameters);
224
+ body = {};
225
+ /* istanbul ignore if reason: TODO */
226
+ if (Array.isArray(parameterSpecs)) {
227
+ try {
228
+ for (parameterSpecs_1 = __values(parameterSpecs), parameterSpecs_1_1 = parameterSpecs_1.next(); !parameterSpecs_1_1.done; parameterSpecs_1_1 = parameterSpecs_1.next()) {
229
+ key = parameterSpecs_1_1.value;
230
+ body[key] = parameters === null || parameters === void 0 ? void 0 : parameters[key];
231
+ }
232
+ }
233
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
234
+ finally {
235
+ try {
236
+ if (parameterSpecs_1_1 && !parameterSpecs_1_1.done && (_c = parameterSpecs_1.return)) _c.call(parameterSpecs_1);
237
+ }
238
+ finally { if (e_1) throw e_1.error; }
239
+ }
240
+ }
241
+ else {
242
+ try {
243
+ for (_a = __values(Object.keys(parameterSpecs)), _b = _a.next(); !_b.done; _b = _a.next()) {
244
+ key = _b.value;
245
+ body[key] = parameters === null || parameters === void 0 ? void 0 : parameters[key];
246
+ }
247
+ }
248
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
249
+ finally {
250
+ try {
251
+ if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
252
+ }
253
+ finally { if (e_2) throw e_2.error; }
254
+ }
255
+ }
256
+ headers = {};
257
+ requestOptions = Object.assign({}, options);
258
+ requestOptions.method = this.method;
259
+ if (Object.keys(this.parameters).length !== 0 && (0, method_can_have_body_1.methodCanHaveBody)(this.method || 'GET')) {
260
+ contentType = (0, preferred_content_type_1.preferredContentType)(this.accept, [
261
+ 'application/x-www-form-urlencoded',
262
+ 'application/json',
263
+ 'multipart/form-data'
264
+ ], 'application/x-www-form-urlencoded');
265
+ switch (contentType) {
266
+ case 'application/x-www-form-urlencoded':
267
+ encodedContent = (0, qs_stringify_1.default)(body);
268
+ break;
269
+ case 'application/json':
270
+ encodedContent = JSON.stringify(body);
271
+ break;
272
+ case 'multipart/form-data':
273
+ encodedContent = new form_data_1.default();
274
+ for (name_1 in body) {
275
+ encodedContent.append(name_1, body[name_1]);
276
+ }
277
+ break;
278
+ }
279
+ if (contentType !== 'multipart/form-data') {
280
+ headers = {
281
+ 'content-type': contentType
282
+ };
283
+ }
284
+ // else fetch adds the right content-type header for us
285
+ // with the boundaries
286
+ requestOptions.body = encodedContent;
287
+ requestOptions.headers = Object.assign(headers, options === null || options === void 0 ? void 0 : options.headers);
288
+ }
289
+ return [2 /*return*/, (0, waychaser_1._waychaser)(invokeUrl.toString(), this.defaultOptions, requestOptions)];
290
+ });
291
+ });
292
+ };
293
+ InvocableOperation.prototype.url = function (parameters) {
294
+ var expandedUri = this.expandUrl(parameters);
295
+ var invokeUrl = new URL(expandedUri, this.response.url);
296
+ return invokeUrl;
297
+ };
298
+ InvocableOperation.prototype.expandUrl = function (parameters) {
299
+ return uri_template_lite_1.URI.expand(this.uri, (0, flat_1.default)(parameters || {}));
300
+ };
301
+ return InvocableOperation;
302
+ }(Operation));
303
+ exports.InvocableOperation = InvocableOperation;
304
+ //# sourceMappingURL=operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export default MediaTypes;
2
+ declare namespace MediaTypes {
3
+ const HAL: string;
4
+ const SIREN: string;
5
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var MediaTypes = {
4
+ HAL: 'application/hal+json',
5
+ SIREN: 'application/vnd.siren+json'
6
+ };
7
+ exports.default = MediaTypes;
8
+ //# sourceMappingURL=media-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-types.js","sourceRoot":"","sources":["../../src/util/media-types.js"],"names":[],"mappings":";;AAAA,IAAM,UAAU,GAAG;IACjB,GAAG,EAAE,sBAAsB;IAC3B,KAAK,EAAE,4BAA4B;CACpC,CAAA;AAED,kBAAe,UAAU,CAAA"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @param method
3
+ */
4
+ export function methodCanHaveBody(method: any): boolean;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.methodCanHaveBody = void 0;
4
+ /**
5
+ * @param method
6
+ */
7
+ function methodCanHaveBody(method) {
8
+ return !['GET', 'DELETE', 'TRACE', 'OPTIONS', 'HEAD'].includes(method);
9
+ }
10
+ exports.methodCanHaveBody = methodCanHaveBody;
11
+ //# sourceMappingURL=method-can-have-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method-can-have-body.js","sourceRoot":"","sources":["../../src/util/method-can-have-body.js"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,iBAAiB,CAAE,MAAM;IACvC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACxE,CAAC;AAFD,8CAEC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {string} accept
3
+ */
4
+ export declare function parseAccept(accept: string): Array<{
5
+ type: string;
6
+ }>;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ // negotiated (https://www.npmjs.com/package/negotiated) doesn't working in IE 11 due to missing regex polyfill stuff
3
+ // @hapi/accept https://www.npmjs.com/package/@hapi/accept is too big (with all it's dependencies)
4
+ var __values = (this && this.__values) || function(o) {
5
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
6
+ if (m) return m.call(o);
7
+ if (o && typeof o.length === "number") return {
8
+ next: function () {
9
+ if (o && i >= o.length) o = void 0;
10
+ return { value: o && o[i++], done: !o };
11
+ }
12
+ };
13
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.parseAccept = void 0;
17
+ /**
18
+ * @param {string} accept
19
+ */
20
+ function parseAccept(accept) {
21
+ var entries = accept.split(',');
22
+ return entries
23
+ .map(function (entry) {
24
+ var e_1, _a;
25
+ var fields = entry.split(';');
26
+ var type = fields.shift();
27
+ var types = type === null || type === void 0 ? void 0 : type.split('/');
28
+ var parsedEntry = {
29
+ type: type,
30
+ parentType: types === null || types === void 0 ? void 0 : types[0],
31
+ subType: types === null || types === void 0 ? void 0 : types[1],
32
+ q: 1
33
+ };
34
+ try {
35
+ for (var fields_1 = __values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) {
36
+ var field = fields_1_1.value;
37
+ var parsedFields = field.split('=');
38
+ if (field[0] === 'q') {
39
+ parsedEntry[parsedFields[0]] = Number.parseFloat(parsedFields[1]);
40
+ }
41
+ }
42
+ }
43
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
44
+ finally {
45
+ try {
46
+ if (fields_1_1 && !fields_1_1.done && (_a = fields_1.return)) _a.call(fields_1);
47
+ }
48
+ finally { if (e_1) throw e_1.error; }
49
+ }
50
+ return parsedEntry;
51
+ })
52
+ .sort(function (first, second) {
53
+ // It is expected to return a negative value if first argument is less than second argument, zero if they're
54
+ // equal and a positive value otherwise
55
+ if (first.q > second.q) {
56
+ return -1;
57
+ }
58
+ else if (first.q < second.q) {
59
+ return 1;
60
+ }
61
+ else if (first.parentType === '*' && second.parentType !== '*') {
62
+ return 1;
63
+ }
64
+ else if (first.parentType !== '*' && second.parentType === '*') {
65
+ return -1;
66
+ }
67
+ else if (first.subType === '*' && second.subType !== '*') {
68
+ return 1;
69
+ }
70
+ else if (first.subType !== '*' && second.subType === '*') {
71
+ return -1;
72
+ }
73
+ else {
74
+ return 0;
75
+ }
76
+ })
77
+ .map(function (entry) {
78
+ return {
79
+ type: entry.type || ''
80
+ };
81
+ })
82
+ .filter(function (entry) { return entry.type !== ''; });
83
+ }
84
+ exports.parseAccept = parseAccept;
85
+ //# sourceMappingURL=parse-accept.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-accept.js","sourceRoot":"","sources":["../../src/util/parse-accept.ts"],"names":[],"mappings":";AAAA,qHAAqH;AACrH,kGAAkG;;;;;;;;;;;;;;AAElG;;GAEG;AACH,SAAgB,WAAW,CAAC,MAAc;IACxC,IAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,OAAO,OAAO;SACX,GAAG,CAAC,UAAA,KAAK;;QACR,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAM,WAAW,GAAG;YAClB,IAAI,MAAA;YACJ,UAAU,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC;YACtB,OAAO,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC;YACnB,CAAC,EAAE,CAAC;SACL,CAAA;;YACD,KAAoB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE;gBAAvB,IAAM,KAAK,mBAAA;gBACd,IAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACrC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBACpB,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;iBAClE;aACF;;;;;;;;;QACD,OAAO,WAAW,CAAA;IACpB,CAAC,CAAC;SACD,IAAI,CAAC,UAAC,KAAK,EAAE,MAAM;QAClB,4GAA4G;QAC5G,uCAAuC;QACvC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE;YACtB,OAAO,CAAC,CAAC,CAAA;SACV;aAAM,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE;YAC7B,OAAO,CAAC,CAAA;SACT;aAAM,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE;YAChE,OAAO,CAAC,CAAA;SACT;aAAM,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE;YAChE,OAAO,CAAC,CAAC,CAAA;SACV;aAAM,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,KAAK,GAAG,EAAE;YAC1D,OAAO,CAAC,CAAA;SACT;aAAM,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,KAAK,GAAG,EAAE;YAC1D,OAAO,CAAC,CAAC,CAAA;SACV;aAAM;YACL,OAAO,CAAC,CAAA;SACT;IACH,CAAC,CAAC;SACD,GAAG,CAAC,UAAA,KAAK;QACR,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;SACvB,CAAA;IACH,CAAC,CAAC;SACD,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,IAAI,KAAK,EAAE,EAAjB,CAAiB,CAAC,CAAA;AACvC,CAAC;AA9CD,kCA8CC"}
@@ -0,0 +1,14 @@
1
+ import { Operation } from '../operation';
2
+ import { HandlerSpec } from '../waychaser';
3
+ /**
4
+ * @param root0
5
+ * @param root0.handlers
6
+ * @param root0.response
7
+ * @param root0.baseResponse
8
+ * @param root0.content
9
+ */
10
+ export declare function parseOperations({ handlers, baseResponse, content }: {
11
+ handlers: HandlerSpec[];
12
+ baseResponse: Response;
13
+ content?: unknown;
14
+ }): Record<string, Array<Operation>>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.parseOperations = void 0;
15
+ var expand_operation_1 = require("../expand-operation");
16
+ /**
17
+ * @param root0
18
+ * @param root0.handlers
19
+ * @param root0.response
20
+ * @param root0.baseResponse
21
+ * @param root0.content
22
+ */
23
+ function parseOperations(_a) {
24
+ var e_1, _b, e_2, _c, e_3, _d, e_4, _e;
25
+ var handlers = _a.handlers, baseResponse = _a.baseResponse, content = _a.content;
26
+ var operations = [];
27
+ var stop = false;
28
+ try {
29
+ for (var handlers_1 = __values(handlers), handlers_1_1 = handlers_1.next(); !handlers_1_1.done; handlers_1_1 = handlers_1.next()) {
30
+ var handler = handlers_1_1.value;
31
+ // TODO only call handers for the current media type
32
+ var handledOperations = handler.handler(baseResponse, content, function () {
33
+ stop = true;
34
+ });
35
+ if (handledOperations) {
36
+ try {
37
+ for (var handledOperations_1 = (e_2 = void 0, __values(handledOperations)), handledOperations_1_1 = handledOperations_1.next(); !handledOperations_1_1.done; handledOperations_1_1 = handledOperations_1.next()) {
38
+ var operation = handledOperations_1_1.value;
39
+ operations.push(operation);
40
+ }
41
+ }
42
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
43
+ finally {
44
+ try {
45
+ if (handledOperations_1_1 && !handledOperations_1_1.done && (_c = handledOperations_1.return)) _c.call(handledOperations_1);
46
+ }
47
+ finally { if (e_2) throw e_2.error; }
48
+ }
49
+ }
50
+ if (stop) {
51
+ break;
52
+ }
53
+ }
54
+ }
55
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
56
+ finally {
57
+ try {
58
+ if (handlers_1_1 && !handlers_1_1.done && (_b = handlers_1.return)) _b.call(handlers_1);
59
+ }
60
+ finally { if (e_1) throw e_1.error; }
61
+ }
62
+ var expandedOperations = {};
63
+ try {
64
+ for (var operations_1 = __values(operations), operations_1_1 = operations_1.next(); !operations_1_1.done; operations_1_1 = operations_1.next()) {
65
+ var operation = operations_1_1.value;
66
+ var expanded = (0, expand_operation_1.expandOperation)(operation);
67
+ try {
68
+ for (var expanded_1 = (e_4 = void 0, __values(expanded)), expanded_1_1 = expanded_1.next(); !expanded_1_1.done; expanded_1_1 = expanded_1.next()) {
69
+ var operation_1 = expanded_1_1.value;
70
+ var anchor = operation_1.anchor || '';
71
+ expandedOperations[anchor] || (expandedOperations[anchor] = []);
72
+ expandedOperations[anchor].push(operation_1);
73
+ }
74
+ }
75
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
76
+ finally {
77
+ try {
78
+ if (expanded_1_1 && !expanded_1_1.done && (_e = expanded_1.return)) _e.call(expanded_1);
79
+ }
80
+ finally { if (e_4) throw e_4.error; }
81
+ }
82
+ }
83
+ }
84
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
85
+ finally {
86
+ try {
87
+ if (operations_1_1 && !operations_1_1.done && (_d = operations_1.return)) _d.call(operations_1);
88
+ }
89
+ finally { if (e_3) throw e_3.error; }
90
+ }
91
+ return expandedOperations;
92
+ }
93
+ exports.parseOperations = parseOperations;
94
+ //# sourceMappingURL=parse-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-operations.js","sourceRoot":"","sources":["../../src/util/parse-operations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,wDAAqD;AAErD;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,EAI/B;;QAJiC,QAAQ,cAAA,EAAE,YAAY,kBAAA,EAAE,OAAO,aAAA;IAK/D,IAAM,UAAU,GAAqB,EAAE,CAAA;IACvC,IAAI,IAAI,GAAG,KAAK,CAAA;;QAChB,KAAsB,IAAA,aAAA,SAAA,QAAQ,CAAA,kCAAA,wDAAE;YAA3B,IAAM,OAAO,qBAAA;YAChB,oDAAoD;YACpD,IAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE;gBAC/D,IAAI,GAAG,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;YACF,IAAI,iBAAiB,EAAE;;oBACrB,KAAwB,IAAA,qCAAA,SAAA,iBAAiB,CAAA,CAAA,oDAAA,mFAAE;wBAAtC,IAAM,SAAS,8BAAA;wBAClB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;qBAC3B;;;;;;;;;aACF;YACD,IAAI,IAAI,EAAE;gBACR,MAAK;aACN;SACF;;;;;;;;;IAED,IAAM,kBAAkB,GAAqC,EAAE,CAAA;;QAC/D,KAAwB,IAAA,eAAA,SAAA,UAAU,CAAA,sCAAA,8DAAE;YAA/B,IAAM,SAAS,uBAAA;YAClB,IAAM,QAAQ,GAAG,IAAA,kCAAe,EAAC,SAAS,CAAC,CAAA;;gBAC3C,KAAwB,IAAA,4BAAA,SAAA,QAAQ,CAAA,CAAA,kCAAA,wDAAE;oBAA7B,IAAM,WAAS,qBAAA;oBAClB,IAAM,MAAM,GAAG,WAAS,CAAC,MAAM,IAAI,EAAE,CAAA;oBACrC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;oBAC/D,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAS,CAAC,CAAA;iBAC3C;;;;;;;;;SACF;;;;;;;;;IAGD,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAlCD,0CAkCC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param accept
3
+ * @param supportedContentTypes
4
+ * @param defaultType
5
+ */
6
+ export function preferredContentType(accept: any, supportedContentTypes: any, defaultType: any): any;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preferredContentType = void 0;
4
+ var parse_accept_1 = require("./parse-accept");
5
+ /**
6
+ * @param accept
7
+ * @param supportedContentTypes
8
+ * @param defaultType
9
+ */
10
+ function preferredContentType(accept, supportedContentTypes, defaultType) {
11
+ if (accept) {
12
+ var acceptable = (0, parse_accept_1.parseAccept)(accept);
13
+ var acceptableMediaTypes = acceptable.find(function (row) {
14
+ return supportedContentTypes.includes(row.type);
15
+ });
16
+ return acceptableMediaTypes.type;
17
+ }
18
+ else {
19
+ return defaultType;
20
+ }
21
+ }
22
+ exports.preferredContentType = preferredContentType;
23
+ //# sourceMappingURL=preferred-content-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferred-content-type.js","sourceRoot":"","sources":["../../src/util/preferred-content-type.js"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,MAAM,EACN,qBAAqB,EACrB,WAAW;IAEX,IAAI,MAAM,EAAE;QACV,IAAM,UAAU,GAAG,IAAA,0BAAW,EAAC,MAAM,CAAC,CAAA;QAEtC,IAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC,UAAA,GAAG;YAC9C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,OAAO,oBAAoB,CAAC,IAAI,CAAA;KACjC;SAAM;QACL,OAAO,WAAW,CAAA;KACnB;AACH,CAAC;AAhBD,oDAgBC"}
@@ -0,0 +1 @@
1
+ export const URI: any;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.URI = void 0;
4
+ /* eslint-disable unicorn/prefer-ternary */
5
+ var uri_template_lite_1 = require("uri-template-lite");
6
+ /**
7
+ *
8
+ */
9
+ function getUri() {
10
+ /* istanbul ignore next: it's complicated */
11
+ if (typeof window === 'undefined') {
12
+ // eslint-disable-next-line unicorn/prefer-module
13
+ return uri_template_lite_1.URI || global.URI;
14
+ }
15
+ else {
16
+ return window.URI || uri_template_lite_1.URI;
17
+ }
18
+ }
19
+ /**
20
+ *
21
+ */
22
+ function getExtendedUri() {
23
+ var base = getUri();
24
+ base.parameters = function (url) {
25
+ var template = new exports.URI.Template(url);
26
+ return template.match(url);
27
+ };
28
+ return base;
29
+ }
30
+ exports.URI = getExtendedUri();
31
+ //# sourceMappingURL=uri-template-lite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uri-template-lite.js","sourceRoot":"","sources":["../../src/util/uri-template-lite.js"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,uDAAkD;AAGlD;;GAEG;AACH,SAAS,MAAM;IACb,4CAA4C;IAC5C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,iDAAiD;QACjD,OAAO,uBAAO,IAAI,MAAM,CAAC,GAAG,CAAA;KAC7B;SAAM;QACL,OAAO,MAAM,CAAC,GAAG,IAAI,uBAAO,CAAA;KAC7B;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,IAAM,IAAI,GAAG,MAAM,EAAE,CAAA;IACrB,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG;QAC7B,IAAM,QAAQ,GAAG,IAAI,WAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACtC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAGY,QAAA,GAAG,GAAG,cAAc,EAAE,CAAA"}