vrack2-core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/.eslintrc.js +6 -0
  2. package/LICENSE +177 -0
  3. package/README.md +6 -0
  4. package/docs/RU-README.md +6 -0
  5. package/lib/Container.d.ts +30 -0
  6. package/lib/Container.js +236 -0
  7. package/lib/DeviceManager.d.ts +32 -0
  8. package/lib/DeviceManager.js +143 -0
  9. package/lib/IServiceStructure.d.ts +5 -0
  10. package/lib/IServiceStructure.js +2 -0
  11. package/lib/IStructureDevice.d.ts +7 -0
  12. package/lib/IStructureDevice.js +2 -0
  13. package/lib/ImportManager.d.ts +15 -0
  14. package/lib/ImportManager.js +145 -0
  15. package/lib/MainProcess.d.ts +9 -0
  16. package/lib/MainProcess.js +28 -0
  17. package/lib/Utility.d.ts +21 -0
  18. package/lib/Utility.js +48 -0
  19. package/lib/actions/Action.d.ts +4 -0
  20. package/lib/actions/Action.js +16 -0
  21. package/lib/actions/BasicAction.d.ts +15 -0
  22. package/lib/actions/BasicAction.js +44 -0
  23. package/lib/actions/GlobalAction.d.ts +4 -0
  24. package/lib/actions/GlobalAction.js +17 -0
  25. package/lib/actions/IAction.d.ts +11 -0
  26. package/lib/actions/IAction.js +2 -0
  27. package/lib/actions/ILocalAction.d.ts +11 -0
  28. package/lib/actions/ILocalAction.js +2 -0
  29. package/lib/errors/CoreError.d.ts +53 -0
  30. package/lib/errors/CoreError.js +81 -0
  31. package/lib/errors/ErrorManager.d.ts +47 -0
  32. package/lib/errors/ErrorManager.js +84 -0
  33. package/lib/index.d.ts +19 -0
  34. package/lib/index.js +55 -0
  35. package/lib/ports/BasicPort.d.ts +11 -0
  36. package/lib/ports/BasicPort.js +49 -0
  37. package/lib/ports/ILocalPort.d.ts +10 -0
  38. package/lib/ports/ILocalPort.js +2 -0
  39. package/lib/ports/IPort.d.ts +10 -0
  40. package/lib/ports/IPort.js +2 -0
  41. package/lib/ports/Port.d.ts +6 -0
  42. package/lib/ports/Port.js +20 -0
  43. package/lib/ports/ReturnPort.d.ts +6 -0
  44. package/lib/ports/ReturnPort.js +21 -0
  45. package/lib/ports/StandartPort.d.ts +4 -0
  46. package/lib/ports/StandartPort.js +17 -0
  47. package/lib/service/Device.d.ts +175 -0
  48. package/lib/service/Device.js +191 -0
  49. package/lib/service/DeviceConnect.d.ts +21 -0
  50. package/lib/service/DeviceConnect.js +32 -0
  51. package/lib/service/DevicePort.d.ts +24 -0
  52. package/lib/service/DevicePort.js +41 -0
  53. package/lib/service/IDeviceEvent.d.ts +5 -0
  54. package/lib/service/IDeviceEvent.js +2 -0
  55. package/lib/test.d.ts +1 -0
  56. package/lib/test.js +58 -0
  57. package/lib/validator/IValidationProblem.d.ts +8 -0
  58. package/lib/validator/IValidationProblem.js +2 -0
  59. package/lib/validator/IValidationRule.d.ts +9 -0
  60. package/lib/validator/IValidationRule.js +2 -0
  61. package/lib/validator/IValidationSubrule.d.ts +4 -0
  62. package/lib/validator/IValidationSubrule.js +2 -0
  63. package/lib/validator/Rule.d.ts +12 -0
  64. package/lib/validator/Rule.js +30 -0
  65. package/lib/validator/Validator.d.ts +14 -0
  66. package/lib/validator/Validator.js +57 -0
  67. package/lib/validator/types/ArrayType.d.ts +14 -0
  68. package/lib/validator/types/ArrayType.js +58 -0
  69. package/lib/validator/types/BasicType.d.ts +18 -0
  70. package/lib/validator/types/BasicType.js +54 -0
  71. package/lib/validator/types/NumberType.d.ts +19 -0
  72. package/lib/validator/types/NumberType.js +66 -0
  73. package/lib/validator/types/ObjectType.d.ts +18 -0
  74. package/lib/validator/types/ObjectType.js +51 -0
  75. package/lib/validator/types/StringType.d.ts +19 -0
  76. package/lib/validator/types/StringType.js +63 -0
  77. package/package.json +26 -0
  78. package/src/Container.ts +237 -0
  79. package/src/DeviceManager.ts +124 -0
  80. package/src/IServiceStructure.ts +6 -0
  81. package/src/IStructureDevice.ts +5 -0
  82. package/src/ImportManager.ts +112 -0
  83. package/src/MainProcess.ts +18 -0
  84. package/src/Utility.ts +44 -0
  85. package/src/actions/Action.ts +12 -0
  86. package/src/actions/BasicAction.ts +54 -0
  87. package/src/actions/GlobalAction.ts +14 -0
  88. package/src/actions/IAction.ts +8 -0
  89. package/src/actions/ILocalAction.ts +8 -0
  90. package/src/errors/CoreError.ts +87 -0
  91. package/src/errors/ErrorManager.ts +93 -0
  92. package/src/index.ts +30 -0
  93. package/src/ports/BasicPort.ts +53 -0
  94. package/src/ports/ILocalPort.ts +12 -0
  95. package/src/ports/IPort.ts +12 -0
  96. package/src/ports/Port.ts +17 -0
  97. package/src/ports/ReturnPort.ts +19 -0
  98. package/src/ports/StandartPort.ts +13 -0
  99. package/src/service/Device.ts +225 -0
  100. package/src/service/DeviceConnect.ts +36 -0
  101. package/src/service/DevicePort.ts +46 -0
  102. package/src/service/IDeviceEvent.ts +5 -0
  103. package/src/test.ts +82 -0
  104. package/src/validator/IValidationProblem.ts +9 -0
  105. package/src/validator/IValidationRule.ts +10 -0
  106. package/src/validator/IValidationSubrule.ts +5 -0
  107. package/src/validator/Rule.ts +30 -0
  108. package/src/validator/Validator.ts +67 -0
  109. package/src/validator/types/ArrayType.ts +67 -0
  110. package/src/validator/types/BasicType.ts +61 -0
  111. package/src/validator/types/NumberType.ts +86 -0
  112. package/src/validator/types/ObjectType.ts +58 -0
  113. package/src/validator/types/StringType.ts +79 -0
  114. package/tsconfig.json +103 -0
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright © 2022 Boris Bobylev. All rights reserved.
4
+ * Licensed under the Apache License, Version 2.0
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const CoreError_1 = __importDefault(require("./CoreError"));
11
+ /**
12
+ * Класс является точкой входа для инициализации исключений
13
+ *
14
+ * Было принято решение вместо кучи мелких однотипных файлов сделать один класс
15
+ * со стандартным функционалом
16
+ */
17
+ class ErrorManager {
18
+ constructor() {
19
+ this.registeredList = [];
20
+ }
21
+ /**
22
+ * Регистрирует тип ошибки компонента
23
+ *
24
+ * Перед тем как менеджер ошибок может создать ошибки, необходимо зарегистрировать ее тип.
25
+ *
26
+ * @param {string} name Название компонента
27
+ * @param {string} code Код ошибки
28
+ * @param {string} short Короткий код ошибки
29
+ * @param {string} description Описание ошибки
30
+ *
31
+ */
32
+ register(name, code, short, description, rules = {}) {
33
+ const reg1 = this.getRegistered(code);
34
+ const reg2 = this.getRegistered(short);
35
+ if (reg1 !== null || reg2 !== null)
36
+ throw this.make('EM_CODE_EXISTS', { code, short });
37
+ const nr = { name, code, short, description, rules };
38
+ this.registeredList.push(nr);
39
+ }
40
+ /**
41
+ * Создание ошибки
42
+ *
43
+ *
44
+ *
45
+ * @param {string} short
46
+ */
47
+ make(short, additional = {}) {
48
+ const reg = this.getRegistered(short);
49
+ if (reg === null)
50
+ throw this.make('EM_CODE_NOT_FOUND');
51
+ const ne = new CoreError_1.default(reg.name, reg.description, reg.code, reg.short);
52
+ ne.vAdd = Object.keys(additional);
53
+ return Object.assign(ne, additional);
54
+ }
55
+ /**
56
+ * Преобразует обычную ошибку в ошибку VRack
57
+ *
58
+ * @param {Error} error Ошибка для преобразования
59
+ */
60
+ convert(error) {
61
+ if (error.vError)
62
+ return error;
63
+ const ne = this.make('EM_ERROR_CONVERT');
64
+ ne.import(error);
65
+ return ne;
66
+ }
67
+ /**
68
+ * Возвращает тип ошибки или null
69
+ *
70
+ * @param {string} short Короткий код ошибки или код ошибки поиска
71
+ */
72
+ getRegistered(short) {
73
+ for (const registered of this.registeredList) {
74
+ if (registered.code === short || registered.short === short)
75
+ return registered;
76
+ }
77
+ return null;
78
+ }
79
+ }
80
+ const GlobalErrorManager = new ErrorManager();
81
+ GlobalErrorManager.register('ErrorManager', 'NcZIb9QvQRcq', 'EM_CODE_EXISTS', 'This code already exists');
82
+ GlobalErrorManager.register('ErrorManager', 'uLYv4mE1Yo50', 'EM_CODE_NOT_FOUND', 'No such error found');
83
+ GlobalErrorManager.register('ErrorManager', 'RIl3BUrxWOzP', 'EM_ERROR_CONVERT', 'Converted error');
84
+ exports.default = GlobalErrorManager;
package/lib/index.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ export { default as ErrorManager } from './errors/ErrorManager';
2
+ export { default as CoreError } from './errors/CoreError';
3
+ export { default as Rule } from './validator/Rule';
4
+ export { default as Validator } from './validator/Validator';
5
+ export { default as IValidationProblem } from './validator/IValidationProblem';
6
+ export { default as IValidationRule } from './validator/IValidationRule';
7
+ export { default as IValidationSubrule } from './validator/IValidationSubrule';
8
+ export { default as ImportManager } from './ImportManager';
9
+ export { default as DeviceManager } from './DeviceManager';
10
+ export { default as Container } from './Container';
11
+ export { default as MainProcess } from './MainProcess';
12
+ export { default as Action } from './actions/Action';
13
+ export { default as Device } from './service/Device';
14
+ export { default as DeviceConnect } from './service/DeviceConnect';
15
+ export { default as DevicePort } from './service/DevicePort';
16
+ export { default as Port } from './ports/Port';
17
+ export * from './service/Device';
18
+ export * from './service/DeviceConnect';
19
+ export * from './service/DevicePort';
package/lib/index.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright © 2022 Boris Bobylev. All rights reserved.
4
+ * Licensed under the Apache License, Version 2.0
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.Port = exports.DevicePort = exports.DeviceConnect = exports.Device = exports.Action = exports.MainProcess = exports.Container = exports.DeviceManager = exports.ImportManager = exports.Validator = exports.Rule = exports.CoreError = exports.ErrorManager = void 0;
25
+ /* ---------------- VALIDATOR EXPORT ------------------- */
26
+ var ErrorManager_1 = require("./errors/ErrorManager");
27
+ Object.defineProperty(exports, "ErrorManager", { enumerable: true, get: function () { return __importDefault(ErrorManager_1).default; } });
28
+ var CoreError_1 = require("./errors/CoreError");
29
+ Object.defineProperty(exports, "CoreError", { enumerable: true, get: function () { return __importDefault(CoreError_1).default; } });
30
+ var Rule_1 = require("./validator/Rule");
31
+ Object.defineProperty(exports, "Rule", { enumerable: true, get: function () { return __importDefault(Rule_1).default; } });
32
+ var Validator_1 = require("./validator/Validator");
33
+ Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return __importDefault(Validator_1).default; } });
34
+ /* ---------------- BASE OF VRACK ------------------- */
35
+ var ImportManager_1 = require("./ImportManager");
36
+ Object.defineProperty(exports, "ImportManager", { enumerable: true, get: function () { return __importDefault(ImportManager_1).default; } });
37
+ var DeviceManager_1 = require("./DeviceManager");
38
+ Object.defineProperty(exports, "DeviceManager", { enumerable: true, get: function () { return __importDefault(DeviceManager_1).default; } });
39
+ var Container_1 = require("./Container");
40
+ Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return __importDefault(Container_1).default; } });
41
+ var MainProcess_1 = require("./MainProcess");
42
+ Object.defineProperty(exports, "MainProcess", { enumerable: true, get: function () { return __importDefault(MainProcess_1).default; } });
43
+ var Action_1 = require("./actions/Action");
44
+ Object.defineProperty(exports, "Action", { enumerable: true, get: function () { return __importDefault(Action_1).default; } });
45
+ var Device_1 = require("./service/Device");
46
+ Object.defineProperty(exports, "Device", { enumerable: true, get: function () { return __importDefault(Device_1).default; } });
47
+ var DeviceConnect_1 = require("./service/DeviceConnect");
48
+ Object.defineProperty(exports, "DeviceConnect", { enumerable: true, get: function () { return __importDefault(DeviceConnect_1).default; } });
49
+ var DevicePort_1 = require("./service/DevicePort");
50
+ Object.defineProperty(exports, "DevicePort", { enumerable: true, get: function () { return __importDefault(DevicePort_1).default; } });
51
+ var Port_1 = require("./ports/Port");
52
+ Object.defineProperty(exports, "Port", { enumerable: true, get: function () { return __importDefault(Port_1).default; } });
53
+ __exportStar(require("./service/Device"), exports);
54
+ __exportStar(require("./service/DeviceConnect"), exports);
55
+ __exportStar(require("./service/DevicePort"), exports);
@@ -0,0 +1,11 @@
1
+ import BasicType from "../validator/types/BasicType";
2
+ import ILocalPort from "./ILocalPort";
3
+ import IPort from "./IPort";
4
+ export default class BasicPort {
5
+ protected port: ILocalPort;
6
+ constructor();
7
+ dynamic(count: number): this;
8
+ requirement(req: BasicType): this;
9
+ description(des: string): this;
10
+ export(): IPort;
11
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright © 2022 Boris Bobylev. All rights reserved.
4
+ * Licensed under the Apache License, Version 2.0
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const BasicType_1 = __importDefault(require("../validator/types/BasicType"));
11
+ class BasicPort {
12
+ constructor() {
13
+ this.port = {
14
+ type: 'unknown',
15
+ description: '',
16
+ required: false,
17
+ dynamic: false,
18
+ count: 0
19
+ };
20
+ }
21
+ dynamic(count) {
22
+ this.port.count = count;
23
+ this.port.dynamic = true;
24
+ return this;
25
+ }
26
+ requirement(req) {
27
+ this.port.requirement = req;
28
+ return this;
29
+ }
30
+ description(des) {
31
+ this.port.description = des;
32
+ return this;
33
+ }
34
+ export() {
35
+ const nPort = {
36
+ type: this.port.type,
37
+ description: this.port.description,
38
+ required: this.port.required,
39
+ dynamic: this.port.dynamic,
40
+ count: this.port.count
41
+ };
42
+ if (this.port.requirement instanceof BasicType_1.default)
43
+ nPort.requirement = this.port.requirement.export();
44
+ if (this.port.return instanceof BasicType_1.default)
45
+ nPort.return = this.port.return.export();
46
+ return nPort;
47
+ }
48
+ }
49
+ exports.default = BasicPort;
@@ -0,0 +1,10 @@
1
+ import BasicType from "../validator/types/BasicType";
2
+ export default interface ILocalPort {
3
+ type: string;
4
+ requirement?: BasicType;
5
+ return?: BasicType;
6
+ description: string;
7
+ required: boolean;
8
+ dynamic: boolean;
9
+ count: number;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import IValidationRule from "../validator/IValidationRule";
2
+ export default interface IPort {
3
+ type: string;
4
+ requirement?: IValidationRule;
5
+ return?: IValidationRule;
6
+ description: string;
7
+ required: boolean;
8
+ dynamic: boolean;
9
+ count: number;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import ReturnPort from "./ReturnPort";
2
+ import StandartPort from "./StandartPort";
3
+ export default class Port {
4
+ static standart(): StandartPort;
5
+ static return(): ReturnPort;
6
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright © 2022 Boris Bobylev. All rights reserved.
4
+ * Licensed under the Apache License, Version 2.0
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const ReturnPort_1 = __importDefault(require("./ReturnPort"));
11
+ const StandartPort_1 = __importDefault(require("./StandartPort"));
12
+ class Port {
13
+ static standart() {
14
+ return new StandartPort_1.default();
15
+ }
16
+ static return() {
17
+ return new ReturnPort_1.default();
18
+ }
19
+ }
20
+ exports.default = Port;
@@ -0,0 +1,6 @@
1
+ import BasicType from "../validator/types/BasicType";
2
+ import BasicPort from "./BasicPort";
3
+ export default class ReturnPort extends BasicPort {
4
+ constructor();
5
+ return(req: BasicType): this;
6
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright © 2022 Boris Bobylev. All rights reserved.
4
+ * Licensed under the Apache License, Version 2.0
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const BasicPort_1 = __importDefault(require("./BasicPort"));
11
+ class ReturnPort extends BasicPort_1.default {
12
+ constructor() {
13
+ super();
14
+ this.port.type = 'return';
15
+ }
16
+ return(req) {
17
+ this.port.return = req;
18
+ return this;
19
+ }
20
+ }
21
+ exports.default = ReturnPort;
@@ -0,0 +1,4 @@
1
+ import BasicPort from "./BasicPort";
2
+ export default class StandartPort extends BasicPort {
3
+ constructor();
4
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright © 2022 Boris Bobylev. All rights reserved.
4
+ * Licensed under the Apache License, Version 2.0
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const BasicPort_1 = __importDefault(require("./BasicPort"));
11
+ class StandartPort extends BasicPort_1.default {
12
+ constructor() {
13
+ super();
14
+ this.port.type = 'standart';
15
+ }
16
+ }
17
+ exports.default = StandartPort;
@@ -0,0 +1,175 @@
1
+ import BasicType from "../validator/types/BasicType";
2
+ import Container from '../Container';
3
+ import BasicAction from "../actions/BasicAction";
4
+ import BasicPort from "../ports/BasicPort";
5
+ import DevicePort from "./DevicePort";
6
+ /**
7
+ * Интерфейс списка исходящих портов устройства
8
+ // */
9
+ export declare enum EDeviceMessageTypes {
10
+ terminal = "terminal",
11
+ info = "info",
12
+ error = "error",
13
+ event = "event",
14
+ action = "action",
15
+ alert = "alert"
16
+ }
17
+ interface IDevicePorts {
18
+ input: {
19
+ [key: string]: DevicePort;
20
+ };
21
+ output: {
22
+ [key: string]: DevicePort;
23
+ };
24
+ }
25
+ export default class Device {
26
+ /** Идентификатор устройства */
27
+ id: string;
28
+ type: string;
29
+ ports: IDevicePorts;
30
+ /** Экземпляр класса виртуальной стойки */
31
+ Container: Container;
32
+ /** Входящие (назначаемые сверху) параметры устройства */
33
+ options: {
34
+ [key: string]: any;
35
+ };
36
+ constructor(id: string, type: string, Container: Container);
37
+ /**
38
+ * Short device description
39
+ *
40
+ * @return {string} Device description
41
+ * */
42
+ description(): string;
43
+ /**
44
+ * Shares данные устройства (обновляемые данные)
45
+ * используется с методом `this.render`
46
+ *
47
+ * @see render()
48
+ * */
49
+ shares: any;
50
+ /**
51
+ *
52
+ */
53
+ storage: any;
54
+ /** Список Action-методов устройства */
55
+ actions(): {
56
+ [key: string]: BasicAction;
57
+ };
58
+ /**
59
+ * Определение списка параметров устройства
60
+ *
61
+ * @returns {Array<Rule>}
62
+ * */
63
+ checkOptions(): {
64
+ [key: string]: BasicType;
65
+ };
66
+ /**
67
+ * Prepare options
68
+ *
69
+ * this method call before validating options
70
+ */
71
+ prepareOptions(): void;
72
+ inputs(): {
73
+ [key: string]: BasicPort;
74
+ };
75
+ outputs(): {
76
+ [key: string]: BasicPort;
77
+ };
78
+ /**
79
+ * Метод является входной точкой для начала инициализации устройства
80
+ *
81
+ * Устройство пройдет только следующие этапы создания устройства:
82
+ *
83
+ * - Создания класса
84
+ * - Назначение праметров устройства
85
+ *
86
+ * Необходимо использовать для назначения функций вызова динамических портов
87
+ * устройства.
88
+ */
89
+ preProcess(): void;
90
+ /**
91
+ * Метод является входной точкой для начала работы устройства
92
+ *
93
+ * Устройство пройдет следующие этапы создания устройства:
94
+ *
95
+ * - Создания класса
96
+ * - Назначение праметров устройства
97
+ * - Создание портов
98
+ * - Назначение функций вызова
99
+ * - Создание соединений между устройствами
100
+ * - Линковка Shares устройства
101
+ *
102
+ * Необходимо использовать для осуществления начала основной работы устройства
103
+ * например, инициализация подключений, создание таймеров и тп.
104
+ */
105
+ process(): void;
106
+ /**
107
+ * По аналогии с `process` но асинхронный, загрузчик будет ждать выполнения всех
108
+ * методов `processPromise` всех устройств.
109
+ *
110
+ * Используется, когда есть необходимость перед запуском стойки выполнить
111
+ * и дождаться выполнения асинхронного кода (инициализация некоторых файловых баз данных и тп)
112
+ */
113
+ processPromise(): Promise<void>;
114
+ stop(): void;
115
+ stopPromise(): Promise<void>;
116
+ /**
117
+ * Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
118
+ * к постановке в очередь устройства на обновление данных `Shares`
119
+ */
120
+ render(): boolean;
121
+ /**
122
+ * Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
123
+ * к сохранение в локальное файловое хранилище данных `Storage`
124
+ */
125
+ save(): boolean;
126
+ /**
127
+ * Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
128
+ * к отправке сообщению об ошибке
129
+ *
130
+ * @param {string} data Сообщение об ошибке
131
+ * @param {any} trace Непосредственно объект ошибки, или объект который поможет разобратся в случившейся ситуации
132
+ */
133
+ error(data: string, trace: any): boolean;
134
+ /**
135
+ * Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
136
+ * к отправке информационного сообщения
137
+ *
138
+ * @param {string} data Сообщение об ошибке
139
+ * @param {any} trace Дополнительная информация
140
+ */
141
+ notify(data: string, trace: any): boolean;
142
+ /**
143
+ * Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
144
+ * к отправке оповещения
145
+ *
146
+ * @param {string} data Сообщение об ошибке
147
+ * @param {any} trace Дополнительная информация
148
+ */
149
+ alert(data: string, trace: any): boolean;
150
+ /**
151
+ * Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
152
+ * к отправке отладочной информации
153
+ *
154
+ * @param {string} data Сообщение об ошибке
155
+ * @param {any} trace Дополнительная информация
156
+ */
157
+ terminal(data: string, trace: any): boolean;
158
+ /**
159
+ * Метод заменяется загрузчиком стойки, после чего, вызов этого метода приводит
160
+ * к отправке сообщения о событии
161
+ *
162
+ * @param {string} data Сообщение об ошибке
163
+ * @param {any} trace Дополнительная информация
164
+ */
165
+ protected event(type: string, data: string, trace: any): boolean;
166
+ /**
167
+ * Сообщает стойке, о том, что устройство не может дальше работать
168
+ * и произошла критическая ошибка
169
+ *
170
+ * Требует создание ошибки устройства DeviceError
171
+ *
172
+ */
173
+ terminate(error: Error, action: string): boolean;
174
+ }
175
+ export {};