@skipruntime/helpers 0.0.1 → 0.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.
- package/dist/external.d.ts +18 -18
- package/dist/external.d.ts.map +1 -1
- package/dist/external.js +18 -19
- package/dist/external.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/remote.d.ts +8 -14
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +24 -60
- package/dist/remote.js.map +1 -1
- package/dist/rest.d.ts +8 -13
- package/dist/rest.d.ts.map +1 -1
- package/dist/rest.js +8 -50
- package/dist/rest.js.map +1 -1
- package/dist/utils.d.ts +12 -12
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +8 -15
- package/dist/utils.js.map +1 -1
- package/package.json +2 -3
- package/src/external.ts +27 -51
- package/src/index.ts +1 -0
- package/src/remote.ts +31 -120
- package/src/rest.ts +14 -77
- package/src/utils.ts +16 -24
package/dist/external.d.ts
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import type { Entry, ExternalService,
|
|
1
|
+
import type { Entry, ExternalService, Json } from "@skipruntime/api";
|
|
2
2
|
export interface ExternalResource {
|
|
3
3
|
open(params: Record<string, string | number>, callbacks: {
|
|
4
|
-
update: (updates: Entry<
|
|
5
|
-
error: (error:
|
|
4
|
+
update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
|
|
5
|
+
error: (error: Json) => void;
|
|
6
6
|
loading: () => void;
|
|
7
|
-
}
|
|
8
|
-
close(params: Record<string, string | number
|
|
7
|
+
}): void;
|
|
8
|
+
close(params: Record<string, string | number>): void;
|
|
9
9
|
}
|
|
10
10
|
export declare class GenericExternalService implements ExternalService {
|
|
11
11
|
private resources;
|
|
12
12
|
constructor(resources: Record<string, ExternalResource>);
|
|
13
13
|
subscribe(resourceName: string, params: Record<string, string | number>, callbacks: {
|
|
14
|
-
update: (updates: Entry<
|
|
15
|
-
error: (error:
|
|
14
|
+
update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
|
|
15
|
+
error: (error: Json) => void;
|
|
16
16
|
loading: () => void;
|
|
17
|
-
}
|
|
18
|
-
unsubscribe(resourceName: string, params: Record<string, string
|
|
17
|
+
}): void;
|
|
18
|
+
unsubscribe(resourceName: string, params: Record<string, string>): void;
|
|
19
19
|
shutdown(): void;
|
|
20
20
|
}
|
|
21
21
|
export declare class TimerResource implements ExternalResource {
|
|
22
22
|
private intervals;
|
|
23
23
|
open(params: Record<string, string | number>, callbacks: {
|
|
24
|
-
update: (updates: Entry<
|
|
25
|
-
error: (error:
|
|
24
|
+
update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
|
|
25
|
+
error: (error: Json) => void;
|
|
26
26
|
loading: () => void;
|
|
27
|
-
}
|
|
28
|
-
close(params: Record<string, string | number
|
|
27
|
+
}): void;
|
|
28
|
+
close(params: Record<string, string | number>): void;
|
|
29
29
|
}
|
|
30
|
-
export declare class Polled<S extends
|
|
30
|
+
export declare class Polled<S extends Json, K extends Json, V extends Json> implements ExternalResource {
|
|
31
31
|
private url;
|
|
32
32
|
private duration;
|
|
33
33
|
private conv;
|
|
34
34
|
private intervals;
|
|
35
35
|
constructor(url: string, duration: number, conv: (data: S) => Entry<K, V>[]);
|
|
36
36
|
open(params: Record<string, string | number>, callbacks: {
|
|
37
|
-
update: (updates: Entry<
|
|
38
|
-
error: (error:
|
|
37
|
+
update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
|
|
38
|
+
error: (error: Json) => void;
|
|
39
39
|
loading: () => void;
|
|
40
|
-
}
|
|
41
|
-
close(params: Record<string, string | number
|
|
40
|
+
}): void;
|
|
41
|
+
close(params: Record<string, string | number>): void;
|
|
42
42
|
}
|
|
43
43
|
//# sourceMappingURL=external.d.ts.map
|
package/dist/external.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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"}
|
package/dist/external.js
CHANGED
|
@@ -3,19 +3,19 @@ export class GenericExternalService {
|
|
|
3
3
|
constructor(resources) {
|
|
4
4
|
this.resources = resources;
|
|
5
5
|
}
|
|
6
|
-
subscribe(resourceName, params, callbacks
|
|
6
|
+
subscribe(resourceName, params, callbacks) {
|
|
7
7
|
const resource = this.resources[resourceName];
|
|
8
8
|
if (!resource) {
|
|
9
9
|
throw new Error(`Unkonwn resource named '${resourceName}'`);
|
|
10
10
|
}
|
|
11
|
-
resource.open(params, callbacks
|
|
11
|
+
resource.open(params, callbacks);
|
|
12
12
|
}
|
|
13
|
-
unsubscribe(resourceName, params
|
|
13
|
+
unsubscribe(resourceName, params) {
|
|
14
14
|
const resource = this.resources[resourceName];
|
|
15
15
|
if (!resource) {
|
|
16
16
|
throw new Error(`Unkonwn resource named '${resourceName}'`);
|
|
17
17
|
}
|
|
18
|
-
resource.close(params
|
|
18
|
+
resource.close(params);
|
|
19
19
|
}
|
|
20
20
|
shutdown() {
|
|
21
21
|
return;
|
|
@@ -25,14 +25,14 @@ export class TimerResource {
|
|
|
25
25
|
constructor() {
|
|
26
26
|
this.intervals = new Map();
|
|
27
27
|
}
|
|
28
|
-
open(params, callbacks
|
|
28
|
+
open(params, callbacks) {
|
|
29
29
|
const time = new Date().getTime();
|
|
30
30
|
const values = [];
|
|
31
31
|
for (const name of Object.keys(params)) {
|
|
32
32
|
values.push([name, [time]]);
|
|
33
33
|
}
|
|
34
34
|
callbacks.update(values, true);
|
|
35
|
-
const id = toId(params
|
|
35
|
+
const id = toId(params);
|
|
36
36
|
const intervals = {};
|
|
37
37
|
for (const [name, duration] of Object.entries(params)) {
|
|
38
38
|
const ms = Number(duration);
|
|
@@ -45,8 +45,8 @@ export class TimerResource {
|
|
|
45
45
|
}
|
|
46
46
|
this.intervals.set(id, intervals);
|
|
47
47
|
}
|
|
48
|
-
close(params
|
|
49
|
-
const intervals = this.intervals.get(toId(params
|
|
48
|
+
close(params) {
|
|
49
|
+
const intervals = this.intervals.get(toId(params));
|
|
50
50
|
if (intervals != null) {
|
|
51
51
|
for (const interval of Object.values(intervals)) {
|
|
52
52
|
clearInterval(interval);
|
|
@@ -61,13 +61,13 @@ export class Polled {
|
|
|
61
61
|
this.conv = conv;
|
|
62
62
|
this.intervals = new Map();
|
|
63
63
|
}
|
|
64
|
-
open(params, callbacks
|
|
65
|
-
this.close(params
|
|
66
|
-
const
|
|
64
|
+
open(params, callbacks) {
|
|
65
|
+
this.close(params);
|
|
66
|
+
const queryParams = {};
|
|
67
67
|
for (const [key, value] of Object.entries(params)) {
|
|
68
|
-
|
|
68
|
+
queryParams[key] = value.toString();
|
|
69
69
|
}
|
|
70
|
-
const strParams = new URLSearchParams(
|
|
70
|
+
const strParams = new URLSearchParams(queryParams).toString();
|
|
71
71
|
const url = `${this.url}?${strParams}`;
|
|
72
72
|
const call = () => {
|
|
73
73
|
callbacks.loading();
|
|
@@ -81,20 +81,19 @@ export class Polled {
|
|
|
81
81
|
});
|
|
82
82
|
};
|
|
83
83
|
call();
|
|
84
|
-
this.intervals.set(toId(params
|
|
84
|
+
this.intervals.set(toId(params), setInterval(call, this.duration));
|
|
85
85
|
}
|
|
86
|
-
close(params
|
|
87
|
-
const interval = this.intervals.get(toId(params
|
|
86
|
+
close(params) {
|
|
87
|
+
const interval = this.intervals.get(toId(params));
|
|
88
88
|
if (interval) {
|
|
89
89
|
clearInterval(interval);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
function toId(params
|
|
93
|
+
function toId(params) {
|
|
94
94
|
const strparams = Object.entries(params)
|
|
95
95
|
.map(([key, value]) => `${key}:${value.toString()}`)
|
|
96
96
|
.sort();
|
|
97
|
-
|
|
98
|
-
return `[${strparams.join(",")}]${hex}`;
|
|
97
|
+
return `[${strparams.join(",")}]`;
|
|
99
98
|
}
|
|
100
99
|
//# sourceMappingURL=external.js.map
|
package/dist/external.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.js","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"external.js","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SkipExternalService } from "./remote.js";
|
|
2
2
|
export { type ExternalResource, GenericExternalService, Polled, } from "./external.js";
|
|
3
3
|
export { Sum, Min, Max, CountMapper, parseReactiveResponse, reactiveResponseHeader, } from "./utils.js";
|
|
4
|
+
export { RESTWrapperOfSkipService } from "./rest.js";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SkipExternalService } from "./remote.js";
|
|
2
2
|
export { GenericExternalService, Polled, } from "./external.js";
|
|
3
3
|
export { Sum, Min, Max, CountMapper, parseReactiveResponse, reactiveResponseHeader, } from "./utils.js";
|
|
4
|
+
export { RESTWrapperOfSkipService } from "./rest.js";
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAEL,sBAAsB,EACtB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAEL,sBAAsB,EACtB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/remote.d.ts
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
|
-
import type { Entry, ExternalService,
|
|
2
|
-
import {
|
|
3
|
-
import { type Entrypoint } from "./rest.js";
|
|
1
|
+
import type { Entry, ExternalService, Json } from "@skipruntime/api";
|
|
2
|
+
import type { Entrypoint } from "./rest.js";
|
|
4
3
|
export declare class SkipExternalService implements ExternalService {
|
|
5
4
|
private url;
|
|
6
|
-
private auth;
|
|
7
|
-
private creds?;
|
|
8
|
-
private client?;
|
|
9
5
|
private resources;
|
|
10
|
-
constructor(url: string
|
|
11
|
-
static
|
|
12
|
-
static direct(entrypoint: Entrypoint, creds?: Protocol.Creds): SkipExternalService;
|
|
6
|
+
constructor(url: string);
|
|
7
|
+
static direct(entrypoint: Entrypoint): SkipExternalService;
|
|
13
8
|
subscribe(resource: string, params: Record<string, string>, callbacks: {
|
|
14
|
-
update: (updates: Entry<
|
|
15
|
-
error: (error:
|
|
9
|
+
update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
|
|
10
|
+
error: (error: Json) => void;
|
|
16
11
|
loading: () => void;
|
|
17
|
-
}
|
|
18
|
-
unsubscribe(resource: string, params: Record<string, string
|
|
12
|
+
}): void;
|
|
13
|
+
unsubscribe(resource: string, params: Record<string, string>): void;
|
|
19
14
|
shutdown(): void;
|
|
20
|
-
private subscribe_;
|
|
21
15
|
private toId;
|
|
22
16
|
}
|
|
23
17
|
//# sourceMappingURL=remote.d.ts.map
|
package/dist/remote.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C,qBAAa,mBAAoB,YAAW,eAAe;IAG7C,OAAO,CAAC,GAAG;IAFvB,OAAO,CAAC,SAAS,CAA+B;gBAE5B,GAAG,EAAE,MAAM;IAE/B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,mBAAmB;IAO1D,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAEhE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;QAE7B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,GACA,IAAI;IAmBP,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAK5D,QAAQ,IAAI,IAAI;IAMhB,OAAO,CAAC,IAAI;CAQb"}
|
package/dist/remote.js
CHANGED
|
@@ -1,83 +1,47 @@
|
|
|
1
|
-
import { parseReactiveResponse } from "./utils.js";
|
|
2
|
-
import { connect, Protocol, Client } from "@skipruntime/client";
|
|
3
|
-
import { fetchJSON } from "./rest.js";
|
|
4
1
|
export class SkipExternalService {
|
|
5
|
-
constructor(url
|
|
2
|
+
constructor(url) {
|
|
6
3
|
this.url = url;
|
|
7
|
-
this.auth = auth;
|
|
8
|
-
this.creds = creds;
|
|
9
4
|
this.resources = new Map();
|
|
10
5
|
}
|
|
11
|
-
static
|
|
12
|
-
let url = `ws://${entrypoint.host}:${entrypoint.port.toString()}`;
|
|
13
|
-
if (entrypoint.secured)
|
|
14
|
-
url = `wss://${entrypoint.host}:${entrypoint.port.toString()}`;
|
|
15
|
-
return new SkipExternalService(url, auth, creds);
|
|
16
|
-
}
|
|
17
|
-
static direct(entrypoint, creds) {
|
|
6
|
+
static direct(entrypoint) {
|
|
18
7
|
let url = `http://${entrypoint.host}:${entrypoint.port.toString()}`;
|
|
19
8
|
if (entrypoint.secured)
|
|
20
9
|
url = `https://${entrypoint.host}:${entrypoint.port.toString()}`;
|
|
21
|
-
|
|
22
|
-
const qParams = new URLSearchParams(params).toString();
|
|
23
|
-
const header = {
|
|
24
|
-
"X-Reactive-Auth": Buffer.from(reactiveAuth).toString("base64"),
|
|
25
|
-
};
|
|
26
|
-
const [_data, headers] = await fetchJSON(`${url}/v1/${resource}?${qParams}`, "HEAD", header);
|
|
27
|
-
const reactiveResponse = parseReactiveResponse(headers);
|
|
28
|
-
if (!reactiveResponse)
|
|
29
|
-
throw new Error("Reactive response must be suplied.");
|
|
30
|
-
return reactiveResponse;
|
|
31
|
-
};
|
|
32
|
-
return new SkipExternalService(url, auth, creds);
|
|
10
|
+
return new SkipExternalService(url);
|
|
33
11
|
}
|
|
34
|
-
subscribe(resource, params, callbacks
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.client = connect(this.url, this.creds).then((c) => {
|
|
44
|
-
return [c, this.creds];
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
this.subscribe_(resource, params, callbacks, reactiveAuth).catch((e) => {
|
|
49
|
-
console.error(e);
|
|
12
|
+
subscribe(resource, params, callbacks) {
|
|
13
|
+
// TODO Manage Status
|
|
14
|
+
const evSource = new EventSource(`${this.url}?${new URLSearchParams(params)}`);
|
|
15
|
+
evSource.addEventListener("init", (e) => {
|
|
16
|
+
const updates = JSON.parse(e.data);
|
|
17
|
+
callbacks.update(updates, true);
|
|
50
18
|
});
|
|
19
|
+
evSource.addEventListener("update", (e) => {
|
|
20
|
+
const updates = JSON.parse(e.data);
|
|
21
|
+
callbacks.update(updates, false);
|
|
22
|
+
});
|
|
23
|
+
evSource.onerror = (e) => {
|
|
24
|
+
console.log(e);
|
|
25
|
+
};
|
|
26
|
+
this.resources.set(this.toId(resource, params), evSource);
|
|
51
27
|
}
|
|
52
|
-
unsubscribe(resource, params
|
|
53
|
-
const closable = this.resources.get(this.toId(resource, params
|
|
28
|
+
unsubscribe(resource, params) {
|
|
29
|
+
const closable = this.resources.get(this.toId(resource, params));
|
|
54
30
|
if (closable)
|
|
55
31
|
closable.close();
|
|
56
32
|
}
|
|
57
33
|
shutdown() {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
.then((client) => {
|
|
61
|
-
client[0].close();
|
|
62
|
-
})
|
|
63
|
-
.catch((e) => console.error(e));
|
|
34
|
+
for (const res of this.resources.values()) {
|
|
35
|
+
res.close();
|
|
64
36
|
}
|
|
65
37
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const publicKey = new Uint8Array(await Protocol.exportKey(creds.publicKey));
|
|
69
|
-
const reactive = await this.auth(resource, params, publicKey);
|
|
70
|
-
// TODO Manage Status
|
|
71
|
-
const close = client.subscribe(reactive.collection, BigInt(reactive.watermark), callbacks.update);
|
|
72
|
-
this.resources.set(this.toId(resource, params, reactiveAuth), close);
|
|
73
|
-
}
|
|
74
|
-
toId(resource, params, reactiveAuth) {
|
|
38
|
+
toId(resource, params) {
|
|
39
|
+
// TODO: This is equivalent to `querystring.encode(params, ',', ':')`.
|
|
75
40
|
const strparams = [];
|
|
76
41
|
for (const key of Object.keys(params).sort()) {
|
|
77
42
|
strparams.push(`${key}:${params[key]}`);
|
|
78
43
|
}
|
|
79
|
-
|
|
80
|
-
return `${resource}[${strparams.join(",")}]${hex}`;
|
|
44
|
+
return `${resource}[${strparams.join(",")}]`;
|
|
81
45
|
}
|
|
82
46
|
}
|
|
83
47
|
//# sourceMappingURL=remote.js.map
|
package/dist/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,mBAAmB;IAG9B,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;QAFvB,cAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEd,CAAC;IAEnC,MAAM,CAAC,MAAM,CAAC,UAAsB;QAClC,IAAI,GAAG,GAAG,UAAU,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpE,IAAI,UAAU,CAAC,OAAO;YACpB,GAAG,GAAG,WAAW,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnE,OAAO,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,CACP,QAAgB,EAChB,MAA8B,EAC9B,SAMC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI,WAAW,CAC9B,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAC7C,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAuB,EAAE,EAAE;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAwB,CAAC;YAC1D,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAuB,EAAE,EAAE;YAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAwB,CAAC;YAC1D,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,MAA8B;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACjE,IAAI,QAAQ;YAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,QAAgB,EAAE,MAA8B;QAC3D,sEAAsE;QACtE,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,GAAG,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/C,CAAC;CACF"}
|
package/dist/rest.d.ts
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Json, Entry } from "@skipruntime/api";
|
|
2
2
|
export type Entrypoint = {
|
|
3
3
|
host: string;
|
|
4
4
|
port: number;
|
|
5
5
|
secured?: boolean;
|
|
6
6
|
};
|
|
7
|
-
export declare function fetchJSON<V>(url: string, method?: "POST" | "GET" | "PUT" | "PATCH" | "HEAD" | "DELETE", headers?: Record<string, string>, data?:
|
|
8
|
-
export declare class
|
|
7
|
+
export declare function fetchJSON<V>(url: string, method?: "POST" | "GET" | "PUT" | "PATCH" | "HEAD" | "DELETE", headers?: Record<string, string>, data?: Json): Promise<[V | null, Headers]>;
|
|
8
|
+
export declare class RESTWrapperOfSkipService {
|
|
9
9
|
private entrypoint;
|
|
10
10
|
constructor(entrypoint?: Entrypoint);
|
|
11
|
-
getAll<K extends
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
getArray<V extends TJSON>(resource: string, params: Record<string, string>, key: string, reactiveAuth?: Uint8Array | string): Promise<V[]>;
|
|
17
|
-
put<V extends TJSON>(collection: string, key: string, value: V[]): Promise<void>;
|
|
18
|
-
patch<K extends TJSON, V extends TJSON>(collection: string, values: Entry<K, V>[]): Promise<void>;
|
|
19
|
-
deleteKey(collection: string, key: string): Promise<void>;
|
|
20
|
-
private header;
|
|
11
|
+
getAll<K extends Json, V extends Json>(resource: string, params: Record<string, string>): Promise<Entry<K, V>[]>;
|
|
12
|
+
getArray<V extends Json>(resource: string, params: Record<string, string>, key: string): Promise<V[]>;
|
|
13
|
+
put<K extends Json, V extends Json>(collection: string, key: K, value: V[]): Promise<void>;
|
|
14
|
+
patch<K extends Json, V extends Json>(collection: string, values: Entry<K, V>[]): Promise<void>;
|
|
15
|
+
deleteKey<K extends Json>(collection: string, key: K): Promise<void>;
|
|
21
16
|
}
|
|
22
17
|
//# sourceMappingURL=rest.d.ts.map
|
package/dist/rest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAQF,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAgB,EACpE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAqB9B;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAAS;gBAGzB,UAAU,GAAE,UAGX;IAKG,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAUnB,QAAQ,CAAC,CAAC,SAAS,IAAI,EAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,EAAE,CAAC;IAST,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EACtC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,EAAE,GACT,OAAO,CAAC,IAAI,CAAC;IAIV,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EACxC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;IAIV,SAAS,CAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3E"}
|
package/dist/rest.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { parseReactiveResponse } from "./utils.js";
|
|
2
1
|
function toHttp(entrypoint) {
|
|
3
2
|
if (entrypoint.secured)
|
|
4
3
|
return `https://${entrypoint.host}:${entrypoint.port}`;
|
|
@@ -25,73 +24,32 @@ export async function fetchJSON(url, method = "GET", headers = {}, data) {
|
|
|
25
24
|
: null;
|
|
26
25
|
return [responseJSON, response.headers];
|
|
27
26
|
}
|
|
28
|
-
export class
|
|
27
|
+
export class RESTWrapperOfSkipService {
|
|
29
28
|
constructor(entrypoint = {
|
|
30
29
|
host: "localhost",
|
|
31
30
|
port: 3587,
|
|
32
31
|
}) {
|
|
33
32
|
this.entrypoint = toHttp(entrypoint);
|
|
34
33
|
}
|
|
35
|
-
async getAll(resource, params
|
|
34
|
+
async getAll(resource, params) {
|
|
36
35
|
const qParams = new URLSearchParams(params).toString();
|
|
37
|
-
|
|
38
|
-
if (reactiveAuth) {
|
|
39
|
-
if (typeof reactiveAuth == "string") {
|
|
40
|
-
header = {
|
|
41
|
-
"X-Reactive-Auth": reactiveAuth,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
header = {
|
|
46
|
-
"X-Reactive-Auth": Buffer.from(reactiveAuth.buffer).toString("base64"),
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const [optValues, headers] = await fetchJSON(`${this.entrypoint}/v1/${resource}?${qParams}`, "GET", header);
|
|
51
|
-
const reactive = parseReactiveResponse(headers);
|
|
36
|
+
const [optValues, _headers] = await fetchJSON(`${this.entrypoint}/v1/${resource}?${qParams}`, "GET");
|
|
52
37
|
const values = optValues ?? [];
|
|
53
|
-
return
|
|
38
|
+
return values;
|
|
54
39
|
}
|
|
55
|
-
async
|
|
40
|
+
async getArray(resource, params, key) {
|
|
56
41
|
const qParams = new URLSearchParams(params).toString();
|
|
57
|
-
const
|
|
58
|
-
const [_data, headers] = await fetchJSON(`${this.entrypoint}/v1/${resource}?${qParams}`, "HEAD", header);
|
|
59
|
-
const reactiveResponse = parseReactiveResponse(headers);
|
|
60
|
-
if (!reactiveResponse)
|
|
61
|
-
throw new Error("Reactive response must be suplied.");
|
|
62
|
-
else {
|
|
63
|
-
return reactiveResponse;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
async getArray(resource, params, key, reactiveAuth) {
|
|
67
|
-
const qParams = new URLSearchParams(params).toString();
|
|
68
|
-
const header = this.header(reactiveAuth);
|
|
69
|
-
const [data, _headers] = await fetchJSON(`${this.entrypoint}/v1/${resource}/${key}?${qParams}`, "GET", header);
|
|
42
|
+
const [data, _headers] = await fetchJSON(`${this.entrypoint}/v1/${resource}/${key}?${qParams}`, "GET");
|
|
70
43
|
return data ?? [];
|
|
71
44
|
}
|
|
72
45
|
async put(collection, key, value) {
|
|
73
|
-
await
|
|
46
|
+
return await this.patch(collection, [[key, value]]);
|
|
74
47
|
}
|
|
75
48
|
async patch(collection, values) {
|
|
76
49
|
await fetchJSON(`${this.entrypoint}/v1/${collection}`, "PATCH", {}, values);
|
|
77
50
|
}
|
|
78
51
|
async deleteKey(collection, key) {
|
|
79
|
-
await
|
|
80
|
-
}
|
|
81
|
-
header(reactiveAuth) {
|
|
82
|
-
if (reactiveAuth) {
|
|
83
|
-
if (typeof reactiveAuth == "string") {
|
|
84
|
-
return {
|
|
85
|
-
"X-Reactive-Auth": reactiveAuth,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
return {
|
|
90
|
-
"X-Reactive-Auth": Buffer.from(reactiveAuth.buffer).toString("base64"),
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return {};
|
|
52
|
+
return await this.patch(collection, [[key, []]]);
|
|
95
53
|
}
|
|
96
54
|
}
|
|
97
55
|
//# sourceMappingURL=rest.js.map
|
package/dist/rest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Nullable } from "@skip-wasm/std";
|
|
2
2
|
import { ManyToOneMapper } from "@skipruntime/api";
|
|
3
|
-
import type {
|
|
4
|
-
export declare class Sum implements
|
|
3
|
+
import type { Reducer, NonEmptyIterator, ReactiveResponse, Json } from "@skipruntime/api";
|
|
4
|
+
export declare class Sum implements Reducer<number, number> {
|
|
5
5
|
default: number;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
add(acc: number, value: number): number;
|
|
7
|
+
remove(acc: number, value: number): Nullable<number>;
|
|
8
8
|
}
|
|
9
|
-
export declare class Min implements
|
|
9
|
+
export declare class Min implements Reducer<number, number> {
|
|
10
10
|
default: null;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
add(acc: Nullable<number>, value: number): number;
|
|
12
|
+
remove(acc: number, value: number): Nullable<number>;
|
|
13
13
|
}
|
|
14
|
-
export declare class Max implements
|
|
14
|
+
export declare class Max implements Reducer<number, number> {
|
|
15
15
|
default: null;
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
add(acc: Nullable<number>, value: number): number;
|
|
17
|
+
remove(acc: number, value: number): Nullable<number>;
|
|
18
18
|
}
|
|
19
|
-
export declare class CountMapper<K extends
|
|
19
|
+
export declare class CountMapper<K extends Json, V extends Json> extends ManyToOneMapper<K, V, number> {
|
|
20
20
|
mapValues(values: NonEmptyIterator<V>): number;
|
|
21
21
|
}
|
|
22
22
|
export declare function parseReactiveResponse(header: Headers | string): ReactiveResponse | undefined;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,EACL,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,GAAI,YAAW,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IACjD,OAAO,SAAK;IAEZ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAIvC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;CAGrD;AAED,qBAAa,GAAI,YAAW,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IACjD,OAAO,OAAQ;IAEf,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;CAGrD;AAED,qBAAa,GAAI,YAAW,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IACjD,OAAO,OAAQ;IAEf,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;CAGrD;AAED,qBAAa,WAAW,CACtB,CAAC,SAAS,IAAI,EACd,CAAC,SAAS,IAAI,CACd,SAAQ,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM;CAG/C;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,GAAG,MAAM,GACvB,gBAAgB,GAAG,SAAS,CAO9B;AAED,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,gBAAgB,GACjC,CAAC,MAAM,EAAE,MAAM,CAAC,CAElB"}
|