@xyo-network/module-wrapper 2.107.6 → 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.
- package/dist/browser/ModuleWrapper.d.cts +12 -16
- package/dist/browser/ModuleWrapper.d.cts.map +1 -1
- package/dist/browser/ModuleWrapper.d.mts +12 -16
- package/dist/browser/ModuleWrapper.d.mts.map +1 -1
- package/dist/browser/ModuleWrapper.d.ts +12 -16
- package/dist/browser/ModuleWrapper.d.ts.map +1 -1
- package/dist/browser/index.cjs +48 -49
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +48 -49
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/models.d.cts +1 -1
- package/dist/browser/models.d.cts.map +1 -1
- package/dist/browser/models.d.mts +1 -1
- package/dist/browser/models.d.mts.map +1 -1
- package/dist/browser/models.d.ts +1 -1
- package/dist/browser/models.d.ts.map +1 -1
- package/dist/neutral/ModuleWrapper.d.cts +12 -16
- package/dist/neutral/ModuleWrapper.d.cts.map +1 -1
- package/dist/neutral/ModuleWrapper.d.mts +12 -16
- package/dist/neutral/ModuleWrapper.d.mts.map +1 -1
- package/dist/neutral/ModuleWrapper.d.ts +12 -16
- package/dist/neutral/ModuleWrapper.d.ts.map +1 -1
- package/dist/neutral/index.cjs +48 -49
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +48 -49
- package/dist/neutral/index.js.map +1 -1
- package/dist/neutral/models.d.cts +1 -1
- package/dist/neutral/models.d.cts.map +1 -1
- package/dist/neutral/models.d.mts +1 -1
- package/dist/neutral/models.d.mts.map +1 -1
- package/dist/neutral/models.d.ts +1 -1
- package/dist/neutral/models.d.ts.map +1 -1
- package/dist/node/ModuleWrapper.d.cts +12 -16
- package/dist/node/ModuleWrapper.d.cts.map +1 -1
- package/dist/node/ModuleWrapper.d.mts +12 -16
- package/dist/node/ModuleWrapper.d.mts.map +1 -1
- package/dist/node/ModuleWrapper.d.ts +12 -16
- package/dist/node/ModuleWrapper.d.ts.map +1 -1
- package/dist/node/index.cjs +49 -50
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +49 -50
- package/dist/node/index.js.map +1 -1
- package/dist/node/models.d.cts +1 -1
- package/dist/node/models.d.cts.map +1 -1
- package/dist/node/models.d.mts +1 -1
- package/dist/node/models.d.mts.map +1 -1
- package/dist/node/models.d.ts +1 -1
- package/dist/node/models.d.ts.map +1 -1
- package/package.json +11 -12
- package/src/ModuleWrapper.ts +52 -79
- package/src/models.ts +1 -1
package/src/ModuleWrapper.ts
CHANGED
|
@@ -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'
|
|
@@ -49,9 +48,9 @@ export type ConstructableModuleWrapper<TWrapper extends ModuleWrapper> = {
|
|
|
49
48
|
instanceIdentityCheck: InstanceTypeCheck
|
|
50
49
|
moduleIdentityCheck: ModuleTypeCheck
|
|
51
50
|
requiredQueries: string[]
|
|
52
|
-
new (params: ModuleWrapperParams<TWrapper['
|
|
51
|
+
new (params: ModuleWrapperParams<TWrapper['mod']>): TWrapper
|
|
53
52
|
|
|
54
|
-
canWrap(
|
|
53
|
+
canWrap(mod: Module | undefined): boolean
|
|
55
54
|
|
|
56
55
|
is<TModuleWrapper extends ModuleWrapper>(
|
|
57
56
|
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
@@ -59,23 +58,16 @@ 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
61
|
tryWrap<TModuleWrapper extends ModuleWrapper>(
|
|
64
62
|
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
65
|
-
|
|
66
|
-
): TModuleWrapper | undefined
|
|
67
|
-
tryWrap<TModuleWrapper extends ModuleWrapper>(
|
|
68
|
-
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
69
|
-
module: Module | undefined,
|
|
63
|
+
mod: Module | undefined,
|
|
70
64
|
account: AccountInstance,
|
|
71
65
|
checkIdentity?: boolean,
|
|
72
66
|
): TModuleWrapper | undefined
|
|
73
67
|
|
|
74
|
-
/** @deprecated pass an account for second parameter */
|
|
75
|
-
wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, module: Module | undefined): TModuleWrapper
|
|
76
68
|
wrap<TModuleWrapper extends ModuleWrapper>(
|
|
77
69
|
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
78
|
-
|
|
70
|
+
mod: Module | undefined,
|
|
79
71
|
account: AccountInstance,
|
|
80
72
|
checkIdentity?: boolean,
|
|
81
73
|
): TModuleWrapper
|
|
@@ -107,12 +99,12 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
107
99
|
|
|
108
100
|
constructor(params: ModuleWrapperParams<TWrappedModule>) {
|
|
109
101
|
const mutatedWrapperParams = { ...params } as ModuleWrapperParams<TWrappedModule>
|
|
110
|
-
const mutatedParams = { ...params.
|
|
102
|
+
const mutatedParams = { ...params.mod.params, config: { ...params.mod.params.config } } as Exclude<
|
|
111
103
|
Omit<TWrappedModule['params'], 'config'> & { config: Exclude<TWrappedModule['params']['config'], undefined> },
|
|
112
104
|
undefined
|
|
113
105
|
>
|
|
114
106
|
|
|
115
|
-
//set the root params to the wrapped
|
|
107
|
+
//set the root params to the wrapped mod params
|
|
116
108
|
super(mutatedParams)
|
|
117
109
|
this.wrapperParams = mutatedWrapperParams
|
|
118
110
|
}
|
|
@@ -126,16 +118,16 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
126
118
|
}
|
|
127
119
|
|
|
128
120
|
get address() {
|
|
129
|
-
return this.
|
|
121
|
+
return this.mod.address
|
|
130
122
|
}
|
|
131
123
|
|
|
132
124
|
get config() {
|
|
133
|
-
return this.
|
|
125
|
+
return this.mod.config as Exclude<TWrappedModule['params']['config'], undefined>
|
|
134
126
|
}
|
|
135
127
|
|
|
136
128
|
get downResolver(): ModuleResolverInstance {
|
|
137
129
|
//Should we be allowing this?
|
|
138
|
-
const instance: AttachableModuleInstance | undefined = asAttachableModuleInstance(this.
|
|
130
|
+
const instance: AttachableModuleInstance | undefined = asAttachableModuleInstance(this.mod)
|
|
139
131
|
if (instance) {
|
|
140
132
|
return instance.downResolver as ModuleResolverInstance
|
|
141
133
|
}
|
|
@@ -143,15 +135,15 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
143
135
|
}
|
|
144
136
|
|
|
145
137
|
get id() {
|
|
146
|
-
return this.
|
|
138
|
+
return this.mod.id
|
|
147
139
|
}
|
|
148
140
|
|
|
149
|
-
get
|
|
150
|
-
return this.
|
|
141
|
+
get mod() {
|
|
142
|
+
return this.wrapperParams.mod
|
|
151
143
|
}
|
|
152
144
|
|
|
153
|
-
get
|
|
154
|
-
return this.
|
|
145
|
+
get modName() {
|
|
146
|
+
return this.mod.modName
|
|
155
147
|
}
|
|
156
148
|
|
|
157
149
|
get priority() {
|
|
@@ -160,7 +152,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
160
152
|
|
|
161
153
|
get privateResolver(): ModuleResolverInstance {
|
|
162
154
|
//Should we be allowing this?
|
|
163
|
-
const instance = asAttachableModuleInstance(this.
|
|
155
|
+
const instance = asAttachableModuleInstance(this.mod)
|
|
164
156
|
if (instance) {
|
|
165
157
|
return instance.privateResolver as ModuleResolverInstance
|
|
166
158
|
}
|
|
@@ -168,7 +160,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
168
160
|
}
|
|
169
161
|
|
|
170
162
|
get queries(): string[] {
|
|
171
|
-
return this.
|
|
163
|
+
return this.mod.queries
|
|
172
164
|
}
|
|
173
165
|
|
|
174
166
|
get status() {
|
|
@@ -177,7 +169,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
177
169
|
|
|
178
170
|
get upResolver(): ModuleResolverInstance {
|
|
179
171
|
//Should we be allowing this?
|
|
180
|
-
const instance = asAttachableModuleInstance(this.
|
|
172
|
+
const instance = asAttachableModuleInstance(this.mod)
|
|
181
173
|
if (instance) {
|
|
182
174
|
return instance.upResolver as ModuleResolverInstance
|
|
183
175
|
}
|
|
@@ -190,12 +182,12 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
190
182
|
}
|
|
191
183
|
}
|
|
192
184
|
|
|
193
|
-
static canWrap(
|
|
194
|
-
return !!
|
|
185
|
+
static canWrap(mod?: Module) {
|
|
186
|
+
return !!mod && this.moduleIdentityCheck(mod)
|
|
195
187
|
}
|
|
196
188
|
|
|
197
|
-
static hasRequiredQueries(
|
|
198
|
-
return this.missingRequiredQueries(
|
|
189
|
+
static hasRequiredQueries(mod: Module) {
|
|
190
|
+
return this.missingRequiredQueries(mod).length === 0
|
|
199
191
|
}
|
|
200
192
|
|
|
201
193
|
static is<TModuleWrapper extends ModuleWrapper>(
|
|
@@ -206,72 +198,53 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
206
198
|
return wrapper instanceof this
|
|
207
199
|
}
|
|
208
200
|
|
|
209
|
-
static missingRequiredQueries(
|
|
210
|
-
const
|
|
201
|
+
static missingRequiredQueries(mod: Module): string[] {
|
|
202
|
+
const modQueries = mod.queries
|
|
211
203
|
return compact(
|
|
212
204
|
this.requiredQueries.map((query) => {
|
|
213
|
-
return
|
|
205
|
+
return modQueries.includes(query) ? null : query
|
|
214
206
|
}),
|
|
215
207
|
)
|
|
216
208
|
}
|
|
217
209
|
|
|
218
|
-
/** @deprecated pass an account for second parameter */
|
|
219
210
|
static tryWrap<TModuleWrapper extends ModuleWrapper>(
|
|
220
211
|
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
221
|
-
|
|
222
|
-
): TModuleWrapper | undefined
|
|
223
|
-
static tryWrap<TModuleWrapper extends ModuleWrapper>(
|
|
224
|
-
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
225
|
-
module: Module | undefined,
|
|
212
|
+
mod: Module | undefined,
|
|
226
213
|
account: AccountInstance,
|
|
227
|
-
checkIdentity?: boolean,
|
|
228
|
-
): TModuleWrapper | undefined
|
|
229
|
-
static tryWrap<TModuleWrapper extends ModuleWrapper>(
|
|
230
|
-
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
231
|
-
module: Module | undefined,
|
|
232
|
-
account?: AccountInstance,
|
|
233
214
|
checkIdentity = true,
|
|
234
215
|
): TModuleWrapper | undefined {
|
|
235
|
-
if (!checkIdentity || this.canWrap(
|
|
216
|
+
if (!checkIdentity || this.canWrap(mod)) {
|
|
236
217
|
if (!account) {
|
|
237
218
|
this.defaultLogger?.info('Anonymous Module Wrapper Created')
|
|
238
219
|
}
|
|
239
|
-
return new this({ account
|
|
220
|
+
return new this({ account, mod: mod as TModuleWrapper['mod'] })
|
|
240
221
|
}
|
|
241
222
|
}
|
|
242
223
|
|
|
243
224
|
static with<TModuleWrapper extends ModuleWrapper, R extends Promisable<void> = void>(
|
|
244
225
|
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
245
226
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
246
|
-
|
|
227
|
+
mod: any,
|
|
247
228
|
|
|
248
|
-
closure: (
|
|
229
|
+
closure: (mod: TModuleWrapper) => R,
|
|
249
230
|
): R | undefined {
|
|
250
|
-
return this.is(
|
|
231
|
+
return this.is(mod) ? closure(mod) : undefined
|
|
251
232
|
}
|
|
252
233
|
|
|
253
|
-
/** @deprecated pass an account for second parameter */
|
|
254
|
-
static wrap<TModuleWrapper extends ModuleWrapper>(this: ConstructableModuleWrapper<TModuleWrapper>, module: Module | undefined): TModuleWrapper
|
|
255
234
|
static wrap<TModuleWrapper extends ModuleWrapper>(
|
|
256
235
|
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
257
|
-
|
|
236
|
+
mod: Module | undefined,
|
|
258
237
|
account: AccountInstance,
|
|
259
|
-
checkIdentity?: boolean,
|
|
260
|
-
): TModuleWrapper
|
|
261
|
-
static wrap<TModuleWrapper extends ModuleWrapper>(
|
|
262
|
-
this: ConstructableModuleWrapper<TModuleWrapper>,
|
|
263
|
-
module: Module | undefined,
|
|
264
|
-
account?: AccountInstance,
|
|
265
238
|
checkIdentity = true,
|
|
266
239
|
): TModuleWrapper {
|
|
267
|
-
assertEx(!checkIdentity || (
|
|
268
|
-
return assertEx(this.tryWrap(
|
|
240
|
+
assertEx(!checkIdentity || (mod && this.moduleIdentityCheck(mod)), () => `Passed mod failed identity check: ${mod?.config?.schema}`)
|
|
241
|
+
return assertEx(this.tryWrap(mod, account, checkIdentity), () => 'Unable to wrap mod as ModuleWrapper')
|
|
269
242
|
}
|
|
270
243
|
|
|
271
|
-
addParent(
|
|
272
|
-
const existingEntry = this._parents.find((parent) => parent.address ===
|
|
244
|
+
addParent(mod: ModuleInstance) {
|
|
245
|
+
const existingEntry = this._parents.find((parent) => parent.address === mod.address)
|
|
273
246
|
if (!existingEntry) {
|
|
274
|
-
this._parents.push(
|
|
247
|
+
this._parents.push(mod)
|
|
275
248
|
}
|
|
276
249
|
}
|
|
277
250
|
|
|
@@ -284,19 +257,19 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
284
257
|
}
|
|
285
258
|
|
|
286
259
|
clearListeners(eventNames: Parameters<TWrappedModule['clearListeners']>[0]) {
|
|
287
|
-
return this.
|
|
260
|
+
return this.mod.clearListeners(eventNames)
|
|
288
261
|
}
|
|
289
262
|
|
|
290
263
|
emit(eventName: Parameters<TWrappedModule['emit']>[0], eventArgs: Parameters<TWrappedModule['emit']>[1]) {
|
|
291
|
-
return this.
|
|
264
|
+
return this.mod.emit(eventName, eventArgs)
|
|
292
265
|
}
|
|
293
266
|
|
|
294
267
|
emitSerial(eventName: Parameters<TWrappedModule['emitSerial']>[0], eventArgs: Parameters<TWrappedModule['emitSerial']>[1]) {
|
|
295
|
-
return this.
|
|
268
|
+
return this.mod.emitSerial(eventName, eventArgs)
|
|
296
269
|
}
|
|
297
270
|
|
|
298
271
|
listenerCount(eventNames: Parameters<TWrappedModule['listenerCount']>[0]) {
|
|
299
|
-
return this.
|
|
272
|
+
return this.mod.listenerCount(eventNames)
|
|
300
273
|
}
|
|
301
274
|
|
|
302
275
|
async manifest(maxDepth?: number): Promise<ModuleManifestPayload> {
|
|
@@ -318,26 +291,26 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
318
291
|
eventNames: TEventName,
|
|
319
292
|
listener: EventListener<TWrappedModule['eventData'][TEventName]>,
|
|
320
293
|
) {
|
|
321
|
-
return this.
|
|
294
|
+
return this.mod.off(eventNames, listener)
|
|
322
295
|
}
|
|
323
296
|
|
|
324
297
|
offAny(listener: EventAnyListener) {
|
|
325
|
-
return this.
|
|
298
|
+
return this.mod.offAny(listener)
|
|
326
299
|
}
|
|
327
300
|
|
|
328
301
|
on<TEventName extends keyof TWrappedModule['eventData']>(eventNames: TEventName, listener: EventListener<TWrappedModule['eventData'][TEventName]>) {
|
|
329
|
-
return this.
|
|
302
|
+
return this.mod.on(eventNames, listener)
|
|
330
303
|
}
|
|
331
304
|
|
|
332
305
|
onAny(listener: EventAnyListener) {
|
|
333
|
-
return this.
|
|
306
|
+
return this.mod.onAny(listener)
|
|
334
307
|
}
|
|
335
308
|
|
|
336
309
|
once<TEventName extends keyof TWrappedModule['eventData']>(
|
|
337
310
|
eventName: TEventName,
|
|
338
311
|
listener: EventListener<TWrappedModule['eventData'][TEventName]>,
|
|
339
312
|
) {
|
|
340
|
-
return this.
|
|
313
|
+
return this.mod.once(eventName, listener)
|
|
341
314
|
}
|
|
342
315
|
|
|
343
316
|
parents(): Promisable<ModuleInstance[]> {
|
|
@@ -355,25 +328,25 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
355
328
|
}
|
|
356
329
|
|
|
357
330
|
async privateChildren(): Promise<ModuleInstance[]> {
|
|
358
|
-
if (isModuleInstance(this.
|
|
359
|
-
return await this.
|
|
331
|
+
if (isModuleInstance(this.mod)) {
|
|
332
|
+
return await this.mod.privateChildren()
|
|
360
333
|
}
|
|
361
334
|
return []
|
|
362
335
|
}
|
|
363
336
|
|
|
364
337
|
async publicChildren(): Promise<ModuleInstance[]> {
|
|
365
|
-
if (isModuleInstance(this.
|
|
366
|
-
return await this.
|
|
338
|
+
if (isModuleInstance(this.mod)) {
|
|
339
|
+
return await this.mod.publicChildren()
|
|
367
340
|
}
|
|
368
341
|
return []
|
|
369
342
|
}
|
|
370
343
|
|
|
371
344
|
async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {
|
|
372
|
-
return await this.
|
|
345
|
+
return await this.mod.query(query, payloads)
|
|
373
346
|
}
|
|
374
347
|
|
|
375
348
|
queryable<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]) {
|
|
376
|
-
return this.
|
|
349
|
+
return this.mod.queryable(query, payloads)
|
|
377
350
|
}
|
|
378
351
|
|
|
379
352
|
removeParent(address: Address) {
|
|
@@ -394,7 +367,7 @@ export class ModuleWrapper<TWrappedModule extends Module = Module>
|
|
|
394
367
|
idOrFilter: ModuleIdentifier | ModuleFilter<T> = '*',
|
|
395
368
|
options?: ModuleFilterOptions<T>,
|
|
396
369
|
): Promise<T | T[] | undefined> {
|
|
397
|
-
const instance = asModuleInstance(this.
|
|
370
|
+
const instance = asModuleInstance(this.mod)
|
|
398
371
|
if (instance?.['resolve']) {
|
|
399
372
|
if (idOrFilter === '*') {
|
|
400
373
|
return await instance.resolve<T>('*', options)
|
package/src/models.ts
CHANGED