@xyo-network/module-model 2.66.9 → 2.67.0-rc.2
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/cjs/CreatableModule.js.map +1 -1
- package/dist/cjs/ModuleFactory.js.map +1 -1
- package/dist/cjs/index.js +2 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instance/ModuleFilter.js.map +1 -0
- package/dist/cjs/instance/ModuleInstance.js +3 -0
- package/dist/cjs/instance/ModuleInstance.js.map +1 -0
- package/dist/cjs/instance/ModuleRepository.js.map +1 -0
- package/dist/cjs/instance/ModuleResolver.js +3 -0
- package/dist/cjs/instance/ModuleResolver.js.map +1 -0
- package/dist/cjs/instance/ResolveFunctions.js +3 -0
- package/dist/cjs/instance/ResolveFunctions.js.map +1 -0
- package/dist/cjs/instance/identity/IsInstanceFactory.js +8 -0
- package/dist/cjs/instance/identity/IsInstanceFactory.js.map +1 -0
- package/dist/cjs/instance/identity/asModuleInstance.js +7 -0
- package/dist/cjs/instance/identity/asModuleInstance.js.map +1 -0
- package/dist/cjs/instance/identity/index.js +7 -0
- package/dist/cjs/instance/identity/index.js.map +1 -0
- package/dist/cjs/instance/identity/isModuleInstance.js +15 -0
- package/dist/cjs/instance/identity/isModuleInstance.js.map +1 -0
- package/dist/cjs/instance/index.js +10 -0
- package/dist/cjs/instance/index.js.map +1 -0
- package/dist/{esm → cjs/module}/Module.js.map +1 -1
- package/dist/cjs/module/ModuleEvents.js +3 -0
- package/dist/cjs/module/ModuleEvents.js.map +1 -0
- package/dist/cjs/module/ModuleFields.js +3 -0
- package/dist/cjs/module/ModuleFields.js.map +1 -0
- package/dist/cjs/module/identity/IsModuleFactory.js +20 -0
- package/dist/cjs/module/identity/IsModuleFactory.js.map +1 -0
- package/dist/cjs/module/identity/ModuleQueryFunctions.js +3 -0
- package/dist/cjs/module/identity/ModuleQueryFunctions.js.map +1 -0
- package/dist/cjs/module/identity/asModule.js +7 -0
- package/dist/cjs/module/identity/asModule.js.map +1 -0
- package/dist/cjs/module/identity/asModuleObject.js +7 -0
- package/dist/cjs/module/identity/asModuleObject.js.map +1 -0
- package/dist/cjs/module/identity/index.js +10 -0
- package/dist/cjs/module/identity/index.js.map +1 -0
- package/dist/cjs/module/identity/isModule.js +18 -0
- package/dist/cjs/module/identity/isModule.js.map +1 -0
- package/dist/cjs/module/identity/isModuleObject.js +15 -0
- package/dist/cjs/module/identity/isModuleObject.js.map +1 -0
- package/dist/cjs/module/index.js +8 -0
- package/dist/cjs/module/index.js.map +1 -0
- package/dist/cjs/withModule.js +4 -3
- package/dist/cjs/withModule.js.map +1 -1
- package/dist/esm/CreatableModule.js.map +1 -1
- package/dist/esm/ModuleFactory.js.map +1 -1
- package/dist/esm/index.js +2 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instance/ModuleFilter.js.map +1 -0
- package/dist/esm/instance/ModuleInstance.js +2 -0
- package/dist/esm/instance/ModuleInstance.js.map +1 -0
- package/dist/esm/instance/ModuleRepository.js.map +1 -0
- package/dist/esm/instance/ModuleResolver.js +2 -0
- package/dist/esm/instance/ModuleResolver.js.map +1 -0
- package/dist/esm/instance/ResolveFunctions.js +2 -0
- package/dist/esm/instance/ResolveFunctions.js.map +1 -0
- package/dist/esm/instance/identity/IsInstanceFactory.js +4 -0
- package/dist/esm/instance/identity/IsInstanceFactory.js.map +1 -0
- package/dist/esm/instance/identity/asModuleInstance.js +4 -0
- package/dist/esm/instance/identity/asModuleInstance.js.map +1 -0
- package/dist/esm/instance/identity/index.js +4 -0
- package/dist/esm/instance/identity/index.js.map +1 -0
- package/dist/esm/instance/identity/isModuleInstance.js +12 -0
- package/dist/esm/instance/identity/isModuleInstance.js.map +1 -0
- package/dist/esm/instance/index.js +7 -0
- package/dist/esm/instance/index.js.map +1 -0
- package/dist/{cjs → esm/module}/Module.js.map +1 -1
- package/dist/esm/module/ModuleEvents.js +2 -0
- package/dist/esm/module/ModuleEvents.js.map +1 -0
- package/dist/esm/module/ModuleFields.js +2 -0
- package/dist/esm/module/ModuleFields.js.map +1 -0
- package/dist/esm/module/identity/IsModuleFactory.js +15 -0
- package/dist/esm/module/identity/IsModuleFactory.js.map +1 -0
- package/dist/esm/module/identity/ModuleQueryFunctions.js +2 -0
- package/dist/esm/module/identity/ModuleQueryFunctions.js.map +1 -0
- package/dist/esm/module/identity/asModule.js +4 -0
- package/dist/esm/module/identity/asModule.js.map +1 -0
- package/dist/esm/module/identity/asModuleObject.js +4 -0
- package/dist/esm/module/identity/asModuleObject.js.map +1 -0
- package/dist/esm/module/identity/index.js +7 -0
- package/dist/esm/module/identity/index.js.map +1 -0
- package/dist/esm/module/identity/isModule.js +15 -0
- package/dist/esm/module/identity/isModule.js.map +1 -0
- package/dist/esm/module/identity/isModuleObject.js +12 -0
- package/dist/esm/module/identity/isModuleObject.js.map +1 -0
- package/dist/esm/module/index.js +5 -0
- package/dist/esm/module/index.js.map +1 -0
- package/dist/esm/withModule.js +2 -1
- package/dist/esm/withModule.js.map +1 -1
- package/dist/types/CreatableModule.d.ts +10 -9
- package/dist/types/CreatableModule.d.ts.map +1 -1
- package/dist/types/Events/ModuleBusy.d.ts +1 -1
- package/dist/types/Events/ModuleError.d.ts +1 -1
- package/dist/types/Events/ModuleQueried.d.ts +1 -1
- package/dist/types/ModuleFactory.d.ts +14 -8
- package/dist/types/ModuleFactory.d.ts.map +1 -1
- package/dist/types/ModuleParams.d.ts +5 -9
- package/dist/types/ModuleParams.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/{ModuleFilter.d.ts → instance/ModuleFilter.d.ts} +2 -2
- package/dist/types/instance/ModuleFilter.d.ts.map +1 -0
- package/dist/types/instance/ModuleInstance.d.ts +10 -0
- package/dist/types/instance/ModuleInstance.d.ts.map +1 -0
- package/dist/types/{ModuleRepository.d.ts → instance/ModuleRepository.d.ts} +2 -1
- package/dist/types/instance/ModuleRepository.d.ts.map +1 -0
- package/dist/types/instance/ModuleResolver.d.ts +7 -0
- package/dist/types/instance/ModuleResolver.d.ts.map +1 -0
- package/dist/types/instance/ResolveFunctions.d.ts +9 -0
- package/dist/types/instance/ResolveFunctions.d.ts.map +1 -0
- package/dist/types/instance/identity/IsInstanceFactory.d.ts +6 -0
- package/dist/types/instance/identity/IsInstanceFactory.d.ts.map +1 -0
- package/dist/types/instance/identity/asModuleInstance.d.ts +5 -0
- package/dist/types/instance/identity/asModuleInstance.d.ts.map +1 -0
- package/dist/types/instance/identity/index.d.ts +4 -0
- package/dist/types/instance/identity/index.d.ts.map +1 -0
- package/dist/types/instance/identity/isModuleInstance.d.ts +5 -0
- package/dist/types/instance/identity/isModuleInstance.d.ts.map +1 -0
- package/dist/types/instance/index.d.ts +7 -0
- package/dist/types/instance/index.d.ts.map +1 -0
- package/dist/types/lib/duplicateModules.d.ts +1 -1
- package/dist/types/module/Module.d.ts +7 -0
- package/dist/types/module/Module.d.ts.map +1 -0
- package/dist/types/module/ModuleEvents.d.ts +11 -0
- package/dist/types/module/ModuleEvents.d.ts.map +1 -0
- package/dist/types/module/ModuleFields.d.ts +18 -0
- package/dist/types/module/ModuleFields.d.ts.map +1 -0
- package/dist/types/module/identity/IsModuleFactory.d.ts +7 -0
- package/dist/types/module/identity/IsModuleFactory.d.ts.map +1 -0
- package/dist/types/module/identity/ModuleQueryFunctions.d.ts +12 -0
- package/dist/types/module/identity/ModuleQueryFunctions.d.ts.map +1 -0
- package/dist/types/module/identity/asModule.d.ts +5 -0
- package/dist/types/module/identity/asModule.d.ts.map +1 -0
- package/dist/types/module/identity/asModuleObject.d.ts +5 -0
- package/dist/types/module/identity/asModuleObject.d.ts.map +1 -0
- package/dist/types/module/identity/index.d.ts +7 -0
- package/dist/types/module/identity/index.d.ts.map +1 -0
- package/dist/types/module/identity/isModule.d.ts +5 -0
- package/dist/types/module/identity/isModule.d.ts.map +1 -0
- package/dist/types/module/identity/isModuleObject.d.ts +5 -0
- package/dist/types/module/identity/isModuleObject.d.ts.map +1 -0
- package/dist/types/module/index.d.ts +5 -0
- package/dist/types/module/index.d.ts.map +1 -0
- package/dist/types/withModule.d.ts +4 -4
- package/dist/types/withModule.d.ts.map +1 -1
- package/package.json +16 -14
- package/src/CreatableModule.ts +10 -9
- package/src/Events/ModuleBusy.ts +1 -1
- package/src/Events/ModuleError.ts +1 -1
- package/src/Events/ModuleQueried.ts +1 -1
- package/src/ModuleFactory.ts +11 -8
- package/src/ModuleParams.ts +9 -35
- package/src/index.ts +2 -5
- package/src/{ModuleFilter.ts → instance/ModuleFilter.ts} +2 -2
- package/src/instance/ModuleInstance.ts +19 -0
- package/src/{ModuleRepository.ts → instance/ModuleRepository.ts} +2 -1
- package/src/instance/ModuleResolver.ts +7 -0
- package/src/instance/ResolveFunctions.ts +13 -0
- package/src/instance/identity/IsInstanceFactory.ts +7 -0
- package/src/instance/identity/asModuleInstance.ts +5 -0
- package/src/instance/identity/index.ts +3 -0
- package/src/instance/identity/isModuleInstance.ts +16 -0
- package/src/instance/index.ts +6 -0
- package/src/lib/duplicateModules.ts +1 -1
- package/src/module/Module.ts +11 -0
- package/src/module/ModuleEvents.ts +14 -0
- package/src/module/ModuleFields.ts +31 -0
- package/src/module/identity/IsModuleFactory.ts +22 -0
- package/src/module/identity/ModuleQueryFunctions.ts +13 -0
- package/src/module/identity/asModule.ts +5 -0
- package/src/module/identity/asModuleObject.ts +5 -0
- package/src/module/identity/index.ts +6 -0
- package/src/module/identity/isModule.ts +20 -0
- package/src/module/identity/isModuleObject.ts +16 -0
- package/src/module/index.ts +4 -0
- package/src/withModule.ts +5 -2
- package/dist/cjs/ModuleFilter.js.map +0 -1
- package/dist/cjs/ModuleRepository.js.map +0 -1
- package/dist/cjs/asModule.js +0 -28
- package/dist/cjs/asModule.js.map +0 -1
- package/dist/cjs/isModule.js +0 -55
- package/dist/cjs/isModule.js.map +0 -1
- package/dist/docs.json +0 -26606
- package/dist/esm/ModuleFilter.js.map +0 -1
- package/dist/esm/ModuleRepository.js.map +0 -1
- package/dist/esm/asModule.js +0 -25
- package/dist/esm/asModule.js.map +0 -1
- package/dist/esm/isModule.js +0 -49
- package/dist/esm/isModule.js.map +0 -1
- package/dist/types/Module.d.ts +0 -53
- package/dist/types/Module.d.ts.map +0 -1
- package/dist/types/ModuleFilter.d.ts.map +0 -1
- package/dist/types/ModuleRepository.d.ts.map +0 -1
- package/dist/types/asModule.d.ts +0 -16
- package/dist/types/asModule.d.ts.map +0 -1
- package/dist/types/isModule.d.ts +0 -15
- package/dist/types/isModule.d.ts.map +0 -1
- package/src/Module.ts +0 -95
- package/src/asModule.ts +0 -39
- package/src/isModule.ts +0 -68
- /package/dist/cjs/{ModuleFilter.js → instance/ModuleFilter.js} +0 -0
- /package/dist/cjs/{ModuleRepository.js → instance/ModuleRepository.js} +0 -0
- /package/dist/cjs/{Module.js → module/Module.js} +0 -0
- /package/dist/esm/{ModuleFilter.js → instance/ModuleFilter.js} +0 -0
- /package/dist/esm/{ModuleRepository.js → instance/ModuleRepository.js} +0 -0
- /package/dist/esm/{Module.js → module/Module.js} +0 -0
package/src/CreatableModule.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AccountInstance } from '@xyo-network/account-model'
|
|
2
|
+
import { Logger } from '@xyo-network/logger'
|
|
2
3
|
|
|
3
|
-
import {
|
|
4
|
+
import { ModuleInstance } from './instance'
|
|
4
5
|
|
|
5
|
-
export interface CreatableModule<T extends
|
|
6
|
+
export interface CreatableModule<T extends ModuleInstance = ModuleInstance> {
|
|
6
7
|
configSchema: string
|
|
7
8
|
configSchemas: string[]
|
|
8
9
|
defaultLogger?: Logger
|
|
9
|
-
new (privateConstructorKey: string, params: T['params']): T
|
|
10
|
-
create<T extends
|
|
11
|
-
factory<T extends
|
|
10
|
+
new (privateConstructorKey: string, params: T['params'], account: AccountInstance): T
|
|
11
|
+
create<T extends ModuleInstance>(this: CreatableModule<T>, params?: T['params']): Promise<T>
|
|
12
|
+
factory<T extends ModuleInstance>(this: CreatableModule<T>, params?: T['params']): CreatableModuleFactory<T>
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
export type CreatableModuleFactory<T extends
|
|
15
|
-
create<T extends
|
|
15
|
+
export type CreatableModuleFactory<T extends ModuleInstance = ModuleInstance> = Omit<Omit<CreatableModule<T>, 'new'>, 'create'> & {
|
|
16
|
+
create<T extends ModuleInstance>(this: CreatableModuleFactory<T>, params?: T['params']): Promise<T>
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -21,7 +22,7 @@ export type CreatableModuleFactory<T extends Module = Module> = Omit<Omit<Creata
|
|
|
21
22
|
* @returns The decorated Module requiring it implement the members
|
|
22
23
|
* of the CreatableModule as statics properties/methods
|
|
23
24
|
*/
|
|
24
|
-
export function creatableModule<TModule extends
|
|
25
|
+
export function creatableModule<TModule extends ModuleInstance = ModuleInstance>() {
|
|
25
26
|
return <U extends CreatableModule<TModule>>(constructor: U) => {
|
|
26
27
|
constructor
|
|
27
28
|
}
|
package/src/Events/ModuleBusy.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventData } from '@xyo-network/module-events'
|
|
2
2
|
|
|
3
|
-
import { Module, ModuleEventArgs } from '../
|
|
3
|
+
import { Module, ModuleEventArgs } from '../module'
|
|
4
4
|
|
|
5
5
|
export type ModuleBusyEventArgs<TModule extends Module = Module> = ModuleEventArgs<TModule, { busy: boolean }>
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventData } from '@xyo-network/module-events'
|
|
2
2
|
|
|
3
|
-
import { Module, ModuleEventArgs } from '../
|
|
3
|
+
import { Module, ModuleEventArgs } from '../module'
|
|
4
4
|
|
|
5
5
|
export type ModuleErrorEventArgs<TModule extends Module = Module> = ModuleEventArgs<TModule, { error: Error }>
|
|
6
6
|
|
|
@@ -2,7 +2,7 @@ import { QueryBoundWitness } from '@xyo-network/boundwitness-builder'
|
|
|
2
2
|
import { EventData } from '@xyo-network/module-events'
|
|
3
3
|
import { Payload } from '@xyo-network/payload-model'
|
|
4
4
|
|
|
5
|
-
import { Module, ModuleEventArgs } from '../
|
|
5
|
+
import { Module, ModuleEventArgs } from '../module'
|
|
6
6
|
import { ModuleQueryResult } from '../ModuleQueryResult'
|
|
7
7
|
|
|
8
8
|
export type ModuleQueriedEventArgs<TModule extends Module = Module> = ModuleEventArgs<
|
package/src/ModuleFactory.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Logger } from '@xyo-network/
|
|
1
|
+
import { Logger } from '@xyo-network/logger'
|
|
2
2
|
import merge from 'lodash/merge'
|
|
3
3
|
|
|
4
4
|
import { CreatableModule, CreatableModuleFactory } from './CreatableModule'
|
|
5
|
-
import {
|
|
5
|
+
import { ModuleInstance } from './instance'
|
|
6
6
|
|
|
7
|
-
export class ModuleFactory<TModule extends
|
|
7
|
+
export class ModuleFactory<TModule extends ModuleInstance> implements CreatableModuleFactory<TModule> {
|
|
8
8
|
configSchemas: CreatableModuleFactory<TModule>['configSchemas']
|
|
9
9
|
|
|
10
10
|
creatableModule: CreatableModule<TModule>
|
|
11
11
|
|
|
12
12
|
defaultLogger?: Logger | undefined
|
|
13
13
|
|
|
14
|
-
defaultParams?: TModule['params']
|
|
14
|
+
defaultParams?: Omit<TModule['params'], 'config'> & { config?: TModule['params']['config'] }
|
|
15
15
|
|
|
16
|
-
constructor(creatableModule: CreatableModule<TModule>, params?: TModule['params']) {
|
|
16
|
+
constructor(creatableModule: CreatableModule<TModule>, params?: Omit<TModule['params'], 'config'> & { config?: TModule['params']['config'] }) {
|
|
17
17
|
this.creatableModule = creatableModule
|
|
18
18
|
this.defaultParams = params
|
|
19
19
|
this.configSchemas = creatableModule.configSchemas
|
|
@@ -23,18 +23,21 @@ export class ModuleFactory<TModule extends Module> implements CreatableModuleFac
|
|
|
23
23
|
return this.configSchemas[0]
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
static withParams<T extends
|
|
26
|
+
static withParams<T extends ModuleInstance>(
|
|
27
|
+
creatableModule: CreatableModule<T>,
|
|
28
|
+
params?: Omit<T['params'], 'config'> & { config?: T['params']['config'] },
|
|
29
|
+
) {
|
|
27
30
|
return new ModuleFactory(creatableModule, params)
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
create<T extends
|
|
33
|
+
create<T extends ModuleInstance>(this: CreatableModuleFactory<T>, params?: TModule['params'] | undefined): Promise<T> {
|
|
31
34
|
const factory = this as ModuleFactory<T>
|
|
32
35
|
const schema = factory.creatableModule.configSchema
|
|
33
36
|
const mergedParams: TModule['params'] = merge(factory.defaultParams ?? {}, params, { config: { schema } })
|
|
34
37
|
return factory.creatableModule.create<T>(mergedParams)
|
|
35
38
|
}
|
|
36
39
|
|
|
37
|
-
factory<T extends
|
|
40
|
+
factory<T extends ModuleInstance>(this: CreatableModule<T>, _params?: T['params'] | undefined): CreatableModuleFactory<T> {
|
|
38
41
|
throw new Error('Method not implemented.')
|
|
39
42
|
}
|
|
40
43
|
}
|
package/src/ModuleParams.ts
CHANGED
|
@@ -4,47 +4,21 @@ import { WalletInstance } from '@xyo-network/wallet-model'
|
|
|
4
4
|
|
|
5
5
|
import { AnyConfigSchema, ModuleConfig } from './Config'
|
|
6
6
|
|
|
7
|
-
export type BasicModuleParams<
|
|
7
|
+
export type BasicModuleParams<
|
|
8
|
+
TConfig extends AnyConfigSchema<ModuleConfig>,
|
|
9
|
+
TAdditionalParams extends AnyObject | undefined = undefined,
|
|
10
|
+
> = WithAdditional<
|
|
8
11
|
BaseParams<{
|
|
12
|
+
account?: AccountInstance | 'random'
|
|
13
|
+
accountDerivationPath?: string
|
|
9
14
|
config: TConfig
|
|
10
15
|
ephemeralQueryAccountEnabled?: boolean
|
|
16
|
+
wallet?: WalletInstance
|
|
11
17
|
}>,
|
|
12
18
|
TAdditionalParams
|
|
13
19
|
>
|
|
14
20
|
|
|
15
|
-
export type AccountModuleParams<
|
|
16
|
-
TConfig extends AnyConfigSchema<ModuleConfig>,
|
|
17
|
-
TAdditionalParams extends AnyObject | undefined = undefined,
|
|
18
|
-
> = BasicModuleParams<
|
|
19
|
-
TConfig,
|
|
20
|
-
WithAdditional<
|
|
21
|
-
{
|
|
22
|
-
account: AccountInstance
|
|
23
|
-
},
|
|
24
|
-
TAdditionalParams
|
|
25
|
-
>
|
|
26
|
-
>
|
|
27
|
-
|
|
28
|
-
export type WalletModuleParams<
|
|
29
|
-
TConfig extends AnyConfigSchema<ModuleConfig>,
|
|
30
|
-
TAdditionalParams extends AnyObject | undefined = undefined,
|
|
31
|
-
> = BasicModuleParams<
|
|
32
|
-
TConfig,
|
|
33
|
-
WithAdditional<
|
|
34
|
-
{
|
|
35
|
-
accountDerivationPath: string
|
|
36
|
-
wallet: WalletInstance
|
|
37
|
-
},
|
|
38
|
-
TAdditionalParams
|
|
39
|
-
>
|
|
40
|
-
>
|
|
41
|
-
|
|
42
21
|
export type ModuleParams<
|
|
43
|
-
TConfig extends AnyConfigSchema<ModuleConfig> =
|
|
22
|
+
TConfig extends AnyConfigSchema<ModuleConfig> = ModuleConfig,
|
|
44
23
|
TAdditionalParams extends AnyObject | undefined = undefined,
|
|
45
|
-
> =
|
|
46
|
-
| AccountModuleParams<TConfig, TAdditionalParams>
|
|
47
|
-
| WalletModuleParams<TConfig, TAdditionalParams>
|
|
48
|
-
| BasicModuleParams<TConfig, TAdditionalParams>
|
|
49
|
-
) &
|
|
50
|
-
BasicModuleParams<TConfig, TAdditionalParams>
|
|
24
|
+
> = BasicModuleParams<TConfig, TAdditionalParams>
|
package/src/index.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
export * from './asModule'
|
|
2
1
|
export * from './Config'
|
|
3
2
|
export * from './CreatableModule'
|
|
4
3
|
export * from './CreatableModuleDictionary'
|
|
5
4
|
export * from './Events'
|
|
6
|
-
export * from './
|
|
5
|
+
export * from './instance'
|
|
7
6
|
export * from './lib'
|
|
8
|
-
export * from './
|
|
7
|
+
export * from './module'
|
|
9
8
|
export * from './ModuleDescription'
|
|
10
9
|
export * from './ModuleFactory'
|
|
11
|
-
export * from './ModuleFilter'
|
|
12
10
|
export * from './ModuleParams'
|
|
13
11
|
export * from './ModuleQueryResult'
|
|
14
|
-
export * from './ModuleRepository'
|
|
15
12
|
export * from './Queries'
|
|
16
13
|
export * from './withModule'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InstanceTypeCheck } from './
|
|
2
|
-
import { ModuleInstance } from './
|
|
1
|
+
import { InstanceTypeCheck } from './identity'
|
|
2
|
+
import { ModuleInstance } from './ModuleInstance'
|
|
3
3
|
|
|
4
4
|
export interface ModuleFilterOptions<TInstance extends ModuleInstance = ModuleInstance> {
|
|
5
5
|
direction?: 'up' | 'down' | 'all'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AnyConfigSchema, ModuleConfig } from '../Config'
|
|
2
|
+
import { Module, ModuleEventData, ModuleQueryFunctions } from '../module'
|
|
3
|
+
import { ModuleParams } from '../ModuleParams'
|
|
4
|
+
import { ModuleResolver } from './ModuleResolver'
|
|
5
|
+
import { ResolveFunctions } from './ResolveFunctions'
|
|
6
|
+
|
|
7
|
+
export type ModuleInstance<
|
|
8
|
+
TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
|
|
9
|
+
TEventData extends ModuleEventData = ModuleEventData,
|
|
10
|
+
> = Module<TParams, TEventData> &
|
|
11
|
+
ResolveFunctions &
|
|
12
|
+
ModuleQueryFunctions & {
|
|
13
|
+
/* The resolver is a 'down' resolver. It can resolve the module or any children (if it is a node for example), that are in the module*/
|
|
14
|
+
readonly downResolver: Omit<ModuleResolver, 'resolve'>
|
|
15
|
+
|
|
16
|
+
/* The resolver is a 'up' resolver. It can resolve the parent or any children of the parent*/
|
|
17
|
+
/* This is set by a NodeModule when attaching to the module */
|
|
18
|
+
readonly upResolver: Omit<ModuleResolver, 'resolve'>
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Promisable } from '@xyo-network/promise'
|
|
2
|
+
|
|
3
|
+
import { ModuleFilter, ModuleFilterOptions } from './ModuleFilter'
|
|
4
|
+
import { ModuleInstance } from './ModuleInstance'
|
|
5
|
+
|
|
6
|
+
export interface ResolveFunctions {
|
|
7
|
+
resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promisable<ModuleInstance[]>
|
|
8
|
+
resolve(nameOrAddress: string, options?: ModuleFilterOptions): Promisable<ModuleInstance | undefined>
|
|
9
|
+
resolve(
|
|
10
|
+
nameOrAddressOrFilter?: ModuleFilter | string,
|
|
11
|
+
options?: ModuleFilterOptions<ModuleInstance>,
|
|
12
|
+
): Promisable<ModuleInstance | ModuleInstance[] | undefined>
|
|
13
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IsObjectFactory, ObjectTypeCheck } from '@xyo-network/object-identity'
|
|
2
|
+
|
|
3
|
+
import { ModuleInstance } from '../ModuleInstance'
|
|
4
|
+
|
|
5
|
+
export type InstanceTypeCheck<T extends ModuleInstance = ModuleInstance> = ObjectTypeCheck<T>
|
|
6
|
+
|
|
7
|
+
export class IsInstanceFactory<T extends ModuleInstance = ModuleInstance> extends IsObjectFactory<T> {}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object-identity'
|
|
2
|
+
|
|
3
|
+
import { isModule } from '../../module'
|
|
4
|
+
import { ModuleInstance } from '../ModuleInstance'
|
|
5
|
+
|
|
6
|
+
export const requiredModuleInstanceFunctions: ObjectTypeShape = {
|
|
7
|
+
describe: 'function',
|
|
8
|
+
discover: 'function',
|
|
9
|
+
manifest: 'function',
|
|
10
|
+
moduleAddress: 'function',
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//we do not use IsInstanceFactory here to prevent a cycle
|
|
14
|
+
const factory = new IsObjectFactory<ModuleInstance>()
|
|
15
|
+
|
|
16
|
+
export const isModuleInstance: ObjectTypeCheck<ModuleInstance> = factory.create(requiredModuleInstanceFunctions, [isModule])
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EventFunctions } from '@xyo-network/module-events'
|
|
2
|
+
|
|
3
|
+
import { AnyConfigSchema, ModuleConfig } from '../Config'
|
|
4
|
+
import { ModuleParams } from '../ModuleParams'
|
|
5
|
+
import { ModuleEventData } from './ModuleEvents'
|
|
6
|
+
import { ModuleFields } from './ModuleFields'
|
|
7
|
+
|
|
8
|
+
export type Module<
|
|
9
|
+
TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
|
|
10
|
+
TEventData extends ModuleEventData = ModuleEventData,
|
|
11
|
+
> = ModuleFields<TParams> & EventFunctions<TEventData>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventArgs } from '@xyo-network/module-events'
|
|
2
|
+
|
|
3
|
+
import { ModuleBusyEventData, ModuleErrorEventData, ModuleQueriedEventData } from '../Events'
|
|
4
|
+
import { Module } from './Module'
|
|
5
|
+
|
|
6
|
+
export type ModuleEventArgs<TModule extends Module = Module, TArgs extends EventArgs | undefined = undefined> = TArgs extends EventArgs
|
|
7
|
+
? {
|
|
8
|
+
module: TModule
|
|
9
|
+
} & TArgs
|
|
10
|
+
: {
|
|
11
|
+
module: TModule
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface ModuleEventData extends ModuleQueriedEventData, ModuleBusyEventData, ModuleErrorEventData {}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { QueryBoundWitness } from '@xyo-network/boundwitness-builder'
|
|
2
|
+
import { Payload } from '@xyo-network/payload-model'
|
|
3
|
+
import { Promisable } from '@xyo-network/promise'
|
|
4
|
+
|
|
5
|
+
import { AnyConfigSchema, ModuleConfig } from '../Config'
|
|
6
|
+
import { ModuleParams } from '../ModuleParams'
|
|
7
|
+
import { ModuleQueryResult } from '../ModuleQueryResult'
|
|
8
|
+
|
|
9
|
+
export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
|
|
10
|
+
address: string
|
|
11
|
+
config: TParams['config']
|
|
12
|
+
|
|
13
|
+
params: TParams
|
|
14
|
+
|
|
15
|
+
previousHash: () => Promisable<string | undefined>
|
|
16
|
+
|
|
17
|
+
queries: string[]
|
|
18
|
+
query: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(
|
|
19
|
+
query: T,
|
|
20
|
+
payloads?: Payload[],
|
|
21
|
+
queryConfig?: TConf,
|
|
22
|
+
) => Promisable<ModuleQueryResult>
|
|
23
|
+
queryable: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(
|
|
24
|
+
query: T,
|
|
25
|
+
payloads?: Payload[],
|
|
26
|
+
queryConfig?: TConf,
|
|
27
|
+
) => Promisable<boolean>
|
|
28
|
+
|
|
29
|
+
start?: () => Promisable<boolean>
|
|
30
|
+
stop?: () => Promisable<boolean>
|
|
31
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { ObjectTypeCheck } from '@xyo-network/object-identity'
|
|
3
|
+
|
|
4
|
+
import { Module } from '../Module'
|
|
5
|
+
import { asModuleObject } from './asModuleObject'
|
|
6
|
+
import { isModuleObject } from './isModuleObject'
|
|
7
|
+
|
|
8
|
+
export type ModuleTypeCheck<T extends Module = Module> = ObjectTypeCheck<T>
|
|
9
|
+
|
|
10
|
+
export class IsModuleFactory<T extends Module = Module> {
|
|
11
|
+
create(expectedQueries?: string[], additionalChecks?: ObjectTypeCheck[]): ModuleTypeCheck<T> {
|
|
12
|
+
return (obj: any, config): obj is T => {
|
|
13
|
+
const module = asModuleObject(obj)
|
|
14
|
+
const result =
|
|
15
|
+
isModuleObject(module, config) &&
|
|
16
|
+
(expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) &&
|
|
17
|
+
//perform additional checks
|
|
18
|
+
(additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)
|
|
19
|
+
return result
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ModuleManifestPayload } from '@xyo-network/manifest-model'
|
|
2
|
+
import { Payload } from '@xyo-network/payload-model'
|
|
3
|
+
import { Promisable } from '@xyo-network/promise'
|
|
4
|
+
|
|
5
|
+
import { ModuleDescription } from '../../ModuleDescription'
|
|
6
|
+
import { AddressPreviousHashPayload } from '../../Queries'
|
|
7
|
+
|
|
8
|
+
export type ModuleQueryFunctions = {
|
|
9
|
+
describe: () => Promise<ModuleDescription>
|
|
10
|
+
discover: () => Promisable<Payload[]>
|
|
11
|
+
manifest: () => Promisable<ModuleManifestPayload>
|
|
12
|
+
moduleAddress: () => Promisable<AddressPreviousHashPayload[]>
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ObjectTypeCheck } from '@xyo-network/object-identity'
|
|
2
|
+
|
|
3
|
+
import { ModuleDiscoverQuerySchema } from '../../Queries'
|
|
4
|
+
import { Module } from '../Module'
|
|
5
|
+
import { IsModuleFactory } from './IsModuleFactory'
|
|
6
|
+
import { isModuleObject } from './isModuleObject'
|
|
7
|
+
|
|
8
|
+
export const requiredModuleQueries: string[] = [
|
|
9
|
+
/* We need to update this once live module conform */
|
|
10
|
+
//ModuleDescribeQuerySchema,
|
|
11
|
+
//ModuleAddressQuerySchema,
|
|
12
|
+
ModuleDiscoverQuerySchema,
|
|
13
|
+
//ModuleManifestQuerySchema,
|
|
14
|
+
//ModuleSubscribeQuerySchema,
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
//we do not use IsInstanceFactory here to prevent a cycle
|
|
18
|
+
const factory = new IsModuleFactory<Module>()
|
|
19
|
+
|
|
20
|
+
export const isModule: ObjectTypeCheck<Module> = factory.create(requiredModuleQueries, [isModuleObject])
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object-identity'
|
|
2
|
+
|
|
3
|
+
import { Module } from '../Module'
|
|
4
|
+
|
|
5
|
+
export const requiredModuleFunctions: ObjectTypeShape = {
|
|
6
|
+
address: 'string',
|
|
7
|
+
config: 'object',
|
|
8
|
+
params: 'object',
|
|
9
|
+
queries: 'array',
|
|
10
|
+
query: 'function',
|
|
11
|
+
queryable: 'function',
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const factory = new IsObjectFactory<Module>()
|
|
15
|
+
|
|
16
|
+
export const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)
|
package/src/withModule.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ObjectTypeCheck } from '@xyo-network/object-identity'
|
|
2
|
+
|
|
3
|
+
import { isModuleInstance } from './instance'
|
|
4
|
+
import { isModule } from './module'
|
|
2
5
|
|
|
3
6
|
export const WithFactory = {
|
|
4
|
-
create: <T extends object>(typeCheck:
|
|
7
|
+
create: <T extends object>(typeCheck: ObjectTypeCheck<T>) => {
|
|
5
8
|
return <R>(
|
|
6
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
10
|
module: any,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleFilter.js","sourceRoot":"","sources":["../../src/ModuleFilter.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleRepository.js","sourceRoot":"","sources":["../../src/ModuleRepository.ts"],"names":[],"mappings":""}
|
package/dist/cjs/asModule.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.asModuleInstance = exports.asModule = exports.AsFactory = void 0;
|
|
4
|
-
const assert_1 = require("@xylabs/assert");
|
|
5
|
-
const isModule_1 = require("./isModule");
|
|
6
|
-
exports.AsFactory = {
|
|
7
|
-
create: (typeCheck) => {
|
|
8
|
-
function func(
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
-
module, assert) {
|
|
11
|
-
const result = typeCheck(module) ? module : undefined;
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
-
const noUndefined = (assert) => {
|
|
14
|
-
return !!assert;
|
|
15
|
-
};
|
|
16
|
-
if (noUndefined(assert)) {
|
|
17
|
-
return (0, assert_1.assertEx)(result, typeof assert === 'function' ? assert() : assert);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
return result;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return func;
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
exports.asModule = exports.AsFactory.create(isModule_1.isModule);
|
|
27
|
-
exports.asModuleInstance = exports.AsFactory.create(isModule_1.isModuleInstance);
|
|
28
|
-
//# sourceMappingURL=asModule.js.map
|
package/dist/cjs/asModule.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asModule.js","sourceRoot":"","sources":["../../src/asModule.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAEzC,yCAA0E;AAE7D,QAAA,SAAS,GAAG;IACvB,MAAM,EAAE,CAAyB,SAAqC,EAAE,EAAE;QAUxE,SAAS,IAAI;QACX,8DAA8D;QAC9D,MAAW,EACX,MAAgC;YAEhC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;YAErD,8DAA8D;YAC9D,MAAM,WAAW,GAAG,CAAC,MAAW,EAAqB,EAAE;gBACrD,OAAO,CAAC,CAAC,MAAM,CAAA;YACjB,CAAC,CAAA;YAED,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;gBACvB,OAAO,IAAA,iBAAQ,EAAC,MAAM,EAAE,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;aAC1E;iBAAM;gBACL,OAAO,MAAM,CAAA;aACd;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAEY,QAAA,QAAQ,GAAG,iBAAS,CAAC,MAAM,CAAC,mBAAQ,CAAC,CAAA;AACrC,QAAA,gBAAgB,GAAG,iBAAS,CAAC,MAAM,CAAC,2BAAgB,CAAC,CAAA"}
|
package/dist/cjs/isModule.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isModuleInstance = exports.isModule = exports.IsModuleFactory = exports.IsInstanceFactory = exports.isType = void 0;
|
|
4
|
-
const isType = (value, expectedType) => {
|
|
5
|
-
if (expectedType === 'array') {
|
|
6
|
-
return Array.isArray(value);
|
|
7
|
-
}
|
|
8
|
-
else if (expectedType === 'payload') {
|
|
9
|
-
return typeof value === 'object' && typeof value.schema === 'string';
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
return typeof value === expectedType;
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
exports.isType = isType;
|
|
16
|
-
exports.IsInstanceFactory = {
|
|
17
|
-
create: (shape, additionalCheck) => {
|
|
18
|
-
return (module, log = false) => {
|
|
19
|
-
var _a;
|
|
20
|
-
return (!!module &&
|
|
21
|
-
((_a = additionalCheck === null || additionalCheck === void 0 ? void 0 : additionalCheck(module)) !== null && _a !== void 0 ? _a : true) &&
|
|
22
|
-
Object.entries(shape !== null && shape !== void 0 ? shape : {}).reduce((prev, [key, type]) => {
|
|
23
|
-
const result = (0, exports.isType)(module[key], type);
|
|
24
|
-
if (!result && log) {
|
|
25
|
-
console.warn(`isType Failed: ${key}: ${type}`);
|
|
26
|
-
}
|
|
27
|
-
return prev && result;
|
|
28
|
-
}, true));
|
|
29
|
-
};
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
exports.IsModuleFactory = {
|
|
33
|
-
create: (expectedQueries, additionalCheck) => {
|
|
34
|
-
return (module) => {
|
|
35
|
-
var _a, _b;
|
|
36
|
-
return ((0, exports.isModule)(module) &&
|
|
37
|
-
((_a = additionalCheck === null || additionalCheck === void 0 ? void 0 : additionalCheck(module)) !== null && _a !== void 0 ? _a : true) &&
|
|
38
|
-
((_b = expectedQueries === null || expectedQueries === void 0 ? void 0 : expectedQueries.reduce((prev, query) => prev && module.queries.includes(query), true)) !== null && _b !== void 0 ? _b : true));
|
|
39
|
-
};
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
exports.isModule = exports.IsInstanceFactory.create({
|
|
43
|
-
address: 'string',
|
|
44
|
-
config: 'object',
|
|
45
|
-
params: 'object',
|
|
46
|
-
queries: 'array',
|
|
47
|
-
query: 'function',
|
|
48
|
-
queryable: 'function',
|
|
49
|
-
});
|
|
50
|
-
exports.isModuleInstance = exports.IsInstanceFactory.create({
|
|
51
|
-
describe: 'function',
|
|
52
|
-
discover: 'function',
|
|
53
|
-
manifest: 'function',
|
|
54
|
-
}, exports.isModule);
|
|
55
|
-
//# sourceMappingURL=isModule.js.map
|
package/dist/cjs/isModule.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isModule.js","sourceRoot":"","sources":["../../src/isModule.ts"],"names":[],"mappings":";;;AAWO,MAAM,MAAM,GAAG,CAAC,KAAU,EAAE,YAAuB,EAAE,EAAE;IAC5D,IAAI,YAAY,KAAK,OAAO,EAAE;QAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;KAC5B;SAAM,IAAI,YAAY,KAAK,SAAS,EAAE;QACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAA;KACrE;SAAM;QACL,OAAO,OAAO,KAAK,KAAK,YAAY,CAAA;KACrC;AACH,CAAC,CAAA;AARY,QAAA,MAAM,UAQlB;AAEY,QAAA,iBAAiB,GAAG;IAC/B,MAAM,EAAE,CAA4B,KAAyB,EAAE,eAA0C,EAAwB,EAAE;QACjI,OAAO,CAAC,MAAW,EAAE,GAAG,GAAG,KAAK,EAAe,EAAE;;YAC/C,OAAO,CACL,CAAC,CAAC,MAAM;gBACR,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,MAAM,CAAC,mCAAI,IAAI,CAAC;gBACnC,MAAM,CAAC,OAAO,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;oBACvD,MAAM,MAAM,GAAG,IAAA,cAAM,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;oBACxC,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;wBAClB,OAAO,CAAC,IAAI,CAAC,kBAAkB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAA;qBAC/C;oBACD,OAAO,IAAI,IAAI,MAAM,CAAA;gBACvB,CAAC,EAAE,IAAI,CAAC,CACT,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAA;AAEY,QAAA,eAAe,GAAG;IAC7B,MAAM,EAAE,CAA4B,eAA0B,EAAE,eAA0C,EAAsB,EAAE;QAChI,OAAO,CAAC,MAAW,EAAe,EAAE;;YAClC,OAAO,CACL,IAAA,gBAAQ,EAAC,MAAM,CAAC;gBAChB,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,MAAM,CAAC,mCAAI,IAAI,CAAC;gBACnC,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,mCAAI,IAAI,CAAC,CACjG,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAA;AAEY,QAAA,QAAQ,GAA4B,yBAAiB,CAAC,MAAM,CAAS;IAChF,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,UAAU;CACtB,CAAC,CAAA;AAEW,QAAA,gBAAgB,GAAsC,yBAAiB,CAAC,MAAM,CACzF;IACE,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;CACrB,EACD,gBAAQ,CACT,CAAA"}
|