@xyo-network/module-model 2.97.2 → 2.98.0

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 (61) hide show
  1. package/dist/browser/CreatableModule/CreatableModuleRegistry.d.cts +5 -2
  2. package/dist/browser/CreatableModule/CreatableModuleRegistry.d.cts.map +1 -1
  3. package/dist/browser/CreatableModule/CreatableModuleRegistry.d.mts +5 -2
  4. package/dist/browser/CreatableModule/CreatableModuleRegistry.d.mts.map +1 -1
  5. package/dist/browser/CreatableModule/CreatableModuleRegistry.d.ts +5 -2
  6. package/dist/browser/CreatableModule/CreatableModuleRegistry.d.ts.map +1 -1
  7. package/dist/browser/CreatableModule/ModuleFactoryLocator.d.cts +6 -0
  8. package/dist/browser/CreatableModule/ModuleFactoryLocator.d.cts.map +1 -1
  9. package/dist/browser/CreatableModule/ModuleFactoryLocator.d.mts +6 -0
  10. package/dist/browser/CreatableModule/ModuleFactoryLocator.d.mts.map +1 -1
  11. package/dist/browser/CreatableModule/ModuleFactoryLocator.d.ts +6 -0
  12. package/dist/browser/CreatableModule/ModuleFactoryLocator.d.ts.map +1 -1
  13. package/dist/browser/CreatableModule/index.d.cts +0 -1
  14. package/dist/browser/CreatableModule/index.d.cts.map +1 -1
  15. package/dist/browser/CreatableModule/index.d.mts +0 -1
  16. package/dist/browser/CreatableModule/index.d.mts.map +1 -1
  17. package/dist/browser/CreatableModule/index.d.ts +0 -1
  18. package/dist/browser/CreatableModule/index.d.ts.map +1 -1
  19. package/dist/browser/index.cjs +56 -20
  20. package/dist/browser/index.cjs.map +1 -1
  21. package/dist/browser/index.js +56 -20
  22. package/dist/browser/index.js.map +1 -1
  23. package/dist/node/CreatableModule/CreatableModuleRegistry.d.cts +5 -2
  24. package/dist/node/CreatableModule/CreatableModuleRegistry.d.cts.map +1 -1
  25. package/dist/node/CreatableModule/CreatableModuleRegistry.d.mts +5 -2
  26. package/dist/node/CreatableModule/CreatableModuleRegistry.d.mts.map +1 -1
  27. package/dist/node/CreatableModule/CreatableModuleRegistry.d.ts +5 -2
  28. package/dist/node/CreatableModule/CreatableModuleRegistry.d.ts.map +1 -1
  29. package/dist/node/CreatableModule/ModuleFactoryLocator.d.cts +6 -0
  30. package/dist/node/CreatableModule/ModuleFactoryLocator.d.cts.map +1 -1
  31. package/dist/node/CreatableModule/ModuleFactoryLocator.d.mts +6 -0
  32. package/dist/node/CreatableModule/ModuleFactoryLocator.d.mts.map +1 -1
  33. package/dist/node/CreatableModule/ModuleFactoryLocator.d.ts +6 -0
  34. package/dist/node/CreatableModule/ModuleFactoryLocator.d.ts.map +1 -1
  35. package/dist/node/CreatableModule/index.d.cts +0 -1
  36. package/dist/node/CreatableModule/index.d.cts.map +1 -1
  37. package/dist/node/CreatableModule/index.d.mts +0 -1
  38. package/dist/node/CreatableModule/index.d.mts.map +1 -1
  39. package/dist/node/CreatableModule/index.d.ts +0 -1
  40. package/dist/node/CreatableModule/index.d.ts.map +1 -1
  41. package/dist/node/index.cjs +59 -21
  42. package/dist/node/index.cjs.map +1 -1
  43. package/dist/node/index.js +56 -20
  44. package/dist/node/index.js.map +1 -1
  45. package/package.json +15 -15
  46. package/src/CreatableModule/CreatableModuleRegistry.ts +30 -7
  47. package/src/CreatableModule/ModuleFactoryLocator.ts +37 -10
  48. package/src/CreatableModule/index.ts +0 -1
  49. package/dist/browser/CreatableModule/CreatableModuleDictionary.d.cts +0 -5
  50. package/dist/browser/CreatableModule/CreatableModuleDictionary.d.cts.map +0 -1
  51. package/dist/browser/CreatableModule/CreatableModuleDictionary.d.mts +0 -5
  52. package/dist/browser/CreatableModule/CreatableModuleDictionary.d.mts.map +0 -1
  53. package/dist/browser/CreatableModule/CreatableModuleDictionary.d.ts +0 -5
  54. package/dist/browser/CreatableModule/CreatableModuleDictionary.d.ts.map +0 -1
  55. package/dist/node/CreatableModule/CreatableModuleDictionary.d.cts +0 -5
  56. package/dist/node/CreatableModule/CreatableModuleDictionary.d.cts.map +0 -1
  57. package/dist/node/CreatableModule/CreatableModuleDictionary.d.mts +0 -5
  58. package/dist/node/CreatableModule/CreatableModuleDictionary.d.mts.map +0 -1
  59. package/dist/node/CreatableModule/CreatableModuleDictionary.d.ts +0 -5
  60. package/dist/node/CreatableModule/CreatableModuleDictionary.d.ts.map +0 -1
  61. package/src/CreatableModule/CreatableModuleDictionary.ts +0 -5
@@ -1,9 +1,12 @@
1
+ import { Schema } from '@xyo-network/payload-model';
1
2
  import { CreatableModuleFactory } from './CreatableModule';
2
- import { CreatableModuleDictionary } from './CreatableModuleDictionary';
3
3
  import { LabeledCreatableModuleFactory } from './LabeledCreatableModuleFactory';
4
4
  export interface CreatableModuleRegistry {
5
5
  [key: string]: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] | undefined;
6
6
  }
7
- export declare const toCreatableModuleRegistry: (dict: CreatableModuleDictionary | CreatableModuleRegistry) => CreatableModuleRegistry;
7
+ export declare const registerCreatableModuleFactory: (registry: CreatableModuleRegistry, factory: CreatableModuleFactory | LabeledCreatableModuleFactory) => void;
8
+ export declare const registerPrimaryCreatableModuleFactory: (registry: CreatableModuleRegistry, factory: CreatableModuleFactory | LabeledCreatableModuleFactory, configSchema: Schema) => void;
9
+ export declare const registerCreatableModuleFactories: (factories: (CreatableModuleFactory | LabeledCreatableModuleFactory)[], registry?: CreatableModuleRegistry) => CreatableModuleRegistry;
10
+ /** @deprecated use registerCreatableModuleFactory instead */
8
11
  export declare const assignCreatableModuleRegistry: (target?: CreatableModuleRegistry, ...sources: CreatableModuleRegistry[]) => CreatableModuleRegistry;
9
12
  //# sourceMappingURL=CreatableModuleRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableModuleRegistry.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,GAAG,SAAS,CAAA;CACtF;AAED,eAAO,MAAM,yBAAyB,SAAU,yBAAyB,GAAG,uBAAuB,KAAG,uBAMrG,CAAA;AAED,eAAO,MAAM,6BAA6B,YAChC,uBAAuB,cACnB,uBAAuB,EAAE,KACpC,uBAUF,CAAA"}
1
+ {"version":3,"file":"CreatableModuleRegistry.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,GAAG,SAAS,CAAA;CACtF;AAED,eAAO,MAAM,8BAA8B,aAC/B,uBAAuB,WACxB,sBAAsB,GAAG,6BAA6B,SAOhE,CAAA;AAED,eAAO,MAAM,qCAAqC,aACtC,uBAAuB,WACxB,sBAAsB,GAAG,6BAA6B,gBACjD,MAAM,SAGrB,CAAA;AAED,eAAO,MAAM,gCAAgC,cAChC,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,aAC3D,uBAAuB,4BAMlC,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,6BAA6B,YAChC,uBAAuB,cACnB,uBAAuB,EAAE,KACpC,uBAUF,CAAA"}
@@ -1,9 +1,12 @@
1
+ import { Schema } from '@xyo-network/payload-model';
1
2
  import { CreatableModuleFactory } from './CreatableModule';
2
- import { CreatableModuleDictionary } from './CreatableModuleDictionary';
3
3
  import { LabeledCreatableModuleFactory } from './LabeledCreatableModuleFactory';
4
4
  export interface CreatableModuleRegistry {
5
5
  [key: string]: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] | undefined;
6
6
  }
7
- export declare const toCreatableModuleRegistry: (dict: CreatableModuleDictionary | CreatableModuleRegistry) => CreatableModuleRegistry;
7
+ export declare const registerCreatableModuleFactory: (registry: CreatableModuleRegistry, factory: CreatableModuleFactory | LabeledCreatableModuleFactory) => void;
8
+ export declare const registerPrimaryCreatableModuleFactory: (registry: CreatableModuleRegistry, factory: CreatableModuleFactory | LabeledCreatableModuleFactory, configSchema: Schema) => void;
9
+ export declare const registerCreatableModuleFactories: (factories: (CreatableModuleFactory | LabeledCreatableModuleFactory)[], registry?: CreatableModuleRegistry) => CreatableModuleRegistry;
10
+ /** @deprecated use registerCreatableModuleFactory instead */
8
11
  export declare const assignCreatableModuleRegistry: (target?: CreatableModuleRegistry, ...sources: CreatableModuleRegistry[]) => CreatableModuleRegistry;
9
12
  //# sourceMappingURL=CreatableModuleRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableModuleRegistry.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,GAAG,SAAS,CAAA;CACtF;AAED,eAAO,MAAM,yBAAyB,SAAU,yBAAyB,GAAG,uBAAuB,KAAG,uBAMrG,CAAA;AAED,eAAO,MAAM,6BAA6B,YAChC,uBAAuB,cACnB,uBAAuB,EAAE,KACpC,uBAUF,CAAA"}
1
+ {"version":3,"file":"CreatableModuleRegistry.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,GAAG,SAAS,CAAA;CACtF;AAED,eAAO,MAAM,8BAA8B,aAC/B,uBAAuB,WACxB,sBAAsB,GAAG,6BAA6B,SAOhE,CAAA;AAED,eAAO,MAAM,qCAAqC,aACtC,uBAAuB,WACxB,sBAAsB,GAAG,6BAA6B,gBACjD,MAAM,SAGrB,CAAA;AAED,eAAO,MAAM,gCAAgC,cAChC,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,aAC3D,uBAAuB,4BAMlC,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,6BAA6B,YAChC,uBAAuB,cACnB,uBAAuB,EAAE,KACpC,uBAUF,CAAA"}
@@ -1,9 +1,12 @@
1
+ import { Schema } from '@xyo-network/payload-model';
1
2
  import { CreatableModuleFactory } from './CreatableModule';
2
- import { CreatableModuleDictionary } from './CreatableModuleDictionary';
3
3
  import { LabeledCreatableModuleFactory } from './LabeledCreatableModuleFactory';
4
4
  export interface CreatableModuleRegistry {
5
5
  [key: string]: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] | undefined;
6
6
  }
7
- export declare const toCreatableModuleRegistry: (dict: CreatableModuleDictionary | CreatableModuleRegistry) => CreatableModuleRegistry;
7
+ export declare const registerCreatableModuleFactory: (registry: CreatableModuleRegistry, factory: CreatableModuleFactory | LabeledCreatableModuleFactory) => void;
8
+ export declare const registerPrimaryCreatableModuleFactory: (registry: CreatableModuleRegistry, factory: CreatableModuleFactory | LabeledCreatableModuleFactory, configSchema: Schema) => void;
9
+ export declare const registerCreatableModuleFactories: (factories: (CreatableModuleFactory | LabeledCreatableModuleFactory)[], registry?: CreatableModuleRegistry) => CreatableModuleRegistry;
10
+ /** @deprecated use registerCreatableModuleFactory instead */
8
11
  export declare const assignCreatableModuleRegistry: (target?: CreatableModuleRegistry, ...sources: CreatableModuleRegistry[]) => CreatableModuleRegistry;
9
12
  //# sourceMappingURL=CreatableModuleRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableModuleRegistry.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,GAAG,SAAS,CAAA;CACtF;AAED,eAAO,MAAM,yBAAyB,SAAU,yBAAyB,GAAG,uBAAuB,KAAG,uBAMrG,CAAA;AAED,eAAO,MAAM,6BAA6B,YAChC,uBAAuB,cACnB,uBAAuB,EAAE,KACpC,uBAUF,CAAA"}
1
+ {"version":3,"file":"CreatableModuleRegistry.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,GAAG,SAAS,CAAA;CACtF;AAED,eAAO,MAAM,8BAA8B,aAC/B,uBAAuB,WACxB,sBAAsB,GAAG,6BAA6B,SAOhE,CAAA;AAED,eAAO,MAAM,qCAAqC,aACtC,uBAAuB,WACxB,sBAAsB,GAAG,6BAA6B,gBACjD,MAAM,SAGrB,CAAA;AAED,eAAO,MAAM,gCAAgC,cAChC,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAAE,aAC3D,uBAAuB,4BAMlC,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,6BAA6B,YAChC,uBAAuB,cACnB,uBAAuB,EAAE,KACpC,uBAUF,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { Schema } from '@xyo-network/payload-model';
1
2
  import { AttachableModuleInstance } from '../instance';
2
3
  import { Labels } from '../Labels';
3
4
  import { CreatableModuleFactory } from './CreatableModule';
@@ -30,6 +31,11 @@ export declare class ModuleFactoryLocator {
30
31
  * @param additional Additional module factories to register
31
32
  */
32
33
  registerMany(additional: CreatableModuleRegistry): this;
34
+ /**
35
+ * Registers a single module factory (with optional tags) with the locator & a specific schema
36
+ * @param additional Additional module factories to register
37
+ */
38
+ registerOne<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, schema: Schema, overwrite?: boolean, labels?: Labels): this;
33
39
  /**
34
40
  * Tries to locate a module factory that matches the supplied schema and labels
35
41
  * @param schema The config schema for the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/ModuleFactoryLocator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAa,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE1F;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAA4B;IAEtE;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAQ/F;;;OAGG;IACH,QAAQ,CAAC,OAAO,SAAS,wBAAwB,EAAE,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB/G;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;IAUvD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
1
+ {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAa,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE1F;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAA4B;IAEtE;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAQ/F;;;OAGG;IACH,QAAQ,CAAC,OAAO,SAAS,wBAAwB,EAAE,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ/G;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;IAUvD;;;OAGG;IACH,WAAW,CAAC,OAAO,SAAS,wBAAwB,EAClD,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,SAAS,UAAQ,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAyBP;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
@@ -1,3 +1,4 @@
1
+ import { Schema } from '@xyo-network/payload-model';
1
2
  import { AttachableModuleInstance } from '../instance';
2
3
  import { Labels } from '../Labels';
3
4
  import { CreatableModuleFactory } from './CreatableModule';
@@ -30,6 +31,11 @@ export declare class ModuleFactoryLocator {
30
31
  * @param additional Additional module factories to register
31
32
  */
32
33
  registerMany(additional: CreatableModuleRegistry): this;
34
+ /**
35
+ * Registers a single module factory (with optional tags) with the locator & a specific schema
36
+ * @param additional Additional module factories to register
37
+ */
38
+ registerOne<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, schema: Schema, overwrite?: boolean, labels?: Labels): this;
33
39
  /**
34
40
  * Tries to locate a module factory that matches the supplied schema and labels
35
41
  * @param schema The config schema for the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/ModuleFactoryLocator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAa,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE1F;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAA4B;IAEtE;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAQ/F;;;OAGG;IACH,QAAQ,CAAC,OAAO,SAAS,wBAAwB,EAAE,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB/G;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;IAUvD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
1
+ {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAa,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE1F;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAA4B;IAEtE;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAQ/F;;;OAGG;IACH,QAAQ,CAAC,OAAO,SAAS,wBAAwB,EAAE,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ/G;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;IAUvD;;;OAGG;IACH,WAAW,CAAC,OAAO,SAAS,wBAAwB,EAClD,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,SAAS,UAAQ,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAyBP;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
@@ -1,3 +1,4 @@
1
+ import { Schema } from '@xyo-network/payload-model';
1
2
  import { AttachableModuleInstance } from '../instance';
2
3
  import { Labels } from '../Labels';
3
4
  import { CreatableModuleFactory } from './CreatableModule';
@@ -30,6 +31,11 @@ export declare class ModuleFactoryLocator {
30
31
  * @param additional Additional module factories to register
31
32
  */
32
33
  registerMany(additional: CreatableModuleRegistry): this;
34
+ /**
35
+ * Registers a single module factory (with optional tags) with the locator & a specific schema
36
+ * @param additional Additional module factories to register
37
+ */
38
+ registerOne<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, schema: Schema, overwrite?: boolean, labels?: Labels): this;
33
39
  /**
34
40
  * Tries to locate a module factory that matches the supplied schema and labels
35
41
  * @param schema The config schema for the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/ModuleFactoryLocator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAa,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE1F;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAA4B;IAEtE;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAQ/F;;;OAGG;IACH,QAAQ,CAAC,OAAO,SAAS,wBAAwB,EAAE,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB/G;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;IAUvD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
1
+ {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAa,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE1F;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAA4B;IAEtE;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAQ/F;;;OAGG;IACH,QAAQ,CAAC,OAAO,SAAS,wBAAwB,EAAE,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ/G;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;IAUvD;;;OAGG;IACH,WAAW,CAAC,OAAO,SAAS,wBAAwB,EAClD,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,SAAS,UAAQ,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAyBP;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
@@ -1,5 +1,4 @@
1
1
  export * from './CreatableModule';
2
- export * from './CreatableModuleDictionary';
3
2
  export * from './CreatableModuleRegistry';
4
3
  export * from './LabeledCreatableModuleFactory';
5
4
  export * from './ModuleFactory';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
@@ -1,5 +1,4 @@
1
1
  export * from './CreatableModule';
2
- export * from './CreatableModuleDictionary';
3
2
  export * from './CreatableModuleRegistry';
4
3
  export * from './LabeledCreatableModuleFactory';
5
4
  export * from './ModuleFactory';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
@@ -1,5 +1,4 @@
1
1
  export * from './CreatableModule';
2
- export * from './CreatableModuleDictionary';
3
2
  export * from './CreatableModuleRegistry';
4
3
  export * from './LabeledCreatableModuleFactory';
5
4
  export * from './ModuleFactory';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA"}
@@ -67,6 +67,9 @@ __export(src_exports, {
67
67
  isObjectResolver: () => isObjectResolver,
68
68
  isQueryModuleFilter: () => isQueryModuleFilter,
69
69
  isQueryObjectFilter: () => isQueryObjectFilter,
70
+ registerCreatableModuleFactories: () => registerCreatableModuleFactories,
71
+ registerCreatableModuleFactory: () => registerCreatableModuleFactory,
72
+ registerPrimaryCreatableModuleFactory: () => registerPrimaryCreatableModuleFactory,
70
73
  requiredAttachableModuleInstanceFunctions: () => requiredAttachableModuleInstanceFunctions,
71
74
  requiredModuleInstanceFunctions: () => requiredModuleInstanceFunctions,
72
75
  requiredModuleQueries: () => requiredModuleQueries,
@@ -81,7 +84,6 @@ __export(src_exports, {
81
84
  resolvePathToAddress: () => resolvePathToAddress,
82
85
  serializable: () => serializable,
83
86
  serializableField: () => serializableField,
84
- toCreatableModuleRegistry: () => toCreatableModuleRegistry,
85
87
  withModule: () => withModule,
86
88
  withModuleInstance: () => withModuleInstance
87
89
  });
@@ -99,14 +101,30 @@ function creatableModule() {
99
101
  __name(creatableModule, "creatableModule");
100
102
 
101
103
  // src/CreatableModule/CreatableModuleRegistry.ts
102
- var toCreatableModuleRegistry = /* @__PURE__ */ __name((dict) => {
103
- return Object.entries(dict).reduce((registry, [schema, factory5]) => {
104
- registry[schema] = Array.isArray(factory5) ? factory5 : [
104
+ var registerCreatableModuleFactory = /* @__PURE__ */ __name((registry, factory5) => {
105
+ registry[factory5.defaultConfigSchema] = [
106
+ factory5,
107
+ ...registry[factory5.defaultConfigSchema] ?? []
108
+ ];
109
+ for (const schema of factory5.configSchemas) {
110
+ registry[schema] = [
111
+ ...registry[schema] ?? [],
105
112
  factory5
106
113
  ];
107
- return registry;
108
- }, {});
109
- }, "toCreatableModuleRegistry");
114
+ }
115
+ }, "registerCreatableModuleFactory");
116
+ var registerPrimaryCreatableModuleFactory = /* @__PURE__ */ __name((registry, factory5, configSchema) => {
117
+ registry[configSchema] = [
118
+ factory5,
119
+ ...registry[configSchema] ?? []
120
+ ];
121
+ }, "registerPrimaryCreatableModuleFactory");
122
+ var registerCreatableModuleFactories = /* @__PURE__ */ __name((factories, registry = {}) => {
123
+ for (const factory5 of factories) {
124
+ registerCreatableModuleFactory(registry, factory5);
125
+ }
126
+ return registry;
127
+ }, "registerCreatableModuleFactories");
110
128
  var assignCreatableModuleRegistry = /* @__PURE__ */ __name((target = {}, ...sources) => {
111
129
  sources.map((source) => Object.entries(source).map(([schema, factories]) => {
112
130
  if (factories) {
@@ -221,20 +239,9 @@ var ModuleFactoryLocator = class {
221
239
  * @param additional Additional module factories to register
222
240
  */
223
241
  register(mod, labels) {
242
+ this.registerOne(mod, mod.defaultConfigSchema, true, labels);
224
243
  mod.configSchemas.map((schema) => {
225
- const existingFactories = this._registry[schema];
226
- const factory5 = {
227
- // Destructure instance properties
228
- ...mod,
229
- // Copy static methods
230
- create: mod.create.bind(mod),
231
- // Merge module & supplied labels
232
- labels: Object.assign({}, mod.labels ?? {}, labels ?? {})
233
- };
234
- this._registry[schema] = [
235
- ...existingFactories ?? [],
236
- factory5
237
- ];
244
+ this.registerOne(mod, schema, false, labels);
238
245
  });
239
246
  return this;
240
247
  }
@@ -255,6 +262,35 @@ var ModuleFactoryLocator = class {
255
262
  return this;
256
263
  }
257
264
  /**
265
+ * Registers a single module factory (with optional tags) with the locator & a specific schema
266
+ * @param additional Additional module factories to register
267
+ */
268
+ registerOne(mod, schema, overwrite = false, labels) {
269
+ if (!overwrite) {
270
+ const existingFactories2 = this._registry[schema];
271
+ if (existingFactories2) {
272
+ const existing = existingFactories2.find((factory6) => factory6.labels === labels);
273
+ if (existing) {
274
+ return this;
275
+ }
276
+ }
277
+ }
278
+ const existingFactories = this._registry[schema];
279
+ const factory5 = {
280
+ // Destructure instance properties
281
+ ...mod,
282
+ // Copy static methods
283
+ create: mod.create.bind(mod),
284
+ // Merge module & supplied labels
285
+ labels: Object.assign({}, mod.labels ?? {}, labels ?? {})
286
+ };
287
+ this._registry[schema] = [
288
+ ...existingFactories ?? [],
289
+ factory5
290
+ ];
291
+ return this;
292
+ }
293
+ /**
258
294
  * Tries to locate a module factory that matches the supplied schema and labels
259
295
  * @param schema The config schema for the module
260
296
  * @param labels The labels for the module factory