@xyo-network/module-model 2.75.2 → 2.75.4

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 (72) hide show
  1. package/dist/browser/Config.js +2 -1
  2. package/dist/browser/Config.js.map +1 -1
  3. package/dist/browser/CreatableModule/CreatableModule.js +1 -0
  4. package/dist/browser/CreatableModule/CreatableModule.js.map +1 -1
  5. package/dist/browser/CreatableModule/CreatableModuleRegistry.js +3 -2
  6. package/dist/browser/CreatableModule/CreatableModuleRegistry.js.map +1 -1
  7. package/dist/browser/CreatableModule/LabeledCreatableModuleFactory.js +2 -1
  8. package/dist/browser/CreatableModule/LabeledCreatableModuleFactory.js.map +1 -1
  9. package/dist/browser/CreatableModule/ModuleFactory.js +4 -3
  10. package/dist/browser/CreatableModule/ModuleFactory.js.map +1 -1
  11. package/dist/browser/CreatableModule/ModuleFactoryLocator.js +19 -4
  12. package/dist/browser/CreatableModule/ModuleFactoryLocator.js.map +1 -1
  13. package/dist/browser/CreatableModule/index.js +169 -6
  14. package/dist/browser/CreatableModule/index.js.map +1 -1
  15. package/dist/browser/EventsModels/index.js +0 -5
  16. package/dist/browser/EventsModels/index.js.map +1 -1
  17. package/dist/browser/Labels/Labels.js +2 -1
  18. package/dist/browser/Labels/Labels.js.map +1 -1
  19. package/dist/browser/Labels/index.js +11 -1
  20. package/dist/browser/Labels/index.js.map +1 -1
  21. package/dist/browser/Queries/Describe/Payload.js +2 -1
  22. package/dist/browser/Queries/Describe/Payload.js.map +1 -1
  23. package/dist/browser/Queries/Describe/Query.js +2 -1
  24. package/dist/browser/Queries/Describe/Query.js.map +1 -1
  25. package/dist/browser/Queries/Describe/index.js +9 -2
  26. package/dist/browser/Queries/Describe/index.js.map +1 -1
  27. package/dist/browser/Queries/Discover.js +2 -1
  28. package/dist/browser/Queries/Discover.js.map +1 -1
  29. package/dist/browser/Queries/Manifest.js +2 -1
  30. package/dist/browser/Queries/Manifest.js.map +1 -1
  31. package/dist/browser/Queries/ModuleAddress/Payload.js +2 -1
  32. package/dist/browser/Queries/ModuleAddress/Payload.js.map +1 -1
  33. package/dist/browser/Queries/ModuleAddress/Query.js +2 -1
  34. package/dist/browser/Queries/ModuleAddress/Query.js.map +1 -1
  35. package/dist/browser/Queries/ModuleAddress/index.js +10 -2
  36. package/dist/browser/Queries/ModuleAddress/index.js.map +1 -1
  37. package/dist/browser/Queries/Subscribe.js +2 -1
  38. package/dist/browser/Queries/Subscribe.js.map +1 -1
  39. package/dist/browser/Queries/index.js +30 -5
  40. package/dist/browser/Queries/index.js.map +1 -1
  41. package/dist/browser/index.js +332 -13
  42. package/dist/browser/index.js.map +1 -1
  43. package/dist/browser/instance/ModuleInstance.js +3 -2
  44. package/dist/browser/instance/ModuleInstance.js.map +1 -1
  45. package/dist/browser/instance/asModuleInstance.js +63 -2
  46. package/dist/browser/instance/asModuleInstance.js.map +1 -1
  47. package/dist/browser/instance/index.js +75 -4
  48. package/dist/browser/instance/index.js.map +1 -1
  49. package/dist/browser/instance/isModuleInstance.js +52 -4
  50. package/dist/browser/instance/isModuleInstance.js.map +1 -1
  51. package/dist/browser/lib/duplicateModules.js +2 -1
  52. package/dist/browser/lib/duplicateModules.js.map +1 -1
  53. package/dist/browser/lib/index.js +32 -2
  54. package/dist/browser/lib/index.js.map +1 -1
  55. package/dist/browser/lib/serializable.js +5 -4
  56. package/dist/browser/lib/serializable.js.map +1 -1
  57. package/dist/browser/module/IsModuleFactory.js +22 -4
  58. package/dist/browser/module/IsModuleFactory.js.map +1 -1
  59. package/dist/browser/module/asModule.js +50 -2
  60. package/dist/browser/module/asModule.js.map +1 -1
  61. package/dist/browser/module/asModuleObject.js +17 -2
  62. package/dist/browser/module/asModuleObject.js.map +1 -1
  63. package/dist/browser/module/index.js +60 -8
  64. package/dist/browser/module/index.js.map +1 -1
  65. package/dist/browser/module/isModule.js +38 -6
  66. package/dist/browser/module/isModule.js.map +1 -1
  67. package/dist/browser/module/isModuleObject.js +4 -3
  68. package/dist/browser/module/isModuleObject.js.map +1 -1
  69. package/dist/browser/withModule.js +63 -5
  70. package/dist/browser/withModule.js.map +1 -1
  71. package/dist/docs.json +1160 -1160
  72. package/package.json +17 -17
@@ -1,5 +1,76 @@
1
- export * from "./asModuleInstance";
2
- export * from "./isModuleInstance";
3
- export * from "./ModuleInstance";
4
- export * from "./ModuleRepository";
1
+ // src/instance/asModuleInstance.ts
2
+ import { AsObjectFactory as AsObjectFactory2 } from "@xyo-network/object";
3
+
4
+ // src/instance/isModuleInstance.ts
5
+ import { IsObjectFactory as IsObjectFactory2 } from "@xyo-network/object";
6
+
7
+ // src/Queries/Discover.ts
8
+ var ModuleDiscoverQuerySchema = "network.xyo.query.module.discover";
9
+
10
+ // src/module/asModuleObject.ts
11
+ import { AsObjectFactory } from "@xyo-network/object";
12
+
13
+ // src/module/isModuleObject.ts
14
+ import { IsObjectFactory } from "@xyo-network/object";
15
+ var requiredModuleFunctions = {
16
+ address: "string",
17
+ config: "object",
18
+ params: "object",
19
+ queries: "array",
20
+ query: "function",
21
+ queryable: "function"
22
+ };
23
+ var factory = new IsObjectFactory();
24
+ var isModuleObject = factory.create(requiredModuleFunctions);
25
+
26
+ // src/module/asModuleObject.ts
27
+ var asModuleObject = AsObjectFactory.create(isModuleObject);
28
+
29
+ // src/module/IsModuleFactory.ts
30
+ var IsModuleFactory = class {
31
+ create(expectedQueries, additionalChecks) {
32
+ return (obj, config) => {
33
+ const module = asModuleObject(obj);
34
+ const result = isModuleObject(module, config) && (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) && //perform additional checks
35
+ (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true);
36
+ return result;
37
+ };
38
+ }
39
+ };
40
+
41
+ // src/module/isModule.ts
42
+ var requiredModuleQueries = [
43
+ /* We need to update this once live module conform */
44
+ //ModuleDescribeQuerySchema,
45
+ //ModuleAddressQuerySchema,
46
+ ModuleDiscoverQuerySchema
47
+ //ModuleManifestQuerySchema,
48
+ //ModuleSubscribeQuerySchema,
49
+ ];
50
+ var factory2 = new IsModuleFactory();
51
+ var isModule = factory2.create(requiredModuleQueries, [isModuleObject]);
52
+
53
+ // src/instance/isModuleInstance.ts
54
+ var requiredModuleInstanceFunctions = {
55
+ describe: "function",
56
+ discover: "function",
57
+ manifest: "function",
58
+ moduleAddress: "function"
59
+ };
60
+ var factory3 = new IsObjectFactory2();
61
+ var isModuleInstance = factory3.create(requiredModuleInstanceFunctions, [isModule]);
62
+
63
+ // src/instance/asModuleInstance.ts
64
+ var asModuleInstance = AsObjectFactory2.create(isModuleInstance);
65
+
66
+ // src/instance/ModuleInstance.ts
67
+ import { IsObjectFactory as IsObjectFactory3 } from "@xyo-network/object";
68
+ var IsInstanceFactory = class extends IsObjectFactory3 {
69
+ };
70
+ export {
71
+ IsInstanceFactory,
72
+ asModuleInstance,
73
+ isModuleInstance,
74
+ requiredModuleInstanceFunctions
75
+ };
5
76
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance/index.ts"],"sourcesContent":["export * from './asModuleInstance'\nexport * from './isModuleInstance'\nexport * from './ModuleInstance'\nexport * from './ModuleRepository'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/instance/asModuleInstance.ts","../../../src/instance/isModuleInstance.ts","../../../src/Queries/Discover.ts","../../../src/module/asModuleObject.ts","../../../src/module/isModuleObject.ts","../../../src/module/IsModuleFactory.ts","../../../src/module/isModule.ts","../../../src/instance/ModuleInstance.ts"],"sourcesContent":["import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleInstance } from './isModuleInstance'\n\nexport const asModuleInstance = AsObjectFactory.create(isModuleInstance)\n","import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { isModule } from '../module'\nimport { ModuleInstance } from './ModuleInstance'\n\nexport const requiredModuleInstanceFunctions: ObjectTypeShape = {\n describe: 'function',\n discover: 'function',\n manifest: 'function',\n moduleAddress: 'function',\n}\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<ModuleInstance>()\n\nexport const isModuleInstance: ObjectTypeCheck<ModuleInstance> = factory.create(requiredModuleInstanceFunctions, [isModule])\n","import { Query } from '@xyo-network/payload-model'\n\nexport type ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\nexport const ModuleDiscoverQuerySchema: ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\n\nexport type ModuleDiscoverQuery = Query<{\n schema: ModuleDiscoverQuerySchema\n}>\n","import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleObject } from './isModuleObject'\n\nexport const asModuleObject = AsObjectFactory.create(isModuleObject)\n","import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { asModuleObject } from './asModuleObject'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport type ModuleTypeCheck<T extends Module = Module> = ObjectTypeCheck<T>\n\nexport class IsModuleFactory<T extends Module = Module> {\n create(expectedQueries?: string[], additionalChecks?: ObjectTypeCheck[]): ModuleTypeCheck<T> {\n return (obj: any, config): obj is T => {\n const module = asModuleObject(obj)\n const result =\n isModuleObject(module, config) &&\n (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) &&\n //perform additional checks\n (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)\n return result\n }\n }\n}\n","import { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { ModuleDiscoverQuerySchema } from '../Queries'\nimport { IsModuleFactory } from './IsModuleFactory'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport const requiredModuleQueries: string[] = [\n /* We need to update this once live module conform */\n //ModuleDescribeQuerySchema,\n //ModuleAddressQuerySchema,\n ModuleDiscoverQuerySchema,\n //ModuleManifestQuerySchema,\n //ModuleSubscribeQuerySchema,\n]\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsModuleFactory<Module>()\n\nexport const isModule: ObjectTypeCheck<Module> = factory.create(requiredModuleQueries, [isModuleObject])\n","import { IsObjectFactory, ObjectTypeCheck } from '@xyo-network/object'\nimport { Promisable } from '@xyo-network/promise'\n\nimport { AnyConfigSchema, ModuleConfig } from '../Config'\nimport { ModuleEventData } from '../EventsModels'\nimport { Module, ModuleQueryFunctions } from '../module'\nimport { ModuleParams } from '../ModuleParams'\n\nexport interface ResolveFunctions {\n resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promisable<T[]>\n resolve<T extends ModuleInstance = ModuleInstance>(nameOrAddress: string, options?: ModuleFilterOptions<T>): Promisable<T | undefined>\n resolve<T extends ModuleInstance = ModuleInstance>(\n nameOrAddressOrFilter?: ModuleFilter<T> | string,\n options?: ModuleFilterOptions<T>,\n ): Promisable<T | T[] | undefined>\n}\n\nexport interface ModuleResolver extends ResolveFunctions {\n addResolver: (resolver: ModuleResolver) => this\n isModuleResolver: boolean\n removeResolver: (resolver: ModuleResolver) => this\n}\n\nexport type ModuleInstance<\n TParams extends ModuleParams<AnyConfigSchema<ModuleConfig>> = ModuleParams<AnyConfigSchema<ModuleConfig>>,\n TEventData extends ModuleEventData = ModuleEventData,\n> = Module<TParams, TEventData> &\n ResolveFunctions &\n ModuleQueryFunctions & {\n /* 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*/\n readonly downResolver: Omit<ModuleResolver, 'resolve'>\n\n /* The resolver is a 'up' resolver. It can resolve the parent or any children of the parent*/\n /* This is set by a NodeModule when attaching to the module */\n readonly upResolver: Omit<ModuleResolver, 'resolve'>\n }\n\nexport type InstanceTypeCheck<T extends ModuleInstance = ModuleInstance> = ObjectTypeCheck<T>\n\nexport class IsInstanceFactory<T extends ModuleInstance = ModuleInstance> extends IsObjectFactory<T> {}\n\nexport interface ModuleFilterOptions<T extends ModuleInstance = ModuleInstance> {\n direction?: 'up' | 'down' | 'all'\n identity?: InstanceTypeCheck<T>\n maxDepth?: number\n visibility?: 'public' | 'private' | 'all'\n}\n\nexport interface AddressModuleFilter<T extends ModuleInstance = ModuleInstance> extends ModuleFilterOptions<T> {\n address: string[]\n}\n\nexport interface NameModuleFilter<T extends ModuleInstance = ModuleInstance> extends ModuleFilterOptions<T> {\n name: string[]\n}\n\nexport interface QueryModuleFilter<T extends ModuleInstance = ModuleInstance> extends ModuleFilterOptions<T> {\n query: string[][]\n}\n\nexport type AnyModuleFilter<T extends ModuleInstance = ModuleInstance> = Partial<AddressModuleFilter<T>> &\n Partial<NameModuleFilter<T>> &\n Partial<QueryModuleFilter<T>>\n\nexport type ModuleFilter<T extends ModuleInstance = ModuleInstance> =\n | ModuleFilterOptions<T>\n | AddressModuleFilter<T>\n | NameModuleFilter<T>\n | QueryModuleFilter<T>\n"],"mappings":";AAAA,SAAS,mBAAAA,wBAAuB;;;ACAhC,SAAS,mBAAAC,wBAAyD;;;ACG3D,IAAM,4BAAuD;;;ACHpE,SAAS,uBAAuB;;;ACAhC,SAAS,uBAAyD;AAI3D,IAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,IAAM,UAAU,IAAI,gBAAwB;AAErC,IAAM,iBAA0C,QAAQ,OAAO,uBAAuB;;;ADXtF,IAAM,iBAAiB,gBAAgB,OAAO,cAAc;;;AEK5D,IAAM,kBAAN,MAAiD;AAAA,EACtD,OAAO,iBAA4B,kBAA0D;AAC3F,WAAO,CAAC,KAAU,WAAqB;AACrC,YAAM,SAAS,eAAe,GAAG;AACjC,YAAM,SACJ,eAAe,QAAQ,MAAM,MAC5B,iBAAiB,OAAO,CAAC,MAAM,UAAU,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAAG,IAAI,KAAK;AAAA,OAEvF,kBAAkB,OAAO,CAAC,MAAM,UAAU,QAAQ,MAAM,KAAK,MAAM,GAAG,IAAI,KAAK;AAClF,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACdO,IAAM,wBAAkC;AAAA;AAAA;AAAA;AAAA,EAI7C;AAAA;AAAA;AAGF;AAGA,IAAMC,WAAU,IAAI,gBAAwB;AAErC,IAAM,WAAoCA,SAAQ,OAAO,uBAAuB,CAAC,cAAc,CAAC;;;ALdhG,IAAM,kCAAmD;AAAA,EAC9D,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AACjB;AAGA,IAAMC,WAAU,IAAIC,iBAAgC;AAE7C,IAAM,mBAAoDD,SAAQ,OAAO,iCAAiC,CAAC,QAAQ,CAAC;;;ADXpH,IAAM,mBAAmBE,iBAAgB,OAAO,gBAAgB;;;AOJvE,SAAS,mBAAAC,wBAAwC;AAuC1C,IAAM,oBAAN,cAA2EA,iBAAmB;AAAC;","names":["AsObjectFactory","IsObjectFactory","factory","factory","IsObjectFactory","AsObjectFactory","IsObjectFactory"]}
@@ -1,13 +1,61 @@
1
+ // src/instance/isModuleInstance.ts
2
+ import { IsObjectFactory as IsObjectFactory2 } from "@xyo-network/object";
3
+
4
+ // src/Queries/Discover.ts
5
+ var ModuleDiscoverQuerySchema = "network.xyo.query.module.discover";
6
+
7
+ // src/module/asModuleObject.ts
8
+ import { AsObjectFactory } from "@xyo-network/object";
9
+
10
+ // src/module/isModuleObject.ts
1
11
  import { IsObjectFactory } from "@xyo-network/object";
2
- import { isModule } from "../module";
3
- const requiredModuleInstanceFunctions = {
12
+ var requiredModuleFunctions = {
13
+ address: "string",
14
+ config: "object",
15
+ params: "object",
16
+ queries: "array",
17
+ query: "function",
18
+ queryable: "function"
19
+ };
20
+ var factory = new IsObjectFactory();
21
+ var isModuleObject = factory.create(requiredModuleFunctions);
22
+
23
+ // src/module/asModuleObject.ts
24
+ var asModuleObject = AsObjectFactory.create(isModuleObject);
25
+
26
+ // src/module/IsModuleFactory.ts
27
+ var IsModuleFactory = class {
28
+ create(expectedQueries, additionalChecks) {
29
+ return (obj, config) => {
30
+ const module = asModuleObject(obj);
31
+ const result = isModuleObject(module, config) && (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) && //perform additional checks
32
+ (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true);
33
+ return result;
34
+ };
35
+ }
36
+ };
37
+
38
+ // src/module/isModule.ts
39
+ var requiredModuleQueries = [
40
+ /* We need to update this once live module conform */
41
+ //ModuleDescribeQuerySchema,
42
+ //ModuleAddressQuerySchema,
43
+ ModuleDiscoverQuerySchema
44
+ //ModuleManifestQuerySchema,
45
+ //ModuleSubscribeQuerySchema,
46
+ ];
47
+ var factory2 = new IsModuleFactory();
48
+ var isModule = factory2.create(requiredModuleQueries, [isModuleObject]);
49
+
50
+ // src/instance/isModuleInstance.ts
51
+ var requiredModuleInstanceFunctions = {
4
52
  describe: "function",
5
53
  discover: "function",
6
54
  manifest: "function",
7
55
  moduleAddress: "function"
8
56
  };
9
- const factory = new IsObjectFactory();
10
- const isModuleInstance = factory.create(requiredModuleInstanceFunctions, [isModule]);
57
+ var factory3 = new IsObjectFactory2();
58
+ var isModuleInstance = factory3.create(requiredModuleInstanceFunctions, [isModule]);
11
59
  export {
12
60
  isModuleInstance,
13
61
  requiredModuleInstanceFunctions
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance/isModuleInstance.ts"],"sourcesContent":["import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { isModule } from '../module'\nimport { ModuleInstance } from './ModuleInstance'\n\nexport const requiredModuleInstanceFunctions: ObjectTypeShape = {\n describe: 'function',\n discover: 'function',\n manifest: 'function',\n moduleAddress: 'function',\n}\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<ModuleInstance>()\n\nexport const isModuleInstance: ObjectTypeCheck<ModuleInstance> = factory.create(requiredModuleInstanceFunctions, [isModule])\n"],"mappings":"AAAA,SAAS,uBAAyD;AAElE,SAAS,gBAAgB;AAGlB,MAAM,kCAAmD;AAAA,EAC9D,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AACjB;AAGA,MAAM,UAAU,IAAI,gBAAgC;AAE7C,MAAM,mBAAoD,QAAQ,OAAO,iCAAiC,CAAC,QAAQ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/instance/isModuleInstance.ts","../../../src/Queries/Discover.ts","../../../src/module/asModuleObject.ts","../../../src/module/isModuleObject.ts","../../../src/module/IsModuleFactory.ts","../../../src/module/isModule.ts"],"sourcesContent":["import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { isModule } from '../module'\nimport { ModuleInstance } from './ModuleInstance'\n\nexport const requiredModuleInstanceFunctions: ObjectTypeShape = {\n describe: 'function',\n discover: 'function',\n manifest: 'function',\n moduleAddress: 'function',\n}\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<ModuleInstance>()\n\nexport const isModuleInstance: ObjectTypeCheck<ModuleInstance> = factory.create(requiredModuleInstanceFunctions, [isModule])\n","import { Query } from '@xyo-network/payload-model'\n\nexport type ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\nexport const ModuleDiscoverQuerySchema: ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\n\nexport type ModuleDiscoverQuery = Query<{\n schema: ModuleDiscoverQuerySchema\n}>\n","import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleObject } from './isModuleObject'\n\nexport const asModuleObject = AsObjectFactory.create(isModuleObject)\n","import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { asModuleObject } from './asModuleObject'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport type ModuleTypeCheck<T extends Module = Module> = ObjectTypeCheck<T>\n\nexport class IsModuleFactory<T extends Module = Module> {\n create(expectedQueries?: string[], additionalChecks?: ObjectTypeCheck[]): ModuleTypeCheck<T> {\n return (obj: any, config): obj is T => {\n const module = asModuleObject(obj)\n const result =\n isModuleObject(module, config) &&\n (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) &&\n //perform additional checks\n (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)\n return result\n }\n }\n}\n","import { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { ModuleDiscoverQuerySchema } from '../Queries'\nimport { IsModuleFactory } from './IsModuleFactory'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport const requiredModuleQueries: string[] = [\n /* We need to update this once live module conform */\n //ModuleDescribeQuerySchema,\n //ModuleAddressQuerySchema,\n ModuleDiscoverQuerySchema,\n //ModuleManifestQuerySchema,\n //ModuleSubscribeQuerySchema,\n]\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsModuleFactory<Module>()\n\nexport const isModule: ObjectTypeCheck<Module> = factory.create(requiredModuleQueries, [isModuleObject])\n"],"mappings":";AAAA,SAAS,mBAAAA,wBAAyD;;;ACG3D,IAAM,4BAAuD;;;ACHpE,SAAS,uBAAuB;;;ACAhC,SAAS,uBAAyD;AAI3D,IAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,IAAM,UAAU,IAAI,gBAAwB;AAErC,IAAM,iBAA0C,QAAQ,OAAO,uBAAuB;;;ADXtF,IAAM,iBAAiB,gBAAgB,OAAO,cAAc;;;AEK5D,IAAM,kBAAN,MAAiD;AAAA,EACtD,OAAO,iBAA4B,kBAA0D;AAC3F,WAAO,CAAC,KAAU,WAAqB;AACrC,YAAM,SAAS,eAAe,GAAG;AACjC,YAAM,SACJ,eAAe,QAAQ,MAAM,MAC5B,iBAAiB,OAAO,CAAC,MAAM,UAAU,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAAG,IAAI,KAAK;AAAA,OAEvF,kBAAkB,OAAO,CAAC,MAAM,UAAU,QAAQ,MAAM,KAAK,MAAM,GAAG,IAAI,KAAK;AAClF,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACdO,IAAM,wBAAkC;AAAA;AAAA;AAAA;AAAA,EAI7C;AAAA;AAAA;AAGF;AAGA,IAAMC,WAAU,IAAI,gBAAwB;AAErC,IAAM,WAAoCA,SAAQ,OAAO,uBAAuB,CAAC,cAAc,CAAC;;;ALdhG,IAAM,kCAAmD;AAAA,EAC9D,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AACjB;AAGA,IAAMC,WAAU,IAAIC,iBAAgC;AAE7C,IAAM,mBAAoDD,SAAQ,OAAO,iCAAiC,CAAC,QAAQ,CAAC;","names":["IsObjectFactory","factory","factory","IsObjectFactory"]}
@@ -1,4 +1,5 @@
1
- const duplicateModules = (value, index, array) => {
1
+ // src/lib/duplicateModules.ts
2
+ var duplicateModules = (value, index, array) => {
2
3
  return array.findIndex((v) => v.address === value.address) === index;
3
4
  };
4
5
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/duplicateModules.ts"],"sourcesContent":["import { Module } from '../module'\n\n/**\n * Used to filter duplicates from an array of modules\n * @example: modulesArray.filter(duplicateModules)\n * @param value Current Module\n * @param index Current Module's index\n * @param array Module Array\n * @returns True if the Module's address is the first occurrence of\n * that address in the array, false otherwise\n */\nexport const duplicateModules = (value: Module, index: number, array: Module[]): value is Module => {\n return array.findIndex((v) => v.address === value.address) === index\n}\n"],"mappings":"AAWO,MAAM,mBAAmB,CAAC,OAAe,OAAe,UAAqC;AAClG,SAAO,MAAM,UAAU,CAAC,MAAM,EAAE,YAAY,MAAM,OAAO,MAAM;AACjE;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/duplicateModules.ts"],"sourcesContent":["import { Module } from '../module'\n\n/**\n * Used to filter duplicates from an array of modules\n * @example: modulesArray.filter(duplicateModules)\n * @param value Current Module\n * @param index Current Module's index\n * @param array Module Array\n * @returns True if the Module's address is the first occurrence of\n * that address in the array, false otherwise\n */\nexport const duplicateModules = (value: Module, index: number, array: Module[]): value is Module => {\n return array.findIndex((v) => v.address === value.address) === index\n}\n"],"mappings":";AAWO,IAAM,mBAAmB,CAAC,OAAe,OAAe,UAAqC;AAClG,SAAO,MAAM,UAAU,CAAC,MAAM,EAAE,YAAY,MAAM,OAAO,MAAM;AACjE;","names":[]}
@@ -1,3 +1,33 @@
1
- export * from "./duplicateModules";
2
- export * from "./serializable";
1
+ // src/lib/duplicateModules.ts
2
+ var duplicateModules = (value, index, array) => {
3
+ return array.findIndex((v) => v.address === value.address) === index;
4
+ };
5
+
6
+ // src/lib/serializable.ts
7
+ import { every, isArray, isBoolean, isNull, isNumber, isPlainObject, isString, isUndefined, overSome } from "@xylabs/lodash";
8
+ var JSONPrimitiveChecks = [isUndefined, isNull, isBoolean, isNumber, isString];
9
+ var JSONComplexChecks = [isPlainObject, isArray];
10
+ var serializable = (field, depth) => {
11
+ let depthExceeded = false;
12
+ const decrementDepth = () => depth ? depth-- : void 0;
13
+ const recursiveSerializable = (field2) => {
14
+ if (depth !== void 0 && depth < 1) {
15
+ depthExceeded = true;
16
+ return false;
17
+ }
18
+ decrementDepth();
19
+ const nestedSerializable = (field3) => overSome(JSONComplexChecks)(field3) && every(field3, recursiveSerializable);
20
+ return overSome([...JSONPrimitiveChecks, nestedSerializable])(field2);
21
+ };
22
+ const valid = recursiveSerializable(field);
23
+ return depthExceeded ? null : valid;
24
+ };
25
+ var serializableField = (field) => {
26
+ return overSome([...JSONPrimitiveChecks, ...JSONComplexChecks])(field);
27
+ };
28
+ export {
29
+ duplicateModules,
30
+ serializable,
31
+ serializableField
32
+ };
3
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/index.ts"],"sourcesContent":["export * from './duplicateModules'\nexport * from './serializable'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/duplicateModules.ts","../../../src/lib/serializable.ts"],"sourcesContent":["import { Module } from '../module'\n\n/**\n * Used to filter duplicates from an array of modules\n * @example: modulesArray.filter(duplicateModules)\n * @param value Current Module\n * @param index Current Module's index\n * @param array Module Array\n * @returns True if the Module's address is the first occurrence of\n * that address in the array, false otherwise\n */\nexport const duplicateModules = (value: Module, index: number, array: Module[]): value is Module => {\n return array.findIndex((v) => v.address === value.address) === index\n}\n","// Inspired by https://stackoverflow.com/a/49079549/2803259\n\nimport { every, isArray, isBoolean, isNull, isNumber, isPlainObject, isString, isUndefined, overSome } from '@xylabs/lodash'\n\nconst JSONPrimitiveChecks = [isUndefined, isNull, isBoolean, isNumber, isString]\nconst JSONComplexChecks = [isPlainObject, isArray]\n\nexport const serializable = (field: unknown, depth?: number): boolean | null => {\n let depthExceeded = false\n const decrementDepth = () => (depth ? depth-- : undefined)\n\n const recursiveSerializable = (field: unknown) => {\n if (depth !== undefined && depth < 1) {\n depthExceeded = true\n return false\n }\n\n // decrement during every recursion\n decrementDepth()\n\n const nestedSerializable = (field: unknown): boolean => overSome(JSONComplexChecks)(field) && every(field as object, recursiveSerializable)\n\n return overSome([...JSONPrimitiveChecks, nestedSerializable])(field)\n }\n\n const valid = recursiveSerializable(field)\n\n return depthExceeded ? null : valid\n}\n\nexport const serializableField = (field: unknown) => {\n return overSome([...JSONPrimitiveChecks, ...JSONComplexChecks])(field)\n}\n"],"mappings":";AAWO,IAAM,mBAAmB,CAAC,OAAe,OAAe,UAAqC;AAClG,SAAO,MAAM,UAAU,CAAC,MAAM,EAAE,YAAY,MAAM,OAAO,MAAM;AACjE;;;ACXA,SAAS,OAAO,SAAS,WAAW,QAAQ,UAAU,eAAe,UAAU,aAAa,gBAAgB;AAE5G,IAAM,sBAAsB,CAAC,aAAa,QAAQ,WAAW,UAAU,QAAQ;AAC/E,IAAM,oBAAoB,CAAC,eAAe,OAAO;AAE1C,IAAM,eAAe,CAAC,OAAgB,UAAmC;AAC9E,MAAI,gBAAgB;AACpB,QAAM,iBAAiB,MAAO,QAAQ,UAAU;AAEhD,QAAM,wBAAwB,CAACA,WAAmB;AAChD,QAAI,UAAU,UAAa,QAAQ,GAAG;AACpC,sBAAgB;AAChB,aAAO;AAAA,IACT;AAGA,mBAAe;AAEf,UAAM,qBAAqB,CAACA,WAA4B,SAAS,iBAAiB,EAAEA,MAAK,KAAK,MAAMA,QAAiB,qBAAqB;AAE1I,WAAO,SAAS,CAAC,GAAG,qBAAqB,kBAAkB,CAAC,EAAEA,MAAK;AAAA,EACrE;AAEA,QAAM,QAAQ,sBAAsB,KAAK;AAEzC,SAAO,gBAAgB,OAAO;AAChC;AAEO,IAAM,oBAAoB,CAAC,UAAmB;AACnD,SAAO,SAAS,CAAC,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,EAAE,KAAK;AACvE;","names":["field"]}
@@ -1,7 +1,8 @@
1
+ // src/lib/serializable.ts
1
2
  import { every, isArray, isBoolean, isNull, isNumber, isPlainObject, isString, isUndefined, overSome } from "@xylabs/lodash";
2
- const JSONPrimitiveChecks = [isUndefined, isNull, isBoolean, isNumber, isString];
3
- const JSONComplexChecks = [isPlainObject, isArray];
4
- const serializable = (field, depth) => {
3
+ var JSONPrimitiveChecks = [isUndefined, isNull, isBoolean, isNumber, isString];
4
+ var JSONComplexChecks = [isPlainObject, isArray];
5
+ var serializable = (field, depth) => {
5
6
  let depthExceeded = false;
6
7
  const decrementDepth = () => depth ? depth-- : void 0;
7
8
  const recursiveSerializable = (field2) => {
@@ -16,7 +17,7 @@ const serializable = (field, depth) => {
16
17
  const valid = recursiveSerializable(field);
17
18
  return depthExceeded ? null : valid;
18
19
  };
19
- const serializableField = (field) => {
20
+ var serializableField = (field) => {
20
21
  return overSome([...JSONPrimitiveChecks, ...JSONComplexChecks])(field);
21
22
  };
22
23
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/serializable.ts"],"sourcesContent":["// Inspired by https://stackoverflow.com/a/49079549/2803259\n\nimport { every, isArray, isBoolean, isNull, isNumber, isPlainObject, isString, isUndefined, overSome } from '@xylabs/lodash'\n\nconst JSONPrimitiveChecks = [isUndefined, isNull, isBoolean, isNumber, isString]\nconst JSONComplexChecks = [isPlainObject, isArray]\n\nexport const serializable = (field: unknown, depth?: number): boolean | null => {\n let depthExceeded = false\n const decrementDepth = () => (depth ? depth-- : undefined)\n\n const recursiveSerializable = (field: unknown) => {\n if (depth !== undefined && depth < 1) {\n depthExceeded = true\n return false\n }\n\n // decrement during every recursion\n decrementDepth()\n\n const nestedSerializable = (field: unknown): boolean => overSome(JSONComplexChecks)(field) && every(field as object, recursiveSerializable)\n\n return overSome([...JSONPrimitiveChecks, nestedSerializable])(field)\n }\n\n const valid = recursiveSerializable(field)\n\n return depthExceeded ? null : valid\n}\n\nexport const serializableField = (field: unknown) => {\n return overSome([...JSONPrimitiveChecks, ...JSONComplexChecks])(field)\n}\n"],"mappings":"AAEA,SAAS,OAAO,SAAS,WAAW,QAAQ,UAAU,eAAe,UAAU,aAAa,gBAAgB;AAE5G,MAAM,sBAAsB,CAAC,aAAa,QAAQ,WAAW,UAAU,QAAQ;AAC/E,MAAM,oBAAoB,CAAC,eAAe,OAAO;AAE1C,MAAM,eAAe,CAAC,OAAgB,UAAmC;AAC9E,MAAI,gBAAgB;AACpB,QAAM,iBAAiB,MAAO,QAAQ,UAAU;AAEhD,QAAM,wBAAwB,CAACA,WAAmB;AAChD,QAAI,UAAU,UAAa,QAAQ,GAAG;AACpC,sBAAgB;AAChB,aAAO;AAAA,IACT;AAGA,mBAAe;AAEf,UAAM,qBAAqB,CAACA,WAA4B,SAAS,iBAAiB,EAAEA,MAAK,KAAK,MAAMA,QAAiB,qBAAqB;AAE1I,WAAO,SAAS,CAAC,GAAG,qBAAqB,kBAAkB,CAAC,EAAEA,MAAK;AAAA,EACrE;AAEA,QAAM,QAAQ,sBAAsB,KAAK;AAEzC,SAAO,gBAAgB,OAAO;AAChC;AAEO,MAAM,oBAAoB,CAAC,UAAmB;AACnD,SAAO,SAAS,CAAC,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,EAAE,KAAK;AACvE;","names":["field"]}
1
+ {"version":3,"sources":["../../../src/lib/serializable.ts"],"sourcesContent":["// Inspired by https://stackoverflow.com/a/49079549/2803259\n\nimport { every, isArray, isBoolean, isNull, isNumber, isPlainObject, isString, isUndefined, overSome } from '@xylabs/lodash'\n\nconst JSONPrimitiveChecks = [isUndefined, isNull, isBoolean, isNumber, isString]\nconst JSONComplexChecks = [isPlainObject, isArray]\n\nexport const serializable = (field: unknown, depth?: number): boolean | null => {\n let depthExceeded = false\n const decrementDepth = () => (depth ? depth-- : undefined)\n\n const recursiveSerializable = (field: unknown) => {\n if (depth !== undefined && depth < 1) {\n depthExceeded = true\n return false\n }\n\n // decrement during every recursion\n decrementDepth()\n\n const nestedSerializable = (field: unknown): boolean => overSome(JSONComplexChecks)(field) && every(field as object, recursiveSerializable)\n\n return overSome([...JSONPrimitiveChecks, nestedSerializable])(field)\n }\n\n const valid = recursiveSerializable(field)\n\n return depthExceeded ? null : valid\n}\n\nexport const serializableField = (field: unknown) => {\n return overSome([...JSONPrimitiveChecks, ...JSONComplexChecks])(field)\n}\n"],"mappings":";AAEA,SAAS,OAAO,SAAS,WAAW,QAAQ,UAAU,eAAe,UAAU,aAAa,gBAAgB;AAE5G,IAAM,sBAAsB,CAAC,aAAa,QAAQ,WAAW,UAAU,QAAQ;AAC/E,IAAM,oBAAoB,CAAC,eAAe,OAAO;AAE1C,IAAM,eAAe,CAAC,OAAgB,UAAmC;AAC9E,MAAI,gBAAgB;AACpB,QAAM,iBAAiB,MAAO,QAAQ,UAAU;AAEhD,QAAM,wBAAwB,CAACA,WAAmB;AAChD,QAAI,UAAU,UAAa,QAAQ,GAAG;AACpC,sBAAgB;AAChB,aAAO;AAAA,IACT;AAGA,mBAAe;AAEf,UAAM,qBAAqB,CAACA,WAA4B,SAAS,iBAAiB,EAAEA,MAAK,KAAK,MAAMA,QAAiB,qBAAqB;AAE1I,WAAO,SAAS,CAAC,GAAG,qBAAqB,kBAAkB,CAAC,EAAEA,MAAK;AAAA,EACrE;AAEA,QAAM,QAAQ,sBAAsB,KAAK;AAEzC,SAAO,gBAAgB,OAAO;AAChC;AAEO,IAAM,oBAAoB,CAAC,UAAmB;AACnD,SAAO,SAAS,CAAC,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,EAAE,KAAK;AACvE;","names":["field"]}
@@ -1,6 +1,24 @@
1
- import { asModuleObject } from "./asModuleObject";
2
- import { isModuleObject } from "./isModuleObject";
3
- class IsModuleFactory {
1
+ // src/module/asModuleObject.ts
2
+ import { AsObjectFactory } from "@xyo-network/object";
3
+
4
+ // src/module/isModuleObject.ts
5
+ import { IsObjectFactory } from "@xyo-network/object";
6
+ var requiredModuleFunctions = {
7
+ address: "string",
8
+ config: "object",
9
+ params: "object",
10
+ queries: "array",
11
+ query: "function",
12
+ queryable: "function"
13
+ };
14
+ var factory = new IsObjectFactory();
15
+ var isModuleObject = factory.create(requiredModuleFunctions);
16
+
17
+ // src/module/asModuleObject.ts
18
+ var asModuleObject = AsObjectFactory.create(isModuleObject);
19
+
20
+ // src/module/IsModuleFactory.ts
21
+ var IsModuleFactory = class {
4
22
  create(expectedQueries, additionalChecks) {
5
23
  return (obj, config) => {
6
24
  const module = asModuleObject(obj);
@@ -9,7 +27,7 @@ class IsModuleFactory {
9
27
  return result;
10
28
  };
11
29
  }
12
- }
30
+ };
13
31
  export {
14
32
  IsModuleFactory
15
33
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/module/IsModuleFactory.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { asModuleObject } from './asModuleObject'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport type ModuleTypeCheck<T extends Module = Module> = ObjectTypeCheck<T>\n\nexport class IsModuleFactory<T extends Module = Module> {\n create(expectedQueries?: string[], additionalChecks?: ObjectTypeCheck[]): ModuleTypeCheck<T> {\n return (obj: any, config): obj is T => {\n const module = asModuleObject(obj)\n const result =\n isModuleObject(module, config) &&\n (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) &&\n //perform additional checks\n (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)\n return result\n }\n }\n}\n"],"mappings":"AAGA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAKxB,MAAM,gBAA2C;AAAA,EACtD,OAAO,iBAA4B,kBAA0D;AAC3F,WAAO,CAAC,KAAU,WAAqB;AACrC,YAAM,SAAS,eAAe,GAAG;AACjC,YAAM,SACJ,eAAe,QAAQ,MAAM,MAC5B,iBAAiB,OAAO,CAAC,MAAM,UAAU,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAAG,IAAI,KAAK;AAAA,OAEvF,kBAAkB,OAAO,CAAC,MAAM,UAAU,QAAQ,MAAM,KAAK,MAAM,GAAG,IAAI,KAAK;AAClF,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/module/asModuleObject.ts","../../../src/module/isModuleObject.ts","../../../src/module/IsModuleFactory.ts"],"sourcesContent":["import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleObject } from './isModuleObject'\n\nexport const asModuleObject = AsObjectFactory.create(isModuleObject)\n","import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { asModuleObject } from './asModuleObject'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport type ModuleTypeCheck<T extends Module = Module> = ObjectTypeCheck<T>\n\nexport class IsModuleFactory<T extends Module = Module> {\n create(expectedQueries?: string[], additionalChecks?: ObjectTypeCheck[]): ModuleTypeCheck<T> {\n return (obj: any, config): obj is T => {\n const module = asModuleObject(obj)\n const result =\n isModuleObject(module, config) &&\n (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) &&\n //perform additional checks\n (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)\n return result\n }\n }\n}\n"],"mappings":";AAAA,SAAS,uBAAuB;;;ACAhC,SAAS,uBAAyD;AAI3D,IAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,IAAM,UAAU,IAAI,gBAAwB;AAErC,IAAM,iBAA0C,QAAQ,OAAO,uBAAuB;;;ADXtF,IAAM,iBAAiB,gBAAgB,OAAO,cAAc;;;AEK5D,IAAM,kBAAN,MAAiD;AAAA,EACtD,OAAO,iBAA4B,kBAA0D;AAC3F,WAAO,CAAC,KAAU,WAAqB;AACrC,YAAM,SAAS,eAAe,GAAG;AACjC,YAAM,SACJ,eAAe,QAAQ,MAAM,MAC5B,iBAAiB,OAAO,CAAC,MAAM,UAAU,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAAG,IAAI,KAAK;AAAA,OAEvF,kBAAkB,OAAO,CAAC,MAAM,UAAU,QAAQ,MAAM,KAAK,MAAM,GAAG,IAAI,KAAK;AAClF,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
@@ -1,6 +1,54 @@
1
+ // src/module/asModule.ts
2
+ import { AsObjectFactory as AsObjectFactory2 } from "@xyo-network/object";
3
+
4
+ // src/Queries/Discover.ts
5
+ var ModuleDiscoverQuerySchema = "network.xyo.query.module.discover";
6
+
7
+ // src/module/asModuleObject.ts
1
8
  import { AsObjectFactory } from "@xyo-network/object";
2
- import { isModule } from "./isModule";
3
- const asModule = AsObjectFactory.create(isModule);
9
+
10
+ // src/module/isModuleObject.ts
11
+ import { IsObjectFactory } from "@xyo-network/object";
12
+ var requiredModuleFunctions = {
13
+ address: "string",
14
+ config: "object",
15
+ params: "object",
16
+ queries: "array",
17
+ query: "function",
18
+ queryable: "function"
19
+ };
20
+ var factory = new IsObjectFactory();
21
+ var isModuleObject = factory.create(requiredModuleFunctions);
22
+
23
+ // src/module/asModuleObject.ts
24
+ var asModuleObject = AsObjectFactory.create(isModuleObject);
25
+
26
+ // src/module/IsModuleFactory.ts
27
+ var IsModuleFactory = class {
28
+ create(expectedQueries, additionalChecks) {
29
+ return (obj, config) => {
30
+ const module = asModuleObject(obj);
31
+ const result = isModuleObject(module, config) && (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) && //perform additional checks
32
+ (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true);
33
+ return result;
34
+ };
35
+ }
36
+ };
37
+
38
+ // src/module/isModule.ts
39
+ var requiredModuleQueries = [
40
+ /* We need to update this once live module conform */
41
+ //ModuleDescribeQuerySchema,
42
+ //ModuleAddressQuerySchema,
43
+ ModuleDiscoverQuerySchema
44
+ //ModuleManifestQuerySchema,
45
+ //ModuleSubscribeQuerySchema,
46
+ ];
47
+ var factory2 = new IsModuleFactory();
48
+ var isModule = factory2.create(requiredModuleQueries, [isModuleObject]);
49
+
50
+ // src/module/asModule.ts
51
+ var asModule = AsObjectFactory2.create(isModule);
4
52
  export {
5
53
  asModule
6
54
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/module/asModule.ts"],"sourcesContent":["import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModule } from './isModule'\n\nexport const asModule = AsObjectFactory.create(isModule)\n"],"mappings":"AAAA,SAAS,uBAAuB;AAEhC,SAAS,gBAAgB;AAElB,MAAM,WAAW,gBAAgB,OAAO,QAAQ;","names":[]}
1
+ {"version":3,"sources":["../../../src/module/asModule.ts","../../../src/Queries/Discover.ts","../../../src/module/asModuleObject.ts","../../../src/module/isModuleObject.ts","../../../src/module/IsModuleFactory.ts","../../../src/module/isModule.ts"],"sourcesContent":["import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModule } from './isModule'\n\nexport const asModule = AsObjectFactory.create(isModule)\n","import { Query } from '@xyo-network/payload-model'\n\nexport type ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\nexport const ModuleDiscoverQuerySchema: ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\n\nexport type ModuleDiscoverQuery = Query<{\n schema: ModuleDiscoverQuerySchema\n}>\n","import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleObject } from './isModuleObject'\n\nexport const asModuleObject = AsObjectFactory.create(isModuleObject)\n","import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { asModuleObject } from './asModuleObject'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport type ModuleTypeCheck<T extends Module = Module> = ObjectTypeCheck<T>\n\nexport class IsModuleFactory<T extends Module = Module> {\n create(expectedQueries?: string[], additionalChecks?: ObjectTypeCheck[]): ModuleTypeCheck<T> {\n return (obj: any, config): obj is T => {\n const module = asModuleObject(obj)\n const result =\n isModuleObject(module, config) &&\n (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) &&\n //perform additional checks\n (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)\n return result\n }\n }\n}\n","import { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { ModuleDiscoverQuerySchema } from '../Queries'\nimport { IsModuleFactory } from './IsModuleFactory'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport const requiredModuleQueries: string[] = [\n /* We need to update this once live module conform */\n //ModuleDescribeQuerySchema,\n //ModuleAddressQuerySchema,\n ModuleDiscoverQuerySchema,\n //ModuleManifestQuerySchema,\n //ModuleSubscribeQuerySchema,\n]\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsModuleFactory<Module>()\n\nexport const isModule: ObjectTypeCheck<Module> = factory.create(requiredModuleQueries, [isModuleObject])\n"],"mappings":";AAAA,SAAS,mBAAAA,wBAAuB;;;ACGzB,IAAM,4BAAuD;;;ACHpE,SAAS,uBAAuB;;;ACAhC,SAAS,uBAAyD;AAI3D,IAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,IAAM,UAAU,IAAI,gBAAwB;AAErC,IAAM,iBAA0C,QAAQ,OAAO,uBAAuB;;;ADXtF,IAAM,iBAAiB,gBAAgB,OAAO,cAAc;;;AEK5D,IAAM,kBAAN,MAAiD;AAAA,EACtD,OAAO,iBAA4B,kBAA0D;AAC3F,WAAO,CAAC,KAAU,WAAqB;AACrC,YAAM,SAAS,eAAe,GAAG;AACjC,YAAM,SACJ,eAAe,QAAQ,MAAM,MAC5B,iBAAiB,OAAO,CAAC,MAAM,UAAU,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAAG,IAAI,KAAK;AAAA,OAEvF,kBAAkB,OAAO,CAAC,MAAM,UAAU,QAAQ,MAAM,KAAK,MAAM,GAAG,IAAI,KAAK;AAClF,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACdO,IAAM,wBAAkC;AAAA;AAAA;AAAA;AAAA,EAI7C;AAAA;AAAA;AAGF;AAGA,IAAMC,WAAU,IAAI,gBAAwB;AAErC,IAAM,WAAoCA,SAAQ,OAAO,uBAAuB,CAAC,cAAc,CAAC;;;ALfhG,IAAM,WAAWC,iBAAgB,OAAO,QAAQ;","names":["AsObjectFactory","factory","AsObjectFactory"]}
@@ -1,6 +1,21 @@
1
+ // src/module/asModuleObject.ts
1
2
  import { AsObjectFactory } from "@xyo-network/object";
2
- import { isModuleObject } from "./isModuleObject";
3
- const asModuleObject = AsObjectFactory.create(isModuleObject);
3
+
4
+ // src/module/isModuleObject.ts
5
+ import { IsObjectFactory } from "@xyo-network/object";
6
+ var requiredModuleFunctions = {
7
+ address: "string",
8
+ config: "object",
9
+ params: "object",
10
+ queries: "array",
11
+ query: "function",
12
+ queryable: "function"
13
+ };
14
+ var factory = new IsObjectFactory();
15
+ var isModuleObject = factory.create(requiredModuleFunctions);
16
+
17
+ // src/module/asModuleObject.ts
18
+ var asModuleObject = AsObjectFactory.create(isModuleObject);
4
19
  export {
5
20
  asModuleObject
6
21
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/module/asModuleObject.ts"],"sourcesContent":["import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleObject } from './isModuleObject'\n\nexport const asModuleObject = AsObjectFactory.create(isModuleObject)\n"],"mappings":"AAAA,SAAS,uBAAuB;AAEhC,SAAS,sBAAsB;AAExB,MAAM,iBAAiB,gBAAgB,OAAO,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/module/asModuleObject.ts","../../../src/module/isModuleObject.ts"],"sourcesContent":["import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleObject } from './isModuleObject'\n\nexport const asModuleObject = AsObjectFactory.create(isModuleObject)\n","import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n"],"mappings":";AAAA,SAAS,uBAAuB;;;ACAhC,SAAS,uBAAyD;AAI3D,IAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,IAAM,UAAU,IAAI,gBAAwB;AAErC,IAAM,iBAA0C,QAAQ,OAAO,uBAAuB;;;ADXtF,IAAM,iBAAiB,gBAAgB,OAAO,cAAc;","names":[]}
@@ -1,9 +1,61 @@
1
- export * from "./asModule";
2
- export * from "./asModuleObject";
3
- export * from "./isModule";
4
- export * from "./IsModuleFactory";
5
- export * from "./isModuleObject";
6
- export * from "./Module";
7
- export * from "./ModuleFields";
8
- export * from "./ModuleQueryFunctions";
1
+ // src/module/asModule.ts
2
+ import { AsObjectFactory as AsObjectFactory2 } from "@xyo-network/object";
3
+
4
+ // src/Queries/Discover.ts
5
+ var ModuleDiscoverQuerySchema = "network.xyo.query.module.discover";
6
+
7
+ // src/module/asModuleObject.ts
8
+ import { AsObjectFactory } from "@xyo-network/object";
9
+
10
+ // src/module/isModuleObject.ts
11
+ import { IsObjectFactory } from "@xyo-network/object";
12
+ var requiredModuleFunctions = {
13
+ address: "string",
14
+ config: "object",
15
+ params: "object",
16
+ queries: "array",
17
+ query: "function",
18
+ queryable: "function"
19
+ };
20
+ var factory = new IsObjectFactory();
21
+ var isModuleObject = factory.create(requiredModuleFunctions);
22
+
23
+ // src/module/asModuleObject.ts
24
+ var asModuleObject = AsObjectFactory.create(isModuleObject);
25
+
26
+ // src/module/IsModuleFactory.ts
27
+ var IsModuleFactory = class {
28
+ create(expectedQueries, additionalChecks) {
29
+ return (obj, config) => {
30
+ const module = asModuleObject(obj);
31
+ const result = isModuleObject(module, config) && (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) && //perform additional checks
32
+ (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true);
33
+ return result;
34
+ };
35
+ }
36
+ };
37
+
38
+ // src/module/isModule.ts
39
+ var requiredModuleQueries = [
40
+ /* We need to update this once live module conform */
41
+ //ModuleDescribeQuerySchema,
42
+ //ModuleAddressQuerySchema,
43
+ ModuleDiscoverQuerySchema
44
+ //ModuleManifestQuerySchema,
45
+ //ModuleSubscribeQuerySchema,
46
+ ];
47
+ var factory2 = new IsModuleFactory();
48
+ var isModule = factory2.create(requiredModuleQueries, [isModuleObject]);
49
+
50
+ // src/module/asModule.ts
51
+ var asModule = AsObjectFactory2.create(isModule);
52
+ export {
53
+ IsModuleFactory,
54
+ asModule,
55
+ asModuleObject,
56
+ isModule,
57
+ isModuleObject,
58
+ requiredModuleFunctions,
59
+ requiredModuleQueries
60
+ };
9
61
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/module/index.ts"],"sourcesContent":["export * from './asModule'\nexport * from './asModuleObject'\nexport * from './isModule'\nexport * from './IsModuleFactory'\nexport * from './isModuleObject'\nexport * from './Module'\nexport * from './ModuleFields'\nexport * from './ModuleQueryFunctions'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/module/asModule.ts","../../../src/Queries/Discover.ts","../../../src/module/asModuleObject.ts","../../../src/module/isModuleObject.ts","../../../src/module/IsModuleFactory.ts","../../../src/module/isModule.ts"],"sourcesContent":["import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModule } from './isModule'\n\nexport const asModule = AsObjectFactory.create(isModule)\n","import { Query } from '@xyo-network/payload-model'\n\nexport type ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\nexport const ModuleDiscoverQuerySchema: ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\n\nexport type ModuleDiscoverQuery = Query<{\n schema: ModuleDiscoverQuerySchema\n}>\n","import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleObject } from './isModuleObject'\n\nexport const asModuleObject = AsObjectFactory.create(isModuleObject)\n","import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { asModuleObject } from './asModuleObject'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport type ModuleTypeCheck<T extends Module = Module> = ObjectTypeCheck<T>\n\nexport class IsModuleFactory<T extends Module = Module> {\n create(expectedQueries?: string[], additionalChecks?: ObjectTypeCheck[]): ModuleTypeCheck<T> {\n return (obj: any, config): obj is T => {\n const module = asModuleObject(obj)\n const result =\n isModuleObject(module, config) &&\n (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) &&\n //perform additional checks\n (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)\n return result\n }\n }\n}\n","import { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { ModuleDiscoverQuerySchema } from '../Queries'\nimport { IsModuleFactory } from './IsModuleFactory'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport const requiredModuleQueries: string[] = [\n /* We need to update this once live module conform */\n //ModuleDescribeQuerySchema,\n //ModuleAddressQuerySchema,\n ModuleDiscoverQuerySchema,\n //ModuleManifestQuerySchema,\n //ModuleSubscribeQuerySchema,\n]\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsModuleFactory<Module>()\n\nexport const isModule: ObjectTypeCheck<Module> = factory.create(requiredModuleQueries, [isModuleObject])\n"],"mappings":";AAAA,SAAS,mBAAAA,wBAAuB;;;ACGzB,IAAM,4BAAuD;;;ACHpE,SAAS,uBAAuB;;;ACAhC,SAAS,uBAAyD;AAI3D,IAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,IAAM,UAAU,IAAI,gBAAwB;AAErC,IAAM,iBAA0C,QAAQ,OAAO,uBAAuB;;;ADXtF,IAAM,iBAAiB,gBAAgB,OAAO,cAAc;;;AEK5D,IAAM,kBAAN,MAAiD;AAAA,EACtD,OAAO,iBAA4B,kBAA0D;AAC3F,WAAO,CAAC,KAAU,WAAqB;AACrC,YAAM,SAAS,eAAe,GAAG;AACjC,YAAM,SACJ,eAAe,QAAQ,MAAM,MAC5B,iBAAiB,OAAO,CAAC,MAAM,UAAU,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAAG,IAAI,KAAK;AAAA,OAEvF,kBAAkB,OAAO,CAAC,MAAM,UAAU,QAAQ,MAAM,KAAK,MAAM,GAAG,IAAI,KAAK;AAClF,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACdO,IAAM,wBAAkC;AAAA;AAAA;AAAA;AAAA,EAI7C;AAAA;AAAA;AAGF;AAGA,IAAMC,WAAU,IAAI,gBAAwB;AAErC,IAAM,WAAoCA,SAAQ,OAAO,uBAAuB,CAAC,cAAc,CAAC;;;ALfhG,IAAM,WAAWC,iBAAgB,OAAO,QAAQ;","names":["AsObjectFactory","factory","AsObjectFactory"]}
@@ -1,7 +1,39 @@
1
- import { ModuleDiscoverQuerySchema } from "../Queries";
2
- import { IsModuleFactory } from "./IsModuleFactory";
3
- import { isModuleObject } from "./isModuleObject";
4
- const requiredModuleQueries = [
1
+ // src/Queries/Discover.ts
2
+ var ModuleDiscoverQuerySchema = "network.xyo.query.module.discover";
3
+
4
+ // src/module/asModuleObject.ts
5
+ import { AsObjectFactory } from "@xyo-network/object";
6
+
7
+ // src/module/isModuleObject.ts
8
+ import { IsObjectFactory } from "@xyo-network/object";
9
+ var requiredModuleFunctions = {
10
+ address: "string",
11
+ config: "object",
12
+ params: "object",
13
+ queries: "array",
14
+ query: "function",
15
+ queryable: "function"
16
+ };
17
+ var factory = new IsObjectFactory();
18
+ var isModuleObject = factory.create(requiredModuleFunctions);
19
+
20
+ // src/module/asModuleObject.ts
21
+ var asModuleObject = AsObjectFactory.create(isModuleObject);
22
+
23
+ // src/module/IsModuleFactory.ts
24
+ var IsModuleFactory = class {
25
+ create(expectedQueries, additionalChecks) {
26
+ return (obj, config) => {
27
+ const module = asModuleObject(obj);
28
+ const result = isModuleObject(module, config) && (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) && //perform additional checks
29
+ (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true);
30
+ return result;
31
+ };
32
+ }
33
+ };
34
+
35
+ // src/module/isModule.ts
36
+ var requiredModuleQueries = [
5
37
  /* We need to update this once live module conform */
6
38
  //ModuleDescribeQuerySchema,
7
39
  //ModuleAddressQuerySchema,
@@ -9,8 +41,8 @@ const requiredModuleQueries = [
9
41
  //ModuleManifestQuerySchema,
10
42
  //ModuleSubscribeQuerySchema,
11
43
  ];
12
- const factory = new IsModuleFactory();
13
- const isModule = factory.create(requiredModuleQueries, [isModuleObject]);
44
+ var factory2 = new IsModuleFactory();
45
+ var isModule = factory2.create(requiredModuleQueries, [isModuleObject]);
14
46
  export {
15
47
  isModule,
16
48
  requiredModuleQueries
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/module/isModule.ts"],"sourcesContent":["import { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { ModuleDiscoverQuerySchema } from '../Queries'\nimport { IsModuleFactory } from './IsModuleFactory'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport const requiredModuleQueries: string[] = [\n /* We need to update this once live module conform */\n //ModuleDescribeQuerySchema,\n //ModuleAddressQuerySchema,\n ModuleDiscoverQuerySchema,\n //ModuleManifestQuerySchema,\n //ModuleSubscribeQuerySchema,\n]\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsModuleFactory<Module>()\n\nexport const isModule: ObjectTypeCheck<Module> = factory.create(requiredModuleQueries, [isModuleObject])\n"],"mappings":"AAEA,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAGxB,MAAM,wBAAkC;AAAA;AAAA;AAAA;AAAA,EAI7C;AAAA;AAAA;AAGF;AAGA,MAAM,UAAU,IAAI,gBAAwB;AAErC,MAAM,WAAoC,QAAQ,OAAO,uBAAuB,CAAC,cAAc,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/Queries/Discover.ts","../../../src/module/asModuleObject.ts","../../../src/module/isModuleObject.ts","../../../src/module/IsModuleFactory.ts","../../../src/module/isModule.ts"],"sourcesContent":["import { Query } from '@xyo-network/payload-model'\n\nexport type ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\nexport const ModuleDiscoverQuerySchema: ModuleDiscoverQuerySchema = 'network.xyo.query.module.discover'\n\nexport type ModuleDiscoverQuery = Query<{\n schema: ModuleDiscoverQuerySchema\n}>\n","import { AsObjectFactory } from '@xyo-network/object'\n\nimport { isModuleObject } from './isModuleObject'\n\nexport const asModuleObject = AsObjectFactory.create(isModuleObject)\n","import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { asModuleObject } from './asModuleObject'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport type ModuleTypeCheck<T extends Module = Module> = ObjectTypeCheck<T>\n\nexport class IsModuleFactory<T extends Module = Module> {\n create(expectedQueries?: string[], additionalChecks?: ObjectTypeCheck[]): ModuleTypeCheck<T> {\n return (obj: any, config): obj is T => {\n const module = asModuleObject(obj)\n const result =\n isModuleObject(module, config) &&\n (expectedQueries?.reduce((prev, query) => prev && obj.queries.includes(query), true) ?? true) &&\n //perform additional checks\n (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)\n return result\n }\n }\n}\n","import { ObjectTypeCheck } from '@xyo-network/object'\n\nimport { ModuleDiscoverQuerySchema } from '../Queries'\nimport { IsModuleFactory } from './IsModuleFactory'\nimport { isModuleObject } from './isModuleObject'\nimport { Module } from './Module'\n\nexport const requiredModuleQueries: string[] = [\n /* We need to update this once live module conform */\n //ModuleDescribeQuerySchema,\n //ModuleAddressQuerySchema,\n ModuleDiscoverQuerySchema,\n //ModuleManifestQuerySchema,\n //ModuleSubscribeQuerySchema,\n]\n\n//we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsModuleFactory<Module>()\n\nexport const isModule: ObjectTypeCheck<Module> = factory.create(requiredModuleQueries, [isModuleObject])\n"],"mappings":";AAGO,IAAM,4BAAuD;;;ACHpE,SAAS,uBAAuB;;;ACAhC,SAAS,uBAAyD;AAI3D,IAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,IAAM,UAAU,IAAI,gBAAwB;AAErC,IAAM,iBAA0C,QAAQ,OAAO,uBAAuB;;;ADXtF,IAAM,iBAAiB,gBAAgB,OAAO,cAAc;;;AEK5D,IAAM,kBAAN,MAAiD;AAAA,EACtD,OAAO,iBAA4B,kBAA0D;AAC3F,WAAO,CAAC,KAAU,WAAqB;AACrC,YAAM,SAAS,eAAe,GAAG;AACjC,YAAM,SACJ,eAAe,QAAQ,MAAM,MAC5B,iBAAiB,OAAO,CAAC,MAAM,UAAU,QAAQ,IAAI,QAAQ,SAAS,KAAK,GAAG,IAAI,KAAK;AAAA,OAEvF,kBAAkB,OAAO,CAAC,MAAM,UAAU,QAAQ,MAAM,KAAK,MAAM,GAAG,IAAI,KAAK;AAClF,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACdO,IAAM,wBAAkC;AAAA;AAAA;AAAA;AAAA,EAI7C;AAAA;AAAA;AAGF;AAGA,IAAMA,WAAU,IAAI,gBAAwB;AAErC,IAAM,WAAoCA,SAAQ,OAAO,uBAAuB,CAAC,cAAc,CAAC;","names":["factory"]}
@@ -1,5 +1,6 @@
1
+ // src/module/isModuleObject.ts
1
2
  import { IsObjectFactory } from "@xyo-network/object";
2
- const requiredModuleFunctions = {
3
+ var requiredModuleFunctions = {
3
4
  address: "string",
4
5
  config: "object",
5
6
  params: "object",
@@ -7,8 +8,8 @@ const requiredModuleFunctions = {
7
8
  query: "function",
8
9
  queryable: "function"
9
10
  };
10
- const factory = new IsObjectFactory();
11
- const isModuleObject = factory.create(requiredModuleFunctions);
11
+ var factory = new IsObjectFactory();
12
+ var isModuleObject = factory.create(requiredModuleFunctions);
12
13
  export {
13
14
  isModuleObject,
14
15
  requiredModuleFunctions
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/module/isModuleObject.ts"],"sourcesContent":["import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n"],"mappings":"AAAA,SAAS,uBAAyD;AAI3D,MAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,MAAM,UAAU,IAAI,gBAAwB;AAErC,MAAM,iBAA0C,QAAQ,OAAO,uBAAuB;","names":[]}
1
+ {"version":3,"sources":["../../../src/module/isModuleObject.ts"],"sourcesContent":["import { IsObjectFactory, ObjectTypeCheck, ObjectTypeShape } from '@xyo-network/object'\n\nimport { Module } from './Module'\n\nexport const requiredModuleFunctions: ObjectTypeShape = {\n address: 'string',\n config: 'object',\n params: 'object',\n queries: 'array',\n query: 'function',\n queryable: 'function',\n}\n\nconst factory = new IsObjectFactory<Module>()\n\nexport const isModuleObject: ObjectTypeCheck<Module> = factory.create(requiredModuleFunctions)\n"],"mappings":";AAAA,SAAS,uBAAyD;AAI3D,IAAM,0BAA2C;AAAA,EACtD,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AACb;AAEA,IAAM,UAAU,IAAI,gBAAwB;AAErC,IAAM,iBAA0C,QAAQ,OAAO,uBAAuB;","names":[]}