@xyo-network/module-model 2.100.28 → 2.101.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/ResolveHelper/index.d.cts +2 -0
- package/dist/browser/ResolveHelper/index.d.cts.map +1 -1
- package/dist/browser/ResolveHelper/index.d.mts +2 -0
- package/dist/browser/ResolveHelper/index.d.mts.map +1 -1
- package/dist/browser/ResolveHelper/index.d.ts +2 -0
- package/dist/browser/ResolveHelper/index.d.ts.map +1 -1
- package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.cts +3 -3
- package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.cts.map +1 -1
- package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.mts +3 -3
- package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.mts.map +1 -1
- package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.ts +3 -3
- package/dist/browser/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
- package/dist/browser/ResolveHelper/resolveLocalNameToInstance.d.cts +6 -0
- package/dist/browser/ResolveHelper/resolveLocalNameToInstance.d.cts.map +1 -0
- package/dist/browser/ResolveHelper/resolveLocalNameToInstance.d.mts +6 -0
- package/dist/browser/ResolveHelper/resolveLocalNameToInstance.d.mts.map +1 -0
- package/dist/browser/ResolveHelper/resolveLocalNameToInstance.d.ts +6 -0
- package/dist/browser/ResolveHelper/resolveLocalNameToInstance.d.ts.map +1 -0
- package/dist/browser/ResolveHelper/resolvePathToAddress.d.cts.map +1 -1
- package/dist/browser/ResolveHelper/resolvePathToAddress.d.mts.map +1 -1
- package/dist/browser/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
- package/dist/browser/ResolveHelper/resolvePathToInstance.d.cts +4 -0
- package/dist/browser/ResolveHelper/resolvePathToInstance.d.cts.map +1 -0
- package/dist/browser/ResolveHelper/resolvePathToInstance.d.mts +4 -0
- package/dist/browser/ResolveHelper/resolvePathToInstance.d.mts.map +1 -0
- package/dist/browser/ResolveHelper/resolvePathToInstance.d.ts +4 -0
- package/dist/browser/ResolveHelper/resolvePathToInstance.d.ts.map +1 -0
- package/dist/browser/index.cjs +32 -12
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +32 -12
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/instance/Instance.d.cts +1 -1
- package/dist/browser/instance/Instance.d.cts.map +1 -1
- package/dist/browser/instance/Instance.d.mts +1 -1
- package/dist/browser/instance/Instance.d.mts.map +1 -1
- package/dist/browser/instance/Instance.d.ts +1 -1
- package/dist/browser/instance/Instance.d.ts.map +1 -1
- package/dist/browser/module/ModuleFields.d.cts +2 -0
- package/dist/browser/module/ModuleFields.d.cts.map +1 -1
- package/dist/browser/module/ModuleFields.d.mts +2 -0
- package/dist/browser/module/ModuleFields.d.mts.map +1 -1
- package/dist/browser/module/ModuleFields.d.ts +2 -0
- package/dist/browser/module/ModuleFields.d.ts.map +1 -1
- package/dist/neutral/ResolveHelper/index.d.cts +2 -0
- package/dist/neutral/ResolveHelper/index.d.cts.map +1 -1
- package/dist/neutral/ResolveHelper/index.d.mts +2 -0
- package/dist/neutral/ResolveHelper/index.d.mts.map +1 -1
- package/dist/neutral/ResolveHelper/index.d.ts +2 -0
- package/dist/neutral/ResolveHelper/index.d.ts.map +1 -1
- package/dist/neutral/ResolveHelper/resolveLocalNameToAddress.d.cts +3 -3
- package/dist/neutral/ResolveHelper/resolveLocalNameToAddress.d.cts.map +1 -1
- package/dist/neutral/ResolveHelper/resolveLocalNameToAddress.d.mts +3 -3
- package/dist/neutral/ResolveHelper/resolveLocalNameToAddress.d.mts.map +1 -1
- package/dist/neutral/ResolveHelper/resolveLocalNameToAddress.d.ts +3 -3
- package/dist/neutral/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
- package/dist/neutral/ResolveHelper/resolveLocalNameToInstance.d.cts +6 -0
- package/dist/neutral/ResolveHelper/resolveLocalNameToInstance.d.cts.map +1 -0
- package/dist/neutral/ResolveHelper/resolveLocalNameToInstance.d.mts +6 -0
- package/dist/neutral/ResolveHelper/resolveLocalNameToInstance.d.mts.map +1 -0
- package/dist/neutral/ResolveHelper/resolveLocalNameToInstance.d.ts +6 -0
- package/dist/neutral/ResolveHelper/resolveLocalNameToInstance.d.ts.map +1 -0
- package/dist/neutral/ResolveHelper/resolvePathToAddress.d.cts.map +1 -1
- package/dist/neutral/ResolveHelper/resolvePathToAddress.d.mts.map +1 -1
- package/dist/neutral/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
- package/dist/neutral/ResolveHelper/resolvePathToInstance.d.cts +4 -0
- package/dist/neutral/ResolveHelper/resolvePathToInstance.d.cts.map +1 -0
- package/dist/neutral/ResolveHelper/resolvePathToInstance.d.mts +4 -0
- package/dist/neutral/ResolveHelper/resolvePathToInstance.d.mts.map +1 -0
- package/dist/neutral/ResolveHelper/resolvePathToInstance.d.ts +4 -0
- package/dist/neutral/ResolveHelper/resolvePathToInstance.d.ts.map +1 -0
- package/dist/neutral/index.cjs +32 -12
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +32 -12
- package/dist/neutral/index.js.map +1 -1
- package/dist/neutral/instance/Instance.d.cts +1 -1
- package/dist/neutral/instance/Instance.d.cts.map +1 -1
- package/dist/neutral/instance/Instance.d.mts +1 -1
- package/dist/neutral/instance/Instance.d.mts.map +1 -1
- package/dist/neutral/instance/Instance.d.ts +1 -1
- package/dist/neutral/instance/Instance.d.ts.map +1 -1
- package/dist/neutral/module/ModuleFields.d.cts +2 -0
- package/dist/neutral/module/ModuleFields.d.cts.map +1 -1
- package/dist/neutral/module/ModuleFields.d.mts +2 -0
- package/dist/neutral/module/ModuleFields.d.mts.map +1 -1
- package/dist/neutral/module/ModuleFields.d.ts +2 -0
- package/dist/neutral/module/ModuleFields.d.ts.map +1 -1
- package/dist/node/ResolveHelper/index.d.cts +2 -0
- package/dist/node/ResolveHelper/index.d.cts.map +1 -1
- package/dist/node/ResolveHelper/index.d.mts +2 -0
- package/dist/node/ResolveHelper/index.d.mts.map +1 -1
- package/dist/node/ResolveHelper/index.d.ts +2 -0
- package/dist/node/ResolveHelper/index.d.ts.map +1 -1
- package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.cts +3 -3
- package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.cts.map +1 -1
- package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.mts +3 -3
- package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.mts.map +1 -1
- package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.ts +3 -3
- package/dist/node/ResolveHelper/resolveLocalNameToAddress.d.ts.map +1 -1
- package/dist/node/ResolveHelper/resolveLocalNameToInstance.d.cts +6 -0
- package/dist/node/ResolveHelper/resolveLocalNameToInstance.d.cts.map +1 -0
- package/dist/node/ResolveHelper/resolveLocalNameToInstance.d.mts +6 -0
- package/dist/node/ResolveHelper/resolveLocalNameToInstance.d.mts.map +1 -0
- package/dist/node/ResolveHelper/resolveLocalNameToInstance.d.ts +6 -0
- package/dist/node/ResolveHelper/resolveLocalNameToInstance.d.ts.map +1 -0
- package/dist/node/ResolveHelper/resolvePathToAddress.d.cts.map +1 -1
- package/dist/node/ResolveHelper/resolvePathToAddress.d.mts.map +1 -1
- package/dist/node/ResolveHelper/resolvePathToAddress.d.ts.map +1 -1
- package/dist/node/ResolveHelper/resolvePathToInstance.d.cts +4 -0
- package/dist/node/ResolveHelper/resolvePathToInstance.d.cts.map +1 -0
- package/dist/node/ResolveHelper/resolvePathToInstance.d.mts +4 -0
- package/dist/node/ResolveHelper/resolvePathToInstance.d.mts.map +1 -0
- package/dist/node/ResolveHelper/resolvePathToInstance.d.ts +4 -0
- package/dist/node/ResolveHelper/resolvePathToInstance.d.ts.map +1 -0
- package/dist/node/index.cjs +42 -14
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +38 -14
- package/dist/node/index.js.map +1 -1
- package/dist/node/instance/Instance.d.cts +1 -1
- package/dist/node/instance/Instance.d.cts.map +1 -1
- package/dist/node/instance/Instance.d.mts +1 -1
- package/dist/node/instance/Instance.d.mts.map +1 -1
- package/dist/node/instance/Instance.d.ts +1 -1
- package/dist/node/instance/Instance.d.ts.map +1 -1
- package/dist/node/module/ModuleFields.d.cts +2 -0
- package/dist/node/module/ModuleFields.d.cts.map +1 -1
- package/dist/node/module/ModuleFields.d.mts +2 -0
- package/dist/node/module/ModuleFields.d.mts.map +1 -1
- package/dist/node/module/ModuleFields.d.ts +2 -0
- package/dist/node/module/ModuleFields.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/ResolveHelper/index.ts +2 -0
- package/src/ResolveHelper/resolveLocalNameToAddress.ts +8 -15
- package/src/ResolveHelper/resolveLocalNameToInstance.ts +27 -0
- package/src/ResolveHelper/resolvePathToAddress.ts +3 -25
- package/src/ResolveHelper/resolvePathToInstance.ts +37 -0
- package/src/instance/Instance.ts +1 -1
- package/src/module/ModuleFields.ts +3 -0
|
@@ -2,28 +2,21 @@ import { Address } from '@xylabs/hex'
|
|
|
2
2
|
|
|
3
3
|
import { ModuleInstance } from '../instance'
|
|
4
4
|
import { ModuleName } from '../ModuleIdentifier'
|
|
5
|
+
import { resolveLocalNameToInstance, resolveLocalNameToInstanceDown, resolveLocalNameToInstanceUp } from './resolveLocalNameToInstance'
|
|
5
6
|
|
|
6
|
-
export const resolveLocalNameToAddressUp = async (root: ModuleInstance,
|
|
7
|
-
|
|
8
|
-
return parents.find((parent) => parent.localName === localName)?.address
|
|
7
|
+
export const resolveLocalNameToAddressUp = async (root: ModuleInstance, modName: ModuleName): Promise<Address | undefined> => {
|
|
8
|
+
return (await resolveLocalNameToInstanceUp(root, modName))?.address
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
//since this is a
|
|
11
|
+
//since this is a modName, it only checks the children of the root module
|
|
12
12
|
export const resolveLocalNameToAddressDown = async (
|
|
13
13
|
root: ModuleInstance,
|
|
14
|
-
|
|
14
|
+
modName: ModuleName,
|
|
15
15
|
includePrivate = false,
|
|
16
16
|
): Promise<Address | undefined> => {
|
|
17
|
-
|
|
18
|
-
const publicChildren = (await root.publicChildren?.()) ?? []
|
|
19
|
-
const children = [...privateChildren, ...publicChildren]
|
|
20
|
-
return children.find((child) => child.localName === localName)?.address
|
|
17
|
+
return (await resolveLocalNameToInstanceDown(root, modName, includePrivate))?.address
|
|
21
18
|
}
|
|
22
19
|
|
|
23
|
-
export const resolveLocalNameToAddress = async (
|
|
24
|
-
root
|
|
25
|
-
localName: ModuleName,
|
|
26
|
-
includePrivate = false,
|
|
27
|
-
): Promise<Address | undefined> => {
|
|
28
|
-
return (await resolveLocalNameToAddressDown(root, localName, includePrivate)) ?? (await resolveLocalNameToAddressUp(root, localName))
|
|
20
|
+
export const resolveLocalNameToAddress = async (root: ModuleInstance, modName: ModuleName, includePrivate = false): Promise<Address | undefined> => {
|
|
21
|
+
return (await resolveLocalNameToInstance(root, modName, includePrivate))?.address
|
|
29
22
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ModuleInstance } from '../instance'
|
|
2
|
+
import { ModuleName } from '../ModuleIdentifier'
|
|
3
|
+
|
|
4
|
+
export const resolveLocalNameToInstanceUp = async (root: ModuleInstance, modName: ModuleName): Promise<ModuleInstance | undefined> => {
|
|
5
|
+
const parents = (await root.parents?.()) ?? []
|
|
6
|
+
return parents.find((parent) => parent.modName === modName)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//since this is a modName, it only checks the children of the root module
|
|
10
|
+
export const resolveLocalNameToInstanceDown = async (
|
|
11
|
+
root: ModuleInstance,
|
|
12
|
+
modName: ModuleName,
|
|
13
|
+
includePrivate = false,
|
|
14
|
+
): Promise<ModuleInstance | undefined> => {
|
|
15
|
+
const privateChildren = (includePrivate ? await root.privateChildren?.() : []) ?? []
|
|
16
|
+
const publicChildren = (await root.publicChildren?.()) ?? []
|
|
17
|
+
const children = [...privateChildren, ...publicChildren]
|
|
18
|
+
return children.find((child) => child.modName === modName)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const resolveLocalNameToInstance = async (
|
|
22
|
+
root: ModuleInstance,
|
|
23
|
+
modName: ModuleName,
|
|
24
|
+
includePrivate = false,
|
|
25
|
+
): Promise<ModuleInstance | undefined> => {
|
|
26
|
+
return (await resolveLocalNameToInstanceDown(root, modName, includePrivate)) ?? (await resolveLocalNameToInstanceUp(root, modName))
|
|
27
|
+
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Address, asAddress } from '@xylabs/hex'
|
|
1
|
+
import { Address } from '@xylabs/hex'
|
|
3
2
|
|
|
4
3
|
import { ModuleInstance } from '../instance'
|
|
5
|
-
import { MODULE_PATH_SEPARATOR } from '../ModuleIdentifier'
|
|
6
4
|
import { ModuleIdentifierTransformer } from '../ModuleIdentifierTransformer'
|
|
7
|
-
import { resolveAddressToInstance } from './resolveAddressToInstance'
|
|
8
5
|
import { ResolveHelper } from './ResolveHelper'
|
|
9
|
-
import {
|
|
10
|
-
import { transformModuleIdentifier } from './transformModuleIdentifier'
|
|
6
|
+
import { resolvePathToInstance } from './resolvePathToInstance'
|
|
11
7
|
|
|
12
8
|
export const resolvePathToAddress = async (
|
|
13
9
|
root: ModuleInstance,
|
|
@@ -15,23 +11,5 @@ export const resolvePathToAddress = async (
|
|
|
15
11
|
includePrivate = false,
|
|
16
12
|
transformers: ModuleIdentifierTransformer[] = ResolveHelper.transformers,
|
|
17
13
|
): Promise<Address | undefined> => {
|
|
18
|
-
|
|
19
|
-
const first = await transformModuleIdentifier(
|
|
20
|
-
assertEx(parts.shift(), () => `First part is invalid [${path}]`),
|
|
21
|
-
transformers,
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
if (!first) {
|
|
25
|
-
return undefined
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const firstAddress = asAddress(first) ?? (await resolveLocalNameToAddress(root, first, includePrivate))
|
|
29
|
-
|
|
30
|
-
if (firstAddress) {
|
|
31
|
-
const firstModule = await resolveAddressToInstance(root, firstAddress, includePrivate)
|
|
32
|
-
if (firstModule && parts.length > 0) {
|
|
33
|
-
return resolvePathToAddress(firstModule, parts.join(MODULE_PATH_SEPARATOR))
|
|
34
|
-
}
|
|
35
|
-
return firstAddress
|
|
36
|
-
}
|
|
14
|
+
return (await resolvePathToInstance(root, path, includePrivate, transformers))?.address
|
|
37
15
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { asAddress } from '@xylabs/hex'
|
|
3
|
+
|
|
4
|
+
import { ModuleInstance } from '../instance'
|
|
5
|
+
import { MODULE_PATH_SEPARATOR } from '../ModuleIdentifier'
|
|
6
|
+
import { ModuleIdentifierTransformer } from '../ModuleIdentifierTransformer'
|
|
7
|
+
import { resolveAddressToInstance } from './resolveAddressToInstance'
|
|
8
|
+
import { ResolveHelper } from './ResolveHelper'
|
|
9
|
+
import { resolveLocalNameToAddress } from './resolveLocalNameToAddress'
|
|
10
|
+
import { transformModuleIdentifier } from './transformModuleIdentifier'
|
|
11
|
+
|
|
12
|
+
export const resolvePathToInstance = async (
|
|
13
|
+
root: ModuleInstance,
|
|
14
|
+
path: string,
|
|
15
|
+
includePrivate = false,
|
|
16
|
+
transformers: ModuleIdentifierTransformer[] = ResolveHelper.transformers,
|
|
17
|
+
): Promise<ModuleInstance | undefined> => {
|
|
18
|
+
const parts = path.split(MODULE_PATH_SEPARATOR)
|
|
19
|
+
const first = await transformModuleIdentifier(
|
|
20
|
+
assertEx(parts.shift(), () => `First part is invalid [${path}]`),
|
|
21
|
+
transformers,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
if (!first) {
|
|
25
|
+
return undefined
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const firstAddress = asAddress(first) ?? (await resolveLocalNameToAddress(root, first, includePrivate))
|
|
29
|
+
|
|
30
|
+
if (firstAddress) {
|
|
31
|
+
const firstModule = await resolveAddressToInstance(root, firstAddress, includePrivate)
|
|
32
|
+
if (firstModule && parts.length > 0) {
|
|
33
|
+
return resolvePathToInstance(firstModule, parts.join(MODULE_PATH_SEPARATOR))
|
|
34
|
+
}
|
|
35
|
+
return firstModule
|
|
36
|
+
}
|
|
37
|
+
}
|
package/src/instance/Instance.ts
CHANGED
|
@@ -36,7 +36,7 @@ export interface ModuleFamilyFunctions {
|
|
|
36
36
|
account?: AccountInstance | undefined
|
|
37
37
|
addParent: (module: ModuleInstance) => void
|
|
38
38
|
addressCache?: (direction: Direction, includePrivate: boolean) => AddressToWeakInstanceCache | undefined
|
|
39
|
-
|
|
39
|
+
modName?: ModuleName
|
|
40
40
|
parents: () => Promisable<ModuleInstance[]>
|
|
41
41
|
privateChildren: () => Promisable<ModuleInstance[]>
|
|
42
42
|
publicChildren: () => Promisable<ModuleInstance[]>
|
|
@@ -4,6 +4,7 @@ import { QueryBoundWitness } from '@xyo-network/boundwitness-model'
|
|
|
4
4
|
import { Payload } from '@xyo-network/payload-model'
|
|
5
5
|
|
|
6
6
|
import { ModuleConfig } from '../Config'
|
|
7
|
+
import { ModuleName } from '../ModuleIdentifier'
|
|
7
8
|
import { ModuleParams } from '../ModuleParams'
|
|
8
9
|
import { ModuleQueryResult } from '../ModuleQueryResult'
|
|
9
10
|
|
|
@@ -14,6 +15,8 @@ export interface ModuleFields<TParams extends ModuleParams = ModuleParams> {
|
|
|
14
15
|
/** The name (if specified) or address of the module */
|
|
15
16
|
id: string
|
|
16
17
|
|
|
18
|
+
modName?: ModuleName
|
|
19
|
+
|
|
17
20
|
params: TParams
|
|
18
21
|
|
|
19
22
|
previousHash: () => Promisable<string | undefined>
|