@xyo-network/module-factory-locator 2.111.2 → 3.0.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 (66) hide show
  1. package/dist/neutral/index.d.ts +23 -3
  2. package/package.json +20 -39
  3. package/xy.config.ts +12 -0
  4. package/dist/browser/ModuleFactoryLocator.d.cts +0 -17
  5. package/dist/browser/ModuleFactoryLocator.d.cts.map +0 -1
  6. package/dist/browser/ModuleFactoryLocator.d.mts +0 -17
  7. package/dist/browser/ModuleFactoryLocator.d.mts.map +0 -1
  8. package/dist/browser/ModuleFactoryLocator.d.ts +0 -17
  9. package/dist/browser/ModuleFactoryLocator.d.ts.map +0 -1
  10. package/dist/browser/index.cjs +0 -141
  11. package/dist/browser/index.cjs.map +0 -1
  12. package/dist/browser/index.d.cts +0 -3
  13. package/dist/browser/index.d.cts.map +0 -1
  14. package/dist/browser/index.d.mts +0 -3
  15. package/dist/browser/index.d.mts.map +0 -1
  16. package/dist/browser/index.d.ts +0 -3
  17. package/dist/browser/index.d.ts.map +0 -1
  18. package/dist/browser/index.mjs +0 -120
  19. package/dist/browser/index.mjs.map +0 -1
  20. package/dist/browser/standardCreatableFactories.d.cts +0 -4
  21. package/dist/browser/standardCreatableFactories.d.cts.map +0 -1
  22. package/dist/browser/standardCreatableFactories.d.mts +0 -4
  23. package/dist/browser/standardCreatableFactories.d.mts.map +0 -1
  24. package/dist/browser/standardCreatableFactories.d.ts +0 -4
  25. package/dist/browser/standardCreatableFactories.d.ts.map +0 -1
  26. package/dist/neutral/ModuleFactoryLocator.d.cts +0 -17
  27. package/dist/neutral/ModuleFactoryLocator.d.cts.map +0 -1
  28. package/dist/neutral/ModuleFactoryLocator.d.mts +0 -17
  29. package/dist/neutral/ModuleFactoryLocator.d.mts.map +0 -1
  30. package/dist/neutral/ModuleFactoryLocator.d.ts +0 -17
  31. package/dist/neutral/ModuleFactoryLocator.d.ts.map +0 -1
  32. package/dist/neutral/index.cjs +0 -141
  33. package/dist/neutral/index.cjs.map +0 -1
  34. package/dist/neutral/index.d.cts +0 -3
  35. package/dist/neutral/index.d.cts.map +0 -1
  36. package/dist/neutral/index.d.mts +0 -3
  37. package/dist/neutral/index.d.mts.map +0 -1
  38. package/dist/neutral/index.d.ts.map +0 -1
  39. package/dist/neutral/standardCreatableFactories.d.cts +0 -4
  40. package/dist/neutral/standardCreatableFactories.d.cts.map +0 -1
  41. package/dist/neutral/standardCreatableFactories.d.mts +0 -4
  42. package/dist/neutral/standardCreatableFactories.d.mts.map +0 -1
  43. package/dist/neutral/standardCreatableFactories.d.ts +0 -4
  44. package/dist/neutral/standardCreatableFactories.d.ts.map +0 -1
  45. package/dist/node/ModuleFactoryLocator.d.cts +0 -17
  46. package/dist/node/ModuleFactoryLocator.d.cts.map +0 -1
  47. package/dist/node/ModuleFactoryLocator.d.mts +0 -17
  48. package/dist/node/ModuleFactoryLocator.d.mts.map +0 -1
  49. package/dist/node/ModuleFactoryLocator.d.ts +0 -17
  50. package/dist/node/ModuleFactoryLocator.d.ts.map +0 -1
  51. package/dist/node/index.cjs +0 -147
  52. package/dist/node/index.cjs.map +0 -1
  53. package/dist/node/index.d.cts +0 -3
  54. package/dist/node/index.d.cts.map +0 -1
  55. package/dist/node/index.d.mts +0 -3
  56. package/dist/node/index.d.mts.map +0 -1
  57. package/dist/node/index.d.ts +0 -3
  58. package/dist/node/index.d.ts.map +0 -1
  59. package/dist/node/index.mjs +0 -120
  60. package/dist/node/index.mjs.map +0 -1
  61. package/dist/node/standardCreatableFactories.d.cts +0 -4
  62. package/dist/node/standardCreatableFactories.d.cts.map +0 -1
  63. package/dist/node/standardCreatableFactories.d.mts +0 -4
  64. package/dist/node/standardCreatableFactories.d.mts.map +0 -1
  65. package/dist/node/standardCreatableFactories.d.ts +0 -4
  66. package/dist/node/standardCreatableFactories.d.ts.map +0 -1
@@ -1,141 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/index.ts
22
- var src_exports = {};
23
- __export(src_exports, {
24
- ModuleFactoryLocator: () => ModuleFactoryLocator,
25
- standardCreatableFactories: () => standardCreatableFactories,
26
- standardCreatableFactoriesList: () => standardCreatableFactoriesList
27
- });
28
- module.exports = __toCommonJS(src_exports);
29
-
30
- // src/ModuleFactoryLocator.ts
31
- var import_assert = require("@xylabs/assert");
32
- var import_module_model2 = require("@xyo-network/module-model");
33
-
34
- // src/standardCreatableFactories.ts
35
- var import_archivist_memory = require("@xyo-network/archivist-memory");
36
- var import_archivist_view = require("@xyo-network/archivist-view");
37
- var import_bridge_http = require("@xyo-network/bridge-http");
38
- var import_diviner_boundwitness_memory = require("@xyo-network/diviner-boundwitness-memory");
39
- var import_diviner_identity = require("@xyo-network/diviner-identity");
40
- var import_diviner_payload_memory = require("@xyo-network/diviner-payload-memory");
41
- var import_module_model = require("@xyo-network/module-model");
42
- var import_node_memory = require("@xyo-network/node-memory");
43
- var import_node_view = require("@xyo-network/node-view");
44
- var import_sentinel_memory = require("@xyo-network/sentinel-memory");
45
- var import_witness_adhoc = require("@xyo-network/witness-adhoc");
46
- var standardCreatableFactoriesList = [
47
- import_bridge_http.HttpBridge,
48
- import_archivist_view.ViewArchivist,
49
- import_node_view.ViewNode,
50
- import_witness_adhoc.AdhocWitness,
51
- import_diviner_payload_memory.MemoryPayloadDiviner,
52
- import_diviner_boundwitness_memory.MemoryBoundWitnessDiviner,
53
- import_diviner_identity.IdentityDiviner,
54
- import_archivist_memory.MemoryArchivist,
55
- import_archivist_memory.MemoryArchivist,
56
- import_node_memory.MemoryNode,
57
- import_sentinel_memory.MemorySentinel
58
- ];
59
- var standardCreatableFactories = /* @__PURE__ */ __name(() => {
60
- return (0, import_module_model.registerCreatableModuleFactories)(standardCreatableFactoriesList, {}, true);
61
- }, "standardCreatableFactories");
62
-
63
- // src/ModuleFactoryLocator.ts
64
- var ModuleFactoryLocator = class _ModuleFactoryLocator {
65
- static {
66
- __name(this, "ModuleFactoryLocator");
67
- }
68
- _registry;
69
- _frozen;
70
- constructor(_registry = standardCreatableFactories()) {
71
- this._registry = _registry;
72
- this._frozen = false;
73
- }
74
- /**
75
- * The current registry for the module factory
76
- */
77
- get registry() {
78
- return this._registry;
79
- }
80
- static empty() {
81
- return new _ModuleFactoryLocator({});
82
- }
83
- static standard() {
84
- return new _ModuleFactoryLocator(standardCreatableFactories());
85
- }
86
- freeze() {
87
- this._frozen = true;
88
- }
89
- /**
90
- * Locates a module factory that matches the supplied schema and labels
91
- * @param schema The config schema for the module
92
- * @param labels The labels for the module factory
93
- * @returns A module factory that matches the supplied schema and labels or throws if one is not found
94
- */
95
- locate(schema, labels) {
96
- return (0, import_assert.assertEx)(this.tryLocate(schema, labels), () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ""} registered`);
97
- }
98
- merge(locator) {
99
- const registry = {
100
- ...this.registry
101
- };
102
- for (const schema in locator.registry) {
103
- if (registry[schema]) {
104
- registry[schema].push(...locator.registry[schema] ?? []);
105
- } else {
106
- registry[schema] = locator.registry[schema];
107
- }
108
- }
109
- return new _ModuleFactoryLocator(registry);
110
- }
111
- /**
112
- * Registers a single module factory (with optional tags) with the locator
113
- * @param factory The factory to register
114
- * @param labels The labels for the module factory
115
- */
116
- register(factory, labels, primary = false) {
117
- (0, import_assert.assertEx)(!this._frozen, () => "Cannot register a module factory after the locator has been frozen");
118
- (0, import_module_model2.registerCreatableModuleFactory)(this._registry, factory, labels, primary);
119
- return this;
120
- }
121
- /**
122
- * Registers multiple module factories with the locator
123
- * @param factories The factories to register
124
- */
125
- registerMany(factories) {
126
- for (const factory of factories) {
127
- this.register(factory);
128
- }
129
- return this;
130
- }
131
- /**
132
- * Tries to locate a module factory that matches the supplied schema and labels
133
- * @param schema The config schema for the module
134
- * @param labels The labels for the module factory
135
- * @returns A module factory that matches the supplied schema and labels or undefined
136
- */
137
- tryLocate(schema, labels) {
138
- return labels ? this._registry[schema]?.filter(import_module_model2.hasLabels).find((factory) => (0, import_module_model2.hasAllLabels)(factory?.labels, labels)) : this._registry[schema]?.[0];
139
- }
140
- };
141
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/ModuleFactoryLocator.ts","../../src/standardCreatableFactories.ts"],"sourcesContent":["export * from './ModuleFactoryLocator.ts'\nexport * from './standardCreatableFactories.ts'\n","import { assertEx } from '@xylabs/assert'\nimport {\n CreatableModuleFactory,\n CreatableModuleRegistry,\n hasAllLabels,\n hasLabels,\n LabeledCreatableModuleFactory,\n Labels,\n registerCreatableModuleFactory,\n} from '@xyo-network/module-model'\nimport { Schema } from '@xyo-network/payload-model'\n\nimport { standardCreatableFactories } from './standardCreatableFactories.ts'\n\n/**\n * A class which encapsulates the Service Locator Pattern for Module Factories\n */\nexport class ModuleFactoryLocator {\n private _frozen = false\n\n constructor(protected readonly _registry: CreatableModuleRegistry = standardCreatableFactories()) {}\n\n /**\n * The current registry for the module factory\n */\n get registry(): Readonly<CreatableModuleRegistry> {\n return this._registry\n }\n\n static empty() {\n return new ModuleFactoryLocator({})\n }\n\n static standard() {\n return new ModuleFactoryLocator(standardCreatableFactories())\n }\n\n freeze() {\n this._frozen = true\n }\n\n /**\n * Locates a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or throws if one is not found\n */\n locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory {\n return assertEx(\n this.tryLocate(schema, labels),\n () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ''} registered`,\n )\n }\n\n merge(locator: ModuleFactoryLocator): ModuleFactoryLocator {\n const registry = { ...this.registry }\n for (const schema in locator.registry) {\n if (registry[schema]) {\n registry[schema].push(...(locator.registry[schema] ?? []))\n } else {\n registry[schema] = locator.registry[schema]\n }\n }\n return new ModuleFactoryLocator(registry)\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator\n * @param factory The factory to register\n * @param labels The labels for the module factory\n */\n register(factory: CreatableModuleFactory, labels?: Labels, primary: boolean | Schema | Schema[] = false): this {\n assertEx(!this._frozen, () => 'Cannot register a module factory after the locator has been frozen')\n registerCreatableModuleFactory(this._registry, factory, labels, primary)\n return this\n }\n\n /**\n * Registers multiple module factories with the locator\n * @param factories The factories to register\n */\n registerMany(factories: CreatableModuleFactory[]): this {\n for (const factory of factories) {\n this.register(factory)\n }\n return this\n }\n\n /**\n * Tries to locate a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or undefined\n */\n tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined {\n // If labels were provided\n return labels\n // Find the first factory that has labels and has all the labels provided\n ? this._registry[schema]?.filter(hasLabels).find(factory => hasAllLabels(factory?.labels, labels))\n : this._registry[schema]?.[0] // Otherwise, return the first factory\n }\n}\n","import { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { ViewArchivist } from '@xyo-network/archivist-view'\nimport { HttpBridge } from '@xyo-network/bridge-http'\nimport { MemoryBoundWitnessDiviner } from '@xyo-network/diviner-boundwitness-memory'\nimport { IdentityDiviner } from '@xyo-network/diviner-identity'\nimport { MemoryPayloadDiviner } from '@xyo-network/diviner-payload-memory'\nimport { CreatableModuleFactory, LabeledCreatableModuleFactory, registerCreatableModuleFactories } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { ViewNode } from '@xyo-network/node-view'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { AdhocWitness } from '@xyo-network/witness-adhoc'\n\n// order matters in this array. later items will register themselves as primary for schemas shared with earlier items\nexport const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] = [\n HttpBridge,\n ViewArchivist,\n ViewNode,\n AdhocWitness,\n MemoryPayloadDiviner,\n MemoryBoundWitnessDiviner,\n IdentityDiviner,\n MemoryArchivist,\n MemoryArchivist,\n MemoryNode,\n MemorySentinel,\n]\n\nexport const standardCreatableFactories = () => {\n return registerCreatableModuleFactories(standardCreatableFactoriesList, {}, true)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;ACAA,oBAAyB;AACzB,IAAAA,uBAQO;;;ACTP,8BAAgC;AAChC,4BAA8B;AAC9B,yBAA2B;AAC3B,yCAA0C;AAC1C,8BAAgC;AAChC,oCAAqC;AACrC,0BAAwG;AACxG,yBAA2B;AAC3B,uBAAyB;AACzB,6BAA+B;AAC/B,2BAA6B;AAGtB,IAAMC,iCAA6F;EACxGC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAA;EACAC;EACAC;;AAGK,IAAMC,6BAA6B,6BAAA;AACxC,aAAOC,sDAAiCZ,gCAAgC,CAAC,GAAG,IAAA;AAC9E,GAF0C;;;ADVnC,IAAMa,uBAAN,MAAMA,sBAAAA;EAjBb,OAiBaA;;;;EACHC;EAERC,YAA+BC,YAAqCC,2BAAAA,GAA8B;SAAnED,YAAAA;SAFvBF,UAAU;EAEiF;;;;EAKnG,IAAII,WAA8C;AAChD,WAAO,KAAKF;EACd;EAEA,OAAOG,QAAQ;AACb,WAAO,IAAIN,sBAAqB,CAAC,CAAA;EACnC;EAEA,OAAOO,WAAW;AAChB,WAAO,IAAIP,sBAAqBI,2BAAAA,CAAAA;EAClC;EAEAI,SAAS;AACP,SAAKP,UAAU;EACjB;;;;;;;EAQAQ,OAAOC,QAAgBC,QAAyE;AAC9F,eAAOC,wBACL,KAAKC,UAAUH,QAAQC,MAAAA,GACvB,MAAM,sCAAsC,kBAAkBD,MAAAA,GAAS,GAAGC,SAAS,cAAcG,KAAKC,UAAUJ,MAAAA,CAAAA,MAAa,EAAA,aAAe;EAEhJ;EAEAK,MAAMC,SAAqD;AACzD,UAAMZ,WAAW;MAAE,GAAG,KAAKA;IAAS;AACpC,eAAWK,UAAUO,QAAQZ,UAAU;AACrC,UAAIA,SAASK,MAAAA,GAAS;AACpBL,iBAASK,MAAAA,EAAQQ,KAAI,GAAKD,QAAQZ,SAASK,MAAAA,KAAW,CAAA,CAAE;MAC1D,OAAO;AACLL,iBAASK,MAAAA,IAAUO,QAAQZ,SAASK,MAAAA;MACtC;IACF;AACA,WAAO,IAAIV,sBAAqBK,QAAAA;EAClC;;;;;;EAOAc,SAASC,SAAiCT,QAAiBU,UAAuC,OAAa;AAC7GT,gCAAS,CAAC,KAAKX,SAAS,MAAM,oEAAA;AAC9BqB,6DAA+B,KAAKnB,WAAWiB,SAAST,QAAQU,OAAAA;AAChE,WAAO;EACT;;;;;EAMAE,aAAaC,WAA2C;AACtD,eAAWJ,WAAWI,WAAW;AAC/B,WAAKL,SAASC,OAAAA;IAChB;AACA,WAAO;EACT;;;;;;;EAQAP,UAAUH,QAAgBC,QAAqF;AAE7G,WAAOA,SAEH,KAAKR,UAAUO,MAAAA,GAASe,OAAOC,8BAAAA,EAAWC,KAAKP,CAAAA,gBAAWQ,mCAAaR,SAAST,QAAQA,MAAAA,CAAAA,IACxF,KAAKR,UAAUO,MAAAA,IAAU,CAAA;EAC/B;AACF;","names":["import_module_model","standardCreatableFactoriesList","HttpBridge","ViewArchivist","ViewNode","AdhocWitness","MemoryPayloadDiviner","MemoryBoundWitnessDiviner","IdentityDiviner","MemoryArchivist","MemoryNode","MemorySentinel","standardCreatableFactories","registerCreatableModuleFactories","ModuleFactoryLocator","_frozen","constructor","_registry","standardCreatableFactories","registry","empty","standard","freeze","locate","schema","labels","assertEx","tryLocate","JSON","stringify","merge","locator","push","register","factory","primary","registerCreatableModuleFactory","registerMany","factories","filter","hasLabels","find","hasAllLabels"]}
@@ -1,3 +0,0 @@
1
- export * from './ModuleFactoryLocator.ts';
2
- export * from './standardCreatableFactories.ts';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './ModuleFactoryLocator.ts';
2
- export * from './standardCreatableFactories.ts';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { CreatableModuleFactory, LabeledCreatableModuleFactory } from '@xyo-network/module-model';
2
- export declare const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[];
3
- export declare const standardCreatableFactories: () => import("@xyo-network/module-model").CreatableModuleRegistry;
4
- //# sourceMappingURL=standardCreatableFactories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAoC,MAAM,2BAA2B,CAAA;AAOnI,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAYpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAEtC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { CreatableModuleFactory, LabeledCreatableModuleFactory } from '@xyo-network/module-model';
2
- export declare const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[];
3
- export declare const standardCreatableFactories: () => import("@xyo-network/module-model").CreatableModuleRegistry;
4
- //# sourceMappingURL=standardCreatableFactories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAoC,MAAM,2BAA2B,CAAA;AAOnI,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAYpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAEtC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { CreatableModuleFactory, LabeledCreatableModuleFactory } from '@xyo-network/module-model';
2
- export declare const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[];
3
- export declare const standardCreatableFactories: () => import("@xyo-network/module-model").CreatableModuleRegistry;
4
- //# sourceMappingURL=standardCreatableFactories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAoC,MAAM,2BAA2B,CAAA;AAOnI,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAYpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAEtC,CAAA"}
@@ -1,17 +0,0 @@
1
- import { CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
2
- import { Schema } from '@xyo-network/payload-model';
3
- export declare class ModuleFactoryLocator {
4
- protected readonly _registry: CreatableModuleRegistry;
5
- private _frozen;
6
- constructor(_registry?: CreatableModuleRegistry);
7
- get registry(): Readonly<CreatableModuleRegistry>;
8
- static empty(): ModuleFactoryLocator;
9
- static standard(): ModuleFactoryLocator;
10
- freeze(): void;
11
- locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory;
12
- merge(locator: ModuleFactoryLocator): ModuleFactoryLocator;
13
- register(factory: CreatableModuleFactory, labels?: Labels, primary?: boolean | Schema | Schema[]): this;
14
- registerMany(factories: CreatableModuleFactory[]): this;
15
- tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined;
16
- }
17
- //# sourceMappingURL=ModuleFactoryLocator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAOnD,qBAAa,oBAAoB;IAGnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;IAFjE,OAAO,CAAC,OAAO,CAAQ;gBAEQ,SAAS,GAAE,uBAAsD;IAKhG,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,QAAQ;IAIf,MAAM;IAUN,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB;IAiB1D,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAU,GAAG,IAAI;IAU9G,YAAY,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAavD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAO/G"}
@@ -1,17 +0,0 @@
1
- import { CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
2
- import { Schema } from '@xyo-network/payload-model';
3
- export declare class ModuleFactoryLocator {
4
- protected readonly _registry: CreatableModuleRegistry;
5
- private _frozen;
6
- constructor(_registry?: CreatableModuleRegistry);
7
- get registry(): Readonly<CreatableModuleRegistry>;
8
- static empty(): ModuleFactoryLocator;
9
- static standard(): ModuleFactoryLocator;
10
- freeze(): void;
11
- locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory;
12
- merge(locator: ModuleFactoryLocator): ModuleFactoryLocator;
13
- register(factory: CreatableModuleFactory, labels?: Labels, primary?: boolean | Schema | Schema[]): this;
14
- registerMany(factories: CreatableModuleFactory[]): this;
15
- tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined;
16
- }
17
- //# sourceMappingURL=ModuleFactoryLocator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAOnD,qBAAa,oBAAoB;IAGnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;IAFjE,OAAO,CAAC,OAAO,CAAQ;gBAEQ,SAAS,GAAE,uBAAsD;IAKhG,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,QAAQ;IAIf,MAAM;IAUN,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB;IAiB1D,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAU,GAAG,IAAI;IAU9G,YAAY,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAavD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAO/G"}
@@ -1,17 +0,0 @@
1
- import { CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
2
- import { Schema } from '@xyo-network/payload-model';
3
- export declare class ModuleFactoryLocator {
4
- protected readonly _registry: CreatableModuleRegistry;
5
- private _frozen;
6
- constructor(_registry?: CreatableModuleRegistry);
7
- get registry(): Readonly<CreatableModuleRegistry>;
8
- static empty(): ModuleFactoryLocator;
9
- static standard(): ModuleFactoryLocator;
10
- freeze(): void;
11
- locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory;
12
- merge(locator: ModuleFactoryLocator): ModuleFactoryLocator;
13
- register(factory: CreatableModuleFactory, labels?: Labels, primary?: boolean | Schema | Schema[]): this;
14
- registerMany(factories: CreatableModuleFactory[]): this;
15
- tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined;
16
- }
17
- //# sourceMappingURL=ModuleFactoryLocator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAOnD,qBAAa,oBAAoB;IAGnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;IAFjE,OAAO,CAAC,OAAO,CAAQ;gBAEQ,SAAS,GAAE,uBAAsD;IAKhG,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,QAAQ;IAIf,MAAM;IAUN,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB;IAiB1D,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAU,GAAG,IAAI;IAU9G,YAAY,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAavD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAO/G"}
@@ -1,147 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/index.ts
22
- var src_exports = {};
23
- __export(src_exports, {
24
- ModuleFactoryLocator: () => ModuleFactoryLocator,
25
- standardCreatableFactories: () => standardCreatableFactories,
26
- standardCreatableFactoriesList: () => standardCreatableFactoriesList
27
- });
28
- module.exports = __toCommonJS(src_exports);
29
-
30
- // src/ModuleFactoryLocator.ts
31
- var import_assert = require("@xylabs/assert");
32
- var import_module_model2 = require("@xyo-network/module-model");
33
-
34
- // src/standardCreatableFactories.ts
35
- var import_archivist_memory = require("@xyo-network/archivist-memory");
36
- var import_archivist_view = require("@xyo-network/archivist-view");
37
- var import_bridge_http = require("@xyo-network/bridge-http");
38
- var import_diviner_boundwitness_memory = require("@xyo-network/diviner-boundwitness-memory");
39
- var import_diviner_identity = require("@xyo-network/diviner-identity");
40
- var import_diviner_payload_memory = require("@xyo-network/diviner-payload-memory");
41
- var import_module_model = require("@xyo-network/module-model");
42
- var import_node_memory = require("@xyo-network/node-memory");
43
- var import_node_view = require("@xyo-network/node-view");
44
- var import_sentinel_memory = require("@xyo-network/sentinel-memory");
45
- var import_witness_adhoc = require("@xyo-network/witness-adhoc");
46
- var standardCreatableFactoriesList = [
47
- import_bridge_http.HttpBridge,
48
- import_archivist_view.ViewArchivist,
49
- import_node_view.ViewNode,
50
- import_witness_adhoc.AdhocWitness,
51
- import_diviner_payload_memory.MemoryPayloadDiviner,
52
- import_diviner_boundwitness_memory.MemoryBoundWitnessDiviner,
53
- import_diviner_identity.IdentityDiviner,
54
- import_archivist_memory.MemoryArchivist,
55
- import_archivist_memory.MemoryArchivist,
56
- import_node_memory.MemoryNode,
57
- import_sentinel_memory.MemorySentinel
58
- ];
59
- var standardCreatableFactories = /* @__PURE__ */ __name(() => {
60
- return (0, import_module_model.registerCreatableModuleFactories)(standardCreatableFactoriesList, {}, true);
61
- }, "standardCreatableFactories");
62
-
63
- // src/ModuleFactoryLocator.ts
64
- var _ModuleFactoryLocator = class _ModuleFactoryLocator {
65
- _registry;
66
- _frozen;
67
- constructor(_registry = standardCreatableFactories()) {
68
- this._registry = _registry;
69
- this._frozen = false;
70
- }
71
- /**
72
- * The current registry for the module factory
73
- */
74
- get registry() {
75
- return this._registry;
76
- }
77
- static empty() {
78
- return new _ModuleFactoryLocator({});
79
- }
80
- static standard() {
81
- return new _ModuleFactoryLocator(standardCreatableFactories());
82
- }
83
- freeze() {
84
- this._frozen = true;
85
- }
86
- /**
87
- * Locates a module factory that matches the supplied schema and labels
88
- * @param schema The config schema for the module
89
- * @param labels The labels for the module factory
90
- * @returns A module factory that matches the supplied schema and labels or throws if one is not found
91
- */
92
- locate(schema, labels) {
93
- return (0, import_assert.assertEx)(this.tryLocate(schema, labels), () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ""} registered`);
94
- }
95
- merge(locator) {
96
- const registry = {
97
- ...this.registry
98
- };
99
- for (const schema in locator.registry) {
100
- if (registry[schema]) {
101
- registry[schema].push(...locator.registry[schema] ?? []);
102
- } else {
103
- registry[schema] = locator.registry[schema];
104
- }
105
- }
106
- return new _ModuleFactoryLocator(registry);
107
- }
108
- /**
109
- * Registers a single module factory (with optional tags) with the locator
110
- * @param factory The factory to register
111
- * @param labels The labels for the module factory
112
- */
113
- register(factory, labels, primary = false) {
114
- (0, import_assert.assertEx)(!this._frozen, () => "Cannot register a module factory after the locator has been frozen");
115
- (0, import_module_model2.registerCreatableModuleFactory)(this._registry, factory, labels, primary);
116
- return this;
117
- }
118
- /**
119
- * Registers multiple module factories with the locator
120
- * @param factories The factories to register
121
- */
122
- registerMany(factories) {
123
- for (const factory of factories) {
124
- this.register(factory);
125
- }
126
- return this;
127
- }
128
- /**
129
- * Tries to locate a module factory that matches the supplied schema and labels
130
- * @param schema The config schema for the module
131
- * @param labels The labels for the module factory
132
- * @returns A module factory that matches the supplied schema and labels or undefined
133
- */
134
- tryLocate(schema, labels) {
135
- var _a, _b;
136
- return labels ? (_a = this._registry[schema]) == null ? void 0 : _a.filter(import_module_model2.hasLabels).find((factory) => (0, import_module_model2.hasAllLabels)(factory == null ? void 0 : factory.labels, labels)) : (_b = this._registry[schema]) == null ? void 0 : _b[0];
137
- }
138
- };
139
- __name(_ModuleFactoryLocator, "ModuleFactoryLocator");
140
- var ModuleFactoryLocator = _ModuleFactoryLocator;
141
- // Annotate the CommonJS export names for ESM import in node:
142
- 0 && (module.exports = {
143
- ModuleFactoryLocator,
144
- standardCreatableFactories,
145
- standardCreatableFactoriesList
146
- });
147
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/ModuleFactoryLocator.ts","../../src/standardCreatableFactories.ts"],"sourcesContent":["export * from './ModuleFactoryLocator.ts'\nexport * from './standardCreatableFactories.ts'\n","import { assertEx } from '@xylabs/assert'\nimport {\n CreatableModuleFactory,\n CreatableModuleRegistry,\n hasAllLabels,\n hasLabels,\n LabeledCreatableModuleFactory,\n Labels,\n registerCreatableModuleFactory,\n} from '@xyo-network/module-model'\nimport { Schema } from '@xyo-network/payload-model'\n\nimport { standardCreatableFactories } from './standardCreatableFactories.ts'\n\n/**\n * A class which encapsulates the Service Locator Pattern for Module Factories\n */\nexport class ModuleFactoryLocator {\n private _frozen = false\n\n constructor(protected readonly _registry: CreatableModuleRegistry = standardCreatableFactories()) {}\n\n /**\n * The current registry for the module factory\n */\n get registry(): Readonly<CreatableModuleRegistry> {\n return this._registry\n }\n\n static empty() {\n return new ModuleFactoryLocator({})\n }\n\n static standard() {\n return new ModuleFactoryLocator(standardCreatableFactories())\n }\n\n freeze() {\n this._frozen = true\n }\n\n /**\n * Locates a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or throws if one is not found\n */\n locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory {\n return assertEx(\n this.tryLocate(schema, labels),\n () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ''} registered`,\n )\n }\n\n merge(locator: ModuleFactoryLocator): ModuleFactoryLocator {\n const registry = { ...this.registry }\n for (const schema in locator.registry) {\n if (registry[schema]) {\n registry[schema].push(...(locator.registry[schema] ?? []))\n } else {\n registry[schema] = locator.registry[schema]\n }\n }\n return new ModuleFactoryLocator(registry)\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator\n * @param factory The factory to register\n * @param labels The labels for the module factory\n */\n register(factory: CreatableModuleFactory, labels?: Labels, primary: boolean | Schema | Schema[] = false): this {\n assertEx(!this._frozen, () => 'Cannot register a module factory after the locator has been frozen')\n registerCreatableModuleFactory(this._registry, factory, labels, primary)\n return this\n }\n\n /**\n * Registers multiple module factories with the locator\n * @param factories The factories to register\n */\n registerMany(factories: CreatableModuleFactory[]): this {\n for (const factory of factories) {\n this.register(factory)\n }\n return this\n }\n\n /**\n * Tries to locate a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or undefined\n */\n tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined {\n // If labels were provided\n return labels\n // Find the first factory that has labels and has all the labels provided\n ? this._registry[schema]?.filter(hasLabels).find(factory => hasAllLabels(factory?.labels, labels))\n : this._registry[schema]?.[0] // Otherwise, return the first factory\n }\n}\n","import { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { ViewArchivist } from '@xyo-network/archivist-view'\nimport { HttpBridge } from '@xyo-network/bridge-http'\nimport { MemoryBoundWitnessDiviner } from '@xyo-network/diviner-boundwitness-memory'\nimport { IdentityDiviner } from '@xyo-network/diviner-identity'\nimport { MemoryPayloadDiviner } from '@xyo-network/diviner-payload-memory'\nimport { CreatableModuleFactory, LabeledCreatableModuleFactory, registerCreatableModuleFactories } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { ViewNode } from '@xyo-network/node-view'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { AdhocWitness } from '@xyo-network/witness-adhoc'\n\n// order matters in this array. later items will register themselves as primary for schemas shared with earlier items\nexport const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] = [\n HttpBridge,\n ViewArchivist,\n ViewNode,\n AdhocWitness,\n MemoryPayloadDiviner,\n MemoryBoundWitnessDiviner,\n IdentityDiviner,\n MemoryArchivist,\n MemoryArchivist,\n MemoryNode,\n MemorySentinel,\n]\n\nexport const standardCreatableFactories = () => {\n return registerCreatableModuleFactories(standardCreatableFactoriesList, {}, true)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;ACAA,oBAAyB;AACzB,IAAAA,uBAQO;;;ACTP,8BAAgC;AAChC,4BAA8B;AAC9B,yBAA2B;AAC3B,yCAA0C;AAC1C,8BAAgC;AAChC,oCAAqC;AACrC,0BAAwG;AACxG,yBAA2B;AAC3B,uBAAyB;AACzB,6BAA+B;AAC/B,2BAA6B;AAGtB,IAAMC,iCAA6F;EACxGC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAA;EACAC;EACAC;;AAGK,IAAMC,6BAA6B,6BAAA;AACxC,aAAOC,sDAAiCZ,gCAAgC,CAAC,GAAG,IAAA;AAC9E,GAF0C;;;ADVnC,IAAMa,wBAAN,MAAMA,sBAAAA;;EACHC;EAERC,YAA+BC,YAAqCC,2BAAAA,GAA8B;SAAnED,YAAAA;SAFvBF,UAAU;EAEiF;;;;EAKnG,IAAII,WAA8C;AAChD,WAAO,KAAKF;EACd;EAEA,OAAOG,QAAQ;AACb,WAAO,IAAIN,sBAAqB,CAAC,CAAA;EACnC;EAEA,OAAOO,WAAW;AAChB,WAAO,IAAIP,sBAAqBI,2BAAAA,CAAAA;EAClC;EAEAI,SAAS;AACP,SAAKP,UAAU;EACjB;;;;;;;EAQAQ,OAAOC,QAAgBC,QAAyE;AAC9F,eAAOC,wBACL,KAAKC,UAAUH,QAAQC,MAAAA,GACvB,MAAM,sCAAsC,kBAAkBD,MAAAA,GAAS,GAAGC,SAAS,cAAcG,KAAKC,UAAUJ,MAAAA,CAAAA,MAAa,EAAA,aAAe;EAEhJ;EAEAK,MAAMC,SAAqD;AACzD,UAAMZ,WAAW;MAAE,GAAG,KAAKA;IAAS;AACpC,eAAWK,UAAUO,QAAQZ,UAAU;AACrC,UAAIA,SAASK,MAAAA,GAAS;AACpBL,iBAASK,MAAAA,EAAQQ,KAAI,GAAKD,QAAQZ,SAASK,MAAAA,KAAW,CAAA,CAAE;MAC1D,OAAO;AACLL,iBAASK,MAAAA,IAAUO,QAAQZ,SAASK,MAAAA;MACtC;IACF;AACA,WAAO,IAAIV,sBAAqBK,QAAAA;EAClC;;;;;;EAOAc,SAASC,SAAiCT,QAAiBU,UAAuC,OAAa;AAC7GT,gCAAS,CAAC,KAAKX,SAAS,MAAM,oEAAA;AAC9BqB,6DAA+B,KAAKnB,WAAWiB,SAAST,QAAQU,OAAAA;AAChE,WAAO;EACT;;;;;EAMAE,aAAaC,WAA2C;AACtD,eAAWJ,WAAWI,WAAW;AAC/B,WAAKL,SAASC,OAAAA;IAChB;AACA,WAAO;EACT;;;;;;;EAQAP,UAAUH,QAAgBC,QAAqF;AA9FjH;AAgGI,WAAOA,UAEH,UAAKR,UAAUO,MAAAA,MAAf,mBAAwBe,OAAOC,gCAAWC,KAAKP,CAAAA,gBAAWQ,mCAAaR,mCAAST,QAAQA,MAAAA,MACxF,UAAKR,UAAUO,MAAAA,MAAf,mBAAyB;EAC/B;AACF;AApFaV;AAAN,IAAMA,uBAAN;","names":["import_module_model","standardCreatableFactoriesList","HttpBridge","ViewArchivist","ViewNode","AdhocWitness","MemoryPayloadDiviner","MemoryBoundWitnessDiviner","IdentityDiviner","MemoryArchivist","MemoryNode","MemorySentinel","standardCreatableFactories","registerCreatableModuleFactories","ModuleFactoryLocator","_frozen","constructor","_registry","standardCreatableFactories","registry","empty","standard","freeze","locate","schema","labels","assertEx","tryLocate","JSON","stringify","merge","locator","push","register","factory","primary","registerCreatableModuleFactory","registerMany","factories","filter","hasLabels","find","hasAllLabels"]}
@@ -1,3 +0,0 @@
1
- export * from './ModuleFactoryLocator.ts';
2
- export * from './standardCreatableFactories.ts';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './ModuleFactoryLocator.ts';
2
- export * from './standardCreatableFactories.ts';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './ModuleFactoryLocator.ts';
2
- export * from './standardCreatableFactories.ts';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA"}
@@ -1,120 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
- // src/ModuleFactoryLocator.ts
5
- import { assertEx } from "@xylabs/assert";
6
- import { hasAllLabels, hasLabels, registerCreatableModuleFactory } from "@xyo-network/module-model";
7
-
8
- // src/standardCreatableFactories.ts
9
- import { MemoryArchivist } from "@xyo-network/archivist-memory";
10
- import { ViewArchivist } from "@xyo-network/archivist-view";
11
- import { HttpBridge } from "@xyo-network/bridge-http";
12
- import { MemoryBoundWitnessDiviner } from "@xyo-network/diviner-boundwitness-memory";
13
- import { IdentityDiviner } from "@xyo-network/diviner-identity";
14
- import { MemoryPayloadDiviner } from "@xyo-network/diviner-payload-memory";
15
- import { registerCreatableModuleFactories } from "@xyo-network/module-model";
16
- import { MemoryNode } from "@xyo-network/node-memory";
17
- import { ViewNode } from "@xyo-network/node-view";
18
- import { MemorySentinel } from "@xyo-network/sentinel-memory";
19
- import { AdhocWitness } from "@xyo-network/witness-adhoc";
20
- var standardCreatableFactoriesList = [
21
- HttpBridge,
22
- ViewArchivist,
23
- ViewNode,
24
- AdhocWitness,
25
- MemoryPayloadDiviner,
26
- MemoryBoundWitnessDiviner,
27
- IdentityDiviner,
28
- MemoryArchivist,
29
- MemoryArchivist,
30
- MemoryNode,
31
- MemorySentinel
32
- ];
33
- var standardCreatableFactories = /* @__PURE__ */ __name(() => {
34
- return registerCreatableModuleFactories(standardCreatableFactoriesList, {}, true);
35
- }, "standardCreatableFactories");
36
-
37
- // src/ModuleFactoryLocator.ts
38
- var _ModuleFactoryLocator = class _ModuleFactoryLocator {
39
- _registry;
40
- _frozen;
41
- constructor(_registry = standardCreatableFactories()) {
42
- this._registry = _registry;
43
- this._frozen = false;
44
- }
45
- /**
46
- * The current registry for the module factory
47
- */
48
- get registry() {
49
- return this._registry;
50
- }
51
- static empty() {
52
- return new _ModuleFactoryLocator({});
53
- }
54
- static standard() {
55
- return new _ModuleFactoryLocator(standardCreatableFactories());
56
- }
57
- freeze() {
58
- this._frozen = true;
59
- }
60
- /**
61
- * Locates a module factory that matches the supplied schema and labels
62
- * @param schema The config schema for the module
63
- * @param labels The labels for the module factory
64
- * @returns A module factory that matches the supplied schema and labels or throws if one is not found
65
- */
66
- locate(schema, labels) {
67
- return assertEx(this.tryLocate(schema, labels), () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ""} registered`);
68
- }
69
- merge(locator) {
70
- const registry = {
71
- ...this.registry
72
- };
73
- for (const schema in locator.registry) {
74
- if (registry[schema]) {
75
- registry[schema].push(...locator.registry[schema] ?? []);
76
- } else {
77
- registry[schema] = locator.registry[schema];
78
- }
79
- }
80
- return new _ModuleFactoryLocator(registry);
81
- }
82
- /**
83
- * Registers a single module factory (with optional tags) with the locator
84
- * @param factory The factory to register
85
- * @param labels The labels for the module factory
86
- */
87
- register(factory, labels, primary = false) {
88
- assertEx(!this._frozen, () => "Cannot register a module factory after the locator has been frozen");
89
- registerCreatableModuleFactory(this._registry, factory, labels, primary);
90
- return this;
91
- }
92
- /**
93
- * Registers multiple module factories with the locator
94
- * @param factories The factories to register
95
- */
96
- registerMany(factories) {
97
- for (const factory of factories) {
98
- this.register(factory);
99
- }
100
- return this;
101
- }
102
- /**
103
- * Tries to locate a module factory that matches the supplied schema and labels
104
- * @param schema The config schema for the module
105
- * @param labels The labels for the module factory
106
- * @returns A module factory that matches the supplied schema and labels or undefined
107
- */
108
- tryLocate(schema, labels) {
109
- var _a, _b;
110
- return labels ? (_a = this._registry[schema]) == null ? void 0 : _a.filter(hasLabels).find((factory) => hasAllLabels(factory == null ? void 0 : factory.labels, labels)) : (_b = this._registry[schema]) == null ? void 0 : _b[0];
111
- }
112
- };
113
- __name(_ModuleFactoryLocator, "ModuleFactoryLocator");
114
- var ModuleFactoryLocator = _ModuleFactoryLocator;
115
- export {
116
- ModuleFactoryLocator,
117
- standardCreatableFactories,
118
- standardCreatableFactoriesList
119
- };
120
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ModuleFactoryLocator.ts","../../src/standardCreatableFactories.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport {\n CreatableModuleFactory,\n CreatableModuleRegistry,\n hasAllLabels,\n hasLabels,\n LabeledCreatableModuleFactory,\n Labels,\n registerCreatableModuleFactory,\n} from '@xyo-network/module-model'\nimport { Schema } from '@xyo-network/payload-model'\n\nimport { standardCreatableFactories } from './standardCreatableFactories.ts'\n\n/**\n * A class which encapsulates the Service Locator Pattern for Module Factories\n */\nexport class ModuleFactoryLocator {\n private _frozen = false\n\n constructor(protected readonly _registry: CreatableModuleRegistry = standardCreatableFactories()) {}\n\n /**\n * The current registry for the module factory\n */\n get registry(): Readonly<CreatableModuleRegistry> {\n return this._registry\n }\n\n static empty() {\n return new ModuleFactoryLocator({})\n }\n\n static standard() {\n return new ModuleFactoryLocator(standardCreatableFactories())\n }\n\n freeze() {\n this._frozen = true\n }\n\n /**\n * Locates a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or throws if one is not found\n */\n locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory {\n return assertEx(\n this.tryLocate(schema, labels),\n () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ''} registered`,\n )\n }\n\n merge(locator: ModuleFactoryLocator): ModuleFactoryLocator {\n const registry = { ...this.registry }\n for (const schema in locator.registry) {\n if (registry[schema]) {\n registry[schema].push(...(locator.registry[schema] ?? []))\n } else {\n registry[schema] = locator.registry[schema]\n }\n }\n return new ModuleFactoryLocator(registry)\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator\n * @param factory The factory to register\n * @param labels The labels for the module factory\n */\n register(factory: CreatableModuleFactory, labels?: Labels, primary: boolean | Schema | Schema[] = false): this {\n assertEx(!this._frozen, () => 'Cannot register a module factory after the locator has been frozen')\n registerCreatableModuleFactory(this._registry, factory, labels, primary)\n return this\n }\n\n /**\n * Registers multiple module factories with the locator\n * @param factories The factories to register\n */\n registerMany(factories: CreatableModuleFactory[]): this {\n for (const factory of factories) {\n this.register(factory)\n }\n return this\n }\n\n /**\n * Tries to locate a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or undefined\n */\n tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined {\n // If labels were provided\n return labels\n // Find the first factory that has labels and has all the labels provided\n ? this._registry[schema]?.filter(hasLabels).find(factory => hasAllLabels(factory?.labels, labels))\n : this._registry[schema]?.[0] // Otherwise, return the first factory\n }\n}\n","import { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { ViewArchivist } from '@xyo-network/archivist-view'\nimport { HttpBridge } from '@xyo-network/bridge-http'\nimport { MemoryBoundWitnessDiviner } from '@xyo-network/diviner-boundwitness-memory'\nimport { IdentityDiviner } from '@xyo-network/diviner-identity'\nimport { MemoryPayloadDiviner } from '@xyo-network/diviner-payload-memory'\nimport { CreatableModuleFactory, LabeledCreatableModuleFactory, registerCreatableModuleFactories } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { ViewNode } from '@xyo-network/node-view'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { AdhocWitness } from '@xyo-network/witness-adhoc'\n\n// order matters in this array. later items will register themselves as primary for schemas shared with earlier items\nexport const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] = [\n HttpBridge,\n ViewArchivist,\n ViewNode,\n AdhocWitness,\n MemoryPayloadDiviner,\n MemoryBoundWitnessDiviner,\n IdentityDiviner,\n MemoryArchivist,\n MemoryArchivist,\n MemoryNode,\n MemorySentinel,\n]\n\nexport const standardCreatableFactories = () => {\n return registerCreatableModuleFactories(standardCreatableFactoriesList, {}, true)\n}\n"],"mappings":";;;;AAAA,SAASA,gBAAgB;AACzB,SAGEC,cACAC,WAGAC,sCACK;;;ACTP,SAASC,uBAAuB;AAChC,SAASC,qBAAqB;AAC9B,SAASC,kBAAkB;AAC3B,SAASC,iCAAiC;AAC1C,SAASC,uBAAuB;AAChC,SAASC,4BAA4B;AACrC,SAAgEC,wCAAwC;AACxG,SAASC,kBAAkB;AAC3B,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;AAC/B,SAASC,oBAAoB;AAGtB,IAAMC,iCAA6F;EACxGC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAA;EACAC;EACAC;;AAGK,IAAMC,6BAA6B,6BAAA;AACxC,SAAOC,iCAAiCZ,gCAAgC,CAAC,GAAG,IAAA;AAC9E,GAF0C;;;ADVnC,IAAMa,wBAAN,MAAMA,sBAAAA;;EACHC;EAERC,YAA+BC,YAAqCC,2BAAAA,GAA8B;SAAnED,YAAAA;SAFvBF,UAAU;EAEiF;;;;EAKnG,IAAII,WAA8C;AAChD,WAAO,KAAKF;EACd;EAEA,OAAOG,QAAQ;AACb,WAAO,IAAIN,sBAAqB,CAAC,CAAA;EACnC;EAEA,OAAOO,WAAW;AAChB,WAAO,IAAIP,sBAAqBI,2BAAAA,CAAAA;EAClC;EAEAI,SAAS;AACP,SAAKP,UAAU;EACjB;;;;;;;EAQAQ,OAAOC,QAAgBC,QAAyE;AAC9F,WAAOC,SACL,KAAKC,UAAUH,QAAQC,MAAAA,GACvB,MAAM,sCAAsC,kBAAkBD,MAAAA,GAAS,GAAGC,SAAS,cAAcG,KAAKC,UAAUJ,MAAAA,CAAAA,MAAa,EAAA,aAAe;EAEhJ;EAEAK,MAAMC,SAAqD;AACzD,UAAMZ,WAAW;MAAE,GAAG,KAAKA;IAAS;AACpC,eAAWK,UAAUO,QAAQZ,UAAU;AACrC,UAAIA,SAASK,MAAAA,GAAS;AACpBL,iBAASK,MAAAA,EAAQQ,KAAI,GAAKD,QAAQZ,SAASK,MAAAA,KAAW,CAAA,CAAE;MAC1D,OAAO;AACLL,iBAASK,MAAAA,IAAUO,QAAQZ,SAASK,MAAAA;MACtC;IACF;AACA,WAAO,IAAIV,sBAAqBK,QAAAA;EAClC;;;;;;EAOAc,SAASC,SAAiCT,QAAiBU,UAAuC,OAAa;AAC7GT,aAAS,CAAC,KAAKX,SAAS,MAAM,oEAAA;AAC9BqB,mCAA+B,KAAKnB,WAAWiB,SAAST,QAAQU,OAAAA;AAChE,WAAO;EACT;;;;;EAMAE,aAAaC,WAA2C;AACtD,eAAWJ,WAAWI,WAAW;AAC/B,WAAKL,SAASC,OAAAA;IAChB;AACA,WAAO;EACT;;;;;;;EAQAP,UAAUH,QAAgBC,QAAqF;AA9FjH;AAgGI,WAAOA,UAEH,UAAKR,UAAUO,MAAAA,MAAf,mBAAwBe,OAAOC,WAAWC,KAAKP,CAAAA,YAAWQ,aAAaR,mCAAST,QAAQA,MAAAA,MACxF,UAAKR,UAAUO,MAAAA,MAAf,mBAAyB;EAC/B;AACF;AApFaV;AAAN,IAAMA,uBAAN;","names":["assertEx","hasAllLabels","hasLabels","registerCreatableModuleFactory","MemoryArchivist","ViewArchivist","HttpBridge","MemoryBoundWitnessDiviner","IdentityDiviner","MemoryPayloadDiviner","registerCreatableModuleFactories","MemoryNode","ViewNode","MemorySentinel","AdhocWitness","standardCreatableFactoriesList","HttpBridge","ViewArchivist","ViewNode","AdhocWitness","MemoryPayloadDiviner","MemoryBoundWitnessDiviner","IdentityDiviner","MemoryArchivist","MemoryNode","MemorySentinel","standardCreatableFactories","registerCreatableModuleFactories","ModuleFactoryLocator","_frozen","constructor","_registry","standardCreatableFactories","registry","empty","standard","freeze","locate","schema","labels","assertEx","tryLocate","JSON","stringify","merge","locator","push","register","factory","primary","registerCreatableModuleFactory","registerMany","factories","filter","hasLabels","find","hasAllLabels"]}
@@ -1,4 +0,0 @@
1
- import { CreatableModuleFactory, LabeledCreatableModuleFactory } from '@xyo-network/module-model';
2
- export declare const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[];
3
- export declare const standardCreatableFactories: () => import("@xyo-network/module-model").CreatableModuleRegistry;
4
- //# sourceMappingURL=standardCreatableFactories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAoC,MAAM,2BAA2B,CAAA;AAOnI,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAYpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAEtC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { CreatableModuleFactory, LabeledCreatableModuleFactory } from '@xyo-network/module-model';
2
- export declare const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[];
3
- export declare const standardCreatableFactories: () => import("@xyo-network/module-model").CreatableModuleRegistry;
4
- //# sourceMappingURL=standardCreatableFactories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAoC,MAAM,2BAA2B,CAAA;AAOnI,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAYpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAEtC,CAAA"}