@xyo-network/module-wrapper 2.108.0 → 2.109.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.
@@ -18,9 +18,7 @@ export type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {
18
18
  new (params: ModuleWrapperParams<TWrapper['mod']>): TWrapper;
19
19
  canWrap(mod: Module | undefined): boolean;
20
20
  is<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, wrapper?: any): wrapper is TModuleWrapper;
21
- tryWrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper | undefined;
22
21
  tryWrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined, account: AccountInstance, checkIdentity?: boolean): TModuleWrapper | undefined;
23
- wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper;
24
22
  wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined, account: AccountInstance, checkIdentity?: boolean): TModuleWrapper;
25
23
  };
26
24
  export declare function constructableModuleWrapper<TWrapper extends ModuleWrapper>(): <U extends ConstructableModuleWrapper<TWrapper>>(constructor: U) => void;
@@ -68,10 +66,8 @@ export declare class ModuleWrapper<TWrappedModule extends Module = Module> exten
68
66
  static hasRequiredQueries(mod: Module): boolean;
69
67
  static is<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, wrapper: any): wrapper is TModuleWrapper;
70
68
  static missingRequiredQueries(mod: Module): string[];
71
- static tryWrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper | undefined;
72
69
  static tryWrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined, account: AccountInstance, checkIdentity?: boolean): TModuleWrapper | undefined;
73
70
  static with<TModuleWrapper extends ModuleWrapper, R extends Promisable<void> = void>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: any, closure: (mod: TModuleWrapper) => R): R | undefined;
74
- static wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper;
75
71
  static wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined, account: AccountInstance, checkIdentity?: boolean): TModuleWrapper;
76
72
  addParent(mod: ModuleInstance): void;
77
73
  addressPreviousHash(): Promise<AddressPreviousHashPayload>;
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleWrapper.d.ts","sourceRoot":"","sources":["../../src/ModuleWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModuleWrapper.d.ts","sourceRoot":"","sources":["../../src/ModuleWrapper.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,6 @@ var import_exists = require("@xylabs/exists");
34
34
  var import_lodash = require("@xylabs/lodash");
35
35
  var import_object = require("@xylabs/object");
36
36
  var import_promise = require("@xylabs/promise");
37
- var import_account = require("@xyo-network/account");
38
37
  var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
39
38
  var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
40
39
  var import_module_model = require("@xyo-network/module-model");
@@ -158,7 +157,7 @@ var _ModuleWrapper = class _ModuleWrapper extends import_object.Base {
158
157
  (_a = this.defaultLogger) == null ? void 0 : _a.info("Anonymous Module Wrapper Created");
159
158
  }
160
159
  return new this({
161
- account: account ?? import_account.Account.randomSync(),
160
+ account,
162
161
  mod
163
162
  });
164
163
  }
@@ -171,7 +170,7 @@ var _ModuleWrapper = class _ModuleWrapper extends import_object.Base {
171
170
  var _a;
172
171
  return `Passed mod failed identity check: ${(_a = mod == null ? void 0 : mod.config) == null ? void 0 : _a.schema}`;
173
172
  });
174
- return (0, import_assert.assertEx)(this.tryWrap(mod, account ?? import_account.Account.randomSync(), checkIdentity), () => "Unable to wrap mod as ModuleWrapper");
173
+ return (0, import_assert.assertEx)(this.tryWrap(mod, account, checkIdentity), () => "Unable to wrap mod as ModuleWrapper");
175
174
  }
176
175
  addParent(mod) {
177
176
  const existingEntry = this._parents.find((parent) => parent.address === mod.address);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/ModuleWrapper.ts"],"sourcesContent":["export * from './models'\nexport * from './ModuleWrapper'\n","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":["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"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/ModuleWrapper.ts"],"sourcesContent":["export * from './models'\nexport * from './ModuleWrapper'\n","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 { 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 tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper | undefined\n\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 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, 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 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, 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":["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","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"]}
@@ -9,7 +9,6 @@ import { exists } from "@xylabs/exists";
9
9
  import { compact } from "@xylabs/lodash";
10
10
  import { Base } from "@xylabs/object";
11
11
  import { PromiseEx } from "@xylabs/promise";
12
- import { Account } from "@xyo-network/account";
13
12
  import { QueryBoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
14
13
  import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
15
14
  import { AddressPreviousHashSchema, asAttachableModuleInstance, asModuleInstance, duplicateModules, isModule, isModuleInstance, ModuleAddressQuerySchema, ModuleManifestQuerySchema, ModuleStateQuerySchema, ObjectResolverPriority } from "@xyo-network/module-model";
@@ -133,7 +132,7 @@ var _ModuleWrapper = class _ModuleWrapper extends Base {
133
132
  (_a = this.defaultLogger) == null ? void 0 : _a.info("Anonymous Module Wrapper Created");
134
133
  }
135
134
  return new this({
136
- account: account ?? Account.randomSync(),
135
+ account,
137
136
  mod
138
137
  });
139
138
  }
@@ -146,7 +145,7 @@ var _ModuleWrapper = class _ModuleWrapper extends Base {
146
145
  var _a;
147
146
  return `Passed mod failed identity check: ${(_a = mod == null ? void 0 : mod.config) == null ? void 0 : _a.schema}`;
148
147
  });
149
- return assertEx(this.tryWrap(mod, account ?? Account.randomSync(), checkIdentity), () => "Unable to wrap mod as ModuleWrapper");
148
+ return assertEx(this.tryWrap(mod, account, checkIdentity), () => "Unable to wrap mod as ModuleWrapper");
150
149
  }
151
150
  addParent(mod) {
152
151
  const existingEntry = this._parents.find((parent) => parent.address === mod.address);
@@ -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['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"]}
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 { 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 tryWrap<TModuleWrapper extends ModuleWrapper>(\n this: ConstructableModuleWrapper<TModuleWrapper>,\n mod: Module | undefined,\n account: AccountInstance,\n checkIdentity?: boolean,\n ): TModuleWrapper | undefined\n\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 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, 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 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, 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","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","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"]}
package/package.json CHANGED
@@ -17,15 +17,14 @@
17
17
  "@xylabs/logger": "^3.5.2",
18
18
  "@xylabs/object": "^3.5.2",
19
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",
20
+ "@xyo-network/account-model": "^2.109.0",
21
+ "@xyo-network/boundwitness-builder": "^2.109.0",
22
+ "@xyo-network/boundwitness-model": "^2.109.0",
23
+ "@xyo-network/boundwitness-wrapper": "^2.109.0",
24
+ "@xyo-network/manifest-model": "^2.109.0",
25
+ "@xyo-network/module-events": "^2.109.0",
26
+ "@xyo-network/module-model": "^2.109.0",
27
+ "@xyo-network/payload-model": "^2.109.0",
29
28
  "lru-cache": "^10.3.0"
30
29
  },
31
30
  "devDependencies": {
@@ -72,6 +71,6 @@
72
71
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
73
72
  },
74
73
  "sideEffects": false,
75
- "version": "2.108.0",
74
+ "version": "2.109.0",
76
75
  "type": "module"
77
76
  }
@@ -5,7 +5,6 @@ import { compact } from '@xylabs/lodash'
5
5
  import { Logger } from '@xylabs/logger'
6
6
  import { Base } from '@xylabs/object'
7
7
  import { Promisable, PromiseEx } from '@xylabs/promise'
8
- import { Account } from '@xyo-network/account'
9
8
  import { AccountInstance } from '@xyo-network/account-model'
10
9
  import { QueryBoundWitnessBuilder } from '@xyo-network/boundwitness-builder'
11
10
  import { QueryBoundWitness } from '@xyo-network/boundwitness-model'
@@ -59,8 +58,6 @@ export type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {
59
58
  wrapper?: any,
60
59
  ): wrapper is TModuleWrapper
61
60
 
62
- /** @deprecated pass an account for second parameter */
63
- tryWrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper | undefined
64
61
  tryWrap<TModuleWrapper extends ModuleWrapper>(
65
62
  this: ConstructableModuleWrapper<TModuleWrapper>,
66
63
  mod: Module | undefined,
@@ -68,8 +65,6 @@ export type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {
68
65
  checkIdentity?: boolean,
69
66
  ): TModuleWrapper | undefined
70
67
 
71
- /** @deprecated pass an account for second parameter */
72
- wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper
73
68
  wrap<TModuleWrapper extends ModuleWrapper>(
74
69
  this: ConstructableModuleWrapper<TModuleWrapper>,
75
70
  mod: Module | undefined,
@@ -212,28 +207,17 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
212
207
  )
213
208
  }
214
209
 
215
- /** @deprecated pass an account for second parameter */
216
- static tryWrap<TModuleWrapper extends ModuleWrapper>(
217
- this: ConstructableModuleWrapper<TModuleWrapper>,
218
- mod: Module | undefined,
219
- ): TModuleWrapper | undefined
220
210
  static tryWrap<TModuleWrapper extends ModuleWrapper>(
221
211
  this: ConstructableModuleWrapper<TModuleWrapper>,
222
212
  mod: Module | undefined,
223
213
  account: AccountInstance,
224
- checkIdentity?: boolean,
225
- ): TModuleWrapper | undefined
226
- static tryWrap<TModuleWrapper extends ModuleWrapper>(
227
- this: ConstructableModuleWrapper<TModuleWrapper>,
228
- mod: Module | undefined,
229
- account?: AccountInstance,
230
214
  checkIdentity = true,
231
215
  ): TModuleWrapper | undefined {
232
216
  if (!checkIdentity || this.canWrap(mod)) {
233
217
  if (!account) {
234
218
  this.defaultLogger?.info('Anonymous Module Wrapper Created')
235
219
  }
236
- return new this({ account: account ?? Account.randomSync(), mod: mod as TModuleWrapper['mod'] })
220
+ return new this({ account, mod: mod as TModuleWrapper['mod'] })
237
221
  }
238
222
  }
239
223
 
@@ -247,22 +231,14 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
247
231
  return this.is(mod) ? closure(mod) : undefined
248
232
  }
249
233
 
250
- /** @deprecated pass an account for second parameter */
251
- static wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, mod: Module | undefined): TModuleWrapper
252
234
  static wrap<TModuleWrapper extends ModuleWrapper>(
253
235
  this: ConstructableModuleWrapper<TModuleWrapper>,
254
236
  mod: Module | undefined,
255
237
  account: AccountInstance,
256
- checkIdentity?: boolean,
257
- ): TModuleWrapper
258
- static wrap<TModuleWrapper extends ModuleWrapper>(
259
- this: ConstructableModuleWrapper<TModuleWrapper>,
260
- mod: Module | undefined,
261
- account?: AccountInstance,
262
238
  checkIdentity = true,
263
239
  ): TModuleWrapper {
264
240
  assertEx(!checkIdentity || (mod && this.moduleIdentityCheck(mod)), () => `Passed mod failed identity check: ${mod?.config?.schema}`)
265
- return assertEx(this.tryWrap(mod, account ?? Account.randomSync(), checkIdentity), () => 'Unable to wrap mod as ModuleWrapper')
241
+ return assertEx(this.tryWrap(mod, account, checkIdentity), () => 'Unable to wrap mod as ModuleWrapper')
266
242
  }
267
243
 
268
244
  addParent(mod: ModuleInstance) {