@xyo-network/module-model 2.94.40 → 2.95.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 (145) hide show
  1. package/dist/browser/ModuleIdentifier.d.cts +2 -1
  2. package/dist/browser/ModuleIdentifier.d.cts.map +1 -1
  3. package/dist/browser/ModuleIdentifier.d.mts +2 -1
  4. package/dist/browser/ModuleIdentifier.d.mts.map +1 -1
  5. package/dist/browser/ModuleIdentifier.d.ts +2 -1
  6. package/dist/browser/ModuleIdentifier.d.ts.map +1 -1
  7. package/dist/browser/ModuleIdentifierTransformer.d.cts +1 -1
  8. package/dist/browser/ModuleIdentifierTransformer.d.cts.map +1 -1
  9. package/dist/browser/ModuleIdentifierTransformer.d.mts +1 -1
  10. package/dist/browser/ModuleIdentifierTransformer.d.mts.map +1 -1
  11. package/dist/browser/ModuleIdentifierTransformer.d.ts +1 -1
  12. package/dist/browser/ModuleIdentifierTransformer.d.ts.map +1 -1
  13. package/dist/browser/{ResolveHelper.d.cts → ResolveHelper/ResolveHelper.d.cts} +5 -5
  14. package/dist/browser/ResolveHelper/ResolveHelper.d.cts.map +1 -0
  15. package/dist/{node → browser/ResolveHelper}/ResolveHelper.d.mts +5 -5
  16. package/dist/browser/ResolveHelper/ResolveHelper.d.mts.map +1 -0
  17. package/dist/{node → browser/ResolveHelper}/ResolveHelper.d.ts +5 -5
  18. package/dist/browser/ResolveHelper/ResolveHelper.d.ts.map +1 -0
  19. package/dist/browser/ResolveHelper/index.d.cts +5 -0
  20. package/dist/browser/ResolveHelper/index.d.cts.map +1 -0
  21. package/dist/browser/ResolveHelper/index.d.mts +5 -0
  22. package/dist/browser/ResolveHelper/index.d.mts.map +1 -0
  23. package/dist/browser/ResolveHelper/index.d.ts +5 -0
  24. package/dist/browser/ResolveHelper/index.d.ts.map +1 -0
  25. package/dist/browser/ResolveHelper/resolveAddressToInstance.d.cts +7 -0
  26. package/dist/browser/ResolveHelper/resolveAddressToInstance.d.cts.map +1 -0
  27. package/dist/browser/ResolveHelper/resolveAddressToInstance.d.mts +7 -0
  28. package/dist/browser/ResolveHelper/resolveAddressToInstance.d.mts.map +1 -0
  29. package/dist/browser/ResolveHelper/resolveAddressToInstance.d.ts +7 -0
  30. package/dist/browser/ResolveHelper/resolveAddressToInstance.d.ts.map +1 -0
  31. package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.cts +7 -0
  32. package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.cts.map +1 -0
  33. package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.mts +7 -0
  34. package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.mts.map +1 -0
  35. package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.ts +7 -0
  36. package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -0
  37. package/dist/browser/ResolveHelper/resolvePathToAddress.d.cts +5 -0
  38. package/dist/browser/ResolveHelper/resolvePathToAddress.d.cts.map +1 -0
  39. package/dist/browser/ResolveHelper/resolvePathToAddress.d.mts +5 -0
  40. package/dist/browser/ResolveHelper/resolvePathToAddress.d.mts.map +1 -0
  41. package/dist/browser/ResolveHelper/resolvePathToAddress.d.ts +5 -0
  42. package/dist/browser/ResolveHelper/resolvePathToAddress.d.ts.map +1 -0
  43. package/dist/browser/ResolveHelper/traceModuleIdentifier.d.cts +5 -0
  44. package/dist/browser/ResolveHelper/traceModuleIdentifier.d.cts.map +1 -0
  45. package/dist/browser/ResolveHelper/traceModuleIdentifier.d.mts +5 -0
  46. package/dist/browser/ResolveHelper/traceModuleIdentifier.d.mts.map +1 -0
  47. package/dist/browser/ResolveHelper/traceModuleIdentifier.d.ts +5 -0
  48. package/dist/browser/ResolveHelper/traceModuleIdentifier.d.ts.map +1 -0
  49. package/dist/browser/ResolveHelper/transformModuleIdentifier.d.cts +4 -0
  50. package/dist/browser/ResolveHelper/transformModuleIdentifier.d.cts.map +1 -0
  51. package/dist/browser/ResolveHelper/transformModuleIdentifier.d.mts +4 -0
  52. package/dist/browser/ResolveHelper/transformModuleIdentifier.d.mts.map +1 -0
  53. package/dist/browser/ResolveHelper/transformModuleIdentifier.d.ts +4 -0
  54. package/dist/browser/ResolveHelper/transformModuleIdentifier.d.ts.map +1 -0
  55. package/dist/browser/index.cjs +153 -42
  56. package/dist/browser/index.cjs.map +1 -1
  57. package/dist/browser/index.js +153 -42
  58. package/dist/browser/index.js.map +1 -1
  59. package/dist/browser/instance/Instance.d.cts +17 -2
  60. package/dist/browser/instance/Instance.d.cts.map +1 -1
  61. package/dist/browser/instance/Instance.d.mts +17 -2
  62. package/dist/browser/instance/Instance.d.mts.map +1 -1
  63. package/dist/browser/instance/Instance.d.ts +17 -2
  64. package/dist/browser/instance/Instance.d.ts.map +1 -1
  65. package/dist/node/ModuleIdentifier.d.cts +2 -1
  66. package/dist/node/ModuleIdentifier.d.cts.map +1 -1
  67. package/dist/node/ModuleIdentifier.d.mts +2 -1
  68. package/dist/node/ModuleIdentifier.d.mts.map +1 -1
  69. package/dist/node/ModuleIdentifier.d.ts +2 -1
  70. package/dist/node/ModuleIdentifier.d.ts.map +1 -1
  71. package/dist/node/ModuleIdentifierTransformer.d.cts +1 -1
  72. package/dist/node/ModuleIdentifierTransformer.d.cts.map +1 -1
  73. package/dist/node/ModuleIdentifierTransformer.d.mts +1 -1
  74. package/dist/node/ModuleIdentifierTransformer.d.mts.map +1 -1
  75. package/dist/node/ModuleIdentifierTransformer.d.ts +1 -1
  76. package/dist/node/ModuleIdentifierTransformer.d.ts.map +1 -1
  77. package/dist/node/{ResolveHelper.d.cts → ResolveHelper/ResolveHelper.d.cts} +5 -5
  78. package/dist/node/ResolveHelper/ResolveHelper.d.cts.map +1 -0
  79. package/dist/{browser → node/ResolveHelper}/ResolveHelper.d.mts +5 -5
  80. package/dist/node/ResolveHelper/ResolveHelper.d.mts.map +1 -0
  81. package/dist/{browser → node/ResolveHelper}/ResolveHelper.d.ts +5 -5
  82. package/dist/node/ResolveHelper/ResolveHelper.d.ts.map +1 -0
  83. package/dist/node/ResolveHelper/index.d.cts +5 -0
  84. package/dist/node/ResolveHelper/index.d.cts.map +1 -0
  85. package/dist/node/ResolveHelper/index.d.mts +5 -0
  86. package/dist/node/ResolveHelper/index.d.mts.map +1 -0
  87. package/dist/node/ResolveHelper/index.d.ts +5 -0
  88. package/dist/node/ResolveHelper/index.d.ts.map +1 -0
  89. package/dist/node/ResolveHelper/resolveAddressToInstance.d.cts +7 -0
  90. package/dist/node/ResolveHelper/resolveAddressToInstance.d.cts.map +1 -0
  91. package/dist/node/ResolveHelper/resolveAddressToInstance.d.mts +7 -0
  92. package/dist/node/ResolveHelper/resolveAddressToInstance.d.mts.map +1 -0
  93. package/dist/node/ResolveHelper/resolveAddressToInstance.d.ts +7 -0
  94. package/dist/node/ResolveHelper/resolveAddressToInstance.d.ts.map +1 -0
  95. package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.cts +7 -0
  96. package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.cts.map +1 -0
  97. package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.mts +7 -0
  98. package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.mts.map +1 -0
  99. package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.ts +7 -0
  100. package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -0
  101. package/dist/node/ResolveHelper/resolvePathToAddress.d.cts +5 -0
  102. package/dist/node/ResolveHelper/resolvePathToAddress.d.cts.map +1 -0
  103. package/dist/node/ResolveHelper/resolvePathToAddress.d.mts +5 -0
  104. package/dist/node/ResolveHelper/resolvePathToAddress.d.mts.map +1 -0
  105. package/dist/node/ResolveHelper/resolvePathToAddress.d.ts +5 -0
  106. package/dist/node/ResolveHelper/resolvePathToAddress.d.ts.map +1 -0
  107. package/dist/node/ResolveHelper/traceModuleIdentifier.d.cts +5 -0
  108. package/dist/node/ResolveHelper/traceModuleIdentifier.d.cts.map +1 -0
  109. package/dist/node/ResolveHelper/traceModuleIdentifier.d.mts +5 -0
  110. package/dist/node/ResolveHelper/traceModuleIdentifier.d.mts.map +1 -0
  111. package/dist/node/ResolveHelper/traceModuleIdentifier.d.ts +5 -0
  112. package/dist/node/ResolveHelper/traceModuleIdentifier.d.ts.map +1 -0
  113. package/dist/node/ResolveHelper/transformModuleIdentifier.d.cts +4 -0
  114. package/dist/node/ResolveHelper/transformModuleIdentifier.d.cts.map +1 -0
  115. package/dist/node/ResolveHelper/transformModuleIdentifier.d.mts +4 -0
  116. package/dist/node/ResolveHelper/transformModuleIdentifier.d.mts.map +1 -0
  117. package/dist/node/ResolveHelper/transformModuleIdentifier.d.ts +4 -0
  118. package/dist/node/ResolveHelper/transformModuleIdentifier.d.ts.map +1 -0
  119. package/dist/node/index.cjs +168 -42
  120. package/dist/node/index.cjs.map +1 -1
  121. package/dist/node/index.js +159 -42
  122. package/dist/node/index.js.map +1 -1
  123. package/dist/node/instance/Instance.d.cts +17 -2
  124. package/dist/node/instance/Instance.d.cts.map +1 -1
  125. package/dist/node/instance/Instance.d.mts +17 -2
  126. package/dist/node/instance/Instance.d.mts.map +1 -1
  127. package/dist/node/instance/Instance.d.ts +17 -2
  128. package/dist/node/instance/Instance.d.ts.map +1 -1
  129. package/package.json +7 -7
  130. package/src/ModuleIdentifier.ts +2 -0
  131. package/src/ModuleIdentifierTransformer.ts +1 -1
  132. package/src/{ResolveHelper.ts → ResolveHelper/ResolveHelper.ts} +22 -34
  133. package/src/ResolveHelper/index.ts +4 -0
  134. package/src/ResolveHelper/resolveAddressToInstance.ts +73 -0
  135. package/src/ResolveHelper/resolveLocalNameToAddress.ts +29 -0
  136. package/src/ResolveHelper/resolvePathToAddress.ts +36 -0
  137. package/src/ResolveHelper/traceModuleIdentifier.ts +18 -0
  138. package/src/ResolveHelper/transformModuleIdentifier.ts +13 -0
  139. package/src/instance/Instance.ts +20 -2
  140. package/dist/browser/ResolveHelper.d.cts.map +0 -1
  141. package/dist/browser/ResolveHelper.d.mts.map +0 -1
  142. package/dist/browser/ResolveHelper.d.ts.map +0 -1
  143. package/dist/node/ResolveHelper.d.cts.map +0 -1
  144. package/dist/node/ResolveHelper.d.mts.map +0 -1
  145. package/dist/node/ResolveHelper.d.ts.map +0 -1
@@ -32,6 +32,7 @@ __export(src_exports, {
32
32
  IsAttachableModuleInstanceFactory: () => IsAttachableModuleInstanceFactory,
33
33
  IsInstanceFactory: () => IsInstanceFactory,
34
34
  IsModuleFactory: () => IsModuleFactory,
35
+ MODULE_PATH_SEPARATOR: () => MODULE_PATH_SEPARATOR,
35
36
  ModuleAddressQuerySchema: () => ModuleAddressQuerySchema,
36
37
  ModuleConfigSchema: () => ModuleConfigSchema,
37
38
  ModuleDescriptionSchema: () => ModuleDescriptionSchema,
@@ -75,6 +76,14 @@ __export(src_exports, {
75
76
  requiredModuleInstanceFunctions: () => requiredModuleInstanceFunctions,
76
77
  requiredModuleQueries: () => requiredModuleQueries,
77
78
  requiredModuleShape: () => requiredModuleShape,
79
+ resolveAddressToInstance: () => resolveAddressToInstance,
80
+ resolveAddressToInstanceDown: () => resolveAddressToInstanceDown,
81
+ resolveAddressToInstanceSiblings: () => resolveAddressToInstanceSiblings,
82
+ resolveAddressToInstanceUp: () => resolveAddressToInstanceUp,
83
+ resolveLocalNameToAddress: () => resolveLocalNameToAddress,
84
+ resolveLocalNameToAddressDown: () => resolveLocalNameToAddressDown,
85
+ resolveLocalNameToAddressUp: () => resolveLocalNameToAddressUp,
86
+ resolvePathToAddress: () => resolvePathToAddress,
78
87
  serializable: () => serializable,
79
88
  serializableField: () => serializableField,
80
89
  toCreatableModuleRegistry: () => toCreatableModuleRegistry,
@@ -457,6 +466,7 @@ var serializableField = /* @__PURE__ */ __name((field) => {
457
466
 
458
467
  // src/ModuleIdentifier.ts
459
468
  var import_hex = require("@xylabs/hex");
469
+ var MODULE_PATH_SEPARATOR = ":";
460
470
  var DisallowedModuleIdentifierCharacters = {
461
471
  " ": true,
462
472
  "!": true,
@@ -518,12 +528,95 @@ var isModuleStateWithMeta = /* @__PURE__ */ __name((payload) => {
518
528
  return (0, import_payload_model.isPayloadOfSchemaType)(ModuleStateSchema)(payload);
519
529
  }, "isModuleStateWithMeta");
520
530
 
521
- // src/ResolveHelper.ts
522
- var import_assert3 = require("@xylabs/assert");
531
+ // src/ResolveHelper/resolveAddressToInstance.ts
532
+ var resolveAddressToInstanceDown = /* @__PURE__ */ __name(async (root, address, includePrivate = false, ignore = []) => {
533
+ var _a, _b, _c;
534
+ if (root.address === address) {
535
+ return root;
536
+ }
537
+ const cache = (_a = root.addressCache) == null ? void 0 : _a.call(root, "up", includePrivate);
538
+ const privateChildren = (includePrivate ? await ((_b = root.privateChildren) == null ? void 0 : _b.call(root)) : []) ?? [];
539
+ const publicChildren = await ((_c = root.publicChildren) == null ? void 0 : _c.call(root)) ?? [];
540
+ const children = [
541
+ ...privateChildren,
542
+ ...publicChildren
543
+ ];
544
+ for (const child of children) {
545
+ const found = await resolveAddressToInstanceDown(child, address, includePrivate, ignore);
546
+ if (found) {
547
+ cache == null ? void 0 : cache.set(address, new WeakRef(found));
548
+ return found;
549
+ }
550
+ }
551
+ cache == null ? void 0 : cache.set(address, null);
552
+ }, "resolveAddressToInstanceDown");
553
+ var resolveAddressToInstanceSiblings = /* @__PURE__ */ __name(async (root, address, includePrivate = false, ignore = []) => {
554
+ var _a;
555
+ const siblings = await ((_a = root.siblings) == null ? void 0 : _a.call(root)) ?? [];
556
+ for (const sibling of siblings) {
557
+ const found = await resolveAddressToInstanceDown(sibling, address, includePrivate, ignore);
558
+ if (found) {
559
+ return found;
560
+ }
561
+ }
562
+ }, "resolveAddressToInstanceSiblings");
563
+ var resolveAddressToInstanceUp = /* @__PURE__ */ __name(async (root, address, includePrivate = false, ignore = []) => {
564
+ var _a, _b;
565
+ const cache = (_a = root.addressCache) == null ? void 0 : _a.call(root, "up", includePrivate);
566
+ const parents = await ((_b = root.parents) == null ? void 0 : _b.call(root)) ?? [];
567
+ for (const parent of parents) {
568
+ const found = await resolveAddressToInstance(parent, address, includePrivate, ignore);
569
+ if (found) {
570
+ cache == null ? void 0 : cache.set(address, new WeakRef(found));
571
+ return found;
572
+ }
573
+ }
574
+ cache == null ? void 0 : cache.set(address, null);
575
+ }, "resolveAddressToInstanceUp");
576
+ var resolveAddressToInstance = /* @__PURE__ */ __name(async (root, address, includePrivate = false, ignore = []) => {
577
+ var _a;
578
+ const cache = (_a = root.addressCache) == null ? void 0 : _a.call(root, "all", includePrivate);
579
+ const result = await resolveAddressToInstanceDown(root, address, includePrivate, ignore) ?? await resolveAddressToInstanceUp(root, address, includePrivate, ignore);
580
+ cache == null ? void 0 : cache.set(address, result ? new WeakRef(result) : null);
581
+ return result;
582
+ }, "resolveAddressToInstance");
583
+
584
+ // src/ResolveHelper/ResolveHelper.ts
585
+ var import_assert4 = require("@xylabs/assert");
523
586
  var import_exists = require("@xylabs/exists");
524
587
  var import_hex2 = require("@xylabs/hex");
525
588
  var import_logger = require("@xylabs/logger");
526
589
  var import_object10 = require("@xylabs/object");
590
+
591
+ // src/ResolveHelper/traceModuleIdentifier.ts
592
+ var import_assert3 = require("@xylabs/assert");
593
+ var traceModuleIdentifier = /* @__PURE__ */ __name(async (resolver, path) => {
594
+ const parts = path.split(":");
595
+ const first = parts.shift();
596
+ const firstModule = asModuleInstance((0, import_assert3.assertEx)(await resolver.resolve(first, {
597
+ maxDepth: 1
598
+ }), () => `Failed to resolve [${first}]`), () => `Resolved invalid module instance [${first}]`);
599
+ if (firstModule) {
600
+ return parts.length > 0 ? [
601
+ firstModule.address,
602
+ ...await traceModuleIdentifier(firstModule, parts.join(":"))
603
+ ] : [
604
+ firstModule.address
605
+ ];
606
+ }
607
+ return [];
608
+ }, "traceModuleIdentifier");
609
+
610
+ // src/ResolveHelper/transformModuleIdentifier.ts
611
+ var transformModuleIdentifier = /* @__PURE__ */ __name(async (id, transformers) => {
612
+ let result = id;
613
+ for (const transformer of transformers) {
614
+ result = await transformer.transform(id);
615
+ }
616
+ return result;
617
+ }, "transformModuleIdentifier");
618
+
619
+ // src/ResolveHelper/ResolveHelper.ts
527
620
  var _ResolveHelper = class _ResolveHelper {
528
621
  static async resolve(config, idOrFilter = "*", { maxDepth = 3, required = "log", ...options } = {}) {
529
622
  const { transformers, module: module2, logger = this.defaultLogger, dead = false, upResolver, downResolver, privateResolver } = config;
@@ -576,24 +669,26 @@ var _ResolveHelper = class _ResolveHelper {
576
669
  return void 0;
577
670
  }
578
671
  const id = await this.transformModuleIdentifier(idOrFilter, transformers);
579
- const resolvers = [
580
- [
581
- downResolver,
582
- downLocalOptions
583
- ],
584
- [
585
- up ? upResolver : void 0,
586
- upLocalOptions
587
- ],
588
- [
589
- up ? privateResolver : void 0,
590
- upLocalOptions
591
- ]
592
- ].filter(([resolver]) => (0, import_exists.exists)(resolver));
593
- for (const resolver of resolvers) {
594
- const [resolverInstance] = resolver;
595
- if (!result) {
596
- result = await this.resolveModuleIdentifier(resolverInstance, id);
672
+ if (id) {
673
+ const resolvers = [
674
+ [
675
+ downResolver,
676
+ downLocalOptions
677
+ ],
678
+ [
679
+ up ? upResolver : void 0,
680
+ upLocalOptions
681
+ ],
682
+ [
683
+ up ? privateResolver : void 0,
684
+ upLocalOptions
685
+ ]
686
+ ].filter(([resolver]) => (0, import_exists.exists)(resolver));
687
+ for (const resolver of resolvers) {
688
+ const [resolverInstance] = resolver;
689
+ if (!result) {
690
+ result = await this.resolveModuleIdentifier(resolverInstance, id);
691
+ }
597
692
  }
598
693
  }
599
694
  break;
@@ -624,35 +719,18 @@ var _ResolveHelper = class _ResolveHelper {
624
719
  }) ?? (first ? await resolver.resolvePrivate(first, {
625
720
  maxDepth: firstIsAddress ? 10 : 1
626
721
  }) : void 0);
627
- const finalModule = required ? (0, import_assert3.assertEx)(resolvedModule, () => `Failed to resolve [${first}] [${firstIsAddress}]`) : resolvedModule;
722
+ const finalModule = required ? (0, import_assert4.assertEx)(resolvedModule, () => `Failed to resolve [${first}] [${firstIsAddress}]`) : resolvedModule;
628
723
  const firstModule = asModuleInstance(finalModule, () => `Resolved invalid module instance [${first}]`);
629
724
  if (firstModule) {
630
725
  return parts.length > 0 ? await this.resolveModuleIdentifier(firstModule, parts.join(":")) : firstModule;
631
726
  }
632
727
  }
633
728
  //translates a complex module path to addresses
634
- static async traceModuleIdentifier(resolver, path) {
635
- const parts = path.split(":");
636
- const first = parts.shift();
637
- const firstModule = asModuleInstance((0, import_assert3.assertEx)(await resolver.resolve(first, {
638
- maxDepth: 1
639
- }), () => `Failed to resolve [${first}]`), () => `Resolved invalid module instance [${first}]`);
640
- if (firstModule) {
641
- return parts.length > 0 ? [
642
- firstModule.address,
643
- ...await this.traceModuleIdentifier(firstModule, parts.join(":"))
644
- ] : [
645
- firstModule.address
646
- ];
647
- }
648
- return [];
729
+ static traceModuleIdentifier(resolver, path) {
730
+ return traceModuleIdentifier(resolver, path);
649
731
  }
650
- static async transformModuleIdentifier(identifier, transformers = _ResolveHelper.transformers) {
651
- let id = identifier;
652
- for (const transformer of transformers) {
653
- id = await transformer.transform(id);
654
- }
655
- return id;
732
+ static transformModuleIdentifier(identifier, transformers = _ResolveHelper.transformers) {
733
+ return transformModuleIdentifier(identifier, transformers);
656
734
  }
657
735
  static validateRequiredResolve(required, result, idOrFilter, logger = this.defaultLogger) {
658
736
  const log = logger ? new import_logger.IdLogger(logger, () => `validateRequiredResolve [${idOrFilter}][${result}]`) : void 0;
@@ -678,6 +756,45 @@ __publicField(_ResolveHelper, "defaultLogger");
678
756
  __publicField(_ResolveHelper, "transformers", []);
679
757
  var ResolveHelper = _ResolveHelper;
680
758
 
759
+ // src/ResolveHelper/resolveLocalNameToAddress.ts
760
+ var resolveLocalNameToAddressUp = /* @__PURE__ */ __name(async (root, localName) => {
761
+ var _a, _b;
762
+ const parents = await ((_a = root.parents) == null ? void 0 : _a.call(root)) ?? [];
763
+ return (_b = parents.find((parent) => parent.localName === localName)) == null ? void 0 : _b.address;
764
+ }, "resolveLocalNameToAddressUp");
765
+ var resolveLocalNameToAddressDown = /* @__PURE__ */ __name(async (root, localName, includePrivate = false) => {
766
+ var _a, _b, _c;
767
+ const privateChildren = (includePrivate ? await ((_a = root.privateChildren) == null ? void 0 : _a.call(root)) : []) ?? [];
768
+ const publicChildren = await ((_b = root.publicChildren) == null ? void 0 : _b.call(root)) ?? [];
769
+ const children = [
770
+ ...privateChildren,
771
+ ...publicChildren
772
+ ];
773
+ return (_c = children.find((child) => child.localName === localName)) == null ? void 0 : _c.address;
774
+ }, "resolveLocalNameToAddressDown");
775
+ var resolveLocalNameToAddress = /* @__PURE__ */ __name(async (root, localName, includePrivate = false) => {
776
+ return await resolveLocalNameToAddressDown(root, localName, includePrivate) ?? await resolveLocalNameToAddressUp(root, localName);
777
+ }, "resolveLocalNameToAddress");
778
+
779
+ // src/ResolveHelper/resolvePathToAddress.ts
780
+ var import_assert5 = require("@xylabs/assert");
781
+ var import_hex3 = require("@xylabs/hex");
782
+ var resolvePathToAddress = /* @__PURE__ */ __name(async (root, path, includePrivate = false, transformers = []) => {
783
+ const parts = path.split(MODULE_PATH_SEPARATOR);
784
+ const first = await transformModuleIdentifier((0, import_assert5.assertEx)(parts.shift(), () => `First part is invalid [${path}]`), transformers);
785
+ if (!first) {
786
+ return void 0;
787
+ }
788
+ const firstAddress = (0, import_hex3.asAddress)(first) ?? await resolveLocalNameToAddress(root, first, includePrivate);
789
+ if (firstAddress) {
790
+ const firstModule = await resolveAddressToInstance(root, firstAddress, includePrivate);
791
+ if (firstModule && parts.length > 0) {
792
+ return resolvePathToAddress(firstModule, parts.join(MODULE_PATH_SEPARATOR));
793
+ }
794
+ return firstAddress;
795
+ }
796
+ }, "resolvePathToAddress");
797
+
681
798
  // src/withModule.ts
682
799
  var WithFactory = {
683
800
  create: (typeCheck) => {
@@ -696,6 +813,7 @@ var withModuleInstance = WithFactory.create(isModuleInstance);
696
813
  IsAttachableModuleInstanceFactory,
697
814
  IsInstanceFactory,
698
815
  IsModuleFactory,
816
+ MODULE_PATH_SEPARATOR,
699
817
  ModuleAddressQuerySchema,
700
818
  ModuleConfigSchema,
701
819
  ModuleDescriptionSchema,
@@ -739,6 +857,14 @@ var withModuleInstance = WithFactory.create(isModuleInstance);
739
857
  requiredModuleInstanceFunctions,
740
858
  requiredModuleQueries,
741
859
  requiredModuleShape,
860
+ resolveAddressToInstance,
861
+ resolveAddressToInstanceDown,
862
+ resolveAddressToInstanceSiblings,
863
+ resolveAddressToInstanceUp,
864
+ resolveLocalNameToAddress,
865
+ resolveLocalNameToAddressDown,
866
+ resolveLocalNameToAddressUp,
867
+ resolvePathToAddress,
742
868
  serializable,
743
869
  serializableField,
744
870
  toCreatableModuleRegistry,