@xyo-network/module-model 2.51.8 → 2.51.10

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 (114) hide show
  1. package/dist/cjs/CreatableModule.js +16 -0
  2. package/dist/cjs/CreatableModule.js.map +1 -0
  3. package/dist/cjs/{model/Module.js.map → Module.js.map} +1 -1
  4. package/dist/cjs/ModuleDescription.js.map +1 -0
  5. package/dist/cjs/{PartialConfig.js → ModuleEventArgs.js} +1 -1
  6. package/dist/cjs/ModuleEventArgs.js.map +1 -0
  7. package/dist/cjs/{Events/EventArgs.js → ModuleParams.js} +1 -1
  8. package/dist/cjs/ModuleParams.js.map +1 -0
  9. package/dist/cjs/{Events/EventListener.js → ModuleQueried.js} +1 -1
  10. package/dist/cjs/ModuleQueried.js.map +1 -0
  11. package/dist/cjs/ModuleRepository.js.map +1 -0
  12. package/dist/cjs/index.js +7 -3
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/docs.json +22938 -5580
  15. package/dist/esm/CreatableModule.js +12 -0
  16. package/dist/esm/CreatableModule.js.map +1 -0
  17. package/dist/esm/{model/Module.js.map → Module.js.map} +1 -1
  18. package/dist/esm/ModuleDescription.js.map +1 -0
  19. package/dist/esm/ModuleEventArgs.js +2 -0
  20. package/dist/esm/ModuleEventArgs.js.map +1 -0
  21. package/dist/esm/ModuleParams.js +2 -0
  22. package/dist/esm/ModuleParams.js.map +1 -0
  23. package/dist/esm/ModuleQueried.js +2 -0
  24. package/dist/esm/ModuleQueried.js.map +1 -0
  25. package/dist/esm/ModuleRepository.js.map +1 -0
  26. package/dist/esm/index.js +7 -3
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/types/Config.d.ts +5 -4
  29. package/dist/types/Config.d.ts.map +1 -1
  30. package/dist/types/CreatableModule.d.ts +16 -0
  31. package/dist/types/CreatableModule.d.ts.map +1 -0
  32. package/dist/types/{model/Module.d.ts → Module.d.ts} +11 -11
  33. package/dist/types/Module.d.ts.map +1 -0
  34. package/dist/types/ModuleDescription.d.ts.map +1 -0
  35. package/dist/types/ModuleEventArgs.d.ts +8 -0
  36. package/dist/types/ModuleEventArgs.d.ts.map +1 -0
  37. package/dist/types/ModuleParams.d.ts +25 -0
  38. package/dist/types/ModuleParams.d.ts.map +1 -0
  39. package/dist/types/ModuleQueried.d.ts +14 -0
  40. package/dist/types/ModuleQueried.d.ts.map +1 -0
  41. package/dist/types/ModuleRepository.d.ts.map +1 -0
  42. package/dist/types/index.d.ts +7 -3
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/package.json +8 -5
  45. package/src/Config.ts +23 -18
  46. package/src/CreatableModule.ts +22 -0
  47. package/src/{model/Module.ts → Module.ts} +13 -12
  48. package/src/ModuleEventArgs.ts +11 -0
  49. package/src/ModuleParams.ts +71 -0
  50. package/src/ModuleQueried.ts +16 -0
  51. package/src/index.ts +7 -3
  52. package/dist/cjs/Events/EventArgs.js.map +0 -1
  53. package/dist/cjs/Events/EventListener.js.map +0 -1
  54. package/dist/cjs/Events/ModuleEventEmitter.js +0 -3
  55. package/dist/cjs/Events/ModuleEventEmitter.js.map +0 -1
  56. package/dist/cjs/Events/ModuleQueried.js +0 -5
  57. package/dist/cjs/Events/ModuleQueried.js.map +0 -1
  58. package/dist/cjs/Events/index.js +0 -8
  59. package/dist/cjs/Events/index.js.map +0 -1
  60. package/dist/cjs/PartialConfig.js.map +0 -1
  61. package/dist/cjs/model/ModuleDescription.js.map +0 -1
  62. package/dist/cjs/model/ModuleRepository.js.map +0 -1
  63. package/dist/cjs/model/index.js +0 -7
  64. package/dist/cjs/model/index.js.map +0 -1
  65. package/dist/esm/Events/EventArgs.js +0 -2
  66. package/dist/esm/Events/EventArgs.js.map +0 -1
  67. package/dist/esm/Events/EventListener.js +0 -2
  68. package/dist/esm/Events/EventListener.js.map +0 -1
  69. package/dist/esm/Events/ModuleEventEmitter.js +0 -2
  70. package/dist/esm/Events/ModuleEventEmitter.js.map +0 -1
  71. package/dist/esm/Events/ModuleQueried.js +0 -2
  72. package/dist/esm/Events/ModuleQueried.js.map +0 -1
  73. package/dist/esm/Events/index.js +0 -5
  74. package/dist/esm/Events/index.js.map +0 -1
  75. package/dist/esm/PartialConfig.js +0 -2
  76. package/dist/esm/PartialConfig.js.map +0 -1
  77. package/dist/esm/model/ModuleDescription.js.map +0 -1
  78. package/dist/esm/model/ModuleRepository.js.map +0 -1
  79. package/dist/esm/model/index.js +0 -4
  80. package/dist/esm/model/index.js.map +0 -1
  81. package/dist/types/Events/EventArgs.d.ts +0 -4
  82. package/dist/types/Events/EventArgs.d.ts.map +0 -1
  83. package/dist/types/Events/EventListener.d.ts +0 -3
  84. package/dist/types/Events/EventListener.d.ts.map +0 -1
  85. package/dist/types/Events/ModuleEventEmitter.d.ts +0 -7
  86. package/dist/types/Events/ModuleEventEmitter.d.ts.map +0 -1
  87. package/dist/types/Events/ModuleQueried.d.ts +0 -21
  88. package/dist/types/Events/ModuleQueried.d.ts.map +0 -1
  89. package/dist/types/Events/index.d.ts +0 -5
  90. package/dist/types/Events/index.d.ts.map +0 -1
  91. package/dist/types/PartialConfig.d.ts +0 -5
  92. package/dist/types/PartialConfig.d.ts.map +0 -1
  93. package/dist/types/model/Module.d.ts.map +0 -1
  94. package/dist/types/model/ModuleDescription.d.ts.map +0 -1
  95. package/dist/types/model/ModuleRepository.d.ts.map +0 -1
  96. package/dist/types/model/index.d.ts +0 -4
  97. package/dist/types/model/index.d.ts.map +0 -1
  98. package/src/Events/EventArgs.ts +0 -5
  99. package/src/Events/EventListener.ts +0 -3
  100. package/src/Events/ModuleEventEmitter.ts +0 -12
  101. package/src/Events/ModuleQueried.ts +0 -29
  102. package/src/Events/index.ts +0 -4
  103. package/src/PartialConfig.ts +0 -5
  104. package/src/model/index.ts +0 -3
  105. /package/dist/cjs/{model/Module.js → Module.js} +0 -0
  106. /package/dist/cjs/{model/ModuleDescription.js → ModuleDescription.js} +0 -0
  107. /package/dist/cjs/{model/ModuleRepository.js → ModuleRepository.js} +0 -0
  108. /package/dist/esm/{model/Module.js → Module.js} +0 -0
  109. /package/dist/esm/{model/ModuleDescription.js → ModuleDescription.js} +0 -0
  110. /package/dist/esm/{model/ModuleRepository.js → ModuleRepository.js} +0 -0
  111. /package/dist/types/{model/ModuleDescription.d.ts → ModuleDescription.d.ts} +0 -0
  112. /package/dist/types/{model/ModuleRepository.d.ts → ModuleRepository.d.ts} +0 -0
  113. /package/src/{model/ModuleDescription.ts → ModuleDescription.ts} +0 -0
  114. /package/src/{model/ModuleRepository.ts → ModuleRepository.ts} +0 -0
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Class annotation to be used to decorate Modules which support
3
+ * an asynchronous creation pattern
4
+ * @returns The decorated Module requiring it implement the members
5
+ * of the CreatableModule as statics properties/methods
6
+ */
7
+ export function creatableModule() {
8
+ return (constructor) => {
9
+ constructor;
10
+ };
11
+ }
12
+ //# sourceMappingURL=CreatableModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreatableModule.js","sourceRoot":"","sources":["../../src/CreatableModule.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAqC,WAAc,EAAE,EAAE;QAC5D,WAAW,CAAA;IACb,CAAC,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Module.js","sourceRoot":"","sources":["../../../src/model/Module.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Module.js","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleDescription.js","sourceRoot":"","sources":["../../src/ModuleDescription.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ModuleEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleEventArgs.js","sourceRoot":"","sources":["../../src/ModuleEventArgs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ModuleParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleParams.js","sourceRoot":"","sources":["../../src/ModuleParams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ModuleQueried.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleQueried.js","sourceRoot":"","sources":["../../src/ModuleQueried.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleRepository.js","sourceRoot":"","sources":["../../src/ModuleRepository.ts"],"names":[],"mappings":""}
package/dist/esm/index.js CHANGED
@@ -1,9 +1,13 @@
1
1
  export * from './Config';
2
- export * from './Events';
3
- export * from './model';
2
+ export * from './CreatableModule';
3
+ export * from './Module';
4
+ export * from './ModuleDescription';
5
+ export * from './ModuleEventArgs';
4
6
  export * from './ModuleFilter';
7
+ export * from './ModuleParams';
8
+ export * from './ModuleQueried';
5
9
  export * from './ModuleQueryResult';
6
- export * from './PartialConfig';
10
+ export * from './ModuleRepository';
7
11
  export * from './Queries';
8
12
  export * from './Query';
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -1,18 +1,19 @@
1
- import { AnyObject } from '@xyo-network/core';
1
+ import { WithAdditional } from '@xyo-network/core';
2
2
  import { XyoPayload } from '@xyo-network/payload-model';
3
3
  export type ModuleConfigSchema = 'network.xyo.module.config';
4
4
  export declare const ModuleConfigSchema: ModuleConfigSchema;
5
5
  export type AddressString = string;
6
6
  export type CosigningAddressSet = string[];
7
7
  export type SchemaString = string;
8
- export type ModuleConfigBase<T extends AnyObject = AnyObject> = XyoPayload<{
8
+ export type ModuleConfigBase<TConfig extends XyoPayload | undefined = undefined> = XyoPayload<WithAdditional<{
9
9
  name?: string;
10
+ schema: TConfig extends XyoPayload ? TConfig['schema'] : ModuleConfigSchema;
10
11
  security?: {
11
12
  allowAnonymous?: boolean;
12
13
  allowed?: Record<SchemaString, (AddressString | CosigningAddressSet)[]>;
13
14
  disallowed?: Record<SchemaString, AddressString[]>;
14
15
  };
15
16
  storeQueries?: boolean;
16
- } & T>;
17
- export type ModuleConfig<TConfig extends XyoPayload = XyoPayload> = ModuleConfigBase<TConfig>;
17
+ }, Omit<TConfig, 'schema'>>>;
18
+ export type ModuleConfig<TConfig extends XyoPayload | undefined = undefined> = ModuleConfigBase<TConfig>;
18
19
  //# sourceMappingURL=Config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG,2BAA2B,CAAA;AAC5D,eAAO,MAAM,kBAAkB,EAAE,kBAAgD,CAAA;AAEjF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAClC,MAAM,MAAM,mBAAmB,GAAG,MAAM,EAAE,CAAA;AAC1C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,UAAU,CACxE;IAEE,IAAI,CAAC,EAAE,MAAM,CAAA;IAGb,QAAQ,CAAC,EAAE;QAET,cAAc,CAAC,EAAE,OAAO,CAAA;QAGxB,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,aAAa,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;QAGvE,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;KACnD,CAAA;IAGD,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,CAAC,CACN,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAA"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG,2BAA2B,CAAA;AAC5D,eAAO,MAAM,kBAAkB,EAAE,kBAAgD,CAAA;AAEjF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAClC,MAAM,MAAM,mBAAmB,GAAG,MAAM,EAAE,CAAA;AAC1C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,GAAG,SAAS,GAAG,SAAS,IAAI,UAAU,CAC3F,cAAc,CACZ;IAEE,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,MAAM,EAAE,OAAO,SAAS,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAA;IAG3E,QAAQ,CAAC,EAAE;QAET,cAAc,CAAC,EAAE,OAAO,CAAA;QAGxB,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,aAAa,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;QAGvE,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;KACnD,CAAA;IAGD,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,EACD,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CACxB,CACF,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,UAAU,GAAG,SAAS,GAAG,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { Logger } from '@xyo-network/core';
2
+ import { Module } from './Module';
3
+ export interface CreatableModule<T extends Module = Module> {
4
+ configSchema: string;
5
+ defaultLogger?: Logger;
6
+ new (params: T['params']): T;
7
+ create<T extends Module>(this: CreatableModule<T>, params?: T['params']): Promise<T>;
8
+ }
9
+ /**
10
+ * Class annotation to be used to decorate Modules which support
11
+ * an asynchronous creation pattern
12
+ * @returns The decorated Module requiring it implement the members
13
+ * of the CreatableModule as statics properties/methods
14
+ */
15
+ export declare function creatableModule<TModule extends Module = Module>(): <U extends CreatableModule<TModule>>(constructor: U) => void;
16
+ //# sourceMappingURL=CreatableModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreatableModule.d.ts","sourceRoot":"","sources":["../../src/CreatableModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACrF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,kEAI9D"}
@@ -1,26 +1,26 @@
1
+ import { EventFunctions } from '@xyo-network/module-events';
1
2
  import { XyoPayload } from '@xyo-network/payload-model';
2
3
  import { Promisable } from '@xyo-network/promise';
3
- import { ModuleConfig } from '../Config';
4
- import { ModuleEventEmitter, ModuleQueriedEventEmitter } from '../Events';
5
- import { ModuleFilter } from '../ModuleFilter';
6
- import { ModuleQueryResult } from '../ModuleQueryResult';
7
- import { XyoQueryBoundWitness } from '../Query';
4
+ import { ModuleConfig } from './Config';
5
+ import { ModuleFilter } from './ModuleFilter';
6
+ import { AnyConfigSchema, ModuleParams } from './ModuleParams';
7
+ import { ModuleQueryResult } from './ModuleQueryResult';
8
+ import { XyoQueryBoundWitness } from './Query';
8
9
  export interface ModuleResolver {
9
10
  addResolver: (resolver: ModuleResolver) => this;
10
11
  isModuleResolver: boolean;
11
12
  removeResolver: (resolver: ModuleResolver) => this;
12
13
  resolve<T extends Module = Module>(filter?: ModuleFilter): Promisable<T[]>;
13
14
  }
14
- export type EventModule<TConfig extends ModuleConfig = ModuleConfig, TModuleEventEmitter extends ModuleEventEmitter | undefined = undefined> = {
15
- on: TModuleEventEmitter extends ModuleEventEmitter ? ModuleQueriedEventEmitter['on'] | TModuleEventEmitter['on'] : ModuleQueriedEventEmitter['on'];
16
- } & Module<TConfig>;
17
- export type Module<TConfig extends ModuleConfig = ModuleConfig> = {
15
+ export type Module<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
18
16
  address: string;
19
- config: TConfig;
17
+ config: TParams['config'];
20
18
  readonly downResolver: ModuleResolver;
19
+ params: TParams;
21
20
  queries: string[];
22
21
  query: <T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(query: T, payloads?: XyoPayload[], queryConfig?: TConf) => Promisable<ModuleQueryResult>;
23
22
  queryable: <T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(query: T, payloads?: XyoPayload[], queryConfig?: TConf) => Promisable<boolean>;
23
+ start?: () => Promisable<void>;
24
24
  readonly upResolver: ModuleResolver;
25
- };
25
+ } & EventFunctions<TParams['eventData']>;
26
26
  //# sourceMappingURL=Module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C,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,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAA;CAC3E;AAED,MAAM,MAAM,MAAM,CAAC,OAAO,SAAS,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI;IAC9H,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAGzB,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAA;IAErC,MAAM,EAAE,OAAO,CAAA;IAEf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,SAAS,YAAY,GAAG,YAAY,EACtG,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,UAAU,EAAE,EACvB,WAAW,CAAC,EAAE,KAAK,KAChB,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAClC,SAAS,EAAE,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,SAAS,YAAY,GAAG,YAAY,EAC1G,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,UAAU,EAAE,EACvB,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,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleDescription.d.ts","sourceRoot":"","sources":["../../src/ModuleDescription.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB"}
@@ -0,0 +1,8 @@
1
+ import { EventArgs } from '@xyo-network/module-events';
2
+ import { Module } from './Module';
3
+ export type ModuleEventArgs<TArgs extends EventArgs | undefined = undefined> = TArgs extends EventArgs ? {
4
+ module: Module;
5
+ } & TArgs : {
6
+ module: Module;
7
+ };
8
+ //# sourceMappingURL=ModuleEventArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleEventArgs.d.ts","sourceRoot":"","sources":["../../src/ModuleEventArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,SAAS,SAAS,GAClG;IACE,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,KAAK,GACT;IACE,MAAM,EAAE,MAAM,CAAA;CACf,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { AccountInstance } from '@xyo-network/account-model';
2
+ import { AnyObject, BaseParams, WithAdditional } from '@xyo-network/core';
3
+ import { EventData, EventDataParams } from '@xyo-network/module-events';
4
+ import { WalletInstance } from '@xyo-network/wallet-model';
5
+ import { ModuleConfig } from './Config';
6
+ export type BasicModuleParams<TConfig extends AnyConfigSchema<ModuleConfig>, TEventData extends EventData | undefined = undefined, TAdditionalParams extends AnyObject | undefined = undefined> = WithAdditional<EventDataParams<TEventData, BaseParams<{
7
+ config: TConfig;
8
+ }>>, TAdditionalParams>;
9
+ export type AccountModuleParams<TConfig extends AnyConfigSchema<ModuleConfig>, TEventData extends EventData | undefined = undefined, TAdditionalParams extends AnyObject | undefined = undefined> = BasicModuleParams<TConfig, TEventData, WithAdditional<{
10
+ account: AccountInstance;
11
+ }, TAdditionalParams>>;
12
+ export type WalletModuleParams<TConfig extends AnyConfigSchema<ModuleConfig>, TEventData extends EventData | undefined = undefined, TAdditionalParams extends AnyObject | undefined = undefined> = BasicModuleParams<TConfig, TEventData, WithAdditional<{
13
+ accountDerivationPath: string;
14
+ wallet: WalletInstance;
15
+ }, TAdditionalParams>>;
16
+ export type ModuleParams<TConfig extends AnyConfigSchema<ModuleConfig> = AnyConfigSchema<ModuleConfig>, TEventData extends EventData | undefined = undefined, TAdditionalParams extends AnyObject | undefined = undefined> = AccountModuleParams<TConfig, TEventData, TAdditionalParams> | WalletModuleParams<TConfig, TEventData, TAdditionalParams> | BasicModuleParams<TConfig, TEventData, TAdditionalParams>;
17
+ export type AnyConfigSchema<TConfig extends Omit<ModuleConfig, 'schema'> & {
18
+ schema: string;
19
+ }> = ModuleConfig<WithAdditional<Omit<TConfig, 'schema'>, {
20
+ schema: string;
21
+ }>>;
22
+ export type OptionalConfigSchema<TConfig extends AnyConfigSchema<ModuleConfig>> = Omit<TConfig, 'schema'> & {
23
+ schema?: TConfig['schema'];
24
+ };
25
+ //# sourceMappingURL=ModuleParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleParams.d.ts","sourceRoot":"","sources":["../../src/ModuleParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,MAAM,iBAAiB,CAC3B,OAAO,SAAS,eAAe,CAAC,YAAY,CAAC,EAC7C,UAAU,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EACpD,iBAAiB,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,IACzD,cAAc,CAChB,eAAe,CACb,UAAU,EACV,UAAU,CAAC;IACT,MAAM,EAAE,OAAO,CAAA;CAChB,CAAC,CACH,EACD,iBAAiB,CAClB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,SAAS,eAAe,CAAC,YAAY,CAAC,EAC7C,UAAU,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EACpD,iBAAiB,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,IACzD,iBAAiB,CACnB,OAAO,EACP,UAAU,EACV,cAAc,CACZ;IACE,OAAO,EAAE,eAAe,CAAA;CACzB,EACD,iBAAiB,CAClB,CACF,CAAA;AAED,MAAM,MAAM,kBAAkB,CAC5B,OAAO,SAAS,eAAe,CAAC,YAAY,CAAC,EAC7C,UAAU,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EACpD,iBAAiB,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,IACzD,iBAAiB,CACnB,OAAO,EACP,UAAU,EACV,cAAc,CACZ;IACE,qBAAqB,EAAE,MAAM,CAAA;IAC7B,MAAM,EAAE,cAAc,CAAA;CACvB,EACD,iBAAiB,CAClB,CACF,CAAA;AAED,MAAM,MAAM,YAAY,CACtB,OAAO,SAAS,eAAe,CAAC,YAAY,CAAC,GAAG,eAAe,CAAC,YAAY,CAAC,EAC7E,UAAU,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EACpD,iBAAiB,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,IAEzD,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAC3D,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAC1D,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAA;AAE7D,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,IAAI,YAAY,CAC3G,cAAc,CACZ,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EACvB;IACE,MAAM,EAAE,MAAM,CAAA;CACf,CACF,CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,eAAe,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
2
+ import { EventData } from '@xyo-network/module-events';
3
+ import { XyoPayload } from '@xyo-network/payload-model';
4
+ import { ModuleEventArgs } from './ModuleEventArgs';
5
+ import { XyoQueryBoundWitness } from './Query';
6
+ export type ModuleQueriedEventArgs = ModuleEventArgs<{
7
+ payloads?: XyoPayload[];
8
+ query: XyoQueryBoundWitness;
9
+ result: [XyoBoundWitness, XyoPayload[]];
10
+ }>;
11
+ export interface ModuleEventData extends EventData {
12
+ moduleQueried: ModuleQueriedEventArgs;
13
+ }
14
+ //# sourceMappingURL=ModuleQueried.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleQueried.d.ts","sourceRoot":"","sources":["../../src/ModuleQueried.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC;IACnD,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAA;IACvB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,MAAM,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,CAAA;CACxC,CAAC,CAAA;AAEF,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,aAAa,EAAE,sBAAsB,CAAA;CACtC"}
@@ -0,0 +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,9 +1,13 @@
1
1
  export * from './Config';
2
- export * from './Events';
3
- export * from './model';
2
+ export * from './CreatableModule';
3
+ export * from './Module';
4
+ export * from './ModuleDescription';
5
+ export * from './ModuleEventArgs';
4
6
  export * from './ModuleFilter';
7
+ export * from './ModuleParams';
8
+ export * from './ModuleQueried';
5
9
  export * from './ModuleQueryResult';
6
- export * from './PartialConfig';
10
+ export * from './ModuleRepository';
7
11
  export * from './Queries';
8
12
  export * from './Query';
9
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
package/package.json CHANGED
@@ -10,10 +10,13 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xyo-network/boundwitness-model": "^2.51.8",
14
- "@xyo-network/core": "^2.51.8",
15
- "@xyo-network/payload-model": "^2.51.8",
16
- "@xyo-network/promise": "^2.51.8"
13
+ "@xyo-network/account-model": "^2.51.10",
14
+ "@xyo-network/boundwitness-model": "^2.51.10",
15
+ "@xyo-network/core": "^2.51.10",
16
+ "@xyo-network/module-events": "^2.51.10",
17
+ "@xyo-network/payload-model": "^2.51.10",
18
+ "@xyo-network/promise": "^2.51.10",
19
+ "@xyo-network/wallet-model": "^2.51.10"
17
20
  },
18
21
  "devDependencies": {
19
22
  "@xylabs/ts-scripts-yarn3": "^2.16.1",
@@ -53,5 +56,5 @@
53
56
  },
54
57
  "sideEffects": false,
55
58
  "types": "dist/types/index.d.ts",
56
- "version": "2.51.8"
59
+ "version": "2.51.10"
57
60
  }
package/src/Config.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AnyObject } from '@xyo-network/core'
1
+ import { WithAdditional } from '@xyo-network/core'
2
2
  import { XyoPayload } from '@xyo-network/payload-model'
3
3
 
4
4
  export type ModuleConfigSchema = 'network.xyo.module.config'
@@ -8,26 +8,31 @@ export type AddressString = string
8
8
  export type CosigningAddressSet = string[]
9
9
  export type SchemaString = string
10
10
 
11
- export type ModuleConfigBase<T extends AnyObject = AnyObject> = XyoPayload<
12
- {
13
- //friendly name of module (not collision resistent)
14
- name?: string
11
+ export type ModuleConfigBase<TConfig extends XyoPayload | undefined = undefined> = XyoPayload<
12
+ WithAdditional<
13
+ {
14
+ //friendly name of module (not collision resistent)
15
+ name?: string
15
16
 
16
- //if both allowed and disallowed is specified, then disallowed takes priority
17
- security?: {
18
- //will process queries that have unsigned boundwitness in tuples
19
- allowAnonymous?: boolean
17
+ schema: TConfig extends XyoPayload ? TConfig['schema'] : ModuleConfigSchema
20
18
 
21
- //if schema in record, then only these address sets can access query
22
- allowed?: Record<SchemaString, (AddressString | CosigningAddressSet)[]>
19
+ //if both allowed and disallowed is specified, then disallowed takes priority
20
+ security?: {
21
+ //will process queries that have unsigned boundwitness in tuples
22
+ allowAnonymous?: boolean
23
23
 
24
- //if schema in record, then anyone except these addresses can access query
25
- disallowed?: Record<SchemaString, AddressString[]>
26
- }
24
+ //if schema in record, then only these address sets can access query
25
+ allowed?: Record<SchemaString, (AddressString | CosigningAddressSet)[]>
27
26
 
28
- //store the queries made to the module in an archivist if possible
29
- storeQueries?: boolean
30
- } & T
27
+ //if schema in record, then anyone except these addresses can access query
28
+ disallowed?: Record<SchemaString, AddressString[]>
29
+ }
30
+
31
+ //store the queries made to the module in an archivist if possible
32
+ storeQueries?: boolean
33
+ },
34
+ Omit<TConfig, 'schema'>
35
+ >
31
36
  >
32
37
 
33
- export type ModuleConfig<TConfig extends XyoPayload = XyoPayload> = ModuleConfigBase<TConfig>
38
+ export type ModuleConfig<TConfig extends XyoPayload | undefined = undefined> = ModuleConfigBase<TConfig>
@@ -0,0 +1,22 @@
1
+ import { Logger } from '@xyo-network/core'
2
+
3
+ import { Module } from './Module'
4
+
5
+ export interface CreatableModule<T extends Module = Module> {
6
+ configSchema: string
7
+ defaultLogger?: Logger
8
+ new (params: T['params']): T
9
+ create<T extends Module>(this: CreatableModule<T>, params?: T['params']): Promise<T>
10
+ }
11
+
12
+ /**
13
+ * Class annotation to be used to decorate Modules which support
14
+ * an asynchronous creation pattern
15
+ * @returns The decorated Module requiring it implement the members
16
+ * of the CreatableModule as statics properties/methods
17
+ */
18
+ export function creatableModule<TModule extends Module = Module>() {
19
+ return <U extends CreatableModule<TModule>>(constructor: U) => {
20
+ constructor
21
+ }
22
+ }
@@ -1,11 +1,12 @@
1
+ import { EventFunctions } from '@xyo-network/module-events'
1
2
  import { XyoPayload } from '@xyo-network/payload-model'
2
3
  import { Promisable } from '@xyo-network/promise'
3
4
 
4
- import { ModuleConfig } from '../Config'
5
- import { ModuleEventEmitter, ModuleQueriedEventEmitter } from '../Events'
6
- import { ModuleFilter } from '../ModuleFilter'
7
- import { ModuleQueryResult } from '../ModuleQueryResult'
8
- import { XyoQueryBoundWitness } from '../Query'
5
+ import { ModuleConfig } from './Config'
6
+ import { ModuleFilter } from './ModuleFilter'
7
+ import { AnyConfigSchema, ModuleParams } from './ModuleParams'
8
+ import { ModuleQueryResult } from './ModuleQueryResult'
9
+ import { XyoQueryBoundWitness } from './Query'
9
10
 
10
11
  export interface ModuleResolver {
11
12
  addResolver: (resolver: ModuleResolver) => this
@@ -14,17 +15,15 @@ export interface ModuleResolver {
14
15
  resolve<T extends Module = Module>(filter?: ModuleFilter): Promisable<T[]>
15
16
  }
16
17
 
17
- export type EventModule<TConfig extends ModuleConfig = ModuleConfig, TModuleEventEmitter extends ModuleEventEmitter | undefined = undefined> = {
18
- on: TModuleEventEmitter extends ModuleEventEmitter ? ModuleQueriedEventEmitter['on'] | TModuleEventEmitter['on'] : ModuleQueriedEventEmitter['on']
19
- } & Module<TConfig>
20
-
21
- export type Module<TConfig extends ModuleConfig = ModuleConfig> = {
18
+ export type Module<TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>> = {
22
19
  address: string
23
- config: TConfig
20
+ config: TParams['config']
24
21
 
25
22
  /* 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*/
26
23
  readonly downResolver: ModuleResolver
27
24
 
25
+ params: TParams
26
+
28
27
  queries: string[]
29
28
  query: <T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConf extends ModuleConfig = ModuleConfig>(
30
29
  query: T,
@@ -37,7 +36,9 @@ export type Module<TConfig extends ModuleConfig = ModuleConfig> = {
37
36
  queryConfig?: TConf,
38
37
  ) => Promisable<boolean>
39
38
 
39
+ start?: () => Promisable<void>
40
+
40
41
  /* The resolver is a 'up' resolver. It can resolve the parent or any children of the parent*/
41
42
  /* This is set by a NodeModule when attaching to the module */
42
43
  readonly upResolver: ModuleResolver
43
- }
44
+ } & EventFunctions<TParams['eventData']>
@@ -0,0 +1,11 @@
1
+ import { EventArgs } from '@xyo-network/module-events'
2
+
3
+ import { Module } from './Module'
4
+
5
+ export type ModuleEventArgs<TArgs extends EventArgs | undefined = undefined> = TArgs extends EventArgs
6
+ ? {
7
+ module: Module
8
+ } & TArgs
9
+ : {
10
+ module: Module
11
+ }
@@ -0,0 +1,71 @@
1
+ import { AccountInstance } from '@xyo-network/account-model'
2
+ import { AnyObject, BaseParams, WithAdditional } from '@xyo-network/core'
3
+ import { EventData, EventDataParams } from '@xyo-network/module-events'
4
+ import { WalletInstance } from '@xyo-network/wallet-model'
5
+
6
+ import { ModuleConfig } from './Config'
7
+
8
+ export type BasicModuleParams<
9
+ TConfig extends AnyConfigSchema<ModuleConfig>,
10
+ TEventData extends EventData | undefined = undefined,
11
+ TAdditionalParams extends AnyObject | undefined = undefined,
12
+ > = WithAdditional<
13
+ EventDataParams<
14
+ TEventData,
15
+ BaseParams<{
16
+ config: TConfig
17
+ }>
18
+ >,
19
+ TAdditionalParams
20
+ >
21
+
22
+ export type AccountModuleParams<
23
+ TConfig extends AnyConfigSchema<ModuleConfig>,
24
+ TEventData extends EventData | undefined = undefined,
25
+ TAdditionalParams extends AnyObject | undefined = undefined,
26
+ > = BasicModuleParams<
27
+ TConfig,
28
+ TEventData,
29
+ WithAdditional<
30
+ {
31
+ account: AccountInstance
32
+ },
33
+ TAdditionalParams
34
+ >
35
+ >
36
+
37
+ export type WalletModuleParams<
38
+ TConfig extends AnyConfigSchema<ModuleConfig>,
39
+ TEventData extends EventData | undefined = undefined,
40
+ TAdditionalParams extends AnyObject | undefined = undefined,
41
+ > = BasicModuleParams<
42
+ TConfig,
43
+ TEventData,
44
+ WithAdditional<
45
+ {
46
+ accountDerivationPath: string
47
+ wallet: WalletInstance
48
+ },
49
+ TAdditionalParams
50
+ >
51
+ >
52
+
53
+ export type ModuleParams<
54
+ TConfig extends AnyConfigSchema<ModuleConfig> = AnyConfigSchema<ModuleConfig>,
55
+ TEventData extends EventData | undefined = undefined,
56
+ TAdditionalParams extends AnyObject | undefined = undefined,
57
+ > =
58
+ | AccountModuleParams<TConfig, TEventData, TAdditionalParams>
59
+ | WalletModuleParams<TConfig, TEventData, TAdditionalParams>
60
+ | BasicModuleParams<TConfig, TEventData, TAdditionalParams>
61
+
62
+ export type AnyConfigSchema<TConfig extends Omit<ModuleConfig, 'schema'> & { schema: string }> = ModuleConfig<
63
+ WithAdditional<
64
+ Omit<TConfig, 'schema'>,
65
+ {
66
+ schema: string
67
+ }
68
+ >
69
+ >
70
+
71
+ export type OptionalConfigSchema<TConfig extends AnyConfigSchema<ModuleConfig>> = Omit<TConfig, 'schema'> & { schema?: TConfig['schema'] }
@@ -0,0 +1,16 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
2
+ import { EventData } from '@xyo-network/module-events'
3
+ import { XyoPayload } from '@xyo-network/payload-model'
4
+
5
+ import { ModuleEventArgs } from './ModuleEventArgs'
6
+ import { XyoQueryBoundWitness } from './Query'
7
+
8
+ export type ModuleQueriedEventArgs = ModuleEventArgs<{
9
+ payloads?: XyoPayload[]
10
+ query: XyoQueryBoundWitness
11
+ result: [XyoBoundWitness, XyoPayload[]]
12
+ }>
13
+
14
+ export interface ModuleEventData extends EventData {
15
+ moduleQueried: ModuleQueriedEventArgs
16
+ }
package/src/index.ts CHANGED
@@ -1,8 +1,12 @@
1
1
  export * from './Config'
2
- export * from './Events'
3
- export * from './model'
2
+ export * from './CreatableModule'
3
+ export * from './Module'
4
+ export * from './ModuleDescription'
5
+ export * from './ModuleEventArgs'
4
6
  export * from './ModuleFilter'
7
+ export * from './ModuleParams'
8
+ export * from './ModuleQueried'
5
9
  export * from './ModuleQueryResult'
6
- export * from './PartialConfig'
10
+ export * from './ModuleRepository'
7
11
  export * from './Queries'
8
12
  export * from './Query'
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventArgs.js","sourceRoot":"","sources":["../../../src/Events/EventArgs.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventListener.js","sourceRoot":"","sources":["../../../src/Events/EventListener.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ModuleEventEmitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleEventEmitter.js","sourceRoot":"","sources":["../../../src/Events/ModuleEventEmitter.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModuleQueriedEvent = void 0;
4
- exports.ModuleQueriedEvent = 'moduleQueried';
5
- //# sourceMappingURL=ModuleQueried.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleQueried.js","sourceRoot":"","sources":["../../../src/Events/ModuleQueried.ts"],"names":[],"mappings":";;;AAUa,QAAA,kBAAkB,GAAuB,eAAe,CAAA"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./EventArgs"), exports);
5
- tslib_1.__exportStar(require("./EventListener"), exports);
6
- tslib_1.__exportStar(require("./ModuleEventEmitter"), exports);
7
- tslib_1.__exportStar(require("./ModuleQueried"), exports);
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,0DAA+B;AAC/B,+DAAoC;AACpC,0DAA+B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PartialConfig.js","sourceRoot":"","sources":["../../src/PartialConfig.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleDescription.js","sourceRoot":"","sources":["../../../src/model/ModuleDescription.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleRepository.js","sourceRoot":"","sources":["../../../src/model/ModuleRepository.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./Module"), exports);
5
- tslib_1.__exportStar(require("./ModuleDescription"), exports);
6
- tslib_1.__exportStar(require("./ModuleRepository"), exports);
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB;AACxB,8DAAmC;AACnC,6DAAkC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=EventArgs.js.map