@xyo-network/module-wrapper 3.2.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -91,10 +91,12 @@ export declare class ModuleWrapper<TWrappedModule extends Module = Module> exten
91
91
  query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult>;
92
92
  queryable<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promisable<boolean>;
93
93
  removeParent(address: Address): void;
94
+ /** @deprecated do not pass undefined. If trying to get all, pass '*' */
94
95
  resolve<T extends ModuleInstance = ModuleInstance>(): Promise<T[]>;
95
96
  resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
96
97
  resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>;
97
98
  resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T> | undefined): Promise<ModuleInstance>;
99
+ /** @deprecated use '*' if trying to resolve all */
98
100
  resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T> | undefined, options?: ModuleFilterOptions<T>): Promise<T[]>;
99
101
  resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
100
102
  resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
@@ -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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"}
@@ -4,7 +4,6 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
4
4
  // src/ModuleWrapper.ts
5
5
  import { assertEx } from "@xylabs/assert";
6
6
  import { exists } from "@xylabs/exists";
7
- import { compact } from "@xylabs/lodash";
8
7
  import { Base } from "@xylabs/object";
9
8
  import { PromiseEx } from "@xylabs/promise";
10
9
  import { QueryBoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
@@ -127,9 +126,9 @@ var ModuleWrapper = class extends Base {
127
126
  }
128
127
  static missingRequiredQueries(mod) {
129
128
  const modQueries = mod.queries;
130
- return compact(this.requiredQueries.map((query) => {
129
+ return this.requiredQueries.map((query) => {
131
130
  return modQueries.includes(query) ? null : query;
132
- }));
131
+ }).filter(exists);
133
132
  }
134
133
  static tryWrap(mod, account, checkIdentity = true) {
135
134
  if (!checkIdentity || this.canWrap(mod)) {
@@ -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 { 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 {\n ModuleError, ModuleErrorSchema, Payload, Query, WithMeta,\n} from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ModuleWrapperParams } from './models.ts'\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 // eslint-disable-next-line @typescript-eslint/no-unused-expressions\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 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[]>({\n max: 1000, ttl: 1000 * 60, ttlAutopurge: true,\n })\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 return 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 }\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 return await (account ? builder.signers(accounts) : builder).build()\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","instanceIdentityCheck","isModuleInstance","moduleIdentityCheck","isModule","requiredQueries","ModuleStateQuerySchema","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","hasRequiredQueries","missingRequiredQueries","length","is","wrapper","modQueries","compact","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","publicChildren","payloads","queryable","removeParent","filter","item","resolve","idOrFilter","options","asModuleInstance","resolvePrivate","_options","Promise","siblings","all","flat","duplicateModules","state","cachedResult","get","result","set","stateQuery","_account","bindQuery","PromiseEx","bindQueryInternal","builder","QueryBoundWitnessBuilder","accounts","exists","signers","build","filterErrors","BoundWitnessWrapper","payloadsBySchema","ModuleErrorSchema","queryResults","resultPayloads","errors"]}
1
+ {"version":3,"sources":["../../src/ModuleWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { Address } from '@xylabs/hex'\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 {\n ModuleError, ModuleErrorSchema, Payload, Query, WithMeta,\n} from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport type { ModuleWrapperParams } from './models.ts'\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 // eslint-disable-next-line @typescript-eslint/no-unused-expressions\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 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[]>({\n max: 1000, ttl: 1000 * 60, ttlAutopurge: true,\n })\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 (\n this.requiredQueries.map((query) => {\n return modQueries.includes(query) ? null : query\n })\n ).filter(exists)\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 return 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 }\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 return await (account ? builder.signers(accounts) : builder).build()\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","Base","PromiseEx","QueryBoundWitnessBuilder","BoundWitnessWrapper","AddressPreviousHashSchema","asAttachableModuleInstance","asModuleInstance","duplicateModules","isModule","isModuleInstance","ModuleAddressQuerySchema","ModuleManifestQuerySchema","ModuleStateQuerySchema","ObjectResolverPriority","ModuleErrorSchema","LRUCache","constructableModuleWrapper","constructor","ModuleWrapper","Base","instanceIdentityCheck","isModuleInstance","moduleIdentityCheck","isModule","requiredQueries","ModuleStateQuerySchema","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","hasRequiredQueries","missingRequiredQueries","length","is","wrapper","modQueries","map","query","includes","filter","exists","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","publicChildren","payloads","queryable","removeParent","item","resolve","idOrFilter","options","asModuleInstance","resolvePrivate","_options","Promise","siblings","all","flat","duplicateModules","state","cachedResult","get","result","set","stateQuery","_account","bindQuery","PromiseEx","bindQueryInternal","builder","QueryBoundWitnessBuilder","accounts","signers","build","filterErrors","BoundWitnessWrapper","payloadsBySchema","ModuleErrorSchema","queryResults","resultPayloads","errors"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/module-wrapper",
3
- "version": "3.2.0",
3
+ "version": "3.3.1",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,27 +29,26 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "dependencies": {
32
- "@xylabs/assert": "^4.1.0",
33
- "@xylabs/exists": "^4.1.0",
34
- "@xylabs/hex": "^4.1.0",
35
- "@xylabs/lodash": "^4.1.0",
36
- "@xylabs/logger": "^4.1.0",
37
- "@xylabs/object": "^4.1.0",
38
- "@xylabs/promise": "^4.1.0",
39
- "@xyo-network/account-model": "^3.2.0",
40
- "@xyo-network/boundwitness-builder": "^3.2.0",
41
- "@xyo-network/boundwitness-model": "^3.2.0",
42
- "@xyo-network/boundwitness-wrapper": "^3.2.0",
43
- "@xyo-network/manifest-model": "^3.2.0",
44
- "@xyo-network/module-events": "^3.2.0",
45
- "@xyo-network/module-model": "^3.2.0",
46
- "@xyo-network/payload-model": "^3.2.0",
32
+ "@xylabs/assert": "^4.3.2",
33
+ "@xylabs/exists": "^4.3.2",
34
+ "@xylabs/hex": "^4.3.2",
35
+ "@xylabs/logger": "^4.3.2",
36
+ "@xylabs/object": "^4.3.2",
37
+ "@xylabs/promise": "^4.3.2",
38
+ "@xyo-network/account-model": "^3.3.1",
39
+ "@xyo-network/boundwitness-builder": "^3.3.1",
40
+ "@xyo-network/boundwitness-model": "^3.3.1",
41
+ "@xyo-network/boundwitness-wrapper": "^3.3.1",
42
+ "@xyo-network/manifest-model": "^3.3.1",
43
+ "@xyo-network/module-events": "^3.3.1",
44
+ "@xyo-network/module-model": "^3.3.1",
45
+ "@xyo-network/payload-model": "^3.3.1",
47
46
  "lru-cache": "^11.0.1"
48
47
  },
49
48
  "devDependencies": {
50
- "@xylabs/ts-scripts-yarn3": "^4.1.0",
51
- "@xylabs/tsconfig": "^4.1.0",
52
- "typescript": "^5.6.2"
49
+ "@xylabs/ts-scripts-yarn3": "^4.2.3",
50
+ "@xylabs/tsconfig": "^4.2.3",
51
+ "typescript": "^5.6.3"
53
52
  },
54
53
  "publishConfig": {
55
54
  "access": "public"
@@ -1,7 +1,6 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { exists } from '@xylabs/exists'
3
3
  import { Address } from '@xylabs/hex'
4
- import { compact } from '@xylabs/lodash'
5
4
  import { Logger } from '@xylabs/logger'
6
5
  import { Base } from '@xylabs/object'
7
6
  import { Promisable, PromiseEx } from '@xylabs/promise'
@@ -204,11 +203,11 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
204
203
 
205
204
  static missingRequiredQueries(mod: Module): string[] {
206
205
  const modQueries = mod.queries
207
- return compact(
206
+ return (
208
207
  this.requiredQueries.map((query) => {
209
208
  return modQueries.includes(query) ? null : query
210
- }),
211
- )
209
+ })
210
+ ).filter(exists)
212
211
  }
213
212
 
214
213
  static tryWrap<TModuleWrapper extends ModuleWrapper>(