@twin.org/engine-models 0.0.3-next.2 → 0.0.3-next.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"IEngineCore.js","sourceRoot":"","sources":["../../../src/models/IEngineCore.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IContextIds } from \"@twin.org/context\";\nimport type { IError } from \"@twin.org/core\";\nimport type { IEngineCoreConfig } from \"./config/IEngineCoreConfig.js\";\nimport type { IEngineCoreTypeConfig } from \"./config/IEngineCoreTypeConfig.js\";\nimport type { IEngineCoreClone } from \"./IEngineCoreClone.js\";\nimport type { IEngineState } from \"./IEngineState.js\";\n\n/**\n * Interface describing the engine core methods.\n */\nexport interface IEngineCore<\n\tC extends IEngineCoreConfig = IEngineCoreConfig,\n\tS extends IEngineState = IEngineState\n> {\n\t/**\n\t * Add a type initialiser.\n\t * @param type The type to add the initialiser for.\n\t * @param module The name of the module which contains the initialiser method.\n\t * @param method The name of the method to call.\n\t */\n\taddTypeInitialiser(type: string, module: string, method: string): void;\n\n\t/**\n\t * Get the type config for a specific type.\n\t * @param type The type to get the config for.\n\t * @returns The type config or undefined if not found.\n\t */\n\tgetTypeConfig(type: string): IEngineCoreTypeConfig[] | undefined;\n\n\t/**\n\t * Add a context ID key to the engine.\n\t * @param key The context ID key.\n\t */\n\taddContextIdKey(key: string): void;\n\n\t/**\n\t * Get the context ID keys for the engine.\n\t * @returns The context IDs keys.\n\t */\n\tgetContextIdKeys(): string[];\n\n\t/**\n\t * Add a context ID to the engine.\n\t * @param key The context ID key.\n\t * @param value The context ID value.\n\t */\n\taddContextId(key: string, value: string): void;\n\n\t/**\n\t * Get the context IDs for the engine.\n\t * @returns The context IDs or undefined if none are set.\n\t */\n\tgetContextIds(): IContextIds | undefined;\n\n\t/**\n\t * Start the engine core.\n\t * @returns True if the start was successful.\n\t */\n\tstart(): Promise<boolean>;\n\n\t/**\n\t * Stop the engine core.\n\t * @returns Nothing.\n\t */\n\tstop(): Promise<void>;\n\n\t/**\n\t * Is the engine started.\n\t * @returns True if the engine is started.\n\t */\n\tisStarted(): boolean;\n\n\t/**\n\t * Is this the primary engine instance.\n\t * @returns True if the engine is the primary instance.\n\t */\n\tisPrimary(): boolean;\n\n\t/**\n\t * Is this engine instance a clone.\n\t * @returns True if the engine instance is a clone.\n\t */\n\tisClone(): boolean;\n\n\t/**\n\t * Log info.\n\t * @param message The message to log.\n\t */\n\tlogInfo(message: string): void;\n\n\t/**\n\t * Log error.\n\t * @param error The error to log.\n\t */\n\tlogError(error: IError): void;\n\n\t/**\n\t * Get the config for the engine.\n\t * @returns The config for the engine.\n\t */\n\tgetConfig(): C;\n\n\t/**\n\t * Get the state of the engine.\n\t * @returns The state of the engine.\n\t */\n\tgetState(): S;\n\n\t/**\n\t * Get all the registered instances.\n\t * @returns The registered instances.\n\t */\n\tgetRegisteredInstances(): {\n\t\t[name: string]: {\n\t\t\ttype: string;\n\t\t\tfeatures?: string[];\n\t\t}[];\n\t};\n\n\t/**\n\t * Get the registered instance type for the component/connector.\n\t * @param componentConnectorType The type of the component/connector.\n\t * @param features The requested features of the component, if not specified the default entry will be retrieved.\n\t * @returns The instance type matching the criteria if one is registered.\n\t * @throws If a matching instance was not found.\n\t */\n\tgetRegisteredInstanceType(componentConnectorType: string, features?: string[]): string;\n\n\t/**\n\t * Get the registered instance type for the component/connector.\n\t * @param componentConnectorType The type of the component/connector.\n\t * @param features The requested features of the component, if not specified the default entry will be retrieved.\n\t * @returns The instance type matching the criteria if one is registered.\n\t */\n\tgetRegisteredInstanceTypeOptional(\n\t\tcomponentConnectorType: string,\n\t\tfeatures?: string[]\n\t): string | undefined;\n\n\t/**\n\t * Get the data required to create a clone of the engine.\n\t * @returns The clone data.\n\t */\n\tgetCloneData(): IEngineCoreClone<C, S>;\n\n\t/**\n\t * Populate the engine from the clone data.\n\t * @param cloneData The clone data to populate from.\n\t * @param silent Should the clone be silent.\n\t */\n\tpopulateClone(cloneData: IEngineCoreClone<C, S>, silent?: boolean): void;\n}\n"]}
1
+ {"version":3,"file":"IEngineCore.js","sourceRoot":"","sources":["../../../src/models/IEngineCore.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IContextIds } from \"@twin.org/context\";\nimport type { IError } from \"@twin.org/core\";\nimport type { IEngineCoreConfig } from \"./config/IEngineCoreConfig.js\";\nimport type { IEngineCoreTypeConfig } from \"./config/IEngineCoreTypeConfig.js\";\nimport type { IEngineCoreClone } from \"./IEngineCoreClone.js\";\nimport type { IEngineState } from \"./IEngineState.js\";\n\n/**\n * Interface describing the engine core methods.\n */\nexport interface IEngineCore<\n\tC extends IEngineCoreConfig = IEngineCoreConfig,\n\tS extends IEngineState = IEngineState\n> {\n\t/**\n\t * Add a type initialiser.\n\t * @param type The type to add the initialiser for.\n\t * @param module The name of the module which contains the initialiser method.\n\t * @param method The name of the method to call.\n\t */\n\taddTypeInitialiser(type: string, module: string, method: string): void;\n\n\t/**\n\t * Get the type config for a specific type.\n\t * @param type The type to get the config for.\n\t * @returns The type config or undefined if not found.\n\t */\n\tgetTypeConfig(type: string): IEngineCoreTypeConfig[] | undefined;\n\n\t/**\n\t * Add a context ID key to the engine.\n\t * @param key The context ID key.\n\t * @param componentFeatures The component features for the context ID handler.\n\t */\n\taddContextIdKey(key: string, componentFeatures: string[]): void;\n\n\t/**\n\t * Get the context ID keys for the engine.\n\t * @returns The context IDs keys.\n\t */\n\tgetContextIdKeys(): string[];\n\n\t/**\n\t * Add a context ID to the engine.\n\t * @param key The context ID key.\n\t * @param value The context ID value.\n\t */\n\taddContextId(key: string, value: string): void;\n\n\t/**\n\t * Get the context IDs for the engine.\n\t * @returns The context IDs or undefined if none are set.\n\t */\n\tgetContextIds(): IContextIds | undefined;\n\n\t/**\n\t * Start the engine core.\n\t * @param skipComponentStart Should the component start be skipped.\n\t * @returns Nothing.\n\t */\n\tstart(skipComponentStart?: boolean): Promise<void>;\n\n\t/**\n\t * Stop the engine core.\n\t * @returns Nothing.\n\t */\n\tstop(): Promise<void>;\n\n\t/**\n\t * Is the engine started.\n\t * @returns True if the engine is started.\n\t */\n\tisStarted(): boolean;\n\n\t/**\n\t * Is this the primary engine instance.\n\t * @returns True if the engine is the primary instance.\n\t */\n\tisPrimary(): boolean;\n\n\t/**\n\t * Is this engine instance a clone.\n\t * @returns True if the engine instance is a clone.\n\t */\n\tisClone(): boolean;\n\n\t/**\n\t * Log info.\n\t * @param message The message to log.\n\t */\n\tlogInfo(message: string): void;\n\n\t/**\n\t * Log error.\n\t * @param error The error to log.\n\t */\n\tlogError(error: IError): void;\n\n\t/**\n\t * Get the config for the engine.\n\t * @returns The config for the engine.\n\t */\n\tgetConfig(): C;\n\n\t/**\n\t * Get the state of the engine.\n\t * @returns The state of the engine.\n\t */\n\tgetState(): S;\n\n\t/**\n\t * Set the state to dirty so it gets saved.\n\t */\n\tsetStateDirty(): void;\n\n\t/**\n\t * Get all the registered instances.\n\t * @returns The registered instances.\n\t */\n\tgetRegisteredInstances(): {\n\t\t[name: string]: {\n\t\t\ttype: string;\n\t\t\tfeatures?: string[];\n\t\t}[];\n\t};\n\n\t/**\n\t * Get the registered instance type for the component/connector.\n\t * @param componentConnectorType The type of the component/connector.\n\t * @param features The requested features of the component, if not specified the default entry will be retrieved.\n\t * @returns The instance type matching the criteria if one is registered.\n\t * @throws If a matching instance was not found.\n\t */\n\tgetRegisteredInstanceType(componentConnectorType: string, features?: string[]): string;\n\n\t/**\n\t * Get the registered instance type for the component/connector.\n\t * @param componentConnectorType The type of the component/connector.\n\t * @param features The requested features of the component, if not specified the default entry will be retrieved.\n\t * @returns The instance type matching the criteria if one is registered.\n\t */\n\tgetRegisteredInstanceTypeOptional(\n\t\tcomponentConnectorType: string,\n\t\tfeatures?: string[]\n\t): string | undefined;\n\n\t/**\n\t * Get the data required to create a clone of the engine.\n\t * @returns The clone data.\n\t */\n\tgetCloneData(): IEngineCoreClone<C, S>;\n\n\t/**\n\t * Populate the engine from the clone data.\n\t * @param cloneData The clone data to populate from.\n\t * @param contextIds The context IDs to use for the clone.\n\t * @param silent Should the clone be silent.\n\t */\n\tpopulateClone(\n\t\tcloneData: IEngineCoreClone<C, S>,\n\t\tcontextIds?: IContextIds,\n\t\tsilent?: boolean\n\t): void;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IEngineCoreClone.js","sourceRoot":"","sources":["../../../src/models/IEngineCoreClone.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IEntitySchema } from \"@twin.org/entity\";\nimport type { IEngineCoreConfig } from \"./config/IEngineCoreConfig.js\";\nimport type { IEngineState } from \"./IEngineState.js\";\n\n/**\n * Interface describing the data required to clone an engine.\n */\nexport interface IEngineCoreClone<\n\tC extends IEngineCoreConfig = IEngineCoreConfig,\n\tS extends IEngineState = IEngineState\n> {\n\t/**\n\t * The config for the engine.\n\t */\n\tconfig: C;\n\n\t/**\n\t * The state of the engine.\n\t */\n\tstate: S;\n\n\t/**\n\t * The type initialisers for the engine.\n\t */\n\ttypeInitialisers: {\n\t\ttype: string;\n\t\tmodule: string;\n\t\tmethod: string;\n\t}[];\n\n\t/**\n\t * The entity schemas for the engine.\n\t */\n\tentitySchemas: { [schema: string]: IEntitySchema };\n\n\t/**\n\t * The context ID keys.\n\t */\n\tcontextIdKeys: string[];\n}\n"]}
1
+ {"version":3,"file":"IEngineCoreClone.js","sourceRoot":"","sources":["../../../src/models/IEngineCoreClone.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IEntitySchema } from \"@twin.org/entity\";\nimport type { IEngineCoreConfig } from \"./config/IEngineCoreConfig.js\";\nimport type { IEngineState } from \"./IEngineState.js\";\n\n/**\n * Interface describing the data required to clone an engine.\n */\nexport interface IEngineCoreClone<\n\tC extends IEngineCoreConfig = IEngineCoreConfig,\n\tS extends IEngineState = IEngineState\n> {\n\t/**\n\t * The config for the engine.\n\t */\n\tconfig: C;\n\n\t/**\n\t * The state of the engine.\n\t */\n\tstate: S;\n\n\t/**\n\t * The type initialisers for the engine.\n\t */\n\ttypeInitialisers: {\n\t\ttype: string;\n\t\tmodule: string;\n\t\tmethod: string;\n\t}[];\n\n\t/**\n\t * The entity schemas for the engine.\n\t */\n\tentitySchemas: { [schema: string]: IEntitySchema };\n\n\t/**\n\t * The context ID keys.\n\t */\n\tcontextIdKeys: { key: string; componentFeatures: string[] }[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IEngineCoreContext.js","sourceRoot":"","sources":["../../../src/models/IEngineCoreContext.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IEngineCoreConfig } from \"./config/IEngineCoreConfig.js\";\nimport type { IEngineState } from \"./IEngineState.js\";\n\n/**\n * The context for the engine core.\n */\nexport interface IEngineCoreContext<\n\tC extends IEngineCoreConfig = IEngineCoreConfig,\n\tS extends IEngineState = IEngineState\n> {\n\t/**\n\t * The engine core config.\n\t */\n\tconfig: C;\n\n\t/**\n\t * The engine core state.\n\t */\n\tstate: S;\n\n\t/**\n\t * The state dirty flag, which flags that the state needs saving.\n\t */\n\tstateDirty: boolean;\n\n\t/**\n\t * The registered instances to use when components don't have custom types.\n\t * The default entry will be the first in the list.\n\t */\n\tregisteredInstances: {\n\t\t[name: string]: { type: string; isDefault?: boolean; features?: string[] }[];\n\t};\n\n\t/**\n\t * The components.\n\t */\n\tcomponentInstances: { instanceType: string; component: IComponent; started: boolean }[];\n}\n"]}
1
+ {"version":3,"file":"IEngineCoreContext.js","sourceRoot":"","sources":["../../../src/models/IEngineCoreContext.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IEngineCoreConfig } from \"./config/IEngineCoreConfig.js\";\nimport type { IEngineState } from \"./IEngineState.js\";\n\n/**\n * The context for the engine core.\n */\nexport interface IEngineCoreContext<\n\tC extends IEngineCoreConfig = IEngineCoreConfig,\n\tS extends IEngineState = IEngineState\n> {\n\t/**\n\t * The engine core config.\n\t */\n\tconfig: C;\n\n\t/**\n\t * The engine core state.\n\t */\n\tstate: S;\n\n\t/**\n\t * The state dirty flag, which flags that the state needs saving.\n\t */\n\tstateDirty: boolean;\n\n\t/**\n\t * The registered instances to use when components don't have custom types.\n\t * The default entry will be the first in the list.\n\t */\n\tregisteredInstances: {\n\t\t[name: string]: { type: string; isDefault?: boolean; features?: string[] }[];\n\t};\n\n\t/**\n\t * The components.\n\t */\n\tcomponentInstances: { instanceType: string; component: IComponent; initialised: boolean }[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IEngineServer.js","sourceRoot":"","sources":["../../../src/models/IEngineServer.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Interface describing the engine server methods.\n */\nexport interface IEngineServer {\n\t/**\n\t * Add a REST route generator.\n\t * @param type The type to add the generator for.\n\t * @param module The module containing the generator.\n\t * @param method The method to call on the module.\n\t */\n\taddRestRouteGenerator(type: string, module: string, method: string): void;\n\n\t/**\n\t * Add a socket route generator.\n\t * @param type The type to add the generator for.\n\t * @param module The module containing the generator.\n\t * @param method The method to call on the module.\n\t */\n\taddSocketRouteGenerator(type: string, module: string, method: string): void;\n\n\t/**\n\t * Start the engine server.\n\t * @returns True if the start was successful.\n\t */\n\tstart(): Promise<boolean>;\n\n\t/**\n\t * Stop the engine server.\n\t * @returns Nothing.\n\t */\n\tstop(): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"IEngineServer.js","sourceRoot":"","sources":["../../../src/models/IEngineServer.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Interface describing the engine server methods.\n */\nexport interface IEngineServer {\n\t/**\n\t * Add a REST route generator.\n\t * @param type The type to add the generator for.\n\t * @param module The module containing the generator.\n\t * @param method The method to call on the module.\n\t */\n\taddRestRouteGenerator(type: string, module: string, method: string): void;\n\n\t/**\n\t * Add a socket route generator.\n\t * @param type The type to add the generator for.\n\t * @param module The module containing the generator.\n\t * @param method The method to call on the module.\n\t */\n\taddSocketRouteGenerator(type: string, module: string, method: string): void;\n\n\t/**\n\t * Start the engine server.\n\t * @returns Nothing.\n\t */\n\tstart(): Promise<void>;\n\n\t/**\n\t * Stop the engine server.\n\t * @returns Nothing.\n\t */\n\tstop(): Promise<void>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IEngineCoreTypeConfig.js","sourceRoot":"","sources":["../../../../src/models/config/IEngineCoreTypeConfig.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IEngineCoreTypeBaseConfig } from \"./IEngineCoreTypeBaseConfig.js\";\n\n/**\n * Configuration for the engine core type.\n */\nexport type IEngineCoreTypeConfig<T extends IEngineCoreTypeBaseConfig = IEngineCoreTypeBaseConfig> =\n\tT & {\n\t\t/**\n\t\t * The instance type to override with.\n\t\t */\n\t\toverrideInstanceType?: string;\n\n\t\t/**\n\t\t * Whether this is the default instance.\n\t\t */\n\t\tisDefault?: boolean;\n\n\t\t/**\n\t\t * The features supported by this instance.\n\t\t */\n\t\tfeatures?: string[];\n\n\t\t/**\n\t\t * The path for the REST API.\n\t\t */\n\t\trestPath?: string;\n\n\t\t/**\n\t\t * The options for the REST API route generation.\n\t\t */\n\t\trestOptions?: unknown;\n\n\t\t/**\n\t\t * The path for the socket API.\n\t\t */\n\t\tsocketPath?: string;\n\n\t\t/**\n\t\t * The options for the socket API route generation.\n\t\t */\n\t\tsocketOptions?: unknown;\n\t};\n"]}
1
+ {"version":3,"file":"IEngineCoreTypeConfig.js","sourceRoot":"","sources":["../../../../src/models/config/IEngineCoreTypeConfig.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IEngineCoreTypeBaseConfig } from \"./IEngineCoreTypeBaseConfig.js\";\n\n/**\n * Configuration for the engine core type.\n */\nexport type IEngineCoreTypeConfig<T extends IEngineCoreTypeBaseConfig = IEngineCoreTypeBaseConfig> =\n\tT & {\n\t\t/**\n\t\t * The instance type to override with.\n\t\t */\n\t\toverrideInstanceType?: string;\n\n\t\t/**\n\t\t * Whether this is the default instance.\n\t\t */\n\t\tisDefault?: boolean;\n\n\t\t/**\n\t\t * Whether this is a multi-instance component.\n\t\t */\n\t\tisMultiInstance?: boolean;\n\n\t\t/**\n\t\t * The features supported by this instance.\n\t\t */\n\t\tfeatures?: string[];\n\n\t\t/**\n\t\t * The path for the REST API.\n\t\t */\n\t\trestPath?: string;\n\n\t\t/**\n\t\t * The options for the REST API route generation.\n\t\t */\n\t\trestOptions?: unknown;\n\n\t\t/**\n\t\t * The path for the socket API.\n\t\t */\n\t\tsocketPath?: string;\n\n\t\t/**\n\t\t * The options for the socket API route generation.\n\t\t */\n\t\tsocketOptions?: unknown;\n\t};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"engineTypeInitialiser.js","sourceRoot":"","sources":["../../../src/models/engineTypeInitialiser.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { Factory, IComponent } from \"@twin.org/core\";\nimport type { IEngineCoreTypeBaseConfig } from \"./config/IEngineCoreTypeBaseConfig.js\";\nimport type { IEngineCore } from \"./IEngineCore.js\";\nimport type { IEngineCoreContext } from \"./IEngineCoreContext.js\";\n\n/**\n * Method definition for the engine type initialiser.\n */\nexport type EngineTypeInitialiser<T extends IEngineCoreTypeBaseConfig = IEngineCoreTypeBaseConfig> =\n\t(\n\t\tengineCore: IEngineCore,\n\t\tcontext: IEngineCoreContext,\n\t\tinstanceConfig: T\n\t) => Promise<EngineTypeInitialiserReturn>;\n\n/**\n * Engine type initialiser return type.\n */\nexport interface EngineTypeInitialiserReturn {\n\t/**\n\t * The instance type created.\n\t */\n\tinstanceType?: string;\n\n\t/**\n\t * The factory to store the instance in.\n\t */\n\tfactory?: Factory<unknown>;\n\n\t/**\n\t * The component created.\n\t */\n\tcomponent?: IComponent;\n}\n"]}
1
+ {"version":3,"file":"engineTypeInitialiser.js","sourceRoot":"","sources":["../../../src/models/engineTypeInitialiser.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { Factory, IComponent } from \"@twin.org/core\";\nimport type { IEngineCoreTypeBaseConfig } from \"./config/IEngineCoreTypeBaseConfig.js\";\nimport type { IEngineCore } from \"./IEngineCore.js\";\nimport type { IEngineCoreContext } from \"./IEngineCoreContext.js\";\n\n/**\n * Method definition for the engine type initialiser.\n */\nexport type EngineTypeInitialiser<\n\tT extends IEngineCoreTypeBaseConfig = IEngineCoreTypeBaseConfig,\n\tF = Factory<unknown>\n> = (\n\tengineCore: IEngineCore,\n\tcontext: IEngineCoreContext,\n\tinstanceConfig: T\n) => EngineTypeInitialiserReturn<T, F>;\n\n/**\n * Engine type initialiser return type.\n */\nexport interface EngineTypeInitialiserReturn<\n\tT extends IEngineCoreTypeBaseConfig = IEngineCoreTypeBaseConfig,\n\tF = Factory<unknown>\n> {\n\t/**\n\t * The instance type created.\n\t */\n\tinstanceTypeName?: string;\n\n\t/**\n\t * The factory to store the instance in.\n\t */\n\tfactory?: F;\n\n\t/**\n\t * Create a new component.\n\t */\n\tcreateComponent?: (additionalConfig: T) => IComponent;\n}\n"]}
@@ -24,8 +24,9 @@ export interface IEngineCore<C extends IEngineCoreConfig = IEngineCoreConfig, S
24
24
  /**
25
25
  * Add a context ID key to the engine.
26
26
  * @param key The context ID key.
27
+ * @param componentFeatures The component features for the context ID handler.
27
28
  */
28
- addContextIdKey(key: string): void;
29
+ addContextIdKey(key: string, componentFeatures: string[]): void;
29
30
  /**
30
31
  * Get the context ID keys for the engine.
31
32
  * @returns The context IDs keys.
@@ -44,9 +45,10 @@ export interface IEngineCore<C extends IEngineCoreConfig = IEngineCoreConfig, S
44
45
  getContextIds(): IContextIds | undefined;
45
46
  /**
46
47
  * Start the engine core.
47
- * @returns True if the start was successful.
48
+ * @param skipComponentStart Should the component start be skipped.
49
+ * @returns Nothing.
48
50
  */
49
- start(): Promise<boolean>;
51
+ start(skipComponentStart?: boolean): Promise<void>;
50
52
  /**
51
53
  * Stop the engine core.
52
54
  * @returns Nothing.
@@ -87,6 +89,10 @@ export interface IEngineCore<C extends IEngineCoreConfig = IEngineCoreConfig, S
87
89
  * @returns The state of the engine.
88
90
  */
89
91
  getState(): S;
92
+ /**
93
+ * Set the state to dirty so it gets saved.
94
+ */
95
+ setStateDirty(): void;
90
96
  /**
91
97
  * Get all the registered instances.
92
98
  * @returns The registered instances.
@@ -120,7 +126,8 @@ export interface IEngineCore<C extends IEngineCoreConfig = IEngineCoreConfig, S
120
126
  /**
121
127
  * Populate the engine from the clone data.
122
128
  * @param cloneData The clone data to populate from.
129
+ * @param contextIds The context IDs to use for the clone.
123
130
  * @param silent Should the clone be silent.
124
131
  */
125
- populateClone(cloneData: IEngineCoreClone<C, S>, silent?: boolean): void;
132
+ populateClone(cloneData: IEngineCoreClone<C, S>, contextIds?: IContextIds, silent?: boolean): void;
126
133
  }
@@ -30,5 +30,8 @@ export interface IEngineCoreClone<C extends IEngineCoreConfig = IEngineCoreConfi
30
30
  /**
31
31
  * The context ID keys.
32
32
  */
33
- contextIdKeys: string[];
33
+ contextIdKeys: {
34
+ key: string;
35
+ componentFeatures: string[];
36
+ }[];
34
37
  }
@@ -34,6 +34,6 @@ export interface IEngineCoreContext<C extends IEngineCoreConfig = IEngineCoreCon
34
34
  componentInstances: {
35
35
  instanceType: string;
36
36
  component: IComponent;
37
- started: boolean;
37
+ initialised: boolean;
38
38
  }[];
39
39
  }
@@ -18,9 +18,9 @@ export interface IEngineServer {
18
18
  addSocketRouteGenerator(type: string, module: string, method: string): void;
19
19
  /**
20
20
  * Start the engine server.
21
- * @returns True if the start was successful.
21
+ * @returns Nothing.
22
22
  */
23
- start(): Promise<boolean>;
23
+ start(): Promise<void>;
24
24
  /**
25
25
  * Stop the engine server.
26
26
  * @returns Nothing.
@@ -11,6 +11,10 @@ export type IEngineCoreTypeConfig<T extends IEngineCoreTypeBaseConfig = IEngineC
11
11
  * Whether this is the default instance.
12
12
  */
13
13
  isDefault?: boolean;
14
+ /**
15
+ * Whether this is a multi-instance component.
16
+ */
17
+ isMultiInstance?: boolean;
14
18
  /**
15
19
  * The features supported by this instance.
16
20
  */
@@ -5,21 +5,21 @@ import type { IEngineCoreContext } from "./IEngineCoreContext.js";
5
5
  /**
6
6
  * Method definition for the engine type initialiser.
7
7
  */
8
- export type EngineTypeInitialiser<T extends IEngineCoreTypeBaseConfig = IEngineCoreTypeBaseConfig> = (engineCore: IEngineCore, context: IEngineCoreContext, instanceConfig: T) => Promise<EngineTypeInitialiserReturn>;
8
+ export type EngineTypeInitialiser<T extends IEngineCoreTypeBaseConfig = IEngineCoreTypeBaseConfig, F = Factory<unknown>> = (engineCore: IEngineCore, context: IEngineCoreContext, instanceConfig: T) => EngineTypeInitialiserReturn<T, F>;
9
9
  /**
10
10
  * Engine type initialiser return type.
11
11
  */
12
- export interface EngineTypeInitialiserReturn {
12
+ export interface EngineTypeInitialiserReturn<T extends IEngineCoreTypeBaseConfig = IEngineCoreTypeBaseConfig, F = Factory<unknown>> {
13
13
  /**
14
14
  * The instance type created.
15
15
  */
16
- instanceType?: string;
16
+ instanceTypeName?: string;
17
17
  /**
18
18
  * The factory to store the instance in.
19
19
  */
20
- factory?: Factory<unknown>;
20
+ factory?: F;
21
21
  /**
22
- * The component created.
22
+ * Create a new component.
23
23
  */
24
- component?: IComponent;
24
+ createComponent?: (additionalConfig: T) => IComponent;
25
25
  }
package/docs/changelog.md CHANGED
@@ -1,5 +1,166 @@
1
1
  # @twin.org/engine-models - Changelog
2
2
 
3
+ ## [0.0.3-next.21](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.20...engine-models-v0.0.3-next.21) (2026-02-13)
4
+
5
+
6
+ ### Features
7
+
8
+ * multi instance component support ([#83](https://github.com/twinfoundation/engine/issues/83)) ([6012b50](https://github.com/twinfoundation/engine/commit/6012b50959df5af893f05516d42eea2e0800b31a))
9
+
10
+ ## [0.0.3-next.20](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.19...engine-models-v0.0.3-next.20) (2026-02-06)
11
+
12
+
13
+ ### Miscellaneous Chores
14
+
15
+ * **engine-models:** Synchronize repo versions
16
+
17
+ ## [0.0.3-next.19](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.18...engine-models-v0.0.3-next.19) (2026-02-05)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * pass contextIds to populateClone ([#79](https://github.com/twinfoundation/engine/issues/79)) ([b22f1bb](https://github.com/twinfoundation/engine/commit/b22f1bbf0319069914e316d27de4c2a8623421cf))
23
+
24
+ ## [0.0.3-next.18](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.17...engine-models-v0.0.3-next.18) (2026-02-04)
25
+
26
+
27
+ ### Miscellaneous Chores
28
+
29
+ * **engine-models:** Synchronize repo versions
30
+
31
+ ## [0.0.3-next.17](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.16...engine-models-v0.0.3-next.17) (2026-02-02)
32
+
33
+
34
+ ### Miscellaneous Chores
35
+
36
+ * **engine-models:** Synchronize repo versions
37
+
38
+ ## [0.0.3-next.16](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.15...engine-models-v0.0.3-next.16) (2026-01-28)
39
+
40
+
41
+ ### Miscellaneous Chores
42
+
43
+ * **engine-models:** Synchronize repo versions
44
+
45
+ ## [0.0.3-next.15](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.14...engine-models-v0.0.3-next.15) (2026-01-26)
46
+
47
+
48
+ ### Miscellaneous Chores
49
+
50
+ * **engine-models:** Synchronize repo versions
51
+
52
+ ## [0.0.3-next.14](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.13...engine-models-v0.0.3-next.14) (2026-01-19)
53
+
54
+
55
+ ### Features
56
+
57
+ * add auth admin component ([201cd06](https://github.com/twinfoundation/engine/commit/201cd061be83afccb5a6b06856ffe7cf8db7d6b3))
58
+ * add context id features ([#51](https://github.com/twinfoundation/engine/issues/51)) ([eaef180](https://github.com/twinfoundation/engine/commit/eaef1807397a907bc7655ef1545a151a710ca2f1))
59
+ * add engine type helper for config lookups ([a20a398](https://github.com/twinfoundation/engine/commit/a20a3987016c48351178ab8410bc05b0fba0f2c1))
60
+ * add engine type helper for config lookups ([7d5eeef](https://github.com/twinfoundation/engine/commit/7d5eeefd3e7b9daab1ba20e2fb6b1ebfec178aec))
61
+ * add isPrimary and isClone methods ([a7c63e9](https://github.com/twinfoundation/engine/commit/a7c63e97f54c95b104cc81e66d3fa42c6607bdc1))
62
+ * add mimeTypeProcessors and disableNodeIdentity ([bb7e81e](https://github.com/twinfoundation/engine/commit/bb7e81e2036fe042068a5645ec59b22e20d33aad))
63
+ * add REST options for route construction ([4adf0af](https://github.com/twinfoundation/engine/commit/4adf0af8a03689a4dbdf67e8527d6db0d2c5d59d))
64
+ * add rights management negotiation ([84ef46b](https://github.com/twinfoundation/engine/commit/84ef46bff110611a19512793425c8c873ee2a590))
65
+ * add skipComponentStart flag ([#62](https://github.com/twinfoundation/engine/issues/62)) ([07e90af](https://github.com/twinfoundation/engine/commit/07e90afa4ba1baaa79c0c6f0f45200d781801534))
66
+ * add synchronised storage support ([5142e34](https://github.com/twinfoundation/engine/commit/5142e3488f09195cf9f48a9c6c6d1014231a4c2c))
67
+ * add validate-locales ([b92ea09](https://github.com/twinfoundation/engine/commit/b92ea09dbcfe35225271a51f24d231f59e2d363e))
68
+ * close already started components on startup error ([a55a117](https://github.com/twinfoundation/engine/commit/a55a117a508998288c8ae804e732fc6085cb22fa))
69
+ * context id handlers repopulated after engine clone ([9712e32](https://github.com/twinfoundation/engine/commit/9712e328f4607f5b2c82355c394c61bde0ee39bf))
70
+ * eslint migration to flat config ([6b978da](https://github.com/twinfoundation/engine/commit/6b978daf777a615d7758b63c3df57d5a376f6dfb))
71
+ * improve startup error handling ([#65](https://github.com/twinfoundation/engine/issues/65)) ([5b2d1c5](https://github.com/twinfoundation/engine/commit/5b2d1c539cf5484afa85e294d6d6c18f24ef8274))
72
+ * maintain isDefault flag for registered instances ([2ac5bee](https://github.com/twinfoundation/engine/commit/2ac5bee094bef42b396cc82b0d18bb6aebe27352))
73
+ * remove bootstrapped components, component should manage their own state ([5c7e9e4](https://github.com/twinfoundation/engine/commit/5c7e9e419ef26933e49c9c5a21a20a8961244e7f))
74
+ * remove unused component states ([d56d648](https://github.com/twinfoundation/engine/commit/d56d6486119ea8b8501a33f9e3a3101a08b826ed))
75
+ * simplify config building ([732c871](https://github.com/twinfoundation/engine/commit/732c871c5aca236759168f4bc15aeffd98a330a8))
76
+ * standardised engine logging naming ([0dbf857](https://github.com/twinfoundation/engine/commit/0dbf857587641f86ddf010143519d0e8333489ff))
77
+ * update dependencies ([97c9f64](https://github.com/twinfoundation/engine/commit/97c9f64b6ef096963bcc5de338a2a9e99bdc1a11))
78
+ * update framework core ([acc0f8d](https://github.com/twinfoundation/engine/commit/acc0f8d455a4b8ec47f1da643139fa0f07775fa6))
79
+ * upgrade framework components ([efd52e8](https://github.com/twinfoundation/engine/commit/efd52e80564fff29c3897bfa09b6305b3a322812))
80
+ * use shared store mechanism ([#2](https://github.com/twinfoundation/engine/issues/2)) ([9eed8d7](https://github.com/twinfoundation/engine/commit/9eed8d7766388479b42f03e2542fe761f2156408))
81
+
82
+
83
+ ### Bug Fixes
84
+
85
+ * make sure stop is called even if start is not implemented ([ece2b9d](https://github.com/twinfoundation/engine/commit/ece2b9de5c6dff2b5ccf2a3115c1a7328a330125))
86
+
87
+ ## [0.0.3-next.13](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.12...engine-models-v0.0.3-next.13) (2026-01-19)
88
+
89
+
90
+ ### Miscellaneous Chores
91
+
92
+ * **engine-models:** Synchronize repo versions
93
+
94
+ ## [0.0.3-next.12](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.11...engine-models-v0.0.3-next.12) (2026-01-19)
95
+
96
+
97
+ ### Features
98
+
99
+ * improve startup error handling ([#65](https://github.com/twinfoundation/engine/issues/65)) ([5b2d1c5](https://github.com/twinfoundation/engine/commit/5b2d1c539cf5484afa85e294d6d6c18f24ef8274))
100
+
101
+ ## [0.0.3-next.11](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.10...engine-models-v0.0.3-next.11) (2026-01-16)
102
+
103
+
104
+ ### Miscellaneous Chores
105
+
106
+ * **engine-models:** Synchronize repo versions
107
+
108
+ ## [0.0.3-next.10](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.9...engine-models-v0.0.3-next.10) (2026-01-13)
109
+
110
+
111
+ ### Features
112
+
113
+ * add skipComponentStart flag ([#62](https://github.com/twinfoundation/engine/issues/62)) ([07e90af](https://github.com/twinfoundation/engine/commit/07e90afa4ba1baaa79c0c6f0f45200d781801534))
114
+
115
+ ## [0.0.3-next.9](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.8...engine-models-v0.0.3-next.9) (2026-01-07)
116
+
117
+
118
+ ### Miscellaneous Chores
119
+
120
+ * **engine-models:** Synchronize repo versions
121
+
122
+ ## [0.0.3-next.8](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.7...engine-models-v0.0.3-next.8) (2026-01-06)
123
+
124
+
125
+ ### Miscellaneous Chores
126
+
127
+ * **engine-models:** Synchronize repo versions
128
+
129
+ ## [0.0.3-next.7](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.6...engine-models-v0.0.3-next.7) (2025-12-04)
130
+
131
+
132
+ ### Miscellaneous Chores
133
+
134
+ * **engine-models:** Synchronize repo versions
135
+
136
+ ## [0.0.3-next.6](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.5...engine-models-v0.0.3-next.6) (2025-11-28)
137
+
138
+
139
+ ### Miscellaneous Chores
140
+
141
+ * **engine-models:** Synchronize repo versions
142
+
143
+ ## [0.0.3-next.5](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.4...engine-models-v0.0.3-next.5) (2025-11-20)
144
+
145
+
146
+ ### Miscellaneous Chores
147
+
148
+ * **engine-models:** Synchronize repo versions
149
+
150
+ ## [0.0.3-next.4](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.3...engine-models-v0.0.3-next.4) (2025-11-20)
151
+
152
+
153
+ ### Features
154
+
155
+ * context id handlers repopulated after engine clone ([9712e32](https://github.com/twinfoundation/engine/commit/9712e328f4607f5b2c82355c394c61bde0ee39bf))
156
+
157
+ ## [0.0.3-next.3](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.2...engine-models-v0.0.3-next.3) (2025-11-14)
158
+
159
+
160
+ ### Bug Fixes
161
+
162
+ * make sure stop is called even if start is not implemented ([ece2b9d](https://github.com/twinfoundation/engine/commit/ece2b9de5c6dff2b5ccf2a3115c1a7328a330125))
163
+
3
164
  ## [0.0.3-next.2](https://github.com/twinfoundation/engine/compare/engine-models-v0.0.3-next.1...engine-models-v0.0.3-next.2) (2025-11-13)
4
165
 
5
166
 
@@ -1,12 +1,22 @@
1
- # Interface: EngineTypeInitialiserReturn
1
+ # Interface: EngineTypeInitialiserReturn\<T, F\>
2
2
 
3
3
  Engine type initialiser return type.
4
4
 
5
+ ## Type Parameters
6
+
7
+ ### T
8
+
9
+ `T` *extends* [`IEngineCoreTypeBaseConfig`](IEngineCoreTypeBaseConfig.md) = [`IEngineCoreTypeBaseConfig`](IEngineCoreTypeBaseConfig.md)
10
+
11
+ ### F
12
+
13
+ `F` = `Factory`\<`unknown`\>
14
+
5
15
  ## Properties
6
16
 
7
- ### instanceType?
17
+ ### instanceTypeName?
8
18
 
9
- > `optional` **instanceType**: `string`
19
+ > `optional` **instanceTypeName**: `string`
10
20
 
11
21
  The instance type created.
12
22
 
@@ -14,14 +24,24 @@ The instance type created.
14
24
 
15
25
  ### factory?
16
26
 
17
- > `optional` **factory**: `Factory`\<`unknown`\>
27
+ > `optional` **factory**: `F`
18
28
 
19
29
  The factory to store the instance in.
20
30
 
21
31
  ***
22
32
 
23
- ### component?
33
+ ### createComponent()?
34
+
35
+ > `optional` **createComponent**: (`additionalConfig`) => `IComponent`
36
+
37
+ Create a new component.
38
+
39
+ #### Parameters
40
+
41
+ ##### additionalConfig
42
+
43
+ `T`
24
44
 
25
- > `optional` **component**: `IComponent`
45
+ #### Returns
26
46
 
27
- The component created.
47
+ `IComponent`
@@ -70,7 +70,7 @@ The type config or undefined if not found.
70
70
 
71
71
  ### addContextIdKey()
72
72
 
73
- > **addContextIdKey**(`key`): `void`
73
+ > **addContextIdKey**(`key`, `componentFeatures`): `void`
74
74
 
75
75
  Add a context ID key to the engine.
76
76
 
@@ -82,6 +82,12 @@ Add a context ID key to the engine.
82
82
 
83
83
  The context ID key.
84
84
 
85
+ ##### componentFeatures
86
+
87
+ `string`[]
88
+
89
+ The component features for the context ID handler.
90
+
85
91
  #### Returns
86
92
 
87
93
  `void`
@@ -144,15 +150,23 @@ The context IDs or undefined if none are set.
144
150
 
145
151
  ### start()
146
152
 
147
- > **start**(): `Promise`\<`boolean`\>
153
+ > **start**(`skipComponentStart?`): `Promise`\<`void`\>
148
154
 
149
155
  Start the engine core.
150
156
 
157
+ #### Parameters
158
+
159
+ ##### skipComponentStart?
160
+
161
+ `boolean`
162
+
163
+ Should the component start be skipped.
164
+
151
165
  #### Returns
152
166
 
153
- `Promise`\<`boolean`\>
167
+ `Promise`\<`void`\>
154
168
 
155
- True if the start was successful.
169
+ Nothing.
156
170
 
157
171
  ***
158
172
 
@@ -280,6 +294,18 @@ The state of the engine.
280
294
 
281
295
  ***
282
296
 
297
+ ### setStateDirty()
298
+
299
+ > **setStateDirty**(): `void`
300
+
301
+ Set the state to dirty so it gets saved.
302
+
303
+ #### Returns
304
+
305
+ `void`
306
+
307
+ ***
308
+
283
309
  ### getRegisteredInstances()
284
310
 
285
311
  > **getRegisteredInstances**(): `object`
@@ -370,7 +396,7 @@ The clone data.
370
396
 
371
397
  ### populateClone()
372
398
 
373
- > **populateClone**(`cloneData`, `silent?`): `void`
399
+ > **populateClone**(`cloneData`, `contextIds?`, `silent?`): `void`
374
400
 
375
401
  Populate the engine from the clone data.
376
402
 
@@ -382,6 +408,12 @@ Populate the engine from the clone data.
382
408
 
383
409
  The clone data to populate from.
384
410
 
411
+ ##### contextIds?
412
+
413
+ `IContextIds`
414
+
415
+ The context IDs to use for the clone.
416
+
385
417
  ##### silent?
386
418
 
387
419
  `boolean`
@@ -64,6 +64,14 @@ The entity schemas for the engine.
64
64
 
65
65
  ### contextIdKeys
66
66
 
67
- > **contextIdKeys**: `string`[]
67
+ > **contextIdKeys**: `object`[]
68
68
 
69
69
  The context ID keys.
70
+
71
+ #### key
72
+
73
+ > **key**: `string`
74
+
75
+ #### componentFeatures
76
+
77
+ > **componentFeatures**: `string`[]
@@ -65,6 +65,6 @@ The components.
65
65
 
66
66
  > **component**: `IComponent`
67
67
 
68
- #### started
68
+ #### initialised
69
69
 
70
- > **started**: `boolean`
70
+ > **initialised**: `boolean`
@@ -70,15 +70,15 @@ The method to call on the module.
70
70
 
71
71
  ### start()
72
72
 
73
- > **start**(): `Promise`\<`boolean`\>
73
+ > **start**(): `Promise`\<`void`\>
74
74
 
75
75
  Start the engine server.
76
76
 
77
77
  #### Returns
78
78
 
79
- `Promise`\<`boolean`\>
79
+ `Promise`\<`void`\>
80
80
 
81
- True if the start was successful.
81
+ Nothing.
82
82
 
83
83
  ***
84
84
 
@@ -1,6 +1,6 @@
1
- # Type Alias: EngineTypeInitialiser()\<T\>
1
+ # Type Alias: EngineTypeInitialiser()\<T, F\>
2
2
 
3
- > **EngineTypeInitialiser**\<`T`\> = (`engineCore`, `context`, `instanceConfig`) => `Promise`\<[`EngineTypeInitialiserReturn`](../interfaces/EngineTypeInitialiserReturn.md)\>
3
+ > **EngineTypeInitialiser**\<`T`, `F`\> = (`engineCore`, `context`, `instanceConfig`) => [`EngineTypeInitialiserReturn`](../interfaces/EngineTypeInitialiserReturn.md)\<`T`, `F`\>
4
4
 
5
5
  Method definition for the engine type initialiser.
6
6
 
@@ -10,6 +10,10 @@ Method definition for the engine type initialiser.
10
10
 
11
11
  `T` *extends* [`IEngineCoreTypeBaseConfig`](../interfaces/IEngineCoreTypeBaseConfig.md) = [`IEngineCoreTypeBaseConfig`](../interfaces/IEngineCoreTypeBaseConfig.md)
12
12
 
13
+ ### F
14
+
15
+ `F` = `Factory`\<`unknown`\>
16
+
13
17
  ## Parameters
14
18
 
15
19
  ### engineCore
@@ -26,4 +30,4 @@ Method definition for the engine type initialiser.
26
30
 
27
31
  ## Returns
28
32
 
29
- `Promise`\<[`EngineTypeInitialiserReturn`](../interfaces/EngineTypeInitialiserReturn.md)\>
33
+ [`EngineTypeInitialiserReturn`](../interfaces/EngineTypeInitialiserReturn.md)\<`T`, `F`\>
@@ -18,6 +18,12 @@ The instance type to override with.
18
18
 
19
19
  Whether this is the default instance.
20
20
 
21
+ ### isMultiInstance?
22
+
23
+ > `optional` **isMultiInstance**: `boolean`
24
+
25
+ Whether this is a multi-instance component.
26
+
21
27
  ### features?
22
28
 
23
29
  > `optional` **features**: `string`[]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/engine-models",
3
- "version": "0.0.3-next.2",
3
+ "version": "0.0.3-next.21",
4
4
  "description": "Models which define the structure of the engine.",
5
5
  "repository": {
6
6
  "type": "git",