@xyo-network/module-resolver 2.107.6 → 2.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/browser/CompositeModuleResolver.d.cts +2 -2
  2. package/dist/browser/CompositeModuleResolver.d.cts.map +1 -1
  3. package/dist/browser/CompositeModuleResolver.d.mts +2 -2
  4. package/dist/browser/CompositeModuleResolver.d.mts.map +1 -1
  5. package/dist/browser/CompositeModuleResolver.d.ts +2 -2
  6. package/dist/browser/CompositeModuleResolver.d.ts.map +1 -1
  7. package/dist/browser/ResolverEventEmitter.d.cts +1 -1
  8. package/dist/browser/ResolverEventEmitter.d.cts.map +1 -1
  9. package/dist/browser/ResolverEventEmitter.d.mts +1 -1
  10. package/dist/browser/ResolverEventEmitter.d.mts.map +1 -1
  11. package/dist/browser/ResolverEventEmitter.d.ts +1 -1
  12. package/dist/browser/ResolverEventEmitter.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +18 -18
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +18 -18
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/neutral/CompositeModuleResolver.d.cts +2 -2
  18. package/dist/neutral/CompositeModuleResolver.d.cts.map +1 -1
  19. package/dist/neutral/CompositeModuleResolver.d.mts +2 -2
  20. package/dist/neutral/CompositeModuleResolver.d.mts.map +1 -1
  21. package/dist/neutral/CompositeModuleResolver.d.ts +2 -2
  22. package/dist/neutral/CompositeModuleResolver.d.ts.map +1 -1
  23. package/dist/neutral/ResolverEventEmitter.d.cts +1 -1
  24. package/dist/neutral/ResolverEventEmitter.d.cts.map +1 -1
  25. package/dist/neutral/ResolverEventEmitter.d.mts +1 -1
  26. package/dist/neutral/ResolverEventEmitter.d.mts.map +1 -1
  27. package/dist/neutral/ResolverEventEmitter.d.ts +1 -1
  28. package/dist/neutral/ResolverEventEmitter.d.ts.map +1 -1
  29. package/dist/neutral/index.cjs +18 -18
  30. package/dist/neutral/index.cjs.map +1 -1
  31. package/dist/neutral/index.js +18 -18
  32. package/dist/neutral/index.js.map +1 -1
  33. package/dist/node/CompositeModuleResolver.d.cts +2 -2
  34. package/dist/node/CompositeModuleResolver.d.cts.map +1 -1
  35. package/dist/node/CompositeModuleResolver.d.mts +2 -2
  36. package/dist/node/CompositeModuleResolver.d.mts.map +1 -1
  37. package/dist/node/CompositeModuleResolver.d.ts +2 -2
  38. package/dist/node/CompositeModuleResolver.d.ts.map +1 -1
  39. package/dist/node/ResolverEventEmitter.d.cts +1 -1
  40. package/dist/node/ResolverEventEmitter.d.cts.map +1 -1
  41. package/dist/node/ResolverEventEmitter.d.mts +1 -1
  42. package/dist/node/ResolverEventEmitter.d.mts.map +1 -1
  43. package/dist/node/ResolverEventEmitter.d.ts +1 -1
  44. package/dist/node/ResolverEventEmitter.d.ts.map +1 -1
  45. package/dist/node/index.cjs +18 -18
  46. package/dist/node/index.cjs.map +1 -1
  47. package/dist/node/index.js +18 -18
  48. package/dist/node/index.js.map +1 -1
  49. package/package.json +6 -6
  50. package/src/CompositeModuleResolver.ts +11 -11
  51. package/src/ResolverEventEmitter.ts +3 -3
  52. package/src/SimpleModuleResolver.ts +7 -7
@@ -19,8 +19,8 @@ export declare class CompositeModuleResolver<T extends CompositeModuleResolverPa
19
19
  set allowAddResolver(value: boolean);
20
20
  get allowNameResolution(): boolean;
21
21
  private get moduleIdentifierTransformers();
22
- add(module: ModuleInstance): this;
23
- add(module: ModuleInstance[]): this;
22
+ add(mod: ModuleInstance): this;
23
+ add(mod: ModuleInstance[]): this;
24
24
  addResolver(resolver: ModuleResolverInstance): this;
25
25
  remove(addresses: Address[] | Address): this;
26
26
  removeResolver(resolver: ModuleResolverInstance): this;
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAGpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAuB,CAAC,CAAC,SAAS,6BAA6B,GAAG,6BAA6B,CAC1G,SAAQ,sBAAsB,CAAC,CAAC,CAChC,YAAW,gBAAgB,EAAE,sBAAsB;IAEnD,MAAM,CAAC,eAAe,SAAI;IAE1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,cAAc,CAAsB;gBAEhC,MAAM,EAAE,CAAC;IASrB,IAAI,gBAAgB,IAIQ,OAAO,CAFlC;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAGlC;IAED,IAAI,mBAAmB,YAEtB;IAED,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAOnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,GAAE,mBAAmB,CAAC,CAAC,CAAM,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC;IAgIT,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsB3G,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAI1H,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;CAOzC"}
1
+ {"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAGpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAuB,CAAC,CAAC,SAAS,6BAA6B,GAAG,6BAA6B,CAC1G,SAAQ,sBAAsB,CAAC,CAAC,CAChC,YAAW,gBAAgB,EAAE,sBAAsB;IAEnD,MAAM,CAAC,eAAe,SAAI;IAE1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,cAAc,CAAsB;gBAEhC,MAAM,EAAE,CAAC;IASrB,IAAI,gBAAgB,IAIQ,OAAO,CAFlC;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAGlC;IAED,IAAI,mBAAmB,YAEtB;IAED,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAC9B,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI;IAUhC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAOnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,GAAE,mBAAmB,CAAC,CAAC,CAAM,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC;IAgIT,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsB3G,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAI1H,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;CAOzC"}
@@ -19,8 +19,8 @@ export declare class CompositeModuleResolver<T extends CompositeModuleResolverPa
19
19
  set allowAddResolver(value: boolean);
20
20
  get allowNameResolution(): boolean;
21
21
  private get moduleIdentifierTransformers();
22
- add(module: ModuleInstance): this;
23
- add(module: ModuleInstance[]): this;
22
+ add(mod: ModuleInstance): this;
23
+ add(mod: ModuleInstance[]): this;
24
24
  addResolver(resolver: ModuleResolverInstance): this;
25
25
  remove(addresses: Address[] | Address): this;
26
26
  removeResolver(resolver: ModuleResolverInstance): this;
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAGpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAuB,CAAC,CAAC,SAAS,6BAA6B,GAAG,6BAA6B,CAC1G,SAAQ,sBAAsB,CAAC,CAAC,CAChC,YAAW,gBAAgB,EAAE,sBAAsB;IAEnD,MAAM,CAAC,eAAe,SAAI;IAE1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,cAAc,CAAsB;gBAEhC,MAAM,EAAE,CAAC;IASrB,IAAI,gBAAgB,IAIQ,OAAO,CAFlC;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAGlC;IAED,IAAI,mBAAmB,YAEtB;IAED,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAOnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,GAAE,mBAAmB,CAAC,CAAC,CAAM,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC;IAgIT,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsB3G,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAI1H,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;CAOzC"}
1
+ {"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAGpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAuB,CAAC,CAAC,SAAS,6BAA6B,GAAG,6BAA6B,CAC1G,SAAQ,sBAAsB,CAAC,CAAC,CAChC,YAAW,gBAAgB,EAAE,sBAAsB;IAEnD,MAAM,CAAC,eAAe,SAAI;IAE1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,cAAc,CAAsB;gBAEhC,MAAM,EAAE,CAAC;IASrB,IAAI,gBAAgB,IAIQ,OAAO,CAFlC;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAGlC;IAED,IAAI,mBAAmB,YAEtB;IAED,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAC9B,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI;IAUhC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAOnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,GAAE,mBAAmB,CAAC,CAAC,CAAM,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC;IAgIT,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsB3G,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAI1H,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;CAOzC"}
@@ -19,8 +19,8 @@ export declare class CompositeModuleResolver<T extends CompositeModuleResolverPa
19
19
  set allowAddResolver(value: boolean);
20
20
  get allowNameResolution(): boolean;
21
21
  private get moduleIdentifierTransformers();
22
- add(module: ModuleInstance): this;
23
- add(module: ModuleInstance[]): this;
22
+ add(mod: ModuleInstance): this;
23
+ add(mod: ModuleInstance[]): this;
24
24
  addResolver(resolver: ModuleResolverInstance): this;
25
25
  remove(addresses: Address[] | Address): this;
26
26
  removeResolver(resolver: ModuleResolverInstance): this;
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAGpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAuB,CAAC,CAAC,SAAS,6BAA6B,GAAG,6BAA6B,CAC1G,SAAQ,sBAAsB,CAAC,CAAC,CAChC,YAAW,gBAAgB,EAAE,sBAAsB;IAEnD,MAAM,CAAC,eAAe,SAAI;IAE1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,cAAc,CAAsB;gBAEhC,MAAM,EAAE,CAAC;IASrB,IAAI,gBAAgB,IAIQ,OAAO,CAFlC;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAGlC;IAED,IAAI,mBAAmB,YAEtB;IAED,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAOnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,GAAE,mBAAmB,CAAC,CAAC,CAAM,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC;IAgIT,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsB3G,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAI1H,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;CAOzC"}
1
+ {"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAGpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAuB,CAAC,CAAC,SAAS,6BAA6B,GAAG,6BAA6B,CAC1G,SAAQ,sBAAsB,CAAC,CAAC,CAChC,YAAW,gBAAgB,EAAE,sBAAsB;IAEnD,MAAM,CAAC,eAAe,SAAI;IAE1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,iBAAiB,CAAO;IAChC,OAAO,CAAC,cAAc,CAAsB;gBAEhC,MAAM,EAAE,CAAC;IASrB,IAAI,gBAAgB,IAIQ,OAAO,CAFlC;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAGlC;IAED,IAAI,mBAAmB,YAEtB;IAED,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAC9B,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI;IAUhC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAOnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,GAAE,mBAAmB,CAAC,CAAC,CAAM,GACnC,OAAO,CAAC,CAAC,EAAE,CAAC;IAgIT,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsB3G,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;IAI1H,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;CAOzC"}
@@ -1,7 +1,7 @@
1
1
  import { Module, ModuleFilter, ModuleResolver } from '@xyo-network/module-model';
2
2
  export interface ModuleResolvedEventArgs {
3
3
  filter?: ModuleFilter;
4
- module: Module;
4
+ mod: Module;
5
5
  }
6
6
  export interface ResolverEventEmitter {
7
7
  on(event: 'moduleResolved', listener: (args: ModuleResolvedEventArgs) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ResolverEventEmitter.d.ts","sourceRoot":"","sources":["../../src/ResolverEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhF,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAA;CACrF;AAiCD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,cAAc;;;;;;;;;;;;4EAA6B,CAAC,KAAG,CAAC,GAAG,oBAItG,CAAA"}
1
+ {"version":3,"file":"ResolverEventEmitter.d.ts","sourceRoot":"","sources":["../../src/ResolverEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhF,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAA;CACrF;AAiCD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,cAAc;;;;;;;;;;;;4EAA6B,CAAC,KAAG,CAAC,GAAG,oBAItG,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { Module, ModuleFilter, ModuleResolver } from '@xyo-network/module-model';
2
2
  export interface ModuleResolvedEventArgs {
3
3
  filter?: ModuleFilter;
4
- module: Module;
4
+ mod: Module;
5
5
  }
6
6
  export interface ResolverEventEmitter {
7
7
  on(event: 'moduleResolved', listener: (args: ModuleResolvedEventArgs) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ResolverEventEmitter.d.ts","sourceRoot":"","sources":["../../src/ResolverEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhF,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAA;CACrF;AAiCD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,cAAc;;;;;;;;;;;;4EAA6B,CAAC,KAAG,CAAC,GAAG,oBAItG,CAAA"}
1
+ {"version":3,"file":"ResolverEventEmitter.d.ts","sourceRoot":"","sources":["../../src/ResolverEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhF,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAA;CACrF;AAiCD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,cAAc;;;;;;;;;;;;4EAA6B,CAAC,KAAG,CAAC,GAAG,oBAItG,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { Module, ModuleFilter, ModuleResolver } from '@xyo-network/module-model';
2
2
  export interface ModuleResolvedEventArgs {
3
3
  filter?: ModuleFilter;
4
- module: Module;
4
+ mod: Module;
5
5
  }
6
6
  export interface ResolverEventEmitter {
7
7
  on(event: 'moduleResolved', listener: (args: ModuleResolvedEventArgs) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ResolverEventEmitter.d.ts","sourceRoot":"","sources":["../../src/ResolverEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhF,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAA;CACrF;AAiCD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,cAAc;;;;;;;;;;;;4EAA6B,CAAC,KAAG,CAAC,GAAG,oBAItG,CAAA"}
1
+ {"version":3,"file":"ResolverEventEmitter.d.ts","sourceRoot":"","sources":["../../src/ResolverEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhF,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAA;CACrF;AAiCD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,cAAc;;;;;;;;;;;;4EAA6B,CAAC,KAAG,CAAC,GAAG,oBAItG,CAAA"}
@@ -153,7 +153,7 @@ var SimpleModuleResolver = class extends AbstractModuleResolver {
153
153
  })();
154
154
  const identity = options?.identity;
155
155
  if (identity) {
156
- return Array.isArray(unfiltered) ? unfiltered?.filter((module2) => identity(module2)) : identity(unfiltered) ? [
156
+ return Array.isArray(unfiltered) ? unfiltered?.filter((mod) => identity(mod)) : identity(unfiltered) ? [
157
157
  unfiltered
158
158
  ] : [];
159
159
  } else {
@@ -167,9 +167,9 @@ var SimpleModuleResolver = class extends AbstractModuleResolver {
167
167
  if (moduleFromName) {
168
168
  return moduleFromName.address;
169
169
  }
170
- for (const module2 of Object.values(this.modules)) {
171
- if (module2.address === id) {
172
- return module2.address;
170
+ for (const mod of Object.values(this.modules)) {
171
+ if (mod.address === id) {
172
+ return mod.address;
173
173
  }
174
174
  }
175
175
  }
@@ -199,15 +199,15 @@ var SimpleModuleResolver = class extends AbstractModuleResolver {
199
199
  }
200
200
  resolveByName(modules, name) {
201
201
  return (0, import_lodash.compact)(name.map((name2) => {
202
- return modules.find((module2) => module2.modName === name2);
202
+ return modules.find((mod) => mod.modName === name2);
203
203
  }));
204
204
  }
205
205
  resolveByQuery(modules, query) {
206
- return (0, import_lodash.compact)(modules.filter((module2) => query?.reduce((supported, queryList) => {
206
+ return (0, import_lodash.compact)(modules.filter((mod) => query?.reduce((supported, queryList) => {
207
207
  return (
208
208
  // eslint-disable-next-line unicorn/no-array-reduce
209
209
  queryList.reduce((supported2, query2) => {
210
- const queryable = module2.queries.includes(query2);
210
+ const queryable = mod.queries.includes(query2);
211
211
  return supported2 && queryable;
212
212
  }, true) || supported
213
213
  );
@@ -262,11 +262,11 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends AbstractMod
262
262
  get moduleIdentifierTransformers() {
263
263
  return this.params.moduleIdentifierTransformers ?? import_module_model3.ResolveHelper.transformers;
264
264
  }
265
- add(module2) {
266
- if (Array.isArray(module2)) {
267
- for (const mod of module2) this.addSingleModule(mod);
265
+ add(mod) {
266
+ if (Array.isArray(mod)) {
267
+ for (const modItem of mod) this.addSingleModule(modItem);
268
268
  } else {
269
- this.addSingleModule(module2);
269
+ this.addSingleModule(mod);
270
270
  }
271
271
  return this;
272
272
  }
@@ -404,9 +404,9 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends AbstractMod
404
404
  resolveComplexIdentifier(_id, _options) {
405
405
  throw new Error("Method not implemented.");
406
406
  }
407
- addSingleModule(module2) {
408
- if (module2) {
409
- this._localResolver.add(module2);
407
+ addSingleModule(mod) {
408
+ if (mod) {
409
+ this._localResolver.add(mod);
410
410
  }
411
411
  }
412
412
  removeSingleModule(address) {
@@ -416,8 +416,8 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends AbstractMod
416
416
  const idParts = moduleIdentifierParts(moduleIdentifier);
417
417
  (0, import_assert3.assertEx)(idParts.length >= 2, () => "Not a valid multipart identifier");
418
418
  const id = (0, import_assert3.assertEx)(idParts.shift());
419
- const module2 = await this.resolve(id) ?? await this.resolvePrivate(id);
420
- return await module2?.resolve(idParts.join(":")) ?? await module2?.resolvePrivate(idParts.join(":"));
419
+ const mod = await this.resolve(id) ?? await this.resolvePrivate(id);
420
+ return await mod?.resolve(idParts.join(":")) ?? await mod?.resolvePrivate(idParts.join(":"));
421
421
  }
422
422
  };
423
423
 
@@ -480,10 +480,10 @@ var getMixin = /* @__PURE__ */ __name((resolver) => {
480
480
  listeners.map((listener) => listener(args));
481
481
  return true;
482
482
  }, "emit");
483
- const onModuleResolved = /* @__PURE__ */ __name((module2, filter) => {
483
+ const onModuleResolved = /* @__PURE__ */ __name((mod, filter) => {
484
484
  const args = {
485
485
  filter,
486
- module: module2
486
+ mod
487
487
  };
488
488
  emit("moduleResolved", args);
489
489
  }, "onModuleResolved");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/AbstractModuleResolver.ts","../../src/CompositeModuleResolver.ts","../../src/SimpleModuleResolver.ts","../../src/NameRegistrarTransformer.ts","../../src/ResolverEventEmitter.ts"],"sourcesContent":["export * from './AbstractModuleResolver'\nexport * from './CompositeModuleResolver'\nexport * from './NameRegistrarTransformer'\nexport * from './ResolverEventEmitter'\nexport * from './SimpleModuleResolver'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Base, BaseParams, toJsonString } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asModuleInstance,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleResolverInstance,\n ObjectFilterOptions,\n ObjectResolverPriority,\n} from '@xyo-network/module-model'\n\nexport interface ModuleResolverParams extends BaseParams {\n priority?: ObjectResolverPriority\n root: ModuleInstance\n}\n\nexport abstract class AbstractModuleResolver<TParams extends ModuleResolverParams = ModuleResolverParams>\n extends Base<TParams>\n implements ModuleResolverInstance\n{\n get priority() {\n return this.params.priority ?? ObjectResolverPriority.Normal\n }\n\n set priority(value: ObjectResolverPriority) {\n this.params.priority = value\n }\n\n get root() {\n return assertEx(this.params.root, () => 'root is not set')\n }\n\n async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n /** @deprecated use '*' if trying to resolve all */\n async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleFilter<T> | string = '*',\n options?: ModuleFilterOptions<T>,\n ): Promise<T[] | T | undefined> {\n if (idOrFilter === '*') {\n const values = await this.resolveHandler(idOrFilter, options)\n assertEx(Array.isArray(values), () => 'resolveHandler returned a non-array')\n return values.map((value) =>\n asModuleInstance<T>(value, () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return `resolveHandler returned invalid result (*) [${(value as any)?.constructor?.name}][${toJsonString(value)}]`\n }),\n )\n }\n switch (typeof idOrFilter) {\n case 'string': {\n const [value] = await this.resolveHandler(idOrFilter, options)\n return asModuleInstance<T>(\n value,\n () =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n `resolveHandler returned invalid result (string) [${(value as any)?.constructor?.name}][${toJsonString(value)}]`,\n )\n }\n default: {\n const values = (await this.resolveHandler(idOrFilter, options)) as []\n assertEx(Array.isArray(values), () => 'resolveHandler returned a non-array')\n return values.map((value) =>\n asModuleInstance<T>(value, () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return `resolveHandler returned invalid result (filter) [${(value as any)?.constructor?.name}][${toJsonString(value)}]`\n }),\n )\n }\n }\n }\n\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ObjectFilterOptions<T>): Promise<T[]>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ObjectFilterOptions<T>): Promise<T | undefined>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n _options?: ObjectFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n if (id === '*') return await Promise.resolve([])\n }\n\n abstract addResolver(resolver: ModuleResolverInstance): this\n abstract removeResolver(resolver: ModuleResolverInstance): this\n\n abstract resolveHandler<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleFilter<T> | ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promisable<T[]>\n\n abstract resolveIdentifier(id: ModuleIdentifier, options?: ObjectFilterOptions): Promisable<Address | undefined>\n}\n","/* eslint-disable max-statements */\nimport { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport {\n CacheConfig,\n duplicateModules,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleIdentifierPart,\n ModuleIdentifierTransformer,\n ModuleInstance,\n ModuleRepository,\n ModuleResolverInstance,\n ObjectFilterOptions,\n ObjectResolverPriority,\n ResolveHelper,\n} from '@xyo-network/module-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { AbstractModuleResolver, ModuleResolverParams } from './AbstractModuleResolver'\nimport { SimpleModuleResolver } from './SimpleModuleResolver'\n\nexport interface CompositeModuleResolverParams extends ModuleResolverParams {\n allowNameResolution?: boolean\n cache?: CacheConfig\n moduleIdentifierTransformers?: ModuleIdentifierTransformer[]\n}\n\nconst moduleIdentifierParts = (moduleIdentifier: ModuleIdentifier): ModuleIdentifierPart[] => {\n return moduleIdentifier?.split(':') as ModuleIdentifierPart[]\n}\n\nexport class CompositeModuleResolver<T extends CompositeModuleResolverParams = CompositeModuleResolverParams>\n extends AbstractModuleResolver<T>\n implements ModuleRepository, ModuleResolverInstance\n{\n static defaultMaxDepth = 3\n\n protected _cache: LRUCache<ModuleIdentifier, ModuleInstance>\n protected resolvers: ModuleResolverInstance[] = []\n private _allowAddResolver = true\n private _localResolver: SimpleModuleResolver\n\n constructor(params: T) {\n super(params)\n const localResolver = new SimpleModuleResolver({ allowNameResolution: params.allowNameResolution, root: params.root })\n this.addResolver(localResolver)\n const { max = 100, ttl = 1000 * 5 /* five seconds */ } = params.cache ?? {}\n this._cache = new LRUCache<ModuleIdentifier, ModuleInstance>({ max, ttl, ...params.cache })\n this._localResolver = localResolver\n }\n\n get allowAddResolver() {\n return this._allowAddResolver\n }\n\n set allowAddResolver(value: boolean) {\n this.resolvers = [this._localResolver]\n this._allowAddResolver = value\n }\n\n get allowNameResolution() {\n return this.params.allowNameResolution ?? true\n }\n\n private get moduleIdentifierTransformers() {\n return this.params.moduleIdentifierTransformers ?? ResolveHelper.transformers\n }\n\n add(module: ModuleInstance): this\n add(module: ModuleInstance[]): this\n add(module: ModuleInstance | ModuleInstance[]): this {\n if (Array.isArray(module)) {\n for (const mod of module) this.addSingleModule(mod)\n } else {\n this.addSingleModule(module)\n }\n return this\n }\n\n addResolver(resolver: ModuleResolverInstance): this {\n if (this.allowAddResolver) {\n this.resolvers.push(resolver)\n }\n return this\n }\n\n remove(addresses: Address[] | Address): this {\n if (Array.isArray(addresses)) {\n for (const address of addresses) this.removeSingleModule(address)\n } else {\n this.removeSingleModule(addresses)\n }\n return this\n }\n\n removeResolver(resolver: ModuleResolverInstance): this {\n this.resolvers = this.resolvers.filter((item) => item !== resolver)\n return this\n }\n\n // eslint-disable-next-line complexity\n async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleFilter<T> | ModuleIdentifier = '*',\n options: ModuleFilterOptions<T> = {},\n ): Promise<T[]> {\n const mutatedOptions = { ...options, maxDepth: options?.maxDepth ?? CompositeModuleResolver.defaultMaxDepth }\n\n //resolve all\n if (idOrFilter === '*') {\n const all = idOrFilter\n\n //wen't too far?\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n\n //identity resolve?\n if (mutatedOptions.maxDepth === 0) {\n return (await this._localResolver.resolve(all, mutatedOptions)) ?? []\n }\n\n const childOptions = { ...mutatedOptions, maxDepth: mutatedOptions?.maxDepth - 1 }\n\n const result = await Promise.all(\n this.resolvers.map(async (resolver) => {\n const result: T[] = await resolver.resolve<T>(all, childOptions)\n return result\n }),\n )\n const flatResult: T[] = result.flat().filter(exists)\n return flatResult.filter(duplicateModules)\n }\n\n if (typeof idOrFilter === 'string') {\n //wen't too far?\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n\n //resolve ModuleIdentifier\n const idParts = moduleIdentifierParts(idOrFilter)\n if (idParts.length > 1) {\n const mod = await this.resolveMultipartIdentifier<T>(idOrFilter)\n return (\n mod ?\n Array.isArray(mod) ?\n mod\n : [mod]\n : []\n )\n }\n const id = await ResolveHelper.transformModuleIdentifier(idOrFilter, this.moduleIdentifierTransformers)\n if (id) {\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n const cachedResult = this._cache.get(id)\n if (cachedResult) {\n if (cachedResult.status === 'dead') {\n this._cache.delete(id)\n } else {\n return [cachedResult] as T[]\n }\n }\n\n //identity resolve?\n if (mutatedOptions.maxDepth === 0) {\n const mod = await this._localResolver.resolve(idOrFilter, mutatedOptions)\n return (\n mod ?\n Array.isArray(mod) ?\n mod\n : [mod]\n : []\n )\n }\n\n //recursive function to resolve by priority\n const resolvePriority = async (priority: ObjectResolverPriority): Promise<T | undefined> => {\n const resolvers = this.resolvers.filter((resolver) => resolver.priority === priority)\n const results: T[] = (\n await Promise.all(\n resolvers.map(async (resolver) => {\n const result: T | undefined = await resolver.resolve<T>(id, mutatedOptions)\n return result\n }),\n )\n ).filter(exists)\n\n const result: T | undefined = results.filter(exists).findLast(duplicateModules)\n if (result) {\n this._cache.set(id, result)\n return result\n }\n return priority === ObjectResolverPriority.VeryLow ? undefined : await resolvePriority(priority - 1)\n }\n const mod = await resolvePriority(ObjectResolverPriority.VeryHigh)\n return (\n mod ?\n Array.isArray(mod) ?\n mod\n : [mod]\n : []\n )\n }\n } else if (typeof idOrFilter === 'object') {\n //wen't too far?\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n\n const filter = idOrFilter\n\n //identity resolve?\n if (mutatedOptions.maxDepth === 0) {\n return await this._localResolver.resolve(filter, mutatedOptions)\n }\n\n const childOptions = { ...mutatedOptions, maxDepth: mutatedOptions?.maxDepth - 1 }\n\n const result = await Promise.all(\n this.resolvers.map(async (resolver) => {\n const result: T[] = await resolver.resolve<T>(filter, childOptions)\n return result\n }),\n )\n const flatResult: T[] = result.flat().filter(exists)\n return flatResult.filter(duplicateModules)\n }\n return []\n }\n\n async resolveIdentifier(id: ModuleIdentifier, _options?: ObjectFilterOptions): Promise<Address | undefined> {\n const idParts = id.split(':')\n if (idParts.length > 1) {\n return this.resolveComplexIdentifier(id)\n }\n const results = (\n await Promise.all(\n this.resolvers.map(async (resolver) => {\n const result = await resolver.resolveIdentifier(id)\n return result\n }),\n )\n ).filter(exists)\n const result = results.shift()\n if (results.length > 0) {\n for (const altResult of results) {\n assertEx(altResult === result, () => `Inconsistent results for ${id} [${result}][${altResult}]`)\n }\n }\n return result\n }\n\n protected resolveComplexIdentifier(_id: ModuleIdentifier, _options?: ObjectFilterOptions): Promisable<Address | undefined> {\n throw new Error('Method not implemented.')\n }\n\n private addSingleModule(module?: ModuleInstance) {\n if (module) {\n this._localResolver.add(module)\n }\n }\n private removeSingleModule(address: Address) {\n this._localResolver.remove(address)\n }\n\n private async resolveMultipartIdentifier<T extends ModuleInstance = ModuleInstance>(moduleIdentifier: ModuleIdentifier): Promise<T | undefined> {\n const idParts = moduleIdentifierParts(moduleIdentifier)\n assertEx(idParts.length >= 2, () => 'Not a valid multipart identifier')\n const id = assertEx(idParts.shift())\n const module = (await this.resolve<T>(id)) ?? (await this.resolvePrivate<T>(id))\n return (await module?.resolve<T>(idParts.join(':'))) ?? (await module?.resolvePrivate<T>(idParts.join(':')))\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport {\n isAddressModuleFilter,\n isModuleName,\n isNameModuleFilter,\n isQueryModuleFilter,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleName,\n ModuleRepository,\n ModuleResolverInstance,\n ObjectFilterOptions,\n} from '@xyo-network/module-model'\n\nimport { AbstractModuleResolver, ModuleResolverParams } from './AbstractModuleResolver'\n\nexport type SimpleModuleResolverParams = ModuleResolverParams & {\n allowNameResolution?: boolean\n}\n\nexport class SimpleModuleResolver extends AbstractModuleResolver<SimpleModuleResolverParams> implements ModuleRepository {\n private modules: Record<Address, ModuleInstance> = {}\n private nameToModule: Record<ModuleName, ModuleInstance> = {}\n\n constructor(params: SimpleModuleResolverParams) {\n super(params)\n }\n\n get allowNameResolution() {\n return this.params.allowNameResolution ?? true\n }\n\n add(mods: ModuleInstance): this\n add(mods: ModuleInstance[]): this\n add(mods: ModuleInstance | ModuleInstance[]): this {\n if (Array.isArray(mods)) {\n for (const mod of mods) this.addSingleModule(mod)\n } else {\n this.addSingleModule(mods)\n }\n return this\n }\n\n addResolver(_resolver: ModuleResolverInstance): this {\n throw 'Adding resolvers not supported'\n }\n\n remove(address: Address | Address[]): this {\n if (Array.isArray(address)) {\n for (const addr of address) this.removeSingleModule(addr)\n } else {\n this.removeSingleModule(address)\n }\n return this\n }\n\n removeResolver(_resolver: ModuleResolverInstance): this {\n throw 'Removing resolvers not supported'\n }\n\n resolveHandler<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleFilter<T> | string = '*',\n options?: ModuleFilterOptions<T>,\n ): Promisable<T[]> {\n const unfiltered = (() => {\n if (idOrFilter) {\n if (typeof idOrFilter === 'string') {\n if (idOrFilter === '*') {\n return Object.values(this.modules) as T[]\n }\n const id = idOrFilter as ModuleIdentifier\n const name = isModuleName(id) ? id : undefined\n const address = isAddress(id) ? id : undefined\n assertEx(name || address, () => 'module identifier must be a ModuleName or Address')\n return (\n (name ? this.resolveByName<T>(Object.values(this.modules), [name]).pop() : undefined) ??\n (address ? this.resolveByAddress<T>(this.modules, [address]).pop() : undefined)\n )\n } else {\n const filter = idOrFilter\n if (isAddressModuleFilter(filter)) {\n return this.resolveByAddress<T>(this.modules, filter.address)\n } else if (isNameModuleFilter(filter)) {\n return this.resolveByName<T>(Object.values(this.modules), filter.name)\n } else if (isQueryModuleFilter(filter)) {\n return this.resolveByQuery<T>(Object.values(this.modules), filter.query)\n }\n }\n } else {\n return Object.values(this.modules) as T[]\n }\n })()\n const identity = options?.identity\n if (identity) {\n return (\n Array.isArray(unfiltered) ? unfiltered?.filter((module) => identity(module))\n : identity(unfiltered) ? [unfiltered]\n : []\n )\n } else {\n return (\n unfiltered ?\n Array.isArray(unfiltered) ?\n unfiltered\n : [unfiltered]\n : []\n )\n }\n }\n\n resolveIdentifier(id: ModuleIdentifier, _options?: ObjectFilterOptions): Promisable<Address | undefined> {\n //check if id is a name of one of modules in the resolver\n const moduleFromName = this.nameToModule[id]\n if (moduleFromName) {\n return moduleFromName.address\n }\n\n //check if any of the modules have the id as an address\n for (const module of Object.values(this.modules)) {\n if (module.address === id) {\n return module.address\n }\n }\n }\n\n private addSingleModule(mod?: ModuleInstance) {\n if (mod) {\n const modName = mod.modName\n if (modName && this.allowNameResolution) {\n //check for collision\n assertEx(this.nameToModule[modName] === undefined, () => `Module with name ${modName} already added`)\n this.nameToModule[modName] = mod\n }\n this.modules[mod.address] = mod\n }\n }\n\n private removeSingleModule(address: Address) {\n assertEx(isAddress(address), () => 'Invalid address')\n const mod = assertEx(this.modules[address], () => 'Address not found in modules')\n delete this.modules[address]\n const modName = mod.modName\n if (modName) {\n delete this.nameToModule[modName]\n }\n }\n\n private resolveByAddress<T extends ModuleInstance = ModuleInstance>(modules: Record<Address, ModuleInstance>, address: Address[]): T[] {\n return compact(\n address.map((address) => {\n return modules[address]\n }),\n ) as T[]\n }\n\n private resolveByName<T extends ModuleInstance = ModuleInstance>(modules: ModuleInstance[], name: ModuleName[]): T[] {\n return compact(\n name.map((name) => {\n return modules.find((module) => module.modName === name)\n }),\n ) as T[]\n }\n\n private resolveByQuery<T extends ModuleInstance = ModuleInstance>(modules: ModuleInstance[], query: string[][]): T[] {\n return compact(\n modules.filter((module) =>\n query?.reduce((supported, queryList) => {\n return (\n // eslint-disable-next-line unicorn/no-array-reduce\n queryList.reduce((supported, query) => {\n const queryable = module.queries.includes(query)\n return supported && queryable\n }, true) || supported\n )\n }, false),\n ),\n ) as T[]\n }\n}\n","import { Address } from '@xylabs/hex'\nimport { DivinerInstance } from '@xyo-network/diviner-model'\nimport { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { ModuleIdentifier, ModuleIdentifierTransformer } from '@xyo-network/module-model'\nimport { LRUCache } from 'lru-cache'\n\nexport class NameRegistrarTransformer implements ModuleIdentifierTransformer {\n private _cache: LRUCache<ModuleIdentifier, ModuleIdentifier> = new LRUCache<ModuleIdentifier, ModuleIdentifier>({ max: 1000, ttl: 1000 * 5 })\n\n constructor(\n private registrarDiviner: DivinerInstance,\n private root: string,\n ) {}\n\n async transform(identifier: ModuleIdentifier): Promise<ModuleIdentifier> {\n const parts = identifier.split(':')\n const first = parts.shift()\n const nameParts = first?.split('.')\n if (nameParts?.length === 2 && nameParts[1] === this.root) {\n //check cache\n const cachedResult = this._cache.get(identifier)\n if (cachedResult) return cachedResult\n\n //not cached, so check registrar\n const query = { domain: nameParts[0], order: 'desc' as const, schema: PayloadDivinerQuerySchema, tld: nameParts[1] }\n const result = await this.registrarDiviner?.divine([query])\n const resultPayload = result?.shift()\n if (!resultPayload) {\n throw new Error(`Unable to resolve registrar name (failed) [${first}]`)\n }\n //TODO: Use proper types for this check\n if (resultPayload) {\n const address = (resultPayload as unknown as { address: Address[] }).address?.shift()\n if (address) {\n this._cache.set(identifier, address)\n return address\n }\n }\n throw new Error(`Unable to resolve registrar name (not found) [${first}]`)\n }\n return identifier\n }\n}\n","import { Module, ModuleFilter, ModuleResolver } from '@xyo-network/module-model'\n\nexport interface ModuleResolvedEventArgs {\n filter?: ModuleFilter\n module: Module\n}\n\nexport interface ResolverEventEmitter {\n on(event: 'moduleResolved', listener: (args: ModuleResolvedEventArgs) => void): void\n}\n\ntype ListenerFunction = (args: ModuleResolvedEventArgs) => void\n\nconst getMixin = <T extends ModuleResolver = ModuleResolver>(resolver: T) => {\n const listeners: ListenerFunction[] = []\n const emit = (event: 'moduleResolved', args: ModuleResolvedEventArgs): boolean => {\n if (listeners.length === 0) return false\n listeners.map((listener) => listener(args))\n return true\n }\n const onModuleResolved = (module: Module, filter?: ModuleFilter) => {\n const args = { filter, module }\n emit('moduleResolved', args)\n }\n\n const { resolve } = resolver\n function originalResolve(filter?: ModuleFilter) {\n return resolve.bind(resolver)(filter)\n }\n\n return {\n on: (event: 'moduleResolved', listener: (args: ModuleResolvedEventArgs) => void) => {\n listeners.push(listener)\n },\n resolve: async (filter?: ModuleFilter): Promise<Module[]> => {\n const modules: Module[] = await originalResolve(filter)\n await Promise.allSettled(modules.map((mod) => onModuleResolved(mod, filter)))\n return modules\n },\n }\n}\n\nexport const mixinResolverEventEmitter = <T extends ModuleResolver = ModuleResolver>(resolver: T): T & ResolverEventEmitter => {\n const mixin = getMixin(resolver)\n const ret = Object.assign(resolver, mixin)\n return ret\n}\n"],"mappings":"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","names":["AbstractModuleResolver","Base","priority","params","ObjectResolverPriority","Normal","value","root","assertEx","resolve","idOrFilter","options","values","resolveHandler","Array","isArray","map","asModuleInstance","constructor","name","toJsonString","resolvePrivate","id","_options","Promise","import_assert","import_module_model","import_assert","import_module_model","SimpleModuleResolver","AbstractModuleResolver","modules","nameToModule","constructor","params","allowNameResolution","add","mods","Array","isArray","mod","addSingleModule","addResolver","_resolver","remove","address","addr","removeSingleModule","removeResolver","resolveHandler","idOrFilter","options","unfiltered","Object","values","id","name","isModuleName","undefined","isAddress","assertEx","resolveByName","pop","resolveByAddress","filter","isAddressModuleFilter","isNameModuleFilter","isQueryModuleFilter","resolveByQuery","query","identity","module","resolveIdentifier","_options","moduleFromName","modName","compact","map","find","reduce","supported","queryList","queryable","queries","includes","moduleIdentifierParts","moduleIdentifier","split","CompositeModuleResolver","AbstractModuleResolver","defaultMaxDepth","_cache","resolvers","_allowAddResolver","_localResolver","constructor","params","localResolver","SimpleModuleResolver","allowNameResolution","root","addResolver","max","ttl","cache","LRUCache","allowAddResolver","value","moduleIdentifierTransformers","ResolveHelper","transformers","add","module","Array","isArray","mod","addSingleModule","resolver","push","remove","addresses","address","removeSingleModule","removeResolver","filter","item","resolveHandler","idOrFilter","options","mutatedOptions","maxDepth","all","resolve","childOptions","result","Promise","map","flatResult","flat","exists","duplicateModules","idParts","length","resolveMultipartIdentifier","id","transformModuleIdentifier","cachedResult","get","status","delete","resolvePriority","priority","results","findLast","set","ObjectResolverPriority","VeryLow","undefined","VeryHigh","resolveIdentifier","_options","resolveComplexIdentifier","shift","altResult","assertEx","_id","Error","resolvePrivate","join","import_lru_cache","NameRegistrarTransformer","_cache","constructor","registrarDiviner","root","LRUCache","max","ttl","transform","identifier","parts","split","first","shift","nameParts","length","cachedResult","get","query","domain","order","schema","PayloadDivinerQuerySchema","tld","result","divine","resultPayload","Error","address","set","getMixin","resolver","listeners","emit","event","args","length","map","listener","onModuleResolved","module","filter","resolve","originalResolve","bind","on","push","modules","Promise","allSettled","mod","mixinResolverEventEmitter","mixin","ret","Object","assign"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/AbstractModuleResolver.ts","../../src/CompositeModuleResolver.ts","../../src/SimpleModuleResolver.ts","../../src/NameRegistrarTransformer.ts","../../src/ResolverEventEmitter.ts"],"sourcesContent":["export * from './AbstractModuleResolver'\nexport * from './CompositeModuleResolver'\nexport * from './NameRegistrarTransformer'\nexport * from './ResolverEventEmitter'\nexport * from './SimpleModuleResolver'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Base, BaseParams, toJsonString } from '@xylabs/object'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asModuleInstance,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleResolverInstance,\n ObjectFilterOptions,\n ObjectResolverPriority,\n} from '@xyo-network/module-model'\n\nexport interface ModuleResolverParams extends BaseParams {\n priority?: ObjectResolverPriority\n root: ModuleInstance\n}\n\nexport abstract class AbstractModuleResolver<TParams extends ModuleResolverParams = ModuleResolverParams>\n extends Base<TParams>\n implements ModuleResolverInstance\n{\n get priority() {\n return this.params.priority ?? ObjectResolverPriority.Normal\n }\n\n set priority(value: ObjectResolverPriority) {\n this.params.priority = value\n }\n\n get root() {\n return assertEx(this.params.root, () => 'root is not set')\n }\n\n async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n /** @deprecated use '*' if trying to resolve all */\n async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleFilter<T> | string = '*',\n options?: ModuleFilterOptions<T>,\n ): Promise<T[] | T | undefined> {\n if (idOrFilter === '*') {\n const values = await this.resolveHandler(idOrFilter, options)\n assertEx(Array.isArray(values), () => 'resolveHandler returned a non-array')\n return values.map((value) =>\n asModuleInstance<T>(value, () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return `resolveHandler returned invalid result (*) [${(value as any)?.constructor?.name}][${toJsonString(value)}]`\n }),\n )\n }\n switch (typeof idOrFilter) {\n case 'string': {\n const [value] = await this.resolveHandler(idOrFilter, options)\n return asModuleInstance<T>(\n value,\n () =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n `resolveHandler returned invalid result (string) [${(value as any)?.constructor?.name}][${toJsonString(value)}]`,\n )\n }\n default: {\n const values = (await this.resolveHandler(idOrFilter, options)) as []\n assertEx(Array.isArray(values), () => 'resolveHandler returned a non-array')\n return values.map((value) =>\n asModuleInstance<T>(value, () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return `resolveHandler returned invalid result (filter) [${(value as any)?.constructor?.name}][${toJsonString(value)}]`\n }),\n )\n }\n }\n }\n\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ObjectFilterOptions<T>): Promise<T[]>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ObjectFilterOptions<T>): Promise<T | undefined>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n _options?: ObjectFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n if (id === '*') return await Promise.resolve([])\n }\n\n abstract addResolver(resolver: ModuleResolverInstance): this\n abstract removeResolver(resolver: ModuleResolverInstance): this\n\n abstract resolveHandler<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleFilter<T> | ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promisable<T[]>\n\n abstract resolveIdentifier(id: ModuleIdentifier, options?: ObjectFilterOptions): Promisable<Address | undefined>\n}\n","/* eslint-disable max-statements */\nimport { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport {\n CacheConfig,\n duplicateModules,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleIdentifierPart,\n ModuleIdentifierTransformer,\n ModuleInstance,\n ModuleRepository,\n ModuleResolverInstance,\n ObjectFilterOptions,\n ObjectResolverPriority,\n ResolveHelper,\n} from '@xyo-network/module-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { AbstractModuleResolver, ModuleResolverParams } from './AbstractModuleResolver'\nimport { SimpleModuleResolver } from './SimpleModuleResolver'\n\nexport interface CompositeModuleResolverParams extends ModuleResolverParams {\n allowNameResolution?: boolean\n cache?: CacheConfig\n moduleIdentifierTransformers?: ModuleIdentifierTransformer[]\n}\n\nconst moduleIdentifierParts = (moduleIdentifier: ModuleIdentifier): ModuleIdentifierPart[] => {\n return moduleIdentifier?.split(':') as ModuleIdentifierPart[]\n}\n\nexport class CompositeModuleResolver<T extends CompositeModuleResolverParams = CompositeModuleResolverParams>\n extends AbstractModuleResolver<T>\n implements ModuleRepository, ModuleResolverInstance\n{\n static defaultMaxDepth = 3\n\n protected _cache: LRUCache<ModuleIdentifier, ModuleInstance>\n protected resolvers: ModuleResolverInstance[] = []\n private _allowAddResolver = true\n private _localResolver: SimpleModuleResolver\n\n constructor(params: T) {\n super(params)\n const localResolver = new SimpleModuleResolver({ allowNameResolution: params.allowNameResolution, root: params.root })\n this.addResolver(localResolver)\n const { max = 100, ttl = 1000 * 5 /* five seconds */ } = params.cache ?? {}\n this._cache = new LRUCache<ModuleIdentifier, ModuleInstance>({ max, ttl, ...params.cache })\n this._localResolver = localResolver\n }\n\n get allowAddResolver() {\n return this._allowAddResolver\n }\n\n set allowAddResolver(value: boolean) {\n this.resolvers = [this._localResolver]\n this._allowAddResolver = value\n }\n\n get allowNameResolution() {\n return this.params.allowNameResolution ?? true\n }\n\n private get moduleIdentifierTransformers() {\n return this.params.moduleIdentifierTransformers ?? ResolveHelper.transformers\n }\n\n add(mod: ModuleInstance): this\n add(mod: ModuleInstance[]): this\n add(mod: ModuleInstance | ModuleInstance[]): this {\n if (Array.isArray(mod)) {\n for (const modItem of mod) this.addSingleModule(modItem)\n } else {\n this.addSingleModule(mod)\n }\n return this\n }\n\n addResolver(resolver: ModuleResolverInstance): this {\n if (this.allowAddResolver) {\n this.resolvers.push(resolver)\n }\n return this\n }\n\n remove(addresses: Address[] | Address): this {\n if (Array.isArray(addresses)) {\n for (const address of addresses) this.removeSingleModule(address)\n } else {\n this.removeSingleModule(addresses)\n }\n return this\n }\n\n removeResolver(resolver: ModuleResolverInstance): this {\n this.resolvers = this.resolvers.filter((item) => item !== resolver)\n return this\n }\n\n // eslint-disable-next-line complexity\n async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleFilter<T> | ModuleIdentifier = '*',\n options: ModuleFilterOptions<T> = {},\n ): Promise<T[]> {\n const mutatedOptions = { ...options, maxDepth: options?.maxDepth ?? CompositeModuleResolver.defaultMaxDepth }\n\n //resolve all\n if (idOrFilter === '*') {\n const all = idOrFilter\n\n //wen't too far?\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n\n //identity resolve?\n if (mutatedOptions.maxDepth === 0) {\n return (await this._localResolver.resolve(all, mutatedOptions)) ?? []\n }\n\n const childOptions = { ...mutatedOptions, maxDepth: mutatedOptions?.maxDepth - 1 }\n\n const result = await Promise.all(\n this.resolvers.map(async (resolver) => {\n const result: T[] = await resolver.resolve<T>(all, childOptions)\n return result\n }),\n )\n const flatResult: T[] = result.flat().filter(exists)\n return flatResult.filter(duplicateModules)\n }\n\n if (typeof idOrFilter === 'string') {\n //wen't too far?\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n\n //resolve ModuleIdentifier\n const idParts = moduleIdentifierParts(idOrFilter)\n if (idParts.length > 1) {\n const mod = await this.resolveMultipartIdentifier<T>(idOrFilter)\n return (\n mod ?\n Array.isArray(mod) ?\n mod\n : [mod]\n : []\n )\n }\n const id = await ResolveHelper.transformModuleIdentifier(idOrFilter, this.moduleIdentifierTransformers)\n if (id) {\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n const cachedResult = this._cache.get(id)\n if (cachedResult) {\n if (cachedResult.status === 'dead') {\n this._cache.delete(id)\n } else {\n return [cachedResult] as T[]\n }\n }\n\n //identity resolve?\n if (mutatedOptions.maxDepth === 0) {\n const mod = await this._localResolver.resolve(idOrFilter, mutatedOptions)\n return (\n mod ?\n Array.isArray(mod) ?\n mod\n : [mod]\n : []\n )\n }\n\n //recursive function to resolve by priority\n const resolvePriority = async (priority: ObjectResolverPriority): Promise<T | undefined> => {\n const resolvers = this.resolvers.filter((resolver) => resolver.priority === priority)\n const results: T[] = (\n await Promise.all(\n resolvers.map(async (resolver) => {\n const result: T | undefined = await resolver.resolve<T>(id, mutatedOptions)\n return result\n }),\n )\n ).filter(exists)\n\n const result: T | undefined = results.filter(exists).findLast(duplicateModules)\n if (result) {\n this._cache.set(id, result)\n return result\n }\n return priority === ObjectResolverPriority.VeryLow ? undefined : await resolvePriority(priority - 1)\n }\n const mod = await resolvePriority(ObjectResolverPriority.VeryHigh)\n return (\n mod ?\n Array.isArray(mod) ?\n mod\n : [mod]\n : []\n )\n }\n } else if (typeof idOrFilter === 'object') {\n //wen't too far?\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n\n const filter = idOrFilter\n\n //identity resolve?\n if (mutatedOptions.maxDepth === 0) {\n return await this._localResolver.resolve(filter, mutatedOptions)\n }\n\n const childOptions = { ...mutatedOptions, maxDepth: mutatedOptions?.maxDepth - 1 }\n\n const result = await Promise.all(\n this.resolvers.map(async (resolver) => {\n const result: T[] = await resolver.resolve<T>(filter, childOptions)\n return result\n }),\n )\n const flatResult: T[] = result.flat().filter(exists)\n return flatResult.filter(duplicateModules)\n }\n return []\n }\n\n async resolveIdentifier(id: ModuleIdentifier, _options?: ObjectFilterOptions): Promise<Address | undefined> {\n const idParts = id.split(':')\n if (idParts.length > 1) {\n return this.resolveComplexIdentifier(id)\n }\n const results = (\n await Promise.all(\n this.resolvers.map(async (resolver) => {\n const result = await resolver.resolveIdentifier(id)\n return result\n }),\n )\n ).filter(exists)\n const result = results.shift()\n if (results.length > 0) {\n for (const altResult of results) {\n assertEx(altResult === result, () => `Inconsistent results for ${id} [${result}][${altResult}]`)\n }\n }\n return result\n }\n\n protected resolveComplexIdentifier(_id: ModuleIdentifier, _options?: ObjectFilterOptions): Promisable<Address | undefined> {\n throw new Error('Method not implemented.')\n }\n\n private addSingleModule(mod?: ModuleInstance) {\n if (mod) {\n this._localResolver.add(mod)\n }\n }\n private removeSingleModule(address: Address) {\n this._localResolver.remove(address)\n }\n\n private async resolveMultipartIdentifier<T extends ModuleInstance = ModuleInstance>(moduleIdentifier: ModuleIdentifier): Promise<T | undefined> {\n const idParts = moduleIdentifierParts(moduleIdentifier)\n assertEx(idParts.length >= 2, () => 'Not a valid multipart identifier')\n const id = assertEx(idParts.shift())\n const mod = (await this.resolve<T>(id)) ?? (await this.resolvePrivate<T>(id))\n return (await mod?.resolve<T>(idParts.join(':'))) ?? (await mod?.resolvePrivate<T>(idParts.join(':')))\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport {\n isAddressModuleFilter,\n isModuleName,\n isNameModuleFilter,\n isQueryModuleFilter,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleName,\n ModuleRepository,\n ModuleResolverInstance,\n ObjectFilterOptions,\n} from '@xyo-network/module-model'\n\nimport { AbstractModuleResolver, ModuleResolverParams } from './AbstractModuleResolver'\n\nexport type SimpleModuleResolverParams = ModuleResolverParams & {\n allowNameResolution?: boolean\n}\n\nexport class SimpleModuleResolver extends AbstractModuleResolver<SimpleModuleResolverParams> implements ModuleRepository {\n private modules: Record<Address, ModuleInstance> = {}\n private nameToModule: Record<ModuleName, ModuleInstance> = {}\n\n constructor(params: SimpleModuleResolverParams) {\n super(params)\n }\n\n get allowNameResolution() {\n return this.params.allowNameResolution ?? true\n }\n\n add(mods: ModuleInstance): this\n add(mods: ModuleInstance[]): this\n add(mods: ModuleInstance | ModuleInstance[]): this {\n if (Array.isArray(mods)) {\n for (const mod of mods) this.addSingleModule(mod)\n } else {\n this.addSingleModule(mods)\n }\n return this\n }\n\n addResolver(_resolver: ModuleResolverInstance): this {\n throw 'Adding resolvers not supported'\n }\n\n remove(address: Address | Address[]): this {\n if (Array.isArray(address)) {\n for (const addr of address) this.removeSingleModule(addr)\n } else {\n this.removeSingleModule(address)\n }\n return this\n }\n\n removeResolver(_resolver: ModuleResolverInstance): this {\n throw 'Removing resolvers not supported'\n }\n\n resolveHandler<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleFilter<T> | string = '*',\n options?: ModuleFilterOptions<T>,\n ): Promisable<T[]> {\n const unfiltered = (() => {\n if (idOrFilter) {\n if (typeof idOrFilter === 'string') {\n if (idOrFilter === '*') {\n return Object.values(this.modules) as T[]\n }\n const id = idOrFilter as ModuleIdentifier\n const name = isModuleName(id) ? id : undefined\n const address = isAddress(id) ? id : undefined\n assertEx(name || address, () => 'module identifier must be a ModuleName or Address')\n return (\n (name ? this.resolveByName<T>(Object.values(this.modules), [name]).pop() : undefined) ??\n (address ? this.resolveByAddress<T>(this.modules, [address]).pop() : undefined)\n )\n } else {\n const filter = idOrFilter\n if (isAddressModuleFilter(filter)) {\n return this.resolveByAddress<T>(this.modules, filter.address)\n } else if (isNameModuleFilter(filter)) {\n return this.resolveByName<T>(Object.values(this.modules), filter.name)\n } else if (isQueryModuleFilter(filter)) {\n return this.resolveByQuery<T>(Object.values(this.modules), filter.query)\n }\n }\n } else {\n return Object.values(this.modules) as T[]\n }\n })()\n const identity = options?.identity\n if (identity) {\n return (\n Array.isArray(unfiltered) ? unfiltered?.filter((mod) => identity(mod))\n : identity(unfiltered) ? [unfiltered]\n : []\n )\n } else {\n return (\n unfiltered ?\n Array.isArray(unfiltered) ?\n unfiltered\n : [unfiltered]\n : []\n )\n }\n }\n\n resolveIdentifier(id: ModuleIdentifier, _options?: ObjectFilterOptions): Promisable<Address | undefined> {\n //check if id is a name of one of modules in the resolver\n const moduleFromName = this.nameToModule[id]\n if (moduleFromName) {\n return moduleFromName.address\n }\n\n //check if any of the modules have the id as an address\n for (const mod of Object.values(this.modules)) {\n if (mod.address === id) {\n return mod.address\n }\n }\n }\n\n private addSingleModule(mod?: ModuleInstance) {\n if (mod) {\n const modName = mod.modName\n if (modName && this.allowNameResolution) {\n //check for collision\n assertEx(this.nameToModule[modName] === undefined, () => `Module with name ${modName} already added`)\n this.nameToModule[modName] = mod\n }\n this.modules[mod.address] = mod\n }\n }\n\n private removeSingleModule(address: Address) {\n assertEx(isAddress(address), () => 'Invalid address')\n const mod = assertEx(this.modules[address], () => 'Address not found in modules')\n delete this.modules[address]\n const modName = mod.modName\n if (modName) {\n delete this.nameToModule[modName]\n }\n }\n\n private resolveByAddress<T extends ModuleInstance = ModuleInstance>(modules: Record<Address, ModuleInstance>, address: Address[]): T[] {\n return compact(\n address.map((address) => {\n return modules[address]\n }),\n ) as T[]\n }\n\n private resolveByName<T extends ModuleInstance = ModuleInstance>(modules: ModuleInstance[], name: ModuleName[]): T[] {\n return compact(\n name.map((name) => {\n return modules.find((mod) => mod.modName === name)\n }),\n ) as T[]\n }\n\n private resolveByQuery<T extends ModuleInstance = ModuleInstance>(modules: ModuleInstance[], query: string[][]): T[] {\n return compact(\n modules.filter((mod) =>\n query?.reduce((supported, queryList) => {\n return (\n // eslint-disable-next-line unicorn/no-array-reduce\n queryList.reduce((supported, query) => {\n const queryable = mod.queries.includes(query)\n return supported && queryable\n }, true) || supported\n )\n }, false),\n ),\n ) as T[]\n }\n}\n","import { Address } from '@xylabs/hex'\nimport { DivinerInstance } from '@xyo-network/diviner-model'\nimport { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { ModuleIdentifier, ModuleIdentifierTransformer } from '@xyo-network/module-model'\nimport { LRUCache } from 'lru-cache'\n\nexport class NameRegistrarTransformer implements ModuleIdentifierTransformer {\n private _cache: LRUCache<ModuleIdentifier, ModuleIdentifier> = new LRUCache<ModuleIdentifier, ModuleIdentifier>({ max: 1000, ttl: 1000 * 5 })\n\n constructor(\n private registrarDiviner: DivinerInstance,\n private root: string,\n ) {}\n\n async transform(identifier: ModuleIdentifier): Promise<ModuleIdentifier> {\n const parts = identifier.split(':')\n const first = parts.shift()\n const nameParts = first?.split('.')\n if (nameParts?.length === 2 && nameParts[1] === this.root) {\n //check cache\n const cachedResult = this._cache.get(identifier)\n if (cachedResult) return cachedResult\n\n //not cached, so check registrar\n const query = { domain: nameParts[0], order: 'desc' as const, schema: PayloadDivinerQuerySchema, tld: nameParts[1] }\n const result = await this.registrarDiviner?.divine([query])\n const resultPayload = result?.shift()\n if (!resultPayload) {\n throw new Error(`Unable to resolve registrar name (failed) [${first}]`)\n }\n //TODO: Use proper types for this check\n if (resultPayload) {\n const address = (resultPayload as unknown as { address: Address[] }).address?.shift()\n if (address) {\n this._cache.set(identifier, address)\n return address\n }\n }\n throw new Error(`Unable to resolve registrar name (not found) [${first}]`)\n }\n return identifier\n }\n}\n","import { Module, ModuleFilter, ModuleResolver } from '@xyo-network/module-model'\n\nexport interface ModuleResolvedEventArgs {\n filter?: ModuleFilter\n mod: Module\n}\n\nexport interface ResolverEventEmitter {\n on(event: 'moduleResolved', listener: (args: ModuleResolvedEventArgs) => void): void\n}\n\ntype ListenerFunction = (args: ModuleResolvedEventArgs) => void\n\nconst getMixin = <T extends ModuleResolver = ModuleResolver>(resolver: T) => {\n const listeners: ListenerFunction[] = []\n const emit = (event: 'moduleResolved', args: ModuleResolvedEventArgs): boolean => {\n if (listeners.length === 0) return false\n listeners.map((listener) => listener(args))\n return true\n }\n const onModuleResolved = (mod: Module, filter?: ModuleFilter) => {\n const args = { filter, mod }\n emit('moduleResolved', args)\n }\n\n const { resolve } = resolver\n function originalResolve(filter?: ModuleFilter) {\n return resolve.bind(resolver)(filter)\n }\n\n return {\n on: (event: 'moduleResolved', listener: (args: ModuleResolvedEventArgs) => void) => {\n listeners.push(listener)\n },\n resolve: async (filter?: ModuleFilter): Promise<Module[]> => {\n const modules: Module[] = await originalResolve(filter)\n await Promise.allSettled(modules.map((mod) => onModuleResolved(mod, filter)))\n return modules\n },\n }\n}\n\nexport const mixinResolverEventEmitter = <T extends ModuleResolver = ModuleResolver>(resolver: T): T & ResolverEventEmitter => {\n const mixin = getMixin(resolver)\n const ret = Object.assign(resolver, mixin)\n return ret\n}\n"],"mappings":"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","names":["AbstractModuleResolver","Base","priority","params","ObjectResolverPriority","Normal","value","root","assertEx","resolve","idOrFilter","options","values","resolveHandler","Array","isArray","map","asModuleInstance","constructor","name","toJsonString","resolvePrivate","id","_options","Promise","import_assert","import_module_model","import_assert","import_module_model","SimpleModuleResolver","AbstractModuleResolver","modules","nameToModule","constructor","params","allowNameResolution","add","mods","Array","isArray","mod","addSingleModule","addResolver","_resolver","remove","address","addr","removeSingleModule","removeResolver","resolveHandler","idOrFilter","options","unfiltered","Object","values","id","name","isModuleName","undefined","isAddress","assertEx","resolveByName","pop","resolveByAddress","filter","isAddressModuleFilter","isNameModuleFilter","isQueryModuleFilter","resolveByQuery","query","identity","resolveIdentifier","_options","moduleFromName","modName","compact","map","find","reduce","supported","queryList","queryable","queries","includes","moduleIdentifierParts","moduleIdentifier","split","CompositeModuleResolver","AbstractModuleResolver","defaultMaxDepth","_cache","resolvers","_allowAddResolver","_localResolver","constructor","params","localResolver","SimpleModuleResolver","allowNameResolution","root","addResolver","max","ttl","cache","LRUCache","allowAddResolver","value","moduleIdentifierTransformers","ResolveHelper","transformers","add","mod","Array","isArray","modItem","addSingleModule","resolver","push","remove","addresses","address","removeSingleModule","removeResolver","filter","item","resolveHandler","idOrFilter","options","mutatedOptions","maxDepth","all","resolve","childOptions","result","Promise","map","flatResult","flat","exists","duplicateModules","idParts","length","resolveMultipartIdentifier","id","transformModuleIdentifier","cachedResult","get","status","delete","resolvePriority","priority","results","findLast","set","ObjectResolverPriority","VeryLow","undefined","VeryHigh","resolveIdentifier","_options","resolveComplexIdentifier","shift","altResult","assertEx","_id","Error","resolvePrivate","join","import_lru_cache","NameRegistrarTransformer","_cache","constructor","registrarDiviner","root","LRUCache","max","ttl","transform","identifier","parts","split","first","shift","nameParts","length","cachedResult","get","query","domain","order","schema","PayloadDivinerQuerySchema","tld","result","divine","resultPayload","Error","address","set","getMixin","resolver","listeners","emit","event","args","length","map","listener","onModuleResolved","mod","filter","resolve","originalResolve","bind","on","push","modules","Promise","allSettled","mixinResolverEventEmitter","mixin","ret","Object","assign"]}
@@ -125,7 +125,7 @@ var SimpleModuleResolver = class extends AbstractModuleResolver {
125
125
  })();
126
126
  const identity = options?.identity;
127
127
  if (identity) {
128
- return Array.isArray(unfiltered) ? unfiltered?.filter((module) => identity(module)) : identity(unfiltered) ? [
128
+ return Array.isArray(unfiltered) ? unfiltered?.filter((mod) => identity(mod)) : identity(unfiltered) ? [
129
129
  unfiltered
130
130
  ] : [];
131
131
  } else {
@@ -139,9 +139,9 @@ var SimpleModuleResolver = class extends AbstractModuleResolver {
139
139
  if (moduleFromName) {
140
140
  return moduleFromName.address;
141
141
  }
142
- for (const module of Object.values(this.modules)) {
143
- if (module.address === id) {
144
- return module.address;
142
+ for (const mod of Object.values(this.modules)) {
143
+ if (mod.address === id) {
144
+ return mod.address;
145
145
  }
146
146
  }
147
147
  }
@@ -171,15 +171,15 @@ var SimpleModuleResolver = class extends AbstractModuleResolver {
171
171
  }
172
172
  resolveByName(modules, name) {
173
173
  return compact(name.map((name2) => {
174
- return modules.find((module) => module.modName === name2);
174
+ return modules.find((mod) => mod.modName === name2);
175
175
  }));
176
176
  }
177
177
  resolveByQuery(modules, query) {
178
- return compact(modules.filter((module) => query?.reduce((supported, queryList) => {
178
+ return compact(modules.filter((mod) => query?.reduce((supported, queryList) => {
179
179
  return (
180
180
  // eslint-disable-next-line unicorn/no-array-reduce
181
181
  queryList.reduce((supported2, query2) => {
182
- const queryable = module.queries.includes(query2);
182
+ const queryable = mod.queries.includes(query2);
183
183
  return supported2 && queryable;
184
184
  }, true) || supported
185
185
  );
@@ -234,11 +234,11 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends AbstractMod
234
234
  get moduleIdentifierTransformers() {
235
235
  return this.params.moduleIdentifierTransformers ?? ResolveHelper.transformers;
236
236
  }
237
- add(module) {
238
- if (Array.isArray(module)) {
239
- for (const mod of module) this.addSingleModule(mod);
237
+ add(mod) {
238
+ if (Array.isArray(mod)) {
239
+ for (const modItem of mod) this.addSingleModule(modItem);
240
240
  } else {
241
- this.addSingleModule(module);
241
+ this.addSingleModule(mod);
242
242
  }
243
243
  return this;
244
244
  }
@@ -376,9 +376,9 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends AbstractMod
376
376
  resolveComplexIdentifier(_id, _options) {
377
377
  throw new Error("Method not implemented.");
378
378
  }
379
- addSingleModule(module) {
380
- if (module) {
381
- this._localResolver.add(module);
379
+ addSingleModule(mod) {
380
+ if (mod) {
381
+ this._localResolver.add(mod);
382
382
  }
383
383
  }
384
384
  removeSingleModule(address) {
@@ -388,8 +388,8 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends AbstractMod
388
388
  const idParts = moduleIdentifierParts(moduleIdentifier);
389
389
  assertEx3(idParts.length >= 2, () => "Not a valid multipart identifier");
390
390
  const id = assertEx3(idParts.shift());
391
- const module = await this.resolve(id) ?? await this.resolvePrivate(id);
392
- return await module?.resolve(idParts.join(":")) ?? await module?.resolvePrivate(idParts.join(":"));
391
+ const mod = await this.resolve(id) ?? await this.resolvePrivate(id);
392
+ return await mod?.resolve(idParts.join(":")) ?? await mod?.resolvePrivate(idParts.join(":"));
393
393
  }
394
394
  };
395
395
 
@@ -452,10 +452,10 @@ var getMixin = /* @__PURE__ */ __name((resolver) => {
452
452
  listeners.map((listener) => listener(args));
453
453
  return true;
454
454
  }, "emit");
455
- const onModuleResolved = /* @__PURE__ */ __name((module, filter) => {
455
+ const onModuleResolved = /* @__PURE__ */ __name((mod, filter) => {
456
456
  const args = {
457
457
  filter,
458
- module
458
+ mod
459
459
  };
460
460
  emit("moduleResolved", args);
461
461
  }, "onModuleResolved");