@xyo-network/module-model 2.64.7 → 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 (67) 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/asModule.js +28 -0
  12. package/dist/cjs/asModule.js.map +1 -0
  13. package/dist/cjs/index.js +1 -0
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/isModule.js +28 -9
  16. package/dist/cjs/isModule.js.map +1 -1
  17. package/dist/docs.json +5611 -3209
  18. package/dist/esm/Queries/Describe/Payload.js +2 -0
  19. package/dist/esm/Queries/Describe/Payload.js.map +1 -0
  20. package/dist/esm/Queries/Describe/Query.js +2 -0
  21. package/dist/esm/Queries/Describe/Query.js.map +1 -0
  22. package/dist/esm/Queries/Describe/index.js +3 -0
  23. package/dist/esm/Queries/Describe/index.js.map +1 -0
  24. package/dist/esm/Queries/Manifest.js +2 -0
  25. package/dist/esm/Queries/Manifest.js.map +1 -0
  26. package/dist/esm/Queries/index.js +2 -0
  27. package/dist/esm/Queries/index.js.map +1 -1
  28. package/dist/esm/asModule.js +25 -0
  29. package/dist/esm/asModule.js.map +1 -0
  30. package/dist/esm/index.js +1 -0
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/isModule.js +23 -8
  33. package/dist/esm/isModule.js.map +1 -1
  34. package/dist/types/Module.d.ts +13 -8
  35. package/dist/types/Module.d.ts.map +1 -1
  36. package/dist/types/ModuleRepository.d.ts +4 -4
  37. package/dist/types/ModuleRepository.d.ts.map +1 -1
  38. package/dist/types/Queries/Describe/Payload.d.ts +6 -0
  39. package/dist/types/Queries/Describe/Payload.d.ts.map +1 -0
  40. package/dist/types/Queries/Describe/Query.d.ts +7 -0
  41. package/dist/types/Queries/Describe/Query.d.ts.map +1 -0
  42. package/dist/types/Queries/Describe/index.d.ts +3 -0
  43. package/dist/types/Queries/Describe/index.d.ts.map +1 -0
  44. package/dist/types/Queries/Manifest.d.ts +7 -0
  45. package/dist/types/Queries/Manifest.d.ts.map +1 -0
  46. package/dist/types/Queries/index.d.ts +4 -1
  47. package/dist/types/Queries/index.d.ts.map +1 -1
  48. package/dist/types/asModule.d.ts +16 -0
  49. package/dist/types/asModule.d.ts.map +1 -0
  50. package/dist/types/index.d.ts +1 -0
  51. package/dist/types/index.d.ts.map +1 -1
  52. package/dist/types/isModule.d.ts +11 -4
  53. package/dist/types/isModule.d.ts.map +1 -1
  54. package/dist/types/withModule.d.ts +3 -3
  55. package/dist/types/withModule.d.ts.map +1 -1
  56. package/package.json +13 -12
  57. package/src/Module.ts +23 -9
  58. package/src/ModuleRepository.ts +4 -4
  59. package/src/Queries/Describe/Payload.ts +8 -0
  60. package/src/Queries/Describe/Query.ts +8 -0
  61. package/src/Queries/Describe/index.ts +2 -0
  62. package/src/Queries/Manifest.ts +8 -0
  63. package/src/Queries/index.ts +4 -1
  64. package/src/asModule.ts +39 -0
  65. package/src/index.ts +1 -0
  66. package/src/isModule.ts +43 -11
  67. package/src/withModule.ts +1 -1
@@ -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"}
@@ -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,33 +11,49 @@ 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
  };
19
18
  },
20
19
  };
21
- export const IsModuleFactory = {
20
+ export const IsIndirectModuleFactory = {
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));
27
26
  };
28
27
  },
29
28
  };
30
- export const isModuleInstance = IsInstanceFactory.create({
29
+ export const IsModuleFactory = IsIndirectModuleFactory;
30
+ export const isIndirectModuleInstance = IsInstanceFactory.create({
31
31
  account: 'object',
32
32
  address: 'string',
33
33
  config: 'object',
34
- discover: 'function',
35
34
  downResolver: 'object',
36
- manifest: 'function',
37
35
  params: 'object',
38
36
  queries: 'array',
39
37
  query: 'function',
40
38
  queryable: 'function',
41
39
  upResolver: 'object',
42
40
  });
43
- export const isModule = IsModuleFactory.create([ModuleAddressQuerySchema, ModuleDiscoverQuerySchema]);
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) &&
55
+ (additionalCheck?.(module) ?? true) &&
56
+ (expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true));
57
+ };
58
+ export const isModule = isIndirectModule;
44
59
  //# 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":"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"}
@@ -1,9 +1,10 @@
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';
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';
@@ -18,19 +19,19 @@ export interface ModuleResolver {
18
19
  * is supplied, all modules are returned
19
20
  * @param filter Filter criteria for the desired modules
20
21
  */
21
- resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter): Promisable<T[]>;
22
+ resolve<T extends IndirectModule = IndirectModule>(filter?: ModuleFilter): Promisable<T[]>;
22
23
  /**
23
24
  * Resolves a single module, or undefined if no modules matched the filter.
24
25
  * @param filter The desired Module's Address or Name
25
26
  */
26
- resolveOne<T extends ModuleInstance = ModuleInstance>(filter: string): Promisable<T | undefined>;
27
+ resolveOne<T extends IndirectModule = IndirectModule>(filter: string): Promisable<T | undefined>;
27
28
  }
28
- 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 ? {
29
30
  module: TModule;
30
31
  } & TArgs : {
31
32
  module: TModule;
32
33
  };
33
- export type ModuleQueriedEventArgs = ModuleEventArgs<ModuleInstance, {
34
+ export type ModuleQueriedEventArgs = ModuleEventArgs<IndirectModule, {
34
35
  payloads?: Payload[];
35
36
  query: QueryBoundWitness;
36
37
  result: ModuleQueryResult;
@@ -40,8 +41,9 @@ export interface ModuleEventData extends EventData {
40
41
  }
41
42
  export type ModuleQueryFunctions = {
42
43
  addressPreviousHash: () => Promisable<AddressPreviousHashPayload>;
44
+ describe: () => Promise<ModuleDescription>;
43
45
  discover: () => Promisable<Payload[]>;
44
- manifest: () => Promisable<ModuleManifest>;
46
+ manifest: () => Promisable<ModuleManifestPayload>;
45
47
  };
46
48
  export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
47
49
  address: string;
@@ -49,12 +51,15 @@ export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConf
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>;
55
58
  start?: () => Promisable<void>;
56
59
  readonly upResolver: ModuleResolver;
57
60
  };
58
- export type Module<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>, TEventData extends ModuleEventData = ModuleEventData> = ModuleFields<TParams> & EventFunctions<TEventData> & ModuleQueryFunctions;
59
- 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>;
60
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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAA;IAC/C,gBAAgB,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAA;IAClD;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAA;IAC1F;;;OAGG;IACH,UAAU,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;CACjG;AAED,MAAM,MAAM,eAAe,CACzB,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,KAAK,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,IAC7C,KAAK,SAAS,SAAS,GACvB;IACE,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,KAAK,GACT;IACE,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAEL,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAClD,cAAc,EACd;IACE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,KAAK,EAAE,iBAAiB,CAAA;IACxB,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CACF,CAAA;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,aAAa,EAAE,sBAAsB,CAAA;CACtC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,mBAAmB,EAAE,MAAM,UAAU,CAAC,0BAA0B,CAAC,CAAA;IACjE,QAAQ,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC1C,QAAQ,EAAE,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,UAAU,CAAC,qBAAqB,CAAC,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI;IACpI,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAGzB,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAA;IAErC,WAAW,CAAC,EAAE,MAAM,UAAU,CAAC,eAAe,CAAC,CAAA;IAE/C,MAAM,EAAE,OAAO,CAAA;IAEf,YAAY,EAAE,MAAM,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAElD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,KAAK,SAAS,YAAY,GAAG,YAAY,EAChG,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,KAAK,KAChB,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAClC,SAAS,EAAE,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,KAAK,SAAS,YAAY,GAAG,YAAY,EACpG,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,KAAK,KAChB,UAAU,CAAC,OAAO,CAAC,CAAA;IAExB,KAAK,CAAC,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;IAI9B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EACzG,UAAU,SAAS,eAAe,GAAG,eAAe,IAClD,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;AAEtD,MAAM,MAAM,YAAY,CACtB,OAAO,SAAS,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EACzG,UAAU,SAAS,eAAe,GAAG,eAAe,IAClD,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,oBAAoB,CAAA;AAE9D,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EACzG,UAAU,SAAS,eAAe,GAAG,eAAe,IAClD,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;AAErC,MAAM,MAAM,MAAM,CAChB,OAAO,SAAS,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EACzG,UAAU,SAAS,eAAe,GAAG,eAAe,IAClD,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA"}
@@ -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"}
@@ -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").IndirectModule | undefined;
10
+ (module: any, assert: string | (() => string)): import("./Module").IndirectModule;
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,15 +1,22 @@
1
- import { 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
- 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;
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: ModuleTypeCheck<ModuleInstance>;
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,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,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"}
@@ -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").IndirectModule) => 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,6EASqC,CAAA;AACtD,eAAO,MAAM,kBAAkB,cAVjB,GAAG,6EAUqD,CAAA"}
package/package.json CHANGED
@@ -10,19 +10,20 @@
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.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"
22
23
  },
23
24
  "devDependencies": {
24
- "@xylabs/ts-scripts-yarn3": "^2.18.5",
25
- "@xylabs/tsconfig": "^2.18.5",
25
+ "@xylabs/ts-scripts-yarn3": "^2.18.7",
26
+ "@xylabs/tsconfig": "^2.18.7",
26
27
  "typescript": "^5.1.6"
27
28
  },
28
29
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -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.9"
62
63
  }
package/src/Module.ts CHANGED
@@ -1,10 +1,11 @@
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'
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'
@@ -20,16 +21,16 @@ export interface ModuleResolver {
20
21
  * is supplied, all modules are returned
21
22
  * @param filter Filter criteria for the desired modules
22
23
  */
23
- resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter): Promisable<T[]>
24
+ resolve<T extends IndirectModule = IndirectModule>(filter?: ModuleFilter): Promisable<T[]>
24
25
  /**
25
26
  * Resolves a single module, or undefined if no modules matched the filter.
26
27
  * @param filter The desired Module's Address or Name
27
28
  */
28
- resolveOne<T extends ModuleInstance = ModuleInstance>(filter: string): Promisable<T | undefined>
29
+ resolveOne<T extends IndirectModule = IndirectModule>(filter: string): Promisable<T | undefined>
29
30
  }
30
31
 
31
32
  export type ModuleEventArgs<
32
- TModule extends ModuleInstance = ModuleInstance,
33
+ TModule extends IndirectModule = IndirectModule,
33
34
  TArgs extends EventArgs | undefined = undefined,
34
35
  > = TArgs extends EventArgs
35
36
  ? {
@@ -40,7 +41,7 @@ export type ModuleEventArgs<
40
41
  }
41
42
 
42
43
  export type ModuleQueriedEventArgs = ModuleEventArgs<
43
- ModuleInstance,
44
+ IndirectModule,
44
45
  {
45
46
  payloads?: Payload[]
46
47
  query: QueryBoundWitness
@@ -54,8 +55,9 @@ export interface ModuleEventData extends EventData {
54
55
 
55
56
  export type ModuleQueryFunctions = {
56
57
  addressPreviousHash: () => Promisable<AddressPreviousHashPayload>
58
+ describe: () => Promise<ModuleDescription>
57
59
  discover: () => Promisable<Payload[]>
58
- manifest: () => Promisable<ModuleManifest>
60
+ manifest: () => Promisable<ModuleManifestPayload>
59
61
  }
60
62
 
61
63
  export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
@@ -69,6 +71,8 @@ export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConf
69
71
 
70
72
  params: TParams
71
73
 
74
+ previousHash: () => Promisable<string | undefined>
75
+
72
76
  queries: string[]
73
77
  query: <T extends QueryBoundWitness = QueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(
74
78
  query: T,
@@ -88,12 +92,22 @@ export type ModuleFields<TParams extends ModuleParams<AnyConfigSchema<ModuleConf
88
92
  readonly upResolver: ModuleResolver
89
93
  }
90
94
 
91
- export type Module<
95
+ export type IndirectModule<
96
+ TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
97
+ TEventData extends ModuleEventData = ModuleEventData,
98
+ > = ModuleFields<TParams> & EventFunctions<TEventData>
99
+
100
+ export type DirectModule<
92
101
  TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
93
102
  TEventData extends ModuleEventData = ModuleEventData,
94
- > = ModuleFields<TParams> & EventFunctions<TEventData> & ModuleQueryFunctions
103
+ > = IndirectModule<TParams, TEventData> & ModuleQueryFunctions
95
104
 
96
105
  export type ModuleInstance<
97
106
  TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,
98
107
  TEventData extends ModuleEventData = ModuleEventData,
99
- > = 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
+ }>