@xyo-network/module-wrapper 2.107.5 → 2.108.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 (51) hide show
  1. package/dist/browser/ModuleWrapper.d.cts +16 -16
  2. package/dist/browser/ModuleWrapper.d.cts.map +1 -1
  3. package/dist/browser/ModuleWrapper.d.mts +16 -16
  4. package/dist/browser/ModuleWrapper.d.mts.map +1 -1
  5. package/dist/browser/ModuleWrapper.d.ts +16 -16
  6. package/dist/browser/ModuleWrapper.d.ts.map +1 -1
  7. package/dist/browser/index.cjs +47 -47
  8. package/dist/browser/index.cjs.map +1 -1
  9. package/dist/browser/index.js +47 -47
  10. package/dist/browser/index.js.map +1 -1
  11. package/dist/browser/models.d.cts +1 -1
  12. package/dist/browser/models.d.cts.map +1 -1
  13. package/dist/browser/models.d.mts +1 -1
  14. package/dist/browser/models.d.mts.map +1 -1
  15. package/dist/browser/models.d.ts +1 -1
  16. package/dist/browser/models.d.ts.map +1 -1
  17. package/dist/neutral/ModuleWrapper.d.cts +16 -16
  18. package/dist/neutral/ModuleWrapper.d.cts.map +1 -1
  19. package/dist/neutral/ModuleWrapper.d.mts +16 -16
  20. package/dist/neutral/ModuleWrapper.d.mts.map +1 -1
  21. package/dist/neutral/ModuleWrapper.d.ts +16 -16
  22. package/dist/neutral/ModuleWrapper.d.ts.map +1 -1
  23. package/dist/neutral/index.cjs +47 -47
  24. package/dist/neutral/index.cjs.map +1 -1
  25. package/dist/neutral/index.js +47 -47
  26. package/dist/neutral/index.js.map +1 -1
  27. package/dist/neutral/models.d.cts +1 -1
  28. package/dist/neutral/models.d.cts.map +1 -1
  29. package/dist/neutral/models.d.mts +1 -1
  30. package/dist/neutral/models.d.mts.map +1 -1
  31. package/dist/neutral/models.d.ts +1 -1
  32. package/dist/neutral/models.d.ts.map +1 -1
  33. package/dist/node/ModuleWrapper.d.cts +16 -16
  34. package/dist/node/ModuleWrapper.d.cts.map +1 -1
  35. package/dist/node/ModuleWrapper.d.mts +16 -16
  36. package/dist/node/ModuleWrapper.d.mts.map +1 -1
  37. package/dist/node/ModuleWrapper.d.ts +16 -16
  38. package/dist/node/ModuleWrapper.d.ts.map +1 -1
  39. package/dist/node/index.cjs +48 -48
  40. package/dist/node/index.cjs.map +1 -1
  41. package/dist/node/index.js +48 -48
  42. package/dist/node/index.js.map +1 -1
  43. package/dist/node/models.d.cts +1 -1
  44. package/dist/node/models.d.cts.map +1 -1
  45. package/dist/node/models.d.mts +1 -1
  46. package/dist/node/models.d.mts.map +1 -1
  47. package/dist/node/models.d.ts +1 -1
  48. package/dist/node/models.d.ts.map +1 -1
  49. package/package.json +21 -21
  50. package/src/ModuleWrapper.ts +58 -61
  51. package/src/models.ts +1 -1
@@ -47,9 +47,9 @@ var _ModuleWrapper = class _ModuleWrapper extends Base {
47
47
  ...params
48
48
  };
49
49
  const mutatedParams = {
50
- ...params.module.params,
50
+ ...params.mod.params,
51
51
  config: {
52
- ...params.module.params.config
52
+ ...params.mod.params.config
53
53
  }
54
54
  };
55
55
  super(mutatedParams);
@@ -62,45 +62,45 @@ var _ModuleWrapper = class _ModuleWrapper extends Base {
62
62
  return this.wrapperParams.additionalSigners ?? [];
63
63
  }
64
64
  get address() {
65
- return this.module.address;
65
+ return this.mod.address;
66
66
  }
67
67
  get config() {
68
- return this.module.config;
68
+ return this.mod.config;
69
69
  }
70
70
  get downResolver() {
71
- const instance = asAttachableModuleInstance(this.module);
71
+ const instance = asAttachableModuleInstance(this.mod);
72
72
  if (instance) {
73
73
  return instance.downResolver;
74
74
  }
75
75
  throw new Error("Unsupported");
76
76
  }
77
77
  get id() {
78
- return this.module.id;
78
+ return this.mod.id;
79
79
  }
80
- get modName() {
81
- return this.module.modName;
80
+ get mod() {
81
+ return this.wrapperParams.mod;
82
82
  }
83
- get module() {
84
- return this.wrapperParams.module;
83
+ get modName() {
84
+ return this.mod.modName;
85
85
  }
86
86
  get priority() {
87
87
  return ObjectResolverPriority.Low;
88
88
  }
89
89
  get privateResolver() {
90
- const instance = asAttachableModuleInstance(this.module);
90
+ const instance = asAttachableModuleInstance(this.mod);
91
91
  if (instance) {
92
92
  return instance.privateResolver;
93
93
  }
94
94
  throw new Error("Unsupported");
95
95
  }
96
96
  get queries() {
97
- return this.module.queries;
97
+ return this.mod.queries;
98
98
  }
99
99
  get status() {
100
100
  return this._status;
101
101
  }
102
102
  get upResolver() {
103
- const instance = asAttachableModuleInstance(this.module);
103
+ const instance = asAttachableModuleInstance(this.mod);
104
104
  if (instance) {
105
105
  return instance.upResolver;
106
106
  }
@@ -111,47 +111,47 @@ var _ModuleWrapper = class _ModuleWrapper extends Base {
111
111
  this._status = value;
112
112
  }
113
113
  }
114
- static canWrap(module) {
115
- return !!module && this.moduleIdentityCheck(module);
114
+ static canWrap(mod) {
115
+ return !!mod && this.moduleIdentityCheck(mod);
116
116
  }
117
- static hasRequiredQueries(module) {
118
- return this.missingRequiredQueries(module).length === 0;
117
+ static hasRequiredQueries(mod) {
118
+ return this.missingRequiredQueries(mod).length === 0;
119
119
  }
120
120
  static is(wrapper) {
121
121
  return wrapper instanceof this;
122
122
  }
123
- static missingRequiredQueries(module) {
124
- const moduleQueries = module.queries;
123
+ static missingRequiredQueries(mod) {
124
+ const modQueries = mod.queries;
125
125
  return compact(this.requiredQueries.map((query) => {
126
- return moduleQueries.includes(query) ? null : query;
126
+ return modQueries.includes(query) ? null : query;
127
127
  }));
128
128
  }
129
- static tryWrap(module, account, checkIdentity = true) {
129
+ static tryWrap(mod, account, checkIdentity = true) {
130
130
  var _a;
131
- if (!checkIdentity || this.canWrap(module)) {
131
+ if (!checkIdentity || this.canWrap(mod)) {
132
132
  if (!account) {
133
133
  (_a = this.defaultLogger) == null ? void 0 : _a.info("Anonymous Module Wrapper Created");
134
134
  }
135
135
  return new this({
136
136
  account: account ?? Account.randomSync(),
137
- module
137
+ mod
138
138
  });
139
139
  }
140
140
  }
141
- static with(module, closure) {
142
- return this.is(module) ? closure(module) : void 0;
141
+ static with(mod, closure) {
142
+ return this.is(mod) ? closure(mod) : void 0;
143
143
  }
144
- static wrap(module, account, checkIdentity = true) {
145
- assertEx(!checkIdentity || module && this.moduleIdentityCheck(module), () => {
144
+ static wrap(mod, account, checkIdentity = true) {
145
+ assertEx(!checkIdentity || mod && this.moduleIdentityCheck(mod), () => {
146
146
  var _a;
147
- return `Passed module failed identity check: ${(_a = module == null ? void 0 : module.config) == null ? void 0 : _a.schema}`;
147
+ return `Passed mod failed identity check: ${(_a = mod == null ? void 0 : mod.config) == null ? void 0 : _a.schema}`;
148
148
  });
149
- return assertEx(this.tryWrap(module, account ?? Account.randomSync(), checkIdentity), () => "Unable to wrap module as ModuleWrapper");
149
+ return assertEx(this.tryWrap(mod, account ?? Account.randomSync(), checkIdentity), () => "Unable to wrap mod as ModuleWrapper");
150
150
  }
151
- addParent(module) {
152
- const existingEntry = this._parents.find((parent) => parent.address === module.address);
151
+ addParent(mod) {
152
+ const existingEntry = this._parents.find((parent) => parent.address === mod.address);
153
153
  if (!existingEntry) {
154
- this._parents.push(module);
154
+ this._parents.push(mod);
155
155
  }
156
156
  }
157
157
  async addressPreviousHash() {
@@ -161,16 +161,16 @@ var _ModuleWrapper = class _ModuleWrapper extends Base {
161
161
  return assertEx((await this.sendQuery(queryPayload)).find((payload) => payload.schema === AddressPreviousHashSchema), () => "Result did not include correct payload");
162
162
  }
163
163
  clearListeners(eventNames) {
164
- return this.module.clearListeners(eventNames);
164
+ return this.mod.clearListeners(eventNames);
165
165
  }
166
166
  emit(eventName, eventArgs) {
167
- return this.module.emit(eventName, eventArgs);
167
+ return this.mod.emit(eventName, eventArgs);
168
168
  }
169
169
  emitSerial(eventName, eventArgs) {
170
- return this.module.emitSerial(eventName, eventArgs);
170
+ return this.mod.emitSerial(eventName, eventArgs);
171
171
  }
172
172
  listenerCount(eventNames) {
173
- return this.module.listenerCount(eventNames);
173
+ return this.mod.listenerCount(eventNames);
174
174
  }
175
175
  async manifest(maxDepth) {
176
176
  const queryPayload = {
@@ -197,19 +197,19 @@ var _ModuleWrapper = class _ModuleWrapper extends Base {
197
197
  return await this.sendQuery(queryPayload);
198
198
  }
199
199
  off(eventNames, listener) {
200
- return this.module.off(eventNames, listener);
200
+ return this.mod.off(eventNames, listener);
201
201
  }
202
202
  offAny(listener) {
203
- return this.module.offAny(listener);
203
+ return this.mod.offAny(listener);
204
204
  }
205
205
  on(eventNames, listener) {
206
- return this.module.on(eventNames, listener);
206
+ return this.mod.on(eventNames, listener);
207
207
  }
208
208
  onAny(listener) {
209
- return this.module.onAny(listener);
209
+ return this.mod.onAny(listener);
210
210
  }
211
211
  once(eventName, listener) {
212
- return this.module.once(eventName, listener);
212
+ return this.mod.once(eventName, listener);
213
213
  }
214
214
  parents() {
215
215
  return this._parents;
@@ -227,28 +227,28 @@ var _ModuleWrapper = class _ModuleWrapper extends Base {
227
227
  return await this.sendQueryRaw(queryPayload, void 0, account);
228
228
  }
229
229
  async privateChildren() {
230
- if (isModuleInstance(this.module)) {
231
- return await this.module.privateChildren();
230
+ if (isModuleInstance(this.mod)) {
231
+ return await this.mod.privateChildren();
232
232
  }
233
233
  return [];
234
234
  }
235
235
  async publicChildren() {
236
- if (isModuleInstance(this.module)) {
237
- return await this.module.publicChildren();
236
+ if (isModuleInstance(this.mod)) {
237
+ return await this.mod.publicChildren();
238
238
  }
239
239
  return [];
240
240
  }
241
241
  async query(query, payloads) {
242
- return await this.module.query(query, payloads);
242
+ return await this.mod.query(query, payloads);
243
243
  }
244
244
  queryable(query, payloads) {
245
- return this.module.queryable(query, payloads);
245
+ return this.mod.queryable(query, payloads);
246
246
  }
247
247
  removeParent(address) {
248
248
  this._parents = this._parents.filter((item) => item.address !== address);
249
249
  }
250
250
  async resolve(idOrFilter = "*", options) {
251
- const instance = asModuleInstance(this.module);
251
+ const instance = asModuleInstance(this.mod);
252
252
  if (instance == null ? void 0 : instance["resolve"]) {
253
253
  if (idOrFilter === "*") {
254
254
  return await instance.resolve("*", options);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ModuleWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { Logger } from '@xylabs/logger'\nimport { Base } from '@xylabs/object'\nimport { Promisable, PromiseEx } from '@xylabs/promise'\nimport { Account } from '@xyo-network/account'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload } from '@xyo-network/manifest-model'\nimport { EventAnyListener, EventListener } from '@xyo-network/module-events'\nimport {\n AddressPreviousHashPayload,\n AddressPreviousHashSchema,\n asAttachableModuleInstance,\n asModuleInstance,\n AttachableModuleInstance,\n duplicateModules,\n InstanceTypeCheck,\n isModule,\n isModuleInstance,\n Module,\n ModuleAddressQuery,\n ModuleAddressQuerySchema,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleManifestQuery,\n ModuleManifestQuerySchema,\n ModuleQueryResult,\n ModuleResolverInstance,\n ModuleStateQuery,\n ModuleStateQuerySchema,\n ModuleStatus,\n ModuleTypeCheck,\n ObjectResolverPriority,\n} from '@xyo-network/module-model'\nimport { ModuleError, ModuleErrorSchema, Payload, Query, WithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ModuleWrapperParams } from './models'\n\nexport type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {\n defaultLogger?: Logger\n instanceIdentityCheck: InstanceTypeCheck\n moduleIdentityCheck: ModuleTypeCheck\n requiredQueries: string[]\n new (params: ModuleWrapperParams<TWrapper['module']>): TWrapper\n\n canWrap(module: Module | undefined): boolean\n\n is<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper?: any,\n ): wrapper is TModuleWrapper\n\n /** @deprecated pass an account for second parameter */\n tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n module: Module | undefined,\n ): TModuleWrapper | undefined\n tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n module: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper | undefined\n\n /** @deprecated pass an account for second parameter */\n wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, module: Module | undefined): TModuleWrapper\n wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n module: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper\n}\n\nexport function constructableModuleWrapper<TWrapper extends ModuleWrapper>() {\n return <U extends ConstructableModuleWrapper<TWrapper>>(constructor: U) => {\n constructor\n }\n}\n\n@constructableModuleWrapper()\nexport class ModuleWrapper<TWrappedModule extends Module = Module>\n extends Base<Exclude<Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> }, undefined>>\n implements AttachableModuleInstance<TWrappedModule['params'], TWrappedModule['eventData']>\n{\n static instanceIdentityCheck: InstanceTypeCheck = isModuleInstance\n static moduleIdentityCheck: ModuleTypeCheck = isModule\n static requiredQueries: string[] = [ModuleStateQuerySchema]\n\n eventData = {} as TWrappedModule['eventData']\n\n protected readonly cachedCalls = new LRUCache<string, Payload[]>({ max: 1000, ttl: 1000 * 60, ttlAutopurge: true })\n\n protected readonly wrapperParams: ModuleWrapperParams<TWrappedModule>\n\n private _parents: ModuleInstance[] = []\n private _status: ModuleStatus = 'wrapped'\n\n constructor(params: ModuleWrapperParams<TWrappedModule>) {\n const mutatedWrapperParams = { ...params } as ModuleWrapperParams<TWrappedModule>\n const mutatedParams = { ...params.module.params, config: { ...params.module.params.config } } as Exclude<\n Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> },\n undefined\n >\n\n //set the root params to the wrapped module params\n super(mutatedParams)\n this.wrapperParams = mutatedWrapperParams\n }\n\n get account() {\n return this.wrapperParams.account\n }\n\n get additionalSigners() {\n return this.wrapperParams.additionalSigners ?? []\n }\n\n get address() {\n return this.module.address\n }\n\n get config() {\n return this.module.config as Exclude<TWrappedModule['params']['config'], undefined>\n }\n\n get downResolver(): ModuleResolverInstance {\n //Should we be allowing this?\n const instance: AttachableModuleInstance | undefined = asAttachableModuleInstance(this.module)\n if (instance) {\n return instance.downResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n get id() {\n return this.module.id\n }\n\n get modName() {\n return this.module.modName\n }\n\n get module() {\n return this.wrapperParams.module\n }\n\n get priority() {\n return ObjectResolverPriority.Low\n }\n\n get privateResolver(): ModuleResolverInstance {\n //Should we be allowing this?\n const instance = asAttachableModuleInstance(this.module)\n if (instance) {\n return instance.privateResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n get queries(): string[] {\n return this.module.queries\n }\n\n get status() {\n return this._status\n }\n\n get upResolver(): ModuleResolverInstance {\n //Should we be allowing this?\n const instance = asAttachableModuleInstance(this.module)\n if (instance) {\n return instance.upResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n protected set status(value: ModuleStatus) {\n if (this._status !== 'dead') {\n this._status = value\n }\n }\n\n static canWrap(module?: Module) {\n return !!module && this.moduleIdentityCheck(module)\n }\n\n static hasRequiredQueries(module: Module) {\n return this.missingRequiredQueries(module).length === 0\n }\n\n static is<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper: any,\n ): wrapper is TModuleWrapper {\n return wrapper instanceof this\n }\n\n static missingRequiredQueries(module: Module): string[] {\n const moduleQueries = module.queries\n return compact(\n this.requiredQueries.map((query) => {\n return moduleQueries.includes(query) ? null : query\n }),\n )\n }\n\n /** @deprecated pass an account for second parameter */\n static tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n module: Module | undefined,\n ): TModuleWrapper | undefined\n static tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n module: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper | undefined\n static tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n module: Module | undefined,\n account?: AccountInstance,\n checkIdentity = true,\n ): TModuleWrapper | undefined {\n if (!checkIdentity || this.canWrap(module)) {\n if (!account) {\n this.defaultLogger?.info('Anonymous Module Wrapper Created')\n }\n return new this({ account: account ?? Account.randomSync(), module: module as TModuleWrapper['module'] })\n }\n }\n\n static with<TModuleWrapper extends ModuleWrapper, R extends Promisable<void> = void>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n module: any,\n\n closure: (module: TModuleWrapper) => R,\n ): R | undefined {\n return this.is(module) ? closure(module) : undefined\n }\n\n /** @deprecated pass an account for second parameter */\n static wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, module: Module | undefined): TModuleWrapper\n static wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n module: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper\n static wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n module: Module | undefined,\n account?: AccountInstance,\n checkIdentity = true,\n ): TModuleWrapper {\n assertEx(!checkIdentity || (module && this.moduleIdentityCheck(module)), () => `Passed module failed identity check: ${module?.config?.schema}`)\n return assertEx(this.tryWrap(module, account ?? Account.randomSync(), checkIdentity), () => 'Unable to wrap module as ModuleWrapper')\n }\n\n addParent(module: ModuleInstance) {\n const existingEntry = this._parents.find((parent) => parent.address === module.address)\n if (!existingEntry) {\n this._parents.push(module)\n }\n }\n\n async addressPreviousHash(): Promise<AddressPreviousHashPayload> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return assertEx(\n (await this.sendQuery(queryPayload)).find((payload) => payload.schema === AddressPreviousHashSchema) as WithMeta<AddressPreviousHashPayload>,\n () => 'Result did not include correct payload',\n )\n }\n\n clearListeners(eventNames: Parameters<TWrappedModule['clearListeners']>[0]) {\n return this.module.clearListeners(eventNames)\n }\n\n emit(eventName: Parameters<TWrappedModule['emit']>[0], eventArgs: Parameters<TWrappedModule['emit']>[1]) {\n return this.module.emit(eventName, eventArgs)\n }\n\n emitSerial(eventName: Parameters<TWrappedModule['emitSerial']>[0], eventArgs: Parameters<TWrappedModule['emitSerial']>[1]) {\n return this.module.emitSerial(eventName, eventArgs)\n }\n\n listenerCount(eventNames: Parameters<TWrappedModule['listenerCount']>[0]) {\n return this.module.listenerCount(eventNames)\n }\n\n async manifest(maxDepth?: number): Promise<ModuleManifestPayload> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return (await this.sendQuery(queryPayload))[0] as WithMeta<ModuleManifestPayload>\n }\n\n async manifestQuery(account: AccountInstance, maxDepth?: number): Promise<ModuleQueryResult<ModuleManifestPayload>> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async moduleAddress(): Promise<AddressPreviousHashPayload[]> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return (await this.sendQuery(queryPayload)) as WithMeta<AddressPreviousHashPayload>[]\n }\n\n off<TEventName extends keyof TWrappedModule['eventData']>(\n eventNames: TEventName,\n listener: EventListener<TWrappedModule['eventData'][TEventName]>,\n ) {\n return this.module.off(eventNames, listener)\n }\n\n offAny(listener: EventAnyListener) {\n return this.module.offAny(listener)\n }\n\n on<TEventName extends keyof TWrappedModule['eventData']>(eventNames: TEventName, listener: EventListener<TWrappedModule['eventData'][TEventName]>) {\n return this.module.on(eventNames, listener)\n }\n\n onAny(listener: EventAnyListener) {\n return this.module.onAny(listener)\n }\n\n once<TEventName extends keyof TWrappedModule['eventData']>(\n eventName: TEventName,\n listener: EventListener<TWrappedModule['eventData'][TEventName]>,\n ) {\n return this.module.once(eventName, listener)\n }\n\n parents(): Promisable<ModuleInstance[]> {\n return this._parents\n }\n\n async previousHash(): Promise<string | undefined> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return ((await this.sendQuery(queryPayload)).pop() as WithMeta<AddressPreviousHashPayload>).previousHash\n }\n\n async previousHashQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPreviousHashPayload>> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async privateChildren(): Promise<ModuleInstance[]> {\n if (isModuleInstance(this.module)) {\n return await this.module.privateChildren()\n }\n return []\n }\n\n async publicChildren(): Promise<ModuleInstance[]> {\n if (isModuleInstance(this.module)) {\n return await this.module.publicChildren()\n }\n return []\n }\n\n async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {\n return await this.module.query(query, payloads)\n }\n\n queryable<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]) {\n return this.module.queryable(query, payloads)\n }\n\n removeParent(address: Address) {\n this._parents = this._parents.filter((item) => item.address !== address)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n async resolve<T extends ModuleInstance = ModuleInstance>(): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T> | undefined,\n ): Promise<ModuleInstance>\n /** @deprecated use '*' if trying to resolve all */\n async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleIdentifier | ModuleFilter<T> = '*',\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const instance = asModuleInstance(this.module)\n if (instance?.['resolve']) {\n if (idOrFilter === '*') {\n return await instance.resolve<T>('*', options)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return await instance.resolve<T>(idOrFilter, options)\n }\n default: {\n return await instance.resolve<T>(idOrFilter, options)\n }\n }\n }\n return typeof idOrFilter === 'string' && idOrFilter !== '*' ? undefined : []\n }\n\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n _options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n if (id === '*') return await Promise.resolve([])\n }\n\n async siblings(): Promise<ModuleInstance[]> {\n return (await Promise.all((await this.parents()).map((parent) => parent.publicChildren()))).flat().filter(duplicateModules)\n }\n\n async state(): Promise<Payload[]> {\n const cachedResult = this.cachedCalls.get('state')\n if (cachedResult) {\n return cachedResult\n }\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n const result = await this.sendQuery(queryPayload)\n this.cachedCalls.set('state', result)\n return result\n }\n\n async stateQuery(_account: AccountInstance): Promise<ModuleQueryResult> {\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n return await this.sendQueryRaw(queryPayload)\n }\n\n protected bindQuery<T extends Query>(\n query: T,\n payloads?: Payload[],\n account = this.account,\n additionalSigners = this.additionalSigners,\n ): PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const promise = new PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance>(async (resolve) => {\n const result = await this.bindQueryInternal(query, payloads, account, additionalSigners)\n resolve?.(result)\n return result\n }, account)\n return promise\n }\n\n protected async bindQueryInternal<T extends Query>(\n query: T,\n payloads?: Payload[],\n account = this.account,\n additionalSigners = this.additionalSigners,\n ): Promise<[QueryBoundWitness, Payload[], ModuleError[]]> {\n const builder = await new QueryBoundWitnessBuilder().payloads(payloads).query(query)\n const accounts = [account, ...additionalSigners].filter(exists)\n const result = await (account ? builder.signers(accounts) : builder).build()\n return result\n }\n\n protected async filterErrors(result: ModuleQueryResult): Promise<ModuleError[]> {\n const wrapper = await BoundWitnessWrapper.wrap(result[0], result[1])\n return wrapper.payloadsBySchema<WithMeta<ModuleError>>(ModuleErrorSchema)\n }\n\n protected async sendQuery<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(\n queryPayload: T,\n payloads?: P[],\n ): Promise<WithMeta<R>[]> {\n const queryResults = await this.sendQueryRaw(queryPayload, payloads)\n const [, resultPayloads, errors] = queryResults\n\n /* TODO: Figure out what to do with the returning BW. Should we store them in a queue in case the caller wants to see them? */\n\n if (errors && errors.length > 0) {\n /* TODO: Figure out how to rollup multiple Errors */\n throw errors[0]\n }\n\n return resultPayloads as WithMeta<R>[]\n }\n\n protected async sendQueryRaw<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(\n queryPayload: T,\n payloads?: P[],\n account?: AccountInstance,\n ): Promise<ModuleQueryResult<R>> {\n // Bind them\n const query = await this.bindQuery(queryPayload, payloads, account)\n\n // Send them off\n return (await this.query(query[0], query[1])) as ModuleQueryResult<R>\n }\n}\n"],"mappings":"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","names":["assertEx","exists","compact","Base","PromiseEx","Account","QueryBoundWitnessBuilder","BoundWitnessWrapper","AddressPreviousHashSchema","asAttachableModuleInstance","asModuleInstance","duplicateModules","isModule","isModuleInstance","ModuleAddressQuerySchema","ModuleManifestQuerySchema","ModuleStateQuerySchema","ObjectResolverPriority","ModuleErrorSchema","LRUCache","constructableModuleWrapper","constructor","ModuleWrapper","Base","eventData","cachedCalls","LRUCache","max","ttl","ttlAutopurge","wrapperParams","_parents","_status","params","mutatedWrapperParams","mutatedParams","module","config","account","additionalSigners","address","downResolver","instance","asAttachableModuleInstance","Error","id","modName","priority","ObjectResolverPriority","Low","privateResolver","queries","status","upResolver","value","canWrap","moduleIdentityCheck","hasRequiredQueries","missingRequiredQueries","length","is","wrapper","moduleQueries","compact","requiredQueries","map","query","includes","tryWrap","checkIdentity","defaultLogger","info","Account","randomSync","with","closure","undefined","wrap","assertEx","schema","addParent","existingEntry","find","parent","push","addressPreviousHash","queryPayload","ModuleAddressQuerySchema","sendQuery","payload","AddressPreviousHashSchema","clearListeners","eventNames","emit","eventName","eventArgs","emitSerial","listenerCount","manifest","maxDepth","ModuleManifestQuerySchema","manifestQuery","sendQueryRaw","moduleAddress","off","listener","offAny","on","onAny","once","parents","previousHash","pop","previousHashQuery","privateChildren","isModuleInstance","publicChildren","payloads","queryable","removeParent","filter","item","resolve","idOrFilter","options","asModuleInstance","resolvePrivate","_options","Promise","siblings","all","flat","duplicateModules","state","cachedResult","get","ModuleStateQuerySchema","result","set","stateQuery","_account","bindQuery","promise","PromiseEx","bindQueryInternal","builder","QueryBoundWitnessBuilder","accounts","exists","signers","build","filterErrors","BoundWitnessWrapper","payloadsBySchema","ModuleErrorSchema","queryResults","resultPayloads","errors","instanceIdentityCheck","isModule"]}
1
+ {"version":3,"sources":["../../src/ModuleWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { Logger } from '@xylabs/logger'\nimport { Base } from '@xylabs/object'\nimport { Promisable, PromiseEx } from '@xylabs/promise'\nimport { Account } from '@xyo-network/account'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { ModuleManifestPayload } from '@xyo-network/manifest-model'\nimport { EventAnyListener, EventListener } from '@xyo-network/module-events'\nimport {\n AddressPreviousHashPayload,\n AddressPreviousHashSchema,\n asAttachableModuleInstance,\n asModuleInstance,\n AttachableModuleInstance,\n duplicateModules,\n InstanceTypeCheck,\n isModule,\n isModuleInstance,\n Module,\n ModuleAddressQuery,\n ModuleAddressQuerySchema,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleIdentifier,\n ModuleInstance,\n ModuleManifestQuery,\n ModuleManifestQuerySchema,\n ModuleQueryResult,\n ModuleResolverInstance,\n ModuleStateQuery,\n ModuleStateQuerySchema,\n ModuleStatus,\n ModuleTypeCheck,\n ObjectResolverPriority,\n} from '@xyo-network/module-model'\nimport { ModuleError, ModuleErrorSchema, Payload, Query, WithMeta } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ModuleWrapperParams } from './models'\n\nexport type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {\n defaultLogger?: Logger\n instanceIdentityCheck: InstanceTypeCheck\n moduleIdentityCheck: ModuleTypeCheck\n requiredQueries: string[]\n new (params: ModuleWrapperParams<TWrapper['mod']>): TWrapper\n\n canWrap(mod: Module | undefined): boolean\n\n is<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper?: any,\n ): wrapper is TModuleWrapper\n\n /** @deprecated pass an account for second parameter */\n tryWrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper | undefined\n tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper | undefined\n\n /** @deprecated pass an account for second parameter */\n wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper\n wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper\n}\n\nexport function constructableModuleWrapper<TWrapper extends ModuleWrapper>() {\n return <U extends ConstructableModuleWrapper<TWrapper>>(constructor: U) => {\n constructor\n }\n}\n\n@constructableModuleWrapper()\nexport class ModuleWrapper<TWrappedModule extends Module = Module>\n extends Base<Exclude<Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> }, undefined>>\n implements AttachableModuleInstance<TWrappedModule['params'], TWrappedModule['eventData']>\n{\n static instanceIdentityCheck: InstanceTypeCheck = isModuleInstance\n static moduleIdentityCheck: ModuleTypeCheck = isModule\n static requiredQueries: string[] = [ModuleStateQuerySchema]\n\n eventData = {} as TWrappedModule['eventData']\n\n protected readonly cachedCalls = new LRUCache<string, Payload[]>({ max: 1000, ttl: 1000 * 60, ttlAutopurge: true })\n\n protected readonly wrapperParams: ModuleWrapperParams<TWrappedModule>\n\n private _parents: ModuleInstance[] = []\n private _status: ModuleStatus = 'wrapped'\n\n constructor(params: ModuleWrapperParams<TWrappedModule>) {\n const mutatedWrapperParams = { ...params } as ModuleWrapperParams<TWrappedModule>\n const mutatedParams = { ...params.mod.params, config: { ...params.mod.params.config } } as Exclude<\n Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> },\n undefined\n >\n\n //set the root params to the wrapped mod params\n super(mutatedParams)\n this.wrapperParams = mutatedWrapperParams\n }\n\n get account() {\n return this.wrapperParams.account\n }\n\n get additionalSigners() {\n return this.wrapperParams.additionalSigners ?? []\n }\n\n get address() {\n return this.mod.address\n }\n\n get config() {\n return this.mod.config as Exclude<TWrappedModule['params']['config'], undefined>\n }\n\n get downResolver(): ModuleResolverInstance {\n //Should we be allowing this?\n const instance: AttachableModuleInstance | undefined = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.downResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n get id() {\n return this.mod.id\n }\n\n get mod() {\n return this.wrapperParams.mod\n }\n\n get modName() {\n return this.mod.modName\n }\n\n get priority() {\n return ObjectResolverPriority.Low\n }\n\n get privateResolver(): ModuleResolverInstance {\n //Should we be allowing this?\n const instance = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.privateResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n get queries(): string[] {\n return this.mod.queries\n }\n\n get status() {\n return this._status\n }\n\n get upResolver(): ModuleResolverInstance {\n //Should we be allowing this?\n const instance = asAttachableModuleInstance(this.mod)\n if (instance) {\n return instance.upResolver as ModuleResolverInstance\n }\n throw new Error('Unsupported')\n }\n\n protected set status(value: ModuleStatus) {\n if (this._status !== 'dead') {\n this._status = value\n }\n }\n\n static canWrap(mod?: Module) {\n return !!mod && this.moduleIdentityCheck(mod)\n }\n\n static hasRequiredQueries(mod: Module) {\n return this.missingRequiredQueries(mod).length === 0\n }\n\n static is<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper: any,\n ): wrapper is TModuleWrapper {\n return wrapper instanceof this\n }\n\n static missingRequiredQueries(mod: Module): string[] {\n const modQueries = mod.queries\n return compact(\n this.requiredQueries.map((query) => {\n return modQueries.includes(query) ? null : query\n }),\n )\n }\n\n /** @deprecated pass an account for second parameter */\n static tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n ): TModuleWrapper | undefined\n static tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper | undefined\n static tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account?: AccountInstance,\n checkIdentity = true,\n ): TModuleWrapper | undefined {\n if (!checkIdentity || this.canWrap(mod)) {\n if (!account) {\n this.defaultLogger?.info('Anonymous Module Wrapper Created')\n }\n return new this({ account: account ?? Account.randomSync(), mod: mod as TModuleWrapper['mod'] })\n }\n }\n\n static with<TModuleWrapper extends ModuleWrapper, R extends Promisable<void> = void>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n mod: any,\n\n closure: (mod: TModuleWrapper) => R,\n ): R | undefined {\n return this.is(mod) ? closure(mod) : undefined\n }\n\n /** @deprecated pass an account for second parameter */\n static wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper\n static wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper\n static wrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account?: AccountInstance,\n checkIdentity = true,\n ): TModuleWrapper {\n assertEx(!checkIdentity || (mod && this.moduleIdentityCheck(mod)), () => `Passed mod failed identity check: ${mod?.config?.schema}`)\n return assertEx(this.tryWrap(mod, account ?? Account.randomSync(), checkIdentity), () => 'Unable to wrap mod as ModuleWrapper')\n }\n\n addParent(mod: ModuleInstance) {\n const existingEntry = this._parents.find((parent) => parent.address === mod.address)\n if (!existingEntry) {\n this._parents.push(mod)\n }\n }\n\n async addressPreviousHash(): Promise<AddressPreviousHashPayload> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return assertEx(\n (await this.sendQuery(queryPayload)).find((payload) => payload.schema === AddressPreviousHashSchema) as WithMeta<AddressPreviousHashPayload>,\n () => 'Result did not include correct payload',\n )\n }\n\n clearListeners(eventNames: Parameters<TWrappedModule['clearListeners']>[0]) {\n return this.mod.clearListeners(eventNames)\n }\n\n emit(eventName: Parameters<TWrappedModule['emit']>[0], eventArgs: Parameters<TWrappedModule['emit']>[1]) {\n return this.mod.emit(eventName, eventArgs)\n }\n\n emitSerial(eventName: Parameters<TWrappedModule['emitSerial']>[0], eventArgs: Parameters<TWrappedModule['emitSerial']>[1]) {\n return this.mod.emitSerial(eventName, eventArgs)\n }\n\n listenerCount(eventNames: Parameters<TWrappedModule['listenerCount']>[0]) {\n return this.mod.listenerCount(eventNames)\n }\n\n async manifest(maxDepth?: number): Promise<ModuleManifestPayload> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return (await this.sendQuery(queryPayload))[0] as WithMeta<ModuleManifestPayload>\n }\n\n async manifestQuery(account: AccountInstance, maxDepth?: number): Promise<ModuleQueryResult<ModuleManifestPayload>> {\n const queryPayload: ModuleManifestQuery = { schema: ModuleManifestQuerySchema, ...(maxDepth === undefined ? {} : { maxDepth }) }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async moduleAddress(): Promise<AddressPreviousHashPayload[]> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return (await this.sendQuery(queryPayload)) as WithMeta<AddressPreviousHashPayload>[]\n }\n\n off<TEventName extends keyof TWrappedModule['eventData']>(\n eventNames: TEventName,\n listener: EventListener<TWrappedModule['eventData'][TEventName]>,\n ) {\n return this.mod.off(eventNames, listener)\n }\n\n offAny(listener: EventAnyListener) {\n return this.mod.offAny(listener)\n }\n\n on<TEventName extends keyof TWrappedModule['eventData']>(eventNames: TEventName, listener: EventListener<TWrappedModule['eventData'][TEventName]>) {\n return this.mod.on(eventNames, listener)\n }\n\n onAny(listener: EventAnyListener) {\n return this.mod.onAny(listener)\n }\n\n once<TEventName extends keyof TWrappedModule['eventData']>(\n eventName: TEventName,\n listener: EventListener<TWrappedModule['eventData'][TEventName]>,\n ) {\n return this.mod.once(eventName, listener)\n }\n\n parents(): Promisable<ModuleInstance[]> {\n return this._parents\n }\n\n async previousHash(): Promise<string | undefined> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return ((await this.sendQuery(queryPayload)).pop() as WithMeta<AddressPreviousHashPayload>).previousHash\n }\n\n async previousHashQuery(account?: AccountInstance): Promise<ModuleQueryResult<AddressPreviousHashPayload>> {\n const queryPayload: ModuleAddressQuery = { schema: ModuleAddressQuerySchema }\n return await this.sendQueryRaw(queryPayload, undefined, account)\n }\n\n async privateChildren(): Promise<ModuleInstance[]> {\n if (isModuleInstance(this.mod)) {\n return await this.mod.privateChildren()\n }\n return []\n }\n\n async publicChildren(): Promise<ModuleInstance[]> {\n if (isModuleInstance(this.mod)) {\n return await this.mod.publicChildren()\n }\n return []\n }\n\n async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {\n return await this.mod.query(query, payloads)\n }\n\n queryable<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]) {\n return this.mod.queryable(query, payloads)\n }\n\n removeParent(address: Address) {\n this._parents = this._parents.filter((item) => item.address !== address)\n }\n\n /** @deprecated do not pass undefined. If trying to get all, pass '*' */\n async resolve<T extends ModuleInstance = ModuleInstance>(): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T> | undefined,\n ): Promise<ModuleInstance>\n /** @deprecated use '*' if trying to resolve all */\n async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolve<T extends ModuleInstance = ModuleInstance>(\n idOrFilter: ModuleIdentifier | ModuleFilter<T> = '*',\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const instance = asModuleInstance(this.mod)\n if (instance?.['resolve']) {\n if (idOrFilter === '*') {\n return await instance.resolve<T>('*', options)\n }\n switch (typeof idOrFilter) {\n case 'string': {\n return await instance.resolve<T>(idOrFilter, options)\n }\n default: {\n return await instance.resolve<T>(idOrFilter, options)\n }\n }\n }\n return typeof idOrFilter === 'string' && idOrFilter !== '*' ? undefined : []\n }\n\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n async resolvePrivate<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n _options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n if (id === '*') return await Promise.resolve([])\n }\n\n async siblings(): Promise<ModuleInstance[]> {\n return (await Promise.all((await this.parents()).map((parent) => parent.publicChildren()))).flat().filter(duplicateModules)\n }\n\n async state(): Promise<Payload[]> {\n const cachedResult = this.cachedCalls.get('state')\n if (cachedResult) {\n return cachedResult\n }\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n const result = await this.sendQuery(queryPayload)\n this.cachedCalls.set('state', result)\n return result\n }\n\n async stateQuery(_account: AccountInstance): Promise<ModuleQueryResult> {\n const queryPayload: ModuleStateQuery = { schema: ModuleStateQuerySchema }\n return await this.sendQueryRaw(queryPayload)\n }\n\n protected bindQuery<T extends Query>(\n query: T,\n payloads?: Payload[],\n account = this.account,\n additionalSigners = this.additionalSigners,\n ): PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const promise = new PromiseEx<[QueryBoundWitness, Payload[], ModuleError[]], AccountInstance>(async (resolve) => {\n const result = await this.bindQueryInternal(query, payloads, account, additionalSigners)\n resolve?.(result)\n return result\n }, account)\n return promise\n }\n\n protected async bindQueryInternal<T extends Query>(\n query: T,\n payloads?: Payload[],\n account = this.account,\n additionalSigners = this.additionalSigners,\n ): Promise<[QueryBoundWitness, Payload[], ModuleError[]]> {\n const builder = await new QueryBoundWitnessBuilder().payloads(payloads).query(query)\n const accounts = [account, ...additionalSigners].filter(exists)\n const result = await (account ? builder.signers(accounts) : builder).build()\n return result\n }\n\n protected async filterErrors(result: ModuleQueryResult): Promise<ModuleError[]> {\n const wrapper = await BoundWitnessWrapper.wrap(result[0], result[1])\n return wrapper.payloadsBySchema<WithMeta<ModuleError>>(ModuleErrorSchema)\n }\n\n protected async sendQuery<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(\n queryPayload: T,\n payloads?: P[],\n ): Promise<WithMeta<R>[]> {\n const queryResults = await this.sendQueryRaw(queryPayload, payloads)\n const [, resultPayloads, errors] = queryResults\n\n /* TODO: Figure out what to do with the returning BW. Should we store them in a queue in case the caller wants to see them? */\n\n if (errors && errors.length > 0) {\n /* TODO: Figure out how to rollup multiple Errors */\n throw errors[0]\n }\n\n return resultPayloads as WithMeta<R>[]\n }\n\n protected async sendQueryRaw<T extends Query, P extends Payload = Payload, R extends Payload = Payload>(\n queryPayload: T,\n payloads?: P[],\n account?: AccountInstance,\n ): Promise<ModuleQueryResult<R>> {\n // Bind them\n const query = await this.bindQuery(queryPayload, payloads, account)\n\n // Send them off\n return (await this.query(query[0], query[1])) as ModuleQueryResult<R>\n }\n}\n"],"mappings":"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","names":["assertEx","exists","compact","Base","PromiseEx","Account","QueryBoundWitnessBuilder","BoundWitnessWrapper","AddressPreviousHashSchema","asAttachableModuleInstance","asModuleInstance","duplicateModules","isModule","isModuleInstance","ModuleAddressQuerySchema","ModuleManifestQuerySchema","ModuleStateQuerySchema","ObjectResolverPriority","ModuleErrorSchema","LRUCache","constructableModuleWrapper","constructor","ModuleWrapper","Base","eventData","cachedCalls","LRUCache","max","ttl","ttlAutopurge","wrapperParams","_parents","_status","params","mutatedWrapperParams","mutatedParams","mod","config","account","additionalSigners","address","downResolver","instance","asAttachableModuleInstance","Error","id","modName","priority","ObjectResolverPriority","Low","privateResolver","queries","status","upResolver","value","canWrap","moduleIdentityCheck","hasRequiredQueries","missingRequiredQueries","length","is","wrapper","modQueries","compact","requiredQueries","map","query","includes","tryWrap","checkIdentity","defaultLogger","info","Account","randomSync","with","closure","undefined","wrap","assertEx","schema","addParent","existingEntry","find","parent","push","addressPreviousHash","queryPayload","ModuleAddressQuerySchema","sendQuery","payload","AddressPreviousHashSchema","clearListeners","eventNames","emit","eventName","eventArgs","emitSerial","listenerCount","manifest","maxDepth","ModuleManifestQuerySchema","manifestQuery","sendQueryRaw","moduleAddress","off","listener","offAny","on","onAny","once","parents","previousHash","pop","previousHashQuery","privateChildren","isModuleInstance","publicChildren","payloads","queryable","removeParent","filter","item","resolve","idOrFilter","options","asModuleInstance","resolvePrivate","_options","Promise","siblings","all","flat","duplicateModules","state","cachedResult","get","ModuleStateQuerySchema","result","set","stateQuery","_account","bindQuery","promise","PromiseEx","bindQueryInternal","builder","QueryBoundWitnessBuilder","accounts","exists","signers","build","filterErrors","BoundWitnessWrapper","payloadsBySchema","ModuleErrorSchema","queryResults","resultPayloads","errors","instanceIdentityCheck","isModule"]}
@@ -4,6 +4,6 @@ import { Module } from '@xyo-network/module-model';
4
4
  export type ModuleWrapperParams<TWrappedModule extends Module = Module> = BaseParams<{
5
5
  account: AccountInstance;
6
6
  additionalSigners?: AccountInstance[];
7
- module: TWrappedModule;
7
+ mod: TWrappedModule;
8
8
  }>;
9
9
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,MAAM,MAAM,mBAAmB,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC;IACnF,OAAO,EAAE,eAAe,CAAA;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAC,CAAA"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,MAAM,MAAM,mBAAmB,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC;IACnF,OAAO,EAAE,eAAe,CAAA;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAC,CAAA"}
@@ -4,6 +4,6 @@ import { Module } from '@xyo-network/module-model';
4
4
  export type ModuleWrapperParams<TWrappedModule extends Module = Module> = BaseParams<{
5
5
  account: AccountInstance;
6
6
  additionalSigners?: AccountInstance[];
7
- module: TWrappedModule;
7
+ mod: TWrappedModule;
8
8
  }>;
9
9
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,MAAM,MAAM,mBAAmB,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC;IACnF,OAAO,EAAE,eAAe,CAAA;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAC,CAAA"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,MAAM,MAAM,mBAAmB,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC;IACnF,OAAO,EAAE,eAAe,CAAA;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAC,CAAA"}
@@ -4,6 +4,6 @@ import { Module } from '@xyo-network/module-model';
4
4
  export type ModuleWrapperParams<TWrappedModule extends Module = Module> = BaseParams<{
5
5
  account: AccountInstance;
6
6
  additionalSigners?: AccountInstance[];
7
- module: TWrappedModule;
7
+ mod: TWrappedModule;
8
8
  }>;
9
9
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,MAAM,MAAM,mBAAmB,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC;IACnF,OAAO,EAAE,eAAe,CAAA;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAC,CAAA"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,MAAM,MAAM,mBAAmB,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC;IACnF,OAAO,EAAE,eAAe,CAAA;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAC,CAAA"}
package/package.json CHANGED
@@ -10,28 +10,28 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.5.1",
14
- "@xylabs/exists": "^3.5.1",
15
- "@xylabs/hex": "^3.5.1",
16
- "@xylabs/lodash": "^3.5.1",
17
- "@xylabs/logger": "^3.5.1",
18
- "@xylabs/object": "^3.5.1",
19
- "@xylabs/promise": "^3.5.1",
20
- "@xyo-network/account": "~2.107.5",
21
- "@xyo-network/account-model": "~2.107.5",
22
- "@xyo-network/boundwitness-builder": "~2.107.5",
23
- "@xyo-network/boundwitness-model": "~2.107.5",
24
- "@xyo-network/boundwitness-wrapper": "~2.107.5",
25
- "@xyo-network/manifest-model": "~2.107.5",
26
- "@xyo-network/module-events": "~2.107.5",
27
- "@xyo-network/module-model": "~2.107.5",
28
- "@xyo-network/payload-model": "~2.107.5",
29
- "lru-cache": "^10.2.2"
13
+ "@xylabs/assert": "^3.5.2",
14
+ "@xylabs/exists": "^3.5.2",
15
+ "@xylabs/hex": "^3.5.2",
16
+ "@xylabs/lodash": "^3.5.2",
17
+ "@xylabs/logger": "^3.5.2",
18
+ "@xylabs/object": "^3.5.2",
19
+ "@xylabs/promise": "^3.5.2",
20
+ "@xyo-network/account": "^2.108.0",
21
+ "@xyo-network/account-model": "^2.108.0",
22
+ "@xyo-network/boundwitness-builder": "^2.108.0",
23
+ "@xyo-network/boundwitness-model": "^2.108.0",
24
+ "@xyo-network/boundwitness-wrapper": "^2.108.0",
25
+ "@xyo-network/manifest-model": "^2.108.0",
26
+ "@xyo-network/module-events": "^2.108.0",
27
+ "@xyo-network/module-model": "^2.108.0",
28
+ "@xyo-network/payload-model": "^2.108.0",
29
+ "lru-cache": "^10.3.0"
30
30
  },
31
31
  "devDependencies": {
32
- "@xylabs/ts-scripts-yarn3": "^3.11.10",
33
- "@xylabs/tsconfig": "^3.11.10",
34
- "typescript": "^5.5.2"
32
+ "@xylabs/ts-scripts-yarn3": "^3.11.12",
33
+ "@xylabs/tsconfig": "^3.11.12",
34
+ "typescript": "^5.5.3"
35
35
  },
36
36
  "description": "Primary SDK for using XYO Protocol 2.0",
37
37
  "types": "dist/node/index.d.ts",
@@ -72,6 +72,6 @@
72
72
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
73
73
  },
74
74
  "sideEffects": false,
75
- "version": "2.107.5",
75
+ "version": "2.108.0",
76
76
  "type": "module"
77
77
  }