@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.
@@ -1,43 +1,43 @@
1
- import type { Entry, ExternalService, TJSON } from "@skipruntime/api";
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<TJSON, TJSON>[], isInit: boolean) => void;
5
- error: (error: TJSON) => void;
4
+ update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
5
+ error: (error: Json) => void;
6
6
  loading: () => void;
7
- }, reactiveAuth?: Uint8Array): void;
8
- close(params: Record<string, string | number>, reactiveAuth?: Uint8Array): void;
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<TJSON, TJSON>[], isInit: boolean) => void;
15
- error: (error: TJSON) => void;
14
+ update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
15
+ error: (error: Json) => void;
16
16
  loading: () => void;
17
- }, reactiveAuth?: Uint8Array): void;
18
- unsubscribe(resourceName: string, params: Record<string, string>, reactiveAuth?: Uint8Array): void;
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<TJSON, TJSON>[], isInit: boolean) => void;
25
- error: (error: TJSON) => void;
24
+ update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
25
+ error: (error: Json) => void;
26
26
  loading: () => void;
27
- }, reactiveAuth?: Uint8Array): void;
28
- close(params: Record<string, string | number>, reactiveAuth?: Uint8Array): void;
27
+ }): void;
28
+ close(params: Record<string, string | number>): void;
29
29
  }
30
- export declare class Polled<S extends TJSON, K extends TJSON, V extends TJSON> implements ExternalResource {
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<TJSON, TJSON>[], isInit: boolean) => void;
38
- error: (error: TJSON) => void;
37
+ update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
38
+ error: (error: Json) => void;
39
39
  loading: () => void;
40
- }, reactiveAuth?: Uint8Array): void;
41
- close(params: Record<string, string | number>, reactiveAuth?: Uint8Array): void;
40
+ }): void;
41
+ close(params: Record<string, string | number>): void;
42
42
  }
43
43
  //# sourceMappingURL=external.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGtE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,EACD,YAAY,CAAC,EAAE,UAAU,GACxB,IAAI,CAAC;IAER,KAAK,CACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,YAAY,CAAC,EAAE,UAAU,GACxB,IAAI,CAAC;CACT;AAED,qBAAa,sBAAuB,YAAW,eAAe;IAChD,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAE/D,SAAS,CACP,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,EACD,YAAY,CAAC,EAAE,UAAU,GACxB,IAAI;IAUP,WAAW,CACT,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,CAAC,EAAE,UAAU;IAW3B,QAAQ,IAAI,IAAI;CAGjB;AAID,qBAAa,aAAc,YAAW,gBAAgB;IACpD,OAAO,CAAC,SAAS,CAA8C;IAE/D,IAAI,CACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,EACD,YAAY,CAAC,EAAE,UAAU;IAsB3B,KAAK,CACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,YAAY,CAAC,EAAE,UAAU,GACxB,IAAI;CAQR;AAED,qBAAa,MAAM,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,KAAK,CACnE,YAAW,gBAAgB;IAKzB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IALd,OAAO,CAAC,SAAS,CAA8B;gBAGrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAG1C,IAAI,CACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,EACD,YAAY,CAAC,EAAE,UAAU,GACxB,IAAI;IA0BP,KAAK,CACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACvC,YAAY,CAAC,EAAE,UAAU,GACxB,IAAI;CAMR"}
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, reactiveAuth) {
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, reactiveAuth);
11
+ resource.open(params, callbacks);
12
12
  }
13
- unsubscribe(resourceName, params, reactiveAuth) {
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, reactiveAuth);
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, reactiveAuth) {
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, reactiveAuth);
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, reactiveAuth) {
49
- const intervals = this.intervals.get(toId(params, reactiveAuth));
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, reactiveAuth) {
65
- this.close(params, reactiveAuth);
66
- const querieParams = {};
64
+ open(params, callbacks) {
65
+ this.close(params);
66
+ const queryParams = {};
67
67
  for (const [key, value] of Object.entries(params)) {
68
- querieParams[key] = value.toString();
68
+ queryParams[key] = value.toString();
69
69
  }
70
- const strParams = new URLSearchParams(querieParams).toString();
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, reactiveAuth), setInterval(call, this.duration));
84
+ this.intervals.set(toId(params), setInterval(call, this.duration));
85
85
  }
86
- close(params, reactiveAuth) {
87
- const interval = this.intervals.get(toId(params, reactiveAuth));
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, reactiveAuth) {
93
+ function toId(params) {
94
94
  const strparams = Object.entries(params)
95
95
  .map(([key, value]) => `${key}:${value.toString()}`)
96
96
  .sort();
97
- const hex = reactiveAuth ? Buffer.from(reactiveAuth).toString("hex") : "";
98
- return `[${strparams.join(",")}]${hex}`;
97
+ return `[${strparams.join(",")}]`;
99
98
  }
100
99
  //# sourceMappingURL=external.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAmBtC,MAAM,OAAO,sBAAsB;IACjC,YAAoB,SAA2C;QAA3C,cAAS,GAAT,SAAS,CAAkC;IAAG,CAAC;IAEnE,SAAS,CACP,YAAoB,EACpB,MAAuC,EACvC,SAIC,EACD,YAAyB;QAEzB,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,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,WAAW,CACT,YAAoB,EACpB,MAA8B,EAC9B,YAAyB;QAEzB,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,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;QACN,OAAO;IACT,CAAC;CACF;AAID,MAAM,OAAO,aAAa;IAA1B;QACU,cAAS,GAAG,IAAI,GAAG,EAAmC,CAAC;IA0CjE,CAAC;IAxCC,IAAI,CACF,MAAuC,EACvC,SAIC,EACD,YAAyB;QAEzB,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,EAAE,YAAY,CAAC,CAAC;QACtC,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,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,GAAwB,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACrE,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,CACH,MAAuC,EACvC,YAAyB;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;QACjE,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,MAAM,OAAO,MAAM;IAKjB,YACU,GAAW,EACX,QAAgB,EAChB,IAAgC;QAFhC,QAAG,GAAH,GAAG,CAAQ;QACX,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAA4B;QALlC,cAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAM5C,CAAC;IAEJ,IAAI,CACF,MAAuC,EACvC,SAIC,EACD,YAAyB;QAEzB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACjC,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;QACvC,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,CAChB,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1B,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CACjC,CAAC;IACJ,CAAC;IAED,KAAK,CACH,MAAuC,EACvC,YAAyB;QAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,SAAS,IAAI,CACX,MAAuC,EACvC,YAAyB;IAEzB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;SACnD,IAAI,EAAE,CAAC;IACV,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;AAC1C,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
@@ -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, ReactiveResponse, TJSON } from "@skipruntime/api";
2
- import { Protocol } from "@skipruntime/client";
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, auth: (resource: string, params: Record<string, string>, reactiveAuth: Uint8Array) => Promise<ReactiveResponse>, creds?: Protocol.Creds | undefined);
11
- static fromEntrypoint(entrypoint: Entrypoint, auth: (resource: string, params: Record<string, string>, reactiveAuth: Uint8Array) => Promise<ReactiveResponse>, creds?: Protocol.Creds): SkipExternalService;
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<TJSON, TJSON>[], isInit: boolean) => void;
15
- error: (error: TJSON) => void;
9
+ update: (updates: Entry<Json, Json>[], isInit: boolean) => void;
10
+ error: (error: Json) => void;
16
11
  loading: () => void;
17
- }, reactiveAuth?: Uint8Array): void;
18
- unsubscribe(resource: string, params: Record<string, string>, reactiveAuth?: Uint8Array): void;
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
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,EACN,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAW,QAAQ,EAAU,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAMvD,qBAAa,mBAAoB,YAAW,eAAe;IAKvD,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,KAAK,CAAC;IAVhB,OAAO,CAAC,MAAM,CAAC,CAAoC;IACnD,OAAO,CAAC,SAAS,CAA+B;gBAGtC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,EAAE,UAAU,KACrB,OAAO,CAAC,gBAAgB,CAAC,EACtB,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,YAAA;IAGhC,MAAM,CAAC,cAAc,CACnB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,EAAE,UAAU,KACrB,OAAO,CAAC,gBAAgB,CAAC,EAC9B,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,GACrB,mBAAmB;IAOtB,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,UAAU,EACtB,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,GACrB,mBAAmB;IA0BtB,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,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,EACD,YAAY,CAAC,EAAE,UAAU,GACxB,IAAI;IAoBP,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,CAAC,EAAE,UAAU;IAQ3B,QAAQ,IAAI,IAAI;YAUF,UAAU;IAsBxB,OAAO,CAAC,IAAI;CAYb"}
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, auth, creds) {
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 fromEntrypoint(entrypoint, auth, creds) {
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
- const auth = async (resource, params, reactiveAuth) => {
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, reactiveAuth) {
35
- if (!this.client) {
36
- if (!this.creds) {
37
- this.client = Protocol.generateCredentials().then((creds) => {
38
- this.creds = creds;
39
- return connect(this.url, this.creds).then((c) => [c, creds]);
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, reactiveAuth) {
53
- const closable = this.resources.get(this.toId(resource, params, reactiveAuth));
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
- if (this.client) {
59
- this.client
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
- async subscribe_(resource, params, callbacks, reactiveAuth) {
67
- const [client, creds] = await this.client;
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
- const hex = reactiveAuth ? Buffer.from(reactiveAuth).toString("hex") : "";
80
- return `${resource}[${strparams.join(",")}]${hex}`;
44
+ return `${resource}[${strparams.join(",")}]`;
81
45
  }
82
46
  }
83
47
  //# sourceMappingURL=remote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
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 { TJSON, Entry, ReactiveResponse } from "@skipruntime/api";
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?: TJSON): Promise<[V | null, Headers]>;
8
- export declare class SkipRESTService {
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 TJSON, V extends TJSON>(resource: string, params: Record<string, string>, reactiveAuth?: Uint8Array | string): Promise<{
12
- values: Entry<K, V>[];
13
- reactive?: ReactiveResponse;
14
- }>;
15
- head(resource: string, params: Record<string, string>, reactiveAuth: Uint8Array | string): Promise<ReactiveResponse>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGvE,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,KAAK,GACX,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAqB9B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAS;gBAGzB,UAAU,GAAE,UAGX;IAKG,MAAM,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,KAAK,EAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,CAAC,EAAE,UAAU,GAAG,MAAM,GACjC,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC;IA0B5D,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,EAAE,UAAU,GAAG,MAAM,GAChC,OAAO,CAAC,gBAAgB,CAAC;IAgBtB,QAAQ,CAAC,CAAC,SAAS,KAAK,EAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,UAAU,GAAG,MAAM,GACjC,OAAO,CAAC,CAAC,EAAE,CAAC;IAWT,GAAG,CAAC,CAAC,SAAS,KAAK,EACvB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EAAE,GACT,OAAO,CAAC,IAAI,CAAC;IASV,KAAK,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,KAAK,EAC1C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;IAIV,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,OAAO,CAAC,MAAM;CAgBf"}
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 SkipRESTService {
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, reactiveAuth) {
34
+ async getAll(resource, params) {
36
35
  const qParams = new URLSearchParams(params).toString();
37
- let header = {};
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 reactive ? { values, reactive } : { values };
38
+ return values;
54
39
  }
55
- async head(resource, params, reactiveAuth) {
40
+ async getArray(resource, params, key) {
56
41
  const qParams = new URLSearchParams(params).toString();
57
- const header = this.header(reactiveAuth);
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 fetchJSON(`${this.entrypoint}/v1/${collection}/${key}`, "PUT", {}, value);
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 fetchJSON(`${this.entrypoint}/v1/${collection}/${key}`, "DELETE", {});
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":"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"}
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 { Opt } from "@skip-wasm/std";
1
+ import type { Nullable } from "@skip-wasm/std";
2
2
  import { ManyToOneMapper } from "@skipruntime/api";
3
- import type { Accumulator, NonEmptyIterator, ReactiveResponse, TJSON } from "@skipruntime/api";
4
- export declare class Sum implements Accumulator<number, number> {
3
+ import type { Reducer, NonEmptyIterator, ReactiveResponse, Json } from "@skipruntime/api";
4
+ export declare class Sum implements Reducer<number, number> {
5
5
  default: number;
6
- accumulate(acc: number, value: number): number;
7
- dismiss(acc: number, value: number): Opt<number>;
6
+ add(acc: number, value: number): number;
7
+ remove(acc: number, value: number): Nullable<number>;
8
8
  }
9
- export declare class Min implements Accumulator<number, number> {
9
+ export declare class Min implements Reducer<number, number> {
10
10
  default: null;
11
- accumulate(acc: Opt<number>, value: number): number;
12
- dismiss(acc: number, value: number): Opt<number>;
11
+ add(acc: Nullable<number>, value: number): number;
12
+ remove(acc: number, value: number): Nullable<number>;
13
13
  }
14
- export declare class Max implements Accumulator<number, number> {
14
+ export declare class Max implements Reducer<number, number> {
15
15
  default: null;
16
- accumulate(acc: Opt<number>, value: number): number;
17
- dismiss(acc: number, value: number): Opt<number>;
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 TJSON, V extends TJSON> extends ManyToOneMapper<K, V, number> {
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;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACN,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,GAAI,YAAW,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IACrD,OAAO,SAAK;IAEZ,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAI9C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;CAGjD;AAED,qBAAa,GAAI,YAAW,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IACrD,OAAO,OAAQ;IAEf,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;CAGjD;AAED,qBAAa,GAAI,YAAW,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IACrD,OAAO,OAAQ;IAEf,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;CAGjD;AAED,qBAAa,WAAW,CACtB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,KAAK,CACf,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,CAU9B;AAED,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,gBAAgB,GACjC,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlB"}
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"}