@xyo-network/module-model 2.64.8 → 2.64.9

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.
Files changed (53) hide show
  1. package/dist/cjs/Queries/Describe/Payload.js +5 -0
  2. package/dist/cjs/Queries/Describe/Payload.js.map +1 -0
  3. package/dist/cjs/Queries/Describe/Query.js +5 -0
  4. package/dist/cjs/Queries/Describe/Query.js.map +1 -0
  5. package/dist/cjs/Queries/Describe/index.js +6 -0
  6. package/dist/cjs/Queries/Describe/index.js.map +1 -0
  7. package/dist/cjs/Queries/Manifest.js +5 -0
  8. package/dist/cjs/Queries/Manifest.js.map +1 -0
  9. package/dist/cjs/Queries/index.js +2 -0
  10. package/dist/cjs/Queries/index.js.map +1 -1
  11. package/dist/cjs/isModule.js +22 -8
  12. package/dist/cjs/isModule.js.map +1 -1
  13. package/dist/docs.json +3899 -2469
  14. package/dist/esm/Queries/Describe/Payload.js +2 -0
  15. package/dist/esm/Queries/Describe/Payload.js.map +1 -0
  16. package/dist/esm/Queries/Describe/Query.js +2 -0
  17. package/dist/esm/Queries/Describe/Query.js.map +1 -0
  18. package/dist/esm/Queries/Describe/index.js +3 -0
  19. package/dist/esm/Queries/Describe/index.js.map +1 -0
  20. package/dist/esm/Queries/Manifest.js +2 -0
  21. package/dist/esm/Queries/Manifest.js.map +1 -0
  22. package/dist/esm/Queries/index.js +2 -0
  23. package/dist/esm/Queries/index.js.map +1 -1
  24. package/dist/esm/isModule.js +18 -6
  25. package/dist/esm/isModule.js.map +1 -1
  26. package/dist/types/Module.d.ts +11 -9
  27. package/dist/types/Module.d.ts.map +1 -1
  28. package/dist/types/ModuleRepository.d.ts +4 -4
  29. package/dist/types/ModuleRepository.d.ts.map +1 -1
  30. package/dist/types/Queries/Describe/Payload.d.ts +6 -0
  31. package/dist/types/Queries/Describe/Payload.d.ts.map +1 -0
  32. package/dist/types/Queries/Describe/Query.d.ts +7 -0
  33. package/dist/types/Queries/Describe/Query.d.ts.map +1 -0
  34. package/dist/types/Queries/Describe/index.d.ts +3 -0
  35. package/dist/types/Queries/Describe/index.d.ts.map +1 -0
  36. package/dist/types/Queries/Manifest.d.ts +7 -0
  37. package/dist/types/Queries/Manifest.d.ts.map +1 -0
  38. package/dist/types/Queries/index.d.ts +4 -1
  39. package/dist/types/Queries/index.d.ts.map +1 -1
  40. package/dist/types/asModule.d.ts +2 -2
  41. package/dist/types/isModule.d.ts +10 -3
  42. package/dist/types/isModule.d.ts.map +1 -1
  43. package/dist/types/withModule.d.ts +1 -1
  44. package/dist/types/withModule.d.ts.map +1 -1
  45. package/package.json +12 -12
  46. package/src/Module.ts +20 -11
  47. package/src/ModuleRepository.ts +4 -4
  48. package/src/Queries/Describe/Payload.ts +8 -0
  49. package/src/Queries/Describe/Query.ts +8 -0
  50. package/src/Queries/Describe/index.ts +2 -0
  51. package/src/Queries/Manifest.ts +8 -0
  52. package/src/Queries/index.ts +4 -1
  53. package/src/isModule.ts +31 -8
@@ -0,0 +1,2 @@
1
+ export const ModuleDescriptionSchema = 'network.xyo.module.description';
2
+ //# sourceMappingURL=Payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.js","sourceRoot":"","sources":["../../../../src/Queries/Describe/Payload.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const ModuleDescribeQuerySchema = 'network.xyo.query.module.describe';
2
+ //# sourceMappingURL=Query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.js","sourceRoot":"","sources":["../../../../src/Queries/Describe/Query.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,yBAAyB,GAA8B,mCAAmC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Payload';
2
+ export * from './Query';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Queries/Describe/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const ModuleManifestQuerySchema = 'network.xyo.query.module.manifest';
2
+ //# sourceMappingURL=Manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manifest.js","sourceRoot":"","sources":["../../../src/Queries/Manifest.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,yBAAyB,GAA8B,mCAAmC,CAAA"}
@@ -1,4 +1,6 @@
1
+ export * from './Describe';
1
2
  export * from './Discover';
3
+ export * from './Manifest';
2
4
  export * from './ModuleAddress';
3
5
  export * from './Subscribe';
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAMA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA"}
@@ -17,7 +17,7 @@ export const IsInstanceFactory = {
17
17
  };
18
18
  },
19
19
  };
20
- export const IsModuleFactory = {
20
+ export const IsIndirectModuleFactory = {
21
21
  create: (expectedQueries, additionalCheck) => {
22
22
  return (module = {}) => {
23
23
  return (isModuleInstance(module) &&
@@ -26,22 +26,34 @@ export const IsModuleFactory = {
26
26
  };
27
27
  },
28
28
  };
29
- export const isModuleInstance = IsInstanceFactory.create({
29
+ export const IsModuleFactory = IsIndirectModuleFactory;
30
+ export const isIndirectModuleInstance = IsInstanceFactory.create({
30
31
  account: 'object',
31
32
  address: 'string',
32
33
  config: 'object',
33
- discover: 'function',
34
34
  downResolver: 'object',
35
- manifest: 'function',
36
35
  params: 'object',
37
36
  queries: 'array',
38
37
  query: 'function',
39
38
  queryable: 'function',
40
39
  upResolver: 'object',
41
40
  });
42
- export const isModule = (module = {}, expectedQueries, additionalCheck) => {
43
- return (isModuleInstance(module) &&
41
+ export const isDirectModuleInstance = IsInstanceFactory.create({
42
+ description: 'function',
43
+ discover: 'function',
44
+ manifest: 'function',
45
+ subscribe: 'function',
46
+ });
47
+ export const isModuleInstance = isIndirectModuleInstance;
48
+ export const isDirectModule = (module = {}, expectedQueries, additionalCheck) => {
49
+ return (isDirectModuleInstance(module) &&
50
+ (additionalCheck?.(module) ?? true) &&
51
+ (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true));
52
+ };
53
+ export const isIndirectModule = (module = {}, expectedQueries, additionalCheck) => {
54
+ return (isIndirectModuleInstance(module) &&
44
55
  (additionalCheck?.(module) ?? true) &&
45
56
  (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true));
46
57
  };
58
+ export const isModule = isIndirectModule;
47
59
  //# sourceMappingURL=isModule.js.map
@@ -1 +1 @@
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"}
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,uBAAuB,GAAG;IACrC,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,eAAe,GAAG,uBAAuB,CAAA;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAsC,iBAAiB,CAAC,MAAM,CAAiB;IAClH,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,QAAQ;IACtB,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,sBAAsB,GAAsC,iBAAiB,CAAC,MAAM,CAAiB;IAChH,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,SAAc,EAAE,EAChB,eAA0B,EAC1B,eAA0C,EAC7B,EAAE;IACf,OAAO,CACL,sBAAsB,CAAC,MAAM,CAAC;QAC9B,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;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,SAAc,EAAE,EAChB,eAA0B,EAC1B,eAA0C,EAC7B,EAAE;IACf,OAAO,CACL,wBAAwB,CAAC,MAAM,CAAC;QAChC,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;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { AccountInstance } from '@xyo-network/account-model';
2
- import { ModuleManifest } from '@xyo-network/manifest-model';
2
+ import { ModuleManifestPayload } from '@xyo-network/manifest-model';
3
3
  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';
@@ -19,19 +19,19 @@ export interface ModuleResolver {
19
19
  * is supplied, all modules are returned
20
20
  * @param filter Filter criteria for the desired modules
21
21
  */
22
- resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter): Promisable<T[]>;
22
+ resolve<T extends IndirectModule = IndirectModule>(filter?: ModuleFilter): Promisable<T[]>;
23
23
  /**
24
24
  * Resolves a single module, or undefined if no modules matched the filter.
25
25
  * @param filter The desired Module's Address or Name
26
26
  */
27
- resolveOne<T extends ModuleInstance = ModuleInstance>(filter: string): Promisable<T | undefined>;
27
+ resolveOne<T extends IndirectModule = IndirectModule>(filter: string): Promisable<T | undefined>;
28
28
  }
29
- export type ModuleEventArgs<TModule extends ModuleInstance = ModuleInstance, TArgs extends EventArgs | undefined = undefined> = TArgs extends EventArgs ? {
29
+ export type ModuleEventArgs<TModule extends IndirectModule = IndirectModule, TArgs extends EventArgs | undefined = undefined> = TArgs extends EventArgs ? {
30
30
  module: TModule;
31
31
  } & TArgs : {
32
32
  module: TModule;
33
33
  };
34
- export type ModuleQueriedEventArgs = ModuleEventArgs<ModuleInstance, {
34
+ export type ModuleQueriedEventArgs = ModuleEventArgs<IndirectModule, {
35
35
  payloads?: Payload[];
36
36
  query: QueryBoundWitness;
37
37
  result: ModuleQueryResult;
@@ -41,13 +41,13 @@ export interface ModuleEventData extends EventData {
41
41
  }
42
42
  export type ModuleQueryFunctions = {
43
43
  addressPreviousHash: () => Promisable<AddressPreviousHashPayload>;
44
+ describe: () => Promise<ModuleDescription>;
44
45
  discover: () => Promisable<Payload[]>;
45
- manifest: () => Promisable<ModuleManifest>;
46
+ manifest: () => Promisable<ModuleManifestPayload>;
46
47
  };
47
48
  export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
48
49
  address: string;
49
50
  config: TParams['config'];
50
- describe: () => Promise<ModuleDescription>;
51
51
  readonly downResolver: ModuleResolver;
52
52
  loadAccount?: () => Promisable<AccountInstance>;
53
53
  params: TParams;
@@ -58,6 +58,8 @@ export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConf
58
58
  start?: () => Promisable<void>;
59
59
  readonly upResolver: ModuleResolver;
60
60
  };
61
- export type Module<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = ModuleFields<TParams> & EventFunctions<TEventData> & ModuleQueryFunctions;
62
- export type ModuleInstance<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = Module<TParams, TEventData>;
61
+ export type IndirectModule<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = ModuleFields<TParams> & EventFunctions<TEventData>;
62
+ export type DirectModule<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = IndirectModule<TParams, TEventData> & ModuleQueryFunctions;
63
+ export type ModuleInstance<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = DirectModule<TParams, TEventData>;
64
+ export type Module<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = IndirectModule<TParams, TEventData>;
63
65
  //# sourceMappingURL=Module.d.ts.map
@@ -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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"}
@@ -1,8 +1,8 @@
1
- import { Module, ModuleResolver } from './Module';
1
+ import { IndirectModule, ModuleResolver } from './Module';
2
2
  export interface ModuleRepository extends ModuleResolver {
3
- add(module: Module): this;
4
- add(module: Module[]): this;
5
- add(module: Module | Module[]): this;
3
+ add(module: IndirectModule): this;
4
+ add(module: IndirectModule[]): this;
5
+ add(module: IndirectModule | IndirectModule[]): this;
6
6
  remove(address: string | string[]): this;
7
7
  }
8
8
  //# sourceMappingURL=ModuleRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleRepository.d.ts","sourceRoot":"","sources":["../../src/ModuleRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC3B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAEpC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;CACzC"}
1
+ {"version":3,"file":"ModuleRepository.d.ts","sourceRoot":"","sources":["../../src/ModuleRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;IACnC,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,IAAI,CAAA;IAEpD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;CACzC"}
@@ -0,0 +1,6 @@
1
+ import { Payload } from '@xyo-network/payload-model';
2
+ import { ModuleDescription } from '../../ModuleDescription';
3
+ export declare const ModuleDescriptionSchema = "network.xyo.module.description";
4
+ export type ModuleDescriptionSchema = typeof ModuleDescriptionSchema;
5
+ export type ModuleDescriptionPayload = Payload<ModuleDescription, ModuleDescriptionSchema>;
6
+ //# sourceMappingURL=Payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../../../src/Queries/Describe/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,eAAO,MAAM,uBAAuB,mCAAmC,CAAA;AACvE,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAA;AAEpE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Query } from '../../Query';
2
+ export type ModuleDescribeQuerySchema = 'network.xyo.query.module.describe';
3
+ export declare const ModuleDescribeQuerySchema: ModuleDescribeQuerySchema;
4
+ export type ModuleDescribeQuery = Query<{
5
+ schema: ModuleDescribeQuerySchema;
6
+ }>;
7
+ //# sourceMappingURL=Query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../../src/Queries/Describe/Query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,MAAM,MAAM,yBAAyB,GAAG,mCAAmC,CAAA;AAC3E,eAAO,MAAM,yBAAyB,EAAE,yBAA+D,CAAA;AAEvG,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC;IACtC,MAAM,EAAE,yBAAyB,CAAA;CAClC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Payload';
2
+ export * from './Query';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Queries/Describe/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Query } from '../Query';
2
+ export type ModuleManifestQuerySchema = 'network.xyo.query.module.manifest';
3
+ export declare const ModuleManifestQuerySchema: ModuleManifestQuerySchema;
4
+ export type ModuleManifestQuery = Query<{
5
+ schema: ModuleManifestQuerySchema;
6
+ }>;
7
+ //# sourceMappingURL=Manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../../../src/Queries/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,MAAM,yBAAyB,GAAG,mCAAmC,CAAA;AAC3E,eAAO,MAAM,yBAAyB,EAAE,yBAA+D,CAAA;AAEvG,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC;IACtC,MAAM,EAAE,yBAAyB,CAAA;CAClC,CAAC,CAAA"}
@@ -1,10 +1,13 @@
1
1
  import { Query } from '../Query';
2
+ import { ModuleDescribeQuery } from './Describe';
2
3
  import { ModuleDiscoverQuery } from './Discover';
3
4
  import { ModuleAddressQuery } from './ModuleAddress';
4
5
  import { ModuleSubscribeQuery } from './Subscribe';
6
+ export * from './Describe';
5
7
  export * from './Discover';
8
+ export * from './Manifest';
6
9
  export * from './ModuleAddress';
7
10
  export * from './Subscribe';
8
- export type ModuleQueryBase = ModuleDiscoverQuery | ModuleAddressQuery | ModuleSubscribeQuery;
11
+ export type ModuleQueryBase = ModuleDiscoverQuery | ModuleAddressQuery | ModuleSubscribeQuery | ModuleDescribeQuery;
9
12
  export type ModuleQuery<T extends Query | void = void> = T extends Query ? ModuleQueryBase | T : ModuleQueryBase;
10
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAE3B,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,CAAA;AAE7F,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,eAAe,GAAG,CAAC,GAAG,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAE3B,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,mBAAmB,CAAA;AAEnH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,eAAe,GAAG,CAAC,GAAG,eAAe,CAAA"}
@@ -6,8 +6,8 @@ export declare const AsFactory: {
6
6
  };
7
7
  };
8
8
  export declare const asModule: {
9
- (module: any): import("./Module").Module | undefined;
10
- (module: any, assert: string | (() => string)): import("./Module").Module;
9
+ (module: any): import("./Module").IndirectModule | undefined;
10
+ (module: any, assert: string | (() => string)): import("./Module").IndirectModule;
11
11
  };
12
12
  export declare const asModuleInstance: {
13
13
  (module: any): import("./Module").ModuleInstance | undefined;
@@ -1,4 +1,4 @@
1
- import { Module, ModuleInstance } from './Module';
1
+ import { DirectModule, IndirectModule, Module, ModuleInstance } from './Module';
2
2
  export type InstanceTypeCheck<T extends object = object> = (module: object) => module is T;
3
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';
@@ -7,9 +7,16 @@ export declare const isType: (value: any, expectedType: FieldType) => boolean;
7
7
  export declare const IsInstanceFactory: {
8
8
  create: <T extends object = object>(shape?: InstanceTypeShape, additionalCheck?: ((module: any) => boolean) | undefined) => InstanceTypeCheck<T>;
9
9
  };
10
+ export declare const IsIndirectModuleFactory: {
11
+ create: <T extends IndirectModule = IndirectModule>(expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => ModuleTypeCheck<T>;
12
+ };
10
13
  export declare const IsModuleFactory: {
11
- create: <T extends ModuleInstance = ModuleInstance>(expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => ModuleTypeCheck<T>;
14
+ create: <T extends IndirectModule = IndirectModule>(expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => ModuleTypeCheck<T>;
12
15
  };
16
+ export declare const isIndirectModuleInstance: InstanceTypeCheck<ModuleInstance>;
17
+ export declare const isDirectModuleInstance: InstanceTypeCheck<ModuleInstance>;
13
18
  export declare const isModuleInstance: InstanceTypeCheck<ModuleInstance>;
14
- export declare const isModule: <T extends Module = Module>(module?: any, expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => module is T;
19
+ export declare const isDirectModule: <T extends DirectModule = DirectModule>(module?: any, expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => module is T;
20
+ export declare const isIndirectModule: <T extends IndirectModule = IndirectModule>(module?: any, expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => module is T;
21
+ export declare const isModule: <T extends IndirectModule = IndirectModule>(module?: any, expectedQueries?: string[], additionalCheck?: ((module: any) => boolean) | undefined) => module is T;
15
22
  //# sourceMappingURL=isModule.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"isModule.d.ts","sourceRoot":"","sources":["../../src/isModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE/E,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,uBAAuB;0EACoC,MAAM,EAAE,8BAA6B,GAAG,KAAK,OAAO;CAS3H,CAAA;AAED,eAAO,MAAM,eAAe;0EAX4C,MAAM,EAAE,8BAA6B,GAAG,KAAK,OAAO;CAWtE,CAAA;AAEtD,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CAAC,cAAc,CAUrE,CAAA;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,cAAc,CAKnE,CAAA;AAEF,eAAO,MAAM,gBAAgB,mCAA2B,CAAA;AAExD,eAAO,MAAM,cAAc,mDACjB,GAAG,oBACO,MAAM,EAAE,8BACC,GAAG,KAAK,OAAO,6BAO3C,CAAA;AAED,eAAO,MAAM,gBAAgB,uDACnB,GAAG,oBACO,MAAM,EAAE,8BACC,GAAG,KAAK,OAAO,6BAO3C,CAAA;AAED,eAAO,MAAM,QAAQ,uDAXX,GAAG,oBACO,MAAM,EAAE,8BACC,GAAG,KAAK,OAAO,6BASJ,CAAA"}
@@ -2,6 +2,6 @@ import { InstanceTypeCheck } from './isModule';
2
2
  export declare const WithFactory: {
3
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>(module: any, closure: (module: import("./Module").Module) => R) => R | undefined;
5
+ export declare const withModule: <R>(module: any, closure: (module: import("./Module").IndirectModule) => R) => R | undefined;
6
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;+EAIV,GAAG;CAOhB,CAAA;AAED,eAAO,MAAM,UAAU,cATT,GAAG,qEASqC,CAAA;AACtD,eAAO,MAAM,kBAAkB,cAVjB,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,6EASqC,CAAA;AACtD,eAAO,MAAM,kBAAkB,cAVjB,GAAG,6EAUqD,CAAA"}
package/package.json CHANGED
@@ -11,19 +11,19 @@
11
11
  },
12
12
  "dependencies": {
13
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"
14
+ "@xyo-network/account-model": "^2.64.9",
15
+ "@xyo-network/address-payload-plugin": "^2.64.9",
16
+ "@xyo-network/boundwitness-model": "^2.64.9",
17
+ "@xyo-network/core": "^2.64.9",
18
+ "@xyo-network/manifest-model": "^2.64.9",
19
+ "@xyo-network/module-events": "^2.64.9",
20
+ "@xyo-network/payload-model": "^2.64.9",
21
+ "@xyo-network/promise": "^2.64.9",
22
+ "@xyo-network/wallet-model": "^2.64.9"
23
23
  },
24
24
  "devDependencies": {
25
- "@xylabs/ts-scripts-yarn3": "^2.18.5",
26
- "@xylabs/tsconfig": "^2.18.5",
25
+ "@xylabs/ts-scripts-yarn3": "^2.18.7",
26
+ "@xylabs/tsconfig": "^2.18.7",
27
27
  "typescript": "^5.1.6"
28
28
  },
29
29
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -59,5 +59,5 @@
59
59
  },
60
60
  "sideEffects": false,
61
61
  "types": "dist/types/index.d.ts",
62
- "version": "2.64.8"
62
+ "version": "2.64.9"
63
63
  }
package/src/Module.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { AccountInstance } from '@xyo-network/account-model'
2
- import { ModuleManifest } from '@xyo-network/manifest-model'
2
+ import { ModuleManifestPayload } from '@xyo-network/manifest-model'
3
3
  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'
@@ -21,16 +21,16 @@ export interface ModuleResolver {
21
21
  * is supplied, all modules are returned
22
22
  * @param filter Filter criteria for the desired modules
23
23
  */
24
- resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter): Promisable<T[]>
24
+ resolve<T extends IndirectModule = IndirectModule>(filter?: ModuleFilter): Promisable<T[]>
25
25
  /**
26
26
  * Resolves a single module, or undefined if no modules matched the filter.
27
27
  * @param filter The desired Module's Address or Name
28
28
  */
29
- resolveOne<T extends ModuleInstance = ModuleInstance>(filter: string): Promisable<T | undefined>
29
+ resolveOne<T extends IndirectModule = IndirectModule>(filter: string): Promisable<T | undefined>
30
30
  }
31
31
 
32
32
  export type ModuleEventArgs<
33
- TModule extends ModuleInstance = ModuleInstance,
33
+ TModule extends IndirectModule = IndirectModule,
34
34
  TArgs extends EventArgs | undefined = undefined,
35
35
  > = TArgs extends EventArgs
36
36
  ? {
@@ -41,7 +41,7 @@ export type ModuleEventArgs<
41
41
  }
42
42
 
43
43
  export type ModuleQueriedEventArgs = ModuleEventArgs<
44
- ModuleInstance,
44
+ IndirectModule,
45
45
  {
46
46
  payloads?: Payload[]
47
47
  query: QueryBoundWitness
@@ -55,16 +55,15 @@ export interface ModuleEventData extends EventData {
55
55
 
56
56
  export type ModuleQueryFunctions = {
57
57
  addressPreviousHash: () => Promisable<AddressPreviousHashPayload>
58
+ describe: () => Promise<ModuleDescription>
58
59
  discover: () => Promisable<Payload[]>
59
- manifest: () => Promisable<ModuleManifest>
60
+ manifest: () => Promisable<ModuleManifestPayload>
60
61
  }
61
62
 
62
63
  export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
63
64
  address: string
64
65
  config: TParams['config']
65
66
 
66
- describe: () => Promise<ModuleDescription>
67
-
68
67
  /* 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*/
69
68
  readonly downResolver: ModuleResolver
70
69
 
@@ -93,12 +92,22 @@ export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConf
93
92
  readonly upResolver: ModuleResolver
94
93
  }
95
94
 
96
- export type Module<
95
+ export type IndirectModule<
97
96
  TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
98
97
  TEventData extends ModuleEventData = ModuleEventData,
99
- > = ModuleFields<TParams> & EventFunctions<TEventData> & ModuleQueryFunctions
98
+ > = ModuleFields<TParams> & EventFunctions<TEventData>
99
+
100
+ export type DirectModule<
101
+ TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
102
+ TEventData extends ModuleEventData = ModuleEventData,
103
+ > = IndirectModule<TParams, TEventData> & ModuleQueryFunctions
100
104
 
101
105
  export type ModuleInstance<
102
106
  TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
103
107
  TEventData extends ModuleEventData = ModuleEventData,
104
- > = Module<TParams, TEventData>
108
+ > = DirectModule<TParams, TEventData>
109
+
110
+ export type Module<
111
+ TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
112
+ TEventData extends ModuleEventData = ModuleEventData,
113
+ > = IndirectModule<TParams, TEventData>
@@ -1,9 +1,9 @@
1
- import { Module, ModuleResolver } from './Module'
1
+ import { IndirectModule, ModuleResolver } from './Module'
2
2
 
3
3
  export interface ModuleRepository extends ModuleResolver {
4
- add(module: Module): this
5
- add(module: Module[]): this
6
- add(module: Module | Module[]): this
4
+ add(module: IndirectModule): this
5
+ add(module: IndirectModule[]): this
6
+ add(module: IndirectModule | IndirectModule[]): this
7
7
 
8
8
  remove(address: string | string[]): this
9
9
  }
@@ -0,0 +1,8 @@
1
+ import { Payload } from '@xyo-network/payload-model'
2
+
3
+ import { ModuleDescription } from '../../ModuleDescription'
4
+
5
+ export const ModuleDescriptionSchema = 'network.xyo.module.description'
6
+ export type ModuleDescriptionSchema = typeof ModuleDescriptionSchema
7
+
8
+ export type ModuleDescriptionPayload = Payload<ModuleDescription, ModuleDescriptionSchema>
@@ -0,0 +1,8 @@
1
+ import { Query } from '../../Query'
2
+
3
+ export type ModuleDescribeQuerySchema = 'network.xyo.query.module.describe'
4
+ export const ModuleDescribeQuerySchema: ModuleDescribeQuerySchema = 'network.xyo.query.module.describe'
5
+
6
+ export type ModuleDescribeQuery = Query<{
7
+ schema: ModuleDescribeQuerySchema
8
+ }>
@@ -0,0 +1,2 @@
1
+ export * from './Payload'
2
+ export * from './Query'
@@ -0,0 +1,8 @@
1
+ import { Query } from '../Query'
2
+
3
+ export type ModuleManifestQuerySchema = 'network.xyo.query.module.manifest'
4
+ export const ModuleManifestQuerySchema: ModuleManifestQuerySchema = 'network.xyo.query.module.manifest'
5
+
6
+ export type ModuleManifestQuery = Query<{
7
+ schema: ModuleManifestQuerySchema
8
+ }>
@@ -1,12 +1,15 @@
1
1
  import { Query } from '../Query'
2
+ import { ModuleDescribeQuery } from './Describe'
2
3
  import { ModuleDiscoverQuery } from './Discover'
3
4
  import { ModuleAddressQuery } from './ModuleAddress'
4
5
  import { ModuleSubscribeQuery } from './Subscribe'
5
6
 
7
+ export * from './Describe'
6
8
  export * from './Discover'
9
+ export * from './Manifest'
7
10
  export * from './ModuleAddress'
8
11
  export * from './Subscribe'
9
12
 
10
- export type ModuleQueryBase = ModuleDiscoverQuery | ModuleAddressQuery | ModuleSubscribeQuery
13
+ export type ModuleQueryBase = ModuleDiscoverQuery | ModuleAddressQuery | ModuleSubscribeQuery | ModuleDescribeQuery
11
14
 
12
15
  export type ModuleQuery<T extends Query | void = void> = T extends Query ? ModuleQueryBase | T : ModuleQueryBase
package/src/isModule.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Module, ModuleInstance } from './Module'
2
+ import { DirectModule, IndirectModule, Module, ModuleInstance } from './Module'
3
3
 
4
4
  export type InstanceTypeCheck<T extends object = object> = (module: object) => module is T
5
5
 
@@ -30,8 +30,8 @@ export const IsInstanceFactory = {
30
30
  },
31
31
  }
32
32
 
33
- export const IsModuleFactory = {
34
- create: <T extends ModuleInstance = ModuleInstance>(expectedQueries?: string[], additionalCheck?: (module: any) => boolean): ModuleTypeCheck<T> => {
33
+ export const IsIndirectModuleFactory = {
34
+ create: <T extends IndirectModule = IndirectModule>(expectedQueries?: string[], additionalCheck?: (module: any) => boolean): ModuleTypeCheck<T> => {
35
35
  return (module: any = {}): module is T => {
36
36
  return (
37
37
  isModuleInstance(module) &&
@@ -42,13 +42,13 @@ export const IsModuleFactory = {
42
42
  },
43
43
  }
44
44
 
45
- export const isModuleInstance: InstanceTypeCheck<ModuleInstance> = IsInstanceFactory.create<ModuleInstance>({
45
+ export const IsModuleFactory = IsIndirectModuleFactory
46
+
47
+ export const isIndirectModuleInstance: InstanceTypeCheck<ModuleInstance> = IsInstanceFactory.create<ModuleInstance>({
46
48
  account: 'object',
47
49
  address: 'string',
48
50
  config: 'object',
49
- discover: 'function',
50
51
  downResolver: 'object',
51
- manifest: 'function',
52
52
  params: 'object',
53
53
  queries: 'array',
54
54
  query: 'function',
@@ -56,14 +56,37 @@ export const isModuleInstance: InstanceTypeCheck<ModuleInstance> = IsInstanceFac
56
56
  upResolver: 'object',
57
57
  })
58
58
 
59
- export const isModule = <T extends Module = Module>(
59
+ export const isDirectModuleInstance: InstanceTypeCheck<ModuleInstance> = IsInstanceFactory.create<ModuleInstance>({
60
+ description: 'function',
61
+ discover: 'function',
62
+ manifest: 'function',
63
+ subscribe: 'function',
64
+ })
65
+
66
+ export const isModuleInstance = isIndirectModuleInstance
67
+
68
+ export const isDirectModule = <T extends DirectModule = DirectModule>(
60
69
  module: any = {},
61
70
  expectedQueries?: string[],
62
71
  additionalCheck?: (module: any) => boolean,
63
72
  ): module is T => {
64
73
  return (
65
- isModuleInstance(module) &&
74
+ isDirectModuleInstance(module) &&
66
75
  (additionalCheck?.(module) ?? true) &&
67
76
  (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true)
68
77
  )
69
78
  }
79
+
80
+ export const isIndirectModule = <T extends IndirectModule = IndirectModule>(
81
+ module: any = {},
82
+ expectedQueries?: string[],
83
+ additionalCheck?: (module: any) => boolean,
84
+ ): module is T => {
85
+ return (
86
+ isIndirectModuleInstance(module) &&
87
+ (additionalCheck?.(module) ?? true) &&
88
+ (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true)
89
+ )
90
+ }
91
+
92
+ export const isModule = isIndirectModule