iocraft 0.2.7 → 0.2.8

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.
@@ -24,9 +24,9 @@ var NativeKeys = /* @__PURE__ */ new Set([
24
24
  ...Object.getOwnPropertyNames(Object.prototype),
25
25
  ...Object.getOwnPropertySymbols(Object.prototype),
26
26
  ...Object.getOwnPropertyNames(Function.prototype),
27
- ...Object.getOwnPropertySymbols(Function.prototype),
28
- ...Object.getOwnPropertyNames(Array.prototype),
29
- ...Object.getOwnPropertySymbols(Array.prototype)
27
+ ...Object.getOwnPropertySymbols(Function.prototype)
28
+ // ...Object.getOwnPropertyNames(Array.prototype),
29
+ // ...Object.getOwnPropertySymbols(Array.prototype),
30
30
  ]);
31
31
  function addInstanceProperties(serviceInstance, targetObj) {
32
32
  const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];
@@ -188,11 +188,6 @@ function obtainCtx(serviceClass) {
188
188
 
189
189
  // src/common/nav.ts
190
190
  var Nav = class {
191
- };
192
- Nav = exports.Nav = __decorateClass([
193
- attach()
194
- ], Nav);
195
- var RouterFacade = class {
196
191
  constructor(router) {
197
192
  this.router = router;
198
193
  }
@@ -291,11 +286,14 @@ var RouterFacade = class {
291
286
  return this.router.isReady();
292
287
  }
293
288
  };
289
+ Nav = exports.Nav = __decorateClass([
290
+ attach()
291
+ ], Nav);
294
292
 
295
293
  // src/core/plugin.ts
296
294
  var iocraft = (_app, options) => {
297
295
  if (_optionalChain([options, 'optionalAccess', _3 => _3.router])) {
298
- RootRegistry.set(getServiceMeta(Nav).token, new RouterFacade(options.router));
296
+ RootRegistry.set(getServiceMeta(Nav).token, new Nav(options.router));
299
297
  }
300
298
  if (_optionalChain([options, 'optionalAccess', _4 => _4.eagerLoad])) {
301
299
  options.eagerLoad.forEach((service) => {
@@ -330,4 +328,4 @@ function attach() {
330
328
 
331
329
 
332
330
  exports.getServiceMeta = getServiceMeta; exports.obtain = obtain; exports.obtainNew = obtainNew; exports.exposeCtx = exposeCtx; exports.obtainCtx = obtainCtx; exports.Nav = Nav; exports.iocraft = iocraft; exports.attach = attach;
333
- //# sourceMappingURL=chunk-4PDVPTG3.cjs.map
331
+ //# sourceMappingURL=chunk-5SJR27OE.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/iocraft/iocraft/packages/iocraft/dist/chunk-5SJR27OE.cjs","../src/core/obtainers.ts","../src/core/facade.ts","../src/core/internals.ts","../src/core/utils.ts","../src/core/plugin.ts","../src/common/nav.ts","../src/core/attach.ts"],"names":[],"mappings":"AAAA,ylBAAY;AACZ,IAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,iBAAiB,EAAE,MAAM,CAAC,wBAAwB;AACtD,IAAI,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AACzD,EAAE,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,MAAM;AAChF,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE;AAC5D,IAAI,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AACjC,MAAM,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM;AACpF,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC;AACpD,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA;ACZA,0BAAoD;ADcpD;AACA;AEbA,SAAS,MAAA,CAAO,GAAA,EAAmC,GAAA,EAA2B;AAC5E,EAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU;AAC3B,IAAA,OAAO,MAAA,CAAO,qBAAA,CAAsB,GAAG,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA;AAAA,EACvD;AACA,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,GAAA,EAAK,GAAG,CAAA;AAC/B;AAEA,IAAM,WAAA,kBAAa,IAAI,GAAA,CAAI;AAAA,EACzB,GAAG,MAAA,CAAO,mBAAA,CAAoB,MAAA,CAAO,SAAS,CAAA;AAAA,EAC9C,GAAG,MAAA,CAAO,qBAAA,CAAsB,MAAA,CAAO,SAAS,CAAA;AAAA,EAChD,GAAG,MAAA,CAAO,mBAAA,CAAoB,QAAA,CAAS,SAAS,CAAA;AAAA,EAChD,GAAG,MAAA,CAAO,qBAAA,CAAsB,QAAA,CAAS,SAAS;AAAA;AAAA;AAGpD,CAAC,CAAA;AAED,SAAS,qBAAA,CACP,eAAA,EACA,SAAA,EACA;AACA,EAAA,MAAM,QAAA,EAAU,CAAC,GAAG,MAAA,CAAO,mBAAA,CAAoB,eAAe,CAAA,EAAG,GAAG,MAAA,CAAO,qBAAA,CAAsB,eAAe,CAAC,CAAA;AAEjH,EAAA,IAAA,CAAA,MAAW,IAAA,GAAO,OAAA,EAAS;AACzB,IAAA,GAAA,CAAI,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA,EAAG,QAAA;AAE5B,IAAA,MAAM,WAAA,EAAa,MAAA,CAAO,wBAAA,CAAyB,eAAA,EAAiB,GAAG,CAAA;AAEvE,IAAA,GAAA,CAAI,OAAO,UAAA,CAAW,MAAA,IAAU,UAAA,EAAY;AAC1C,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,4BAAA,EAA+B,MAAA,CAAO,GAAG,CAAC,CAAA,sDAAA,CAAwD,CAAA;AAC/G,MAAA,QAAA;AAAA,IACF;AAEA,IAAA,GAAA,CAAI,UAAA,CAAW,IAAA,GAAO,UAAA,CAAW,GAAA,EAAK;AACpC,MAAA,QAAA;AAAA,IACF;AAEA,IAAA,MAAA,CAAO,cAAA,CAAe,SAAA,EAAW,GAAA,EAAK;AAAA,MACpC,GAAA,CAAA,EAAM;AACJ,QAAA,OAAO,eAAA,CAAgB,GAAmC,CAAA;AAAA,MAC5D,CAAA;AAAA,MACA,GAAA,CAAI,CAAA,EAAG;AACL,QAAA,eAAA,CAAgB,GAAmC,EAAA,EAAI,CAAA;AAAA,MACzD,CAAA;AAAA,MACA,UAAA,EAAY,IAAA;AAAA,MACZ,YAAA,EAAc;AAAA,IAChB,CAAC,CAAA;AAAA,EACH;AACF;AAEA,SAAS,sBAAA,CACP,eAAA,EACA,SAAA,EACA;AACA,EAAA,IAAI,aAAA,EAAe,MAAA,CAAO,cAAA,CAAe,eAAe,CAAA;AAExD,EAAA,MAAA,CAAO,aAAA,GAAgB,aAAA,IAAiB,MAAA,CAAO,SAAA,EAAW;AACxD,IAAA,MAAM,UAAA,EAAY,CAAC,GAAG,MAAA,CAAO,mBAAA,CAAoB,YAAY,CAAA,EAAG,GAAG,MAAA,CAAO,qBAAA,CAAsB,YAAY,CAAC,CAAA;AAE7G,IAAA,IAAA,CAAA,MAAW,IAAA,GAAO,SAAA,EAAW;AAC3B,MAAA,GAAA,CAAI,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA,EAAG,QAAA;AAE5B,MAAA,GAAA,CAAI,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG,QAAA;AAEzB,MAAA,MAAM,WAAA,EAAa,MAAA,CAAO,wBAAA,CAAyB,YAAA,EAAc,GAAG,CAAA;AAEpE,MAAA,GAAA,CAAI,UAAA,CAAW,IAAA,GAAO,UAAA,CAAW,GAAA,EAAK;AACpC,QAAA,MAAA,CAAO,cAAA,CAAe,SAAA,EAAW,GAAA,EAAK;AAAA,UACpC,GAAA,EAAK,UAAA,CAAW,IAAA,EAAM,CAAA,EAAA,GAAM,UAAA,CAAW,GAAA,CAAK,IAAA,CAAK,eAAe,EAAA,EAAI,KAAA,CAAA;AAAA,UACpE,GAAA,EAAK,UAAA,CAAW,IAAA,EAAM,CAAC,CAAA,EAAA,GAAW,UAAA,CAAW,GAAA,CAAK,IAAA,CAAK,eAAA,EAAiB,CAAC,EAAA,EAAI,KAAA,CAAA;AAAA,UAC7E,UAAA,EAAY,IAAA;AAAA,UACZ,YAAA,EAAc;AAAA,QAChB,CAAC,CAAA;AAAA,MACH,EAAA,KAAA,GAAA,CAAW,OAAO,UAAA,CAAW,MAAA,IAAU,UAAA,EAAY;AACjD,QAAA,SAAA,CAAU,GAAG,EAAA,EAAI,UAAA,CAAW,KAAA,CAAM,IAAA,CAAK,eAAe,CAAA;AAAA,MACxD;AAAA,IACF;AAEA,IAAA,aAAA,EAAe,MAAA,CAAO,cAAA,CAAe,YAAY,CAAA;AAAA,EACnD;AACF;AAWO,SAAS,eAAA,CAAkC,eAAA,EAAyB;AACzE,EAAA,MAAM,UAAA,EAAY,CAAC,CAAA;AAEnB,EAAA,qBAAA,CAAsB,eAAA,EAAiB,SAAS,CAAA;AAChD,EAAA,sBAAA,CAAuB,eAAA,EAAiB,SAAS,CAAA;AACjD,EAAA,OAAO,SAAA;AACT;AFhBA;AACA;AGnFA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGK,IAAM,iBAAA,kBAAmB,MAAA,CAAO,0BAA0B,CAAA;AAC1D,IAAM,aAAA,kBAAe,IAAI,GAAA,CAAoB,CAAA;AAC7C,IAAM,cAAA,kBAAgB,IAAI,GAAA,CAAY,CAAA;AAC7C,IAAM,iBAAA,EAAmB;AAAA,EACvB,yBAAA;AAAA,EACA,yBAAA;AAAA,EACA,6BAAA;AAAA,EACA,iCAAA;AAAA,EACA,mCAAA;AAAA,EACA,qCAAA;AAAA,EACA,qCAAA;AAAA,EACA,qCAAA;AAAA,EACA,yCAAA;AAAA,EACA,6BAAA;AAAA,EACA,iCAAA;AAAA,EACA,uCAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,kBAAA,CAAmB,QAAA,EAAe;AAChD,EAAA,IAAA,CAAA,MAAW,IAAA,GAAO,gBAAA,EAAkB;AAClC,IAAA,MAAM,SAAA,EAAW,GAAA;AACjB,IAAA,MAAM,QAAA,EAAU,gBAAA,CAAiB,QAAQ,CAAA;AAEzC,IAAA,MAAM,QAAA,EAAU,QAAA,CAAS,QAAQ,CAAA;AAEjC,IAAA,GAAA,CAAI,OAAO,QAAA,IAAY,UAAA,EAAY;AACjC,MAAA,OAAA,CAAQ,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAC,CAAA;AAAA,IAChC;AAAA,EACF;AACF;AHiFA;AACA;AI7HO,SAAS,cAAA,CAAe,MAAA,EAAqC;AAClE,EAAA,MAAM,KAAA,EAAO,OAAO,OAAA,IAAW,WAAA,EAAa,OAAA,EAAS,MAAA,CAAO,WAAA;AAE5D,EAAA,MAAM,KAAA,EAAQ,IAAA,CAAa,gBAAgB,CAAA;AAC3C,EAAA,GAAA,CAAI,iBAAC,IAAA,2BAAM,OAAA,EAAO;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,WAAA,kBAAc,IAAA,6BAAM,OAAA,GAAQ,SAAS,CAAA,kCAAA,CAAoC,CAAA;AAAA,EAC3F;AACA,EAAA,OAAO,IAAA;AACT;AJ8HA;AACA;AC7HO,SAAS,MAAA,CAAqC,YAAA,EAAiB;AACpE,EAAA,MAAM,YAAA,EAAc,cAAA,CAAe,YAAY,CAAA;AAE/C,EAAA,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AACvC,IAAA,MAAM,SAAA,EAAW,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA;AACnD,IAAA,OAAO,eAAA,CAAiC,QAAQ,CAAA;AAAA,EAClD;AAEA,EAAA,GAAA,CAAI,aAAA,CAAc,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AACxC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,2CAAA,EAA8C,YAAA,CAAa,IAAI,CAAA;AAAA,CAAI,CAAA;AAAA,EACrF;AAEA,EAAA,aAAA,CAAc,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA;AAEnC,EAAA,IAAI;AACF,IAAA,MAAM,SAAA,EAAW,IAAI,YAAA,CAAa,CAAA;AAClC,IAAA,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAA,EAAO,QAAQ,CAAA;AAC5C,IAAA,OAAO,eAAA,CAAiC,QAAQ,CAAA;AAAA,EAClD,EAAA,QAAE;AACA,IAAA,aAAA,CAAc,MAAA,CAAO,WAAA,CAAY,KAAK,CAAA;AAAA,EACxC;AACF;AASO,SAAS,SAAA,CAAwC,YAAA,EAAiB;AACvE,EAAA,MAAM,YAAA,EAAc,cAAA,CAAe,YAAY,CAAA;AAE/C,EAAA,GAAA,CAAI,aAAA,CAAc,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AACxC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,2CAAA,EAA8C,YAAA,CAAa,IAAI,CAAA;AAAA,CAAI,CAAA;AAAA,EACrF;AAEA,EAAA,aAAA,CAAc,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA;AAEnC,EAAA,IAAI;AACF,IAAA,MAAM,kBAAA,EAAoB,qCAAA,CAAmB;AAC7C,IAAA,MAAM,SAAA,EAAW,IAAI,YAAA,CAAa,CAAA;AAElC,IAAA,GAAA,CAAI,iBAAA,EAAmB;AACrB,MAAA,kBAAA,CAAmB,QAAQ,CAAA;AAAA,IAC7B;AAEA,IAAA,OAAO,eAAA,CAAiC,QAAQ,CAAA;AAAA,EAClD,EAAA,QAAE;AACA,IAAA,aAAA,CAAc,MAAA,CAAO,WAAA,CAAY,KAAK,CAAA;AAAA,EACxC;AACF;AASO,SAAS,SAAA,CAAwC,eAAA,EAAkC;AACxF,EAAA,MAAM,YAAA,EAAc,cAAA,CAAe,eAAe,CAAA;AAClD,EAAA,0BAAA,WAAQ,CAAY,KAAA,EAAO,eAAe,CAAA;AAC5C;AASO,SAAS,SAAA,CAAwC,YAAA,EAAiB;AACvE,EAAA,MAAM,YAAA,EAAc,cAAA,CAAe,YAAY,CAAA;AAC/C,EAAA,OAAO,yBAAA,WAAwB,CAAY,KAAK,CAAA;AAClD;ADgGA;AACA;AKzLA;AL2LA;AACA;AMxLO,IAAM,IAAA,EAAN,MAAU;AAAA,EACf,WAAA,CAAoB,MAAA,EAAgB;AAAhB,IAAA,IAAA,CAAA,OAAA,EAAA,MAAA;AAAA,EAAiB;AAAA;AAAA,EAGrC,IAAI,IAAA,CAAA,EAAO;AACT,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,IAAA;AAAA,EACxC;AAAA,EACA,IAAI,IAAA,CAAA,EAAO;AACT,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,IAAA;AAAA,EACxC;AAAA,EACA,IAAI,MAAA,CAAA,EAAS;AACX,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,MAAA;AAAA,EACxC;AAAA,EACA,IAAI,KAAA,CAAA,EAAQ;AACV,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,KAAA;AAAA,EACxC;AAAA,EACA,IAAI,IAAA,CAAA,EAAO;AACT,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,IAAA;AAAA,EACxC;AAAA,EACA,IAAI,QAAA,CAAA,EAAW;AACb,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,QAAA;AAAA,EACxC;AAAA,EACA,IAAI,OAAA,CAAA,EAAU;AACZ,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,OAAA;AAAA,EACxC;AAAA,EACA,IAAI,IAAA,CAAA,EAAO;AACT,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,IAAA;AAAA,EACxC;AAAA,EACA,IAAI,cAAA,CAAA,EAAiB;AACnB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,cAAA;AAAA,EACxC;AAAA;AAAA,EAGA,IAAI,YAAA,CAAA,EAAe;AACjB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA;AAAA,EACrB;AAAA,EACA,IAAI,OAAA,CAAA,EAAU;AACZ,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA;AAAA,EACrB;AAAA,EAEA,IAAI,SAAA,CAAA,EAAY;AACd,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,SAAA;AAAA,EACrB;AAAA,EACA,IAAI,SAAA,CAAU,KAAA,EAAgB;AAC5B,IAAA,IAAA,CAAK,MAAA,CAAO,UAAA,EAAY,KAAA;AAAA,EAC1B;AAAA;AAAA,EAGA,IAAA,CAAA,GAAQ,IAAA,EAAkC;AACxC,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,GAAG,IAAI,CAAA;AAAA,EACjC;AAAA,EACA,OAAA,CAAA,GAAW,IAAA,EAAqC;AAC9C,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,GAAG,IAAI,CAAA;AAAA,EACpC;AAAA,EACA,EAAA,CAAG,KAAA,EAAe;AAChB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,EAAA,CAAG,KAAK,CAAA;AAAA,EAC7B;AAAA,EACA,IAAA,CAAA,EAAO;AACL,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,CAAA;AAAA,EAC1B;AAAA,EACA,OAAA,CAAA,EAAU;AACR,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,CAAA;AAAA,EAC7B;AAAA;AAAA,EAGA,OAAA,CAAA,GAAW,IAAA,EAAqC;AAC9C,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,GAAG,IAAI,CAAA;AAAA,EACpC;AAAA;AAAA,EAGA,SAAA,CAAA,EAAY;AACV,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,SAAA,CAAU,CAAA;AAAA,EAC/B;AAAA,EACA,QAAA,CAAA,GAAY,IAAA,EAAsC;AAChD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,GAAG,IAAI,CAAA;AAAA,EACrC;AAAA,EACA,QAAA,CAAA,GAAY,IAAA,EAAsC;AAChD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,GAAG,IAAI,CAAA;AAAA,EACrC;AAAA,EACA,WAAA,CAAA,GAAe,IAAA,EAAyC;AACtD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,WAAA,CAAY,GAAG,IAAI,CAAA;AAAA,EACxC;AAAA,EACA,WAAA,CAAA,EAAc;AACZ,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,WAAA,CAAY,CAAA;AAAA,EACjC;AAAA;AAAA,EAGA,UAAA,CAAA,GAAc,IAAA,EAAwC;AACpD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW,GAAG,IAAI,CAAA;AAAA,EACvC;AAAA,EACA,aAAA,CAAA,GAAiB,IAAA,EAA2C;AAC1D,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,aAAA,CAAc,GAAG,IAAI,CAAA;AAAA,EAC1C;AAAA,EACA,SAAA,CAAA,GAAa,IAAA,EAAuC;AAClD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,SAAA,CAAU,GAAG,IAAI,CAAA;AAAA,EACtC;AAAA,EACA,OAAA,CAAA,GAAW,IAAA,EAAqC;AAC9C,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,GAAG,IAAI,CAAA;AAAA,EACpC;AAAA;AAAA,EAGA,OAAA,CAAA,EAAU;AACR,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,CAAA;AAAA,EAC7B;AACF,CAAA;AAxGa,IAAA,gBAAN,eAAA,CAAA;AAAA,EADN,MAAA,CAAO;AAAA,CAAA,EACK,GAAA,CAAA;AN+Rb;AACA;AK9RO,IAAM,QAAA,EAAqD,CAAC,IAAA,EAAM,OAAA,EAAA,GAAqC;AAC5G,EAAA,GAAA,iBAAI,OAAA,6BAAS,QAAA,EAAQ;AACnB,IAAA,YAAA,CAAa,GAAA,CAAI,cAAA,CAAe,GAAG,CAAA,CAAE,KAAA,EAAO,IAAI,GAAA,CAAI,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA,EACrE;AAGA,EAAA,GAAA,iBAAI,OAAA,6BAAS,WAAA,EAAW;AACtB,IAAA,OAAA,CAAQ,SAAA,CAAU,OAAA,CAAQ,CAAC,OAAA,EAAA,GAAY;AACrC,MAAA,MAAM,YAAA,EAAc,cAAA,CAAe,OAAO,CAAA;AAE1C,MAAA,GAAA,CAAI,CAAC,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AACxC,QAAA,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAA,EAAO,IAAI,OAAA,CAAQ,CAAC,CAAA;AAAA,MACnD;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AL6RA;AACA;AO5SO,SAAS,MAAA,CAAA,EAAQ;AACtB,EAAA,OAAO,QAAA,CAAwC,WAAA,EAAgB;AAC7D,IAAA,GAAA,iBAAK,WAAA,qBAAoB,gBAAgB,CAAA,6BAAG,OAAA,EAAO;AACjD,MAAA,OAAO,WAAA;AAAA,IACT;AAGA,IAAC,WAAA,CAAoB,gBAAgB,EAAA,EAAI;AAAA,MACvC,KAAA,kBAAO,MAAA,CAAO,CAAA,qBAAA,EAAwB,WAAA,CAAY,KAAA,GAAQ,WAAW,CAAA,CAAA;AACvE,IAAA;AAEO,IAAA;AACT,EAAA;AACF;AP2S4F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/iocraft/iocraft/packages/iocraft/dist/chunk-5SJR27OE.cjs","sourcesContent":[null,"import { getCurrentInstance, inject, provide } from \"vue\";\nimport { createFacadeObj } from \"./facade\";\nimport { bindLifecycleHooks, creationStack, RootRegistry } from \"./internals\";\nimport type { ServiceConstructor } from \"./types\";\nimport { getServiceMeta } from \"./utils\";\n\n/**\n * obtain Facade of a global singleton service From Root Registry\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtain<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n\n if (RootRegistry.has(serviceMeta.token)) {\n const instance = RootRegistry.get(serviceMeta.token)!;\n return createFacadeObj<InstanceType<T>>(instance);\n }\n\n if (creationStack.has(serviceMeta.token)) {\n throw new Error(`[IocRaft] Circular dependency detected on: ${serviceClass.name}\\n`);\n }\n\n creationStack.add(serviceMeta.token);\n\n try {\n const instance = new serviceClass();\n RootRegistry.set(serviceMeta.token, instance);\n return createFacadeObj<InstanceType<T>>(instance);\n } finally {\n creationStack.delete(serviceMeta.token);\n }\n}\n\n/**\n * obtain a facade of a new Service Instance\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtainNew<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n\n if (creationStack.has(serviceMeta.token)) {\n throw new Error(`[IocRaft] Circular dependency detected on: ${serviceClass.name}\\n`);\n }\n\n creationStack.add(serviceMeta.token);\n\n try {\n const componentInstance = getCurrentInstance();\n const instance = new serviceClass();\n\n if (componentInstance) {\n bindLifecycleHooks(instance);\n }\n\n return createFacadeObj<InstanceType<T>>(instance);\n } finally {\n creationStack.delete(serviceMeta.token);\n }\n}\n\n/**\n * Expose a service to context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {InstanceType<T>} serviceInstance\n */\nexport function exposeCtx<T extends ServiceConstructor>(serviceInstance: InstanceType<T>) {\n const serviceMeta = getServiceMeta(serviceInstance);\n provide(serviceMeta.token, serviceInstance);\n}\n\n/**\n * obtain A Service From Context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtainCtx<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n return inject<InstanceType<T>>(serviceMeta.token);\n}\n","import type { ServiceConstructor } from './types';\n\nfunction hasKey(obj: Record<PropertyKey, unknown>, key: PropertyKey): boolean {\n if (typeof key === 'symbol') {\n return Object.getOwnPropertySymbols(obj).includes(key);\n }\n return Object.hasOwn(obj, key);\n}\n\nconst NativeKeys = new Set([\n ...Object.getOwnPropertyNames(Object.prototype),\n ...Object.getOwnPropertySymbols(Object.prototype),\n ...Object.getOwnPropertyNames(Function.prototype),\n ...Object.getOwnPropertySymbols(Function.prototype),\n // ...Object.getOwnPropertyNames(Array.prototype),\n // ...Object.getOwnPropertySymbols(Array.prototype),\n]);\n\nfunction addInstanceProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];\n\n for (const key of ownKeys) {\n if (hasKey(targetObj, key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(serviceInstance, key)!;\n\n if (typeof descriptor.value === 'function') {\n console.warn(`[IOCRAFT]: Instance method \"${String(key)}\" found as own property. Consider moving to prototype.`);\n continue;\n }\n\n if (descriptor.get || descriptor.set) {\n continue;\n }\n\n Object.defineProperty(targetObj, key, {\n get() {\n return serviceInstance[key as keyof typeof serviceInstance];\n },\n set(v) {\n serviceInstance[key as keyof typeof serviceInstance] = v;\n },\n enumerable: true,\n configurable: true,\n });\n }\n}\n\nfunction addPrototypeProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n let currentProto = Object.getPrototypeOf(serviceInstance);\n\n while (currentProto && currentProto !== Object.prototype) {\n const protoKeys = [...Object.getOwnPropertyNames(currentProto), ...Object.getOwnPropertySymbols(currentProto)];\n\n for (const key of protoKeys) {\n if (hasKey(targetObj, key)) continue;\n\n if (NativeKeys.has(key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(currentProto, key)!;\n\n if (descriptor.get || descriptor.set) {\n Object.defineProperty(targetObj, key, {\n get: descriptor.get ? () => descriptor.get!.call(serviceInstance) : undefined,\n set: descriptor.set ? (v: any) => descriptor.set!.call(serviceInstance, v) : undefined,\n enumerable: true,\n configurable: true,\n });\n } else if (typeof descriptor.value === 'function') {\n targetObj[key] = descriptor.value.bind(serviceInstance);\n }\n }\n\n currentProto = Object.getPrototypeOf(currentProto);\n }\n}\n\n/**\n * CREATES A FACADE OBJECT\n *\n * @export\n * @template {object} T\n * @param {ServiceConstructor<T>} serviceClass\n * @param {InstanceType<ServiceConstructor<T>>} serviceInstance\n * @returns {{}}\n */\nexport function createFacadeObj<T extends object>(serviceInstance: object) {\n const targetObj = {};\n\n addInstanceProperties(serviceInstance, targetObj);\n addPrototypeProperties(serviceInstance, targetObj);\n return targetObj as T;\n}","import {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} from 'vue';\n\nexport const SERVICE_METADATA = Symbol('IOCRAFT_SERVICE_METADATA');\nexport const RootRegistry = new Map<symbol, object>();\nexport const creationStack = new Set<symbol>();\nconst lifecycleHookMap = {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} as const;\n\nexport function bindLifecycleHooks(instance: any) {\n for (const key in lifecycleHookMap) {\n const hookName = key as keyof typeof lifecycleHookMap;\n const vueHook = lifecycleHookMap[hookName];\n\n const handler = instance[hookName];\n\n if (typeof handler === 'function') {\n vueHook(handler.bind(instance));\n }\n }\n}\n","import { SERVICE_METADATA } from \"./internals\";\nimport type { ServiceConstructor, ServiceMetadata } from \"./types\";\n\nexport function getServiceMeta(target: ServiceConstructor | object) {\n const ctor = typeof target === \"function\" ? target : target.constructor;\n\n const meta = (ctor as any)[SERVICE_METADATA] as ServiceMetadata;\n if (!meta?.token) {\n throw new Error(`[IOCRAFT]: ${ctor?.name || \"Unknown\"} is not decorated with @Register()`);\n }\n return meta;\n}\n","import { type FunctionPlugin } from \"vue\";\nimport { Nav } from \"../common/nav\";\nimport { RootRegistry } from \"./internals\";\nimport type { PluginOptions } from \"./types\";\nimport { getServiceMeta } from \"./utils\";\n\nexport const iocraft: FunctionPlugin<[Partial<PluginOptions>?]> = (_app, options?: Partial<PluginOptions>) => {\n if (options?.router) {\n RootRegistry.set(getServiceMeta(Nav).token, new Nav(options.router));\n }\n\n // Eagerly create Service instances\n if (options?.eagerLoad) {\n options.eagerLoad.forEach((service) => {\n const serviceMeta = getServiceMeta(service);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new service());\n }\n });\n }\n};\n","import type { Router } from \"vue-router\";\nimport { attach } from \"../core\";\n\n@attach()\nexport class Nav {\n constructor(private router: Router) {}\n\n // ─── Flattened current route getters\n get path() {\n return this.router.currentRoute.value.path;\n }\n get name() {\n return this.router.currentRoute.value.name;\n }\n get params() {\n return this.router.currentRoute.value.params;\n }\n get query() {\n return this.router.currentRoute.value.query;\n }\n get hash() {\n return this.router.currentRoute.value.hash;\n }\n get fullPath() {\n return this.router.currentRoute.value.fullPath;\n }\n get matched() {\n return this.router.currentRoute.value.matched;\n }\n get meta() {\n return this.router.currentRoute.value.meta;\n }\n get redirectedFrom() {\n return this.router.currentRoute.value.redirectedFrom;\n }\n\n // ─── Router state\n get currentRoute() {\n return this.router.currentRoute;\n }\n get options() {\n return this.router.options;\n }\n\n get listening() {\n return this.router.listening;\n }\n set listening(value: boolean) {\n this.router.listening = value;\n }\n\n // ─── Navigation\n push(...args: Parameters<Router[\"push\"]>) {\n return this.router.push(...args);\n }\n replace(...args: Parameters<Router[\"replace\"]>) {\n return this.router.replace(...args);\n }\n go(delta: number) {\n return this.router.go(delta);\n }\n back() {\n return this.router.back();\n }\n forward() {\n return this.router.forward();\n }\n\n // ─── Route resolution\n resolve(...args: Parameters<Router[\"resolve\"]>) {\n return this.router.resolve(...args);\n }\n\n // ─── Route registry\n getRoutes() {\n return this.router.getRoutes();\n }\n hasRoute(...args: Parameters<Router[\"hasRoute\"]>) {\n return this.router.hasRoute(...args);\n }\n addRoute(...args: Parameters<Router[\"addRoute\"]>) {\n return this.router.addRoute(...args);\n }\n removeRoute(...args: Parameters<Router[\"removeRoute\"]>) {\n return this.router.removeRoute(...args);\n }\n clearRoutes() {\n return this.router.clearRoutes();\n }\n\n // ─── Navigation guards\n beforeEach(...args: Parameters<Router[\"beforeEach\"]>) {\n return this.router.beforeEach(...args);\n }\n beforeResolve(...args: Parameters<Router[\"beforeResolve\"]>) {\n return this.router.beforeResolve(...args);\n }\n afterEach(...args: Parameters<Router[\"afterEach\"]>) {\n return this.router.afterEach(...args);\n }\n onError(...args: Parameters<Router[\"onError\"]>) {\n return this.router.onError(...args);\n }\n\n // ─── Lifecycle\n isReady() {\n return this.router.isReady();\n }\n}\n","import { SERVICE_METADATA } from \"./internals\";\nimport type { ServiceConstructor, ServiceMetadata } from \"./types\";\n\n/**\n * Attaches some internal meta data to a class that is needed for di system\n *\n */\nexport function attach(){\n return function <C extends ServiceConstructor>(constructor: C) {\n if ((constructor as any)[SERVICE_METADATA]?.token) {\n return constructor;\n }\n\n // Add more metadata here if needed\n (constructor as any)[SERVICE_METADATA] = {\n token: Symbol(`[IOCRAFT]: Service - ${constructor.name || \"Anonymous\"}`),\n } satisfies ServiceMetadata;\n\n return constructor;\n };\n}\n"]}
@@ -24,9 +24,9 @@ var NativeKeys = /* @__PURE__ */ new Set([
24
24
  ...Object.getOwnPropertyNames(Object.prototype),
25
25
  ...Object.getOwnPropertySymbols(Object.prototype),
26
26
  ...Object.getOwnPropertyNames(Function.prototype),
27
- ...Object.getOwnPropertySymbols(Function.prototype),
28
- ...Object.getOwnPropertyNames(Array.prototype),
29
- ...Object.getOwnPropertySymbols(Array.prototype)
27
+ ...Object.getOwnPropertySymbols(Function.prototype)
28
+ // ...Object.getOwnPropertyNames(Array.prototype),
29
+ // ...Object.getOwnPropertySymbols(Array.prototype),
30
30
  ]);
31
31
  function addInstanceProperties(serviceInstance, targetObj) {
32
32
  const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];
@@ -188,11 +188,6 @@ import "vue";
188
188
 
189
189
  // src/common/nav.ts
190
190
  var Nav = class {
191
- };
192
- Nav = __decorateClass([
193
- attach()
194
- ], Nav);
195
- var RouterFacade = class {
196
191
  constructor(router) {
197
192
  this.router = router;
198
193
  }
@@ -291,11 +286,14 @@ var RouterFacade = class {
291
286
  return this.router.isReady();
292
287
  }
293
288
  };
289
+ Nav = __decorateClass([
290
+ attach()
291
+ ], Nav);
294
292
 
295
293
  // src/core/plugin.ts
296
294
  var iocraft = (_app, options) => {
297
295
  if (options?.router) {
298
- RootRegistry.set(getServiceMeta(Nav).token, new RouterFacade(options.router));
296
+ RootRegistry.set(getServiceMeta(Nav).token, new Nav(options.router));
299
297
  }
300
298
  if (options?.eagerLoad) {
301
299
  options.eagerLoad.forEach((service) => {
@@ -330,4 +328,4 @@ export {
330
328
  iocraft,
331
329
  attach
332
330
  };
333
- //# sourceMappingURL=chunk-FIK2HLL7.js.map
331
+ //# sourceMappingURL=chunk-ZSI3DYYX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/obtainers.ts","../src/core/facade.ts","../src/core/internals.ts","../src/core/utils.ts","../src/core/plugin.ts","../src/common/nav.ts","../src/core/attach.ts"],"sourcesContent":["import { getCurrentInstance, inject, provide } from \"vue\";\nimport { createFacadeObj } from \"./facade\";\nimport { bindLifecycleHooks, creationStack, RootRegistry } from \"./internals\";\nimport type { ServiceConstructor } from \"./types\";\nimport { getServiceMeta } from \"./utils\";\n\n/**\n * obtain Facade of a global singleton service From Root Registry\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtain<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n\n if (RootRegistry.has(serviceMeta.token)) {\n const instance = RootRegistry.get(serviceMeta.token)!;\n return createFacadeObj<InstanceType<T>>(instance);\n }\n\n if (creationStack.has(serviceMeta.token)) {\n throw new Error(`[IocRaft] Circular dependency detected on: ${serviceClass.name}\\n`);\n }\n\n creationStack.add(serviceMeta.token);\n\n try {\n const instance = new serviceClass();\n RootRegistry.set(serviceMeta.token, instance);\n return createFacadeObj<InstanceType<T>>(instance);\n } finally {\n creationStack.delete(serviceMeta.token);\n }\n}\n\n/**\n * obtain a facade of a new Service Instance\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtainNew<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n\n if (creationStack.has(serviceMeta.token)) {\n throw new Error(`[IocRaft] Circular dependency detected on: ${serviceClass.name}\\n`);\n }\n\n creationStack.add(serviceMeta.token);\n\n try {\n const componentInstance = getCurrentInstance();\n const instance = new serviceClass();\n\n if (componentInstance) {\n bindLifecycleHooks(instance);\n }\n\n return createFacadeObj<InstanceType<T>>(instance);\n } finally {\n creationStack.delete(serviceMeta.token);\n }\n}\n\n/**\n * Expose a service to context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {InstanceType<T>} serviceInstance\n */\nexport function exposeCtx<T extends ServiceConstructor>(serviceInstance: InstanceType<T>) {\n const serviceMeta = getServiceMeta(serviceInstance);\n provide(serviceMeta.token, serviceInstance);\n}\n\n/**\n * obtain A Service From Context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtainCtx<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n return inject<InstanceType<T>>(serviceMeta.token);\n}\n","import type { ServiceConstructor } from './types';\n\nfunction hasKey(obj: Record<PropertyKey, unknown>, key: PropertyKey): boolean {\n if (typeof key === 'symbol') {\n return Object.getOwnPropertySymbols(obj).includes(key);\n }\n return Object.hasOwn(obj, key);\n}\n\nconst NativeKeys = new Set([\n ...Object.getOwnPropertyNames(Object.prototype),\n ...Object.getOwnPropertySymbols(Object.prototype),\n ...Object.getOwnPropertyNames(Function.prototype),\n ...Object.getOwnPropertySymbols(Function.prototype),\n // ...Object.getOwnPropertyNames(Array.prototype),\n // ...Object.getOwnPropertySymbols(Array.prototype),\n]);\n\nfunction addInstanceProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];\n\n for (const key of ownKeys) {\n if (hasKey(targetObj, key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(serviceInstance, key)!;\n\n if (typeof descriptor.value === 'function') {\n console.warn(`[IOCRAFT]: Instance method \"${String(key)}\" found as own property. Consider moving to prototype.`);\n continue;\n }\n\n if (descriptor.get || descriptor.set) {\n continue;\n }\n\n Object.defineProperty(targetObj, key, {\n get() {\n return serviceInstance[key as keyof typeof serviceInstance];\n },\n set(v) {\n serviceInstance[key as keyof typeof serviceInstance] = v;\n },\n enumerable: true,\n configurable: true,\n });\n }\n}\n\nfunction addPrototypeProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n let currentProto = Object.getPrototypeOf(serviceInstance);\n\n while (currentProto && currentProto !== Object.prototype) {\n const protoKeys = [...Object.getOwnPropertyNames(currentProto), ...Object.getOwnPropertySymbols(currentProto)];\n\n for (const key of protoKeys) {\n if (hasKey(targetObj, key)) continue;\n\n if (NativeKeys.has(key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(currentProto, key)!;\n\n if (descriptor.get || descriptor.set) {\n Object.defineProperty(targetObj, key, {\n get: descriptor.get ? () => descriptor.get!.call(serviceInstance) : undefined,\n set: descriptor.set ? (v: any) => descriptor.set!.call(serviceInstance, v) : undefined,\n enumerable: true,\n configurable: true,\n });\n } else if (typeof descriptor.value === 'function') {\n targetObj[key] = descriptor.value.bind(serviceInstance);\n }\n }\n\n currentProto = Object.getPrototypeOf(currentProto);\n }\n}\n\n/**\n * CREATES A FACADE OBJECT\n *\n * @export\n * @template {object} T\n * @param {ServiceConstructor<T>} serviceClass\n * @param {InstanceType<ServiceConstructor<T>>} serviceInstance\n * @returns {{}}\n */\nexport function createFacadeObj<T extends object>(serviceInstance: object) {\n const targetObj = {};\n\n addInstanceProperties(serviceInstance, targetObj);\n addPrototypeProperties(serviceInstance, targetObj);\n return targetObj as T;\n}","import {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} from 'vue';\n\nexport const SERVICE_METADATA = Symbol('IOCRAFT_SERVICE_METADATA');\nexport const RootRegistry = new Map<symbol, object>();\nexport const creationStack = new Set<symbol>();\nconst lifecycleHookMap = {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} as const;\n\nexport function bindLifecycleHooks(instance: any) {\n for (const key in lifecycleHookMap) {\n const hookName = key as keyof typeof lifecycleHookMap;\n const vueHook = lifecycleHookMap[hookName];\n\n const handler = instance[hookName];\n\n if (typeof handler === 'function') {\n vueHook(handler.bind(instance));\n }\n }\n}\n","import { SERVICE_METADATA } from \"./internals\";\nimport type { ServiceConstructor, ServiceMetadata } from \"./types\";\n\nexport function getServiceMeta(target: ServiceConstructor | object) {\n const ctor = typeof target === \"function\" ? target : target.constructor;\n\n const meta = (ctor as any)[SERVICE_METADATA] as ServiceMetadata;\n if (!meta?.token) {\n throw new Error(`[IOCRAFT]: ${ctor?.name || \"Unknown\"} is not decorated with @Register()`);\n }\n return meta;\n}\n","import { type FunctionPlugin } from \"vue\";\nimport { Nav } from \"../common/nav\";\nimport { RootRegistry } from \"./internals\";\nimport type { PluginOptions } from \"./types\";\nimport { getServiceMeta } from \"./utils\";\n\nexport const iocraft: FunctionPlugin<[Partial<PluginOptions>?]> = (_app, options?: Partial<PluginOptions>) => {\n if (options?.router) {\n RootRegistry.set(getServiceMeta(Nav).token, new Nav(options.router));\n }\n\n // Eagerly create Service instances\n if (options?.eagerLoad) {\n options.eagerLoad.forEach((service) => {\n const serviceMeta = getServiceMeta(service);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new service());\n }\n });\n }\n};\n","import type { Router } from \"vue-router\";\nimport { attach } from \"../core\";\n\n@attach()\nexport class Nav {\n constructor(private router: Router) {}\n\n // ─── Flattened current route getters\n get path() {\n return this.router.currentRoute.value.path;\n }\n get name() {\n return this.router.currentRoute.value.name;\n }\n get params() {\n return this.router.currentRoute.value.params;\n }\n get query() {\n return this.router.currentRoute.value.query;\n }\n get hash() {\n return this.router.currentRoute.value.hash;\n }\n get fullPath() {\n return this.router.currentRoute.value.fullPath;\n }\n get matched() {\n return this.router.currentRoute.value.matched;\n }\n get meta() {\n return this.router.currentRoute.value.meta;\n }\n get redirectedFrom() {\n return this.router.currentRoute.value.redirectedFrom;\n }\n\n // ─── Router state\n get currentRoute() {\n return this.router.currentRoute;\n }\n get options() {\n return this.router.options;\n }\n\n get listening() {\n return this.router.listening;\n }\n set listening(value: boolean) {\n this.router.listening = value;\n }\n\n // ─── Navigation\n push(...args: Parameters<Router[\"push\"]>) {\n return this.router.push(...args);\n }\n replace(...args: Parameters<Router[\"replace\"]>) {\n return this.router.replace(...args);\n }\n go(delta: number) {\n return this.router.go(delta);\n }\n back() {\n return this.router.back();\n }\n forward() {\n return this.router.forward();\n }\n\n // ─── Route resolution\n resolve(...args: Parameters<Router[\"resolve\"]>) {\n return this.router.resolve(...args);\n }\n\n // ─── Route registry\n getRoutes() {\n return this.router.getRoutes();\n }\n hasRoute(...args: Parameters<Router[\"hasRoute\"]>) {\n return this.router.hasRoute(...args);\n }\n addRoute(...args: Parameters<Router[\"addRoute\"]>) {\n return this.router.addRoute(...args);\n }\n removeRoute(...args: Parameters<Router[\"removeRoute\"]>) {\n return this.router.removeRoute(...args);\n }\n clearRoutes() {\n return this.router.clearRoutes();\n }\n\n // ─── Navigation guards\n beforeEach(...args: Parameters<Router[\"beforeEach\"]>) {\n return this.router.beforeEach(...args);\n }\n beforeResolve(...args: Parameters<Router[\"beforeResolve\"]>) {\n return this.router.beforeResolve(...args);\n }\n afterEach(...args: Parameters<Router[\"afterEach\"]>) {\n return this.router.afterEach(...args);\n }\n onError(...args: Parameters<Router[\"onError\"]>) {\n return this.router.onError(...args);\n }\n\n // ─── Lifecycle\n isReady() {\n return this.router.isReady();\n }\n}\n","import { SERVICE_METADATA } from \"./internals\";\nimport type { ServiceConstructor, ServiceMetadata } from \"./types\";\n\n/**\n * Attaches some internal meta data to a class that is needed for di system\n *\n */\nexport function attach(){\n return function <C extends ServiceConstructor>(constructor: C) {\n if ((constructor as any)[SERVICE_METADATA]?.token) {\n return constructor;\n }\n\n // Add more metadata here if needed\n (constructor as any)[SERVICE_METADATA] = {\n token: Symbol(`[IOCRAFT]: Service - ${constructor.name || \"Anonymous\"}`),\n } satisfies ServiceMetadata;\n\n return constructor;\n };\n}\n"],"mappings":"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","names":[]}
package/dist/common.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;"use strict";
2
2
 
3
3
 
4
- var _chunk4PDVPTG3cjs = require('./chunk-4PDVPTG3.cjs');
4
+ var _chunk5SJR27OEcjs = require('./chunk-5SJR27OE.cjs');
5
5
 
6
6
  // src/common/store.ts
7
7
  var _vue = require('vue');
@@ -225,5 +225,5 @@ function abortable(key) {
225
225
 
226
226
 
227
227
 
228
- exports.Nav = _chunk4PDVPTG3cjs.Nav; exports.abortable = abortable; exports.store = store; exports.task = task;
228
+ exports.Nav = _chunk5SJR27OEcjs.Nav; exports.abortable = abortable; exports.store = store; exports.task = task;
229
229
  //# sourceMappingURL=common.cjs.map
package/dist/common.d.cts CHANGED
@@ -1,9 +1,40 @@
1
- import { Router, RouteLocationNormalizedGeneric } from 'vue-router';
1
+ import * as vue from 'vue';
2
2
  import { ComputedRef, WatchStopHandle, Ref, WatchHandle } from 'vue';
3
+ import * as vue_router from 'vue-router';
4
+ import { Router } from 'vue-router';
3
5
 
4
- interface Nav extends Omit<Router, "install" | "options" | "currentRoute">, Pick<RouteLocationNormalizedGeneric, "path" | "name" | "params" | "query" | "hash" | "fullPath" | "matched" | "meta"> {
5
- }
6
6
  declare class Nav {
7
+ private router;
8
+ constructor(router: Router);
9
+ get path(): string;
10
+ get name(): vue_router.RouteRecordNameGeneric;
11
+ get params(): vue_router.RouteParamsGeneric;
12
+ get query(): vue_router.LocationQuery;
13
+ get hash(): string;
14
+ get fullPath(): string;
15
+ get matched(): vue_router.RouteLocationMatched[];
16
+ get meta(): vue_router.RouteMeta;
17
+ get redirectedFrom(): vue_router.RouteLocationGeneric | undefined;
18
+ get currentRoute(): vue.ShallowRef<vue_router.RouteLocationNormalizedLoadedGeneric>;
19
+ get options(): vue_router.RouterOptions;
20
+ get listening(): boolean;
21
+ set listening(value: boolean);
22
+ push(...args: Parameters<Router["push"]>): Promise<void | vue_router.NavigationFailure | undefined>;
23
+ replace(...args: Parameters<Router["replace"]>): Promise<void | vue_router.NavigationFailure | undefined>;
24
+ go(delta: number): void;
25
+ back(): void;
26
+ forward(): void;
27
+ resolve(...args: Parameters<Router["resolve"]>): vue_router.RouteLocationResolvedGeneric;
28
+ getRoutes(): vue_router.RouteRecordNormalized[];
29
+ hasRoute(...args: Parameters<Router["hasRoute"]>): boolean;
30
+ addRoute(...args: Parameters<Router["addRoute"]>): () => void;
31
+ removeRoute(...args: Parameters<Router["removeRoute"]>): void;
32
+ clearRoutes(): void;
33
+ beforeEach(...args: Parameters<Router["beforeEach"]>): () => void;
34
+ beforeResolve(...args: Parameters<Router["beforeResolve"]>): () => void;
35
+ afterEach(...args: Parameters<Router["afterEach"]>): () => void;
36
+ onError(...args: Parameters<Router["onError"]>): () => void;
37
+ isReady(): Promise<void>;
7
38
  }
8
39
 
9
40
  declare function store<T extends Record<string, any>>(initialState: T): {
package/dist/common.d.ts CHANGED
@@ -1,9 +1,40 @@
1
- import { Router, RouteLocationNormalizedGeneric } from 'vue-router';
1
+ import * as vue from 'vue';
2
2
  import { ComputedRef, WatchStopHandle, Ref, WatchHandle } from 'vue';
3
+ import * as vue_router from 'vue-router';
4
+ import { Router } from 'vue-router';
3
5
 
4
- interface Nav extends Omit<Router, "install" | "options" | "currentRoute">, Pick<RouteLocationNormalizedGeneric, "path" | "name" | "params" | "query" | "hash" | "fullPath" | "matched" | "meta"> {
5
- }
6
6
  declare class Nav {
7
+ private router;
8
+ constructor(router: Router);
9
+ get path(): string;
10
+ get name(): vue_router.RouteRecordNameGeneric;
11
+ get params(): vue_router.RouteParamsGeneric;
12
+ get query(): vue_router.LocationQuery;
13
+ get hash(): string;
14
+ get fullPath(): string;
15
+ get matched(): vue_router.RouteLocationMatched[];
16
+ get meta(): vue_router.RouteMeta;
17
+ get redirectedFrom(): vue_router.RouteLocationGeneric | undefined;
18
+ get currentRoute(): vue.ShallowRef<vue_router.RouteLocationNormalizedLoadedGeneric>;
19
+ get options(): vue_router.RouterOptions;
20
+ get listening(): boolean;
21
+ set listening(value: boolean);
22
+ push(...args: Parameters<Router["push"]>): Promise<void | vue_router.NavigationFailure | undefined>;
23
+ replace(...args: Parameters<Router["replace"]>): Promise<void | vue_router.NavigationFailure | undefined>;
24
+ go(delta: number): void;
25
+ back(): void;
26
+ forward(): void;
27
+ resolve(...args: Parameters<Router["resolve"]>): vue_router.RouteLocationResolvedGeneric;
28
+ getRoutes(): vue_router.RouteRecordNormalized[];
29
+ hasRoute(...args: Parameters<Router["hasRoute"]>): boolean;
30
+ addRoute(...args: Parameters<Router["addRoute"]>): () => void;
31
+ removeRoute(...args: Parameters<Router["removeRoute"]>): void;
32
+ clearRoutes(): void;
33
+ beforeEach(...args: Parameters<Router["beforeEach"]>): () => void;
34
+ beforeResolve(...args: Parameters<Router["beforeResolve"]>): () => void;
35
+ afterEach(...args: Parameters<Router["afterEach"]>): () => void;
36
+ onError(...args: Parameters<Router["onError"]>): () => void;
37
+ isReady(): Promise<void>;
7
38
  }
8
39
 
9
40
  declare function store<T extends Record<string, any>>(initialState: T): {
package/dist/common.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  import {
3
3
  Nav
4
- } from "./chunk-FIK2HLL7.js";
4
+ } from "./chunk-ZSI3DYYX.js";
5
5
 
6
6
  // src/common/store.ts
7
7
  import { reactive, computed, watch, watchEffect, toRaw } from "vue";
package/dist/core.cjs CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
 
9
9
 
10
- var _chunk4PDVPTG3cjs = require('./chunk-4PDVPTG3.cjs');
10
+ var _chunk5SJR27OEcjs = require('./chunk-5SJR27OE.cjs');
11
11
 
12
12
 
13
13
 
@@ -16,5 +16,5 @@ var _chunk4PDVPTG3cjs = require('./chunk-4PDVPTG3.cjs');
16
16
 
17
17
 
18
18
 
19
- exports.attach = _chunk4PDVPTG3cjs.attach; exports.exposeCtx = _chunk4PDVPTG3cjs.exposeCtx; exports.getServiceMeta = _chunk4PDVPTG3cjs.getServiceMeta; exports.iocraft = _chunk4PDVPTG3cjs.iocraft; exports.obtain = _chunk4PDVPTG3cjs.obtain; exports.obtainCtx = _chunk4PDVPTG3cjs.obtainCtx; exports.obtainNew = _chunk4PDVPTG3cjs.obtainNew;
19
+ exports.attach = _chunk5SJR27OEcjs.attach; exports.exposeCtx = _chunk5SJR27OEcjs.exposeCtx; exports.getServiceMeta = _chunk5SJR27OEcjs.getServiceMeta; exports.iocraft = _chunk5SJR27OEcjs.iocraft; exports.obtain = _chunk5SJR27OEcjs.obtain; exports.obtainCtx = _chunk5SJR27OEcjs.obtainCtx; exports.obtainNew = _chunk5SJR27OEcjs.obtainNew;
20
20
  //# sourceMappingURL=core.cjs.map
package/dist/core.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Router } from 'vue-router';
2
2
  import { FunctionPlugin } from 'vue';
3
3
 
4
- type ServiceConstructor<T extends object = object> = new () => T;
4
+ type ServiceConstructor<T extends object = object> = new (...args: any[]) => T;
5
5
 
6
6
  interface PluginOptions {
7
7
  eagerLoad: ServiceConstructor[];
package/dist/core.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Router } from 'vue-router';
2
2
  import { FunctionPlugin } from 'vue';
3
3
 
4
- type ServiceConstructor<T extends object = object> = new () => T;
4
+ type ServiceConstructor<T extends object = object> = new (...args: any[]) => T;
5
5
 
6
6
  interface PluginOptions {
7
7
  eagerLoad: ServiceConstructor[];
package/dist/core.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  obtain,
8
8
  obtainCtx,
9
9
  obtainNew
10
- } from "./chunk-FIK2HLL7.js";
10
+ } from "./chunk-ZSI3DYYX.js";
11
11
  export {
12
12
  attach,
13
13
  exposeCtx,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iocraft",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "A lightweight IOC container for Vue 3 using the Composition API.",
5
5
  "keywords": [
6
6
  "vue",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/iocraft/iocraft/packages/iocraft/dist/chunk-4PDVPTG3.cjs","../src/core/obtainers.ts","../src/core/facade.ts","../src/core/internals.ts","../src/core/utils.ts","../src/core/plugin.ts","../src/common/nav.ts","../src/core/attach.ts"],"names":[],"mappings":"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","file":"/home/runner/work/iocraft/iocraft/packages/iocraft/dist/chunk-4PDVPTG3.cjs","sourcesContent":[null,"import { getCurrentInstance, inject, provide } from \"vue\";\nimport { createFacadeObj } from \"./facade\";\nimport { bindLifecycleHooks, creationStack, RootRegistry } from \"./internals\";\nimport type { ServiceConstructor } from \"./types\";\nimport { getServiceMeta } from \"./utils\";\n\n/**\n * obtain Facade of a global singleton service From Root Registry\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtain<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n\n if (RootRegistry.has(serviceMeta.token)) {\n const instance = RootRegistry.get(serviceMeta.token)!;\n return createFacadeObj<InstanceType<T>>(instance);\n }\n\n if (creationStack.has(serviceMeta.token)) {\n throw new Error(`[IocRaft] Circular dependency detected on: ${serviceClass.name}\\n`);\n }\n\n creationStack.add(serviceMeta.token);\n\n try {\n const instance = new serviceClass();\n RootRegistry.set(serviceMeta.token, instance);\n return createFacadeObj<InstanceType<T>>(instance);\n } finally {\n creationStack.delete(serviceMeta.token);\n }\n}\n\n/**\n * obtain a facade of a new Service Instance\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtainNew<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n\n if (creationStack.has(serviceMeta.token)) {\n throw new Error(`[IocRaft] Circular dependency detected on: ${serviceClass.name}\\n`);\n }\n\n creationStack.add(serviceMeta.token);\n\n try {\n const componentInstance = getCurrentInstance();\n const instance = new serviceClass();\n\n if (componentInstance) {\n bindLifecycleHooks(instance);\n }\n\n return createFacadeObj<InstanceType<T>>(instance);\n } finally {\n creationStack.delete(serviceMeta.token);\n }\n}\n\n/**\n * Expose a service to context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {InstanceType<T>} serviceInstance\n */\nexport function exposeCtx<T extends ServiceConstructor>(serviceInstance: InstanceType<T>) {\n const serviceMeta = getServiceMeta(serviceInstance);\n provide(serviceMeta.token, serviceInstance);\n}\n\n/**\n * obtain A Service From Context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtainCtx<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n return inject<InstanceType<T>>(serviceMeta.token);\n}\n","import type { ServiceConstructor } from './types';\n\nfunction hasKey(obj: Record<PropertyKey, unknown>, key: PropertyKey): boolean {\n if (typeof key === 'symbol') {\n return Object.getOwnPropertySymbols(obj).includes(key);\n }\n return Object.hasOwn(obj, key);\n}\n\nconst NativeKeys = new Set([\n ...Object.getOwnPropertyNames(Object.prototype),\n ...Object.getOwnPropertySymbols(Object.prototype),\n ...Object.getOwnPropertyNames(Function.prototype),\n ...Object.getOwnPropertySymbols(Function.prototype),\n ...Object.getOwnPropertyNames(Array.prototype),\n ...Object.getOwnPropertySymbols(Array.prototype),\n]);\n\nfunction addInstanceProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];\n\n for (const key of ownKeys) {\n if (hasKey(targetObj, key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(serviceInstance, key)!;\n\n if (typeof descriptor.value === 'function') {\n console.warn(`[IOCRAFT]: Instance method \"${String(key)}\" found as own property. Consider moving to prototype.`);\n continue;\n }\n\n if (descriptor.get || descriptor.set) {\n continue;\n }\n\n Object.defineProperty(targetObj, key, {\n get() {\n return serviceInstance[key as keyof typeof serviceInstance];\n },\n set(v) {\n serviceInstance[key as keyof typeof serviceInstance] = v;\n },\n enumerable: true,\n configurable: true,\n });\n }\n}\n\nfunction addPrototypeProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n let currentProto = Object.getPrototypeOf(serviceInstance);\n\n while (currentProto && currentProto !== Object.prototype) {\n const protoKeys = [...Object.getOwnPropertyNames(currentProto), ...Object.getOwnPropertySymbols(currentProto)];\n\n for (const key of protoKeys) {\n if (hasKey(targetObj, key)) continue;\n\n if (NativeKeys.has(key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(currentProto, key)!;\n\n if (descriptor.get || descriptor.set) {\n Object.defineProperty(targetObj, key, {\n get: descriptor.get ? () => descriptor.get!.call(serviceInstance) : undefined,\n set: descriptor.set ? (v: any) => descriptor.set!.call(serviceInstance, v) : undefined,\n enumerable: true,\n configurable: true,\n });\n } else if (typeof descriptor.value === 'function') {\n targetObj[key] = descriptor.value.bind(serviceInstance);\n }\n }\n\n currentProto = Object.getPrototypeOf(currentProto);\n }\n}\n\n/**\n * CREATES A FACADE OBJECT\n *\n * @export\n * @template {object} T\n * @param {ServiceConstructor<T>} serviceClass\n * @param {InstanceType<ServiceConstructor<T>>} serviceInstance\n * @returns {{}}\n */\nexport function createFacadeObj<T extends object>(serviceInstance: object) {\n const targetObj = {};\n\n addInstanceProperties(serviceInstance, targetObj);\n addPrototypeProperties(serviceInstance, targetObj);\n return targetObj as T;\n}","import {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} from 'vue';\n\nexport const SERVICE_METADATA = Symbol('IOCRAFT_SERVICE_METADATA');\nexport const RootRegistry = new Map<symbol, object>();\nexport const creationStack = new Set<symbol>();\nconst lifecycleHookMap = {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} as const;\n\nexport function bindLifecycleHooks(instance: any) {\n for (const key in lifecycleHookMap) {\n const hookName = key as keyof typeof lifecycleHookMap;\n const vueHook = lifecycleHookMap[hookName];\n\n const handler = instance[hookName];\n\n if (typeof handler === 'function') {\n vueHook(handler.bind(instance));\n }\n }\n}\n","import { SERVICE_METADATA } from \"./internals\";\nimport type { ServiceConstructor, ServiceMetadata } from \"./types\";\n\nexport function getServiceMeta(target: ServiceConstructor | object) {\n const ctor = typeof target === \"function\" ? target : target.constructor;\n\n const meta = (ctor as any)[SERVICE_METADATA] as ServiceMetadata;\n if (!meta?.token) {\n throw new Error(`[IOCRAFT]: ${ctor?.name || \"Unknown\"} is not decorated with @Register()`);\n }\n return meta;\n}\n","import { type FunctionPlugin } from \"vue\";\nimport { Nav, RouterFacade } from \"../common/nav\";\nimport { RootRegistry } from \"./internals\";\nimport type { PluginOptions } from \"./types\";\nimport { getServiceMeta } from \"./utils\";\n\nexport const iocraft: FunctionPlugin<[Partial<PluginOptions>?]> = (_app, options?: Partial<PluginOptions>) => {\n if (options?.router) {\n RootRegistry.set(getServiceMeta(Nav).token, new RouterFacade(options.router));\n }\n\n // Eagerly create Service instances\n if (options?.eagerLoad) {\n options.eagerLoad.forEach((service) => {\n const serviceMeta = getServiceMeta(service);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new service());\n }\n });\n }\n};\n","import type { RouteLocationNormalizedGeneric, Router } from \"vue-router\";\nimport { attach } from \"../core\";\n\nexport interface Nav\n extends\n Omit<Router, \"install\" | \"options\" | \"currentRoute\">,\n Pick<RouteLocationNormalizedGeneric, \"path\" | \"name\" | \"params\" | \"query\" | \"hash\" | \"fullPath\" | \"matched\" | \"meta\"> {}\n\n@attach()\nexport class Nav {}\n\nexport class RouterFacade {\n constructor(private router: Router) {}\n\n // ─── Flattened current route getters\n get path() {\n return this.router.currentRoute.value.path;\n }\n get name() {\n return this.router.currentRoute.value.name;\n }\n get params() {\n return this.router.currentRoute.value.params;\n }\n get query() {\n return this.router.currentRoute.value.query;\n }\n get hash() {\n return this.router.currentRoute.value.hash;\n }\n get fullPath() {\n return this.router.currentRoute.value.fullPath;\n }\n get matched() {\n return this.router.currentRoute.value.matched;\n }\n get meta() {\n return this.router.currentRoute.value.meta;\n }\n get redirectedFrom() {\n return this.router.currentRoute.value.redirectedFrom;\n }\n\n // ─── Router state\n get currentRoute() {\n return this.router.currentRoute;\n }\n get options() {\n return this.router.options;\n }\n\n get listening() {\n return this.router.listening;\n }\n set listening(value: boolean) {\n this.router.listening = value;\n }\n\n // ─── Navigation\n push(...args: Parameters<Router[\"push\"]>) {\n return this.router.push(...args);\n }\n replace(...args: Parameters<Router[\"replace\"]>) {\n return this.router.replace(...args);\n }\n go(delta: number) {\n return this.router.go(delta);\n }\n back() {\n return this.router.back();\n }\n forward() {\n return this.router.forward();\n }\n\n // ─── Route resolution\n resolve(...args: Parameters<Router[\"resolve\"]>) {\n return this.router.resolve(...args);\n }\n\n // ─── Route registry\n getRoutes() {\n return this.router.getRoutes();\n }\n hasRoute(...args: Parameters<Router[\"hasRoute\"]>) {\n return this.router.hasRoute(...args);\n }\n addRoute(...args: Parameters<Router[\"addRoute\"]>) {\n return this.router.addRoute(...args);\n }\n removeRoute(...args: Parameters<Router[\"removeRoute\"]>) {\n return this.router.removeRoute(...args);\n }\n clearRoutes() {\n return this.router.clearRoutes();\n }\n\n // ─── Navigation guards\n beforeEach(...args: Parameters<Router[\"beforeEach\"]>) {\n return this.router.beforeEach(...args);\n }\n beforeResolve(...args: Parameters<Router[\"beforeResolve\"]>) {\n return this.router.beforeResolve(...args);\n }\n afterEach(...args: Parameters<Router[\"afterEach\"]>) {\n return this.router.afterEach(...args);\n }\n onError(...args: Parameters<Router[\"onError\"]>) {\n return this.router.onError(...args);\n }\n\n // ─── Lifecycle\n isReady() {\n return this.router.isReady();\n }\n}\n","import { SERVICE_METADATA } from \"./internals\";\nimport type { ServiceConstructor, ServiceMetadata } from \"./types\";\n\n/**\n * Attaches some internal meta data to a class that is needed for di system\n *\n */\nexport function attach(){\n return function <C extends ServiceConstructor>(constructor: C) {\n if ((constructor as any)[SERVICE_METADATA]?.token) {\n return constructor;\n }\n\n // Add more metadata here if needed\n (constructor as any)[SERVICE_METADATA] = {\n token: Symbol(`[IOCRAFT]: Service - ${constructor.name || \"Anonymous\"}`),\n } satisfies ServiceMetadata;\n\n return constructor;\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/obtainers.ts","../src/core/facade.ts","../src/core/internals.ts","../src/core/utils.ts","../src/core/plugin.ts","../src/common/nav.ts","../src/core/attach.ts"],"sourcesContent":["import { getCurrentInstance, inject, provide } from \"vue\";\nimport { createFacadeObj } from \"./facade\";\nimport { bindLifecycleHooks, creationStack, RootRegistry } from \"./internals\";\nimport type { ServiceConstructor } from \"./types\";\nimport { getServiceMeta } from \"./utils\";\n\n/**\n * obtain Facade of a global singleton service From Root Registry\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtain<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n\n if (RootRegistry.has(serviceMeta.token)) {\n const instance = RootRegistry.get(serviceMeta.token)!;\n return createFacadeObj<InstanceType<T>>(instance);\n }\n\n if (creationStack.has(serviceMeta.token)) {\n throw new Error(`[IocRaft] Circular dependency detected on: ${serviceClass.name}\\n`);\n }\n\n creationStack.add(serviceMeta.token);\n\n try {\n const instance = new serviceClass();\n RootRegistry.set(serviceMeta.token, instance);\n return createFacadeObj<InstanceType<T>>(instance);\n } finally {\n creationStack.delete(serviceMeta.token);\n }\n}\n\n/**\n * obtain a facade of a new Service Instance\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtainNew<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n\n if (creationStack.has(serviceMeta.token)) {\n throw new Error(`[IocRaft] Circular dependency detected on: ${serviceClass.name}\\n`);\n }\n\n creationStack.add(serviceMeta.token);\n\n try {\n const componentInstance = getCurrentInstance();\n const instance = new serviceClass();\n\n if (componentInstance) {\n bindLifecycleHooks(instance);\n }\n\n return createFacadeObj<InstanceType<T>>(instance);\n } finally {\n creationStack.delete(serviceMeta.token);\n }\n}\n\n/**\n * Expose a service to context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {InstanceType<T>} serviceInstance\n */\nexport function exposeCtx<T extends ServiceConstructor>(serviceInstance: InstanceType<T>) {\n const serviceMeta = getServiceMeta(serviceInstance);\n provide(serviceMeta.token, serviceInstance);\n}\n\n/**\n * obtain A Service From Context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n */\nexport function obtainCtx<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n return inject<InstanceType<T>>(serviceMeta.token);\n}\n","import type { ServiceConstructor } from './types';\n\nfunction hasKey(obj: Record<PropertyKey, unknown>, key: PropertyKey): boolean {\n if (typeof key === 'symbol') {\n return Object.getOwnPropertySymbols(obj).includes(key);\n }\n return Object.hasOwn(obj, key);\n}\n\nconst NativeKeys = new Set([\n ...Object.getOwnPropertyNames(Object.prototype),\n ...Object.getOwnPropertySymbols(Object.prototype),\n ...Object.getOwnPropertyNames(Function.prototype),\n ...Object.getOwnPropertySymbols(Function.prototype),\n ...Object.getOwnPropertyNames(Array.prototype),\n ...Object.getOwnPropertySymbols(Array.prototype),\n]);\n\nfunction addInstanceProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];\n\n for (const key of ownKeys) {\n if (hasKey(targetObj, key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(serviceInstance, key)!;\n\n if (typeof descriptor.value === 'function') {\n console.warn(`[IOCRAFT]: Instance method \"${String(key)}\" found as own property. Consider moving to prototype.`);\n continue;\n }\n\n if (descriptor.get || descriptor.set) {\n continue;\n }\n\n Object.defineProperty(targetObj, key, {\n get() {\n return serviceInstance[key as keyof typeof serviceInstance];\n },\n set(v) {\n serviceInstance[key as keyof typeof serviceInstance] = v;\n },\n enumerable: true,\n configurable: true,\n });\n }\n}\n\nfunction addPrototypeProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n let currentProto = Object.getPrototypeOf(serviceInstance);\n\n while (currentProto && currentProto !== Object.prototype) {\n const protoKeys = [...Object.getOwnPropertyNames(currentProto), ...Object.getOwnPropertySymbols(currentProto)];\n\n for (const key of protoKeys) {\n if (hasKey(targetObj, key)) continue;\n\n if (NativeKeys.has(key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(currentProto, key)!;\n\n if (descriptor.get || descriptor.set) {\n Object.defineProperty(targetObj, key, {\n get: descriptor.get ? () => descriptor.get!.call(serviceInstance) : undefined,\n set: descriptor.set ? (v: any) => descriptor.set!.call(serviceInstance, v) : undefined,\n enumerable: true,\n configurable: true,\n });\n } else if (typeof descriptor.value === 'function') {\n targetObj[key] = descriptor.value.bind(serviceInstance);\n }\n }\n\n currentProto = Object.getPrototypeOf(currentProto);\n }\n}\n\n/**\n * CREATES A FACADE OBJECT\n *\n * @export\n * @template {object} T\n * @param {ServiceConstructor<T>} serviceClass\n * @param {InstanceType<ServiceConstructor<T>>} serviceInstance\n * @returns {{}}\n */\nexport function createFacadeObj<T extends object>(serviceInstance: object) {\n const targetObj = {};\n\n addInstanceProperties(serviceInstance, targetObj);\n addPrototypeProperties(serviceInstance, targetObj);\n return targetObj as T;\n}","import {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} from 'vue';\n\nexport const SERVICE_METADATA = Symbol('IOCRAFT_SERVICE_METADATA');\nexport const RootRegistry = new Map<symbol, object>();\nexport const creationStack = new Set<symbol>();\nconst lifecycleHookMap = {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} as const;\n\nexport function bindLifecycleHooks(instance: any) {\n for (const key in lifecycleHookMap) {\n const hookName = key as keyof typeof lifecycleHookMap;\n const vueHook = lifecycleHookMap[hookName];\n\n const handler = instance[hookName];\n\n if (typeof handler === 'function') {\n vueHook(handler.bind(instance));\n }\n }\n}\n","import { SERVICE_METADATA } from \"./internals\";\nimport type { ServiceConstructor, ServiceMetadata } from \"./types\";\n\nexport function getServiceMeta(target: ServiceConstructor | object) {\n const ctor = typeof target === \"function\" ? target : target.constructor;\n\n const meta = (ctor as any)[SERVICE_METADATA] as ServiceMetadata;\n if (!meta?.token) {\n throw new Error(`[IOCRAFT]: ${ctor?.name || \"Unknown\"} is not decorated with @Register()`);\n }\n return meta;\n}\n","import { type FunctionPlugin } from \"vue\";\nimport { Nav, RouterFacade } from \"../common/nav\";\nimport { RootRegistry } from \"./internals\";\nimport type { PluginOptions } from \"./types\";\nimport { getServiceMeta } from \"./utils\";\n\nexport const iocraft: FunctionPlugin<[Partial<PluginOptions>?]> = (_app, options?: Partial<PluginOptions>) => {\n if (options?.router) {\n RootRegistry.set(getServiceMeta(Nav).token, new RouterFacade(options.router));\n }\n\n // Eagerly create Service instances\n if (options?.eagerLoad) {\n options.eagerLoad.forEach((service) => {\n const serviceMeta = getServiceMeta(service);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new service());\n }\n });\n }\n};\n","import type { RouteLocationNormalizedGeneric, Router } from \"vue-router\";\nimport { attach } from \"../core\";\n\nexport interface Nav\n extends\n Omit<Router, \"install\" | \"options\" | \"currentRoute\">,\n Pick<RouteLocationNormalizedGeneric, \"path\" | \"name\" | \"params\" | \"query\" | \"hash\" | \"fullPath\" | \"matched\" | \"meta\"> {}\n\n@attach()\nexport class Nav {}\n\nexport class RouterFacade {\n constructor(private router: Router) {}\n\n // ─── Flattened current route getters\n get path() {\n return this.router.currentRoute.value.path;\n }\n get name() {\n return this.router.currentRoute.value.name;\n }\n get params() {\n return this.router.currentRoute.value.params;\n }\n get query() {\n return this.router.currentRoute.value.query;\n }\n get hash() {\n return this.router.currentRoute.value.hash;\n }\n get fullPath() {\n return this.router.currentRoute.value.fullPath;\n }\n get matched() {\n return this.router.currentRoute.value.matched;\n }\n get meta() {\n return this.router.currentRoute.value.meta;\n }\n get redirectedFrom() {\n return this.router.currentRoute.value.redirectedFrom;\n }\n\n // ─── Router state\n get currentRoute() {\n return this.router.currentRoute;\n }\n get options() {\n return this.router.options;\n }\n\n get listening() {\n return this.router.listening;\n }\n set listening(value: boolean) {\n this.router.listening = value;\n }\n\n // ─── Navigation\n push(...args: Parameters<Router[\"push\"]>) {\n return this.router.push(...args);\n }\n replace(...args: Parameters<Router[\"replace\"]>) {\n return this.router.replace(...args);\n }\n go(delta: number) {\n return this.router.go(delta);\n }\n back() {\n return this.router.back();\n }\n forward() {\n return this.router.forward();\n }\n\n // ─── Route resolution\n resolve(...args: Parameters<Router[\"resolve\"]>) {\n return this.router.resolve(...args);\n }\n\n // ─── Route registry\n getRoutes() {\n return this.router.getRoutes();\n }\n hasRoute(...args: Parameters<Router[\"hasRoute\"]>) {\n return this.router.hasRoute(...args);\n }\n addRoute(...args: Parameters<Router[\"addRoute\"]>) {\n return this.router.addRoute(...args);\n }\n removeRoute(...args: Parameters<Router[\"removeRoute\"]>) {\n return this.router.removeRoute(...args);\n }\n clearRoutes() {\n return this.router.clearRoutes();\n }\n\n // ─── Navigation guards\n beforeEach(...args: Parameters<Router[\"beforeEach\"]>) {\n return this.router.beforeEach(...args);\n }\n beforeResolve(...args: Parameters<Router[\"beforeResolve\"]>) {\n return this.router.beforeResolve(...args);\n }\n afterEach(...args: Parameters<Router[\"afterEach\"]>) {\n return this.router.afterEach(...args);\n }\n onError(...args: Parameters<Router[\"onError\"]>) {\n return this.router.onError(...args);\n }\n\n // ─── Lifecycle\n isReady() {\n return this.router.isReady();\n }\n}\n","import { SERVICE_METADATA } from \"./internals\";\nimport type { ServiceConstructor, ServiceMetadata } from \"./types\";\n\n/**\n * Attaches some internal meta data to a class that is needed for di system\n *\n */\nexport function attach(){\n return function <C extends ServiceConstructor>(constructor: C) {\n if ((constructor as any)[SERVICE_METADATA]?.token) {\n return constructor;\n }\n\n // Add more metadata here if needed\n (constructor as any)[SERVICE_METADATA] = {\n token: Symbol(`[IOCRAFT]: Service - ${constructor.name || \"Anonymous\"}`),\n } satisfies ServiceMetadata;\n\n return constructor;\n };\n}\n"],"mappings":"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","names":[]}