@skipruntime/helpers 0.0.4 → 0.0.6

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.
@@ -1,61 +1,70 @@
1
1
  import type { Entry, ExternalService, Json } from "@skipruntime/api";
2
+ /**
3
+ * Interface required by `GenericExternalService` for external resources.
4
+ */
2
5
  export interface ExternalResource {
3
- open(params: {
4
- [param: string]: string | number;
5
- }, callbacks: {
6
+ open(params: Json, callbacks: {
6
7
  update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
7
8
  error: (error: Json) => void;
8
9
  loading: () => void;
9
10
  }): void;
10
- close(params: {
11
- [param: string]: string | number;
12
- }): void;
11
+ close(params: Json): void;
13
12
  }
13
+ /**
14
+ * A generic external service providing external resources.
15
+ *
16
+ * `GenericExternalService` provides an implementation of `ExternalService` for external resources by lifting the `open` and `close` operations from `ExternalResource` to the `subscribe` and `unsubscribe` operations required by `ExternalService`.
17
+ */
14
18
  export declare class GenericExternalService implements ExternalService {
15
- private resources;
19
+ private readonly resources;
20
+ /**
21
+ * @param resources - Association of resource names to `ExternalResource`s.
22
+ */
16
23
  constructor(resources: {
17
24
  [name: string]: ExternalResource;
18
25
  });
19
- subscribe(resourceName: string, params: {
20
- [param: string]: string | number;
21
- }, callbacks: {
26
+ subscribe(resourceName: string, params: Json, callbacks: {
22
27
  update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
23
28
  error: (error: Json) => void;
24
29
  loading: () => void;
25
30
  }): void;
26
- unsubscribe(resourceName: string, params: {
27
- [param: string]: string;
28
- }): void;
31
+ unsubscribe(resourceName: string, params: Json): void;
29
32
  shutdown(): void;
30
33
  }
31
34
  export declare class TimerResource implements ExternalResource {
32
- private intervals;
33
- open(params: {
34
- [param: string]: string | number;
35
- }, callbacks: {
35
+ private readonly intervals;
36
+ open(params: Json, callbacks: {
36
37
  update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
37
38
  error: (error: Json) => void;
38
39
  loading: () => void;
39
40
  }): void;
40
- close(params: {
41
- [param: string]: string | number;
42
- }): void;
41
+ close(params: Json): void;
43
42
  }
43
+ /**
44
+ * An external resource that is refreshed at some polling interval.
45
+ *
46
+ * @typeParam S - Type of data received from external resource.
47
+ * @typeParam K - Type of keys.
48
+ * @typeParam V - Type of values.
49
+ */
44
50
  export declare class Polled<S extends Json, K extends Json, V extends Json> implements ExternalResource {
45
- private url;
46
- private duration;
47
- private conv;
48
- private intervals;
49
- constructor(url: string, duration: number, conv: (data: S) => Entry<K, V>[]);
50
- open(params: {
51
- [param: string]: string | number;
52
- }, callbacks: {
51
+ private readonly url;
52
+ private readonly duration;
53
+ private readonly conv;
54
+ private readonly encodeParams;
55
+ private readonly intervals;
56
+ /**
57
+ * @param url - HTTP endpoint of external resource to poll.
58
+ * @param duration - Refresh interval, in milliseconds.
59
+ * @param conv - Function to convert data of type `S` received from external resource to `key`-`value` entries.
60
+ * @param encodeParams - Function to use to encode params of type `Json` for external resource request.
61
+ */
62
+ constructor(url: string, duration: number, conv: (data: S) => Entry<K, V>[], encodeParams?: (params: Json) => string);
63
+ open(params: Json, callbacks: {
53
64
  update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
54
65
  error: (error: Json) => void;
55
66
  loading: () => void;
56
67
  }): void;
57
- close(params: {
58
- [param: string]: string | number;
59
- }): void;
68
+ close(params: Json): void;
60
69
  }
61
70
  //# sourceMappingURL=external.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGrE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CACF,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,GACA,IAAI,CAAC;IAER,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAK1D,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ5B;;OAEG;gBAEgB,SAAS,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE;IAGlE,SAAS,CACP,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,GACA,IAAI;IAUP,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;IAU9C,QAAQ,IAAI,IAAI;CAGjB;AAID,qBAAa,aAAc,YAAW,gBAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkD;IAE5E,IAAI,CACF,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB;IAsBH,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;CAQ1B;AAaD;;;;;;GAMG;AACH,qBAAa,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,CAChE,YAAW,gBAAgB;IAWzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;;;;OAKG;gBAEgB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAChC,YAAY,GAAE,CAC7B,MAAM,EAAE,IAAI,KACT,MAA4B;IAGnC,IAAI,CACF,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,GACA,IAAI;IAkBP,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;CAM1B"}
package/dist/external.js CHANGED
@@ -1,5 +1,13 @@
1
1
  import { fetchJSON } from "./rest.js";
2
+ /**
3
+ * A generic external service providing external resources.
4
+ *
5
+ * `GenericExternalService` provides an implementation of `ExternalService` for external resources by lifting the `open` and `close` operations from `ExternalResource` to the `subscribe` and `unsubscribe` operations required by `ExternalService`.
6
+ */
2
7
  export class GenericExternalService {
8
+ /**
9
+ * @param resources - Association of resource names to `ExternalResource`s.
10
+ */
3
11
  constructor(resources) {
4
12
  this.resources = resources;
5
13
  }
@@ -54,21 +62,44 @@ export class TimerResource {
54
62
  }
55
63
  }
56
64
  }
65
+ function defaultParamEncoder(params) {
66
+ if (typeof params == "object") {
67
+ const queryParams = {};
68
+ for (const [key, value] of Object.entries(params)) {
69
+ if (typeof value == "object")
70
+ queryParams[key] = JSON.stringify(value);
71
+ else
72
+ queryParams[key] = value.toString();
73
+ }
74
+ return new URLSearchParams(queryParams).toString();
75
+ }
76
+ else
77
+ return `params=${JSON.stringify(params)}`;
78
+ }
79
+ /**
80
+ * An external resource that is refreshed at some polling interval.
81
+ *
82
+ * @typeParam S - Type of data received from external resource.
83
+ * @typeParam K - Type of keys.
84
+ * @typeParam V - Type of values.
85
+ */
57
86
  export class Polled {
58
- constructor(url, duration, conv) {
87
+ /**
88
+ * @param url - HTTP endpoint of external resource to poll.
89
+ * @param duration - Refresh interval, in milliseconds.
90
+ * @param conv - Function to convert data of type `S` received from external resource to `key`-`value` entries.
91
+ * @param encodeParams - Function to use to encode params of type `Json` for external resource request.
92
+ */
93
+ constructor(url, duration, conv, encodeParams = defaultParamEncoder) {
59
94
  this.url = url;
60
95
  this.duration = duration;
61
96
  this.conv = conv;
97
+ this.encodeParams = encodeParams;
62
98
  this.intervals = new Map();
63
99
  }
64
100
  open(params, callbacks) {
65
101
  this.close(params);
66
- const queryParams = {};
67
- for (const [key, value] of Object.entries(params)) {
68
- queryParams[key] = value.toString();
69
- }
70
- const strParams = new URLSearchParams(queryParams).toString();
71
- const url = `${this.url}?${strParams}`;
102
+ const url = `${this.url}?${this.encodeParams(params)}`;
72
103
  const call = () => {
73
104
  callbacks.loading();
74
105
  fetchJSON(url, "GET", {})
@@ -91,9 +122,13 @@ export class Polled {
91
122
  }
92
123
  }
93
124
  function toId(params) {
94
- const strparams = Object.entries(params)
95
- .map(([key, value]) => `${key}:${value.toString()}`)
96
- .sort();
97
- return `[${strparams.join(",")}]`;
125
+ if (typeof params == "object") {
126
+ const strparams = Object.entries(params)
127
+ .map(([key, value]) => `${key}:${btoa(JSON.stringify(value))}`)
128
+ .sort();
129
+ return `[${strparams.join(",")}]`;
130
+ }
131
+ else
132
+ return btoa(JSON.stringify(params));
98
133
  }
99
134
  //# sourceMappingURL=external.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAkBtC;;;;GAIG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,YACmB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IAC/D,CAAC;IAEJ,SAAS,CACP,YAAoB,EACpB,MAAY,EACZ,SAIC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAE/B,CAAC;QACd,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,WAAW,CAAC,YAAoB,EAAE,MAAY;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAE/B,CAAC;QACd,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,OAAO;IACT,CAAC;CACF;AAID,MAAM,OAAO,aAAa;IAA1B;QACmB,cAAS,GAAG,IAAI,GAAG,EAAuC,CAAC;IAsC9E,CAAC;IApCC,IAAI,CACF,MAAY,EACZ,SAIC;QAED,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,SAAS,GAAgC,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACX,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,MAAM,QAAQ,GAAsB,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACnE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;gBACrC,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAY;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChD,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,MAAY;IACvC,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAgC,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,OAAO,KAAK,IAAI,QAAQ;gBAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;gBAClE,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC;;QAAM,OAAO,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,MAAM;IAKjB;;;;;OAKG;IACH,YACmB,GAAW,EACX,QAAgB,EAChB,IAAgC,EAChC,eAEH,mBAAmB;QALhB,QAAG,GAAH,GAAG,CAAQ;QACX,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAA4B;QAChC,iBAAY,GAAZ,YAAY,CAEI;QAdlB,cAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAerD,CAAC;IAEJ,IAAI,CACF,MAAY,EACZ,SAIC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;iBACtB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAM,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gBACpB,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,IAAI,EAAE,CAAC;QACP,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,MAAY;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,SAAS,IAAI,CAAC,MAAY;IACxB,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;aAC9D,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,CAAC;;QAAM,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
- export { SkipExternalService } from "./remote.js";
1
+ /**
2
+ * This package contains items that may be useful for working with the Skip framework, but are not strictly necessary.
3
+ *
4
+ * @packageDocumentation
5
+ */
2
6
  export { type ExternalResource, GenericExternalService, Polled, } from "./external.js";
3
- export { Sum, Min, Max, CountMapper } from "./utils.js";
4
- export { fetchJSON, RESTWrapperOfSkipService } from "./rest.js";
7
+ export { SkipServiceBroker, fetchJSON, type Entrypoint } from "./rest.js";
8
+ export { Count, CountMapper, Max, Min, SkipExternalService, Sum, } from "@skipruntime/core";
5
9
  //# sourceMappingURL=index.d.ts.map
@@ -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,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EACL,KAAK,EACL,WAAW,EACX,GAAG,EACH,GAAG,EACH,mBAAmB,EACnB,GAAG,GACJ,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,9 @@
1
- export { SkipExternalService } from "./remote.js";
1
+ /**
2
+ * This package contains items that may be useful for working with the Skip framework, but are not strictly necessary.
3
+ *
4
+ * @packageDocumentation
5
+ */
2
6
  export { GenericExternalService, Polled, } from "./external.js";
3
- export { Sum, Min, Max, CountMapper } from "./utils.js";
4
- export { fetchJSON, RESTWrapperOfSkipService } from "./rest.js";
7
+ export { SkipServiceBroker, fetchJSON } from "./rest.js";
8
+ export { Count, CountMapper, Max, Min, SkipExternalService, Sum, } from "@skipruntime/core";
5
9
  //# 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,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,sBAAsB,EACtB,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AAC1E,OAAO,EACL,KAAK,EACL,WAAW,EACX,GAAG,EACH,GAAG,EACH,mBAAmB,EACnB,GAAG,GACJ,MAAM,mBAAmB,CAAC"}
package/dist/rest.d.ts CHANGED
@@ -1,27 +1,115 @@
1
1
  import type { Json, Entry } from "@skipruntime/api";
2
- export type Entrypoint = {
3
- host: string;
4
- streaming_port: number;
5
- control_port: number;
6
- secured?: boolean;
7
- };
8
- export declare function fetchJSON<V>(url: string, method?: "POST" | "GET" | "PUT" | "PATCH" | "HEAD" | "DELETE", headers?: {
2
+ import type { Entrypoint } from "@skipruntime/core";
3
+ export type { Entrypoint };
4
+ /**
5
+ * Perform an HTTP fetch where input and output data is `Json`.
6
+ *
7
+ * @typeParam V - Type response is *assumed* to have.
8
+ * @param url - URL from which to fetch.
9
+ * @param method - HTTP method of request.
10
+ * @param headers - Additional headers to add to request.
11
+ * @param data - Data to convert to JSON and send in request body.
12
+ * @returns Response parsed as JSON, and headers.
13
+ */
14
+ export declare function fetchJSON<V extends Json>(url: string, method?: "POST" | "GET" | "PUT" | "PATCH" | "HEAD" | "DELETE", headers?: {
9
15
  [header: string]: string;
10
16
  }, data?: Json): Promise<[V | null, Headers]>;
11
- export declare class RESTWrapperOfSkipService {
12
- private entrypoint;
17
+ /**
18
+ * Wrapper providing a method-call interface to the Skip service HTTP APIs.
19
+ *
20
+ * Skip services, as started by `runService`, support an HTTP interface for reading from resources and writing to input collections.
21
+ * `SkipServiceBroker` provides a method-call interface to the backing HTTP interface.
22
+ */
23
+ export declare class SkipServiceBroker {
24
+ private readonly entrypoint;
25
+ /**
26
+ * Construct a broker for a Skip service at the given entry point.
27
+ *
28
+ * @param entrypoint - Entry point of backing service.
29
+ * @returns Method-call broker to service.
30
+ */
13
31
  constructor(entrypoint?: Entrypoint);
14
- getAll<K extends Json, V extends Json>(resource: string, params: {
15
- [param: string]: string;
16
- }): Promise<Entry<K, V>[]>;
17
- getArray<V extends Json>(resource: string, params: {
18
- [param: string]: string;
19
- }, key: string): Promise<V[]>;
20
- put<K extends Json, V extends Json>(collection: string, key: K, value: V[]): Promise<void>;
21
- patch<K extends Json, V extends Json>(collection: string, values: Entry<K, V>[]): Promise<void>;
32
+ /**
33
+ * Read the entire contents of a resource.
34
+ *
35
+ * @typeParam K - Type of keys.
36
+ * @typeParam V - Type of values.
37
+ * @param resource - Name of resource, must be a key of the `resources` field of the `SkipService` running at `entrypoint`.
38
+ * @param params - Resource instance parameters.
39
+ * @returns All entries in resource.
40
+ */
41
+ getAll<K extends Json, V extends Json>(resource: string, params: Json): Promise<Entry<K, V>[]>;
42
+ /**
43
+ * Read the values a resource associates with a single key.
44
+ *
45
+ * @typeParam K - Type of keys.
46
+ * @typeParam V - Type of values.
47
+ * @param resource - Name of resource, must be a key of the `resources` field of the `SkipService` running at `entrypoint`.
48
+ * @param params - Resource instance parameters.
49
+ * @param key - Key to read.
50
+ * @returns The values associated to the key.
51
+ */
52
+ getArray<K extends Json, V extends Json>(resource: string, params: Json, key: K): Promise<V[]>;
53
+ /**
54
+ * Read the single value a resource associates with a key.
55
+ *
56
+ * @typeParam K - Type of keys.
57
+ * @typeParam V - Type of values.
58
+ * @param resource - Name of resource, must be a key of the `resources` field of the `SkipService` running at `entrypoint`.
59
+ * @param params - Resource instance parameters.
60
+ * @param key - Key to read.
61
+ * @returns The value associated to the key.
62
+ * @throws `NonUniqueValueException` when the key is associated to either zero or multiple values.
63
+ */
64
+ getUnique<K extends Json, V extends Json>(resource: string, params: Json, key: K): Promise<V>;
65
+ /**
66
+ * Write the values for a single key in a collection.
67
+ *
68
+ * @typeParam K - Type of keys.
69
+ * @typeParam V - Type of values.
70
+ * @param collection - Name of the input collection to update, must be a key of the `Inputs` type parameter of the `SkipService` running at `entrypoint`.
71
+ * @param key - Key of entry to write.
72
+ * @param values - Values of entry to write.
73
+ * @returns {void}
74
+ */
75
+ put<K extends Json, V extends Json>(collection: string, key: K, values: V[]): Promise<void>;
76
+ /**
77
+ * Write multiple entries to a collection.
78
+ *
79
+ * @typeParam K - Type of keys.
80
+ * @typeParam V - Type of values.
81
+ * @param collection - Name of the input collection to update, must be a key of the `Inputs` type parameter of the `SkipService` running at `entrypoint`.
82
+ * @param entries - Entries to write.
83
+ * @returns {void}
84
+ */
85
+ patch<K extends Json, V extends Json>(collection: string, entries: Entry<K, V>[]): Promise<void>;
86
+ /**
87
+ * Remove all values associated with a key in a collection.
88
+ *
89
+ * @typeParam K - Type of keys.
90
+ * @param collection - Name of the input collection to update, must be a key of the `Inputs` type parameter of the `SkipService` running at `entrypoint`.
91
+ * @param key - Key of entry to delete.
92
+ * @returns {void}
93
+ */
22
94
  deleteKey<K extends Json>(collection: string, key: K): Promise<void>;
23
- getStreamUUID(resource: string, params?: {
24
- [param: string]: string;
25
- }): Promise<string>;
95
+ /**
96
+ * Create a resource instance UUID.
97
+ *
98
+ * @typeParam K - Type of keys.
99
+ * @typeParam V - Type of values.
100
+ * @param resource - Name of resource, must be a key of the `resources` field of the `SkipService` running at `entrypoint`.
101
+ * @param params - Resource instance parameters.
102
+ * @returns UUID that can be used to subscribe to updates to resource instance.
103
+ */
104
+ getStreamUUID(resource: string, params?: Json): Promise<string>;
105
+ /**
106
+ * Destroy a resource instance.
107
+ *
108
+ * Under normal circumstances, resource instances are deleted automatically after some period of inactivity; this method enables immediately deleting live streams under exceptional circumstances.
109
+ *
110
+ * @param uuid - Resource instance UUID.
111
+ * @returns {void}
112
+ */
113
+ deleteUUID(uuid: string): Promise<void>;
26
114
  }
27
115
  //# sourceMappingURL=rest.d.ts.map
@@ -1 +1 @@
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,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,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;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EAC1C,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,UAIX;IAKG,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAUnB,QAAQ,CAAC,CAAC,SAAS,IAAI,EAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EACnC,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;IASV,SAAS,CAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO,GACvC,OAAO,CAAC,MAAM,CAAC;CAOnB"}
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,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,CAAC;AAQ3B;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,IAAI,EAC5C,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAgB,EACpE,OAAO,GAAE;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EAC1C,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAqB9B;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;;;OAKG;gBAED,UAAU,GAAE,UAIX;IAKH;;;;;;;;OAQG;IACG,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,GACX,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAUzB;;;;;;;;;OASG;IACG,QAAQ,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,EAAE,CAAC;IAUf;;;;;;;;;;OAUG;IACG,SAAS,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EAC5C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;OASG;IACG,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EACtC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,CAAC,EAAE,GACV,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;;;;OAQG;IACG,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;;OAOG;IACG,SAAS,CAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E;;;;;;;;OAQG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,IAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzE;;;;;;;OAOG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG9C"}
package/dist/rest.js CHANGED
@@ -1,8 +1,19 @@
1
+ import { NonUniqueValueException } from "@skipruntime/api";
1
2
  function toHttp(entrypoint) {
2
3
  if (entrypoint.secured)
3
4
  return `https://${entrypoint.host}:${entrypoint.control_port}`;
4
5
  return `http://${entrypoint.host}:${entrypoint.control_port}`;
5
6
  }
7
+ /**
8
+ * Perform an HTTP fetch where input and output data is `Json`.
9
+ *
10
+ * @typeParam V - Type response is *assumed* to have.
11
+ * @param url - URL from which to fetch.
12
+ * @param method - HTTP method of request.
13
+ * @param headers - Additional headers to add to request.
14
+ * @param data - Data to convert to JSON and send in request body.
15
+ * @returns Response parsed as JSON, and headers.
16
+ */
6
17
  export async function fetchJSON(url, method = "GET", headers = {}, data) {
7
18
  const body = data ? JSON.stringify(data) : undefined;
8
19
  const response = await fetch(url, {
@@ -24,7 +35,19 @@ export async function fetchJSON(url, method = "GET", headers = {}, data) {
24
35
  : null;
25
36
  return [responseJSON, response.headers];
26
37
  }
27
- export class RESTWrapperOfSkipService {
38
+ /**
39
+ * Wrapper providing a method-call interface to the Skip service HTTP APIs.
40
+ *
41
+ * Skip services, as started by `runService`, support an HTTP interface for reading from resources and writing to input collections.
42
+ * `SkipServiceBroker` provides a method-call interface to the backing HTTP interface.
43
+ */
44
+ export class SkipServiceBroker {
45
+ /**
46
+ * Construct a broker for a Skip service at the given entry point.
47
+ *
48
+ * @param entrypoint - Entry point of backing service.
49
+ * @returns Method-call broker to service.
50
+ */
28
51
  constructor(entrypoint = {
29
52
  host: "localhost",
30
53
  streaming_port: 8080,
@@ -32,32 +55,113 @@ export class RESTWrapperOfSkipService {
32
55
  }) {
33
56
  this.entrypoint = toHttp(entrypoint);
34
57
  }
58
+ /**
59
+ * Read the entire contents of a resource.
60
+ *
61
+ * @typeParam K - Type of keys.
62
+ * @typeParam V - Type of values.
63
+ * @param resource - Name of resource, must be a key of the `resources` field of the `SkipService` running at `entrypoint`.
64
+ * @param params - Resource instance parameters.
65
+ * @returns All entries in resource.
66
+ */
35
67
  async getAll(resource, params) {
36
- const qParams = new URLSearchParams(params).toString();
37
- const [optValues, _headers] = await fetchJSON(`${this.entrypoint}/v1/resources/${resource}?${qParams}`, "GET");
38
- const values = optValues ?? [];
39
- return values;
68
+ const [data, _headers] = await fetchJSON(`${this.entrypoint}/v1/snapshot/${resource}`, "POST", {}, params);
69
+ return data ?? [];
40
70
  }
71
+ /**
72
+ * Read the values a resource associates with a single key.
73
+ *
74
+ * @typeParam K - Type of keys.
75
+ * @typeParam V - Type of values.
76
+ * @param resource - Name of resource, must be a key of the `resources` field of the `SkipService` running at `entrypoint`.
77
+ * @param params - Resource instance parameters.
78
+ * @param key - Key to read.
79
+ * @returns The values associated to the key.
80
+ */
41
81
  async getArray(resource, params, key) {
42
- const qParams = new URLSearchParams(params).toString();
43
- const [data, _headers] = await fetchJSON(`${this.entrypoint}/v1/resources/${resource}/${key}?${qParams}`, "GET");
82
+ const [data, _headers] = await fetchJSON(`${this.entrypoint}/v1/snapshot/${resource}`, "POST", {}, { key, params });
44
83
  return data ?? [];
45
84
  }
46
- async put(collection, key, value) {
47
- return await this.patch(collection, [[key, value]]);
85
+ /**
86
+ * Read the single value a resource associates with a key.
87
+ *
88
+ * @typeParam K - Type of keys.
89
+ * @typeParam V - Type of values.
90
+ * @param resource - Name of resource, must be a key of the `resources` field of the `SkipService` running at `entrypoint`.
91
+ * @param params - Resource instance parameters.
92
+ * @param key - Key to read.
93
+ * @returns The value associated to the key.
94
+ * @throws `NonUniqueValueException` when the key is associated to either zero or multiple values.
95
+ */
96
+ async getUnique(resource, params, key) {
97
+ return this.getArray(resource, params, key).then((values) => {
98
+ if (values.length !== 1 || values[0] === undefined)
99
+ throw new NonUniqueValueException();
100
+ return values[0];
101
+ });
102
+ }
103
+ /**
104
+ * Write the values for a single key in a collection.
105
+ *
106
+ * @typeParam K - Type of keys.
107
+ * @typeParam V - Type of values.
108
+ * @param collection - Name of the input collection to update, must be a key of the `Inputs` type parameter of the `SkipService` running at `entrypoint`.
109
+ * @param key - Key of entry to write.
110
+ * @param values - Values of entry to write.
111
+ * @returns {void}
112
+ */
113
+ async put(collection, key, values) {
114
+ return await this.patch(collection, [[key, values]]);
48
115
  }
49
- async patch(collection, values) {
50
- await fetchJSON(`${this.entrypoint}/v1/inputs/${collection}`, "PATCH", {}, values);
116
+ /**
117
+ * Write multiple entries to a collection.
118
+ *
119
+ * @typeParam K - Type of keys.
120
+ * @typeParam V - Type of values.
121
+ * @param collection - Name of the input collection to update, must be a key of the `Inputs` type parameter of the `SkipService` running at `entrypoint`.
122
+ * @param entries - Entries to write.
123
+ * @returns {void}
124
+ */
125
+ async patch(collection, entries) {
126
+ await fetchJSON(`${this.entrypoint}/v1/inputs/${collection}`, "PATCH", {}, entries);
51
127
  }
128
+ /**
129
+ * Remove all values associated with a key in a collection.
130
+ *
131
+ * @typeParam K - Type of keys.
132
+ * @param collection - Name of the input collection to update, must be a key of the `Inputs` type parameter of the `SkipService` running at `entrypoint`.
133
+ * @param key - Key of entry to delete.
134
+ * @returns {void}
135
+ */
52
136
  async deleteKey(collection, key) {
53
137
  return await this.patch(collection, [[key, []]]);
54
138
  }
139
+ /**
140
+ * Create a resource instance UUID.
141
+ *
142
+ * @typeParam K - Type of keys.
143
+ * @typeParam V - Type of values.
144
+ * @param resource - Name of resource, must be a key of the `resources` field of the `SkipService` running at `entrypoint`.
145
+ * @param params - Resource instance parameters.
146
+ * @returns UUID that can be used to subscribe to updates to resource instance.
147
+ */
55
148
  async getStreamUUID(resource, params = {}) {
56
- return fetch(`${this.entrypoint}/v1/streams`, {
149
+ return fetch(`${this.entrypoint}/v1/streams/${resource}`, {
57
150
  method: "POST",
58
151
  headers: { "Content-Type": "application/json" },
59
- body: JSON.stringify({ resource, params }),
152
+ body: JSON.stringify(params),
60
153
  }).then((res) => res.text());
61
154
  }
155
+ /**
156
+ * Destroy a resource instance.
157
+ *
158
+ * Under normal circumstances, resource instances are deleted automatically after some period of inactivity; this method enables immediately deleting live streams under exceptional circumstances.
159
+ *
160
+ * @param uuid - Resource instance UUID.
161
+ * @returns {void}
162
+ */
163
+ async deleteUUID(uuid) {
164
+ await fetchJSON(`${this.entrypoint}/v1/streams/${uuid}`, "DELETE");
165
+ }
62
166
  }
63
167
  //# 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":"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"}
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@skipruntime/helpers",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dist/index.js",
7
- "./errors.js": "./dist/errors.js",
8
7
  "./rest.js": "./dist/rest.js",
9
8
  "./external.js": "./dist/external.js"
10
9
  },
@@ -21,8 +20,9 @@
21
20
  },
22
21
  "dependencies": {
23
22
  "eventsource": "^2.0.2",
24
- "express": "^4.21.0",
25
- "@skipruntime/api": "^0.0.3"
23
+ "express": "^4.21.1",
24
+ "@skipruntime/core": "^0.0.3",
25
+ "@skipruntime/api": "^0.0.5"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/eventsource": "^1.1.15"