mobx-react-use-autorun 1.0.8 → 1.0.11

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/README.md CHANGED
@@ -13,19 +13,13 @@ In the project directory, you can run:<br/>
13
13
  ### `npm test`
14
14
 
15
15
  Run all unit tests.<br/>
16
- See the section about [running tests](https://www.cypress.io) for more information.<br/>
17
16
 
18
- ### `npm run build`
19
-
20
- Builds the app for production to the `build` folder.<br/>
21
- It correctly bundles React in production mode and optimizes the build for the best performance.<br/>
22
17
 
23
- The build is minified and the filenames include the hashes.<br/>
24
- Your app is ready to be deployed!<br/>
18
+ ### `npm run build`
25
19
 
26
- See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.<br/>
20
+ Builds the files for production to the `dist` folder.<br/>
27
21
 
28
- ### `npm run push`
22
+ ### `npm publish`
29
23
 
30
24
  Publish to npm repository
31
25
 
@@ -0,0 +1,12 @@
1
+ import './lib/mobx_config';
2
+ import { toJS, observable } from 'mobx';
3
+ import { useLocalObservable, observer } from 'mobx-react-lite';
4
+ import { timeout } from './lib/timeout';
5
+ import { useAsLocalSource } from './lib/useAsLocalSource';
6
+ import { useAutorun } from './lib/useAutorun';
7
+ import { useAsyncExhaust } from './lib/useAsyncExhaust';
8
+ export { toJS, observable, observer, useLocalObservable };
9
+ export { timeout };
10
+ export { useAsLocalSource };
11
+ export { useAutorun };
12
+ export { useAsyncExhaust };
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ import './lib/mobx_config';
2
+ import { toJS, observable } from 'mobx';
3
+ import { useLocalObservable, observer } from 'mobx-react-lite';
4
+ import { timeout } from './lib/timeout';
5
+ import { useAsLocalSource } from './lib/useAsLocalSource';
6
+ import { useAutorun } from './lib/useAutorun';
7
+ import { useAsyncExhaust } from './lib/useAsyncExhaust';
8
+ export { toJS, observable, observer, useLocalObservable };
9
+ export { timeout };
10
+ export { useAsLocalSource };
11
+ export { useAutorun };
12
+ export { useAsyncExhaust };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAA;AAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,CAAA;AAClB,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,CAAA;AACrB,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { configure } from 'mobx';
2
+ configure({
3
+ enforceActions: "never"
4
+ });
5
+ //# sourceMappingURL=mobx_config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobx_config.js","sourceRoot":"","sources":["../../lib/lib/mobx_config.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,SAAS,CAAC;IACN,cAAc,EAAE,OAAO;CAC1B,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare function timeout(due: number | Date): Promise<void>;
@@ -0,0 +1,50 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { lastValueFrom, timer } from 'rxjs';
38
+ export function timeout(due) {
39
+ return __awaiter(this, void 0, void 0, function () {
40
+ return __generator(this, function (_a) {
41
+ switch (_a.label) {
42
+ case 0: return [4 /*yield*/, lastValueFrom(timer(due))];
43
+ case 1:
44
+ _a.sent();
45
+ return [2 /*return*/];
46
+ }
47
+ });
48
+ });
49
+ }
50
+ //# sourceMappingURL=timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../lib/lib/timeout.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE5C,MAAM,UAAgB,OAAO,CAAC,GAAkB;;;;wBAC5C,qBAAM,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAA;;oBAA/B,SAA+B,CAAC;;;;;CACnC"}
@@ -0,0 +1,2 @@
1
+ import './mobx_config';
2
+ export declare function useAsLocalSource<T extends object>(data: T): T;
@@ -0,0 +1,19 @@
1
+ import './mobx_config';
2
+ import { toJS } from 'mobx';
3
+ import { useRef } from 'react';
4
+ export function useAsLocalSource(data) {
5
+ var initStateCallback = function () {
6
+ if (Array.isArray(data)) {
7
+ throw new Error('Arrays is unsupported!');
8
+ }
9
+ var initState = {};
10
+ return initState;
11
+ };
12
+ var state = useRef(initStateCallback());
13
+ for (var key in data) {
14
+ state.current[key] = toJS(data[key]);
15
+ }
16
+ return state.current;
17
+ }
18
+ ;
19
+ //# sourceMappingURL=useAsLocalSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsLocalSource.js","sourceRoot":"","sources":["../../lib/lib/useAsLocalSource.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,UAAU,gBAAgB,CAAmB,IAAO;IAEtD,IAAM,iBAAiB,GAAG;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC7C;QACD,IAAM,SAAS,GAAG,EAAO,CAAC;QAC1B,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,IAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE1C,KAAK,IAAM,GAAG,IAAI,IAAI,EAAE;QACpB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACxC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACzB,CAAC;AAAA,CAAC"}
@@ -0,0 +1,2 @@
1
+ import './mobx_config';
2
+ export declare function useAsyncExhaust<T>(callback: T): T;
@@ -0,0 +1,139 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import './mobx_config';
38
+ import { toJS } from 'mobx';
39
+ import { useLocalObservable } from 'mobx-react-lite';
40
+ import { useMount, useUnmount } from 'react-use';
41
+ import { catchError, concatMap, debounceTime, EMPTY, from, lastValueFrom, ReplaySubject, Subscription } from 'rxjs';
42
+ import { exhaustMapWithTrailing } from 'rxjs-exhaustmap-with-trailing';
43
+ import { useAsLocalSource } from './useAsLocalSource';
44
+ export function useAsyncExhaust(callback) {
45
+ var _this = this;
46
+ var runCallback = function () {
47
+ if (state.isUnmount) {
48
+ var resultSubjectPromise = Promise.reject(new Error("Cancelled!"));
49
+ resultSubjectPromise.catch(function () { return null; });
50
+ return resultSubjectPromise;
51
+ }
52
+ else {
53
+ var resultSubject = new ReplaySubject(0);
54
+ var resultSubjectPromise = lastValueFrom(resultSubject);
55
+ state.resultSubjectList.push({
56
+ subject: resultSubject,
57
+ promise: resultSubjectPromise
58
+ });
59
+ state.subject.next({
60
+ params: arguments
61
+ });
62
+ return resultSubjectPromise;
63
+ }
64
+ };
65
+ var state = useLocalObservable(function () {
66
+ return {
67
+ subscription: new Subscription(),
68
+ subject: new ReplaySubject(0),
69
+ resultSubjectList: [],
70
+ isUnmount: false,
71
+ };
72
+ });
73
+ var source = useAsLocalSource({
74
+ callback: callback
75
+ });
76
+ useMount(function () {
77
+ state.subscription.add(state.subject.pipe(debounceTime(0), exhaustMapWithTrailing(function (_a) {
78
+ var params = _a.params;
79
+ var resultSubjectList = toJS(state.resultSubjectList);
80
+ return from((function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
81
+ switch (_a.label) {
82
+ case 0: return [4 /*yield*/, source.callback.apply(source, params)];
83
+ case 1: return [2 /*return*/, _a.sent()];
84
+ }
85
+ }); }); })()).pipe(concatMap(function (result) {
86
+ var _loop_1 = function (resultSubject) {
87
+ resultSubject.subject.next(result);
88
+ resultSubject.subject.complete();
89
+ if (resultSubject.subject.closed) {
90
+ var index = state.resultSubjectList.findIndex(function (s) { return s === resultSubject; });
91
+ if (index >= 0) {
92
+ state.resultSubjectList.splice(index, 1);
93
+ }
94
+ }
95
+ };
96
+ for (var _i = 0, resultSubjectList_1 = resultSubjectList; _i < resultSubjectList_1.length; _i++) {
97
+ var resultSubject = resultSubjectList_1[_i];
98
+ _loop_1(resultSubject);
99
+ }
100
+ return EMPTY;
101
+ }), catchError(function (error) {
102
+ var _loop_2 = function (resultSubject) {
103
+ resultSubject.subject.error(error);
104
+ if (resultSubject.subject.closed) {
105
+ var index = state.resultSubjectList.findIndex(function (s) { return s === resultSubject; });
106
+ if (index >= 0) {
107
+ state.resultSubjectList.splice(index, 1);
108
+ }
109
+ }
110
+ };
111
+ for (var _i = 0, resultSubjectList_2 = resultSubjectList; _i < resultSubjectList_2.length; _i++) {
112
+ var resultSubject = resultSubjectList_2[_i];
113
+ _loop_2(resultSubject);
114
+ }
115
+ return EMPTY;
116
+ }));
117
+ })).subscribe());
118
+ });
119
+ useUnmount(function () {
120
+ state.subscription.unsubscribe();
121
+ state.isUnmount = true;
122
+ var _loop_3 = function (resultSubject) {
123
+ resultSubject.promise.catch(function () { return null; });
124
+ resultSubject.subject.error(new Error("Cancelled!"));
125
+ if (resultSubject.subject.closed) {
126
+ var index = state.resultSubjectList.findIndex(function (s) { return s === resultSubject; });
127
+ if (index >= 0) {
128
+ state.resultSubjectList.splice(index, 1);
129
+ }
130
+ }
131
+ };
132
+ for (var _i = 0, _a = toJS(state.resultSubjectList); _i < _a.length; _i++) {
133
+ var resultSubject = _a[_i];
134
+ _loop_3(resultSubject);
135
+ }
136
+ });
137
+ return runCallback;
138
+ }
139
+ //# sourceMappingURL=useAsyncExhaust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsyncExhaust.js","sourceRoot":"","sources":["../../lib/lib/useAsyncExhaust.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import './mobx_config';
2
+ export declare const useAutorun: (callback: () => void, dependencyList: any[]) => void;
@@ -0,0 +1,27 @@
1
+ import './mobx_config';
2
+ import { useLocalObservable } from 'mobx-react-lite';
3
+ import { useMount, useUnmount } from 'react-use';
4
+ import { catchError, distinctUntilChanged, ReplaySubject, Subscription, tap } from 'rxjs';
5
+ import { useEffect } from 'react';
6
+ import { useAsLocalSource } from './useAsLocalSource';
7
+ export var useAutorun = function (callback, dependencyList) {
8
+ var state = useLocalObservable(function () { return ({
9
+ subscription: new Subscription(),
10
+ subject: new ReplaySubject(1),
11
+ }); });
12
+ var source = useAsLocalSource({
13
+ callback: callback
14
+ });
15
+ useEffect(function () {
16
+ state.subject.next(JSON.stringify(dependencyList));
17
+ });
18
+ useMount(function () {
19
+ state.subscription.add(state.subject.pipe(distinctUntilChanged(), tap(function () {
20
+ source.callback();
21
+ }), catchError(function (_, caught) { return caught; })).subscribe());
22
+ });
23
+ useUnmount(function () {
24
+ state.subscription.unsubscribe();
25
+ });
26
+ };
27
+ //# sourceMappingURL=useAutorun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAutorun.js","sourceRoot":"","sources":["../../lib/lib/useAutorun.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,QAAoB,EAAE,cAAqB;IAClE,IAAM,KAAK,GAAG,kBAAkB,CAAC,cAAM,OAAA,CAAC;QACpC,YAAY,EAAE,IAAI,YAAY,EAAE;QAChC,OAAO,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC;KAChC,CAAC,EAHqC,CAGrC,CAAC,CAAA;IAEH,IAAM,MAAM,GAAG,gBAAgB,CAAC;QAC5B,QAAQ,UAAA;KACX,CAAC,CAAA;IAEF,SAAS,CAAC;QACN,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC;QACL,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CACrC,oBAAoB,EAAE,EACtB,GAAG,CAAC;YACA,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,CAAC,EACF,UAAU,CAAC,UAAC,CAAC,EAAE,MAAM,IAAK,OAAA,MAAM,EAAN,CAAM,CAAC,CACpC,CAAC,SAAS,EAAE,CAAC,CAAC;IACnB,CAAC,CAAC,CAAA;IAEF,UAAU,CAAC;QACP,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,11 +1,21 @@
1
1
  {
2
2
  "name": "mobx-react-use-autorun",
3
- "version": "1.0.8",
3
+ "version": "1.0.11",
4
4
  "description": "React Hook for mobx",
5
5
  "scripts": {
6
6
  "build": "npm install -g typescript@4.6.3 @types/node@17.0.23 ts-node@10.7.0 cross-env@7.0.3 && cross-env TS_NODE_SKIP_PROJECT=true ts-node bin/mobx_react_build.ts",
7
7
  "test": "npm install -g typescript@4.6.3 @types/node@17.0.23 ts-node@10.7.0 cross-env@7.0.3 && cross-env TS_NODE_SKIP_PROJECT=true ts-node bin/mobx_react_test.ts",
8
- "push": "npm test npm run build && npm publish"
8
+ "prepublishOnly": "npm test && npm run build"
9
+ },
10
+ "dependencies": {
11
+ "rxjs": "7.5.5",
12
+ "rxjs-exhaustmap-with-trailing": "2.0.0",
13
+ "mobx": "6.5.0",
14
+ "mobx-react-lite": "3.3.0",
15
+ "react-use": "17.3.2"
16
+ },
17
+ "peerDependencies": {
18
+ "react": ">=16.8.0"
9
19
  },
10
20
  "devDependencies": {
11
21
  "@babel/core": "7.17.10",
@@ -19,14 +29,8 @@
19
29
  "get-port": "5.1.1",
20
30
  "jest": "28.0.3",
21
31
  "jest-environment-jsdom": "28.0.2",
22
- "mobx": "6.5.0",
23
- "mobx-react-lite": "3.3.0",
24
32
  "react": "17.0.2",
25
33
  "react-dom": "17.0.2",
26
- "react-use": "17.3.2",
27
- "rxjs": "7.5.5",
28
- "rxjs-exhaustmap-with-trailing": "2.0.0",
29
- "tree-kill": "1.2.2",
30
34
  "ts-node": "10.7.0",
31
35
  "typescript": "4.6.3",
32
36
  "wait-on": "6.0.1"
@@ -54,4 +58,4 @@
54
58
  "publishConfig": {
55
59
  "registry": "https://registry.npmjs.org/"
56
60
  }
57
- }
61
+ }