@xyo-network/node-wrapper 2.99.6 → 2.100.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/NodeWrapper.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { InstanceTypeCheck, ModuleIdentifier, ModuleInstance, ModuleManifestQuery, ModuleManifestQuerySchema } from '@xyo-network/module-model'\nimport { constructableModuleWrapper, ModuleWrapper } from '@xyo-network/module-wrapper'\nimport {\n isNodeInstance,\n isNodeModule,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { isPayloadOfSchemaType, WithMeta } from '@xyo-network/payload-model'\n\nconstructableModuleWrapper()\nexport class NodeWrapper<TWrappedModule extends NodeModule = NodeModule>\n extends ModuleWrapper<TWrappedModule>\n implements NodeInstance<TWrappedModule['params']>\n{\n static override instanceIdentityCheck: InstanceTypeCheck<NodeInstance> = isNodeInstance\n static override moduleIdentityCheck = isNodeModule\n static override requiredQueries = [\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n ...ModuleWrapper.requiredQueries,\n ]\n\n async attach(nameOrAddress: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n const queryPayload: NodeAttachQuery = { external, nameOrAddress, schema: NodeAttachQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))\n return payloads.pop()?.address\n }\n\n async attached(): Promise<Address[]> {\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))\n return payloads.map((p) => p.address)\n }\n\n async detach(nameOrAddress: ModuleIdentifier): Promise<Address | undefined> {\n const queryPayload: NodeDetachQuery = { nameOrAddress, schema: NodeDetachQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))\n return payloads.pop()?.address\n }\n\n override async manifest(maxDepth?: number): Promise<NodeManifestPayload> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth ? { maxDepth } : {}) }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<NodeManifestPayload>>(NodeManifestPayloadSchema))\n return payloads.pop() as NodeManifestPayload\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n const attached = await this.attached()\n return (await Promise.all(attached.map((address) => this.resolve(address)))).filter(exists)\n }\n\n async registered(): Promise<Address[]> {\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))\n return payloads.map((p) => p.address)\n }\n}\n"],"mappings":";;;;;;;;;AAAA,SAASA,cAAc;AAEvB,SAAyBC,qBAAqB;AAC9C,SAA8BC,iCAAiC;AAC/D,SAAmFC,iCAAiC;AACpH,SAASC,4BAA4BC,qBAAqB;AAC1D,SACEC,gBACAC,cAEAC,yBAEAC,uBAEAC,uBAIAC,iCACK;AACP,SAASC,6BAAuC;AAEhDC,2BAAAA;AACO,IAAMC,eAAN,MAAMA,qBACHC,cAAAA;EAaR,MAAMC,OAAOC,eAAiCC,UAAkD;AArClG;AAsCI,UAAMC,eAAgC;MAAED;MAAUD;MAAeG,QAAQC;IAAsB;AAC/F,UAAMC,YAAY,MAAM,KAAKC,UAAUJ,YAAAA,GAAeK,OAAOC,sBAAgDC,aAAAA,CAAAA;AAC7G,YAAOJ,cAASK,IAAG,MAAZL,mBAAgBM;EACzB;EAEA,MAAMC,WAA+B;AACnC,UAAMV,eAAkC;MAAEC,QAAQU;IAAwB;AAC1E,UAAMR,YAAY,MAAM,KAAKC,UAAUJ,YAAAA,GAAeK,OAAOC,sBAAgDC,aAAAA,CAAAA;AAC7G,WAAOJ,SAASS,IAAI,CAACC,MAAMA,EAAEJ,OAAO;EACtC;EAEA,MAAMK,OAAOhB,eAA+D;AAjD9E;AAkDI,UAAME,eAAgC;MAAEF;MAAeG,QAAQc;IAAsB;AACrF,UAAMZ,YAAY,MAAM,KAAKC,UAAUJ,YAAAA,GAAeK,OAAOC,sBAAgDC,aAAAA,CAAAA;AAC7G,YAAOJ,cAASK,IAAG,MAAZL,mBAAgBM;EACzB;EAEA,MAAeO,SAASC,UAAiD;AACvE,UAAMjB,eAAoC;MAAEC,QAAQiB;MAA2B,GAAID,WAAW;QAAEA;MAAS,IAAI,CAAC;IAAG;AACjH,UAAMd,YAAY,MAAM,KAAKC,UAAUJ,YAAAA,GAAeK,OAAOC,sBAAqDa,yBAAAA,CAAAA;AAClH,WAAOhB,SAASK,IAAG;EACrB;EAEA,MAAeY,iBAA4C;AACzD,UAAMV,WAAW,MAAM,KAAKA,SAAQ;AACpC,YAAQ,MAAMW,QAAQC,IAAIZ,SAASE,IAAI,CAACH,YAAY,KAAKc,QAAQd,OAAAA,CAAAA,CAAAA,GAAYJ,OAAOmB,MAAAA;EACtF;EAEA,MAAMC,aAAiC;AACrC,UAAMzB,eAAoC;MAAEC,QAAQyB;IAA0B;AAC9E,UAAMvB,YAAY,MAAM,KAAKC,UAAUJ,YAAAA,GAAeK,OAAOC,sBAAgDC,aAAAA,CAAAA;AAC7G,WAAOJ,SAASS,IAAI,CAACC,MAAMA,EAAEJ,OAAO;EACtC;AACF;AA/CUb;AAGR,cAJWD,cAIKgC,yBAAyDC;AACzE,cALWjC,cAKKkC,uBAAsBC;AACtC,cANWnC,cAMKoC,mBAAkB;EAChCpB;EACAT;EACAa;EACAW;KACG9B,cAAcmC;;AAXd,IAAMpC,cAAN;","names":["exists","AddressSchema","NodeManifestPayloadSchema","ModuleManifestQuerySchema","constructableModuleWrapper","ModuleWrapper","isNodeInstance","isNodeModule","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","isPayloadOfSchemaType","constructableModuleWrapper","NodeWrapper","ModuleWrapper","attach","nameOrAddress","external","queryPayload","schema","NodeAttachQuerySchema","payloads","sendQuery","filter","isPayloadOfSchemaType","AddressSchema","pop","address","attached","NodeAttachedQuerySchema","map","p","detach","NodeDetachQuerySchema","manifest","maxDepth","ModuleManifestQuerySchema","NodeManifestPayloadSchema","publicChildren","Promise","all","resolve","exists","registered","NodeRegisteredQuerySchema","instanceIdentityCheck","isNodeInstance","moduleIdentityCheck","isNodeModule","requiredQueries"]}
1
+ {"version":3,"sources":["../../src/NodeWrapper.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport {\n InstanceTypeCheck,\n ModuleIdentifier,\n ModuleInstance,\n ModuleManifestQuery,\n ModuleManifestQuerySchema,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { constructableModuleWrapper, ModuleWrapper } from '@xyo-network/module-wrapper'\nimport {\n ChildCertification,\n ChildCertificationFields,\n ChildCertificationSchema,\n isNodeInstance,\n isNodeModule,\n NodeAttachedQuery,\n NodeAttachedQuerySchema,\n NodeAttachQuery,\n NodeAttachQuerySchema,\n NodeCertifyQuery,\n NodeCertifyQuerySchema,\n NodeDetachQuery,\n NodeDetachQuerySchema,\n NodeInstance,\n NodeModule,\n NodeRegisteredQuery,\n NodeRegisteredQuerySchema,\n} from '@xyo-network/node-model'\nimport { isPayloadOfSchemaType, WithMeta } from '@xyo-network/payload-model'\n\nconstructableModuleWrapper()\nexport class NodeWrapper<TWrappedModule extends NodeModule = NodeModule>\n extends ModuleWrapper<TWrappedModule>\n implements NodeInstance<TWrappedModule['params']>\n{\n static override instanceIdentityCheck: InstanceTypeCheck<NodeInstance> = isNodeInstance\n static override moduleIdentityCheck = isNodeModule\n static override requiredQueries = [\n NodeAttachedQuerySchema,\n NodeAttachQuerySchema,\n NodeDetachQuerySchema,\n NodeRegisteredQuerySchema,\n ...ModuleWrapper.requiredQueries,\n ]\n\n async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))\n return payloads.pop()?.address\n }\n\n async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async attached(): Promise<Address[]> {\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))\n return payloads.map((p) => p.address)\n }\n\n async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<ChildCertification>>(ChildCertificationSchema))\n return payloads.pop()\n }\n\n async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {\n const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n async detach(id: ModuleIdentifier): Promise<Address | undefined> {\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))\n return payloads.pop()?.address\n }\n\n async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n\n override async manifest(maxDepth?: number): Promise<NodeManifestPayload> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth ? { maxDepth } : {}) }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<NodeManifestPayload>>(NodeManifestPayloadSchema))\n return payloads.pop() as NodeManifestPayload\n }\n\n override async publicChildren(): Promise<ModuleInstance[]> {\n const attached = await this.attached()\n return (await Promise.all(attached.map((address) => this.resolve(address)))).filter(exists)\n }\n\n async registered(): Promise<Address[]> {\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))\n return payloads.map((p) => p.address)\n }\n\n async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {\n const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }\n return await this.sendQueryRaw(queryPayload, [], account)\n }\n}\n"],"mappings":"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","names":["exists","AddressSchema","NodeManifestPayloadSchema","ModuleManifestQuerySchema","constructableModuleWrapper","ModuleWrapper","ChildCertificationSchema","isNodeInstance","isNodeModule","NodeAttachedQuerySchema","NodeAttachQuerySchema","NodeCertifyQuerySchema","NodeDetachQuerySchema","NodeRegisteredQuerySchema","isPayloadOfSchemaType","constructableModuleWrapper","NodeWrapper","ModuleWrapper","attach","id","external","queryPayload","schema","NodeAttachQuerySchema","payloads","sendQuery","filter","isPayloadOfSchemaType","AddressSchema","pop","address","attachQuery","account","sendQueryRaw","attached","NodeAttachedQuerySchema","map","p","attachedQuery","certify","NodeCertifyQuerySchema","ChildCertificationSchema","certifyQuery","detach","NodeDetachQuerySchema","detachQuery","manifest","maxDepth","ModuleManifestQuerySchema","NodeManifestPayloadSchema","publicChildren","Promise","all","resolve","exists","registered","NodeRegisteredQuerySchema","registeredQuery","instanceIdentityCheck","isNodeInstance","moduleIdentityCheck","isNodeModule","requiredQueries"]}
package/package.json CHANGED
@@ -12,12 +12,13 @@
12
12
  "dependencies": {
13
13
  "@xylabs/exists": "^3.3.2",
14
14
  "@xylabs/hex": "^3.3.2",
15
- "@xyo-network/address-payload-plugin": "~2.99.6",
16
- "@xyo-network/manifest-model": "~2.99.6",
17
- "@xyo-network/module-model": "~2.99.6",
18
- "@xyo-network/module-wrapper": "~2.99.6",
19
- "@xyo-network/node-model": "~2.99.6",
20
- "@xyo-network/payload-model": "~2.99.6"
15
+ "@xyo-network/account-model": "~2.100.0",
16
+ "@xyo-network/address-payload-plugin": "~2.100.0",
17
+ "@xyo-network/manifest-model": "~2.100.0",
18
+ "@xyo-network/module-model": "~2.100.0",
19
+ "@xyo-network/module-wrapper": "~2.100.0",
20
+ "@xyo-network/node-model": "~2.100.0",
21
+ "@xyo-network/payload-model": "~2.100.0"
21
22
  },
22
23
  "devDependencies": {
23
24
  "@xylabs/ts-scripts-yarn3": "^3.10.0",
@@ -63,6 +64,6 @@
63
64
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
64
65
  },
65
66
  "sideEffects": false,
66
- "version": "2.99.6",
67
+ "version": "2.100.0",
67
68
  "type": "module"
68
69
  }
@@ -1,16 +1,29 @@
1
1
  import { exists } from '@xylabs/exists'
2
2
  import { Address } from '@xylabs/hex'
3
+ import { AccountInstance } from '@xyo-network/account-model'
3
4
  import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
4
5
  import { NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'
5
- import { InstanceTypeCheck, ModuleIdentifier, ModuleInstance, ModuleManifestQuery, ModuleManifestQuerySchema } from '@xyo-network/module-model'
6
+ import {
7
+ InstanceTypeCheck,
8
+ ModuleIdentifier,
9
+ ModuleInstance,
10
+ ModuleManifestQuery,
11
+ ModuleManifestQuerySchema,
12
+ ModuleQueryResult,
13
+ } from '@xyo-network/module-model'
6
14
  import { constructableModuleWrapper, ModuleWrapper } from '@xyo-network/module-wrapper'
7
15
  import {
16
+ ChildCertification,
17
+ ChildCertificationFields,
18
+ ChildCertificationSchema,
8
19
  isNodeInstance,
9
20
  isNodeModule,
10
21
  NodeAttachedQuery,
11
22
  NodeAttachedQuerySchema,
12
23
  NodeAttachQuery,
13
24
  NodeAttachQuerySchema,
25
+ NodeCertifyQuery,
26
+ NodeCertifyQuerySchema,
14
27
  NodeDetachQuery,
15
28
  NodeDetachQuerySchema,
16
29
  NodeInstance,
@@ -35,24 +48,50 @@ export class NodeWrapper<TWrappedModule extends NodeModule = NodeModule>
35
48
  ...ModuleWrapper.requiredQueries,
36
49
  ]
37
50
 
38
- async attach(nameOrAddress: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {
39
- const queryPayload: NodeAttachQuery = { external, nameOrAddress, schema: NodeAttachQuerySchema }
51
+ async attach(id: ModuleIdentifier, external?: boolean): Promise<Address | undefined> {
52
+ const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }
40
53
  const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))
41
54
  return payloads.pop()?.address
42
55
  }
43
56
 
57
+ async attachQuery(id: ModuleIdentifier, external?: boolean, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {
58
+ const queryPayload: NodeAttachQuery = { external, id, schema: NodeAttachQuerySchema }
59
+ return await this.sendQueryRaw(queryPayload, [], account)
60
+ }
61
+
44
62
  async attached(): Promise<Address[]> {
45
63
  const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }
46
64
  const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))
47
65
  return payloads.map((p) => p.address)
48
66
  }
49
67
 
50
- async detach(nameOrAddress: ModuleIdentifier): Promise<Address | undefined> {
51
- const queryPayload: NodeDetachQuery = { nameOrAddress, schema: NodeDetachQuerySchema }
68
+ async attachedQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {
69
+ const queryPayload: NodeAttachedQuery = { schema: NodeAttachedQuerySchema }
70
+ return await this.sendQueryRaw(queryPayload, [], account)
71
+ }
72
+
73
+ async certify(id: ModuleIdentifier): Promise<ChildCertificationFields | undefined> {
74
+ const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }
75
+ const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<ChildCertification>>(ChildCertificationSchema))
76
+ return payloads.pop()
77
+ }
78
+
79
+ async certifyQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<ChildCertification>> {
80
+ const queryPayload: NodeCertifyQuery = { id, schema: NodeCertifyQuerySchema }
81
+ return await this.sendQueryRaw(queryPayload, [], account)
82
+ }
83
+
84
+ async detach(id: ModuleIdentifier): Promise<Address | undefined> {
85
+ const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }
52
86
  const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))
53
87
  return payloads.pop()?.address
54
88
  }
55
89
 
90
+ async detachQuery(id: ModuleIdentifier, account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {
91
+ const queryPayload: NodeDetachQuery = { id, schema: NodeDetachQuerySchema }
92
+ return await this.sendQueryRaw(queryPayload, [], account)
93
+ }
94
+
56
95
  override async manifest(maxDepth?: number): Promise<NodeManifestPayload> {
57
96
  const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth ? { maxDepth } : {}) }
58
97
  const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<NodeManifestPayload>>(NodeManifestPayloadSchema))
@@ -69,4 +108,9 @@ export class NodeWrapper<TWrappedModule extends NodeModule = NodeModule>
69
108
  const payloads = (await this.sendQuery(queryPayload)).filter(isPayloadOfSchemaType<WithMeta<AddressPayload>>(AddressSchema))
70
109
  return payloads.map((p) => p.address)
71
110
  }
111
+
112
+ async registeredQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPayload>> {
113
+ const queryPayload: NodeRegisteredQuery = { schema: NodeRegisteredQuerySchema }
114
+ return await this.sendQueryRaw(queryPayload, [], account)
115
+ }
72
116
  }