ivue 0.1.6 → 0.1.7

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/dist/index.es.js CHANGED
@@ -151,7 +151,7 @@ function $(t2, e2, n2, r2, o2, i2, s2) {
151
151
  function D(t2, ...s2) {
152
152
  let u2 = e(), c2 = n(!!u2), a2 = P(t2.prototype), f2 = a2.size ? {} : null, l2 = new Proxy(r(new t2(...s2)), { get: (t3, e2) => {
153
153
  var _a, _b;
154
- return a2.has(e2) && ((_b = (_a = l2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in f2 || (c2 == null ? void 0 : c2.run(() => f2[e2] = o(() => a2.get(e2).get.bind(l2)()))), f2[e2].value) : "toRefs" === e2 ? J(l2, a2, f2, c2) : t3[e2];
154
+ return a2.has(e2) && ((_b = (_a = l2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in f2 || (c2 == null ? void 0 : c2.run(() => f2[e2] = o(() => a2.get(e2).get.bind(l2)()))), f2[e2].value) : "toRefs" === e2 ? W(l2, a2, f2, c2) : t3[e2];
155
155
  } });
156
156
  return "init" in l2 && c2.run(() => l2.init()), u2 && i(() => {
157
157
  let t3;
@@ -168,7 +168,7 @@ function x(t2) {
168
168
  for (let t4 = 0; t4 < n2.length; t4++)
169
169
  "function" == typeof n2[t4][1].get && "__proto__" !== n2[t4][0] && e2.set(n2[t4][0], n2[t4][1]);
170
170
  return e2;
171
- }(t2), c2 = u2.size ? {} : null, a2 = W(r(t2), u2, c2, s2);
171
+ }(t2), c2 = u2.size ? {} : null, a2 = A(r(t2), u2, c2, s2);
172
172
  return "init" in a2 && s2.run(() => a2.init()), o2 && i(() => {
173
173
  let e2;
174
174
  for (e2 in s2 == null ? void 0 : s2.stop(), a2)
@@ -178,19 +178,19 @@ function x(t2) {
178
178
  o2 = s2 = u2 = c2 = t2 = a2 = e2 = null;
179
179
  }), a2;
180
180
  }
181
- function W(t2, e2, n2, r2, ...i2) {
182
- return new Proxy(t2, { get: (i3, s2) => {
181
+ function A(t2, e2, n2, r2) {
182
+ return new Proxy(t2, { get: (i2, s2) => {
183
183
  var _a, _b;
184
184
  return e2.has(s2) && ((_b = (_a = t2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[s2]) !== R.OFF ? (s2 in n2 || (r2 == null ? void 0 : r2.run(() => n2[s2] = o(() => {
185
185
  var _a2;
186
186
  return (_a2 = e2.get(s2)) == null ? void 0 : _a2.get.bind(t2)();
187
- }))), n2[s2].value) : "toRefs" === s2 ? J(t2, e2, n2, r2) : i3[s2];
187
+ }))), n2[s2].value) : "toRefs" === s2 ? W(t2, e2, n2, r2) : i2[s2];
188
188
  } });
189
189
  }
190
- function J(t2, e2, n2, r2) {
190
+ function W(t2, e2, n2, r2) {
191
191
  return function(i2) {
192
192
  const u2 = {};
193
- if (i2.length)
193
+ if (Array.isArray(i2) && i2.length)
194
194
  for (let c2 = 0; c2 < i2.length; c2++) {
195
195
  const a2 = i2[c2];
196
196
  e2.has(a2) ? a2 in n2 ? u2[a2] = n2[a2] : r2.run(() => u2[a2] = n2[a2] = o(() => {
@@ -208,13 +208,13 @@ function J(t2, e2, n2, r2) {
208
208
  return new Proxy(t2, { get: (e3, n3) => n3 in u2 ? u2[n3] : n3 in e3 ? e3[n3].bind(t2) : void 0 });
209
209
  };
210
210
  }
211
- const z = (t2) => {
211
+ const J = (t2) => {
212
212
  let e2 = u(t2), n2 = Object.getOwnPropertyNames(e2);
213
213
  for (let t3 = 0; t3 < n2.length; t3++)
214
214
  delete e2[n2[t3]];
215
215
  e2 = null, n2 = null;
216
216
  };
217
- class A {
217
+ class z {
218
218
  constructor(t2) {
219
219
  __publicField(this, "to");
220
220
  __publicField(this, "scope", "singleton");
@@ -233,7 +233,7 @@ class U {
233
233
  __publicField(this, "current");
234
234
  }
235
235
  bind(t2) {
236
- return this.current = new A(t2), this;
236
+ return this.current = new z(t2), this;
237
237
  }
238
238
  to(t2) {
239
239
  return this.current.to = t2, this;
@@ -286,7 +286,7 @@ class U {
286
286
  if (g2)
287
287
  for (t3 in g2)
288
288
  delete g2[t3];
289
- l2 && z(l2), d2 = a2 = f2 = l2 = p2 = b2 = g2 = t3 = null, this.effectScopes.delete(s2), this.instances.delete(s2), this.subscribers.delete(s2), j.debug && console.log("ivue.kernel: instance deleted:", s2.name);
289
+ l2 && J(l2), d2 = a2 = f2 = l2 = p2 = b2 = g2 = t3 = null, this.effectScopes.delete(s2), this.instances.delete(s2), this.subscribers.delete(s2), j.debug && console.log("ivue.kernel: instance deleted:", s2.name);
290
290
  }
291
291
  }), this.instances.has(s2))
292
292
  return this.instances.get(s2);
@@ -301,7 +301,7 @@ class U {
301
301
  h2 = P(f2.to.prototype), p2 = h2.size ? {} : null;
302
302
  let i2 = new Proxy(r(new s2(...u2)), { get: (t2, e2) => {
303
303
  var _a, _b;
304
- return h2.has(e2) && ((_b = (_a = i2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in p2 || (a2 == null ? void 0 : a2.run(() => p2[e2] = o(() => h2.get(e2).get.bind(i2)()))), p2[e2].value) : "toRefs" === e2 ? J(i2, h2, p2, a2) : t2[e2];
304
+ return h2.has(e2) && ((_b = (_a = i2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in p2 || (a2 == null ? void 0 : a2.run(() => p2[e2] = o(() => h2.get(e2).get.bind(i2)()))), p2[e2].value) : "toRefs" === e2 ? W(i2, h2, p2, a2) : t2[e2];
305
305
  } });
306
306
  if ("behavior" in i2.constructor) {
307
307
  for (const e2 in i2.constructor.behavior)
@@ -330,7 +330,7 @@ class U {
330
330
  f2 = b2.size ? {} : null;
331
331
  let g2 = new Proxy(r(new s2(...u2)), { get: (t2, e2) => {
332
332
  var _a, _b;
333
- return b2.has(e2) && ((_b = (_a = g2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in f2 || (p2 == null ? void 0 : p2.run(() => f2[e2] = o(() => b2.get(e2).get.bind(g2)()))), f2[e2].value) : "toRefs" === e2 ? J(g2, b2, f2, p2) : t2[e2];
333
+ return b2.has(e2) && ((_b = (_a = g2.constructor) == null ? void 0 : _a.behavior) == null ? void 0 : _b[e2]) !== R.OFF ? (e2 in f2 || (p2 == null ? void 0 : p2.run(() => f2[e2] = o(() => b2.get(e2).get.bind(g2)()))), f2[e2].value) : "toRefs" === e2 ? W(g2, b2, f2, p2) : t2[e2];
334
334
  } });
335
335
  if ("behavior" in g2.constructor) {
336
336
  for (const e2 in g2.constructor.behavior)
@@ -344,7 +344,7 @@ class U {
344
344
  }
345
345
  return S.after.has(c2.to) && (a2 = { mapping: c2, self: g2, return: g2, name: c2.to.constructor.name, args: u2 }, true === k("after", c2.to, a2)) ? a2.return : ("init" in g2 && p2.run(() => g2.init()), h2 && i(() => {
346
346
  let t2;
347
- if (p2 == null ? void 0 : p2.stop(), z(g2), a2)
347
+ if (p2 == null ? void 0 : p2.stop(), J(g2), a2)
348
348
  for (t2 in a2)
349
349
  delete a2[t2];
350
350
  if (f2)
@@ -381,10 +381,10 @@ function K(t2, ...r2) {
381
381
  return i2;
382
382
  }
383
383
  function q(t2, o2, ...s2) {
384
- let u2 = n(!!e()), c2 = P(Reflect.getPrototypeOf(o2)), a2 = c2.value ? {} : null, f2 = W(r(Object.create(o2)), c2, a2, u2, ...s2);
384
+ let u2 = n(!!e()), c2 = P(Reflect.getPrototypeOf(o2)), a2 = c2.value ? {} : null, f2 = A(r(Object.create(o2)), c2, a2, u2);
385
385
  var l2;
386
386
  return "function" == typeof f2.init && u2.run(() => f2.init()), l2 = () => {
387
- u2 == null ? void 0 : u2.stop(), z(f2), u2 = f2 = null;
387
+ u2 == null ? void 0 : u2.stop(), J(f2), u2 = f2 = null;
388
388
  }, e() && i(l2), f2;
389
389
  }
390
390
  const B = new U(), G = B.bind.bind(B), H = B.get.bind(B), L = B.make.bind(B), Q = B.use.bind(B), V = B.init.bind(B);
@@ -483,7 +483,7 @@ O(at, [st, et, ut, ct, rt, Z]);
483
483
  export {
484
484
  R as IVUE,
485
485
  U as Kernel,
486
- A as Mapping,
486
+ z as Mapping,
487
487
  O as Traits,
488
488
  X as UseCapsule,
489
489
  ut as UseEmit,
@@ -505,7 +505,7 @@ export {
505
505
  x as iobj,
506
506
  D as ivue,
507
507
  q as ivueInversify,
508
- W as ivueTransform,
508
+ A as ivueTransform,
509
509
  B as kernel,
510
510
  L as make,
511
511
  F as pre,
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- var __defProp=Object.defineProperty,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__publicField=(e,t,n)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,n),n);!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ivue={},e.Vue)}(this,(function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&!Array.isArray(e)}function r(e,...t){return o(e,[...t],new WeakMap)}function o(e,t,r=null){if(!t.length)return e;r.set(e,!0);const i=t.shift();if(n(e)&&n(i))for(const u in i)n(i[u])&&"Object"===i[u].constructor.name?r.has(i[u])||null!==(s=i[u])&&"object"==typeof s&&"function"==typeof s.then&&"function"==typeof s.catch||void 0===e[u]?e[u]=i[u]:n(e[u])&&e[u].constructor===Object?o(e[u],[i[u]],r):e[u]=i[u]:e[u]=i[u];var s;return o(e,t,r)}function i(e,t){const n={},r=Object.getOwnPropertyNames(e.prototype).reduce(((t,r)=>{const o=Object.getOwnPropertyDescriptor(e.prototype,r);let i=!1;return(null==o?void 0:o.set)&&!(null==o?void 0:o.get)&&(n[r]=null==o?void 0:o.set,i=!0),i||(t[r]=!0),t}),{}),o={};t.reverse().forEach((t=>{const i=new t(e);for(const n in i)n in r||(o[n]=!0),n in o&&Object.defineProperty(e.prototype,n,{value:i[n],writable:!0});Object.getOwnPropertyNames(t.prototype).forEach((i=>{if("constructor"!==i&&(i in r||(o[i]=!0),i in o)){const r=Object.getOwnPropertyDescriptor(t.prototype,i)||Object.create(null);(null==r?void 0:r.set)&&!(i in n)&&(n[i]=null==r?void 0:r.set),(null==r?void 0:r.get)&&!(null==r?void 0:r.set)&&i in n&&(r.set=n[i]),Object.defineProperty(e.prototype,i,r)}}))}))}const s=new Map;function u(e){if(s.has(e))return s.get(e);const t=e,n=[];n.push.apply(n,Object.entries(Object.getOwnPropertyDescriptors(e)));const r=new Map;for(let o=0;o<n.length;o++)"__proto__"!==n[o][0]&&"function"==typeof n[o][1].get&&r.set(n[o][0],n[o][1]);return s.set(t,r),r}function c(e){let t="";try{t=(null==e?void 0:e.name)||String(e)}catch(n){t="Unknown[failed to convert to string]"}return t}let l={router:null,debug:!1};const a={before:new Map,after:new Map};function f(e,t,n){const r=a[e].get(t);for(let o=0;o<(null==r?void 0:r.length);o++)if(!0===r[o](n,...n.args))return n.return}function p(e,t,n,r){var o;a[e].has(t)?null==(o=a[e].get(t))||o[r.top?"unshift":"push"](n):a[e].set(t,[n])}function h(e,t){var n;if(Array.isArray(e)){if("function"!=typeof e[0])throw new Error("ivue.kernel.behavior: Cannot autobind intercept to "+e[0]+". Supply a valid Class to autobind behavior.");if("function"==typeof e[1]){const n=e[1].toString();if("class"!==n.substring(0,5)){const r=n.indexOf("(");n.substring(0,r).split(" "),e[0].behavior={..."object"==typeof e[0].behavior?e[0].behavior:{},funcName:t?"SCOPED_INTERCEPT":"INTERCEPT"}}return e[1]}throw new Error('ivue.kernel.behavior: Cannot autobind intercept "'+e[1]+'" to '+((null==(n=e[0])?void 0:n.name)??e[0]))}return e}function b(e,t,n={top:!1,scoped:!1}){p("after",h(e,n.scoped),t,n)}function d(e,t,n,r,o){let i=a[e].get(t.constructor.prototype[n]);for(let s=0;s<(null==i?void 0:i.length);s++)if(!0===i[s](o,...r))return!0;i=a[e].get(t[n]);for(let s=0;s<(null==i?void 0:i.length);s++)if(!0===i[s](o,...r))return!0}var g,v=((g=v||{}).SCOPED="SCOPED",g.SCOPED_INTERCEPT="SCOPED_INTERCEPT",g.INTERCEPT="INTERCEPT",g.OFF="OFF",g);function m(e,t,n,r,o,i,s){let u;if("SCOPED"===t)return Object.defineProperty(r,o,{value:function(...e){return i.run((()=>u=n.bind(r)(...e))),u},writable:!0,configurable:!0,enumerable:!1});const c=(...t)=>(!0===d("before",r,o,t,s={mapping:e,self:r,return:u,name:o,args:t})||(u=n.bind(r)(...t),s.return=u,d("after",r,o,t,s)),s.return);switch(t){case"INTERCEPT":return Object.defineProperty(r,o,{value:function(...e){return c(...e)},writable:!0,configurable:!0,enumerable:!1});case"SCOPED_INTERCEPT":return Object.defineProperty(r,o,{value:function(...e){return i.run((()=>u=c(...e))),u},writable:!0,configurable:!0,enumerable:!1})}}function y(e,n,r,o,...i){return new Proxy(e,{get:(i,s)=>{var u,c;return n.has(s)&&(null==(c=null==(u=e.constructor)?void 0:u.behavior)?void 0:c[s])!==v.OFF?(s in r||(null==o||o.run((()=>r[s]=t.computed((()=>{var t;return null==(t=n.get(s))?void 0:t.get.bind(e)()}))))),r[s].value):"toRefs"===s?_(e,n,r,o):i[s]}})}function _(e,n,r,o){return function(i){const s={};if(i.length)for(let u=0;u<i.length;u++){const c=i[u];n.has(c)?c in r?s[c]=r[c]:o.run((()=>s[c]=r[c]=t.computed((()=>{var t;return null==(t=n.get(c))?void 0:t.get.bind(e)()})))):"function"==typeof e[c]?s[c]=e[c].bind(e):s[c]=t.toRef(e,c)}else{for(const r in e)n.has(r)||("function"==typeof e[r]?s[r]=e[r].bind(e):s[r]=t.toRef(e,r));n.forEach(((n,i)=>{i in r?s[i]=r[i]:o.run((()=>s[i]=r[i]=t.computed((()=>n.get.bind(e)()))))}))}return new Proxy(e,{get:(t,n)=>n in s?s[n]:n in t?t[n].bind(e):void 0})}}const w=e=>{let n=t.toRaw(e),r=Object.getOwnPropertyNames(n);for(let t=0;t<r.length;t++)delete n[r[t]];n=null,r=null};class O{constructor(e){__publicField(this,"to"),__publicField(this,"scope","singleton"),__publicField(this,"type","generic"),__publicField(this,"onInit",S),this.from=e,this.to=e}}class F{constructor(){__publicField(this,"transients",new WeakMap),__publicField(this,"singletons",new WeakMap),__publicField(this,"instances",new WeakMap),__publicField(this,"subscribers",new WeakMap),__publicField(this,"effectScopes",new WeakMap),__publicField(this,"current")}bind(e){return this.current=new O(e),this}to(e){return this.current.to=e,this}singleton(){return this.current.scope="singleton",this[this.current.scope+"s"].set(this.current.from,this.current),this}transient(){return this.current.scope="transient",this[this.current.scope+"s"].set(this.current.from,this.current),this}type(e){return this.current.type=e,this}ivue(){return this.current.type="ivue",this.current.onInit=()=>{},this}onInit(e){return this.current.onInit=e,this}get(e,...t){if(this.instances.has(e))return this.instances.get(e);let n=this.singletons.get(e);n||(this.bind(e).singleton(),n=this.singletons.get(e));const r=n.onInit(n,...t);return this.instances.set(e,r),r}make(e,...t){let n=this.transients.get(e);return n||(this.bind(e).transient(),n=this.transients.get(e)),n.onInit(n,...t)}use(e,...r){let o,i,s,p,h,b,d,g=t.getCurrentScope();if(console.log("className",e.name),this.subscribers.set(e,(this.subscribers.get(e)||0)+1),g&&t.onScopeDispose((()=>{var t;const n=(this.subscribers.get(e)||0)-1;if(this.subscribers.set(e,n),this.effectScopes.has(e)&&n<=0){let n;if(null==(t=this.effectScopes.get(e))||t.stop(),s)for(n in s)delete s[n];if(h)for(n in h)delete h[n];if(b)for(n in b)delete b[n];if(d)for(n in d)delete d[n];s&&w(s),g=o=i=s=h=b=d=n=null,this.effectScopes.delete(e),this.instances.delete(e),this.subscribers.delete(e),l.debug&&console.log("ivue.kernel: instance deleted:",e.name)}})),this.instances.has(e))return this.instances.get(e);{if(i=this.singletons.get(e),i){if("ivue"!==i.type)throw new Error("ivue.kernel: use("+c(e)+") method should be used only with 'ivue' mappings, use get("+c(e)+") method for standard JavaScript singleton Kernel mappings.")}else this.bind(e).singleton().ivue(),i=this.singletons.get(e);if(o=t.effectScope(!!g),this.effectScopes.set(e,o),a.before.has(i.to)&&(b={mapping:i,self:null,return:null,name:i.to.constructor.name,args:r},!0===f("before",i.to,b)))return this.instances.set(e,b.return),b.return;p=u(i.to.prototype),h=p.size?{}:null;let s=new Proxy(t.reactive(new e(...r)),{get:(e,n)=>{var r,i;return p.has(n)&&(null==(i=null==(r=s.constructor)?void 0:r.behavior)?void 0:i[n])!==v.OFF?(n in h||(null==o||o.run((()=>h[n]=t.computed((()=>p.get(n).get.bind(s)()))))),h[n].value):"toRefs"===n?_(s,p,h,o):e[n]}});if("behavior"in s.constructor)for(const e in s.constructor.behavior)if(!p.has(e))if("function"==typeof s[e]){if(s.constructor.behavior[e]===v.OFF)continue;n(d)||(d={}),d[e]=s[e],m(i,s.constructor.behavior[e],d[e],s,e,o,b)}else s.constructor.behavior[e]===v.OFF&&(null==s?void 0:s[e])&&"object"==typeof s[e]&&(s[e]=t.markRaw(s[e]));return a.after.has(i.to)&&(b={mapping:i,self:s,name:i.to.constructor.name,return:s,args:r},!0===f("after",i.to,b))?(this.instances.set(e,b.return),b.return):("init"in s&&o.run((()=>s.init())),this.instances.set(e,s),l.debug&&console.log("ivue.kernel: instance created:",e.name,"current scope",t.getCurrentScope(),"current instance",t.getCurrentInstance()),s)}}init(e,...r){let o=this.transients.get(e);if(o){if("ivue"!==o.type)throw new Error("ivue.kernel: init("+c(e)+") method should be used only with 'ivue' mappings, use make("+c(e)+") method for standard JavaScript transient Kernel mappings.")}else this.bind(e).transient().ivue(),o=this.transients.get(e);let i,s,l,p=t.getCurrentScope(),h=t.effectScope(!!p);if(a.before.has(o.to)&&(i={mapping:o,self:null,return:null,name:o.to.constructor.name,args:r},!0===f("before",o.to,i)))return i.return;let b=u(o.to.prototype);s=b.size?{}:null;let d=new Proxy(t.reactive(new e(...r)),{get:(e,n)=>{var r,o;return b.has(n)&&(null==(o=null==(r=d.constructor)?void 0:r.behavior)?void 0:o[n])!==v.OFF?(n in s||(null==h||h.run((()=>s[n]=t.computed((()=>b.get(n).get.bind(d)()))))),s[n].value):"toRefs"===n?_(d,b,s,h):e[n]}});if("behavior"in d.constructor)for(const u in d.constructor.behavior)if(!b.has(u))if("function"==typeof d[u]){if(d.constructor.behavior[u]===v.OFF)continue;n(l)||(l={}),l[u]=d[u],m(o,d.constructor.behavior[u],l[u],d,u,h,i)}else d.constructor.behavior[u]===v.OFF&&(null==d?void 0:d[u])&&"object"==typeof d[u]&&(d[u]=t.markRaw(d[u]));return a.after.has(o.to)&&(i={mapping:o,self:d,return:d,name:o.to.constructor.name,args:r},!0===f("after",o.to,i))?i.return:("init"in d&&h.run((()=>d.init())),p&&t.onScopeDispose((()=>{let e;if(null==h||h.stop(),w(d),i)for(e in i)delete i[e];if(s)for(e in s)delete s[e];if(l)for(e in l)delete l[e];p=h=d=o=s=i=l=e=null})),d)}}function S(e,...r){if(a.before.has(e.to)){const t={mapping:e,self:null,return:null,name:e.to.constructor.name,args:r};if(!0===f("before",e.to,t))return t.return}let o,i=new e.to(...r);const s=u(e.to.prototype);if("behavior"in i.constructor&&"object"==typeof i.constructor.behavior)for(const u in i.constructor.behavior)if(!s.has(u)&&"function"==typeof i[u]){if(i.constructor.behavior[u]===v.OFF)continue;n(o)||(o={}),o[u]=i[u],m(e,i.constructor.behavior[u],o[u],i,u,t.effectScope(!!t.getCurrentScope()),void 0)}if(a.after.has(e.to)){const t={mapping:e,self:i,return:i,name:e.to.constructor.name,args:r};if(!0===f("after",e.to,t))return t.return}return i}const P=new F,C=P.bind.bind(P),E=P.get.bind(P),j=P.make.bind(P),k=P.use.bind(P),R=P.init.bind(P);function T(e,t){e.behavior=r(e.behavior??{},{$instance:v.OFF})}class I{get $instance(){return t.getCurrentInstance()}constructor(e){T(e)}}function M(e,n){b(e,(({self:e})=>{"beforeMount"in e&&t.onBeforeMount((()=>e.beforeMount())),"mounted"in e&&t.onMounted((()=>e.mounted())),"beforeUnmount"in e&&t.onBeforeUnmount((()=>e.beforeUnmount())),"unmounted"in e&&t.onUnmounted((()=>e.unmounted()))}))}class N{constructor(e){__publicField(this,"beforeMount",(function(){})),__publicField(this,"mounted",(function(){})),__publicField(this,"beforeUnmount",(function(){})),__publicField(this,"unmounted",(function(){})),M(e)}}function U(e,t){e.behavior=r(e.behavior??{},{$refs:v.OFF})}class D{get $refs(){var e;return null==(e=t.getCurrentInstance())?void 0:e.refs}constructor(e){U(e)}}class ${get route(){var e;return t.toValue(null==(e=l.router)?void 0:e.currentRoute)}}class x{get router(){return l.router}}class W{}i(W,[x,$]);class J{constructor(){__publicField(this,"$emit",((...e)=>{}))}}class z{constructor(){__publicField(this,"$nextTick",t.nextTick)}}class A{constructor(e){var t;T(t=e),U(t),M(t)}}i(A,[W,N,J,z,D,I]),e.IVUE=v,e.Kernel=F,e.Mapping=O,e.Traits=i,e.UseCapsule=class{constructor(){__publicField(this,"$"),__publicField(this,"capsule")}useCapsule(e=[]){this.$=k(this.capsule,this,...e),t.markRaw(this.$)}initCapsule(e=[]){this.$=R(this.capsule,this,...e),t.markRaw(this.$)}getCapsule(e=[]){this.$=E(this.capsule,this,...e)}makeCapsule(e=[]){this.$=j(this.capsule,this,...e)}},e.UseEmit=J,e.UseInstance=I,e.UseMounting=N,e.UseRefs=D,e.UseRoute=$,e.UseRouter=x,e.UseRouting=W,e.UseTick=z,e.UseVue=A,e.after=b,e.before=function(e,t,n={top:!1,scoped:!1}){p("before",h(e,n.scoped),t,n)},e.bind=C,e.config=l,e.extend=r,e.get=E,e.init=R,e.iobj=function(e){let n=t.getCurrentScope(),r=t.effectScope(!!n),o=function(e){const t=new Map,n=Object.entries(Object.getOwnPropertyDescriptors(e));for(let r=0;r<n.length;r++)"function"==typeof n[r][1].get&&"__proto__"!==n[r][0]&&t.set(n[r][0],n[r][1]);return t}(e),i=o.size?{}:null,s=y(t.reactive(e),o,i,r);return"init"in s&&r.run((()=>s.init())),n&&t.onScopeDispose((()=>{let t;for(t in null==r||r.stop(),s)delete s[t];for(t in i)delete i[t];n=r=o=i=e=s=t=null})),s},e.ivue=function(e,...n){let r=t.getCurrentScope(),o=t.effectScope(!!r),i=u(e.prototype),s=i.size?{}:null,c=new Proxy(t.reactive(new e(...n)),{get:(e,n)=>{var r,u;return i.has(n)&&(null==(u=null==(r=c.constructor)?void 0:r.behavior)?void 0:u[n])!==v.OFF?(n in s||(null==o||o.run((()=>s[n]=t.computed((()=>i.get(n).get.bind(c)()))))),s[n].value):"toRefs"===n?_(c,i,s,o):e[n]}});return"init"in c&&o.run((()=>c.init())),r&&t.onScopeDispose((()=>{let e;for(e in null==o||o.stop(),c)delete c[e];for(e in s)delete s[e];r=o=i=s=c=e=null})),c},e.ivueInversify=function(e,n,...r){let o=t.effectScope(!!t.getCurrentScope()),i=u(Reflect.getPrototypeOf(n)),s=i.value?{}:null,c=y(t.reactive(Object.create(n)),i,s,o,...r);var l;return"function"==typeof c.init&&o.run((()=>c.init())),l=()=>{null==o||o.stop(),w(c),o=c=null},t.getCurrentScope()&&t.onScopeDispose(l),c},e.ivueTransform=y,e.kernel=P,e.make=j,e.pre=function(e,t=2){const n=new Set;return JSON.stringify(e,(function(e,t){if("object"==typeof t&&null!==t){if(n.has(t))try{return JSON.parse(JSON.stringify(t))}catch(r){return"[**circular**]"}n.add(t)}return t}),t)},e.raw=function(e){return t.markRaw(e)},e.setup=function(e={}){r(l,e)},e.unraw=function(e){delete e.__v_skip},e.use=k,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
1
+ var __defProp=Object.defineProperty,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__publicField=(e,t,n)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,n),n);!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ivue={},e.Vue)}(this,(function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&!Array.isArray(e)}function r(e,...t){return o(e,[...t],new WeakMap)}function o(e,t,r=null){if(!t.length)return e;r.set(e,!0);const i=t.shift();if(n(e)&&n(i))for(const u in i)n(i[u])&&"Object"===i[u].constructor.name?r.has(i[u])||null!==(s=i[u])&&"object"==typeof s&&"function"==typeof s.then&&"function"==typeof s.catch||void 0===e[u]?e[u]=i[u]:n(e[u])&&e[u].constructor===Object?o(e[u],[i[u]],r):e[u]=i[u]:e[u]=i[u];var s;return o(e,t,r)}function i(e,t){const n={},r=Object.getOwnPropertyNames(e.prototype).reduce(((t,r)=>{const o=Object.getOwnPropertyDescriptor(e.prototype,r);let i=!1;return(null==o?void 0:o.set)&&!(null==o?void 0:o.get)&&(n[r]=null==o?void 0:o.set,i=!0),i||(t[r]=!0),t}),{}),o={};t.reverse().forEach((t=>{const i=new t(e);for(const n in i)n in r||(o[n]=!0),n in o&&Object.defineProperty(e.prototype,n,{value:i[n],writable:!0});Object.getOwnPropertyNames(t.prototype).forEach((i=>{if("constructor"!==i&&(i in r||(o[i]=!0),i in o)){const r=Object.getOwnPropertyDescriptor(t.prototype,i)||Object.create(null);(null==r?void 0:r.set)&&!(i in n)&&(n[i]=null==r?void 0:r.set),(null==r?void 0:r.get)&&!(null==r?void 0:r.set)&&i in n&&(r.set=n[i]),Object.defineProperty(e.prototype,i,r)}}))}))}const s=new Map;function u(e){if(s.has(e))return s.get(e);const t=e,n=[];n.push.apply(n,Object.entries(Object.getOwnPropertyDescriptors(e)));const r=new Map;for(let o=0;o<n.length;o++)"__proto__"!==n[o][0]&&"function"==typeof n[o][1].get&&r.set(n[o][0],n[o][1]);return s.set(t,r),r}function c(e){let t="";try{t=(null==e?void 0:e.name)||String(e)}catch(n){t="Unknown[failed to convert to string]"}return t}let l={router:null,debug:!1};const a={before:new Map,after:new Map};function f(e,t,n){const r=a[e].get(t);for(let o=0;o<(null==r?void 0:r.length);o++)if(!0===r[o](n,...n.args))return n.return}function p(e,t,n,r){var o;a[e].has(t)?null==(o=a[e].get(t))||o[r.top?"unshift":"push"](n):a[e].set(t,[n])}function h(e,t){var n;if(Array.isArray(e)){if("function"!=typeof e[0])throw new Error("ivue.kernel.behavior: Cannot autobind intercept to "+e[0]+". Supply a valid Class to autobind behavior.");if("function"==typeof e[1]){const n=e[1].toString();if("class"!==n.substring(0,5)){const r=n.indexOf("(");n.substring(0,r).split(" "),e[0].behavior={..."object"==typeof e[0].behavior?e[0].behavior:{},funcName:t?"SCOPED_INTERCEPT":"INTERCEPT"}}return e[1]}throw new Error('ivue.kernel.behavior: Cannot autobind intercept "'+e[1]+'" to '+((null==(n=e[0])?void 0:n.name)??e[0]))}return e}function b(e,t,n={top:!1,scoped:!1}){p("after",h(e,n.scoped),t,n)}function d(e,t,n,r,o){let i=a[e].get(t.constructor.prototype[n]);for(let s=0;s<(null==i?void 0:i.length);s++)if(!0===i[s](o,...r))return!0;i=a[e].get(t[n]);for(let s=0;s<(null==i?void 0:i.length);s++)if(!0===i[s](o,...r))return!0}var g,v=((g=v||{}).SCOPED="SCOPED",g.SCOPED_INTERCEPT="SCOPED_INTERCEPT",g.INTERCEPT="INTERCEPT",g.OFF="OFF",g);function m(e,t,n,r,o,i,s){let u;if("SCOPED"===t)return Object.defineProperty(r,o,{value:function(...e){return i.run((()=>u=n.bind(r)(...e))),u},writable:!0,configurable:!0,enumerable:!1});const c=(...t)=>(!0===d("before",r,o,t,s={mapping:e,self:r,return:u,name:o,args:t})||(u=n.bind(r)(...t),s.return=u,d("after",r,o,t,s)),s.return);switch(t){case"INTERCEPT":return Object.defineProperty(r,o,{value:function(...e){return c(...e)},writable:!0,configurable:!0,enumerable:!1});case"SCOPED_INTERCEPT":return Object.defineProperty(r,o,{value:function(...e){return i.run((()=>u=c(...e))),u},writable:!0,configurable:!0,enumerable:!1})}}function y(e,n,r,o){return new Proxy(e,{get:(i,s)=>{var u,c;return n.has(s)&&(null==(c=null==(u=e.constructor)?void 0:u.behavior)?void 0:c[s])!==v.OFF?(s in r||(null==o||o.run((()=>r[s]=t.computed((()=>{var t;return null==(t=n.get(s))?void 0:t.get.bind(e)()}))))),r[s].value):"toRefs"===s?_(e,n,r,o):i[s]}})}function _(e,n,r,o){return function(i){const s={};if(Array.isArray(i)&&i.length)for(let u=0;u<i.length;u++){const c=i[u];n.has(c)?c in r?s[c]=r[c]:o.run((()=>s[c]=r[c]=t.computed((()=>{var t;return null==(t=n.get(c))?void 0:t.get.bind(e)()})))):"function"==typeof e[c]?s[c]=e[c].bind(e):s[c]=t.toRef(e,c)}else{for(const r in e)n.has(r)||("function"==typeof e[r]?s[r]=e[r].bind(e):s[r]=t.toRef(e,r));n.forEach(((n,i)=>{i in r?s[i]=r[i]:o.run((()=>s[i]=r[i]=t.computed((()=>n.get.bind(e)()))))}))}return new Proxy(e,{get:(t,n)=>n in s?s[n]:n in t?t[n].bind(e):void 0})}}const w=e=>{let n=t.toRaw(e),r=Object.getOwnPropertyNames(n);for(let t=0;t<r.length;t++)delete n[r[t]];n=null,r=null};class O{constructor(e){__publicField(this,"to"),__publicField(this,"scope","singleton"),__publicField(this,"type","generic"),__publicField(this,"onInit",S),this.from=e,this.to=e}}class F{constructor(){__publicField(this,"transients",new WeakMap),__publicField(this,"singletons",new WeakMap),__publicField(this,"instances",new WeakMap),__publicField(this,"subscribers",new WeakMap),__publicField(this,"effectScopes",new WeakMap),__publicField(this,"current")}bind(e){return this.current=new O(e),this}to(e){return this.current.to=e,this}singleton(){return this.current.scope="singleton",this[this.current.scope+"s"].set(this.current.from,this.current),this}transient(){return this.current.scope="transient",this[this.current.scope+"s"].set(this.current.from,this.current),this}type(e){return this.current.type=e,this}ivue(){return this.current.type="ivue",this.current.onInit=()=>{},this}onInit(e){return this.current.onInit=e,this}get(e,...t){if(this.instances.has(e))return this.instances.get(e);let n=this.singletons.get(e);n||(this.bind(e).singleton(),n=this.singletons.get(e));const r=n.onInit(n,...t);return this.instances.set(e,r),r}make(e,...t){let n=this.transients.get(e);return n||(this.bind(e).transient(),n=this.transients.get(e)),n.onInit(n,...t)}use(e,...r){let o,i,s,p,h,b,d,g=t.getCurrentScope();if(console.log("className",e.name),this.subscribers.set(e,(this.subscribers.get(e)||0)+1),g&&t.onScopeDispose((()=>{var t;const n=(this.subscribers.get(e)||0)-1;if(this.subscribers.set(e,n),this.effectScopes.has(e)&&n<=0){let n;if(null==(t=this.effectScopes.get(e))||t.stop(),s)for(n in s)delete s[n];if(h)for(n in h)delete h[n];if(b)for(n in b)delete b[n];if(d)for(n in d)delete d[n];s&&w(s),g=o=i=s=h=b=d=n=null,this.effectScopes.delete(e),this.instances.delete(e),this.subscribers.delete(e),l.debug&&console.log("ivue.kernel: instance deleted:",e.name)}})),this.instances.has(e))return this.instances.get(e);{if(i=this.singletons.get(e),i){if("ivue"!==i.type)throw new Error("ivue.kernel: use("+c(e)+") method should be used only with 'ivue' mappings, use get("+c(e)+") method for standard JavaScript singleton Kernel mappings.")}else this.bind(e).singleton().ivue(),i=this.singletons.get(e);if(o=t.effectScope(!!g),this.effectScopes.set(e,o),a.before.has(i.to)&&(b={mapping:i,self:null,return:null,name:i.to.constructor.name,args:r},!0===f("before",i.to,b)))return this.instances.set(e,b.return),b.return;p=u(i.to.prototype),h=p.size?{}:null;let s=new Proxy(t.reactive(new e(...r)),{get:(e,n)=>{var r,i;return p.has(n)&&(null==(i=null==(r=s.constructor)?void 0:r.behavior)?void 0:i[n])!==v.OFF?(n in h||(null==o||o.run((()=>h[n]=t.computed((()=>p.get(n).get.bind(s)()))))),h[n].value):"toRefs"===n?_(s,p,h,o):e[n]}});if("behavior"in s.constructor)for(const e in s.constructor.behavior)if(!p.has(e))if("function"==typeof s[e]){if(s.constructor.behavior[e]===v.OFF)continue;n(d)||(d={}),d[e]=s[e],m(i,s.constructor.behavior[e],d[e],s,e,o,b)}else s.constructor.behavior[e]===v.OFF&&(null==s?void 0:s[e])&&"object"==typeof s[e]&&(s[e]=t.markRaw(s[e]));return a.after.has(i.to)&&(b={mapping:i,self:s,name:i.to.constructor.name,return:s,args:r},!0===f("after",i.to,b))?(this.instances.set(e,b.return),b.return):("init"in s&&o.run((()=>s.init())),this.instances.set(e,s),l.debug&&console.log("ivue.kernel: instance created:",e.name,"current scope",t.getCurrentScope(),"current instance",t.getCurrentInstance()),s)}}init(e,...r){let o=this.transients.get(e);if(o){if("ivue"!==o.type)throw new Error("ivue.kernel: init("+c(e)+") method should be used only with 'ivue' mappings, use make("+c(e)+") method for standard JavaScript transient Kernel mappings.")}else this.bind(e).transient().ivue(),o=this.transients.get(e);let i,s,l,p=t.getCurrentScope(),h=t.effectScope(!!p);if(a.before.has(o.to)&&(i={mapping:o,self:null,return:null,name:o.to.constructor.name,args:r},!0===f("before",o.to,i)))return i.return;let b=u(o.to.prototype);s=b.size?{}:null;let d=new Proxy(t.reactive(new e(...r)),{get:(e,n)=>{var r,o;return b.has(n)&&(null==(o=null==(r=d.constructor)?void 0:r.behavior)?void 0:o[n])!==v.OFF?(n in s||(null==h||h.run((()=>s[n]=t.computed((()=>b.get(n).get.bind(d)()))))),s[n].value):"toRefs"===n?_(d,b,s,h):e[n]}});if("behavior"in d.constructor)for(const u in d.constructor.behavior)if(!b.has(u))if("function"==typeof d[u]){if(d.constructor.behavior[u]===v.OFF)continue;n(l)||(l={}),l[u]=d[u],m(o,d.constructor.behavior[u],l[u],d,u,h,i)}else d.constructor.behavior[u]===v.OFF&&(null==d?void 0:d[u])&&"object"==typeof d[u]&&(d[u]=t.markRaw(d[u]));return a.after.has(o.to)&&(i={mapping:o,self:d,return:d,name:o.to.constructor.name,args:r},!0===f("after",o.to,i))?i.return:("init"in d&&h.run((()=>d.init())),p&&t.onScopeDispose((()=>{let e;if(null==h||h.stop(),w(d),i)for(e in i)delete i[e];if(s)for(e in s)delete s[e];if(l)for(e in l)delete l[e];p=h=d=o=s=i=l=e=null})),d)}}function S(e,...r){if(a.before.has(e.to)){const t={mapping:e,self:null,return:null,name:e.to.constructor.name,args:r};if(!0===f("before",e.to,t))return t.return}let o,i=new e.to(...r);const s=u(e.to.prototype);if("behavior"in i.constructor&&"object"==typeof i.constructor.behavior)for(const u in i.constructor.behavior)if(!s.has(u)&&"function"==typeof i[u]){if(i.constructor.behavior[u]===v.OFF)continue;n(o)||(o={}),o[u]=i[u],m(e,i.constructor.behavior[u],o[u],i,u,t.effectScope(!!t.getCurrentScope()),void 0)}if(a.after.has(e.to)){const t={mapping:e,self:i,return:i,name:e.to.constructor.name,args:r};if(!0===f("after",e.to,t))return t.return}return i}const P=new F,C=P.bind.bind(P),E=P.get.bind(P),j=P.make.bind(P),k=P.use.bind(P),R=P.init.bind(P);function T(e,t){e.behavior=r(e.behavior??{},{$instance:v.OFF})}class I{get $instance(){return t.getCurrentInstance()}constructor(e){T(e)}}function M(e,n){b(e,(({self:e})=>{"beforeMount"in e&&t.onBeforeMount((()=>e.beforeMount())),"mounted"in e&&t.onMounted((()=>e.mounted())),"beforeUnmount"in e&&t.onBeforeUnmount((()=>e.beforeUnmount())),"unmounted"in e&&t.onUnmounted((()=>e.unmounted()))}))}class N{constructor(e){__publicField(this,"beforeMount",(function(){})),__publicField(this,"mounted",(function(){})),__publicField(this,"beforeUnmount",(function(){})),__publicField(this,"unmounted",(function(){})),M(e)}}function U(e,t){e.behavior=r(e.behavior??{},{$refs:v.OFF})}class D{get $refs(){var e;return null==(e=t.getCurrentInstance())?void 0:e.refs}constructor(e){U(e)}}class ${get route(){var e;return t.toValue(null==(e=l.router)?void 0:e.currentRoute)}}class x{get router(){return l.router}}class A{}i(A,[x,$]);class W{constructor(){__publicField(this,"$emit",((...e)=>{}))}}class J{constructor(){__publicField(this,"$nextTick",t.nextTick)}}class z{constructor(e){var t;T(t=e),U(t),M(t)}}i(z,[A,N,W,J,D,I]),e.IVUE=v,e.Kernel=F,e.Mapping=O,e.Traits=i,e.UseCapsule=class{constructor(){__publicField(this,"$"),__publicField(this,"capsule")}useCapsule(e=[]){this.$=k(this.capsule,this,...e),t.markRaw(this.$)}initCapsule(e=[]){this.$=R(this.capsule,this,...e),t.markRaw(this.$)}getCapsule(e=[]){this.$=E(this.capsule,this,...e)}makeCapsule(e=[]){this.$=j(this.capsule,this,...e)}},e.UseEmit=W,e.UseInstance=I,e.UseMounting=N,e.UseRefs=D,e.UseRoute=$,e.UseRouter=x,e.UseRouting=A,e.UseTick=J,e.UseVue=z,e.after=b,e.before=function(e,t,n={top:!1,scoped:!1}){p("before",h(e,n.scoped),t,n)},e.bind=C,e.config=l,e.extend=r,e.get=E,e.init=R,e.iobj=function(e){let n=t.getCurrentScope(),r=t.effectScope(!!n),o=function(e){const t=new Map,n=Object.entries(Object.getOwnPropertyDescriptors(e));for(let r=0;r<n.length;r++)"function"==typeof n[r][1].get&&"__proto__"!==n[r][0]&&t.set(n[r][0],n[r][1]);return t}(e),i=o.size?{}:null,s=y(t.reactive(e),o,i,r);return"init"in s&&r.run((()=>s.init())),n&&t.onScopeDispose((()=>{let t;for(t in null==r||r.stop(),s)delete s[t];for(t in i)delete i[t];n=r=o=i=e=s=t=null})),s},e.ivue=function(e,...n){let r=t.getCurrentScope(),o=t.effectScope(!!r),i=u(e.prototype),s=i.size?{}:null,c=new Proxy(t.reactive(new e(...n)),{get:(e,n)=>{var r,u;return i.has(n)&&(null==(u=null==(r=c.constructor)?void 0:r.behavior)?void 0:u[n])!==v.OFF?(n in s||(null==o||o.run((()=>s[n]=t.computed((()=>i.get(n).get.bind(c)()))))),s[n].value):"toRefs"===n?_(c,i,s,o):e[n]}});return"init"in c&&o.run((()=>c.init())),r&&t.onScopeDispose((()=>{let e;for(e in null==o||o.stop(),c)delete c[e];for(e in s)delete s[e];r=o=i=s=c=e=null})),c},e.ivueInversify=function(e,n,...r){let o=t.effectScope(!!t.getCurrentScope()),i=u(Reflect.getPrototypeOf(n)),s=i.value?{}:null,c=y(t.reactive(Object.create(n)),i,s,o);var l;return"function"==typeof c.init&&o.run((()=>c.init())),l=()=>{null==o||o.stop(),w(c),o=c=null},t.getCurrentScope()&&t.onScopeDispose(l),c},e.ivueTransform=y,e.kernel=P,e.make=j,e.pre=function(e,t=2){const n=new Set;return JSON.stringify(e,(function(e,t){if("object"==typeof t&&null!==t){if(n.has(t))try{return JSON.parse(JSON.stringify(t))}catch(r){return"[**circular**]"}n.add(t)}return t}),t)},e.raw=function(e){return t.markRaw(e)},e.setup=function(e={}){r(l,e)},e.unraw=function(e){delete e.__v_skip},e.use=k,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -1,4 +1,5 @@
1
1
  import { type EffectScope } from 'vue';
2
+ import type { ToRefs } from 'vue';
2
3
  import type { IVue, IVueToRefsObj, AnyClass, InferredArgs, Getters, Computeds } from "./types/core";
3
4
  /**
4
5
  * Create ivue instance from class constructor.
@@ -22,7 +23,7 @@ export declare function iobj<T extends object>(obj: T): T & IVueToRefsObj<T>;
22
23
  * @param getters
23
24
  * @param args Arguments are available when used via ivue(obj, ...args)
24
25
  */
25
- export declare function ivueTransform(vue: any, getters: Getters, computeds: Computeds, scope: EffectScope, ...args: undefined[]): any;
26
+ export declare function ivueTransform<T extends AnyClass>(vue: any, getters: Getters, computeds: Computeds, scope: EffectScope): IVue<T>;
26
27
  /**
27
28
  * Convert reactive to refs.
28
29
  *
@@ -32,4 +33,4 @@ export declare function ivueTransform(vue: any, getters: Getters, computeds: Com
32
33
  * @param scope @see EffectScope
33
34
  * @returns
34
35
  */
35
- export declare function ivueToRefs<T extends AnyClass>(vue: IVue<T>, getters: Getters, computeds: Computeds, scope: EffectScope): (props: (keyof T)[]) => IVue<T>;
36
+ export declare function ivueToRefs<T extends AnyClass>(vue: IVue<T>, getters: Getters, computeds: Computeds, scope: EffectScope): (props?: (keyof InstanceType<T>)[]) => ToRefs<InstanceType<T>>;
@@ -1,5 +1,5 @@
1
1
  import type { Mapping } from '../kernel';
2
- import type { ComputedRef } from 'vue';
2
+ import type { ComputedRef, ToRefs } from 'vue';
3
3
  export type AnyClass = abstract new (...args: any) => any;
4
4
  export type Class = {
5
5
  behavior?: any;
@@ -11,10 +11,10 @@ export type IVue<T extends AnyClass> = InstanceType<T> & IVueToRefs<T>;
11
11
  * @see ivueTransform
12
12
  */
13
13
  export interface IVueToRefs<T extends AnyClass> {
14
- toRefs: (props: (keyof T)[]) => InstanceType<T>;
14
+ toRefs: (props?: (keyof InstanceType<T>)[]) => ToRefs<InstanceType<T>>;
15
15
  }
16
16
  export interface IVueToRefsObj<T extends object> {
17
- toRefs: (...args: any) => T;
17
+ toRefs: (props?: (keyof T)[]) => ToRefs<T>;
18
18
  }
19
19
  export type MappingScope = 'singleton' | 'transient';
20
20
  export type MappingType = 'generic' | 'ivue' | any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ivue",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "ivue – Infinite Vue. Advanced State Management & Class Architecture for Vue 3+.",
5
5
  "exports": {
6
6
  ".": {
package/src/ivue.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { computed, reactive, toRef, effectScope, type EffectScope, getCurrentScope, onScopeDispose } from 'vue';
2
+ import type { ToRefs } from 'vue';
2
3
 
3
4
  import type { Null, IVue, IVueToRefsObj, AnyClass, InferredArgs, Getters, Computeds } from "./types/core";
4
5
 
@@ -134,7 +135,7 @@ export function iobj<T extends object> (obj: T): T & IVueToRefsObj<T> {
134
135
  * @param getters
135
136
  * @param args Arguments are available when used via ivue(obj, ...args)
136
137
  */
137
- export function ivueTransform (vue: any, getters: Getters, computeds: Computeds, scope: EffectScope, ...args: undefined[]) {
138
+ export function ivueTransform<T extends AnyClass>(vue: any, getters: Getters, computeds: Computeds, scope: EffectScope): IVue<T> {
138
139
  /**
139
140
  * Initialize ivue reactive.
140
141
  *
@@ -195,7 +196,7 @@ export function ivueTransform (vue: any, getters: Getters, computeds: Computeds,
195
196
  */
196
197
  export function ivueToRefs<T extends AnyClass> (vue: IVue<T>, getters: Getters, computeds: Computeds, scope: EffectScope) {
197
198
 
198
- return function (props: (keyof InstanceType<T>)[] | undefined) {
199
+ return function (props?: (keyof InstanceType<T>)[]): ToRefs<InstanceType<T>> {
199
200
  /**
200
201
  * Resulting refs store.
201
202
  */
package/src/kernel.ts CHANGED
@@ -778,7 +778,7 @@ export function ivueInversify (ctx: any, obj: any, ...args: any) {
778
778
 
779
779
  let computeds: Computeds | any = getters.value ? {} : null
780
780
 
781
- let vue = ivueTransform(reactive(Object.create(obj)), getters, computeds, scope, ...args)
781
+ let vue = ivueTransform(reactive(Object.create(obj)), getters, computeds, scope)
782
782
 
783
783
  if (typeof vue.init === 'function') scope.run(() => vue.init())
784
784
 
package/src/types/core.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Mapping } from '../kernel'
2
- import type { ComputedRef } from 'vue';
2
+ import type { ComputedRef, ToRefs } from 'vue';
3
3
 
4
4
  export type AnyClass = abstract new (...args: any) => any;
5
5
 
@@ -15,11 +15,11 @@ export type IVue<T extends AnyClass> = InstanceType<T> & IVueToRefs<T>
15
15
  * @see ivueTransform
16
16
  */
17
17
  export interface IVueToRefs<T extends AnyClass> {
18
- toRefs: (props: (keyof InstanceType<T>)[] | undefined) => InstanceType<T>
18
+ toRefs: (props?: (keyof InstanceType<T>)[]) => ToRefs<InstanceType<T>>
19
19
  }
20
20
 
21
21
  export interface IVueToRefsObj<T extends object> {
22
- toRefs: (props: (keyof T)[] | undefined) => T
22
+ toRefs: (props?: (keyof T)[]) => ToRefs<T>
23
23
  }
24
24
 
25
25
  export type MappingScope = 'singleton' | 'transient'