@autofleet/sadot 1.1.6 → 1.1.7-beta

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/.nvmrc +1 -0
  2. package/dist/api/index.d.ts +3 -0
  3. package/dist/api/index.js +12 -2
  4. package/dist/api/v1/definition/index.d.ts +3 -0
  5. package/dist/api/v1/definition/index.js +116 -2
  6. package/dist/api/v1/definition/validations.d.ts +2 -0
  7. package/dist/api/v1/definition/validations.js +77 -2
  8. package/dist/api/v1/errors.d.ts +4 -0
  9. package/dist/api/v1/errors.js +12 -2
  10. package/dist/api/v1/index.d.ts +3 -0
  11. package/dist/api/v1/index.js +13 -2
  12. package/dist/api/v1/validator/index.d.ts +3 -0
  13. package/dist/api/v1/validator/index.js +143 -2
  14. package/dist/api/v1/validator/validations.d.ts +6 -23
  15. package/dist/api/v1/validator/validations.js +38 -2
  16. package/dist/errors/index.d.ts +24 -0
  17. package/dist/errors/index.js +66 -3
  18. package/dist/events/index.d.ts +5 -0
  19. package/dist/events/index.js +54 -2
  20. package/dist/hooks/create.d.ts +10 -0
  21. package/dist/hooks/create.js +95 -0
  22. package/dist/hooks/enrich.d.ts +25 -0
  23. package/dist/hooks/enrich.js +198 -2
  24. package/dist/hooks/find.d.ts +1 -0
  25. package/dist/hooks/find.js +29 -2
  26. package/dist/hooks/hooks.d.ts +17 -0
  27. package/dist/hooks/hooks.js +388 -2
  28. package/dist/hooks/index.d.ts +5 -0
  29. package/dist/hooks/index.js +17 -1
  30. package/dist/hooks/update.d.ts +10 -0
  31. package/dist/hooks/update.js +49 -0
  32. package/dist/hooks/utils/updateInstanceValues.d.ts +15 -0
  33. package/dist/hooks/utils/updateInstanceValues.js +50 -2
  34. package/dist/hooks/workaround.d.ts +10 -0
  35. package/dist/hooks/workaround.js +37 -0
  36. package/dist/index.d.ts +12 -22
  37. package/dist/index.js +67 -2
  38. package/dist/models/CustomFieldDefinition.d.ts +23 -29
  39. package/dist/models/CustomFieldDefinition.js +192 -2
  40. package/dist/models/CustomFieldEntries.d.ts +13 -14
  41. package/dist/models/CustomFieldEntries.js +123 -2
  42. package/dist/models/CustomFieldValue.d.ts +14 -20
  43. package/dist/models/CustomFieldValue.js +151 -2
  44. package/dist/models/CustomValidator.d.ts +15 -17
  45. package/dist/models/CustomValidator.js +98 -2
  46. package/dist/models/index.d.ts +18 -6
  47. package/dist/models/index.js +131 -2
  48. package/dist/models/tests/AssociatedTestModel.d.ts +12 -0
  49. package/dist/models/tests/AssociatedTestModel.js +71 -2
  50. package/dist/models/tests/TestModel.d.ts +12 -0
  51. package/dist/models/tests/TestModel.js +69 -2
  52. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.d.ts +10 -0
  53. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js +53 -2
  54. package/dist/models/tests/contextAwareModels/ContextTestModel.d.ts +13 -0
  55. package/dist/models/tests/contextAwareModels/ContextTestModel.js +47 -2
  56. package/dist/repository/definition.d.ts +36 -0
  57. package/dist/repository/definition.js +121 -2
  58. package/dist/repository/entries.d.ts +13 -0
  59. package/dist/repository/entries.js +92 -2
  60. package/dist/repository/utils/formatValues.d.ts +3 -0
  61. package/dist/repository/utils/formatValues.js +16 -2
  62. package/dist/repository/validator.d.ts +28 -0
  63. package/dist/repository/validator.js +69 -2
  64. package/dist/repository/value.d.ts +28 -0
  65. package/dist/repository/value.js +124 -2
  66. package/dist/scopes/filter.d.ts +29 -22
  67. package/dist/scopes/filter.js +75 -2
  68. package/dist/scopes/helpers/filter.helpers.d.ts +40 -15
  69. package/dist/scopes/helpers/filter.helpers.js +183 -25
  70. package/dist/scopes/index.d.ts +2 -0
  71. package/dist/scopes/index.js +6 -1
  72. package/dist/tests/api/test-api.d.ts +2 -0
  73. package/dist/tests/api/test-api.js +38 -0
  74. package/dist/tests/functional/searching/index.d.ts +8 -0
  75. package/dist/tests/functional/searching/index.js +44 -0
  76. package/dist/tests/helpers/commonHooks.d.ts +6 -0
  77. package/dist/tests/helpers/commonHooks.js +62 -0
  78. package/dist/tests/helpers/database-config.d.ts +16 -0
  79. package/dist/tests/helpers/database-config.js +17 -0
  80. package/dist/tests/helpers/index.d.ts +7 -0
  81. package/dist/tests/helpers/index.js +33 -0
  82. package/dist/tests/mocks/definition.mock.d.ts +48 -0
  83. package/dist/tests/mocks/definition.mock.js +78 -0
  84. package/dist/tests/mocks/events.mock.d.ts +4 -0
  85. package/dist/tests/mocks/events.mock.js +21 -0
  86. package/dist/tests/mocks/testModel.d.ts +12 -0
  87. package/dist/tests/mocks/testModel.js +35 -0
  88. package/dist/types/definition/index.d.ts +25 -0
  89. package/dist/types/definition/index.js +2 -0
  90. package/dist/types/entries/index.d.ts +25 -0
  91. package/dist/types/entries/index.js +2 -0
  92. package/dist/types/index.d.ts +46 -45
  93. package/dist/types/index.js +2 -0
  94. package/dist/types/value/index.d.ts +15 -0
  95. package/dist/types/value/index.js +2 -0
  96. package/dist/utils/constants/index.d.ts +17 -20
  97. package/dist/utils/constants/index.js +22 -2
  98. package/dist/utils/db/index.d.ts +4 -0
  99. package/dist/utils/db/index.js +24 -2
  100. package/dist/utils/helpers/index.d.ts +23 -28
  101. package/dist/utils/helpers/index.js +40 -2
  102. package/dist/utils/init.d.ts +7 -0
  103. package/dist/utils/init.js +112 -2
  104. package/dist/utils/logger/index.d.ts +3 -0
  105. package/dist/utils/logger/index.js +42 -2
  106. package/dist/utils/scopeAttributes.d.ts +2 -0
  107. package/dist/utils/scopeAttributes.js +11 -2
  108. package/dist/utils/validations/index.d.ts +8 -0
  109. package/dist/utils/validations/index.js +41 -2
  110. package/dist/utils/validations/schema/custom-fields.d.ts +2 -6
  111. package/dist/utils/validations/schema/custom-fields.js +9 -2
  112. package/dist/utils/validations/schema/validator-schema.d.ts +9 -0
  113. package/dist/utils/validations/schema/validator-schema.js +95 -2
  114. package/dist/utils/validations/type.d.ts +15 -0
  115. package/dist/utils/validations/type.js +2 -0
  116. package/dist/utils/validations/validators/index.d.ts +14 -0
  117. package/dist/utils/validations/validators/index.js +40 -2
  118. package/dist/utils/validations/validators/select.validator.d.ts +5 -0
  119. package/dist/utils/validations/validators/select.validator.js +12 -2
  120. package/dist/utils/validations/validators/status.validator.d.ts +12 -0
  121. package/dist/utils/validations/validators/status.validator.js +15 -2
  122. package/package.json +39 -40
  123. package/src/api/index.ts +10 -0
  124. package/src/api/v1/definition/index.ts +104 -0
  125. package/src/api/v1/definition/validations.ts +75 -0
  126. package/src/api/v1/errors.ts +13 -0
  127. package/src/api/v1/index.ts +11 -0
  128. package/src/api/v1/validator/index.ts +141 -0
  129. package/src/api/v1/validator/validations.ts +38 -0
  130. package/src/errors/index.ts +70 -0
  131. package/src/events/index.ts +63 -0
  132. package/src/hooks/create.ts +81 -0
  133. package/src/hooks/enrich.ts +255 -0
  134. package/src/hooks/find.ts +27 -0
  135. package/src/hooks/hooks.ts +479 -0
  136. package/src/hooks/index.ts +20 -0
  137. package/src/hooks/update.ts +55 -0
  138. package/src/hooks/utils/updateInstanceValues.ts +63 -0
  139. package/src/hooks/workaround.ts +47 -0
  140. package/src/index.ts +52 -0
  141. package/src/models/CustomFieldDefinition.ts +162 -0
  142. package/src/models/CustomFieldEntries.ts +81 -0
  143. package/src/models/CustomFieldValue.ts +118 -0
  144. package/src/models/CustomValidator.ts +78 -0
  145. package/src/models/index.ts +165 -0
  146. package/src/models/tests/AssociatedTestModel.ts +57 -0
  147. package/src/models/tests/TestModel.ts +54 -0
  148. package/src/models/tests/contextAwareModels/ContextAwareTestModel.ts +43 -0
  149. package/src/models/tests/contextAwareModels/ContextTestModel.ts +38 -0
  150. package/src/repository/definition.ts +175 -0
  151. package/src/repository/entries.ts +88 -0
  152. package/src/repository/utils/formatValues.ts +14 -0
  153. package/src/repository/validator.ts +119 -0
  154. package/src/repository/value.ts +116 -0
  155. package/src/scopes/filter.ts +100 -0
  156. package/src/scopes/helpers/filter.helpers.ts +227 -0
  157. package/src/scopes/index.ts +6 -0
  158. package/src/tests/api/test-api.ts +40 -0
  159. package/src/tests/functional/searching/index.ts +39 -0
  160. package/src/tests/helpers/commonHooks.ts +43 -0
  161. package/src/tests/helpers/database-config.ts +15 -0
  162. package/src/tests/helpers/index.ts +35 -0
  163. package/src/tests/mocks/definition.mock.ts +84 -0
  164. package/src/tests/mocks/events.mock.ts +21 -0
  165. package/src/tests/mocks/testModel.ts +37 -0
  166. package/src/types/definition/index.ts +24 -0
  167. package/src/types/entries/index.ts +27 -0
  168. package/src/types/index.ts +52 -0
  169. package/src/types/value/index.ts +14 -0
  170. package/src/utils/constants/index.ts +25 -0
  171. package/src/utils/db/index.ts +21 -0
  172. package/src/utils/helpers/index.ts +66 -0
  173. package/src/utils/init.ts +122 -0
  174. package/src/utils/logger/index.ts +14 -0
  175. package/src/utils/scopeAttributes.ts +12 -0
  176. package/src/utils/validations/index.ts +46 -0
  177. package/src/utils/validations/schema/README.md +93 -0
  178. package/src/utils/validations/schema/custom-fields.ts +8 -0
  179. package/src/utils/validations/schema/validator-schema.ts +106 -0
  180. package/src/utils/validations/type.ts +20 -0
  181. package/src/utils/validations/validators/index.ts +38 -0
  182. package/src/utils/validations/validators/select.validator.ts +12 -0
  183. package/src/utils/validations/validators/status.validator.ts +22 -0
  184. package/tsconfig.build.json +7 -0
  185. package/tsconfig.json +16 -0
  186. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.cjs +0 -1
  187. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.js +0 -1
  188. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.cjs +0 -1
  189. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.js +0 -1
  190. package/dist/_virtual/rolldown_runtime.cjs +0 -1
  191. package/dist/api/index.cjs +0 -2
  192. package/dist/api/index.cjs.map +0 -1
  193. package/dist/api/index.js.map +0 -1
  194. package/dist/api/v1/definition/index.cjs +0 -2
  195. package/dist/api/v1/definition/index.cjs.map +0 -1
  196. package/dist/api/v1/definition/index.js.map +0 -1
  197. package/dist/api/v1/definition/validations.cjs +0 -2
  198. package/dist/api/v1/definition/validations.cjs.map +0 -1
  199. package/dist/api/v1/definition/validations.js.map +0 -1
  200. package/dist/api/v1/errors.cjs +0 -2
  201. package/dist/api/v1/errors.cjs.map +0 -1
  202. package/dist/api/v1/errors.js.map +0 -1
  203. package/dist/api/v1/index.cjs +0 -2
  204. package/dist/api/v1/index.cjs.map +0 -1
  205. package/dist/api/v1/index.js.map +0 -1
  206. package/dist/api/v1/validator/index.cjs +0 -2
  207. package/dist/api/v1/validator/index.cjs.map +0 -1
  208. package/dist/api/v1/validator/index.js.map +0 -1
  209. package/dist/api/v1/validator/validations.cjs +0 -2
  210. package/dist/api/v1/validator/validations.cjs.map +0 -1
  211. package/dist/api/v1/validator/validations.d.cts +0 -23
  212. package/dist/api/v1/validator/validations.js.map +0 -1
  213. package/dist/errors/index.cjs +0 -3
  214. package/dist/errors/index.cjs.map +0 -1
  215. package/dist/errors/index.js.map +0 -1
  216. package/dist/events/index.cjs +0 -2
  217. package/dist/events/index.cjs.map +0 -1
  218. package/dist/events/index.js.map +0 -1
  219. package/dist/hooks/enrich.cjs +0 -2
  220. package/dist/hooks/enrich.cjs.map +0 -1
  221. package/dist/hooks/enrich.js.map +0 -1
  222. package/dist/hooks/find.cjs +0 -2
  223. package/dist/hooks/find.cjs.map +0 -1
  224. package/dist/hooks/find.js.map +0 -1
  225. package/dist/hooks/hooks.cjs +0 -2
  226. package/dist/hooks/hooks.cjs.map +0 -1
  227. package/dist/hooks/hooks.js.map +0 -1
  228. package/dist/hooks/index.cjs +0 -1
  229. package/dist/hooks/utils/updateInstanceValues.cjs +0 -2
  230. package/dist/hooks/utils/updateInstanceValues.cjs.map +0 -1
  231. package/dist/hooks/utils/updateInstanceValues.js.map +0 -1
  232. package/dist/index.cjs +0 -2
  233. package/dist/index.cjs.map +0 -1
  234. package/dist/index.d.cts +0 -23
  235. package/dist/index.js.map +0 -1
  236. package/dist/models/CustomFieldDefinition.cjs +0 -2
  237. package/dist/models/CustomFieldDefinition.cjs.map +0 -1
  238. package/dist/models/CustomFieldDefinition.d.cts +0 -31
  239. package/dist/models/CustomFieldDefinition.js.map +0 -1
  240. package/dist/models/CustomFieldEntries.cjs +0 -2
  241. package/dist/models/CustomFieldEntries.cjs.map +0 -1
  242. package/dist/models/CustomFieldEntries.d.cts +0 -16
  243. package/dist/models/CustomFieldEntries.js.map +0 -1
  244. package/dist/models/CustomFieldValue.cjs +0 -2
  245. package/dist/models/CustomFieldValue.cjs.map +0 -1
  246. package/dist/models/CustomFieldValue.d.cts +0 -22
  247. package/dist/models/CustomFieldValue.js.map +0 -1
  248. package/dist/models/CustomValidator.cjs +0 -2
  249. package/dist/models/CustomValidator.cjs.map +0 -1
  250. package/dist/models/CustomValidator.d.cts +0 -19
  251. package/dist/models/CustomValidator.js.map +0 -1
  252. package/dist/models/index.cjs +0 -2
  253. package/dist/models/index.cjs.map +0 -1
  254. package/dist/models/index.d.cts +0 -6
  255. package/dist/models/index.js.map +0 -1
  256. package/dist/models/tests/AssociatedTestModel.cjs +0 -2
  257. package/dist/models/tests/AssociatedTestModel.cjs.map +0 -1
  258. package/dist/models/tests/AssociatedTestModel.js.map +0 -1
  259. package/dist/models/tests/TestModel.cjs +0 -2
  260. package/dist/models/tests/TestModel.cjs.map +0 -1
  261. package/dist/models/tests/TestModel.js.map +0 -1
  262. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs +0 -2
  263. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs.map +0 -1
  264. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js.map +0 -1
  265. package/dist/models/tests/contextAwareModels/ContextTestModel.cjs +0 -2
  266. package/dist/models/tests/contextAwareModels/ContextTestModel.cjs.map +0 -1
  267. package/dist/models/tests/contextAwareModels/ContextTestModel.js.map +0 -1
  268. package/dist/repository/definition.cjs +0 -2
  269. package/dist/repository/definition.cjs.map +0 -1
  270. package/dist/repository/definition.js.map +0 -1
  271. package/dist/repository/entries.cjs +0 -2
  272. package/dist/repository/entries.cjs.map +0 -1
  273. package/dist/repository/entries.js.map +0 -1
  274. package/dist/repository/utils/formatValues.cjs +0 -2
  275. package/dist/repository/utils/formatValues.cjs.map +0 -1
  276. package/dist/repository/utils/formatValues.js.map +0 -1
  277. package/dist/repository/validator.cjs +0 -2
  278. package/dist/repository/validator.cjs.map +0 -1
  279. package/dist/repository/validator.js.map +0 -1
  280. package/dist/repository/value.cjs +0 -2
  281. package/dist/repository/value.cjs.map +0 -1
  282. package/dist/repository/value.js.map +0 -1
  283. package/dist/scopes/filter.cjs +0 -2
  284. package/dist/scopes/filter.cjs.map +0 -1
  285. package/dist/scopes/filter.d.cts +0 -23
  286. package/dist/scopes/filter.js.map +0 -1
  287. package/dist/scopes/helpers/filter.helpers.cjs +0 -46
  288. package/dist/scopes/helpers/filter.helpers.cjs.map +0 -1
  289. package/dist/scopes/helpers/filter.helpers.d.cts +0 -17
  290. package/dist/scopes/helpers/filter.helpers.js.map +0 -1
  291. package/dist/scopes/index.cjs +0 -1
  292. package/dist/types/index.d.cts +0 -45
  293. package/dist/utils/constants/index.cjs +0 -2
  294. package/dist/utils/constants/index.cjs.map +0 -1
  295. package/dist/utils/constants/index.d.cts +0 -22
  296. package/dist/utils/constants/index.js.map +0 -1
  297. package/dist/utils/db/index.cjs +0 -2
  298. package/dist/utils/db/index.cjs.map +0 -1
  299. package/dist/utils/db/index.js.map +0 -1
  300. package/dist/utils/helpers/index.cjs +0 -2
  301. package/dist/utils/helpers/index.cjs.map +0 -1
  302. package/dist/utils/helpers/index.d.cts +0 -31
  303. package/dist/utils/helpers/index.js.map +0 -1
  304. package/dist/utils/init.cjs +0 -2
  305. package/dist/utils/init.cjs.map +0 -1
  306. package/dist/utils/init.js.map +0 -1
  307. package/dist/utils/logger/index.cjs +0 -2
  308. package/dist/utils/logger/index.cjs.map +0 -1
  309. package/dist/utils/logger/index.js.map +0 -1
  310. package/dist/utils/scopeAttributes.cjs +0 -2
  311. package/dist/utils/scopeAttributes.cjs.map +0 -1
  312. package/dist/utils/scopeAttributes.js.map +0 -1
  313. package/dist/utils/validations/index.cjs +0 -2
  314. package/dist/utils/validations/index.cjs.map +0 -1
  315. package/dist/utils/validations/index.js.map +0 -1
  316. package/dist/utils/validations/schema/custom-fields.cjs +0 -2
  317. package/dist/utils/validations/schema/custom-fields.cjs.map +0 -1
  318. package/dist/utils/validations/schema/custom-fields.d.cts +0 -7
  319. package/dist/utils/validations/schema/custom-fields.js.map +0 -1
  320. package/dist/utils/validations/schema/validator-schema.cjs +0 -2
  321. package/dist/utils/validations/schema/validator-schema.cjs.map +0 -1
  322. package/dist/utils/validations/schema/validator-schema.js.map +0 -1
  323. package/dist/utils/validations/validators/index.cjs +0 -2
  324. package/dist/utils/validations/validators/index.cjs.map +0 -1
  325. package/dist/utils/validations/validators/index.js.map +0 -1
  326. package/dist/utils/validations/validators/select.validator.cjs +0 -2
  327. package/dist/utils/validations/validators/select.validator.cjs.map +0 -1
  328. package/dist/utils/validations/validators/select.validator.js.map +0 -1
  329. package/dist/utils/validations/validators/status.validator.cjs +0 -2
  330. package/dist/utils/validations/validators/status.validator.cjs.map +0 -1
  331. package/dist/utils/validations/validators/status.validator.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,2 +1,67 @@
1
- import e,{tryAddingTraceIdMiddleware as t}from"./utils/logger/index.js";import{CUSTOM_FIELDS_FILTER_SCOPE as n,CustomFieldDefinitionType as r,supportedEntities as i}from"./utils/constants/index.js";import a from"./models/CustomFieldDefinition.js";import o from"./models/CustomFieldValue.js";import s from"./models/CustomFieldEntries.js";import c from"./models/CustomValidator.js";import{initTables as l,initTestModels as u}from"./models/index.js";import d from"./api/index.js";import f from"./utils/db/index.js";import{generateCustomFieldSearchQueryPayload as p,generateRandomString as m}from"./utils/helpers/index.js";import{customFieldsSortScope as h}from"./scopes/filter.js";import{addHooks as g,addScopes as _,applyCustomAssociation as v,removeHooks as y}from"./utils/init.js";import{CustomFieldsSchema as b}from"./utils/validations/schema/custom-fields.js";var x=async(n,r,i)=>{t();let{models:a,useCustomFieldsEntries:o}=i;n&&n.use(`/api`,d);let s=i.sequelize??f(i.databaseConfig);return process.env.NODE_ENV===`test`&&await u(s),g(a,r,{useCustomFieldsEntries:o}),await l(s,i.getUser,{useCustomFieldsEntries:o}),_(a,r,{useCustomFieldsEntries:o}),v(a),e.debug(`sadot - custom fields finished initializing with models`,a),s};const S=(e,t)=>{y(e,t)};export{n as CUSTOM_FIELDS_FILTER_SCOPE,a as CustomFieldDefinition,r as CustomFieldDefinitionType,s as CustomFieldEntries,o as CustomFieldValue,b as CustomFieldsSchema,c as CustomValidator,h as customFieldsSortScope,x as default,S as disableCustomFields,p as generateCustomFieldSearchQueryPayload,m as generateRandomString,i as supportedEntities};
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.disableCustomFields = void 0;
33
+ const models_1 = require("./models");
34
+ const api_1 = __importDefault(require("./api"));
35
+ const db_1 = __importDefault(require("./utils/db"));
36
+ const logger_1 = __importStar(require("./utils/logger"));
37
+ const init_1 = require("./utils/init");
38
+ __exportStar(require("./utils/validations/schema/custom-fields"), exports);
39
+ __exportStar(require("./utils/constants"), exports);
40
+ __exportStar(require("./utils/helpers"), exports);
41
+ /**
42
+ * Adding custom fields enrichment to the models inside the MODELS_FILE_NAME json file
43
+ * @see {@link 'custom-fields/config'} for configurations
44
+ */
45
+ const useCustomFields = async (app, getModel, options) => {
46
+ (0, logger_1.tryAddingTraceIdMiddleware)().catch(() => null);
47
+ const { models, useCustomFieldsEntries } = options;
48
+ if (app) {
49
+ app.use('/api', api_1.default);
50
+ }
51
+ const sequelize = options.sequelize ?? (0, db_1.default)(options.databaseConfig);
52
+ if (process.env.NODE_ENV === 'test') {
53
+ await (0, models_1.initTestModels)(sequelize);
54
+ }
55
+ // The order is important
56
+ (0, init_1.addHooks)(models, getModel, { useCustomFieldsEntries });
57
+ await (0, models_1.initTables)(sequelize, options.getUser, { useCustomFieldsEntries });
58
+ (0, init_1.addScopes)(models, getModel, { useCustomFieldsEntries });
59
+ (0, init_1.applyCustomAssociation)(models);
60
+ logger_1.default.debug('sadot - custom fields finished initializing with models', models);
61
+ return sequelize;
62
+ };
63
+ exports.default = useCustomFields;
64
+ const disableCustomFields = (models, getModel) => {
65
+ (0, init_1.removeHooks)(models, getModel);
66
+ };
67
+ exports.disableCustomFields = disableCustomFields;
@@ -1,31 +1,25 @@
1
- import { CustomFieldDefinitionType } from "../utils/constants/index.js";
2
- import { CustomFieldValue } from "./CustomFieldValue.js";
3
- import "./index.js";
4
- import { CreateOptions } from "sequelize";
5
- import { Model } from "sequelize-typescript";
6
-
7
- //#region src/models/CustomFieldDefinition.d.ts
1
+ import { Model } from 'sequelize-typescript';
2
+ import { CustomFieldDefinitionType } from '../utils/constants';
3
+ import { CustomFieldValue } from '.';
8
4
  declare class CustomFieldDefinition extends Model {
9
- id: string;
10
- name: string;
11
- displayName?: string;
12
- fieldType: CustomFieldDefinitionType;
13
- validation?: any;
14
- entityId: string;
15
- entityType: string;
16
- modelType: string;
17
- description?: string;
18
- required?: boolean;
19
- disabled?: boolean;
20
- defaultValue?: any;
21
- createdAt?: Date;
22
- updatedAt?: Date;
23
- deletedAt?: Date;
24
- blockEditingFromUI: boolean;
25
- values: CustomFieldValue[];
26
- static displayNameDefaultValue(instance: CustomFieldDefinition): void;
27
- static afterSaveHandler(instance: CustomFieldDefinition, options: CreateOptions): void;
5
+ id: string;
6
+ name: string;
7
+ displayName?: string;
8
+ fieldType: CustomFieldDefinitionType;
9
+ validation?: any;
10
+ entityId: string; /** Client association entity id */
11
+ entityType: string; /** Client association entity type (demand source / fleet / etc.) */
12
+ modelType: string; /** Model type. e.g. Vehicle / StopPoint / etc. */
13
+ description?: string;
14
+ required?: boolean;
15
+ disabled?: boolean;
16
+ defaultValue?: any;
17
+ createdAt?: Date;
18
+ updatedAt?: Date;
19
+ deletedAt?: Date;
20
+ blockEditingFromUI: boolean;
21
+ values: CustomFieldValue[];
22
+ static displayNameDefaultValue(instance: CustomFieldDefinition): void;
23
+ static afterSaveHandler(instance: CustomFieldDefinition, options: any): void;
28
24
  }
29
- //#endregion
30
- export { CustomFieldDefinition };
31
- //# sourceMappingURL=CustomFieldDefinition.d.ts.map
25
+ export default CustomFieldDefinition;
@@ -1,2 +1,192 @@
1
- import e from"../utils/logger/index.js";import{CustomFieldDefinitionType as t}from"../utils/constants/index.js";import{CustomValidationTypes as n}from"../utils/validations/validators/index.js";import{sendDimEvent as r}from"../events/index.js";import{InvalidValueError as i,UnsupportedCustomFieldTypeError as a,UnsupportedCustomValidationError as o}from"../errors/index.js";import{validateValue as s}from"../utils/validations/index.js";import{__decorateMetadata as c}from"../_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.js";import{__decorate as l}from"../_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.js";import u from"./CustomFieldValue.js";import"./index.js";import{AfterSave as d,BeforeCreate as f,Column as p,DataType as m,DefaultScope as h,HasMany as g,Is as _,Model as v,PrimaryKey as y,Table as b}from"sequelize-typescript";var x,S,C,w,T,E;let D=class extends v{static displayNameDefaultValue(e){if(e?.displayName||(e.displayName=e.name),![null,void 0].includes(e.defaultValue)){let t=s(e.defaultValue,e.fieldType,e.validation);if(t.error)throw new i(e.defaultValue,e.name,t.error)}}static afterSaveHandler(e,t){t.transaction?t.transaction.afterCommit(()=>r(e)):r(e)}};l([y,p({type:m.UUID,defaultValue:m.UUIDV4,allowNull:!1}),c(`design:type`,String)],D.prototype,`id`,void 0),l([p({type:m.STRING,allowNull:!1}),c(`design:type`,String)],D.prototype,`name`,void 0),l([p({type:m.STRING}),c(`design:type`,String)],D.prototype,`displayName`,void 0),l([_(`SupportedType`,e=>{if(!Object.values(t).includes(e))throw new a(`"${e}" is not a supported type.`)}),p({type:m.STRING,allowNull:!1}),c(`design:type`,typeof(x=t!==void 0&&t)==`function`?x:Object)],D.prototype,`fieldType`,void 0),l([p({type:m.JSONB}),c(`design:type`,Object)],D.prototype,`validation`,void 0),l([p({type:m.UUID,allowNull:!1}),c(`design:type`,String)],D.prototype,`entityId`,void 0),l([p({type:m.STRING,allowNull:!1}),c(`design:type`,String)],D.prototype,`entityType`,void 0),l([p({type:m.STRING,allowNull:!1}),c(`design:type`,String)],D.prototype,`modelType`,void 0),l([p({type:m.TEXT}),c(`design:type`,String)],D.prototype,`description`,void 0),l([p({type:m.BOOLEAN,defaultValue:!1}),c(`design:type`,Boolean)],D.prototype,`required`,void 0),l([p({type:m.BOOLEAN,defaultValue:!1}),c(`design:type`,Boolean)],D.prototype,`disabled`,void 0),l([p({type:m.JSONB,allowNull:!0}),c(`design:type`,Object)],D.prototype,`defaultValue`,void 0),l([p({type:m.DATE,allowNull:!1}),c(`design:type`,typeof(S=typeof Date<`u`&&Date)==`function`?S:Object)],D.prototype,`createdAt`,void 0),l([p({type:m.DATE,allowNull:!0}),c(`design:type`,typeof(C=typeof Date<`u`&&Date)==`function`?C:Object)],D.prototype,`updatedAt`,void 0),l([p({type:m.DATE,allowNull:!0}),c(`design:type`,typeof(w=typeof Date<`u`&&Date)==`function`?w:Object)],D.prototype,`deletedAt`,void 0),l([p({type:m.BOOLEAN,defaultValue:!1,allowNull:!1}),c(`design:type`,Boolean)],D.prototype,`blockEditingFromUI`,void 0),l([g(()=>u),c(`design:type`,Array)],D.prototype,`values`,void 0),l([f,c(`design:type`,Function),c(`design:paramtypes`,[typeof(T=D!==void 0&&D)==`function`?T:Object]),c(`design:returntype`,void 0)],D,`displayNameDefaultValue`,null),l([d,c(`design:type`,Function),c(`design:paramtypes`,[typeof(E=D!==void 0&&D)==`function`?E:Object,Object]),c(`design:returntype`,void 0)],D,`afterSaveHandler`,null),D=l([h(()=>({where:{disabled:!1}})),b({tableName:`custom_field_definitions`,modelName:`CustomFieldDefinition`,indexes:[{name:`unique_name_model_type`,fields:[`model_type`,`entity_id`,`name`],unique:!0}],timestamps:!0,validate:{validationByType(){if(!this.validation&&n[this.fieldType])throw e.error(`No custom validation for custom field type ${this.fieldType} found`),new o(`Validation provided for "${this.fieldType}" is not supported`)}}})],D);var O=D;export{O as default};
2
- //# sourceMappingURL=CustomFieldDefinition.js.map
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sequelize_typescript_1 = require("sequelize-typescript");
16
+ const constants_1 = require("../utils/constants");
17
+ const validators_1 = require("../utils/validations/validators");
18
+ const _1 = require(".");
19
+ const events_1 = require("../events");
20
+ const errors_1 = require("../errors");
21
+ const logger_1 = __importDefault(require("../utils/logger"));
22
+ const validations_1 = require("../utils/validations");
23
+ let CustomFieldDefinition = class CustomFieldDefinition extends sequelize_typescript_1.Model {
24
+ static displayNameDefaultValue(instance) {
25
+ if (!instance?.displayName) {
26
+ // eslint-disable-next-line no-param-reassign
27
+ instance.displayName = instance.name;
28
+ }
29
+ if (![null, undefined].includes(instance.defaultValue)) {
30
+ const isValid = (0, validations_1.validateValue)(instance.defaultValue, instance.fieldType, instance.validation);
31
+ if (isValid.error) {
32
+ throw new errors_1.InvalidValueError(instance.defaultValue, instance.name, isValid.error);
33
+ }
34
+ }
35
+ }
36
+ static afterSaveHandler(instance, options) {
37
+ if (options.transaction) {
38
+ options.transaction.afterCommit(() => (0, events_1.sendDimEvent)(instance));
39
+ }
40
+ else {
41
+ (0, events_1.sendDimEvent)(instance);
42
+ }
43
+ }
44
+ };
45
+ __decorate([
46
+ sequelize_typescript_1.PrimaryKey,
47
+ (0, sequelize_typescript_1.Column)({
48
+ type: sequelize_typescript_1.DataType.UUID,
49
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
50
+ allowNull: false,
51
+ }),
52
+ __metadata("design:type", String)
53
+ ], CustomFieldDefinition.prototype, "id", void 0);
54
+ __decorate([
55
+ (0, sequelize_typescript_1.Column)({
56
+ type: sequelize_typescript_1.DataType.STRING,
57
+ allowNull: false,
58
+ }),
59
+ __metadata("design:type", String)
60
+ ], CustomFieldDefinition.prototype, "name", void 0);
61
+ __decorate([
62
+ (0, sequelize_typescript_1.Column)({
63
+ type: sequelize_typescript_1.DataType.STRING,
64
+ }),
65
+ __metadata("design:type", String)
66
+ ], CustomFieldDefinition.prototype, "displayName", void 0);
67
+ __decorate([
68
+ (0, sequelize_typescript_1.Is)('SupportedType', (value) => {
69
+ if (!Object.values(constants_1.CustomFieldDefinitionType).includes(value)) {
70
+ throw new errors_1.UnsupportedCustomFieldTypeError(`"${value}" is not a supported type.`);
71
+ }
72
+ }),
73
+ (0, sequelize_typescript_1.Column)({
74
+ type: sequelize_typescript_1.DataType.STRING,
75
+ allowNull: false,
76
+ }),
77
+ __metadata("design:type", String)
78
+ ], CustomFieldDefinition.prototype, "fieldType", void 0);
79
+ __decorate([
80
+ (0, sequelize_typescript_1.Column)({
81
+ type: sequelize_typescript_1.DataType.JSONB,
82
+ }),
83
+ __metadata("design:type", Object)
84
+ ], CustomFieldDefinition.prototype, "validation", void 0);
85
+ __decorate([
86
+ (0, sequelize_typescript_1.Column)({
87
+ type: sequelize_typescript_1.DataType.UUID,
88
+ allowNull: false,
89
+ }),
90
+ __metadata("design:type", String)
91
+ ], CustomFieldDefinition.prototype, "entityId", void 0);
92
+ __decorate([
93
+ (0, sequelize_typescript_1.Column)({
94
+ type: sequelize_typescript_1.DataType.STRING,
95
+ allowNull: false,
96
+ }),
97
+ __metadata("design:type", String)
98
+ ], CustomFieldDefinition.prototype, "entityType", void 0);
99
+ __decorate([
100
+ (0, sequelize_typescript_1.Column)({
101
+ type: sequelize_typescript_1.DataType.STRING,
102
+ allowNull: false,
103
+ }),
104
+ __metadata("design:type", String)
105
+ ], CustomFieldDefinition.prototype, "modelType", void 0);
106
+ __decorate([
107
+ (0, sequelize_typescript_1.Column)({
108
+ type: sequelize_typescript_1.DataType.TEXT,
109
+ }),
110
+ __metadata("design:type", String)
111
+ ], CustomFieldDefinition.prototype, "description", void 0);
112
+ __decorate([
113
+ (0, sequelize_typescript_1.Column)({
114
+ type: sequelize_typescript_1.DataType.BOOLEAN,
115
+ defaultValue: false,
116
+ }),
117
+ __metadata("design:type", Boolean)
118
+ ], CustomFieldDefinition.prototype, "required", void 0);
119
+ __decorate([
120
+ (0, sequelize_typescript_1.Column)({
121
+ type: sequelize_typescript_1.DataType.BOOLEAN,
122
+ defaultValue: false,
123
+ }),
124
+ __metadata("design:type", Boolean)
125
+ ], CustomFieldDefinition.prototype, "disabled", void 0);
126
+ __decorate([
127
+ (0, sequelize_typescript_1.Column)({
128
+ type: sequelize_typescript_1.DataType.JSONB,
129
+ allowNull: true,
130
+ }),
131
+ __metadata("design:type", Object)
132
+ ], CustomFieldDefinition.prototype, "defaultValue", void 0);
133
+ __decorate([
134
+ sequelize_typescript_1.Column,
135
+ __metadata("design:type", Date)
136
+ ], CustomFieldDefinition.prototype, "createdAt", void 0);
137
+ __decorate([
138
+ sequelize_typescript_1.Column,
139
+ __metadata("design:type", Date)
140
+ ], CustomFieldDefinition.prototype, "updatedAt", void 0);
141
+ __decorate([
142
+ sequelize_typescript_1.Column,
143
+ __metadata("design:type", Date)
144
+ ], CustomFieldDefinition.prototype, "deletedAt", void 0);
145
+ __decorate([
146
+ (0, sequelize_typescript_1.Column)({
147
+ type: sequelize_typescript_1.DataType.BOOLEAN,
148
+ defaultValue: false,
149
+ allowNull: false,
150
+ }),
151
+ __metadata("design:type", Boolean)
152
+ ], CustomFieldDefinition.prototype, "blockEditingFromUI", void 0);
153
+ __decorate([
154
+ (0, sequelize_typescript_1.HasMany)(() => _1.CustomFieldValue),
155
+ __metadata("design:type", Array)
156
+ ], CustomFieldDefinition.prototype, "values", void 0);
157
+ __decorate([
158
+ sequelize_typescript_1.BeforeCreate,
159
+ __metadata("design:type", Function),
160
+ __metadata("design:paramtypes", [CustomFieldDefinition]),
161
+ __metadata("design:returntype", void 0)
162
+ ], CustomFieldDefinition, "displayNameDefaultValue", null);
163
+ __decorate([
164
+ sequelize_typescript_1.AfterSave,
165
+ __metadata("design:type", Function),
166
+ __metadata("design:paramtypes", [CustomFieldDefinition, Object]),
167
+ __metadata("design:returntype", void 0)
168
+ ], CustomFieldDefinition, "afterSaveHandler", null);
169
+ CustomFieldDefinition = __decorate([
170
+ (0, sequelize_typescript_1.DefaultScope)(() => ({ where: { disabled: false } })),
171
+ (0, sequelize_typescript_1.Table)({
172
+ indexes: [
173
+ {
174
+ name: 'unique_name_model_type',
175
+ fields: ['model_type', 'entity_id', 'name'],
176
+ unique: true,
177
+ },
178
+ ],
179
+ timestamps: true,
180
+ validate: {
181
+ validationByType() {
182
+ // Verify the validation is provided if needed
183
+ if (!this.validation && validators_1.CustomValidationTypes[this.fieldType]) {
184
+ // TODO: enforce the validation-object schema based on the fieldType
185
+ logger_1.default.error(`No custom validation for custom field type ${this.fieldType} found`);
186
+ throw new errors_1.UnsupportedCustomValidationError(`Validation provided for "${this.fieldType}" is not supported`);
187
+ }
188
+ },
189
+ },
190
+ })
191
+ ], CustomFieldDefinition);
192
+ exports.default = CustomFieldDefinition;
@@ -1,16 +1,15 @@
1
- import { CreateOptions } from "sequelize";
2
- import { Model } from "sequelize-typescript";
3
-
4
- //#region src/models/CustomFieldEntries.d.ts
1
+ import { Model } from 'sequelize-typescript';
5
2
  declare class CustomFieldEntries extends Model {
6
- modelId: string;
7
- entityId: string;
8
- customFields: Record<string, any>;
9
- modelType: string;
10
- createdAt?: Date;
11
- updatedAt?: Date;
12
- static afterSaveHandler(instance: CustomFieldEntries[], options: CreateOptions): void;
3
+ /** The ID of the model of which this row hold the custom field entries of, e.g. vehicleId / stopPointId / etc. */
4
+ modelId: string;
5
+ /** The ID of the entity of which this row hold the custom field entries of, e.g. fleetId / etc. */
6
+ entityId: string;
7
+ /** A dictionary of customFields and values with the following structure: `{ customFieldName: 'CustomFieldValue' }` */
8
+ customFields: Record<string, any>;
9
+ /** The type of model which this custom field entry represents. e.g. Vehicle / StopPoint / etc. */
10
+ modelType: string;
11
+ createdAt?: Date;
12
+ updatedAt?: Date;
13
+ static afterSaveHandler(instance: CustomFieldEntries, options: any): void;
13
14
  }
14
- //#endregion
15
- export { CustomFieldEntries };
16
- //# sourceMappingURL=CustomFieldEntries.d.ts.map
15
+ export default CustomFieldEntries;
@@ -1,2 +1,123 @@
1
- import{sendDimEvent as e}from"../events/index.js";import{validateInstanceCustomFieldEntries as t}from"../utils/validations/index.js";import{__decorateMetadata as n}from"../_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.js";import{__decorate as r}from"../_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.js";import{getCustomFieldDefinitionsDictionary as i}from"../repository/definition.js";import{AfterUpsert as a,Column as o,DataType as s,Model as c,PrimaryKey as l,Table as u}from"sequelize-typescript";var d,f,p;let m=class extends c{static afterSaveHandler(t,n){n.transaction?n.transaction.afterCommit(()=>e(t[0])):e(t[0])}};r([l,o({type:s.UUID,allowNull:!1}),n(`design:type`,String)],m.prototype,`modelId`,void 0),r([o({type:s.UUID,allowNull:!1}),n(`design:type`,String)],m.prototype,`entityId`,void 0),r([o({type:s.JSONB,allowNull:!1,defaultValue:{}}),n(`design:type`,typeof(d=typeof Record<`u`&&Record)==`function`?d:Object)],m.prototype,`customFields`,void 0),r([o({type:s.STRING,allowNull:!1}),n(`design:type`,String)],m.prototype,`modelType`,void 0),r([o({type:s.DATE,allowNull:!1}),n(`design:type`,typeof(f=typeof Date<`u`&&Date)==`function`?f:Object)],m.prototype,`createdAt`,void 0),r([o({type:s.DATE,allowNull:!0}),n(`design:type`,typeof(p=typeof Date<`u`&&Date)==`function`?p:Object)],m.prototype,`updatedAt`,void 0),r([a,n(`design:type`,Function),n(`design:paramtypes`,[Array,Object]),n(`design:returntype`,void 0)],m,`afterSaveHandler`,null),m=r([u({tableName:`custom_field_entries`,modelName:`CustomFieldEntries`,timestamps:!0,indexes:[{name:`idx_cfe_custom_fields`,using:`gin`,operator:`jsonb_path_ops`,fields:[`custom_fields`]}],validate:{async validationByType(){if(!Object.keys(this.customFields??{}).length)return;let e=await i([this]);t(this,e)}}})],m);var h=m;export{h as default};
2
- //# sourceMappingURL=CustomFieldEntries.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ const sequelize_typescript_1 = require("sequelize-typescript");
36
+ const events_1 = require("../events");
37
+ const CustomFieldDefinitionRepo = __importStar(require("../repository/definition"));
38
+ const validations_1 = require("../utils/validations");
39
+ let CustomFieldEntries = class CustomFieldEntries extends sequelize_typescript_1.Model {
40
+ static afterSaveHandler(instance, options) {
41
+ if (options.transaction) {
42
+ options.transaction.afterCommit(() => (0, events_1.sendDimEvent)(instance[0]));
43
+ }
44
+ else {
45
+ (0, events_1.sendDimEvent)(instance[0]);
46
+ }
47
+ }
48
+ };
49
+ __decorate([
50
+ sequelize_typescript_1.PrimaryKey,
51
+ (0, sequelize_typescript_1.Column)({
52
+ type: sequelize_typescript_1.DataType.UUID,
53
+ allowNull: false,
54
+ })
55
+ /** The ID of the model of which this row hold the custom field entries of, e.g. vehicleId / stopPointId / etc. */
56
+ ,
57
+ __metadata("design:type", String)
58
+ ], CustomFieldEntries.prototype, "modelId", void 0);
59
+ __decorate([
60
+ (0, sequelize_typescript_1.Column)({
61
+ type: sequelize_typescript_1.DataType.UUID,
62
+ allowNull: false,
63
+ })
64
+ /** The ID of the entity of which this row hold the custom field entries of, e.g. fleetId / etc. */
65
+ ,
66
+ __metadata("design:type", String)
67
+ ], CustomFieldEntries.prototype, "entityId", void 0);
68
+ __decorate([
69
+ (0, sequelize_typescript_1.Column)({
70
+ type: sequelize_typescript_1.DataType.JSONB,
71
+ allowNull: false,
72
+ defaultValue: {},
73
+ })
74
+ /** A dictionary of customFields and values with the following structure: `{ customFieldName: 'CustomFieldValue' }` */
75
+ ,
76
+ __metadata("design:type", Object)
77
+ ], CustomFieldEntries.prototype, "customFields", void 0);
78
+ __decorate([
79
+ (0, sequelize_typescript_1.Column)({
80
+ type: sequelize_typescript_1.DataType.STRING,
81
+ allowNull: false,
82
+ })
83
+ /** The type of model which this custom field entry represents. e.g. Vehicle / StopPoint / etc. */
84
+ ,
85
+ __metadata("design:type", String)
86
+ ], CustomFieldEntries.prototype, "modelType", void 0);
87
+ __decorate([
88
+ sequelize_typescript_1.Column,
89
+ __metadata("design:type", Date)
90
+ ], CustomFieldEntries.prototype, "createdAt", void 0);
91
+ __decorate([
92
+ sequelize_typescript_1.Column,
93
+ __metadata("design:type", Date)
94
+ ], CustomFieldEntries.prototype, "updatedAt", void 0);
95
+ __decorate([
96
+ sequelize_typescript_1.AfterUpsert,
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", [CustomFieldEntries, Object]),
99
+ __metadata("design:returntype", void 0)
100
+ ], CustomFieldEntries, "afterSaveHandler", null);
101
+ CustomFieldEntries = __decorate([
102
+ (0, sequelize_typescript_1.Table)({
103
+ timestamps: true,
104
+ indexes: [
105
+ {
106
+ name: 'idx_cfe_custom_fields',
107
+ using: 'gin',
108
+ operator: 'jsonb_path_ops',
109
+ fields: ['custom_fields'],
110
+ },
111
+ ],
112
+ validate: {
113
+ async validationByType() {
114
+ if (!Object.keys(this.customFields ?? {}).length) {
115
+ return;
116
+ }
117
+ const definitionsByName = await CustomFieldDefinitionRepo.getCustomFieldDefinitionsDictionary([this]);
118
+ (0, validations_1.validateInstanceCustomFieldEntries)(this, definitionsByName);
119
+ },
120
+ },
121
+ })
122
+ ], CustomFieldEntries);
123
+ exports.default = CustomFieldEntries;
@@ -1,22 +1,16 @@
1
- import "./index.js";
2
- import { CustomFieldDefinition } from "./CustomFieldDefinition.js";
3
- import { CreateOptions } from "sequelize";
4
- import { Model } from "sequelize-typescript";
5
-
6
- //#region src/models/CustomFieldValue.d.ts
1
+ import { Model } from 'sequelize-typescript';
2
+ import { CustomFieldDefinition } from '.';
7
3
  declare class CustomFieldValue extends Model {
8
- modelId: string;
9
- customFieldDefinitionId: string;
10
- value: any;
11
- createdAt?: Date;
12
- updatedAt?: Date;
13
- deletedAt?: Date;
14
- customFieldDefinition: CustomFieldDefinition;
15
- private static validateValueAgainstDefinition;
16
- static validateCustomFieldValues(instances: CustomFieldValue[]): Promise<void>;
17
- static validateCustomFieldValue(instance: CustomFieldValue): Promise<void>;
18
- static afterSaveHandler(instance: CustomFieldValue[], options: CreateOptions): void;
4
+ modelId: string;
5
+ customFieldDefinitionId: string;
6
+ value: any;
7
+ createdAt?: Date;
8
+ updatedAt?: Date;
9
+ deletedAt?: Date;
10
+ customFieldDefinition: CustomFieldDefinition;
11
+ private static validateValueAgainstDefinition;
12
+ static validateCustomFieldValues(instances: CustomFieldValue[]): Promise<void>;
13
+ static validateCustomFieldValue(instance: CustomFieldValue): Promise<void>;
14
+ static afterSaveHandler(instance: CustomFieldValue, options: any): void;
19
15
  }
20
- //#endregion
21
- export { CustomFieldValue };
22
- //# sourceMappingURL=CustomFieldValue.d.ts.map
16
+ export default CustomFieldValue;