@autofleet/sadot 1.1.3 → 1.1.5-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 +27 -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 +482 -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 +104 -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 +120 -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.101.0/helpers/decorate.cjs +0 -1
  187. package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorate.js +0 -1
  188. package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorateMetadata.cjs +0 -1
  189. package/dist/_virtual/_@oxc-project_runtime@0.101.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
@@ -1,2 +1,53 @@
1
- import{__decorateMetadata as e}from"../../../_virtual/_@oxc-project_runtime@0.101.0/helpers/decorateMetadata.js";import{__decorate as t}from"../../../_virtual/_@oxc-project_runtime@0.101.0/helpers/decorate.js";import n from"./ContextTestModel.js";import{BelongsTo as r,Column as i,DataType as a,ForeignKey as o,Model as s,PrimaryKey as c,Table as l}from"sequelize-typescript";var u;let d=class extends s{};t([c,i({type:a.UUID,defaultValue:a.UUIDV4,allowNull:!1}),e(`design:type`,String)],d.prototype,`id`,void 0),t([o(()=>n),i({type:a.UUID}),e(`design:type`,String)],d.prototype,`contextId`,void 0),t([i({type:a.BOOLEAN}),e(`design:type`,Boolean)],d.prototype,`coolAttribute`,void 0),t([i({type:a.VIRTUAL}),e(`design:type`,Object)],d.prototype,`customFields`,void 0),t([r(()=>n),e(`design:type`,typeof(u=n!==void 0&&n)==`function`?u:Object)],d.prototype,`context`,void 0),d=t([l({createdAt:!1,updatedAt:!1,modelName:`ContextAwareTestModel`})],d);var f=d;export{f as default};
2
- //# sourceMappingURL=ContextAwareTestModel.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
+ /* eslint-disable @typescript-eslint/no-unused-vars */
16
+ const sequelize_typescript_1 = require("sequelize-typescript");
17
+ const ContextTestModel_1 = __importDefault(require("./ContextTestModel"));
18
+ let ContextAwareTestModel = class ContextAwareTestModel extends sequelize_typescript_1.Model {
19
+ };
20
+ __decorate([
21
+ sequelize_typescript_1.PrimaryKey,
22
+ (0, sequelize_typescript_1.Column)({
23
+ type: sequelize_typescript_1.DataType.UUID,
24
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
25
+ allowNull: false,
26
+ }),
27
+ __metadata("design:type", String)
28
+ ], ContextAwareTestModel.prototype, "id", void 0);
29
+ __decorate([
30
+ (0, sequelize_typescript_1.ForeignKey)(() => ContextTestModel_1.default),
31
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.UUID }),
32
+ __metadata("design:type", String)
33
+ ], ContextAwareTestModel.prototype, "contextId", void 0);
34
+ __decorate([
35
+ (0, sequelize_typescript_1.Column)({
36
+ type: sequelize_typescript_1.DataType.BOOLEAN,
37
+ }),
38
+ __metadata("design:type", Boolean)
39
+ ], ContextAwareTestModel.prototype, "coolAttribute", void 0);
40
+ __decorate([
41
+ (0, sequelize_typescript_1.Column)({
42
+ type: sequelize_typescript_1.DataType.VIRTUAL,
43
+ }),
44
+ __metadata("design:type", Object)
45
+ ], ContextAwareTestModel.prototype, "customFields", void 0);
46
+ __decorate([
47
+ (0, sequelize_typescript_1.BelongsTo)(() => ContextTestModel_1.default),
48
+ __metadata("design:type", ContextTestModel_1.default)
49
+ ], ContextAwareTestModel.prototype, "context", void 0);
50
+ ContextAwareTestModel = __decorate([
51
+ (0, sequelize_typescript_1.Table)({ createdAt: false, updatedAt: false })
52
+ ], ContextAwareTestModel);
53
+ exports.default = ContextAwareTestModel;
@@ -0,0 +1,13 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ declare enum EEntityTypes {
3
+ BUSINESS_MODEL = "businessModel",
4
+ CONTEXT = "context",
5
+ DEMAND_SOURCE = "demandSource",
6
+ FLEET = "fleet"
7
+ }
8
+ declare class ContextTestModel extends Model {
9
+ id: string;
10
+ entityId: string;
11
+ entityType: EEntityTypes;
12
+ }
13
+ export default ContextTestModel;
@@ -1,2 +1,47 @@
1
- import{__decorateMetadata as e}from"../../../_virtual/_@oxc-project_runtime@0.101.0/helpers/decorateMetadata.js";import{__decorate as t}from"../../../_virtual/_@oxc-project_runtime@0.101.0/helpers/decorate.js";import{Column as n,DataType as r,Model as i,PrimaryKey as a,Table as o}from"sequelize-typescript";var s=function(e){return e.BUSINESS_MODEL=`businessModel`,e.CONTEXT=`context`,e.DEMAND_SOURCE=`demandSource`,e.FLEET=`fleet`,e}(s||{});let c=class extends i{};t([a,n({defaultValue:r.UUIDV4,type:r.UUID}),e(`design:type`,String)],c.prototype,`id`,void 0),t([n({type:r.UUID}),e(`design:type`,String)],c.prototype,`entityId`,void 0),t([n({type:r.ENUM(...Object.values(s))}),e(`design:type`,String)],c.prototype,`entityType`,void 0),c=t([o({createdAt:!1,updatedAt:!1,modelName:`ContextTestModel`})],c);var l=c;export{l as default};
2
- //# sourceMappingURL=ContextTestModel.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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /* eslint-disable @typescript-eslint/no-unused-vars */
13
+ const sequelize_typescript_1 = require("sequelize-typescript");
14
+ // eslint-disable-next-line no-shadow
15
+ var EEntityTypes;
16
+ (function (EEntityTypes) {
17
+ EEntityTypes["BUSINESS_MODEL"] = "businessModel";
18
+ EEntityTypes["CONTEXT"] = "context";
19
+ EEntityTypes["DEMAND_SOURCE"] = "demandSource";
20
+ EEntityTypes["FLEET"] = "fleet";
21
+ })(EEntityTypes || (EEntityTypes = {}));
22
+ let ContextTestModel = class ContextTestModel extends sequelize_typescript_1.Model {
23
+ };
24
+ __decorate([
25
+ sequelize_typescript_1.PrimaryKey,
26
+ (0, sequelize_typescript_1.Column)({
27
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
28
+ type: sequelize_typescript_1.DataType.UUID,
29
+ }),
30
+ __metadata("design:type", String)
31
+ ], ContextTestModel.prototype, "id", void 0);
32
+ __decorate([
33
+ (0, sequelize_typescript_1.Column)({
34
+ type: sequelize_typescript_1.DataType.UUID,
35
+ }),
36
+ __metadata("design:type", String)
37
+ ], ContextTestModel.prototype, "entityId", void 0);
38
+ __decorate([
39
+ (0, sequelize_typescript_1.Column)({
40
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(EEntityTypes)),
41
+ }),
42
+ __metadata("design:type", String)
43
+ ], ContextTestModel.prototype, "entityType", void 0);
44
+ ContextTestModel = __decorate([
45
+ (0, sequelize_typescript_1.Table)({ createdAt: false, updatedAt: false })
46
+ ], ContextTestModel);
47
+ exports.default = ContextTestModel;
@@ -0,0 +1,36 @@
1
+ import { type Includeable, type Transaction, type FindOptions, type WhereOptions } from 'sequelize';
2
+ import { CustomFieldDefinition, type CustomFieldEntries } from '../models';
3
+ import type { CreateCustomFieldDefinition, UpdateCustomFieldDefinition } from '../types/definition';
4
+ import type { ModelOptions } from '../types';
5
+ export declare const create: (data: CreateCustomFieldDefinition) => Promise<CustomFieldDefinition>;
6
+ interface SadotFindOptions {
7
+ withDisabled?: boolean;
8
+ transaction?: Transaction;
9
+ include?: Includeable | Includeable[];
10
+ }
11
+ type SadotGetDefinitionsByEntityIdsOptions = FindOptions & {
12
+ modelOptions?: ModelOptions;
13
+ } & Pick<SadotFindOptions, 'withDisabled'>;
14
+ export declare const findAll: (where: WhereOptions, options?: SadotFindOptions) => Promise<CustomFieldDefinition[]>;
15
+ export declare const findByIds: (ids: string[], options?: SadotFindOptions) => Promise<CustomFieldDefinition[]>;
16
+ export declare const findById: (id: string, options?: Pick<SadotFindOptions, 'withDisabled'>) => Promise<CustomFieldDefinition | null>;
17
+ export declare const findByEntityIds: (modelType: string, entityIds: string[], options?: FindOptions & {
18
+ modelOptions?: ModelOptions;
19
+ }) => Promise<CustomFieldDefinition[]>;
20
+ export declare const findByWhere: (where: any) => Promise<CustomFieldDefinition | null>;
21
+ export declare const findDefinitionsByModels: (modelTypes: string[], options?: any) => Promise<CustomFieldDefinition[]>;
22
+ export declare const update: (id: string, data: UpdateCustomFieldDefinition) => Promise<CustomFieldDefinition>;
23
+ export declare const disable: (id: string) => Promise<[affectedCount: number]>;
24
+ export declare const destroy: (id: string) => Promise<number>;
25
+ /**
26
+ * Return the names of the required fields for a given model
27
+ */
28
+ export declare const getRequiredFields: (modelType: string, modelId: string | string[], entityId: string | string[], modelOptions?: ModelOptions) => Promise<string[]>;
29
+ /**
30
+ * @returns A promise resolving with a dictionary of custom field definitions by name.
31
+ * @throws A {@link MissingDefinitionError} if any of the custom fields doesn't have a definition.
32
+ */
33
+ export declare const getCustomFieldDefinitionsDictionary: (instances: CustomFieldEntries[], options?: SadotGetDefinitionsByEntityIdsOptions) => Promise<{
34
+ [definitionName: string]: CustomFieldDefinition;
35
+ }>;
36
+ export {};
@@ -1,2 +1,121 @@
1
- import{MissingDefinitionError as e}from"../errors/index.js";import t from"../models/CustomFieldDefinition.js";import"../models/index.js";import{Op as n}from"sequelize";const r=e=>t.create(e),i=(e,n={withDisabled:!1})=>(n.withDisabled?t.unscoped():t).scope(`userScope`).findAll({where:e,transaction:n.transaction,raw:!0,include:n.include}),a=(e,t={withDisabled:!1})=>i({id:{[n.in]:e}},t),o=(e,n={withDisabled:!1})=>{let{withDisabled:r}=n;return r?t.unscoped().scope(`userScope`).findByPk(e):t.scope(`userScope`).findByPk(e)},s=async(e,r,i={})=>{let{include:a,useEntityIdFromInclude:o}=i.modelOptions,s={modelType:e,...!o&&{entityId:{[n.in]:r}}};return t.findAll({where:s,transaction:i.transaction,include:a?.(r),raw:!0})},c=e=>t.scope(`userScope`).findOne({where:e}),l=async(e,n)=>(await t.scope(`userScope`).update(n,{where:{id:e},returning:!0,individualHooks:!0}))[1][0],u=async(t,{findAll:r,modelOptions:a={},withDisabled:o=!1,...s}={withDisabled:!1,modelOptions:{}})=>{let{modelType:c}=t[0]?.dataValues??{},l=new Set,u=[],d=new Set;t.forEach(e=>{let{dataValues:{modelId:t,entityId:n,customFields:r}}=e;u.push(t),d.add(n),Object.keys(r??{}).forEach(e=>{l.add(e)})});let f={modelType:c,entityId:{[n.in]:Array.from(d)},name:{[n.in]:Array.from(l)}},p=await(r??i)(f,{withDisabled:o,modelOptions:a,...s}),m=p.filter(e=>l.has(e.name)),h=Object.fromEntries(m.map(e=>[e.name,e]));if(!p?.length||m.length!==l.size)throw new e(Array.from(l).filter(e=>!h[e]));return h};export{r as create,i as findAll,s as findByEntityIds,o as findById,a as findByIds,c as findByWhere,u as getCustomFieldDefinitionsDictionary,l as update};
2
- //# sourceMappingURL=definition.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCustomFieldDefinitionsDictionary = exports.getRequiredFields = exports.destroy = exports.disable = exports.update = exports.findDefinitionsByModels = exports.findByWhere = exports.findByEntityIds = exports.findById = exports.findByIds = exports.findAll = exports.create = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const models_1 = require("../models");
6
+ const errors_1 = require("../errors");
7
+ const create = (data) => models_1.CustomFieldDefinition.create(data);
8
+ exports.create = create;
9
+ const findAll = (where, options = { withDisabled: false }) => {
10
+ const queryModel = options.withDisabled
11
+ ? models_1.CustomFieldDefinition.unscoped()
12
+ : models_1.CustomFieldDefinition;
13
+ return queryModel.scope('userScope').findAll({
14
+ where,
15
+ transaction: options.transaction,
16
+ raw: true,
17
+ include: options.include,
18
+ });
19
+ };
20
+ exports.findAll = findAll;
21
+ const findByIds = (ids, options = { withDisabled: false }) => (0, exports.findAll)({ id: { [sequelize_1.Op.in]: ids } }, options);
22
+ exports.findByIds = findByIds;
23
+ const findById = (id, options = { withDisabled: false }) => {
24
+ const { withDisabled } = options;
25
+ if (withDisabled) {
26
+ return models_1.CustomFieldDefinition.unscoped().scope('userScope').findByPk(id);
27
+ }
28
+ return models_1.CustomFieldDefinition.scope('userScope').findByPk(id);
29
+ };
30
+ exports.findById = findById;
31
+ const findByEntityIds = async (modelType, entityIds, options = {}) => {
32
+ const { include, useEntityIdFromInclude } = options.modelOptions;
33
+ const where = {
34
+ modelType,
35
+ ...(!useEntityIdFromInclude && { entityId: { [sequelize_1.Op.in]: entityIds } }),
36
+ };
37
+ return models_1.CustomFieldDefinition.findAll({
38
+ where,
39
+ transaction: options.transaction,
40
+ include: include?.(entityIds),
41
+ raw: true,
42
+ });
43
+ };
44
+ exports.findByEntityIds = findByEntityIds;
45
+ const findByWhere = (where) => models_1.CustomFieldDefinition.scope('userScope').findOne({
46
+ where,
47
+ });
48
+ exports.findByWhere = findByWhere;
49
+ const findDefinitionsByModels = async (modelTypes, options) => {
50
+ const query = { modelType: { [sequelize_1.Op.in]: modelTypes } };
51
+ return models_1.CustomFieldDefinition.findAll({
52
+ where: query,
53
+ transaction: options?.transaction,
54
+ });
55
+ };
56
+ exports.findDefinitionsByModels = findDefinitionsByModels;
57
+ const update = async (id, data) => {
58
+ const updatedDefinition = (await models_1.CustomFieldDefinition.scope('userScope').update(data, {
59
+ where: { id },
60
+ returning: true,
61
+ individualHooks: true,
62
+ }))[1][0];
63
+ return updatedDefinition;
64
+ };
65
+ exports.update = update;
66
+ const disable = (id) => models_1.CustomFieldDefinition.update({ disabled: true }, { where: { id } });
67
+ exports.disable = disable;
68
+ const destroy = (id) => models_1.CustomFieldDefinition.destroy({ where: { id } });
69
+ exports.destroy = destroy;
70
+ /**
71
+ * Return the names of the required fields for a given model
72
+ */
73
+ const getRequiredFields = async (modelType, modelId, entityId, modelOptions = {}) => {
74
+ const entityIds = Array.isArray(entityId) ? entityId : [entityId];
75
+ const { include, useEntityIdFromInclude } = modelOptions;
76
+ const where = {
77
+ modelType,
78
+ required: true,
79
+ ...(!useEntityIdFromInclude && { entityId: { [sequelize_1.Op.in]: entityIds } }),
80
+ };
81
+ const requiredFields = await models_1.CustomFieldDefinition.findAll({
82
+ where,
83
+ include: include?.(entityIds),
84
+ logging: true,
85
+ });
86
+ const requiredFieldsNames = requiredFields.map((definition) => definition.name);
87
+ return [...new Set(requiredFieldsNames)];
88
+ };
89
+ exports.getRequiredFields = getRequiredFields;
90
+ /**
91
+ * @returns A promise resolving with a dictionary of custom field definitions by name.
92
+ * @throws A {@link MissingDefinitionError} if any of the custom fields doesn't have a definition.
93
+ */
94
+ const getCustomFieldDefinitionsDictionary = async (instances, options = { withDisabled: false, modelOptions: {} }) => {
95
+ const { modelType } = instances[0]?.dataValues ?? {};
96
+ const customFields = new Set();
97
+ const modelIds = [];
98
+ const entityIds = new Set();
99
+ instances.forEach((instance) => {
100
+ const { dataValues: { modelId, entityId, customFields: instanceCustomFields } } = instance;
101
+ modelIds.push(modelId);
102
+ entityIds.add(entityId);
103
+ Object.keys(instanceCustomFields ?? {}).forEach((fieldName) => {
104
+ customFields.add(fieldName);
105
+ });
106
+ });
107
+ const where = {
108
+ modelType,
109
+ entityId: { [sequelize_1.Op.in]: Array.from(entityIds) },
110
+ name: { [sequelize_1.Op.in]: Array.from(customFields) },
111
+ };
112
+ const definitions = await (0, exports.findAll)(where, { ...options });
113
+ const matchedDefinitions = definitions.filter((def) => customFields.has(def.name));
114
+ const matchedDefinitionsByName = Object.fromEntries(matchedDefinitions.map((definition) => [definition.name, definition]));
115
+ if (!definitions?.length || matchedDefinitions.length !== customFields.size) {
116
+ const unmatchedCustomFields = Array.from(customFields).filter((customField) => !matchedDefinitionsByName[customField]);
117
+ throw new errors_1.MissingDefinitionError(unmatchedCustomFields);
118
+ }
119
+ return matchedDefinitionsByName;
120
+ };
121
+ exports.getCustomFieldDefinitionsDictionary = getCustomFieldDefinitionsDictionary;
@@ -0,0 +1,13 @@
1
+ import type { FindOptions, Includeable, Transaction } from 'sequelize';
2
+ import { CustomFieldEntries } from '../models';
3
+ import type { ModelOptions } from '../types';
4
+ type CustomFieldEntriesModelOptions = ModelOptions & {
5
+ include?: Includeable;
6
+ transaction?: Transaction;
7
+ };
8
+ export declare const findEntriesByModelId: (modelId: string, options?: CustomFieldEntriesModelOptions) => Promise<CustomFieldEntries>;
9
+ export declare const findEntriesByModelIds: (modelIds: string[], options?: CustomFieldEntriesModelOptions) => Promise<CustomFieldEntries[]>;
10
+ export declare const updateEntries: (modelId: string, modelType: string, customFields: Record<string, any>, identifiers: string[], options?: FindOptions & {
11
+ modelOptions?: ModelOptions;
12
+ }) => Promise<[CustomFieldEntries, boolean]>;
13
+ export {};
@@ -1,2 +1,92 @@
1
- import e from"../utils/logger/index.js";import{MissingDefinitionError as t}from"../errors/index.js";import{findAll as n}from"./definition.js";import r from"../models/CustomFieldEntries.js";import"../models/index.js";import{formatFunctions as i}from"./utils/formatValues.js";const a=async(e,t={})=>{let{transaction:n}=t;return r.findOne({where:{modelId:e},transaction:n})},o=async(e,t={})=>{let{transaction:n}=t;return r.findAll({where:{modelId:e},transaction:n})},s=async(a,o,s,c,l={})=>{let u=Object.keys(s);e.debug(`custom-fields: updating entries for ${o} ${a}`,{customFieldsNames:u,optionsKeys:l?Object.keys(l):null,customFields:s,identifiers:c});let{modelOptions:d,transaction:f}=l,p=await n({modelType:o,name:u,...!l.modelOptions?.useEntityIdFromInclude&&{entityId:c}},{withDisabled:!0,transaction:f,include:d.include?.(c)})??[],m=p.filter(e=>e.disabled);if(p.length!==u.length)throw e.warn(`custom-fields: missing definitions for ${o} ${a}`,{names:u,fieldDefinitions:p}),new t(u.filter(e=>!p.some(t=>t.name===e)));let h=m?.map(e=>e.name)||[],g=u.filter(e=>h.includes(e));g?.length>0&&e.warn(`custom-fields: trying to update disabled values: ${g.join(`, `)}`);let _=Object.fromEntries(p.map(e=>[e.name,e]));return Object.entries(s).filter(([e])=>i[_[e].fieldType]).forEach(([e,t])=>{let{fieldType:n}=_[e];s[e]=i[n](t)}),r.upsert({modelId:a,entityId:p[0].entityId,modelType:o,customFields:s},l)};export{a as findEntriesByModelId,o as findEntriesByModelIds,s as updateEntries};
2
- //# sourceMappingURL=entries.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 __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.updateEntries = exports.findEntriesByModelIds = exports.findEntriesByModelId = void 0;
30
+ const models_1 = require("../models");
31
+ const logger_1 = __importDefault(require("../utils/logger"));
32
+ const errors_1 = require("../errors");
33
+ const DefinitionRepo = __importStar(require("./definition"));
34
+ const formatValues_1 = require("./utils/formatValues");
35
+ const findEntriesByModelId = async (modelId, options = {}) => {
36
+ const { transaction } = options;
37
+ return models_1.CustomFieldEntries.findOne({
38
+ where: { modelId },
39
+ transaction,
40
+ });
41
+ };
42
+ exports.findEntriesByModelId = findEntriesByModelId;
43
+ const findEntriesByModelIds = async (modelIds, options = {}) => {
44
+ const { transaction } = options;
45
+ return models_1.CustomFieldEntries.findAll({
46
+ where: { modelId: modelIds },
47
+ transaction,
48
+ });
49
+ };
50
+ exports.findEntriesByModelIds = findEntriesByModelIds;
51
+ const updateEntries = async (modelId, modelType, customFields, identifiers, options = {}) => {
52
+ const customFieldsNames = Object.keys(customFields);
53
+ logger_1.default.debug(`custom-fields: updating entries for ${modelType} ${modelId}`, {
54
+ customFieldsNames,
55
+ optionsKeys: options ? Object.keys(options) : null,
56
+ customFields,
57
+ identifiers,
58
+ });
59
+ const { modelOptions, transaction } = options;
60
+ const where = {
61
+ modelType,
62
+ name: customFieldsNames,
63
+ ...(!options.modelOptions?.useEntityIdFromInclude && { entityId: identifiers }),
64
+ };
65
+ const fieldDefinitions = await DefinitionRepo.findAll(where, { withDisabled: true, transaction, include: modelOptions.include?.(identifiers) }) ?? [];
66
+ const disabledDefinitions = fieldDefinitions.filter((def) => def.disabled);
67
+ if (fieldDefinitions.length !== customFieldsNames.length) {
68
+ logger_1.default.warn(`custom-fields: missing definitions for ${modelType} ${modelId}`, { names: customFieldsNames, fieldDefinitions });
69
+ const missingDefinitions = customFieldsNames.filter((name) => !fieldDefinitions.some((def) => def.name === name));
70
+ throw new errors_1.MissingDefinitionError(missingDefinitions);
71
+ }
72
+ const disabledNames = disabledDefinitions?.map((def) => def.name) || [];
73
+ const valuesWithDisabledDefinitions = customFieldsNames.filter((name) => disabledNames.includes(name));
74
+ if (valuesWithDisabledDefinitions?.length > 0) {
75
+ logger_1.default.warn(`custom-fields: trying to update disabled values: ${valuesWithDisabledDefinitions.join(', ')}`);
76
+ }
77
+ const definitionsByName = Object.fromEntries(fieldDefinitions.map((definition) => [definition.name, definition]));
78
+ // If we need to format the value before we save it
79
+ Object.entries(customFields)
80
+ .filter(([definitionName]) => formatValues_1.formatFunctions[definitionsByName[definitionName].fieldType])
81
+ .forEach(([definitionName, value]) => {
82
+ const { fieldType } = definitionsByName[definitionName];
83
+ customFields[definitionName] = formatValues_1.formatFunctions[fieldType](value);
84
+ });
85
+ return models_1.CustomFieldEntries.upsert({
86
+ modelId,
87
+ entityId: fieldDefinitions[0].entityId,
88
+ modelType,
89
+ customFields,
90
+ }, options);
91
+ };
92
+ exports.updateEntries = updateEntries;
@@ -0,0 +1,3 @@
1
+ export declare const formatFunctions: {
2
+ date: (value: any) => string;
3
+ };
@@ -1,2 +1,16 @@
1
- import{CustomFieldDefinitionType as e}from"../../utils/constants/index.js";const t={[e.DATE]:e=>{if(e){let t=new Date(e);if(t.toString()===`Invalid Date`)throw Error(`Invalid date value: ${e}`);return t.toISOString()}return null}};export{t as formatFunctions};
2
- //# sourceMappingURL=formatValues.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatFunctions = void 0;
4
+ const constants_1 = require("../../utils/constants");
5
+ exports.formatFunctions = {
6
+ [constants_1.CustomFieldDefinitionType.DATE]: (value) => {
7
+ if (value) {
8
+ const date = new Date(value);
9
+ if (date.toString() === 'Invalid Date') {
10
+ throw new Error(`Invalid date value: ${value}`);
11
+ }
12
+ return date.toISOString();
13
+ }
14
+ return null;
15
+ },
16
+ };
@@ -0,0 +1,27 @@
1
+ import type { FindOptions, IncludeOptions, Transactionable } from 'sequelize';
2
+ import { CustomValidator } from '../models';
3
+ import type { ModelOptions } from '../types';
4
+ export interface FindValidatorOptions extends Transactionable {
5
+ withDisabled?: boolean;
6
+ attributes?: string[];
7
+ raw?: boolean;
8
+ include?: IncludeOptions[];
9
+ }
10
+ export interface ValidatorAttributes {
11
+ entityId: string;
12
+ entityType: string;
13
+ modelType: string;
14
+ schema: CustomValidator['schema'];
15
+ disabled?: boolean;
16
+ [key: string]: unknown;
17
+ }
18
+ export declare const create: (validatorAttributes: ValidatorAttributes, options?: Transactionable) => Promise<CustomValidator>;
19
+ export declare const findAll: (where?: {}, options?: FindOptions & {
20
+ modelOptions?: ModelOptions;
21
+ withDisabled?: boolean;
22
+ }) => Promise<CustomValidator[]>;
23
+ export declare const findAllByModelType: (modelType: string, entityId: string, options?: FindOptions & {
24
+ modelOptions?: ModelOptions;
25
+ }) => Promise<CustomValidator[]>;
26
+ export declare const update: (id: string, updates: Partial<ValidatorAttributes>, options?: Transactionable) => Promise<[number, CustomValidator[]]>;
27
+ export declare const disable: (id: string, options?: Transactionable) => Promise<[number, CustomValidator[]]>;
@@ -1,2 +1,69 @@
1
- import e from"../utils/logger/index.js";import t from"../models/CustomValidator.js";import"../models/index.js";const n=async(n,r={})=>(e.debug(`custom-validator - create validator`),await t.create(n,r)),r=async(n={},r={})=>{e.debug(`custom-validator - find all validators`);let{transaction:i,withDisabled:a,include:o,attributes:s,raw:c}=r,l;return l=a?await t.unscoped().scope(`userScope`).findAll({where:n,transaction:i,include:o,attributes:s,raw:c}):await t.scope([`defaultScope`,`userScope`]).findAll({where:n,transaction:i,include:o,attributes:s,raw:c}),l},i=async(t,n,i={})=>(e.debug(`custom-validator - find all validators by model type`),r({modelType:t,...!i?.modelOptions?.useEntityIdFromInclude&&{entityId:n}},{...i,include:i?.modelOptions?.include?.(n)})),a=async(n,r,i)=>(e.debug(`custom-validator - update validator`),t.update(r,{where:{id:n},returning:!0,...i})),o=async(t,n)=>(e.debug(`custom-validator - disable validator`),a(t,{disabled:!0},n));export{n as create,o as disable,r as findAll,i as findAllByModelType,a as update};
2
- //# sourceMappingURL=validator.js.map
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.disable = exports.update = exports.findAllByModelType = exports.findAll = exports.create = void 0;
7
+ const logger_1 = __importDefault(require("../utils/logger"));
8
+ const models_1 = require("../models");
9
+ const create = async (validatorAttributes, options = {}) => {
10
+ logger_1.default.debug('custom-validator - create validator');
11
+ // Use unknown type to bypass TypeScript errors while maintaining compatibility
12
+ const validator = await models_1.CustomValidator.create(validatorAttributes, options);
13
+ return validator;
14
+ };
15
+ exports.create = create;
16
+ const findAll = async (where = {}, options = {}) => {
17
+ logger_1.default.debug('custom-validator - find all validators');
18
+ const { transaction, withDisabled, include, attributes, raw, } = options;
19
+ let validators;
20
+ if (withDisabled) {
21
+ // If withDisabled is true, use unscoped to ignore the default scope that filters disabled items
22
+ // Apply the userScope separately to maintain permission filtering
23
+ validators = await models_1.CustomValidator.unscoped().scope('userScope').findAll({
24
+ where,
25
+ transaction,
26
+ include,
27
+ attributes,
28
+ raw,
29
+ });
30
+ }
31
+ else {
32
+ // Use defaultScope and userScope to filter both disabled and by permissions
33
+ // The defaultScope keeps only non-disabled validators
34
+ validators = await models_1.CustomValidator.scope(['defaultScope', 'userScope']).findAll({
35
+ where,
36
+ transaction,
37
+ include,
38
+ attributes,
39
+ raw,
40
+ });
41
+ }
42
+ return validators;
43
+ };
44
+ exports.findAll = findAll;
45
+ const findAllByModelType = async (modelType, entityId, options = {}) => {
46
+ logger_1.default.debug('custom-validator - find all validators by model type');
47
+ return (0, exports.findAll)({
48
+ modelType,
49
+ ...(!options?.modelOptions?.useEntityIdFromInclude && { entityId }),
50
+ }, {
51
+ ...options,
52
+ include: options?.modelOptions?.include?.(entityId),
53
+ });
54
+ };
55
+ exports.findAllByModelType = findAllByModelType;
56
+ const update = async (id, updates, options) => {
57
+ logger_1.default.debug('custom-validator - update validator');
58
+ return models_1.CustomValidator.update(updates, {
59
+ where: { id },
60
+ returning: true,
61
+ ...options,
62
+ });
63
+ };
64
+ exports.update = update;
65
+ const disable = async (id, options) => {
66
+ logger_1.default.debug('custom-validator - disable validator');
67
+ return (0, exports.update)(id, { disabled: true }, options);
68
+ };
69
+ exports.disable = disable;
@@ -0,0 +1,28 @@
1
+ import type { FindOptions } from 'sequelize';
2
+ import { CustomFieldValue } from '../models';
3
+ import type { CreateCustomFieldValue, ValuesToUpdate } from '../types/value';
4
+ import type { ModelOptions } from '../types';
5
+ export declare const findByModelIdAndDefinition: (modelId: string, customFieldDefinitionId: string) => Promise<CustomFieldValue[]>;
6
+ export declare const create: (data: CreateCustomFieldValue, withAssociations?: boolean) => Promise<CustomFieldValue>;
7
+ export declare const findAllValues: () => Promise<CustomFieldValue[]>;
8
+ /**
9
+ * Get all values for model instance id (with their definitions)
10
+ * @param modelId
11
+ * @returns CustomFieldValue[]
12
+ */
13
+ export declare const findValuesByModelId: (modelId: string) => Promise<CustomFieldValue[]>;
14
+ /**
15
+ * Retrieves custom field values for given model IDs
16
+ * @param modelIds - An array of model IDs to query custom field values for.
17
+ * @param options - Optional configuration object.
18
+ */
19
+ export declare const findValuesByModelIds: (modelIds: string[], options?: any) => Promise<CustomFieldValue[]>;
20
+ /**
21
+ * Try to update custom field values for a model instance.
22
+ * Create new value record if not exists, but fails if value's definition not exist.
23
+ * Return the updated values
24
+ */
25
+ export declare const updateValues: (modelType: string, modelId: string, identifiers: string[], valuesToUpdate: ValuesToUpdate, options?: FindOptions & {
26
+ modelOptions?: ModelOptions;
27
+ }) => Promise<CustomFieldValue[]>;
28
+ export declare const deleteValue: (id: string, options?: any) => Promise<any>;