@xyo-network/module-model 2.64.7 → 2.64.8

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.
@@ -0,0 +1,25 @@
1
+ import { assertEx } from '@xylabs/assert';
2
+ import { isModule, isModuleInstance } from './isModule';
3
+ export const AsFactory = {
4
+ create: (typeCheck) => {
5
+ function func(
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ module, assert) {
8
+ const result = typeCheck(module) ? module : undefined;
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
+ const noUndefined = (assert) => {
11
+ return !!assert;
12
+ };
13
+ if (noUndefined(assert)) {
14
+ return assertEx(result, typeof assert === 'function' ? assert() : assert);
15
+ }
16
+ else {
17
+ return result;
18
+ }
19
+ }
20
+ return func;
21
+ },
22
+ };
23
+ export const asModule = AsFactory.create(isModule);
24
+ export const asModuleInstance = AsFactory.create(isModuleInstance);
25
+ //# sourceMappingURL=asModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asModule.js","sourceRoot":"","sources":["../../src/asModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAqB,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE1E,MAAM,CAAC,MAAM,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,QAAQ,CAAC,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;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './asModule';
1
2
  export * from './Config';
2
3
  export * from './CreatableModule';
3
4
  export * from './Error';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
@@ -1,4 +1,3 @@
1
- import { ModuleAddressQuerySchema, ModuleDiscoverQuerySchema } from './Queries';
2
1
  export const isType = (value, expectedType) => {
3
2
  if (expectedType === 'array') {
4
3
  return Array.isArray(value);
@@ -12,7 +11,7 @@ export const isType = (value, expectedType) => {
12
11
  };
13
12
  export const IsInstanceFactory = {
14
13
  create: (shape, additionalCheck) => {
15
- return (module) => {
14
+ return (module = {}) => {
16
15
  return ((additionalCheck?.(module) ?? true) &&
17
16
  (Object.entries(shape ?? {}).reduce((prev, [key, type]) => prev && isType(module[key], type), true) ?? true));
18
17
  };
@@ -20,7 +19,7 @@ export const IsInstanceFactory = {
20
19
  };
21
20
  export const IsModuleFactory = {
22
21
  create: (expectedQueries, additionalCheck) => {
23
- return (module) => {
22
+ return (module = {}) => {
24
23
  return (isModuleInstance(module) &&
25
24
  (additionalCheck?.(module) ?? true) &&
26
25
  (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true));
@@ -40,5 +39,9 @@ export const isModuleInstance = IsInstanceFactory.create({
40
39
  queryable: 'function',
41
40
  upResolver: 'object',
42
41
  });
43
- export const isModule = IsModuleFactory.create([ModuleAddressQuerySchema, ModuleDiscoverQuerySchema]);
42
+ export const isModule = (module = {}, expectedQueries, additionalCheck) => {
43
+ return (isModuleInstance(module) &&
44
+ (additionalCheck?.(module) ?? true) &&
45
+ (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true));
46
+ };
44
47
  //# sourceMappingURL=isModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isModule.js","sourceRoot":"","sources":["../../src/isModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAU/E,MAAM,CAAC,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;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,CAA4B,KAAyB,EAAE,eAA0C,EAAwB,EAAE;QACjI,OAAO,CAAC,MAAW,EAAe,EAAE;YAClC,OAAO,CACL,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;gBACnC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAC7G,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,CAA4C,eAA0B,EAAE,eAA0C,EAAsB,EAAE;QAChJ,OAAO,CAAC,MAAW,EAAe,EAAE;YAClC,OAAO,CACL,gBAAgB,CAAC,MAAM,CAAC;gBACxB,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;gBACnC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CACjG,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAsC,iBAAiB,CAAC,MAAM,CAAiB;IAC1G,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,QAAQ;IACtB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAoC,eAAe,CAAC,MAAM,CAAiB,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"isModule.js","sourceRoot":"","sources":["../../src/isModule.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,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;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,CAA4B,KAAyB,EAAE,eAA0C,EAAwB,EAAE;QACjI,OAAO,CAAC,SAAc,EAAE,EAAe,EAAE;YACvC,OAAO,CACL,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;gBACnC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAC7G,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,CAA4C,eAA0B,EAAE,eAA0C,EAAsB,EAAE;QAChJ,OAAO,CAAC,SAAc,EAAE,EAAe,EAAE;YACvC,OAAO,CACL,gBAAgB,CAAC,MAAM,CAAC;gBACxB,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;gBACnC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CACjG,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAsC,iBAAiB,CAAC,MAAM,CAAiB;IAC1G,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,QAAQ;IACtB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,SAAc,EAAE,EAChB,eAA0B,EAC1B,eAA0C,EAC7B,EAAE;IACf,OAAO,CACL,gBAAgB,CAAC,MAAM,CAAC;QACxB,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QACnC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CACjG,CAAA;AACH,CAAC,CAAA"}
@@ -4,6 +4,7 @@ import { EventArgs, EventData, EventFunctions } from '@xyo-network/module-events
4
4
  import { Payload } from '@xyo-network/payload-model';
5
5
  import { Promisable } from '@xyo-network/promise';
6
6
  import { AnyConfigSchema, ModuleConfig } from './Config';
7
+ import { ModuleDescription } from './ModuleDescription';
7
8
  import { ModuleFilter } from './ModuleFilter';
8
9
  import { ModuleParams } from './ModuleParams';
9
10
  import { ModuleQueryResult } from './ModuleQueryResult';
@@ -46,9 +47,11 @@ export type ModuleQueryFunctions = {
46
47
  export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
47
48
  address: string;
48
49
  config: TParams['config'];
50
+ describe: () => Promise<ModuleDescription>;
49
51
  readonly downResolver: ModuleResolver;
50
52
  loadAccount?: () => Promisable<AccountInstance>;
51
53
  params: TParams;
54
+ previousHash: () => Promisable<string | undefined>;
52
55
  queries: string[];
53
56
  query: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConf) => Promisable<ModuleQueryResult>;
54
57
  queryable: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConf) => Promisable<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { InstanceTypeCheck } from './isModule';
2
+ export declare const AsFactory: {
3
+ create: <TModule extends object>(typeCheck: InstanceTypeCheck<TModule>) => {
4
+ (module: any): TModule | undefined;
5
+ (module: any, assert: string | (() => string)): TModule;
6
+ };
7
+ };
8
+ export declare const asModule: {
9
+ (module: any): import("./Module").Module | undefined;
10
+ (module: any, assert: string | (() => string)): import("./Module").Module;
11
+ };
12
+ export declare const asModuleInstance: {
13
+ (module: any): import("./Module").ModuleInstance | undefined;
14
+ (module: any, assert: string | (() => string)): import("./Module").ModuleInstance;
15
+ };
16
+ //# sourceMappingURL=asModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asModule.d.ts","sourceRoot":"","sources":["../../src/asModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,YAAY,CAAA;AAE1E,eAAO,MAAM,SAAS;;iBAIR,GAAG;iBAIH,GAAG,UACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;;CAsBpC,CAAA;AAED,eAAO,MAAM,QAAQ;aA7BP,GAAG;aAIH,GAAG,0BACa,MAAM;CAwBc,CAAA;AAClD,eAAO,MAAM,gBAAgB;aA9Bf,GAAG;aAIH,GAAG,0BACa,MAAM;CAyB8B,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from './asModule';
1
2
  export * from './Config';
2
3
  export * from './CreatableModule';
3
4
  export * from './Error';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
@@ -1,6 +1,6 @@
1
- import { ModuleInstance } from './Module';
1
+ import { Module, ModuleInstance } from './Module';
2
2
  export type InstanceTypeCheck<T extends object = object> = (module: object) => module is T;
3
- export type ModuleTypeCheck<T extends ModuleInstance = ModuleInstance> = InstanceTypeCheck<T>;
3
+ export type ModuleTypeCheck<T extends Module = Module> = InstanceTypeCheck<T>;
4
4
  export type FieldType = 'string' | 'number' | 'object' | 'symbol' | 'symbol' | 'undefined' | 'null' | 'array' | 'function' | 'payload';
5
5
  export type InstanceTypeShape = Record<string | number | symbol, FieldType>;
6
6
  export declare const isType: (value: any, expectedType: FieldType) => boolean;
@@ -11,5 +11,5 @@ export declare const IsModuleFactory: {
11
11
  create: <T extends ModuleInstance = ModuleInstance>(expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => ModuleTypeCheck<T>;
12
12
  };
13
13
  export declare const isModuleInstance: InstanceTypeCheck<ModuleInstance>;
14
- export declare const isModule: ModuleTypeCheck<ModuleInstance>;
14
+ export declare const isModule: <T extends Module = Module>(module?: any, expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => module is T;
15
15
  //# sourceMappingURL=isModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isModule.d.ts","sourceRoot":"","sources":["../../src/isModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAGzC,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC,CAAA;AAE1F,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAE7F,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;AAEtI,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,SAAS,CAAC,CAAA;AAE3E,eAAO,MAAM,MAAM,UAAW,GAAG,gBAAgB,SAAS,YAQzD,CAAA;AAED,eAAO,MAAM,iBAAiB;gDACgB,iBAAiB,8BAA6B,GAAG,KAAK,OAAO;CAQ1G,CAAA;AAED,eAAO,MAAM,eAAe;0EAC4C,MAAM,EAAE,8BAA6B,GAAG,KAAK,OAAO;CAS3H,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,cAAc,CAY7D,CAAA;AAEF,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAiG,CAAA"}
1
+ {"version":3,"file":"isModule.d.ts","sourceRoot":"","sources":["../../src/isModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC,CAAA;AAE1F,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAE7E,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;AAEtI,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,SAAS,CAAC,CAAA;AAE3E,eAAO,MAAM,MAAM,UAAW,GAAG,gBAAgB,SAAS,YAQzD,CAAA;AAED,eAAO,MAAM,iBAAiB;gDACgB,iBAAiB,8BAA6B,GAAG,KAAK,OAAO;CAQ1G,CAAA;AAED,eAAO,MAAM,eAAe;0EAC4C,MAAM,EAAE,8BAA6B,GAAG,KAAK,OAAO;CAS3H,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,cAAc,CAY7D,CAAA;AAEF,eAAO,MAAM,QAAQ,uCACX,GAAG,oBACO,MAAM,EAAE,8BACC,GAAG,KAAK,OAAO,6BAO3C,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { InstanceTypeCheck } from './isModule';
2
2
  export declare const WithFactory: {
3
- create: <T extends object>(typeCheck: InstanceTypeCheck<T>) => <R extends void = void>(module: any, closure: (module: T) => R) => R | undefined;
3
+ create: <T extends object>(typeCheck: InstanceTypeCheck<T>) => <R>(module: any, closure: (module: T) => R) => R | undefined;
4
4
  };
5
- export declare const withModule: <R extends void = void>(module: any, closure: (module: import("./Module").ModuleInstance) => R) => R | undefined;
6
- export declare const withModuleInstance: <R extends void = void>(module: any, closure: (module: import("./Module").ModuleInstance) => R) => R | undefined;
5
+ export declare const withModule: <R>(module: any, closure: (module: import("./Module").Module) => R) => R | undefined;
6
+ export declare const withModuleInstance: <R>(module: any, closure: (module: import("./Module").ModuleInstance) => R) => R | undefined;
7
7
  //# sourceMappingURL=withModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withModule.d.ts","sourceRoot":"","sources":["../../src/withModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,YAAY,CAAA;AAE1E,eAAO,MAAM,WAAW;mGAIV,GAAG;CAOhB,CAAA;AAED,eAAO,MAAM,UAAU,kCATT,GAAG,6EASqC,CAAA;AACtD,eAAO,MAAM,kBAAkB,kCAVjB,GAAG,6EAUqD,CAAA"}
1
+ {"version":3,"file":"withModule.d.ts","sourceRoot":"","sources":["../../src/withModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,YAAY,CAAA;AAE1E,eAAO,MAAM,WAAW;+EAIV,GAAG;CAOhB,CAAA;AAED,eAAO,MAAM,UAAU,cATT,GAAG,qEASqC,CAAA;AACtD,eAAO,MAAM,kBAAkB,cAVjB,GAAG,6EAUqD,CAAA"}
package/package.json CHANGED
@@ -10,15 +10,16 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xyo-network/account-model": "^2.64.7",
14
- "@xyo-network/address-payload-plugin": "^2.64.7",
15
- "@xyo-network/boundwitness-model": "^2.64.7",
16
- "@xyo-network/core": "^2.64.7",
17
- "@xyo-network/manifest-model": "^2.64.7",
18
- "@xyo-network/module-events": "^2.64.7",
19
- "@xyo-network/payload-model": "^2.64.7",
20
- "@xyo-network/promise": "^2.64.7",
21
- "@xyo-network/wallet-model": "^2.64.7"
13
+ "@xylabs/assert": "^2.9.3",
14
+ "@xyo-network/account-model": "^2.64.8",
15
+ "@xyo-network/address-payload-plugin": "^2.64.8",
16
+ "@xyo-network/boundwitness-model": "^2.64.8",
17
+ "@xyo-network/core": "^2.64.8",
18
+ "@xyo-network/manifest-model": "^2.64.8",
19
+ "@xyo-network/module-events": "^2.64.8",
20
+ "@xyo-network/payload-model": "^2.64.8",
21
+ "@xyo-network/promise": "^2.64.8",
22
+ "@xyo-network/wallet-model": "^2.64.8"
22
23
  },
23
24
  "devDependencies": {
24
25
  "@xylabs/ts-scripts-yarn3": "^2.18.5",
@@ -58,5 +59,5 @@
58
59
  },
59
60
  "sideEffects": false,
60
61
  "types": "dist/types/index.d.ts",
61
- "version": "2.64.7"
62
+ "version": "2.64.8"
62
63
  }
package/src/Module.ts CHANGED
@@ -5,6 +5,7 @@ import { Payload } from '@xyo-network/payload-model'
5
5
  import { Promisable } from '@xyo-network/promise'
6
6
 
7
7
  import { AnyConfigSchema, ModuleConfig } from './Config'
8
+ import { ModuleDescription } from './ModuleDescription'
8
9
  import { ModuleFilter } from './ModuleFilter'
9
10
  import { ModuleParams } from './ModuleParams'
10
11
  import { ModuleQueryResult } from './ModuleQueryResult'
@@ -62,6 +63,8 @@ export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConf
62
63
  address: string
63
64
  config: TParams['config']
64
65
 
66
+ describe: () => Promise<ModuleDescription>
67
+
65
68
  /* 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*/
66
69
  readonly downResolver: ModuleResolver
67
70
 
@@ -69,6 +72,8 @@ export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConf
69
72
 
70
73
  params: TParams
71
74
 
75
+ previousHash: () => Promisable<string | undefined>
76
+
72
77
  queries: string[]
73
78
  query: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(
74
79
  query: T,
@@ -0,0 +1,39 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+
3
+ import { InstanceTypeCheck, isModule, isModuleInstance } from './isModule'
4
+
5
+ export const AsFactory = {
6
+ create: <TModule extends object>(typeCheck: InstanceTypeCheck<TModule>) => {
7
+ function func(
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ module: any,
10
+ ): TModule | undefined
11
+ function func(
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ module: any,
14
+ assert: string | (() => string),
15
+ ): TModule
16
+ function func(
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ module: any,
19
+ assert?: string | (() => string),
20
+ ): TModule | undefined {
21
+ const result = typeCheck(module) ? module : undefined
22
+
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ const noUndefined = (assert: any): assert is TModule => {
25
+ return !!assert
26
+ }
27
+
28
+ if (noUndefined(assert)) {
29
+ return assertEx(result, typeof assert === 'function' ? assert() : assert)
30
+ } else {
31
+ return result
32
+ }
33
+ }
34
+ return func
35
+ },
36
+ }
37
+
38
+ export const asModule = AsFactory.create(isModule)
39
+ export const asModuleInstance = AsFactory.create(isModuleInstance)
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './asModule'
1
2
  export * from './Config'
2
3
  export * from './CreatableModule'
3
4
  export * from './Error'
package/src/isModule.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { ModuleInstance } from './Module'
3
- import { ModuleAddressQuerySchema, ModuleDiscoverQuerySchema } from './Queries'
2
+ import { Module, ModuleInstance } from './Module'
4
3
 
5
4
  export type InstanceTypeCheck<T extends object = object> = (module: object) => module is T
6
5
 
7
- export type ModuleTypeCheck<T extends ModuleInstance = ModuleInstance> = InstanceTypeCheck<T>
6
+ export type ModuleTypeCheck<T extends Module = Module> = InstanceTypeCheck<T>
8
7
 
9
8
  export type FieldType = 'string' | 'number' | 'object' | 'symbol' | 'symbol' | 'undefined' | 'null' | 'array' | 'function' | 'payload'
10
9
 
@@ -22,7 +21,7 @@ export const isType = (value: any, expectedType: FieldType) => {
22
21
 
23
22
  export const IsInstanceFactory = {
24
23
  create: <T extends object = object>(shape?: InstanceTypeShape, additionalCheck?: (module: any) => boolean): InstanceTypeCheck<T> => {
25
- return (module: any): module is T => {
24
+ return (module: any = {}): module is T => {
26
25
  return (
27
26
  (additionalCheck?.(module) ?? true) &&
28
27
  (Object.entries(shape ?? {}).reduce((prev, [key, type]) => prev && isType(module[key], type), true) ?? true)
@@ -33,7 +32,7 @@ export const IsInstanceFactory = {
33
32
 
34
33
  export const IsModuleFactory = {
35
34
  create: <T extends ModuleInstance = ModuleInstance>(expectedQueries?: string[], additionalCheck?: (module: any) => boolean): ModuleTypeCheck<T> => {
36
- return (module: any): module is T => {
35
+ return (module: any = {}): module is T => {
37
36
  return (
38
37
  isModuleInstance(module) &&
39
38
  (additionalCheck?.(module) ?? true) &&
@@ -57,4 +56,14 @@ export const isModuleInstance: InstanceTypeCheck<ModuleInstance> = IsInstanceFac
57
56
  upResolver: 'object',
58
57
  })
59
58
 
60
- export const isModule: ModuleTypeCheck<ModuleInstance> = IsModuleFactory.create<ModuleInstance>([ModuleAddressQuerySchema, ModuleDiscoverQuerySchema])
59
+ export const isModule = <T extends Module = Module>(
60
+ module: any = {},
61
+ expectedQueries?: string[],
62
+ additionalCheck?: (module: any) => boolean,
63
+ ): module is T => {
64
+ return (
65
+ isModuleInstance(module) &&
66
+ (additionalCheck?.(module) ?? true) &&
67
+ (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true)
68
+ )
69
+ }
package/src/withModule.ts CHANGED
@@ -2,7 +2,7 @@ import { InstanceTypeCheck, isModule, isModuleInstance } from './isModule'
2
2
 
3
3
  export const WithFactory = {
4
4
  create: <T extends object>(typeCheck: InstanceTypeCheck<T>) => {
5
- return <R extends void = void>(
5
+ return <R>(
6
6
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
7
  module: any,
8
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any