@xyo-network/module-wrapper 3.6.9 → 3.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,15 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
3
13
 
4
14
  // src/ModuleWrapper.ts
5
15
  import { assertEx } from "@xylabs/assert";
@@ -8,35 +18,28 @@ import { Base } from "@xylabs/object";
8
18
  import { PromiseEx } from "@xylabs/promise";
9
19
  import { QueryBoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
10
20
  import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
11
- import { AddressPreviousHashSchema, asAttachableModuleInstance, asModuleInstance, duplicateModules, isModule, isModuleInstance, ModuleAddressQuerySchema, ModuleManifestQuerySchema, ModuleStateQuerySchema, ObjectResolverPriority } from "@xyo-network/module-model";
12
- import { ModuleErrorSchema } from "@xyo-network/payload-model";
21
+ import {
22
+ AddressPreviousHashSchema,
23
+ asAttachableModuleInstance,
24
+ asModuleInstance,
25
+ duplicateModules,
26
+ isModule,
27
+ isModuleInstance,
28
+ ModuleAddressQuerySchema,
29
+ ModuleManifestQuerySchema,
30
+ ModuleStateQuerySchema,
31
+ ObjectResolverPriority
32
+ } from "@xyo-network/module-model";
33
+ import {
34
+ ModuleErrorSchema
35
+ } from "@xyo-network/payload-model";
13
36
  import { LRUCache } from "lru-cache";
14
- function _ts_decorate(decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- }
20
- __name(_ts_decorate, "_ts_decorate");
21
- function _ts_metadata(k, v) {
22
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
23
- }
24
- __name(_ts_metadata, "_ts_metadata");
25
37
  function constructableModuleWrapper() {
26
38
  return (constructor) => {
27
39
  constructor;
28
40
  };
29
41
  }
30
- __name(constructableModuleWrapper, "constructableModuleWrapper");
31
42
  var ModuleWrapper = class extends Base {
32
- static {
33
- __name(this, "ModuleWrapper");
34
- }
35
- static instanceIdentityCheck = isModuleInstance;
36
- static moduleIdentityCheck = isModule;
37
- static requiredQueries = [
38
- ModuleStateQuerySchema
39
- ];
40
43
  eventData = {};
41
44
  cachedCalls = new LRUCache({
42
45
  max: 1e3,
@@ -47,15 +50,8 @@ var ModuleWrapper = class extends Base {
47
50
  _parents = [];
48
51
  _status = "wrapped";
49
52
  constructor(params) {
50
- const mutatedWrapperParams = {
51
- ...params
52
- };
53
- const mutatedParams = {
54
- ...params.mod.params,
55
- config: {
56
- ...params.mod.params.config
57
- }
58
- };
53
+ const mutatedWrapperParams = { ...params };
54
+ const mutatedParams = { ...params.mod.params, config: { ...params.mod.params.config } };
59
55
  super(mutatedParams);
60
56
  this.wrapperParams = mutatedWrapperParams;
61
57
  }
@@ -135,10 +131,7 @@ var ModuleWrapper = class extends Base {
135
131
  if (!account) {
136
132
  this.defaultLogger?.info("Anonymous Module Wrapper Created");
137
133
  }
138
- return new this({
139
- account,
140
- mod
141
- });
134
+ return new this({ account, mod });
142
135
  }
143
136
  }
144
137
  static with(mod, closure) {
@@ -155,10 +148,11 @@ var ModuleWrapper = class extends Base {
155
148
  }
156
149
  }
157
150
  async addressPreviousHash() {
158
- const queryPayload = {
159
- schema: ModuleAddressQuerySchema
160
- };
161
- return assertEx((await this.sendQuery(queryPayload)).find((payload) => payload.schema === AddressPreviousHashSchema), () => "Result did not include correct payload");
151
+ const queryPayload = { schema: ModuleAddressQuerySchema };
152
+ return assertEx(
153
+ (await this.sendQuery(queryPayload)).find((payload) => payload.schema === AddressPreviousHashSchema),
154
+ () => "Result did not include correct payload"
155
+ );
162
156
  }
163
157
  clearListeners(eventNames) {
164
158
  return this.mod.clearListeners(eventNames);
@@ -173,27 +167,15 @@ var ModuleWrapper = class extends Base {
173
167
  return this.mod.listenerCount(eventNames);
174
168
  }
175
169
  async manifest(maxDepth) {
176
- const queryPayload = {
177
- schema: ModuleManifestQuerySchema,
178
- ...maxDepth === void 0 ? {} : {
179
- maxDepth
180
- }
181
- };
170
+ const queryPayload = { schema: ModuleManifestQuerySchema, ...maxDepth === void 0 ? {} : { maxDepth } };
182
171
  return (await this.sendQuery(queryPayload))[0];
183
172
  }
184
173
  async manifestQuery(account, maxDepth) {
185
- const queryPayload = {
186
- schema: ModuleManifestQuerySchema,
187
- ...maxDepth === void 0 ? {} : {
188
- maxDepth
189
- }
190
- };
174
+ const queryPayload = { schema: ModuleManifestQuerySchema, ...maxDepth === void 0 ? {} : { maxDepth } };
191
175
  return await this.sendQueryRaw(queryPayload, void 0, account);
192
176
  }
193
177
  async moduleAddress() {
194
- const queryPayload = {
195
- schema: ModuleAddressQuerySchema
196
- };
178
+ const queryPayload = { schema: ModuleAddressQuerySchema };
197
179
  return await this.sendQuery(queryPayload);
198
180
  }
199
181
  off(eventNames, listener) {
@@ -215,15 +197,11 @@ var ModuleWrapper = class extends Base {
215
197
  return this._parents;
216
198
  }
217
199
  async previousHash() {
218
- const queryPayload = {
219
- schema: ModuleAddressQuerySchema
220
- };
200
+ const queryPayload = { schema: ModuleAddressQuerySchema };
221
201
  return (await this.sendQuery(queryPayload)).pop().previousHash;
222
202
  }
223
203
  async previousHashQuery(account) {
224
- const queryPayload = {
225
- schema: ModuleAddressQuerySchema
226
- };
204
+ const queryPayload = { schema: ModuleAddressQuerySchema };
227
205
  return await this.sendQueryRaw(queryPayload, void 0, account);
228
206
  }
229
207
  async privateChildren() {
@@ -275,17 +253,13 @@ var ModuleWrapper = class extends Base {
275
253
  if (cachedResult) {
276
254
  return cachedResult;
277
255
  }
278
- const queryPayload = {
279
- schema: ModuleStateQuerySchema
280
- };
256
+ const queryPayload = { schema: ModuleStateQuerySchema };
281
257
  const result = await this.sendQuery(queryPayload);
282
258
  this.cachedCalls.set("state", result);
283
259
  return result;
284
260
  }
285
261
  async stateQuery(_account) {
286
- const queryPayload = {
287
- schema: ModuleStateQuerySchema
288
- };
262
+ const queryPayload = { schema: ModuleStateQuerySchema };
289
263
  return await this.sendQueryRaw(queryPayload);
290
264
  }
291
265
  bindQuery(query, payloads, account = this.account, additionalSigners = this.additionalSigners) {
@@ -297,10 +271,7 @@ var ModuleWrapper = class extends Base {
297
271
  }
298
272
  async bindQueryInternal(query, payloads, account = this.account, additionalSigners = this.additionalSigners) {
299
273
  const builder = new QueryBoundWitnessBuilder().payloads(payloads).query(query);
300
- const accounts = [
301
- account,
302
- ...additionalSigners
303
- ].filter(exists);
274
+ const accounts = [account, ...additionalSigners].filter(exists);
304
275
  return await (account ? builder.signers(accounts) : builder).build();
305
276
  }
306
277
  async filterErrors(result) {
@@ -320,12 +291,11 @@ var ModuleWrapper = class extends Base {
320
291
  return await this.query(query[0], query[1]);
321
292
  }
322
293
  };
323
- ModuleWrapper = _ts_decorate([
324
- constructableModuleWrapper(),
325
- _ts_metadata("design:type", Function),
326
- _ts_metadata("design:paramtypes", [
327
- typeof ModuleWrapperParams === "undefined" ? Object : ModuleWrapperParams
328
- ])
294
+ __publicField(ModuleWrapper, "instanceIdentityCheck", isModuleInstance);
295
+ __publicField(ModuleWrapper, "moduleIdentityCheck", isModule);
296
+ __publicField(ModuleWrapper, "requiredQueries", [ModuleStateQuerySchema]);
297
+ ModuleWrapper = __decorateClass([
298
+ constructableModuleWrapper()
329
299
  ], ModuleWrapper);
330
300
  export {
331
301
  ModuleWrapper,
@@ -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 { 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,\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 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 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 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 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 = 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<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<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 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"]}
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,\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 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 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 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 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 = 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<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<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 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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/module-wrapper",
3
- "version": "3.6.9",
3
+ "version": "3.6.10",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,26 +29,26 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "dependencies": {
32
- "@xylabs/assert": "^4.4.34",
33
- "@xylabs/exists": "^4.4.34",
34
- "@xylabs/hex": "^4.4.34",
35
- "@xylabs/logger": "^4.4.34",
36
- "@xylabs/object": "^4.4.34",
37
- "@xylabs/promise": "^4.4.34",
38
- "@xyo-network/account-model": "^3.6.9",
39
- "@xyo-network/boundwitness-builder": "^3.6.9",
40
- "@xyo-network/boundwitness-model": "^3.6.9",
41
- "@xyo-network/boundwitness-wrapper": "^3.6.9",
42
- "@xyo-network/manifest-model": "^3.6.9",
43
- "@xyo-network/module-events": "^3.6.9",
44
- "@xyo-network/module-model": "^3.6.9",
45
- "@xyo-network/payload-model": "^3.6.9",
32
+ "@xylabs/assert": "^4.5.1",
33
+ "@xylabs/exists": "^4.5.1",
34
+ "@xylabs/hex": "^4.5.1",
35
+ "@xylabs/logger": "^4.5.1",
36
+ "@xylabs/object": "^4.5.1",
37
+ "@xylabs/promise": "^4.5.1",
38
+ "@xyo-network/account-model": "^3.6.10",
39
+ "@xyo-network/boundwitness-builder": "^3.6.10",
40
+ "@xyo-network/boundwitness-model": "^3.6.10",
41
+ "@xyo-network/boundwitness-wrapper": "^3.6.10",
42
+ "@xyo-network/manifest-model": "^3.6.10",
43
+ "@xyo-network/module-events": "^3.6.10",
44
+ "@xyo-network/module-model": "^3.6.10",
45
+ "@xyo-network/payload-model": "^3.6.10",
46
46
  "lru-cache": "^11.0.2"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@xylabs/ts-scripts-yarn3": "^4.2.6",
50
50
  "@xylabs/tsconfig": "^4.2.6",
51
- "typescript": "^5.7.2"
51
+ "typescript": "^5.7.3"
52
52
  },
53
53
  "publishConfig": {
54
54
  "access": "public"