@autofleet/sadot 1.1.7-beta → 1.1.7

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 (331) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.cjs +1 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.js +1 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.cjs +1 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.js +1 -0
  5. package/dist/_virtual/rolldown_runtime.cjs +1 -0
  6. package/dist/api/index.cjs +2 -0
  7. package/dist/api/index.cjs.map +1 -0
  8. package/dist/api/index.js +2 -12
  9. package/dist/api/index.js.map +1 -0
  10. package/dist/api/v1/definition/index.cjs +2 -0
  11. package/dist/api/v1/definition/index.cjs.map +1 -0
  12. package/dist/api/v1/definition/index.js +2 -116
  13. package/dist/api/v1/definition/index.js.map +1 -0
  14. package/dist/api/v1/definition/validations.cjs +2 -0
  15. package/dist/api/v1/definition/validations.cjs.map +1 -0
  16. package/dist/api/v1/definition/validations.js +2 -77
  17. package/dist/api/v1/definition/validations.js.map +1 -0
  18. package/dist/api/v1/errors.cjs +2 -0
  19. package/dist/api/v1/errors.cjs.map +1 -0
  20. package/dist/api/v1/errors.js +2 -12
  21. package/dist/api/v1/errors.js.map +1 -0
  22. package/dist/api/v1/index.cjs +2 -0
  23. package/dist/api/v1/index.cjs.map +1 -0
  24. package/dist/api/v1/index.js +2 -13
  25. package/dist/api/v1/index.js.map +1 -0
  26. package/dist/api/v1/validator/index.cjs +2 -0
  27. package/dist/api/v1/validator/index.cjs.map +1 -0
  28. package/dist/api/v1/validator/index.js +2 -143
  29. package/dist/api/v1/validator/index.js.map +1 -0
  30. package/dist/api/v1/validator/validations.cjs +2 -0
  31. package/dist/api/v1/validator/validations.cjs.map +1 -0
  32. package/dist/api/v1/validator/validations.d.cts +23 -0
  33. package/dist/api/v1/validator/validations.d.ts +23 -6
  34. package/dist/api/v1/validator/validations.js +2 -38
  35. package/dist/api/v1/validator/validations.js.map +1 -0
  36. package/dist/errors/index.cjs +3 -0
  37. package/dist/errors/index.cjs.map +1 -0
  38. package/dist/errors/index.js +3 -66
  39. package/dist/errors/index.js.map +1 -0
  40. package/dist/events/index.cjs +2 -0
  41. package/dist/events/index.cjs.map +1 -0
  42. package/dist/events/index.js +2 -54
  43. package/dist/events/index.js.map +1 -0
  44. package/dist/hooks/enrich.cjs +2 -0
  45. package/dist/hooks/enrich.cjs.map +1 -0
  46. package/dist/hooks/enrich.js +2 -198
  47. package/dist/hooks/enrich.js.map +1 -0
  48. package/dist/hooks/find.cjs +2 -0
  49. package/dist/hooks/find.cjs.map +1 -0
  50. package/dist/hooks/find.js +2 -29
  51. package/dist/hooks/find.js.map +1 -0
  52. package/dist/hooks/hooks.cjs +2 -0
  53. package/dist/hooks/hooks.cjs.map +1 -0
  54. package/dist/hooks/hooks.js +2 -388
  55. package/dist/hooks/hooks.js.map +1 -0
  56. package/dist/hooks/index.cjs +1 -0
  57. package/dist/hooks/index.js +1 -17
  58. package/dist/hooks/utils/updateInstanceValues.cjs +2 -0
  59. package/dist/hooks/utils/updateInstanceValues.cjs.map +1 -0
  60. package/dist/hooks/utils/updateInstanceValues.js +2 -50
  61. package/dist/hooks/utils/updateInstanceValues.js.map +1 -0
  62. package/dist/index.cjs +2 -0
  63. package/dist/index.cjs.map +1 -0
  64. package/dist/index.d.cts +23 -0
  65. package/dist/index.d.ts +22 -12
  66. package/dist/index.js +2 -67
  67. package/dist/index.js.map +1 -0
  68. package/dist/models/CustomFieldDefinition.cjs +2 -0
  69. package/dist/models/CustomFieldDefinition.cjs.map +1 -0
  70. package/dist/models/CustomFieldDefinition.d.cts +31 -0
  71. package/dist/models/CustomFieldDefinition.d.ts +29 -23
  72. package/dist/models/CustomFieldDefinition.js +2 -192
  73. package/dist/models/CustomFieldDefinition.js.map +1 -0
  74. package/dist/models/CustomFieldEntries.cjs +2 -0
  75. package/dist/models/CustomFieldEntries.cjs.map +1 -0
  76. package/dist/models/CustomFieldEntries.d.cts +16 -0
  77. package/dist/models/CustomFieldEntries.d.ts +14 -13
  78. package/dist/models/CustomFieldEntries.js +2 -123
  79. package/dist/models/CustomFieldEntries.js.map +1 -0
  80. package/dist/models/CustomFieldValue.cjs +2 -0
  81. package/dist/models/CustomFieldValue.cjs.map +1 -0
  82. package/dist/models/CustomFieldValue.d.cts +22 -0
  83. package/dist/models/CustomFieldValue.d.ts +20 -14
  84. package/dist/models/CustomFieldValue.js +2 -151
  85. package/dist/models/CustomFieldValue.js.map +1 -0
  86. package/dist/models/CustomValidator.cjs +2 -0
  87. package/dist/models/CustomValidator.cjs.map +1 -0
  88. package/dist/models/CustomValidator.d.cts +19 -0
  89. package/dist/models/CustomValidator.d.ts +17 -15
  90. package/dist/models/CustomValidator.js +2 -98
  91. package/dist/models/CustomValidator.js.map +1 -0
  92. package/dist/models/index.cjs +2 -0
  93. package/dist/models/index.cjs.map +1 -0
  94. package/dist/models/index.d.cts +6 -0
  95. package/dist/models/index.d.ts +6 -18
  96. package/dist/models/index.js +2 -131
  97. package/dist/models/index.js.map +1 -0
  98. package/dist/models/tests/AssociatedTestModel.cjs +2 -0
  99. package/dist/models/tests/AssociatedTestModel.cjs.map +1 -0
  100. package/dist/models/tests/AssociatedTestModel.js +2 -71
  101. package/dist/models/tests/AssociatedTestModel.js.map +1 -0
  102. package/dist/models/tests/TestModel.cjs +2 -0
  103. package/dist/models/tests/TestModel.cjs.map +1 -0
  104. package/dist/models/tests/TestModel.js +2 -69
  105. package/dist/models/tests/TestModel.js.map +1 -0
  106. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs +2 -0
  107. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs.map +1 -0
  108. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js +2 -53
  109. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js.map +1 -0
  110. package/dist/models/tests/contextAwareModels/ContextTestModel.cjs +2 -0
  111. package/dist/models/tests/contextAwareModels/ContextTestModel.cjs.map +1 -0
  112. package/dist/models/tests/contextAwareModels/ContextTestModel.js +2 -47
  113. package/dist/models/tests/contextAwareModels/ContextTestModel.js.map +1 -0
  114. package/dist/repository/definition.cjs +2 -0
  115. package/dist/repository/definition.cjs.map +1 -0
  116. package/dist/repository/definition.js +2 -121
  117. package/dist/repository/definition.js.map +1 -0
  118. package/dist/repository/entries.cjs +2 -0
  119. package/dist/repository/entries.cjs.map +1 -0
  120. package/dist/repository/entries.js +2 -92
  121. package/dist/repository/entries.js.map +1 -0
  122. package/dist/repository/utils/formatValues.cjs +2 -0
  123. package/dist/repository/utils/formatValues.cjs.map +1 -0
  124. package/dist/repository/utils/formatValues.js +2 -16
  125. package/dist/repository/utils/formatValues.js.map +1 -0
  126. package/dist/repository/validator.cjs +2 -0
  127. package/dist/repository/validator.cjs.map +1 -0
  128. package/dist/repository/validator.js +2 -69
  129. package/dist/repository/validator.js.map +1 -0
  130. package/dist/repository/value.cjs +2 -0
  131. package/dist/repository/value.cjs.map +1 -0
  132. package/dist/repository/value.js +2 -124
  133. package/dist/repository/value.js.map +1 -0
  134. package/dist/scopes/filter.cjs +2 -0
  135. package/dist/scopes/filter.cjs.map +1 -0
  136. package/dist/scopes/filter.d.cts +23 -0
  137. package/dist/scopes/filter.d.ts +22 -29
  138. package/dist/scopes/filter.js +2 -75
  139. package/dist/scopes/filter.js.map +1 -0
  140. package/dist/scopes/helpers/filter.helpers.cjs +46 -0
  141. package/dist/scopes/helpers/filter.helpers.cjs.map +1 -0
  142. package/dist/scopes/helpers/filter.helpers.d.cts +17 -0
  143. package/dist/scopes/helpers/filter.helpers.d.ts +15 -40
  144. package/dist/scopes/helpers/filter.helpers.js +25 -183
  145. package/dist/scopes/helpers/filter.helpers.js.map +1 -0
  146. package/dist/scopes/index.cjs +1 -0
  147. package/dist/scopes/index.js +1 -6
  148. package/dist/types/index.d.cts +45 -0
  149. package/dist/types/index.d.ts +45 -46
  150. package/dist/utils/constants/index.cjs +2 -0
  151. package/dist/utils/constants/index.cjs.map +1 -0
  152. package/dist/utils/constants/index.d.cts +22 -0
  153. package/dist/utils/constants/index.d.ts +20 -17
  154. package/dist/utils/constants/index.js +2 -22
  155. package/dist/utils/constants/index.js.map +1 -0
  156. package/dist/utils/db/index.cjs +2 -0
  157. package/dist/utils/db/index.cjs.map +1 -0
  158. package/dist/utils/db/index.js +2 -24
  159. package/dist/utils/db/index.js.map +1 -0
  160. package/dist/utils/helpers/index.cjs +2 -0
  161. package/dist/utils/helpers/index.cjs.map +1 -0
  162. package/dist/utils/helpers/index.d.cts +31 -0
  163. package/dist/utils/helpers/index.d.ts +28 -23
  164. package/dist/utils/helpers/index.js +2 -40
  165. package/dist/utils/helpers/index.js.map +1 -0
  166. package/dist/utils/init.cjs +2 -0
  167. package/dist/utils/init.cjs.map +1 -0
  168. package/dist/utils/init.js +2 -112
  169. package/dist/utils/init.js.map +1 -0
  170. package/dist/utils/logger/index.cjs +2 -0
  171. package/dist/utils/logger/index.cjs.map +1 -0
  172. package/dist/utils/logger/index.js +2 -42
  173. package/dist/utils/logger/index.js.map +1 -0
  174. package/dist/utils/scopeAttributes.cjs +2 -0
  175. package/dist/utils/scopeAttributes.cjs.map +1 -0
  176. package/dist/utils/scopeAttributes.js +2 -11
  177. package/dist/utils/scopeAttributes.js.map +1 -0
  178. package/dist/utils/validations/index.cjs +2 -0
  179. package/dist/utils/validations/index.cjs.map +1 -0
  180. package/dist/utils/validations/index.js +2 -41
  181. package/dist/utils/validations/index.js.map +1 -0
  182. package/dist/utils/validations/schema/custom-fields.cjs +2 -0
  183. package/dist/utils/validations/schema/custom-fields.cjs.map +1 -0
  184. package/dist/utils/validations/schema/custom-fields.d.cts +7 -0
  185. package/dist/utils/validations/schema/custom-fields.d.ts +6 -2
  186. package/dist/utils/validations/schema/custom-fields.js +2 -9
  187. package/dist/utils/validations/schema/custom-fields.js.map +1 -0
  188. package/dist/utils/validations/schema/validator-schema.cjs +2 -0
  189. package/dist/utils/validations/schema/validator-schema.cjs.map +1 -0
  190. package/dist/utils/validations/schema/validator-schema.js +2 -95
  191. package/dist/utils/validations/schema/validator-schema.js.map +1 -0
  192. package/dist/utils/validations/validators/index.cjs +2 -0
  193. package/dist/utils/validations/validators/index.cjs.map +1 -0
  194. package/dist/utils/validations/validators/index.js +2 -40
  195. package/dist/utils/validations/validators/index.js.map +1 -0
  196. package/dist/utils/validations/validators/select.validator.cjs +2 -0
  197. package/dist/utils/validations/validators/select.validator.cjs.map +1 -0
  198. package/dist/utils/validations/validators/select.validator.js +2 -12
  199. package/dist/utils/validations/validators/select.validator.js.map +1 -0
  200. package/dist/utils/validations/validators/status.validator.cjs +2 -0
  201. package/dist/utils/validations/validators/status.validator.cjs.map +1 -0
  202. package/dist/utils/validations/validators/status.validator.js +2 -15
  203. package/dist/utils/validations/validators/status.validator.js.map +1 -0
  204. package/package.json +40 -39
  205. package/.nvmrc +0 -1
  206. package/dist/api/index.d.ts +0 -3
  207. package/dist/api/v1/definition/index.d.ts +0 -3
  208. package/dist/api/v1/definition/validations.d.ts +0 -2
  209. package/dist/api/v1/errors.d.ts +0 -4
  210. package/dist/api/v1/index.d.ts +0 -3
  211. package/dist/api/v1/validator/index.d.ts +0 -3
  212. package/dist/errors/index.d.ts +0 -24
  213. package/dist/events/index.d.ts +0 -5
  214. package/dist/hooks/create.d.ts +0 -10
  215. package/dist/hooks/create.js +0 -95
  216. package/dist/hooks/enrich.d.ts +0 -25
  217. package/dist/hooks/find.d.ts +0 -1
  218. package/dist/hooks/hooks.d.ts +0 -17
  219. package/dist/hooks/index.d.ts +0 -5
  220. package/dist/hooks/update.d.ts +0 -10
  221. package/dist/hooks/update.js +0 -49
  222. package/dist/hooks/utils/updateInstanceValues.d.ts +0 -15
  223. package/dist/hooks/workaround.d.ts +0 -10
  224. package/dist/hooks/workaround.js +0 -37
  225. package/dist/models/tests/AssociatedTestModel.d.ts +0 -12
  226. package/dist/models/tests/TestModel.d.ts +0 -12
  227. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.d.ts +0 -10
  228. package/dist/models/tests/contextAwareModels/ContextTestModel.d.ts +0 -13
  229. package/dist/repository/definition.d.ts +0 -36
  230. package/dist/repository/entries.d.ts +0 -13
  231. package/dist/repository/utils/formatValues.d.ts +0 -3
  232. package/dist/repository/validator.d.ts +0 -28
  233. package/dist/repository/value.d.ts +0 -28
  234. package/dist/scopes/index.d.ts +0 -2
  235. package/dist/tests/api/test-api.d.ts +0 -2
  236. package/dist/tests/api/test-api.js +0 -38
  237. package/dist/tests/functional/searching/index.d.ts +0 -8
  238. package/dist/tests/functional/searching/index.js +0 -44
  239. package/dist/tests/helpers/commonHooks.d.ts +0 -6
  240. package/dist/tests/helpers/commonHooks.js +0 -62
  241. package/dist/tests/helpers/database-config.d.ts +0 -16
  242. package/dist/tests/helpers/database-config.js +0 -17
  243. package/dist/tests/helpers/index.d.ts +0 -7
  244. package/dist/tests/helpers/index.js +0 -33
  245. package/dist/tests/mocks/definition.mock.d.ts +0 -48
  246. package/dist/tests/mocks/definition.mock.js +0 -78
  247. package/dist/tests/mocks/events.mock.d.ts +0 -4
  248. package/dist/tests/mocks/events.mock.js +0 -21
  249. package/dist/tests/mocks/testModel.d.ts +0 -12
  250. package/dist/tests/mocks/testModel.js +0 -35
  251. package/dist/types/definition/index.d.ts +0 -25
  252. package/dist/types/definition/index.js +0 -2
  253. package/dist/types/entries/index.d.ts +0 -25
  254. package/dist/types/entries/index.js +0 -2
  255. package/dist/types/index.js +0 -2
  256. package/dist/types/value/index.d.ts +0 -15
  257. package/dist/types/value/index.js +0 -2
  258. package/dist/utils/db/index.d.ts +0 -4
  259. package/dist/utils/init.d.ts +0 -7
  260. package/dist/utils/logger/index.d.ts +0 -3
  261. package/dist/utils/scopeAttributes.d.ts +0 -2
  262. package/dist/utils/validations/index.d.ts +0 -8
  263. package/dist/utils/validations/schema/validator-schema.d.ts +0 -9
  264. package/dist/utils/validations/type.d.ts +0 -15
  265. package/dist/utils/validations/type.js +0 -2
  266. package/dist/utils/validations/validators/index.d.ts +0 -14
  267. package/dist/utils/validations/validators/select.validator.d.ts +0 -5
  268. package/dist/utils/validations/validators/status.validator.d.ts +0 -12
  269. package/src/api/index.ts +0 -10
  270. package/src/api/v1/definition/index.ts +0 -104
  271. package/src/api/v1/definition/validations.ts +0 -75
  272. package/src/api/v1/errors.ts +0 -13
  273. package/src/api/v1/index.ts +0 -11
  274. package/src/api/v1/validator/index.ts +0 -141
  275. package/src/api/v1/validator/validations.ts +0 -38
  276. package/src/errors/index.ts +0 -70
  277. package/src/events/index.ts +0 -63
  278. package/src/hooks/create.ts +0 -81
  279. package/src/hooks/enrich.ts +0 -255
  280. package/src/hooks/find.ts +0 -27
  281. package/src/hooks/hooks.ts +0 -479
  282. package/src/hooks/index.ts +0 -20
  283. package/src/hooks/update.ts +0 -55
  284. package/src/hooks/utils/updateInstanceValues.ts +0 -63
  285. package/src/hooks/workaround.ts +0 -47
  286. package/src/index.ts +0 -52
  287. package/src/models/CustomFieldDefinition.ts +0 -162
  288. package/src/models/CustomFieldEntries.ts +0 -81
  289. package/src/models/CustomFieldValue.ts +0 -118
  290. package/src/models/CustomValidator.ts +0 -78
  291. package/src/models/index.ts +0 -165
  292. package/src/models/tests/AssociatedTestModel.ts +0 -57
  293. package/src/models/tests/TestModel.ts +0 -54
  294. package/src/models/tests/contextAwareModels/ContextAwareTestModel.ts +0 -43
  295. package/src/models/tests/contextAwareModels/ContextTestModel.ts +0 -38
  296. package/src/repository/definition.ts +0 -175
  297. package/src/repository/entries.ts +0 -88
  298. package/src/repository/utils/formatValues.ts +0 -14
  299. package/src/repository/validator.ts +0 -119
  300. package/src/repository/value.ts +0 -116
  301. package/src/scopes/filter.ts +0 -100
  302. package/src/scopes/helpers/filter.helpers.ts +0 -227
  303. package/src/scopes/index.ts +0 -6
  304. package/src/tests/api/test-api.ts +0 -40
  305. package/src/tests/functional/searching/index.ts +0 -39
  306. package/src/tests/helpers/commonHooks.ts +0 -43
  307. package/src/tests/helpers/database-config.ts +0 -15
  308. package/src/tests/helpers/index.ts +0 -35
  309. package/src/tests/mocks/definition.mock.ts +0 -84
  310. package/src/tests/mocks/events.mock.ts +0 -21
  311. package/src/tests/mocks/testModel.ts +0 -37
  312. package/src/types/definition/index.ts +0 -24
  313. package/src/types/entries/index.ts +0 -27
  314. package/src/types/index.ts +0 -52
  315. package/src/types/value/index.ts +0 -14
  316. package/src/utils/constants/index.ts +0 -25
  317. package/src/utils/db/index.ts +0 -21
  318. package/src/utils/helpers/index.ts +0 -66
  319. package/src/utils/init.ts +0 -122
  320. package/src/utils/logger/index.ts +0 -14
  321. package/src/utils/scopeAttributes.ts +0 -12
  322. package/src/utils/validations/index.ts +0 -46
  323. package/src/utils/validations/schema/README.md +0 -93
  324. package/src/utils/validations/schema/custom-fields.ts +0 -8
  325. package/src/utils/validations/schema/validator-schema.ts +0 -106
  326. package/src/utils/validations/type.ts +0 -20
  327. package/src/utils/validations/validators/index.ts +0 -38
  328. package/src/utils/validations/validators/select.validator.ts +0 -12
  329. package/src/utils/validations/validators/status.validator.ts +0 -22
  330. package/tsconfig.build.json +0 -7
  331. package/tsconfig.json +0 -16
@@ -1,57 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- import {
3
- Table,
4
- Column,
5
- Model,
6
- PrimaryKey,
7
- DataType,
8
- ForeignKey,
9
- BelongsTo,
10
- } from 'sequelize-typescript';
11
- import TestModel from './TestModel';
12
-
13
- @Table({ schema: 'custom-fields', createdAt: false, updatedAt: false })
14
- class AssociatedTestModel extends Model {
15
- @PrimaryKey
16
- @Column({
17
- type: DataType.UUID,
18
- defaultValue: DataType.UUIDV4,
19
- allowNull: false,
20
- })
21
- id!: string;
22
-
23
- @ForeignKey(() => TestModel)
24
- @Column({
25
- type: DataType.UUID,
26
- allowNull: false,
27
- })
28
- testModelId!: string;
29
-
30
- @Column({
31
- type: DataType.UUID,
32
- allowNull: false,
33
- })
34
- fleetId: string;
35
-
36
- @Column({
37
- type: DataType.UUID,
38
- allowNull: true,
39
- })
40
- businessModelId: string;
41
-
42
- @Column({
43
- type: DataType.UUID,
44
- allowNull: true,
45
- })
46
- demandSourceId: string;
47
-
48
- @Column({
49
- type: DataType.BOOLEAN,
50
- })
51
- anotherAttribute?: boolean;
52
-
53
- @BelongsTo(() => TestModel)
54
- testModel: TestModel;
55
- }
56
-
57
- export default AssociatedTestModel;
@@ -1,54 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- import {
3
- Table,
4
- Column,
5
- Model,
6
- PrimaryKey,
7
- DataType,
8
- HasMany,
9
- } from 'sequelize-typescript';
10
- import AssociatedTestModel from './AssociatedTestModel';
11
-
12
- @Table({ schema: 'custom-fields', createdAt: false, updatedAt: false })
13
- class TestModel extends Model {
14
- @PrimaryKey
15
- @Column({
16
- type: DataType.UUID,
17
- defaultValue: DataType.UUIDV4,
18
- allowNull: false,
19
- })
20
- id!: string;
21
-
22
- @Column({
23
- type: DataType.UUID,
24
- allowNull: false,
25
- })
26
- fleetId: string;
27
-
28
- @Column({
29
- type: DataType.UUID,
30
- allowNull: true,
31
- })
32
- businessModelId: string;
33
-
34
- @Column({
35
- type: DataType.UUID,
36
- allowNull: true,
37
- })
38
- demandSourceId: string;
39
-
40
- @Column({
41
- type: DataType.BOOLEAN,
42
- })
43
- coolAttribute?: boolean;
44
-
45
- @HasMany(() => AssociatedTestModel)
46
- associatedModels: AssociatedTestModel[];
47
-
48
- @Column({
49
- type: DataType.VIRTUAL,
50
- })
51
- customFields?: any;
52
- }
53
-
54
- export default TestModel;
@@ -1,43 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- import {
3
- Table,
4
- Column,
5
- Model,
6
- PrimaryKey,
7
- DataType,
8
- HasMany,
9
- BelongsTo,
10
- ForeignKey,
11
- } from 'sequelize-typescript';
12
- import AssociatedTestModel from '../AssociatedTestModel';
13
- import ContextTestModel from './ContextTestModel';
14
-
15
- @Table({ createdAt: false, updatedAt: false })
16
- class ContextAwareTestModel extends Model {
17
- @PrimaryKey
18
- @Column({
19
- type: DataType.UUID,
20
- defaultValue: DataType.UUIDV4,
21
- allowNull: false,
22
- })
23
- id!: string;
24
-
25
- @ForeignKey(() => ContextTestModel)
26
- @Column({ type: DataType.UUID })
27
- contextId: string;
28
-
29
- @Column({
30
- type: DataType.BOOLEAN,
31
- })
32
- coolAttribute?: boolean;
33
-
34
- @Column({
35
- type: DataType.VIRTUAL,
36
- })
37
- customFields?: any;
38
-
39
- @BelongsTo(() => ContextTestModel)
40
- context: ContextTestModel;
41
- }
42
-
43
- export default ContextAwareTestModel;
@@ -1,38 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- import {
3
- Table,
4
- Column,
5
- Model,
6
- PrimaryKey,
7
- DataType,
8
- } from 'sequelize-typescript';
9
-
10
- // eslint-disable-next-line no-shadow
11
- enum EEntityTypes {
12
- BUSINESS_MODEL = 'businessModel',
13
- CONTEXT = 'context',
14
- DEMAND_SOURCE = 'demandSource',
15
- FLEET = 'fleet',
16
- }
17
-
18
- @Table({ createdAt: false, updatedAt: false })
19
- class ContextTestModel extends Model {
20
- @PrimaryKey
21
- @Column({
22
- defaultValue: DataType.UUIDV4,
23
- type: DataType.UUID,
24
- })
25
- id: string;
26
-
27
- @Column({
28
- type: DataType.UUID,
29
- })
30
- entityId: string;
31
-
32
- @Column({
33
- type: DataType.ENUM(...Object.values(EEntityTypes)),
34
- })
35
- entityType: EEntityTypes;
36
- }
37
-
38
- export default ContextTestModel;
@@ -1,175 +0,0 @@
1
- import {
2
- Op,
3
- type Includeable, type Transaction, type FindOptions, type WhereOptions,
4
- } from 'sequelize';
5
- import { CustomFieldDefinition, type CustomFieldEntries } from '../models';
6
- import type { CreateCustomFieldDefinition, UpdateCustomFieldDefinition } from '../types/definition';
7
- import type { ModelOptions } from '../types';
8
- import { MissingDefinitionError } from '../errors';
9
-
10
- export const create = (data: CreateCustomFieldDefinition): Promise<CustomFieldDefinition> =>
11
- CustomFieldDefinition.create(data);
12
-
13
- interface SadotFindOptions {
14
- withDisabled?: boolean;
15
- transaction?: Transaction;
16
- include?: Includeable | Includeable[];
17
- }
18
-
19
- type SadotGetDefinitionsByEntityIdsOptions = FindOptions & { modelOptions?: ModelOptions } & Pick<SadotFindOptions, 'withDisabled'>;
20
-
21
- export const findAll = (
22
- where: WhereOptions,
23
- options: SadotFindOptions = { withDisabled: false },
24
- ): Promise<CustomFieldDefinition[]> => {
25
- const queryModel = options.withDisabled
26
- ? CustomFieldDefinition.unscoped()
27
- : CustomFieldDefinition;
28
-
29
- return queryModel.scope('userScope').findAll({
30
- where,
31
- transaction: options.transaction,
32
- raw: true,
33
- include: options.include,
34
- });
35
- };
36
-
37
- export const findByIds = (
38
- ids: string[],
39
- options: SadotFindOptions = { withDisabled: false },
40
- ): Promise<CustomFieldDefinition[]> => findAll({ id: { [Op.in]: ids } }, options);
41
-
42
- export const findById = (
43
- id: string,
44
- options: Pick<SadotFindOptions, 'withDisabled'> = { withDisabled: false },
45
- ): Promise<CustomFieldDefinition | null> => {
46
- const { withDisabled } = options;
47
- if (withDisabled) {
48
- return CustomFieldDefinition.unscoped().scope('userScope').findByPk(id);
49
- }
50
- return CustomFieldDefinition.scope('userScope').findByPk(id);
51
- };
52
-
53
- export const findByEntityIds = async (
54
- modelType: string,
55
- entityIds: string[],
56
- options: FindOptions & { modelOptions?: ModelOptions } = {},
57
- ): Promise<CustomFieldDefinition[]> => {
58
- const { include, useEntityIdFromInclude } = options.modelOptions;
59
- const where: WhereOptions = {
60
- modelType,
61
- ...(!useEntityIdFromInclude && { entityId: { [Op.in]: entityIds } }),
62
- };
63
-
64
- return CustomFieldDefinition.findAll({
65
- where,
66
- transaction: options.transaction,
67
- include: include?.(entityIds),
68
- raw: true,
69
- });
70
- };
71
-
72
- export const findByWhere = (where): Promise<CustomFieldDefinition | null> =>
73
- CustomFieldDefinition.scope('userScope').findOne({
74
- where,
75
- });
76
-
77
- export const findDefinitionsByModels = async (
78
- modelTypes: string[],
79
- options?,
80
- ): Promise<CustomFieldDefinition[]> => {
81
- const query: WhereOptions<CreateCustomFieldDefinition> = { modelType: { [Op.in]: modelTypes } };
82
- return CustomFieldDefinition.findAll({
83
- where: query,
84
- transaction: options?.transaction,
85
- });
86
- };
87
-
88
- export const update = async (
89
- id: string,
90
- data: UpdateCustomFieldDefinition,
91
- ): Promise<CustomFieldDefinition> => {
92
- const updatedDefinition = (await CustomFieldDefinition.scope('userScope').update(data, {
93
- where: { id },
94
- returning: true,
95
- individualHooks: true,
96
- }))[1][0];
97
- return updatedDefinition;
98
- };
99
-
100
- export const disable = (id: string): Promise<[affectedCount: number]> =>
101
- CustomFieldDefinition.update(
102
- { disabled: true },
103
- { where: { id } },
104
- );
105
-
106
- export const destroy = (id: string): Promise<number> =>
107
- CustomFieldDefinition.destroy({ where: { id } });
108
-
109
- /**
110
- * Return the names of the required fields for a given model
111
- */
112
- export const getRequiredFields = async (
113
- modelType: string,
114
- modelId: string | string[],
115
- entityId: string | string[],
116
- modelOptions: ModelOptions = {},
117
- ): Promise<string[]> => {
118
- const entityIds = Array.isArray(entityId) ? entityId : [entityId];
119
- const { include, useEntityIdFromInclude } = modelOptions;
120
-
121
- const where: WhereOptions = {
122
- modelType,
123
- required: true,
124
- ...(!useEntityIdFromInclude && { entityId: { [Op.in]: entityIds } }),
125
- };
126
-
127
- const requiredFields = await CustomFieldDefinition.findAll({
128
- where,
129
- include: include?.(entityIds),
130
- logging: true,
131
- });
132
- const requiredFieldsNames = requiredFields.map((definition) => definition.name);
133
- return [...new Set(requiredFieldsNames)];
134
- };
135
-
136
- /**
137
- * @returns A promise resolving with a dictionary of custom field definitions by name.
138
- * @throws A {@link MissingDefinitionError} if any of the custom fields doesn't have a definition.
139
- */
140
- export const getCustomFieldDefinitionsDictionary = async (
141
- instances: CustomFieldEntries[],
142
- options: SadotGetDefinitionsByEntityIdsOptions = { withDisabled: false, modelOptions: {} },
143
- ): Promise<{ [definitionName: string]: CustomFieldDefinition }> => {
144
- const { modelType } = instances[0]?.dataValues ?? {};
145
- const customFields = new Set<string>();
146
- const modelIds = [];
147
- const entityIds = new Set<string>();
148
- instances.forEach((instance) => {
149
- const { dataValues: { modelId, entityId, customFields: instanceCustomFields } } = instance;
150
- modelIds.push(modelId);
151
- entityIds.add(entityId);
152
-
153
- Object.keys(instanceCustomFields ?? {}).forEach((fieldName) => {
154
- customFields.add(fieldName);
155
- });
156
- });
157
-
158
- const where: WhereOptions = {
159
- modelType,
160
- entityId: { [Op.in]: Array.from(entityIds) },
161
- name: { [Op.in]: Array.from(customFields) },
162
- };
163
-
164
- const definitions = await findAll(where, { ...options });
165
-
166
- const matchedDefinitions = definitions.filter((def) => customFields.has(def.name));
167
- const matchedDefinitionsByName = Object.fromEntries(matchedDefinitions.map((definition) => [definition.name, definition]));
168
-
169
- if (!definitions?.length || matchedDefinitions.length !== customFields.size) {
170
- const unmatchedCustomFields = Array.from(customFields).filter((customField) => !matchedDefinitionsByName[customField]);
171
- throw new MissingDefinitionError(unmatchedCustomFields);
172
- }
173
-
174
- return matchedDefinitionsByName;
175
- };
@@ -1,88 +0,0 @@
1
- /* eslint-disable no-param-reassign */
2
- import type {
3
- FindOptions,
4
- Includeable,
5
- Transaction,
6
- WhereOptions,
7
- } from 'sequelize';
8
- import { CustomFieldEntries } from '../models';
9
- import type { ModelOptions } from '../types';
10
- import logger from '../utils/logger';
11
- import { MissingDefinitionError } from '../errors';
12
- import * as DefinitionRepo from './definition';
13
- import { formatFunctions } from './utils/formatValues';
14
-
15
- type CustomFieldEntriesModelOptions = ModelOptions & { include?: Includeable, transaction?: Transaction };
16
-
17
- export const findEntriesByModelId = async (modelId: string, options: CustomFieldEntriesModelOptions = {}) => {
18
- const { transaction } = options;
19
- return CustomFieldEntries.findOne({
20
- where: { modelId },
21
- transaction,
22
- });
23
- };
24
-
25
- export const findEntriesByModelIds = async (modelIds: string[], options: CustomFieldEntriesModelOptions = {}) => {
26
- const { transaction } = options;
27
- return CustomFieldEntries.findAll({
28
- where: { modelId: modelIds },
29
- transaction,
30
- });
31
- };
32
-
33
- export const updateEntries = async (
34
- modelId: string,
35
- modelType: string,
36
- customFields: Record<string, any>,
37
- identifiers: string[],
38
- options: FindOptions & { modelOptions?: ModelOptions } = {},
39
- ) => {
40
- const customFieldsNames = Object.keys(customFields);
41
- logger.debug(`custom-fields: updating entries for ${modelType} ${modelId}`, {
42
- customFieldsNames,
43
- optionsKeys: options ? Object.keys(options) : null,
44
- customFields,
45
- identifiers,
46
- });
47
- const { modelOptions, transaction } = options;
48
-
49
- const where: WhereOptions = {
50
- modelType,
51
- name: customFieldsNames,
52
- ...(!options.modelOptions?.useEntityIdFromInclude && { entityId: identifiers }),
53
- };
54
-
55
- const fieldDefinitions = await DefinitionRepo.findAll(where, { withDisabled: true, transaction, include: modelOptions.include?.(identifiers) }) ?? [];
56
-
57
- const disabledDefinitions = fieldDefinitions.filter((def) => def.disabled);
58
- if (fieldDefinitions.length !== customFieldsNames.length) {
59
- logger.warn(`custom-fields: missing definitions for ${modelType} ${modelId}`, { names: customFieldsNames, fieldDefinitions });
60
- const missingDefinitions = customFieldsNames.filter((name) => !fieldDefinitions.some((def) => def.name === name));
61
- throw new MissingDefinitionError(missingDefinitions);
62
- }
63
-
64
- const disabledNames = disabledDefinitions?.map((def) => def.name) || [];
65
- const valuesWithDisabledDefinitions = customFieldsNames.filter((name) => disabledNames.includes(name));
66
- if (valuesWithDisabledDefinitions?.length > 0) {
67
- logger.warn(`custom-fields: trying to update disabled values: ${valuesWithDisabledDefinitions.join(', ')}`);
68
- }
69
-
70
- const definitionsByName = Object.fromEntries(fieldDefinitions.map((definition) => [definition.name, definition]));
71
- // If we need to format the value before we save it
72
- Object.entries(customFields)
73
- .filter(([definitionName]) => formatFunctions[definitionsByName[definitionName].fieldType])
74
- .forEach(([definitionName, value]) => {
75
- const { fieldType } = definitionsByName[definitionName];
76
- customFields[definitionName] = formatFunctions[fieldType](value);
77
- });
78
-
79
- return CustomFieldEntries.upsert(
80
- {
81
- modelId,
82
- entityId: fieldDefinitions[0].entityId,
83
- modelType,
84
- customFields,
85
- },
86
- options,
87
- );
88
- };
@@ -1,14 +0,0 @@
1
- import { CustomFieldDefinitionType } from '../../utils/constants';
2
-
3
- export const formatFunctions = {
4
- [CustomFieldDefinitionType.DATE]: (value) => {
5
- if (value) {
6
- const date = new Date(value);
7
- if (date.toString() === 'Invalid Date') {
8
- throw new Error(`Invalid date value: ${value}`);
9
- }
10
- return date.toISOString();
11
- }
12
- return null;
13
- },
14
- };
@@ -1,119 +0,0 @@
1
- import type { FindOptions, IncludeOptions, Transactionable } from 'sequelize';
2
- import logger from '../utils/logger';
3
- import { CustomValidator } from '../models';
4
- import type { ModelOptions } from '../types';
5
-
6
- export interface FindValidatorOptions extends Transactionable {
7
- withDisabled?: boolean;
8
- attributes?: string[];
9
- raw?: boolean;
10
- include?: IncludeOptions[];
11
- }
12
-
13
- // Make sure this interface is compatible with the Sequelize model
14
- export interface ValidatorAttributes {
15
- entityId: string;
16
- entityType: string;
17
- modelType: string;
18
- schema: CustomValidator['schema'];
19
- disabled?: boolean;
20
- [key: string]: unknown; // Add index signature for Sequelize compatibility
21
- }
22
-
23
- export const create = async (
24
- validatorAttributes: ValidatorAttributes,
25
- options: Transactionable = {},
26
- ): Promise<CustomValidator> => {
27
- logger.debug('custom-validator - create validator');
28
-
29
- // Use unknown type to bypass TypeScript errors while maintaining compatibility
30
- const validator = await CustomValidator.create(validatorAttributes as Record<string, unknown>, options);
31
-
32
- return validator;
33
- };
34
-
35
- export const findAll = async (
36
- where = {},
37
- options: FindOptions & {
38
- modelOptions?: ModelOptions,
39
- withDisabled?: boolean
40
- } = {},
41
- ): Promise<CustomValidator[]> => {
42
- logger.debug('custom-validator - find all validators');
43
-
44
- const {
45
- transaction, withDisabled, include, attributes, raw,
46
- } = options;
47
-
48
- let validators;
49
- if (withDisabled) {
50
- // If withDisabled is true, use unscoped to ignore the default scope that filters disabled items
51
- // Apply the userScope separately to maintain permission filtering
52
- validators = await CustomValidator.unscoped().scope('userScope').findAll({
53
- where,
54
- transaction,
55
- include,
56
- attributes,
57
- raw,
58
- });
59
- } else {
60
- // Use defaultScope and userScope to filter both disabled and by permissions
61
- // The defaultScope keeps only non-disabled validators
62
- validators = await CustomValidator.scope(['defaultScope', 'userScope']).findAll({
63
- where,
64
- transaction,
65
- include,
66
- attributes,
67
- raw,
68
- });
69
- }
70
-
71
- return validators;
72
- };
73
-
74
- export const findAllByModelType = async (
75
- modelType: string,
76
- entityId: string,
77
- options: FindOptions & {
78
- modelOptions?: ModelOptions,
79
- withDisabled?: boolean
80
- } = {},
81
- ): Promise<CustomValidator[]> => {
82
- logger.debug('custom-validator - find all validators by model type');
83
- return findAll(
84
- {
85
- modelType,
86
- ...(!options?.modelOptions?.useEntityIdFromInclude && { entityId }),
87
- },
88
- {
89
- ...options,
90
- include: options?.modelOptions?.include?.(entityId),
91
- },
92
- );
93
- };
94
-
95
- export const update = async (
96
- id: string,
97
- updates: Partial<ValidatorAttributes>,
98
- options?: Transactionable,
99
- ): Promise<[number, CustomValidator[]]> => {
100
- logger.debug('custom-validator - update validator');
101
-
102
- return CustomValidator.update(
103
- updates,
104
- {
105
- where: { id },
106
- returning: true,
107
- ...options,
108
- },
109
- );
110
- };
111
-
112
- export const disable = async (
113
- id: string,
114
- options?: Transactionable,
115
- ): Promise<[number, CustomValidator[]]> => {
116
- logger.debug('custom-validator - disable validator');
117
-
118
- return update(id, { disabled: true }, options);
119
- };