@intuitionrobotics/ts-common 0.47.58 → 1.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 (199) hide show
  1. package/LICENSE +3 -0
  2. package/README.md +3 -0
  3. package/{consts → dist/consts}/consts.d.ts +1 -0
  4. package/dist/consts/consts.d.ts.map +1 -0
  5. package/{consts → dist/consts}/consts.js +1 -4
  6. package/dist/consts/consts.js.map +1 -0
  7. package/{core → dist/core}/application.d.ts +2 -1
  8. package/dist/core/application.d.ts.map +1 -0
  9. package/{core → dist/core}/application.js +10 -12
  10. package/dist/core/application.js.map +1 -0
  11. package/{core → dist/core}/debug-flags.d.ts +1 -0
  12. package/dist/core/debug-flags.d.ts.map +1 -0
  13. package/{core → dist/core}/debug-flags.js +10 -14
  14. package/dist/core/debug-flags.js.map +1 -0
  15. package/{core → dist/core}/dispatcher.d.ts +2 -1
  16. package/dist/core/dispatcher.d.ts.map +1 -0
  17. package/dist/core/dispatcher.js +21 -0
  18. package/dist/core/dispatcher.js.map +1 -0
  19. package/{core → dist/core}/error-handling.d.ts +2 -1
  20. package/dist/core/error-handling.d.ts.map +1 -0
  21. package/dist/core/error-handling.js +18 -0
  22. package/dist/core/error-handling.js.map +1 -0
  23. package/{core → dist/core}/exceptions.d.ts +8 -3
  24. package/dist/core/exceptions.d.ts.map +1 -0
  25. package/{core → dist/core}/exceptions.js +16 -25
  26. package/dist/core/exceptions.js.map +1 -0
  27. package/{core → dist/core}/logger/BeLogged.d.ts +3 -2
  28. package/dist/core/logger/BeLogged.d.ts.map +1 -0
  29. package/{core → dist/core}/logger/BeLogged.js +7 -10
  30. package/dist/core/logger/BeLogged.js.map +1 -0
  31. package/{core → dist/core}/logger/LogClient.d.ts +2 -1
  32. package/dist/core/logger/LogClient.d.ts.map +1 -0
  33. package/{core → dist/core}/logger/LogClient.js +15 -23
  34. package/dist/core/logger/LogClient.js.map +1 -0
  35. package/{core → dist/core}/logger/LogClient_BaseRotate.d.ts +3 -2
  36. package/dist/core/logger/LogClient_BaseRotate.d.ts.map +1 -0
  37. package/{core → dist/core}/logger/LogClient_BaseRotate.js +11 -11
  38. package/dist/core/logger/LogClient_BaseRotate.js.map +1 -0
  39. package/{core → dist/core}/logger/LogClient_Browser.d.ts +4 -3
  40. package/dist/core/logger/LogClient_Browser.d.ts.map +1 -0
  41. package/{core → dist/core}/logger/LogClient_Browser.js +10 -13
  42. package/dist/core/logger/LogClient_Browser.js.map +1 -0
  43. package/{core → dist/core}/logger/LogClient_Function.d.ts +3 -2
  44. package/dist/core/logger/LogClient_Function.d.ts.map +1 -0
  45. package/{core → dist/core}/logger/LogClient_Function.js +7 -9
  46. package/dist/core/logger/LogClient_Function.js.map +1 -0
  47. package/{core → dist/core}/logger/LogClient_MemBuffer.d.ts +2 -1
  48. package/dist/core/logger/LogClient_MemBuffer.d.ts.map +1 -0
  49. package/dist/core/logger/LogClient_MemBuffer.js +19 -0
  50. package/dist/core/logger/LogClient_MemBuffer.js.map +1 -0
  51. package/{core → dist/core}/logger/LogClient_Terminal.d.ts +3 -2
  52. package/dist/core/logger/LogClient_Terminal.d.ts.map +1 -0
  53. package/{core → dist/core}/logger/LogClient_Terminal.js +13 -16
  54. package/dist/core/logger/LogClient_Terminal.js.map +1 -0
  55. package/{core → dist/core}/logger/Logger.d.ts +3 -2
  56. package/dist/core/logger/Logger.d.ts.map +1 -0
  57. package/{core → dist/core}/logger/Logger.js +24 -26
  58. package/dist/core/logger/Logger.js.map +1 -0
  59. package/{core → dist/core}/logger/types.d.ts +1 -0
  60. package/dist/core/logger/types.d.ts.map +1 -0
  61. package/{core → dist/core}/logger/types.js +3 -6
  62. package/dist/core/logger/types.js.map +1 -0
  63. package/{core → dist/core}/logger/utils.d.ts +2 -1
  64. package/dist/core/logger/utils.d.ts.map +1 -0
  65. package/{core → dist/core}/logger/utils.js +11 -16
  66. package/dist/core/logger/utils.js.map +1 -0
  67. package/{core → dist/core}/module-manager.d.ts +4 -3
  68. package/dist/core/module-manager.d.ts.map +1 -0
  69. package/{core → dist/core}/module-manager.js +17 -18
  70. package/dist/core/module-manager.js.map +1 -0
  71. package/{core → dist/core}/module.d.ts +5 -4
  72. package/dist/core/module.d.ts.map +1 -0
  73. package/{core → dist/core}/module.js +31 -31
  74. package/dist/core/module.js.map +1 -0
  75. package/dist/index.d.ts +36 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +53 -0
  78. package/dist/index.js.map +1 -0
  79. package/{modules → dist/modules}/CliParamsModule.d.ts +3 -2
  80. package/dist/modules/CliParamsModule.d.ts.map +1 -0
  81. package/dist/modules/CliParamsModule.js +54 -0
  82. package/dist/modules/CliParamsModule.js.map +1 -0
  83. package/{permissions → dist/permissions}/permission-group.d.ts +1 -0
  84. package/dist/permissions/permission-group.d.ts.map +1 -0
  85. package/{permissions → dist/permissions}/permission-group.js +8 -8
  86. package/dist/permissions/permission-group.js.map +1 -0
  87. package/{testing → dist/testing}/test-model.d.ts +1 -0
  88. package/dist/testing/test-model.d.ts.map +1 -0
  89. package/dist/testing/test-model.js +62 -0
  90. package/dist/testing/test-model.js.map +1 -0
  91. package/dist/tsconfig.tsbuildinfo +1 -0
  92. package/{utils → dist/utils}/array-tools.d.ts +1 -0
  93. package/dist/utils/array-tools.d.ts.map +1 -0
  94. package/dist/utils/array-tools.js +116 -0
  95. package/dist/utils/array-tools.js.map +1 -0
  96. package/{utils → dist/utils}/crypto-tools.d.ts +1 -0
  97. package/dist/utils/crypto-tools.d.ts.map +1 -0
  98. package/dist/utils/crypto-tools.js +13 -0
  99. package/dist/utils/crypto-tools.js.map +1 -0
  100. package/{utils → dist/utils}/date-time-tools.d.ts +2 -1
  101. package/dist/utils/date-time-tools.d.ts.map +1 -0
  102. package/dist/utils/date-time-tools.js +86 -0
  103. package/dist/utils/date-time-tools.js.map +1 -0
  104. package/{utils → dist/utils}/filter-tools.d.ts +1 -0
  105. package/dist/utils/filter-tools.d.ts.map +1 -0
  106. package/{utils → dist/utils}/filter-tools.js +6 -9
  107. package/dist/utils/filter-tools.js.map +1 -0
  108. package/{utils → dist/utils}/hash-tools.d.ts +1 -0
  109. package/dist/utils/hash-tools.d.ts.map +1 -0
  110. package/dist/utils/hash-tools.js +47 -0
  111. package/dist/utils/hash-tools.js.map +1 -0
  112. package/{utils → dist/utils}/merge-tools.d.ts +1 -0
  113. package/dist/utils/merge-tools.d.ts.map +1 -0
  114. package/{utils → dist/utils}/merge-tools.js +8 -13
  115. package/dist/utils/merge-tools.js.map +1 -0
  116. package/{utils → dist/utils}/object-tools.d.ts +1 -0
  117. package/dist/utils/object-tools.d.ts.map +1 -0
  118. package/{utils → dist/utils}/object-tools.js +11 -21
  119. package/dist/utils/object-tools.js.map +1 -0
  120. package/{utils → dist/utils}/queue.d.ts +2 -1
  121. package/dist/utils/queue.d.ts.map +1 -0
  122. package/dist/utils/queue.js +69 -0
  123. package/dist/utils/queue.js.map +1 -0
  124. package/{utils → dist/utils}/random-tools.d.ts +1 -0
  125. package/dist/utils/random-tools.d.ts.map +1 -0
  126. package/{utils → dist/utils}/random-tools.js +4 -8
  127. package/dist/utils/random-tools.js.map +1 -0
  128. package/{utils → dist/utils}/string-tools.d.ts +1 -0
  129. package/dist/utils/string-tools.d.ts.map +1 -0
  130. package/{utils → dist/utils}/string-tools.js +1 -4
  131. package/dist/utils/string-tools.js.map +1 -0
  132. package/{utils → dist/utils}/tools.d.ts +2 -1
  133. package/dist/utils/tools.d.ts.map +1 -0
  134. package/dist/utils/tools.js +32 -0
  135. package/dist/utils/tools.js.map +1 -0
  136. package/{utils → dist/utils}/types.d.ts +1 -0
  137. package/dist/utils/types.d.ts.map +1 -0
  138. package/dist/utils/types.js +3 -0
  139. package/dist/utils/types.js.map +1 -0
  140. package/{utils → dist/utils}/version-tools.d.ts +1 -0
  141. package/dist/utils/version-tools.d.ts.map +1 -0
  142. package/{utils → dist/utils}/version-tools.js +4 -7
  143. package/dist/utils/version-tools.js.map +1 -0
  144. package/{validator → dist/validator}/validator.d.ts +3 -2
  145. package/dist/validator/validator.d.ts.map +1 -0
  146. package/dist/validator/validator.js +157 -0
  147. package/dist/validator/validator.js.map +1 -0
  148. package/package.json +76 -12
  149. package/consts/consts.js.map +0 -1
  150. package/core/application.js.map +0 -1
  151. package/core/debug-flags.js.map +0 -1
  152. package/core/dispatcher.js +0 -32
  153. package/core/dispatcher.js.map +0 -1
  154. package/core/error-handling.js +0 -21
  155. package/core/error-handling.js.map +0 -1
  156. package/core/exceptions.js.map +0 -1
  157. package/core/logger/BeLogged.js.map +0 -1
  158. package/core/logger/LogClient.js.map +0 -1
  159. package/core/logger/LogClient_BaseRotate.js.map +0 -1
  160. package/core/logger/LogClient_Browser.js.map +0 -1
  161. package/core/logger/LogClient_Function.js.map +0 -1
  162. package/core/logger/LogClient_MemBuffer.js +0 -23
  163. package/core/logger/LogClient_MemBuffer.js.map +0 -1
  164. package/core/logger/LogClient_Terminal.js.map +0 -1
  165. package/core/logger/Logger.js.map +0 -1
  166. package/core/logger/types.js.map +0 -1
  167. package/core/logger/utils.js.map +0 -1
  168. package/core/module-manager.js.map +0 -1
  169. package/core/module.js.map +0 -1
  170. package/index.d.ts +0 -35
  171. package/index.js +0 -69
  172. package/index.js.map +0 -1
  173. package/modules/CliParamsModule.js +0 -56
  174. package/modules/CliParamsModule.js.map +0 -1
  175. package/permissions/permission-group.js.map +0 -1
  176. package/testing/test-model.js +0 -80
  177. package/testing/test-model.js.map +0 -1
  178. package/utils/array-tools.js +0 -145
  179. package/utils/array-tools.js.map +0 -1
  180. package/utils/crypto-tools.js +0 -18
  181. package/utils/crypto-tools.js.map +0 -1
  182. package/utils/date-time-tools.js +0 -111
  183. package/utils/date-time-tools.js.map +0 -1
  184. package/utils/filter-tools.js.map +0 -1
  185. package/utils/hash-tools.js +0 -56
  186. package/utils/hash-tools.js.map +0 -1
  187. package/utils/merge-tools.js.map +0 -1
  188. package/utils/object-tools.js.map +0 -1
  189. package/utils/queue.js +0 -82
  190. package/utils/queue.js.map +0 -1
  191. package/utils/random-tools.js.map +0 -1
  192. package/utils/string-tools.js.map +0 -1
  193. package/utils/tools.js +0 -34
  194. package/utils/tools.js.map +0 -1
  195. package/utils/types.js +0 -6
  196. package/utils/types.js.map +0 -1
  197. package/utils/version-tools.js.map +0 -1
  198. package/validator/validator.js +0 -174
  199. package/validator/validator.js.map +0 -1
@@ -1,174 +0,0 @@
1
- "use strict";
2
- /*
3
- * ts-common is the basic building blocks of our typescript projects
4
- *
5
- * Copyright (C) 2020 Intuition Robotics
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.validateEmail = exports.timestampValidator = exports.auditValidator = exports.isTimestampValid = exports.validateObject = exports.validate = exports.validateRange = exports.validateValue = exports.validateRegexp = exports.validateArray = exports.validateObjectValues = exports.validateBoolean = exports.validateNumber = exports.validateString = exports.validateType = exports.validateExists = exports.ValidationException = void 0;
21
- const exceptions_1 = require("../core/exceptions");
22
- const tools_1 = require("../utils/tools");
23
- const object_tools_1 = require("../utils/object-tools");
24
- const __1 = require("..");
25
- class ValidationException extends exceptions_1.CustomException {
26
- constructor(debugMessage, path, input) {
27
- super(ValidationException, debugMessage);
28
- this.path = path;
29
- this.input = input;
30
- }
31
- }
32
- exports.ValidationException = ValidationException;
33
- const assertMandatory = (mandatory, path, input) => {
34
- if (input !== undefined && input !== null)
35
- return;
36
- if (mandatory)
37
- throw new ValidationException(`Missing mandatory field: ${path}\n`, path, input);
38
- };
39
- const validateExists = (mandatory = true) => {
40
- return (path, input) => {
41
- assertMandatory(mandatory, path, input);
42
- };
43
- };
44
- exports.validateExists = validateExists;
45
- const validateType = (type, mandatory = true) => {
46
- return (path, input) => {
47
- assertMandatory(mandatory, path, input);
48
- const typeOfInput = typeof input;
49
- if (input && typeOfInput !== type)
50
- throw new ValidationException(`Got ${typeOfInput} when expecting ${type} for field: ${path}\n`, path, input);
51
- };
52
- };
53
- exports.validateType = validateType;
54
- const validateString = (mandatory = true) => {
55
- return (0, exports.validateType)('string', mandatory);
56
- };
57
- exports.validateString = validateString;
58
- const validateNumber = (mandatory = true) => {
59
- return (0, exports.validateType)('number', mandatory);
60
- };
61
- exports.validateNumber = validateNumber;
62
- const validateBoolean = (mandatory = true) => {
63
- return (0, exports.validateType)('boolean', mandatory);
64
- };
65
- exports.validateBoolean = validateBoolean;
66
- const validateObjectValues = (validator, mandatory = true) => (path, input) => {
67
- assertMandatory(mandatory, path, input);
68
- if (!input)
69
- return;
70
- for (const key of (0, object_tools_1._keys)(input)) {
71
- const inputValue = input[key];
72
- if (typeof inputValue === "object") {
73
- const objectValidator = (0, exports.validateObjectValues)(validator, mandatory);
74
- if (!objectValidator)
75
- return;
76
- return objectValidator(`${path}/${key}`, inputValue);
77
- }
78
- (0, exports.validate)(inputValue, validator, `${path}/${key}`);
79
- }
80
- };
81
- exports.validateObjectValues = validateObjectValues;
82
- const validateArray = (validator, mandatory = true) => (path, input) => {
83
- assertMandatory(mandatory, path, input);
84
- if (!input)
85
- return;
86
- const _input = input;
87
- for (let i = 0; i < _input.length; i++) {
88
- (0, exports.validate)(_input[i], validator, `${path}/${i}`);
89
- }
90
- };
91
- exports.validateArray = validateArray;
92
- const validateRegexp = (regexp, mandatory = true) => {
93
- return (path, input) => {
94
- assertMandatory(mandatory, path, input);
95
- if (!input)
96
- return;
97
- if (regexp.test(input))
98
- return;
99
- throw new ValidationException(`Input is not valid:\n input: ${input}\n regexp: ${regexp}\n`, path, input);
100
- };
101
- };
102
- exports.validateRegexp = validateRegexp;
103
- const validateValue = (values, mandatory = true) => {
104
- return (path, input) => {
105
- assertMandatory(mandatory, path, input);
106
- if (!input)
107
- return;
108
- if (values.includes(input))
109
- return;
110
- throw new ValidationException(`Input is not valid:\n input: ${input}\n options: ${(0, tools_1.__stringify)(values)}\n`, path, input);
111
- };
112
- };
113
- exports.validateValue = validateValue;
114
- const validateRange = (ranges, mandatory = true) => {
115
- return (path, input) => {
116
- assertMandatory(mandatory, path, input);
117
- if (!input)
118
- return;
119
- for (const range of ranges) {
120
- if (range[0] <= input && input <= range[1])
121
- return;
122
- }
123
- throw new ValidationException(`Input is not valid:\n input: ${input}\n regexp: ${(0, tools_1.__stringify)(ranges)}\n`, path, input);
124
- };
125
- };
126
- exports.validateRange = validateRange;
127
- const validate = (instance, _validator, path = "") => {
128
- if (!_validator)
129
- return;
130
- if (typeof _validator === "function") {
131
- const validator = _validator;
132
- if (!validator)
133
- return;
134
- return validator(`${path}`, instance);
135
- }
136
- if (typeof _validator === "object") {
137
- if (!instance && _validator)
138
- throw new exceptions_1.BadImplementationException(`Unexpect object at '${path}'\nif you want to ignore the validation of this object,\n add the following to your validator:\n {\n ...\n ${path}: undefined\n ...\n}\n`);
139
- const __validator = _validator;
140
- (0, exports.validateObject)(__validator, instance, path);
141
- }
142
- };
143
- exports.validate = validate;
144
- const validateObject = (__validator, instance, path = "") => {
145
- const validatorKeys = (0, object_tools_1._keys)(__validator);
146
- const instanceKeys = Object.keys(instance);
147
- for (const key of instanceKeys) {
148
- // @ts-ignore
149
- if (!validatorKeys.includes(key))
150
- throw new exceptions_1.BadImplementationException(`Unexpect key '${path}${key}'\nif you want to ignore the validation of this property,\n add the following to your validator:\n {\n ...\n ${key}: undefined\n ...\n}\nAvailable keys are ${validatorKeys.join()}`);
151
- }
152
- for (const key of validatorKeys) {
153
- const value = instance[key];
154
- const validator = __validator[key];
155
- (0, exports.validate)(value, validator, `${path}/${key}`);
156
- }
157
- };
158
- exports.validateObject = validateObject;
159
- const isTimestampValid = (time, range = { min: (0, __1.currentTimeMillies)() - 1000 * __1.Day, max: (0, __1.currentTimeMillies)() + 1000 * __1.Day }) => {
160
- return time >= range.min && time <= range.max;
161
- };
162
- exports.isTimestampValid = isTimestampValid;
163
- const auditValidator = (range) => (_path, audit) => {
164
- var _a;
165
- (0, exports.timestampValidator)(range)(_path, (_a = audit === null || audit === void 0 ? void 0 : audit.auditAt) === null || _a === void 0 ? void 0 : _a.timestamp);
166
- };
167
- exports.auditValidator = auditValidator;
168
- const timestampValidator = (range) => (_path, timestamp) => {
169
- if (!timestamp || !(0, exports.isTimestampValid)(timestamp, range))
170
- throw new ValidationException('Time is not proper', _path, timestamp);
171
- };
172
- exports.timestampValidator = timestampValidator;
173
- exports.validateEmail = (0, exports.validateRegexp)(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/);
174
- //# sourceMappingURL=validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/main/validator/validator.ts"],"names":[],"mappings":"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"}