@tamagui/use-controllable-state 1.110.5 → 1.111.0

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.
@@ -26,53 +26,11 @@ __export(useControllableState_exports, {
26
26
  useControllableState: () => useControllableState
27
27
  });
28
28
  module.exports = __toCommonJS(useControllableState_exports);
29
- var import_use_event = require("@tamagui/use-event"), React = __toESM(require("react")), import_start_transition = require("@tamagui/start-transition");
30
- function _array_like_to_array(arr, len) {
31
- (len == null || len > arr.length) && (len = arr.length);
32
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
33
- return arr2;
34
- }
35
- function _array_with_holes(arr) {
36
- if (Array.isArray(arr)) return arr;
37
- }
38
- function _iterable_to_array_limit(arr, i) {
39
- var _i = arr == null ? null : typeof Symbol < "u" && arr[Symbol.iterator] || arr["@@iterator"];
40
- if (_i != null) {
41
- var _arr = [], _n = !0, _d = !1, _s, _e;
42
- try {
43
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), !(i && _arr.length === i)); _n = !0)
44
- ;
45
- } catch (err) {
46
- _d = !0, _e = err;
47
- } finally {
48
- try {
49
- !_n && _i.return != null && _i.return();
50
- } finally {
51
- if (_d) throw _e;
52
- }
53
- }
54
- return _arr;
55
- }
56
- }
57
- function _non_iterable_rest() {
58
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
59
- }
60
- function _sliced_to_array(arr, i) {
61
- return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
62
- }
63
- function _unsupported_iterable_to_array(o, minLen) {
64
- if (o) {
65
- if (typeof o == "string") return _array_like_to_array(o, minLen);
66
- var n = Object.prototype.toString.call(o).slice(8, -1);
67
- if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set") return Array.from(n);
68
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
69
- }
70
- }
71
- var emptyCallbackFn = function(_) {
29
+ var import_use_event = require("@tamagui/use-event"), React = __toESM(require("react")), import_start_transition = require("@tamagui/start-transition"), emptyCallbackFn = function(_) {
72
30
  return _();
73
31
  };
74
32
  function useControllableState(param) {
75
- var prop = param.prop, defaultProp = param.defaultProp, onChange = param.onChange, _param_strategy = param.strategy, strategy = _param_strategy === void 0 ? "prop-wins" : _param_strategy, preventUpdate = param.preventUpdate, transition = param.transition, _React_useState = _sliced_to_array(React.useState(prop ?? defaultProp), 2), state = _React_useState[0], setState = _React_useState[1], previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = (0, import_use_event.useEvent)(onChange || idFn), transitionFn = transition ? import_start_transition.startTransition : emptyCallbackFn;
33
+ var { prop, defaultProp, onChange, strategy = "prop-wins", preventUpdate, transition } = param, [state, setState] = React.useState(prop ?? defaultProp), previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = (0, import_use_event.useEvent)(onChange || idFn), transitionFn = transition ? import_start_transition.startTransition : emptyCallbackFn;
76
34
  React.useEffect(function() {
77
35
  prop !== void 0 && (previous.current = prop, transitionFn(function() {
78
36
  setState(prop);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/core/use-controllable-state/src/useControllableState.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAyB,+BACzB,QAAuB,2BACvB,0BAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOhC,IAAMA,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,qBAAwB,OAcvC;MAbCC,OADsC,MACtCA,MACAC,cAFsC,MAEtCA,aACAC,WAHsC,MAGtCA,UAAAA,kBAHsC,MAItCC,UAAAA,WAAAA,oBAAAA,SAAW,cAAA,iBACXC,gBALsC,MAKtCA,eACAC,aANsC,MAMtCA,YAS0BC,kBAAAA,iBAAAA,MAAMC,SAASP,QAAQC,WAAAA,GAAAA,CAAAA,GAA1CO,QAAmBF,gBAAAA,CAAAA,GAAZG,WAAYH,gBAAAA,CAAAA,GACpBI,WAAWJ,MAAMK,OAAYH,KAAAA,GAC7BI,WAAWT,aAAa,eAAeH,SAASa,QAChDC,QAAQF,WAAWZ,OAAOQ,OAC1BO,iBAAaC,2BAASd,YAAYe,IAAAA,GAElCC,eAAeb,aAAac,0CAAkBtB;AAEpDS,QAAMc,UAAU,WAAA;AACd,IAAIpB,SAASa,WACbH,SAASW,UAAUrB,MACnBkB,aAAa,WAAA;AACXT,eAAST,IAAAA;IACX,CAAA;EACF,GAAG;IAACA;GAAK,GAETM,MAAMc,UAAU,WAAA;AACd,IAAIR,YACAJ,UAAUE,SAASW,YACrBX,SAASW,UAAUb,OACnBO,WAAWP,KAAAA;EAEf,GAAG;IAACO;IAAYP;IAAOI;GAAS;AAEhC,MAAMU,aAASN,2BAAS,SAACO,MAAAA;AACvB,QAAInB;AACJ,UAAIQ,UAAU;AACZ,YAAMY,YAAY,OAAOD,QAAS,aAAaA,KAAKb,SAASW,OAAO,IAAIE;AACxER,mBAAWS,SAAAA;MACb;AACEN,qBAAa,WAAA;AACXT,mBAASc,IAAAA;QACX,CAAA;EAEJ,CAAA;AAEA,SAAO;IAACT;IAAYQ;;AACtB;AAEA,IAAML,OAAO,WAAA;AAAO;",
5
- "names": ["emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "React", "useState", "state", "setState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "useEvent", "idFn", "transitionFn", "startTransition", "useEffect", "current", "setter", "next", "nextValue"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;uBAAyB,+BACzB,QAAuB,2BACvB,0BAAgC,sCAO1BA,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,qBAAwB,OAcvC;MAduC,EACtCC,MACAC,aACAC,UACAC,WAAW,aACXC,eACAC,WAAU,IAN4B,OAehC,CAACC,OAAOC,QAAAA,IAAYC,MAAMC,SAAST,QAAQC,WAAAA,GAC3CS,WAAWF,MAAMG,OAAYL,KAAAA,GAC7BM,WAAWT,aAAa,eAAeH,SAASa,QAChDC,QAAQF,WAAWZ,OAAOM,OAC1BS,iBAAaC,2BAASd,YAAYe,IAAAA,GAElCC,eAAeb,aAAac,0CAAkBtB;AAEpDW,QAAMY,UAAU,WAAA;AACd,IAAIpB,SAASa,WACbH,SAASW,UAAUrB,MACnBkB,aAAa,WAAA;AACXX,eAASP,IAAAA;IACX,CAAA;EACF,GAAG;IAACA;GAAK,GAETQ,MAAMY,UAAU,WAAA;AACd,IAAIR,YACAN,UAAUI,SAASW,YACrBX,SAASW,UAAUf,OACnBS,WAAWT,KAAAA;EAEf,GAAG;IAACS;IAAYT;IAAOM;GAAS;AAEhC,MAAMU,aAASN,2BAAS,SAACO,MAAAA;AACvB,QAAInB;AACJ,UAAIQ,UAAU;AACZ,YAAMY,YAAY,OAAOD,QAAS,aAAaA,KAAKb,SAASW,OAAO,IAAIE;AACxER,mBAAWS,SAAAA;MACb;AACEN,qBAAa,WAAA;AACXX,mBAASgB,IAAAA;QACX,CAAA;EAEJ,CAAA;AAEA,SAAO;IAACT;IAAYQ;;AACtB;AAEA,IAAML,OAAO,WAAA;AAAO;",
5
+ "names": ["emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "state", "setState", "React", "useState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "useEvent", "idFn", "transitionFn", "startTransition", "useEffect", "current", "setter", "next", "nextValue"]
6
6
  }
@@ -0,0 +1,2 @@
1
+ export * from "./useControllableState.mjs";
2
+ //# sourceMappingURL=index.native.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -1,52 +1,11 @@
1
1
  import { useEvent } from "@tamagui/use-event";
2
2
  import * as React from "react";
3
3
  import { startTransition } from "@tamagui/start-transition";
4
- function _array_like_to_array(arr, len) {
5
- (len == null || len > arr.length) && (len = arr.length);
6
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
7
- return arr2;
8
- }
9
- function _array_with_holes(arr) {
10
- if (Array.isArray(arr)) return arr;
11
- }
12
- function _iterable_to_array_limit(arr, i) {
13
- var _i = arr == null ? null : typeof Symbol < "u" && arr[Symbol.iterator] || arr["@@iterator"];
14
- if (_i != null) {
15
- var _arr = [], _n = !0, _d = !1, _s, _e;
16
- try {
17
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), !(i && _arr.length === i)); _n = !0)
18
- ;
19
- } catch (err) {
20
- _d = !0, _e = err;
21
- } finally {
22
- try {
23
- !_n && _i.return != null && _i.return();
24
- } finally {
25
- if (_d) throw _e;
26
- }
27
- }
28
- return _arr;
29
- }
30
- }
31
- function _non_iterable_rest() {
32
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
33
- }
34
- function _sliced_to_array(arr, i) {
35
- return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
36
- }
37
- function _unsupported_iterable_to_array(o, minLen) {
38
- if (o) {
39
- if (typeof o == "string") return _array_like_to_array(o, minLen);
40
- var n = Object.prototype.toString.call(o).slice(8, -1);
41
- if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set") return Array.from(n);
42
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
43
- }
44
- }
45
4
  var emptyCallbackFn = function(_) {
46
5
  return _();
47
6
  };
48
7
  function useControllableState(param) {
49
- var prop = param.prop, defaultProp = param.defaultProp, onChange = param.onChange, _param_strategy = param.strategy, strategy = _param_strategy === void 0 ? "prop-wins" : _param_strategy, preventUpdate = param.preventUpdate, transition = param.transition, _React_useState = _sliced_to_array(React.useState(prop ?? defaultProp), 2), state = _React_useState[0], setState = _React_useState[1], previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = useEvent(onChange || idFn), transitionFn = transition ? startTransition : emptyCallbackFn;
8
+ var { prop, defaultProp, onChange, strategy = "prop-wins", preventUpdate, transition } = param, [state, setState] = React.useState(prop ?? defaultProp), previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = useEvent(onChange || idFn), transitionFn = transition ? startTransition : emptyCallbackFn;
50
9
  React.useEffect(function() {
51
10
  prop !== void 0 && (previous.current = prop, transitionFn(function() {
52
11
  setState(prop);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/core/use-controllable-state/src/useControllableState.ts"],
4
- "mappings": "AAAA,SAASA,gBAAgB;AACzB,YAAYC,WAAW;AACvB,SAASC,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOhC,IAAMC,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,qBAAwB,OAcvC;MAbCC,OADsC,MACtCA,MACAC,cAFsC,MAEtCA,aACAC,WAHsC,MAGtCA,UAAAA,kBAHsC,MAItCC,UAAAA,WAAAA,oBAAAA,SAAW,cAAA,iBACXC,gBALsC,MAKtCA,eACAC,aANsC,MAMtCA,YAS0BV,kBAAAA,iBAAAA,MAAMW,SAASN,QAAQC,WAAAA,GAAAA,CAAAA,GAA1CM,QAAmBZ,gBAAAA,CAAAA,GAAZa,WAAYb,gBAAAA,CAAAA,GACpBc,WAAWd,MAAMe,OAAYH,KAAAA,GAC7BI,WAAWR,aAAa,eAAeH,SAASY,QAChDC,QAAQF,WAAWX,OAAOO,OAC1BO,aAAapB,SAASQ,YAAYa,IAAAA,GAElCC,eAAeX,aAAaT,kBAAkBC;AAEpDF,QAAMsB,UAAU,WAAA;AACd,IAAIjB,SAASY,WACbH,SAASS,UAAUlB,MACnBgB,aAAa,WAAA;AACXR,eAASR,IAAAA;IACX,CAAA;EACF,GAAG;IAACA;GAAK,GAETL,MAAMsB,UAAU,WAAA;AACd,IAAIN,YACAJ,UAAUE,SAASS,YACrBT,SAASS,UAAUX,OACnBO,WAAWP,KAAAA;EAEf,GAAG;IAACO;IAAYP;IAAOI;GAAS;AAEhC,MAAMQ,SAASzB,SAAS,SAAC0B,MAAAA;AACvB,QAAIhB;AACJ,UAAIO,UAAU;AACZ,YAAMU,YAAY,OAAOD,QAAS,aAAaA,KAAKX,SAASS,OAAO,IAAIE;AACxEN,mBAAWO,SAAAA;MACb;AACEL,qBAAa,WAAA;AACXR,mBAASY,IAAAA;QACX,CAAA;EAEJ,CAAA;AAEA,SAAO;IAACP;IAAYM;;AACtB;AAEA,IAAMJ,OAAO,WAAA;AAAO;",
5
- "names": ["useEvent", "React", "startTransition", "emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "useState", "state", "setState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "idFn", "transitionFn", "useEffect", "current", "setter", "next", "nextValue"]
4
+ "mappings": "AAAA,SAASA,gBAAgB;AACzB,YAAYC,WAAW;AACvB,SAASC,uBAAuB;AAOhC,IAAMC,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,qBAAwB,OAcvC;MAduC,EACtCC,MACAC,aACAC,UACAC,WAAW,aACXC,eACAC,WAAU,IAN4B,OAehC,CAACC,OAAOC,QAAAA,IAAYZ,MAAMa,SAASR,QAAQC,WAAAA,GAC3CQ,WAAWd,MAAMe,OAAYJ,KAAAA,GAC7BK,WAAWR,aAAa,eAAeH,SAASY,QAChDC,QAAQF,WAAWX,OAAOM,OAC1BQ,aAAapB,SAASQ,YAAYa,IAAAA,GAElCC,eAAeX,aAAaT,kBAAkBC;AAEpDF,QAAMsB,UAAU,WAAA;AACd,IAAIjB,SAASY,WACbH,SAASS,UAAUlB,MACnBgB,aAAa,WAAA;AACXT,eAASP,IAAAA;IACX,CAAA;EACF,GAAG;IAACA;GAAK,GAETL,MAAMsB,UAAU,WAAA;AACd,IAAIN,YACAL,UAAUG,SAASS,YACrBT,SAASS,UAAUZ,OACnBQ,WAAWR,KAAAA;EAEf,GAAG;IAACQ;IAAYR;IAAOK;GAAS;AAEhC,MAAMQ,SAASzB,SAAS,SAAC0B,MAAAA;AACvB,QAAIhB;AACJ,UAAIO,UAAU;AACZ,YAAMU,YAAY,OAAOD,QAAS,aAAaA,KAAKX,SAASS,OAAO,IAAIE;AACxEN,mBAAWO,SAAAA;MACb;AACEL,qBAAa,WAAA;AACXT,mBAASa,IAAAA;QACX,CAAA;EAEJ,CAAA;AAEA,SAAO;IAACP;IAAYM;;AACtB;AAEA,IAAMJ,OAAO,WAAA;AAAO;",
5
+ "names": ["useEvent", "React", "startTransition", "emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "state", "setState", "useState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "idFn", "transitionFn", "useEffect", "current", "setter", "next", "nextValue"]
6
6
  }
@@ -0,0 +1,41 @@
1
+ import { useEvent } from "@tamagui/use-event";
2
+ import * as React from "react";
3
+ import { startTransition } from "@tamagui/start-transition";
4
+ var emptyCallbackFn = function (_) {
5
+ return _();
6
+ };
7
+ function useControllableState(param) {
8
+ var {
9
+ prop,
10
+ defaultProp,
11
+ onChange,
12
+ strategy = "prop-wins",
13
+ preventUpdate,
14
+ transition
15
+ } = param,
16
+ [state, setState] = React.useState(prop ?? defaultProp),
17
+ previous = React.useRef(state),
18
+ propWins = strategy === "prop-wins" && prop !== void 0,
19
+ value = propWins ? prop : state,
20
+ onChangeCb = useEvent(onChange || idFn),
21
+ transitionFn = transition ? startTransition : emptyCallbackFn;
22
+ React.useEffect(function () {
23
+ prop !== void 0 && (previous.current = prop, transitionFn(function () {
24
+ setState(prop);
25
+ }));
26
+ }, [prop]), React.useEffect(function () {
27
+ propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
28
+ }, [onChangeCb, state, propWins]);
29
+ var setter = useEvent(function (next) {
30
+ if (!preventUpdate) if (propWins) {
31
+ var nextValue = typeof next == "function" ? next(previous.current) : next;
32
+ onChangeCb(nextValue);
33
+ } else transitionFn(function () {
34
+ setState(next);
35
+ });
36
+ });
37
+ return [value, setter];
38
+ }
39
+ var idFn = function () {};
40
+ export { useControllableState };
41
+ //# sourceMappingURL=useControllableState.native.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEvent","React","startTransition","emptyCallbackFn","_","useControllableState","param","prop","defaultProp","onChange","strategy","preventUpdate","transition","state","setState","useState","previous","useRef","propWins","value","onChangeCb","idFn","transitionFn","useEffect","current","setter","next","nextValue"],"sources":["../../src/useControllableState.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AACvB,SAASC,eAAA,QAAuB;AAOhC,IAAAC,eAAM,YAAAA,CAAyBC,CAAA,EAAE;EAE1B,OAASA,CAAA;AAAwB;AACtC,SACAC,qBAAAC,KAAA;EACA;MAAAC,IAAA;MAAAC,WAAA;MAAAC,QAAA;MAAAC,QAAA;MAAAC,aAAA;MAAAC;IAAA,IAAAN,KAAA;IAAA,CAAAO,KAAA,EAAAC,QAAA,IAAAb,KAAA,CAAAc,QAAA,CAAAR,IAAA,IAAAC,WAAA;IAAAQ,QAAA,GAAAf,KAAA,CAAAgB,MAAA,CAAAJ,KAAA;IAAAK,QAAA,GAAAR,QAAA,oBAAAH,IAAA;IAAAY,KAAA,GAAAD,QAAA,GAAAX,IAAA,GAAAM,KAAA;IAAAO,UAAA,GAAApB,QAAA,CAAAS,QAAA,IAAAY,IAAA;IAAAC,YAAA,GAAAV,UAAA,GAAAV,eAAA,GAAAC,eAAA;EACAF,KAAA,CAAAsB,SAAW;IACXhB,IAAA,gBAAAS,QAAA,CAAAQ,OAAA,GAAAjB,IAAA,EAAAe,YAAA;MACAR,QAAA,CAAAP,IAAA;IAQ+C;EAC/C,IAQAA,IAAM,CACJ,CAAI,EAAAN,KAAA,CAAAsB,SAAS,aACJ;IAEPL,QAAA,IAASL,KAAI,KAAAG,QAAA,CAAAQ,OAAA,KAAAR,QAAA,CAAAQ,OAAA,GAAAX,KAAA,EAAAO,UAAA,CAAAP,KAAA;EAAA,GACd,CACHO,UAEA,EACMP,KAAA,EAKNK,QAAI,CAEJ;EACE,IAAAO,MAAI,GAAAzB,QAAA,WAAA0B,IAAA;IACJ,KAAAf,aAAc,EACZ,IAAAO,QAAM;MACN,IAAAS,SAAW,UAASD,IAAA,iBAAAA,IAAA,CAAAV,QAAA,CAAAQ,OAAA,IAAAE,IAAA;MACtBN,UAAA,CAAAO,SAAA;IACE,OACEL,YAAS,aAAI;MACdR,QAAA,CAAAY,IAAA;IAEJ;EAED;EACF,QAEAP,KAAM,EAAcM,MAAA,C","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/use-controllable-state",
3
- "version": "1.110.5",
3
+ "version": "1.111.0",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "types": "./types/index.d.ts",
@@ -30,11 +30,11 @@
30
30
  }
31
31
  },
32
32
  "dependencies": {
33
- "@tamagui/start-transition": "1.110.5",
34
- "@tamagui/use-event": "1.110.5"
33
+ "@tamagui/start-transition": "1.111.0",
34
+ "@tamagui/use-event": "1.111.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@tamagui/build": "1.110.5",
37
+ "@tamagui/build": "1.111.0",
38
38
  "react": "^18.2.0 || ^19.0.0"
39
39
  },
40
40
  "publishConfig": {