@xyo-network/module-resolver 2.94.22 → 2.94.24
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/CompositeModuleResolver.d.cts.map +1 -1
- package/dist/browser/CompositeModuleResolver.d.mts.map +1 -1
- package/dist/browser/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/browser/NameRegistrarTransformer.d.cts +10 -0
- package/dist/browser/NameRegistrarTransformer.d.cts.map +1 -0
- package/dist/browser/NameRegistrarTransformer.d.mts +10 -0
- package/dist/browser/NameRegistrarTransformer.d.mts.map +1 -0
- package/dist/browser/NameRegistrarTransformer.d.ts +10 -0
- package/dist/browser/NameRegistrarTransformer.d.ts.map +1 -0
- package/dist/browser/index.cjs +50 -0
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +1 -0
- package/dist/browser/index.d.cts.map +1 -1
- package/dist/browser/index.d.mts +1 -0
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +50 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/node/CompositeModuleResolver.d.cts.map +1 -1
- package/dist/node/CompositeModuleResolver.d.mts.map +1 -1
- package/dist/node/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/node/NameRegistrarTransformer.d.cts +10 -0
- package/dist/node/NameRegistrarTransformer.d.cts.map +1 -0
- package/dist/node/NameRegistrarTransformer.d.mts +10 -0
- package/dist/node/NameRegistrarTransformer.d.mts.map +1 -0
- package/dist/node/NameRegistrarTransformer.d.ts +10 -0
- package/dist/node/NameRegistrarTransformer.d.ts.map +1 -0
- package/dist/node/index.cjs +51 -0
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +1 -0
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +1 -0
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +50 -0
- package/dist/node/index.js.map +1 -1
- package/package.json +12 -8
- package/src/CompositeModuleResolver.ts +0 -1
- package/src/NameRegistrarTransformer.ts +39 -0
- package/src/index.ts +1 -0
package/package.json
CHANGED
|
@@ -10,13 +10,17 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^3.
|
|
14
|
-
"@xylabs/exists": "^3.
|
|
15
|
-
"@xylabs/hex": "^3.
|
|
16
|
-
"@xylabs/lodash": "^3.
|
|
17
|
-
"@xylabs/object": "^3.
|
|
18
|
-
"@xylabs/promise": "^3.
|
|
19
|
-
"@xyo-network/
|
|
13
|
+
"@xylabs/assert": "^3.1.6",
|
|
14
|
+
"@xylabs/exists": "^3.1.6",
|
|
15
|
+
"@xylabs/hex": "^3.1.6",
|
|
16
|
+
"@xylabs/lodash": "^3.1.6",
|
|
17
|
+
"@xylabs/object": "^3.1.6",
|
|
18
|
+
"@xylabs/promise": "^3.1.6",
|
|
19
|
+
"@xyo-network/address-payload-plugin": "~2.94.24",
|
|
20
|
+
"@xyo-network/diviner-model": "~2.94.24",
|
|
21
|
+
"@xyo-network/diviner-payload-model": "~2.94.24",
|
|
22
|
+
"@xyo-network/module-model": "~2.94.24",
|
|
23
|
+
"@xyo-network/payload-model": "~2.94.24",
|
|
20
24
|
"lru-cache": "^10.2.0"
|
|
21
25
|
},
|
|
22
26
|
"devDependencies": {
|
|
@@ -65,6 +69,6 @@
|
|
|
65
69
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
66
70
|
},
|
|
67
71
|
"sideEffects": false,
|
|
68
|
-
"version": "2.94.
|
|
72
|
+
"version": "2.94.24",
|
|
69
73
|
"type": "module"
|
|
70
74
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
2
|
+
import { DivinerInstance } from '@xyo-network/diviner-model'
|
|
3
|
+
import { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'
|
|
4
|
+
import { ModuleIdentifier, ModuleIdentifierTransformer } from '@xyo-network/module-model'
|
|
5
|
+
import { isPayloadOfSchemaTypeWithMeta } from '@xyo-network/payload-model'
|
|
6
|
+
import { LRUCache } from 'lru-cache'
|
|
7
|
+
|
|
8
|
+
export class NameRegistrarTransformer implements ModuleIdentifierTransformer {
|
|
9
|
+
private _cache: LRUCache<ModuleIdentifier, ModuleIdentifier> = new LRUCache<ModuleIdentifier, ModuleIdentifier>({ max: 1000, ttl: 1000 * 5 })
|
|
10
|
+
|
|
11
|
+
constructor(
|
|
12
|
+
private registrarDiviner: DivinerInstance,
|
|
13
|
+
private root: string,
|
|
14
|
+
) {}
|
|
15
|
+
|
|
16
|
+
async transform(identifier: ModuleIdentifier): Promise<ModuleIdentifier> {
|
|
17
|
+
const parts = identifier.split(':')
|
|
18
|
+
const first = parts.shift()
|
|
19
|
+
const nameParts = first?.split('.')
|
|
20
|
+
if (nameParts?.length === 2 && nameParts[1] === this.root) {
|
|
21
|
+
//check cache
|
|
22
|
+
const cachedResult = this._cache.get(identifier)
|
|
23
|
+
if (cachedResult) return cachedResult
|
|
24
|
+
|
|
25
|
+
//not cached, so check registrar
|
|
26
|
+
const query = { domain: nameParts[0], order: 'desc' as const, schema: PayloadDivinerQuerySchema }
|
|
27
|
+
const result = (await this.registrarDiviner?.divine([query]))?.shift()
|
|
28
|
+
if (!result) {
|
|
29
|
+
throw new Error(`Unable to resolve registrar name [${first}]`)
|
|
30
|
+
}
|
|
31
|
+
if (result && isPayloadOfSchemaTypeWithMeta(AddressSchema)(result)) {
|
|
32
|
+
const address = (result as unknown as AddressPayload).address
|
|
33
|
+
this._cache.set(identifier, address)
|
|
34
|
+
return address
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return identifier
|
|
38
|
+
}
|
|
39
|
+
}
|
package/src/index.ts
CHANGED