@mountainpass/waychaser 4.0.36 → 5.0.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/CHANGELOG.md +18 -0
- package/README.md +37 -26
- package/dist/augment-options.d.ts +29 -0
- package/dist/augment-options.js +70 -0
- package/dist/augment-options.js.map +1 -0
- package/dist/expand-operation.d.ts +5 -0
- package/dist/expand-operation.js +78 -0
- package/dist/expand-operation.js.map +1 -0
- package/dist/handlers/hal/de-curie.d.ts +9 -0
- package/dist/handlers/hal/de-curie.js +50 -0
- package/dist/handlers/hal/de-curie.js.map +1 -0
- package/dist/handlers/hal/hal-handler.d.ts +6 -0
- package/dist/handlers/hal/hal-handler.js +91 -0
- package/dist/handlers/hal/hal-handler.js.map +1 -0
- package/dist/handlers/hal/map-hal-link-to-operation.d.ts +7 -0
- package/dist/handlers/hal/map-hal-link-to-operation.js +40 -0
- package/dist/handlers/hal/map-hal-link-to-operation.js.map +1 -0
- package/dist/handlers/link-header/link-header-handler.d.ts +7 -0
- package/dist/handlers/link-header/link-header-handler.js +83 -0
- package/dist/handlers/link-header/link-header-handler.js.map +1 -0
- package/dist/handlers/location-header/location-header-handler.d.ts +5 -0
- package/dist/handlers/location-header/location-header-handler.js +16 -0
- package/dist/handlers/location-header/location-header-handler.js.map +1 -0
- package/dist/handlers/siren/map-siren-action-to-operation.d.ts +6 -0
- package/dist/handlers/siren/map-siren-action-to-operation.js +63 -0
- package/dist/handlers/siren/map-siren-action-to-operation.js.map +1 -0
- package/dist/handlers/siren/map-siren-link-to-operation.d.ts +13 -0
- package/dist/handlers/siren/map-siren-link-to-operation.js +43 -0
- package/dist/handlers/siren/map-siren-link-to-operation.js.map +1 -0
- package/dist/handlers/siren/siren-action-handler.d.ts +5 -0
- package/dist/handlers/siren/siren-action-handler.js +46 -0
- package/dist/handlers/siren/siren-action-handler.js.map +1 -0
- package/dist/handlers/siren/siren-handler.d.ts +6 -0
- package/dist/handlers/siren/siren-handler.js +48 -0
- package/dist/handlers/siren/siren-handler.js.map +1 -0
- package/dist/handlers/siren/siren-link-handler.d.ts +6 -0
- package/dist/handlers/siren/siren-link-handler.js +59 -0
- package/dist/handlers/siren/siren-link-handler.js.map +1 -0
- package/dist/operation-array.d.ts +12 -0
- package/dist/operation-array.js +110 -0
- package/dist/operation-array.js.map +1 -0
- package/dist/operation.d.ts +24 -0
- package/dist/operation.js +304 -0
- package/dist/operation.js.map +1 -0
- package/dist/util/media-types.d.ts +5 -0
- package/dist/util/media-types.js +8 -0
- package/dist/util/media-types.js.map +1 -0
- package/dist/util/method-can-have-body.d.ts +4 -0
- package/dist/util/method-can-have-body.js +11 -0
- package/dist/util/method-can-have-body.js.map +1 -0
- package/dist/util/parse-accept.d.ts +6 -0
- package/dist/util/parse-accept.js +85 -0
- package/dist/util/parse-accept.js.map +1 -0
- package/dist/util/parse-operations.d.ts +14 -0
- package/dist/util/parse-operations.js +94 -0
- package/dist/util/parse-operations.js.map +1 -0
- package/dist/util/preferred-content-type.d.ts +6 -0
- package/dist/util/preferred-content-type.js +23 -0
- package/dist/util/preferred-content-type.js.map +1 -0
- package/dist/util/uri-template-lite.d.ts +1 -0
- package/dist/util/uri-template-lite.js +31 -0
- package/dist/util/uri-template-lite.js.map +1 -0
- package/dist/waychaser.d.ts +105 -0
- package/dist/waychaser.es.js +2327 -0
- package/dist/waychaser.es.min.js +15 -0
- package/dist/waychaser.js +583 -4415
- package/dist/waychaser.js.map +1 -1
- package/package.json +36 -63
- package/dist/waychaser.cjs +0 -17700
- package/dist/waychaser.cjs.map +0 -1
- package/dist/waychaser.min.js +0 -7
- package/dist/waychaser.min.js.map +0 -1
- package/dist/waychaser.mjs +0 -14
- package/dist/waychaser.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## 5.0.0 (2022-06-20)
|
|
2
|
+
|
|
3
|
+
* ci(test): removing node 10.x tests ([a4aae3b](https://github.com/mountain-pass/waychaser/commit/a4aae3b))
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## <small>4.0.38 (2021-11-15)</small>
|
|
8
|
+
|
|
9
|
+
* fix(cjs): fixed import issues ([595240b](https://github.com/mountain-pass/waychaser/commit/595240b))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## <small>4.0.37 (2021-11-15)</small>
|
|
14
|
+
|
|
15
|
+
* Merge pull request #474 from mountain-pass/dependabot/npm_and_yarn/eslint-plugin-unicorn-35.0.0 ([e65b163](https://github.com/mountain-pass/waychaser/commit/e65b163)), closes [#474](https://github.com/mountain-pass/waychaser/issues/474)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
1
19
|
## <small>4.0.36 (2021-11-15)</small>
|
|
2
20
|
|
|
3
21
|
* Merge pull request #449 from mountain-pass/dependabot/npm_and_yarn/rollup-2.55.0 ([71f0e34](https://github.com/mountain-pass/waychaser/commit/71f0e34)), closes [#449](https://github.com/mountain-pass/waychaser/issues/449)
|
package/README.md
CHANGED
|
@@ -5,30 +5,11 @@ Client library for HATEOAS level 3 RESTful APIs that provide hypermedia controls
|
|
|
5
5
|
- [HAL](https://tools.ietf.org/html/draft-kelly-json-hal-08)
|
|
6
6
|
- [Siren](https://github.com/kevinswiber/siren)
|
|
7
7
|
|
|
8
|
-
This [isomorphic](https://en.wikipedia.org/wiki/Isomorphic_JavaScript) library is compatible with Node.js
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
[](https://github.com/mountain-pass/waychaser/actions?query=workflow%3ABuild) [](https://automate.browserstack.com/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25)
|
|
15
|
-
|
|
16
|
-
[](https://github.com/mountain-pass/waychaser/issues) [](https://github.com/mountain-pass/waychaser/pulls)
|
|
17
|
-
|
|
18
|
-
[](https://www.codacy.com/gh/mountain-pass/waychaser/dashboard?utm_source=github.com&utm_medium=referral&utm_content=mountain-pass/waychaser&utm_campaign=Badge_Grade) [](https://www.codacy.com/gh/mountain-pass/waychaser/dashboard?utm_source=github.com&utm_medium=referral&utm_content=mountain-pass/waychaser&utm_campaign=Badge_Coverage)
|
|
19
|
-
|
|
20
|
-
[](https://snyk.io/test/github/mountain-pass/waychaser) [](https://snyk.io/test/npm/@mountainpass/waychaser/4.0.36)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
[](https://conventionalcommits.org) [](https://github.com/prettier/prettier)
|
|
24
|
-
|
|
25
|
-

|
|
26
|
-
|
|
27
|
-
[](https://github.com/standard/standard)
|
|
28
|
-
|
|
29
|
-
| <img src="https://nodejs.org/static/images/logos/nodejs-new-pantone-black.svg" alt="Node.js" width="24px" height="24px" /><br/>Node.js | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" /><br/>Chrome](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22chrome%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" /><br/>Firefox](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22firefox%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" /><br/>Safari](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22safari%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" /><br/>Edge](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22edge%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari-ios/safari-ios_48x48.png" alt="iOS" width="24px" height="24px" /><br/>iOS](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?oses=[{%22os%22:%22ios%22}]) | [<img src="https://source.android.com/setup/images/Android_symbol_green_RGB.svg" alt="Android" width="24px" height="24px" /><br/>Android](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?oses=[{%22os%22:%22android%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png" alt="IE" width="24px" height="24px" /><br/>IE](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22ie%22}]) |
|
|
30
|
-
| -------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
31
|
-
| 10.x, 12.x, 14.x | latest version | latest version | latest version | latest version | latest version | latest version | 11 |
|
|
8
|
+
This [isomorphic](https://en.wikipedia.org/wiki/Isomorphic_JavaScript) library is compatible with Node.js 12.x, 14.x and 16.x, Chrome, Firefox, Safari and Edge.
|
|
9
|
+
|
|
10
|
+
| <img src="https://nodejs.org/static/images/logos/nodejs-new-pantone-black.svg" alt="Node.js" width="24px" height="24px" /><br/>Node.js | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" /><br/>Chrome](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22chrome%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" /><br/>Firefox](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22firefox%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" /><br/>Safari](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22safari%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" /><br/>Edge](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?browsers=[{%22browser%22:%22edge%22}]) | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari-ios/safari-ios_48x48.png" alt="iOS" width="24px" height="24px" /><br/>iOS](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?oses=[{%22os%22:%22ios%22}]) | [<img src="https://source.android.com/setup/images/Android_symbol_green_RGB.svg" alt="Android" width="24px" height="24px" /><br/>Android](https://automate.browserstack.com/dashboard/v2/public-build/M2lUc2Q3VFJicFR2c0N6Y0JvZE5oSXAvYlpUQ1ZPMXgxalpUK2ZtNTdPcz0tLVR3QzU5TXllbEZnemhqK2Z5VEpVQ2c9PQ==--8a61c301655735baed333d4f305980a13ef32c25?oses=[{%22os%22:%22android%22}]) |
|
|
11
|
+
| -------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
12
|
+
| 12.x, 14.x, 16.x | latest version | latest version | latest version | latest version | latest version | latest version |
|
|
32
13
|
|
|
33
14
|
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fmountain-pass%2Fwaychaser?ref=badge_large)
|
|
34
15
|
|
|
@@ -62,6 +43,7 @@ This [isomorphic](https://en.wikipedia.org/wiki/Isomorphic_JavaScript) library i
|
|
|
62
43
|
- [Invoking missing operations](#invoking-missing-operations)
|
|
63
44
|
- [Handling location headers](#handling-location-headers)
|
|
64
45
|
- [Upgrading from 3.x to 4.x](#upgrading-from-3x-to-4x)
|
|
46
|
+
- [Problem vs WayChaserResponse](#problem-vs-waychaserresponse)
|
|
65
47
|
|
|
66
48
|
# Usage
|
|
67
49
|
|
|
@@ -89,7 +71,7 @@ try {
|
|
|
89
71
|
```html
|
|
90
72
|
<script
|
|
91
73
|
type="text/javascript"
|
|
92
|
-
src="https://unpkg.com/@mountainpass/waychaser@
|
|
74
|
+
src="https://unpkg.com/@mountainpass/waychaser@5.0.0"
|
|
93
75
|
></script>
|
|
94
76
|
|
|
95
77
|
...
|
|
@@ -663,4 +645,33 @@ updated resource in the response.
|
|
|
663
645
|
# Upgrading from 3.x to 4.x
|
|
664
646
|
|
|
665
647
|
Previously WayChaser provided a default instance via the `waychaser` export. This is no longer the case and you will
|
|
666
|
-
need to create your own instance using `new WayChaser()`
|
|
648
|
+
need to create your own instance using `new WayChaser()`
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
## Problem vs WayChaserResponse
|
|
652
|
+
|
|
653
|
+
Problems can be client side or server side
|
|
654
|
+
|
|
655
|
+
Client side
|
|
656
|
+
- fetch throws exception - No Response
|
|
657
|
+
- can't parse response - Has Response
|
|
658
|
+
- can parse response, but the type predicate fails - Has Response
|
|
659
|
+
|
|
660
|
+
Server side
|
|
661
|
+
- server returns problem document - Has Response
|
|
662
|
+
|
|
663
|
+
Response may include links that tell the client how to resolve,
|
|
664
|
+
so we want it to be a WayChaserResponse
|
|
665
|
+
|
|
666
|
+
Options:
|
|
667
|
+
1. invoke returns WayChaserResponse with problem or content
|
|
668
|
+
- client uses content !== undefined && problem === undefined to check if the were not problems
|
|
669
|
+
- unclear if we got a problem or not
|
|
670
|
+
2. invoke returns a clean WayChaserResponse with content or a WayChaserProblem with a problem document
|
|
671
|
+
- client would need to use instanceOf to differentiate
|
|
672
|
+
- clean WayChaserResponse has a response and content (which could be expectedly undefined)
|
|
673
|
+
- WayChaserProblem has a problem document and may or may not have a response
|
|
674
|
+
3. invoke returns a clean WayChaserResponse or a ProblemDocument with optional waychaser response as extention
|
|
675
|
+
- client would need to use instanceOf to differentiate
|
|
676
|
+
- if server returns PD, then do we wrap the PD? Feels ugly
|
|
677
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { WayChaserOptions } from './waychaser';
|
|
2
|
+
/**
|
|
3
|
+
* @param baseOptions
|
|
4
|
+
* @param additionalOptions
|
|
5
|
+
*/
|
|
6
|
+
export declare function augmentOptions<BaseContent, AdditionalContent>(baseOptions: WayChaserOptions<BaseContent>, additionalOptions?: Partial<WayChaserOptions<AdditionalContent>>): {
|
|
7
|
+
defaultHandlers: import("./waychaser").HandlerSpec[];
|
|
8
|
+
handlers: never[];
|
|
9
|
+
headers: {};
|
|
10
|
+
body?: BodyInit | null | undefined;
|
|
11
|
+
cache?: RequestCache | undefined;
|
|
12
|
+
credentials?: RequestCredentials | undefined;
|
|
13
|
+
integrity?: string | undefined;
|
|
14
|
+
keepalive?: boolean | undefined;
|
|
15
|
+
method?: string | undefined;
|
|
16
|
+
mode?: RequestMode | undefined;
|
|
17
|
+
redirect?: RequestRedirect | undefined;
|
|
18
|
+
referrer?: string | undefined;
|
|
19
|
+
referrerPolicy?: ReferrerPolicy | undefined;
|
|
20
|
+
signal?: AbortSignal | null | undefined;
|
|
21
|
+
window?: null | undefined;
|
|
22
|
+
fetch: typeof fetch;
|
|
23
|
+
preInterceptors: ((uriOrRequest: any, updateOptions: any, stopper: any) => void)[];
|
|
24
|
+
postInterceptors: (<InterceptorContent>(response: import("./waychaser").WayChaserResponse<InterceptorContent>, stop: import("./waychaser").Stopper) => void)[];
|
|
25
|
+
postErrorInterceptors: ((error: Error | import("./waychaser").WayChaserProblem, stopper: import("./waychaser").Stopper) => void)[];
|
|
26
|
+
contentParser: (response: Response) => Promise<unknown>;
|
|
27
|
+
parameters?: Record<string, unknown> | undefined;
|
|
28
|
+
validator?: import("./waychaser").Validator<AdditionalContent> | import("./waychaser").Validator<BaseContent> | undefined;
|
|
29
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
25
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
26
|
+
if (!m) return o;
|
|
27
|
+
var i = m.call(o), r, ar = [], e;
|
|
28
|
+
try {
|
|
29
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
30
|
+
}
|
|
31
|
+
catch (error) { e = { error: error }; }
|
|
32
|
+
finally {
|
|
33
|
+
try {
|
|
34
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
35
|
+
}
|
|
36
|
+
finally { if (e) throw e.error; }
|
|
37
|
+
}
|
|
38
|
+
return ar;
|
|
39
|
+
};
|
|
40
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
41
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
42
|
+
if (ar || !(i in from)) {
|
|
43
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
44
|
+
ar[i] = from[i];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.augmentOptions = void 0;
|
|
51
|
+
var waychaser_1 = require("./waychaser");
|
|
52
|
+
/**
|
|
53
|
+
* @param baseOptions
|
|
54
|
+
* @param additionalOptions
|
|
55
|
+
*/
|
|
56
|
+
function augmentOptions(baseOptions, additionalOptions) {
|
|
57
|
+
var baseHandlers = baseOptions.handlers, baseDefaultHandlers = baseOptions.defaultHandlers, baseHeaders = baseOptions.headers, baseOther = __rest(baseOptions, ["handlers", "defaultHandlers", "headers"]);
|
|
58
|
+
var _a = additionalOptions || {}, additionalHandlers = _a.handlers, additionalDefaultHandlers = _a.defaultHandlers, additionalHeaders = _a.headers, additionalOther = __rest(_a, ["handlers", "defaultHandlers", "headers"]);
|
|
59
|
+
// if additional has default, don't use base default
|
|
60
|
+
// if additional has handlers, don;'t use base handlers
|
|
61
|
+
// augment({ dh: [XXX] }, { h: [YYY] }) => { h: [], dh: [YYY, XXX] }
|
|
62
|
+
// augment({ dh: [XXX] }, { h: [YYY], dh: [] }) => { h: [], dh: [YYY] }
|
|
63
|
+
// augment({ dh: [YYY, XXX] }, { h: [ZZZ] }) => { h: [], dh: [ZZZ, YYY, XXX] }
|
|
64
|
+
// augment({ dh: [YYY, XXX] }, { h: [ZZZ], dh: [] }) => { h: [], dh: [ZZZ] }
|
|
65
|
+
var mergedHandlers = (0, waychaser_1.sortHandlers)(__spreadArray(__spreadArray([], __read((additionalHandlers || baseHandlers || [])), false), __read((additionalDefaultHandlers || baseDefaultHandlers || [])), false));
|
|
66
|
+
var finalOptions = __assign(__assign(__assign({}, baseOther), additionalOther), { defaultHandlers: mergedHandlers, handlers: [], headers: __assign(__assign({}, baseHeaders), additionalHeaders) });
|
|
67
|
+
return finalOptions;
|
|
68
|
+
}
|
|
69
|
+
exports.augmentOptions = augmentOptions;
|
|
70
|
+
//# sourceMappingURL=augment-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augment-options.js","sourceRoot":"","sources":["../src/augment-options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA4D;AAE5D;;;GAGG;AACH,SAAgB,cAAc,CAC5B,WAA0C,EAC1C,iBAAgE;IAG9D,IAAU,YAAY,GAIpB,WAAW,SAJS,EACL,mBAAmB,GAGlC,WAAW,gBAHuB,EAC3B,WAAW,GAElB,WAAW,QAFO,EACjB,SAAS,UACV,WAAW,EALT,0CAKL,CADa,CACC;IACf,IAAM,KAKF,iBAAiB,IAAI,EAAE,EAJf,kBAAkB,cAAA,EACX,yBAAyB,qBAAA,EACjC,iBAAiB,aAAA,EACvB,eAAe,cAJd,0CAKL,CAA0B,CAAA;IAE3B,oDAAoD;IACpD,uDAAuD;IACvD,oEAAoE;IACpE,uEAAuE;IACvE,8EAA8E;IAC9E,4EAA4E;IAC5E,IAAM,cAAc,GAAG,IAAA,wBAAY,yCAC9B,CAAC,kBAAkB,IAAI,YAAY,IAAI,EAAE,CAAC,kBAC1C,CAAC,yBAAyB,IAAI,mBAAmB,IAAI,EAAE,CAAC,UAC3D,CAAA;IAEF,IAAM,YAAY,kCACb,SAAS,GACT,eAAe,KAClB,eAAe,EAAE,cAAc,EAC/B,QAAQ,EAAE,EAAE,EACZ,OAAO,wBACF,WAAW,GACX,iBAAiB,IAEvB,CAAA;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAvCD,wCAuCC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
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.expandOperation = void 0;
|
|
15
|
+
var operation_1 = require("./operation");
|
|
16
|
+
/**
|
|
17
|
+
* @param operation
|
|
18
|
+
*/
|
|
19
|
+
function expandOperation(operation) {
|
|
20
|
+
var e_1, _a, e_2, _b;
|
|
21
|
+
var expandedOperations = [];
|
|
22
|
+
var rangeRegex = /{\[(\d+)..(\d+)]}/;
|
|
23
|
+
var originalUrl = operation.uri.toString();
|
|
24
|
+
var matches = originalUrl.match(rangeRegex);
|
|
25
|
+
if (matches) {
|
|
26
|
+
for (var index = Number.parseInt(matches[1]); index <= Number.parseInt(matches[2]); ++index) {
|
|
27
|
+
var newOp = new operation_1.Operation(Object.assign(operation, {
|
|
28
|
+
uri: originalUrl.replace(rangeRegex, index.toFixed(0))
|
|
29
|
+
}));
|
|
30
|
+
var thisExpandedOperations = expandOperation(newOp);
|
|
31
|
+
try {
|
|
32
|
+
for (var thisExpandedOperations_1 = (e_1 = void 0, __values(thisExpandedOperations)), thisExpandedOperations_1_1 = thisExpandedOperations_1.next(); !thisExpandedOperations_1_1.done; thisExpandedOperations_1_1 = thisExpandedOperations_1.next()) {
|
|
33
|
+
var operation_2 = thisExpandedOperations_1_1.value;
|
|
34
|
+
expandedOperations.push(operation_2);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
38
|
+
finally {
|
|
39
|
+
try {
|
|
40
|
+
if (thisExpandedOperations_1_1 && !thisExpandedOperations_1_1.done && (_a = thisExpandedOperations_1.return)) _a.call(thisExpandedOperations_1);
|
|
41
|
+
}
|
|
42
|
+
finally { if (e_1) throw e_1.error; }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
var originalAnchor = operation.anchor;
|
|
48
|
+
var anchorMatches = originalAnchor === null || originalAnchor === void 0 ? void 0 : originalAnchor.match(rangeRegex);
|
|
49
|
+
if (originalAnchor &&
|
|
50
|
+
anchorMatches) {
|
|
51
|
+
for (var index = Number.parseInt(anchorMatches[1]); index <= Number.parseInt(anchorMatches[2]); ++index) {
|
|
52
|
+
var newOp = new operation_1.Operation(Object.assign(operation, {
|
|
53
|
+
anchor: originalAnchor.replace(rangeRegex, index.toFixed(0))
|
|
54
|
+
}));
|
|
55
|
+
var thisExpandedOperations = expandOperation(newOp);
|
|
56
|
+
try {
|
|
57
|
+
for (var thisExpandedOperations_2 = (e_2 = void 0, __values(thisExpandedOperations)), thisExpandedOperations_2_1 = thisExpandedOperations_2.next(); !thisExpandedOperations_2_1.done; thisExpandedOperations_2_1 = thisExpandedOperations_2.next()) {
|
|
58
|
+
var operation_3 = thisExpandedOperations_2_1.value;
|
|
59
|
+
expandedOperations.push(operation_3);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
63
|
+
finally {
|
|
64
|
+
try {
|
|
65
|
+
if (thisExpandedOperations_2_1 && !thisExpandedOperations_2_1.done && (_b = thisExpandedOperations_2.return)) _b.call(thisExpandedOperations_2);
|
|
66
|
+
}
|
|
67
|
+
finally { if (e_2) throw e_2.error; }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
expandedOperations.push(operation);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return expandedOperations;
|
|
76
|
+
}
|
|
77
|
+
exports.expandOperation = expandOperation;
|
|
78
|
+
//# sourceMappingURL=expand-operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand-operation.js","sourceRoot":"","sources":["../src/expand-operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yCAAuC;AAEvC;;GAEG;AACH,SAAgB,eAAe,CAAE,SAAoB;;IACnD,IAAM,kBAAkB,GAAgB,EAAE,CAAA;IAC1C,IAAM,UAAU,GAAG,mBAAmB,CAAA;IACtC,IAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC5C,IAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,OAAO,EAAE;QACX,KACE,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACvC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACpC,EAAE,KAAK,EACP;YACA,IAAM,KAAK,GAAG,IAAI,qBAAS,CACzB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;gBACvB,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACvD,CAAC,CACH,CAAA;YACD,IAAM,sBAAsB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;;gBACrD,KAAwB,IAAA,0CAAA,SAAA,sBAAsB,CAAA,CAAA,8DAAA,kGAAE;oBAA3C,IAAM,WAAS,mCAAA;oBAClB,kBAAkB,CAAC,IAAI,CAAC,WAAS,CAAC,CAAA;iBACnC;;;;;;;;;SACF;KACF;SAAM;QACL,IAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAA;QACvC,IAAM,aAAa,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAC,UAAU,CAAC,CAAA;QACvD,IAAI,cAAc;YAChB,aAAa,EAAE;YACf,KACE,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAC7C,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAC1C,EAAE,KAAK,EACP;gBACA,IAAM,KAAK,GAAG,IAAI,qBAAS,CACzB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;oBACvB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC7D,CAAC,CACH,CAAA;gBACD,IAAM,sBAAsB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;;oBACrD,KAAwB,IAAA,0CAAA,SAAA,sBAAsB,CAAA,CAAA,8DAAA,kGAAE;wBAA3C,IAAM,WAAS,mCAAA;wBAClB,kBAAkB,CAAC,IAAI,CAAC,WAAS,CAAC,CAAA;qBACnC;;;;;;;;;aACF;SACF;aAAM;YACL,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACnC;KACF;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AA9CD,0CA8CC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.deCurie = void 0;
|
|
20
|
+
var uri_template_lite_1 = require("../../util/uri-template-lite");
|
|
21
|
+
/**
|
|
22
|
+
* @param relationship
|
|
23
|
+
* @param curies
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* @param relationship
|
|
27
|
+
* @param curies
|
|
28
|
+
*/
|
|
29
|
+
function deCurie(relationship, curies) {
|
|
30
|
+
// we can either look in the rel for ':' and try to convert if it exists, but then we'll be trying to covert almost
|
|
31
|
+
// everything because none standard rels typically start with 'http:' or 'https:'.
|
|
32
|
+
// otherwise we can iterate over all the curies and try to replace. Seems inefficient.
|
|
33
|
+
// Going with option 1 for now.
|
|
34
|
+
// ⚠️ NOTE TO SELF: never use 'http' or 'https' as a curie name or hilarity will not ensue 😬
|
|
35
|
+
// ⚠️ ALSO NOTE TO SELF: never use ':' in a curie name or hilarity will not ensue 😬
|
|
36
|
+
// I'm going to assume that if there are multiple ':' characters, then we ignore all but the first
|
|
37
|
+
var splitRelationship = relationship.split(/:(.+)/);
|
|
38
|
+
if (splitRelationship.length > 1) {
|
|
39
|
+
var _a = __read(splitRelationship, 2), curieName = _a[0], curieRemainder = _a[1];
|
|
40
|
+
var rval = curies[curieName]
|
|
41
|
+
? uri_template_lite_1.URI.expand(curies[curieName], { rel: curieRemainder })
|
|
42
|
+
: relationship;
|
|
43
|
+
return rval;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return relationship;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.deCurie = deCurie;
|
|
50
|
+
//# sourceMappingURL=de-curie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de-curie.js","sourceRoot":"","sources":["../../../src/handlers/hal/de-curie.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,kEAAkD;AAElD;;;GAGG;AAEH;;;GAGG;AACH,SAAgB,OAAO,CAAE,YAAY,EAAE,MAAM;IAC3C,mHAAmH;IACnH,kFAAkF;IAClF,sFAAsF;IACtF,+BAA+B;IAC/B,6FAA6F;IAC7F,oFAAoF;IACpF,kGAAkG;IAClG,IAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,IAAA,KAAA,OAA8B,iBAAiB,IAAA,EAA9C,SAAS,QAAA,EAAE,cAAc,QAAqB,CAAA;QACrD,IAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;YAC5B,CAAC,CAAC,uBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;YACxD,CAAC,CAAC,YAAY,CAAA;QAChB,OAAO,IAAI,CAAA;KACZ;SAAM;QACL,OAAO,YAAY,CAAA;KACpB;AACH,CAAC;AAlBD,0BAkBC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.halHandler = void 0;
|
|
18
|
+
var media_types_1 = __importDefault(require("../../util/media-types"));
|
|
19
|
+
var map_hal_link_to_operation_1 = require("./map-hal-link-to-operation");
|
|
20
|
+
/**
|
|
21
|
+
* @param response
|
|
22
|
+
* @param content
|
|
23
|
+
*/
|
|
24
|
+
function halHandler(response, content) {
|
|
25
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
26
|
+
var _d;
|
|
27
|
+
var operations = [];
|
|
28
|
+
var contentType = (_d = response.headers.get('content-type')) === null || _d === void 0 ? void 0 : _d.split(';');
|
|
29
|
+
if ((contentType === null || contentType === void 0 ? void 0 : contentType[0]) === media_types_1.default.HAL &&
|
|
30
|
+
content &&
|
|
31
|
+
typeof content === 'object' &&
|
|
32
|
+
'_links' in content) {
|
|
33
|
+
var body = content;
|
|
34
|
+
// if there are curies in the Hal Links, we need to load them first, so we can expand them wherever they are used
|
|
35
|
+
// we also want to convert them to a map, for easy lookup
|
|
36
|
+
var curies = {};
|
|
37
|
+
if (body._links.curies) {
|
|
38
|
+
if (Array.isArray(body._links.curies)) {
|
|
39
|
+
try {
|
|
40
|
+
for (var _e = __values(body._links.curies), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
41
|
+
var curie = _f.value;
|
|
42
|
+
curies[curie.name] = curie.href;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e_1) throw e_1.error; }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
curies[body._links.curies.name] = body._links.curies.href;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
for (var _g = __values(Object.keys(body._links).filter(function (relationship) { return relationship !== 'curies'; })), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
59
|
+
var key = _h.value;
|
|
60
|
+
if (Array.isArray(body._links[key])) {
|
|
61
|
+
try {
|
|
62
|
+
for (var _j = (e_3 = void 0, __values(body._links[key])), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
63
|
+
var link = _k.value;
|
|
64
|
+
operations.push((0, map_hal_link_to_operation_1.mapHalLinkToOperation)(key, link, curies));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
68
|
+
finally {
|
|
69
|
+
try {
|
|
70
|
+
if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
|
|
71
|
+
}
|
|
72
|
+
finally { if (e_3) throw e_3.error; }
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
operations.push((0, map_hal_link_to_operation_1.mapHalLinkToOperation)(key, body._links[key], curies));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
81
|
+
finally {
|
|
82
|
+
try {
|
|
83
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
84
|
+
}
|
|
85
|
+
finally { if (e_2) throw e_2.error; }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return operations;
|
|
89
|
+
}
|
|
90
|
+
exports.halHandler = halHandler;
|
|
91
|
+
//# sourceMappingURL=hal-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hal-handler.js","sourceRoot":"","sources":["../../../src/handlers/hal/hal-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,uEAA+C;AAC/C,yEAAmE;AAUnE;;;GAGG;AACH,SAAgB,UAAU,CACxB,QAAkB,EAClB,OAAiB;;;IAEjB,IAAM,UAAU,GAAqB,EAAE,CAAA;IACvC,IAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IACpE,IACE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,CAAC,CAAC,MAAK,qBAAU,CAAC,GAAG;QACnC,OAAO;QACP,OAAO,OAAO,KAAK,QAAQ;QAC3B,QAAQ,IAAI,OAAO,EACnB;QACA,IAAM,IAAI,GAAG,OAOZ,CAAA;QAED,iHAAiH;QACjH,yDAAyD;QACzD,IAAM,MAAM,GAAG,EAAE,CAAA;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;;oBACrC,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA,gBAAA,4BAAE;wBAAnC,IAAM,KAAK,WAAA;wBACd,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;qBAChC;;;;;;;;;aACF;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAA;aAC1D;SACF;;YACD,KAAkB,IAAA,KAAA,SAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAA,YAAY,IAAI,OAAA,YAAY,KAAK,QAAQ,EAAzB,CAAyB,CAAC,CAAA,gBAAA,4BAAE;gBAAzF,IAAM,GAAG,WAAA;gBACZ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;;wBACnC,KAAmB,IAAA,oBAAA,SAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAmB,CAAA,CAAA,gBAAA,4BAAE;4BAAlD,IAAM,IAAI,WAAA;4BACb,UAAU,CAAC,IAAI,CAAC,IAAA,iDAAqB,EAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;yBAC1D;;;;;;;;;iBACF;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,IAAA,iDAAqB,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;iBACtE;aACF;;;;;;;;;KACF;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AA5CD,gCA4CC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.mapHalLinkToOperation = void 0;
|
|
26
|
+
var operation_1 = require("../../operation");
|
|
27
|
+
var de_curie_1 = require("./de-curie");
|
|
28
|
+
/**
|
|
29
|
+
* @param relationship
|
|
30
|
+
* @param link
|
|
31
|
+
* @param curies
|
|
32
|
+
*/
|
|
33
|
+
function mapHalLinkToOperation(relationship, link, curies) {
|
|
34
|
+
// we don't need to copy `templated` across, because when we invoke an operation, we always
|
|
35
|
+
// assume it's a template and expand it with the passed parameters
|
|
36
|
+
var href = link.href, templated = link.templated, otherProperties = __rest(link, ["href", "templated"]);
|
|
37
|
+
return new operation_1.Operation(__assign({ rel: (0, de_curie_1.deCurie)(relationship, curies), uri: href }, otherProperties));
|
|
38
|
+
}
|
|
39
|
+
exports.mapHalLinkToOperation = mapHalLinkToOperation;
|
|
40
|
+
//# sourceMappingURL=map-hal-link-to-operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-hal-link-to-operation.js","sourceRoot":"","sources":["../../../src/handlers/hal/map-hal-link-to-operation.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2C;AAC3C,uCAAoC;AAEpC;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM;IAC9D,2FAA2F;IAC3F,kEAAkE;IAC1D,IAAA,IAAI,GAAoC,IAAI,KAAxC,EAAE,SAAS,GAAyB,IAAI,UAA7B,EAAK,eAAe,UAAK,IAAI,EAA9C,qBAAuC,CAAF,CAAS;IACpD,OAAO,IAAI,qBAAS,YAAG,GAAG,EAAE,IAAA,kBAAO,EAAC,YAAY,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,IAAK,eAAe,EAAG,CAAA;AAC7F,CAAC;AALD,sDAKC"}
|