@outfoxx/sunday 1.1.0-beta.15 → 1.1.0-beta.17

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.
@@ -3,3 +3,25 @@ import { ClassType } from '../class-type';
3
3
  import { Problem } from '../problem';
4
4
  export declare function nullifyNotFound<T>(): (source: Observable<T>) => Observable<T | null>;
5
5
  export declare function nullifyResponse<T>(statuses: number[], problemTypes: ClassType<Problem>[]): (source: Observable<T>) => Observable<T | null>;
6
+ export declare function nullifyPromiseResponse<T>(statuses: number[], problemTypes: ClassType<Problem>[]): (error: unknown) => Promise<T | null>;
7
+ export interface AbortError extends Error {
8
+ }
9
+ export declare type AbortErrorCtor = new () => AbortError;
10
+ /**
11
+ * An error thrown when an Observable converted to a promise is aborted with
12
+ * via a provided `AbortSignal`.
13
+ *
14
+ * @see {@link promiseFrom}
15
+ *
16
+ * @class AbortError
17
+ */
18
+ export declare const AbortError: AbortErrorCtor;
19
+ /**
20
+ * Converts an Observable to a Promise, optionally aborting the Observable via
21
+ * a provided `AbortSignal`.
22
+ *
23
+ * @param obs Observable to convert to a Promise
24
+ * @param signal Optional AbortSignal to abort the Observable
25
+ * @returns Promise that resolves to the first value from the Observable
26
+ */
27
+ export declare function promiseFrom<T>(obs: Observable<T>, signal?: AbortSignal): Promise<T>;
@@ -11,7 +11,8 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { catchError, from, throwError } from 'rxjs';
14
+ import { catchError, firstValueFrom, from, fromEvent, switchMap, take, takeUntil, throwError, } from 'rxjs';
15
+ import { createErrorClass } from 'rxjs/internal/util/createErrorClass';
15
16
  import { Problem } from '../problem';
16
17
  export function nullifyNotFound() {
17
18
  return nullifyResponse([404], []);
@@ -28,4 +29,51 @@ export function nullifyResponse(statuses, problemTypes) {
28
29
  }));
29
30
  };
30
31
  }
32
+ export function nullifyPromiseResponse(statuses, problemTypes) {
33
+ return function (error) {
34
+ const errorType = error
35
+ .constructor;
36
+ if (error instanceof Problem &&
37
+ (statuses.includes(error.status) || problemTypes.includes(errorType))) {
38
+ return Promise.resolve(null);
39
+ }
40
+ return Promise.reject(error);
41
+ };
42
+ }
43
+ /**
44
+ * An error thrown when an Observable converted to a promise is aborted with
45
+ * via a provided `AbortSignal`.
46
+ *
47
+ * @see {@link promiseFrom}
48
+ *
49
+ * @class AbortError
50
+ */
51
+ export const AbortError = createErrorClass((_super) => function AbortErrorImpl() {
52
+ _super(this);
53
+ this.name = 'AbortError';
54
+ this.message = 'sequence was aborted';
55
+ });
56
+ /**
57
+ * Converts an Observable to a Promise, optionally aborting the Observable via
58
+ * a provided `AbortSignal`.
59
+ *
60
+ * @param obs Observable to convert to a Promise
61
+ * @param signal Optional AbortSignal to abort the Observable
62
+ * @returns Promise that resolves to the first value from the Observable
63
+ */
64
+ export function promiseFrom(obs, signal) {
65
+ if (!signal) {
66
+ return firstValueFrom(obs);
67
+ }
68
+ // Reject immediately if the signal has already fired. Use `AbortError`
69
+ // because that's what `first` will fail with per the note below
70
+ if (signal.aborted) {
71
+ return Promise.reject(new AbortError());
72
+ }
73
+ const stop = fromEvent(signal, 'abort').pipe(take(1), switchMap(() => throwError(() => new AbortError())));
74
+ // Note that `takeUntil` will cause the observable to complete when the
75
+ // Signal fires, but `firstValueFrom` will fail with EmptyError if there
76
+ // wasn't a value, which will reject out of the returned Promise.
77
+ return firstValueFrom(obs.pipe(takeUntil(stop)));
78
+ }
31
79
  //# sourceMappingURL=rxjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../src/util/rxjs.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,MAAM,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,UAAU,eAAe;IAG7B,OAAO,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAkB,EAClB,YAAkC;IAElC,OAAO,UAAa,MAAqB;QACvC,OAAO,MAAM,CAAC,IAAI,CAChB,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAiC,CAAC;YAC1D,IACE,KAAK,YAAY,OAAO;gBACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACrE;gBACA,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACrB;YACD,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../src/util/rxjs.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,25 @@ import { ClassType } from '../class-type';
3
3
  import { Problem } from '../problem';
4
4
  export declare function nullifyNotFound<T>(): (source: Observable<T>) => Observable<T | null>;
5
5
  export declare function nullifyResponse<T>(statuses: number[], problemTypes: ClassType<Problem>[]): (source: Observable<T>) => Observable<T | null>;
6
+ export declare function nullifyPromiseResponse<T>(statuses: number[], problemTypes: ClassType<Problem>[]): (error: unknown) => Promise<T | null>;
7
+ export interface AbortError extends Error {
8
+ }
9
+ export declare type AbortErrorCtor = new () => AbortError;
10
+ /**
11
+ * An error thrown when an Observable converted to a promise is aborted with
12
+ * via a provided `AbortSignal`.
13
+ *
14
+ * @see {@link promiseFrom}
15
+ *
16
+ * @class AbortError
17
+ */
18
+ export declare const AbortError: AbortErrorCtor;
19
+ /**
20
+ * Converts an Observable to a Promise, optionally aborting the Observable via
21
+ * a provided `AbortSignal`.
22
+ *
23
+ * @param obs Observable to convert to a Promise
24
+ * @param signal Optional AbortSignal to abort the Observable
25
+ * @returns Promise that resolves to the first value from the Observable
26
+ */
27
+ export declare function promiseFrom<T>(obs: Observable<T>, signal?: AbortSignal): Promise<T>;
@@ -11,7 +11,8 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- import { catchError, from, throwError } from 'rxjs';
14
+ import { catchError, firstValueFrom, from, fromEvent, switchMap, take, takeUntil, throwError, } from 'rxjs';
15
+ import { createErrorClass } from 'rxjs/internal/util/createErrorClass';
15
16
  import { Problem } from '../problem';
16
17
  export function nullifyNotFound() {
17
18
  return nullifyResponse([404], []);
@@ -28,4 +29,51 @@ export function nullifyResponse(statuses, problemTypes) {
28
29
  }));
29
30
  };
30
31
  }
32
+ export function nullifyPromiseResponse(statuses, problemTypes) {
33
+ return function (error) {
34
+ const errorType = error
35
+ .constructor;
36
+ if (error instanceof Problem &&
37
+ (statuses.includes(error.status) || problemTypes.includes(errorType))) {
38
+ return Promise.resolve(null);
39
+ }
40
+ return Promise.reject(error);
41
+ };
42
+ }
43
+ /**
44
+ * An error thrown when an Observable converted to a promise is aborted with
45
+ * via a provided `AbortSignal`.
46
+ *
47
+ * @see {@link promiseFrom}
48
+ *
49
+ * @class AbortError
50
+ */
51
+ export const AbortError = createErrorClass((_super) => function AbortErrorImpl() {
52
+ _super(this);
53
+ this.name = 'AbortError';
54
+ this.message = 'sequence was aborted';
55
+ });
56
+ /**
57
+ * Converts an Observable to a Promise, optionally aborting the Observable via
58
+ * a provided `AbortSignal`.
59
+ *
60
+ * @param obs Observable to convert to a Promise
61
+ * @param signal Optional AbortSignal to abort the Observable
62
+ * @returns Promise that resolves to the first value from the Observable
63
+ */
64
+ export function promiseFrom(obs, signal) {
65
+ if (!signal) {
66
+ return firstValueFrom(obs);
67
+ }
68
+ // Reject immediately if the signal has already fired. Use `AbortError`
69
+ // because that's what `first` will fail with per the note below
70
+ if (signal.aborted) {
71
+ return Promise.reject(new AbortError());
72
+ }
73
+ const stop = fromEvent(signal, 'abort').pipe(take(1), switchMap(() => throwError(() => new AbortError())));
74
+ // Note that `takeUntil` will cause the observable to complete when the
75
+ // Signal fires, but `firstValueFrom` will fail with EmptyError if there
76
+ // wasn't a value, which will reject out of the returned Promise.
77
+ return firstValueFrom(obs.pipe(takeUntil(stop)));
78
+ }
31
79
  //# sourceMappingURL=rxjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../src/util/rxjs.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,MAAM,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,UAAU,eAAe;IAG7B,OAAO,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAkB,EAClB,YAAkC;IAElC,OAAO,UAAa,MAAqB;QACvC,OAAO,MAAM,CAAC,IAAI,CAChB,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAiC,CAAC;YAC1D,IACE,KAAK,YAAY,OAAO;gBACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACrE;gBACA,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACrB;YACD,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../src/util/rxjs.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,25 @@ import { ClassType } from '../class-type';
3
3
  import { Problem } from '../problem';
4
4
  export declare function nullifyNotFound<T>(): (source: Observable<T>) => Observable<T | null>;
5
5
  export declare function nullifyResponse<T>(statuses: number[], problemTypes: ClassType<Problem>[]): (source: Observable<T>) => Observable<T | null>;
6
+ export declare function nullifyPromiseResponse<T>(statuses: number[], problemTypes: ClassType<Problem>[]): (error: unknown) => Promise<T | null>;
7
+ export interface AbortError extends Error {
8
+ }
9
+ export declare type AbortErrorCtor = new () => AbortError;
10
+ /**
11
+ * An error thrown when an Observable converted to a promise is aborted with
12
+ * via a provided `AbortSignal`.
13
+ *
14
+ * @see {@link promiseFrom}
15
+ *
16
+ * @class AbortError
17
+ */
18
+ export declare const AbortError: AbortErrorCtor;
19
+ /**
20
+ * Converts an Observable to a Promise, optionally aborting the Observable via
21
+ * a provided `AbortSignal`.
22
+ *
23
+ * @param obs Observable to convert to a Promise
24
+ * @param signal Optional AbortSignal to abort the Observable
25
+ * @returns Promise that resolves to the first value from the Observable
26
+ */
27
+ export declare function promiseFrom<T>(obs: Observable<T>, signal?: AbortSignal): Promise<T>;
@@ -13,8 +13,9 @@
13
13
  // See the License for the specific language governing permissions and
14
14
  // limitations under the License.
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.nullifyResponse = exports.nullifyNotFound = void 0;
16
+ exports.promiseFrom = exports.AbortError = exports.nullifyPromiseResponse = exports.nullifyResponse = exports.nullifyNotFound = void 0;
17
17
  const rxjs_1 = require("rxjs");
18
+ const createErrorClass_1 = require("rxjs/internal/util/createErrorClass");
18
19
  const problem_1 = require("../problem");
19
20
  function nullifyNotFound() {
20
21
  return nullifyResponse([404], []);
@@ -33,4 +34,53 @@ function nullifyResponse(statuses, problemTypes) {
33
34
  };
34
35
  }
35
36
  exports.nullifyResponse = nullifyResponse;
37
+ function nullifyPromiseResponse(statuses, problemTypes) {
38
+ return function (error) {
39
+ const errorType = error
40
+ .constructor;
41
+ if (error instanceof problem_1.Problem &&
42
+ (statuses.includes(error.status) || problemTypes.includes(errorType))) {
43
+ return Promise.resolve(null);
44
+ }
45
+ return Promise.reject(error);
46
+ };
47
+ }
48
+ exports.nullifyPromiseResponse = nullifyPromiseResponse;
49
+ /**
50
+ * An error thrown when an Observable converted to a promise is aborted with
51
+ * via a provided `AbortSignal`.
52
+ *
53
+ * @see {@link promiseFrom}
54
+ *
55
+ * @class AbortError
56
+ */
57
+ exports.AbortError = (0, createErrorClass_1.createErrorClass)((_super) => function AbortErrorImpl() {
58
+ _super(this);
59
+ this.name = 'AbortError';
60
+ this.message = 'sequence was aborted';
61
+ });
62
+ /**
63
+ * Converts an Observable to a Promise, optionally aborting the Observable via
64
+ * a provided `AbortSignal`.
65
+ *
66
+ * @param obs Observable to convert to a Promise
67
+ * @param signal Optional AbortSignal to abort the Observable
68
+ * @returns Promise that resolves to the first value from the Observable
69
+ */
70
+ function promiseFrom(obs, signal) {
71
+ if (!signal) {
72
+ return (0, rxjs_1.firstValueFrom)(obs);
73
+ }
74
+ // Reject immediately if the signal has already fired. Use `AbortError`
75
+ // because that's what `first` will fail with per the note below
76
+ if (signal.aborted) {
77
+ return Promise.reject(new exports.AbortError());
78
+ }
79
+ const stop = (0, rxjs_1.fromEvent)(signal, 'abort').pipe((0, rxjs_1.take)(1), (0, rxjs_1.switchMap)(() => (0, rxjs_1.throwError)(() => new exports.AbortError())));
80
+ // Note that `takeUntil` will cause the observable to complete when the
81
+ // Signal fires, but `firstValueFrom` will fail with EmptyError if there
82
+ // wasn't a value, which will reject out of the returned Promise.
83
+ return (0, rxjs_1.firstValueFrom)(obs.pipe((0, rxjs_1.takeUntil)(stop)));
84
+ }
85
+ exports.promiseFrom = promiseFrom;
36
86
  //# sourceMappingURL=rxjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../src/util/rxjs.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAEjC,+BAAgE;AAEhE,wCAAqC;AAErC,SAAgB,eAAe;IAG7B,OAAO,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAJD,0CAIC;AAED,SAAgB,eAAe,CAC7B,QAAkB,EAClB,YAAkC;IAElC,OAAO,UAAa,MAAqB;QACvC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,iBAAU,EAAC,CAAC,KAAK,EAAE,EAAE;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAiC,CAAC;YAC1D,IACE,KAAK,YAAY,iBAAO;gBACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACrE;gBACA,OAAO,IAAA,WAAI,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACrB;YACD,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAlBD,0CAkBC"}
1
+ {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../src/util/rxjs.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAEjC,+BAUc;AACd,0EAAuE;AAEvE,wCAAqC;AAErC,SAAgB,eAAe;IAG7B,OAAO,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAJD,0CAIC;AAED,SAAgB,eAAe,CAC7B,QAAkB,EAClB,YAAkC;IAElC,OAAO,UAAa,MAAqB;QACvC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,iBAAU,EAAC,CAAC,KAAK,EAAE,EAAE;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAiC,CAAC;YAC1D,IACE,KAAK,YAAY,iBAAO;gBACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACrE;gBACA,OAAO,IAAA,WAAI,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACrB;YACD,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAlBD,0CAkBC;AAED,SAAgB,sBAAsB,CACpC,QAAkB,EAClB,YAAkC;IAElC,OAAO,UAAa,KAAc;QAChC,MAAM,SAAS,GAAI,KAAiC;aACjD,WAAiC,CAAC;QACrC,IACE,KAAK,YAAY,iBAAO;YACxB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACrE;YACA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAfD,wDAeC;AAOD;;;;;;;GAOG;AACU,QAAA,UAAU,GAAmB,IAAA,mCAAgB,EACxD,CAAC,MAAiC,EAAE,EAAE,CACpC,SAAS,cAAc;IACrB,MAAM,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IACzB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;AACxC,CAAC,CACJ,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,GAAkB,EAClB,MAAoB;IAEpB,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAC;KAC5B;IACD,uEAAuE;IACvE,gEAAgE;IAChE,IAAI,MAAM,CAAC,OAAO,EAAE;QAClB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAU,EAAE,CAAC,CAAC;KACzC;IAED,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAC1C,IAAA,WAAI,EAAC,CAAC,CAAC,EACP,IAAA,gBAAS,EAAC,GAAG,EAAE,CAAC,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,IAAI,kBAAU,EAAE,CAAC,CAAC,CACpD,CAAC;IAEF,uEAAuE;IACvE,wEAAwE;IACxE,iEAAiE;IACjE,OAAO,IAAA,qBAAc,EAAC,GAAG,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAtBD,kCAsBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outfoxx/sunday",
3
- "version": "1.1.0-beta.15",
3
+ "version": "1.1.0-beta.17",
4
4
  "description": "Sunday 🙏 The framework of REST for TypeScript/JavaScript",
5
5
  "main": "build/main/index.js",
6
6
  "module": "build/esm/index.js",