@autofleet/sadot 1.6.18-beta.2 → 1.6.18-beta.20

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 (158) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.cjs +11 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.js +10 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.cjs +8 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.js +7 -0
  5. package/dist/_virtual/rolldown_runtime.cjs +43 -0
  6. package/dist/{chunk-DJulfCLt.js → _virtual/rolldown_runtime.js} +1 -2
  7. package/dist/api/index.cjs +12 -0
  8. package/dist/api/index.js +11 -0
  9. package/dist/api/v1/definition/index.cjs +113 -0
  10. package/dist/api/v1/definition/index.js +112 -0
  11. package/dist/api/v1/definition/validations.cjs +128 -0
  12. package/dist/api/v1/definition/validations.js +125 -0
  13. package/dist/api/v1/errors.cjs +14 -0
  14. package/dist/api/v1/errors.js +13 -0
  15. package/dist/api/v1/field-policies/index.cjs +104 -0
  16. package/dist/api/v1/field-policies/index.js +103 -0
  17. package/dist/api/v1/index.cjs +16 -0
  18. package/dist/api/v1/index.js +15 -0
  19. package/dist/api/v1/validator/index.cjs +119 -0
  20. package/dist/api/v1/validator/index.js +118 -0
  21. package/dist/api/v1/validator/validations.cjs +40 -0
  22. package/dist/api/v1/validator/validations.d.cts +22 -0
  23. package/dist/api/v1/validator/validations.d.ts +22 -0
  24. package/dist/api/v1/validator/validations.js +38 -0
  25. package/dist/errors/index.cjs +62 -0
  26. package/dist/errors/index.js +55 -0
  27. package/dist/events/index.cjs +52 -0
  28. package/dist/events/index.js +50 -0
  29. package/dist/hooks/enrich.cjs +175 -0
  30. package/dist/hooks/enrich.js +175 -0
  31. package/dist/hooks/find.cjs +22 -0
  32. package/dist/hooks/find.js +22 -0
  33. package/dist/hooks/hooks.cjs +310 -0
  34. package/dist/hooks/hooks.js +302 -0
  35. package/dist/hooks/index.cjs +3 -0
  36. package/dist/hooks/index.js +5 -0
  37. package/dist/hooks/utils/updateInstanceValues.cjs +27 -0
  38. package/dist/hooks/utils/updateInstanceValues.js +27 -0
  39. package/dist/index.cjs +48 -33508
  40. package/dist/index.d.cts +13 -396
  41. package/dist/index.d.ts +14 -394
  42. package/dist/index.js +21 -33435
  43. package/dist/init-state.cjs +56 -0
  44. package/dist/init-state.d.cts +35 -0
  45. package/dist/init-state.d.ts +35 -0
  46. package/dist/init-state.js +55 -0
  47. package/dist/mat-path-state.cjs +10 -0
  48. package/dist/mat-path-state.js +9 -0
  49. package/dist/migrations/001-create-core-tables.cjs +70 -0
  50. package/dist/migrations/001-create-core-tables.js +68 -0
  51. package/dist/migrations/002-create-custom-field-entries.cjs +27 -0
  52. package/dist/migrations/002-create-custom-field-entries.js +25 -0
  53. package/dist/migrations/003-create-custom-field-model-type-map.cjs +35 -0
  54. package/dist/migrations/003-create-custom-field-model-type-map.js +33 -0
  55. package/dist/migrations/004-create-field-policy-tables.cjs +29 -0
  56. package/dist/migrations/004-create-field-policy-tables.js +27 -0
  57. package/dist/migrations/005-add-entity-type-to-field-policies.cjs +20 -0
  58. package/dist/migrations/005-add-entity-type-to-field-policies.js +18 -0
  59. package/dist/migrations/index.cjs +94 -0
  60. package/dist/migrations/index.js +95 -0
  61. package/dist/models/CustomFieldDefinition.cjs +147 -0
  62. package/dist/models/CustomFieldDefinition.d.cts +40 -0
  63. package/dist/models/CustomFieldDefinition.d.ts +40 -0
  64. package/dist/models/CustomFieldDefinition.js +146 -0
  65. package/dist/models/CustomFieldEntries.cjs +71 -0
  66. package/dist/models/CustomFieldEntries.d.cts +15 -0
  67. package/dist/models/CustomFieldEntries.d.ts +15 -0
  68. package/dist/models/CustomFieldEntries.js +70 -0
  69. package/dist/models/CustomFieldModelTypeMap.cjs +62 -0
  70. package/dist/models/CustomFieldModelTypeMap.d.cts +14 -0
  71. package/dist/models/CustomFieldModelTypeMap.d.ts +14 -0
  72. package/dist/models/CustomFieldModelTypeMap.js +61 -0
  73. package/dist/models/CustomFieldValue.cjs +109 -0
  74. package/dist/models/CustomFieldValue.d.cts +20 -0
  75. package/dist/models/CustomFieldValue.d.ts +20 -0
  76. package/dist/models/CustomFieldValue.js +108 -0
  77. package/dist/models/CustomValidator.cjs +68 -0
  78. package/dist/models/CustomValidator.d.cts +18 -0
  79. package/dist/models/CustomValidator.d.ts +18 -0
  80. package/dist/models/CustomValidator.js +67 -0
  81. package/dist/models/FieldPolicy.cjs +54 -0
  82. package/dist/models/FieldPolicy.d.cts +25 -0
  83. package/dist/models/FieldPolicy.d.ts +25 -0
  84. package/dist/models/FieldPolicy.js +53 -0
  85. package/dist/models/index.cjs +163 -0
  86. package/dist/models/index.d.ts +7 -0
  87. package/dist/models/index.js +161 -0
  88. package/dist/models/tests/AssociatedTestModel.cjs +51 -0
  89. package/dist/models/tests/AssociatedTestModel.js +50 -0
  90. package/dist/models/tests/TestModel.cjs +43 -0
  91. package/dist/models/tests/TestModel.js +42 -0
  92. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs +35 -0
  93. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js +34 -0
  94. package/dist/models/tests/contextAwareModels/ContextTestModel.cjs +33 -0
  95. package/dist/models/tests/contextAwareModels/ContextTestModel.js +32 -0
  96. package/dist/repository/definition.cjs +221 -0
  97. package/dist/repository/definition.js +212 -0
  98. package/dist/repository/entries.cjs +69 -0
  99. package/dist/repository/entries.js +67 -0
  100. package/dist/repository/field-policy.cjs +69 -0
  101. package/dist/repository/field-policy.d.cts +35 -0
  102. package/dist/repository/field-policy.d.ts +35 -0
  103. package/dist/repository/field-policy.js +59 -0
  104. package/dist/repository/utils/formatValues.cjs +14 -0
  105. package/dist/repository/utils/formatValues.js +14 -0
  106. package/dist/repository/validator.cjs +58 -0
  107. package/dist/repository/validator.js +54 -0
  108. package/dist/repository/value.cjs +77 -0
  109. package/dist/repository/value.js +76 -0
  110. package/dist/scopes/filter.cjs +56 -0
  111. package/dist/scopes/filter.d.cts +22 -0
  112. package/dist/scopes/filter.d.ts +22 -0
  113. package/dist/scopes/filter.js +54 -0
  114. package/dist/scopes/helpers/filter.helpers.cjs +152 -0
  115. package/dist/scopes/helpers/filter.helpers.d.cts +16 -0
  116. package/dist/scopes/helpers/filter.helpers.d.ts +16 -0
  117. package/dist/scopes/helpers/filter.helpers.js +147 -0
  118. package/dist/scopes/index.cjs +1 -0
  119. package/dist/scopes/index.js +3 -0
  120. package/dist/types/index.d.cts +75 -0
  121. package/dist/types/index.d.ts +76 -0
  122. package/dist/utils/constants/index.cjs +32 -0
  123. package/dist/utils/constants/index.d.cts +23 -0
  124. package/dist/utils/constants/index.d.ts +23 -0
  125. package/dist/utils/constants/index.js +29 -0
  126. package/dist/utils/db/index.cjs +15 -0
  127. package/dist/utils/db/index.js +14 -0
  128. package/dist/utils/helpers/index.cjs +23 -0
  129. package/dist/utils/helpers/index.d.cts +30 -0
  130. package/dist/utils/helpers/index.d.ts +30 -0
  131. package/dist/utils/helpers/index.js +21 -0
  132. package/dist/utils/init.cjs +115 -0
  133. package/dist/utils/init.js +111 -0
  134. package/dist/utils/logger/index.cjs +15 -0
  135. package/dist/utils/logger/index.js +12 -0
  136. package/dist/utils/scopeAttributes.cjs +12 -0
  137. package/dist/utils/scopeAttributes.js +11 -0
  138. package/dist/utils/validations/index.cjs +34 -0
  139. package/dist/utils/validations/index.js +32 -0
  140. package/dist/utils/validations/schema/custom-fields.cjs +9 -0
  141. package/dist/utils/validations/schema/custom-fields.d.cts +6 -0
  142. package/dist/utils/validations/schema/custom-fields.d.ts +6 -0
  143. package/dist/utils/validations/schema/custom-fields.js +7 -0
  144. package/dist/utils/validations/schema/validator-schema.cjs +102 -0
  145. package/dist/utils/validations/schema/validator-schema.js +99 -0
  146. package/dist/utils/validations/validators/index.cjs +45 -0
  147. package/dist/utils/validations/validators/index.js +42 -0
  148. package/dist/utils/validations/validators/multi-select-dropdown.validator.cjs +7 -0
  149. package/dist/utils/validations/validators/multi-select-dropdown.validator.js +7 -0
  150. package/dist/utils/validations/validators/multi-select-status.validator.cjs +10 -0
  151. package/dist/utils/validations/validators/multi-select-status.validator.js +10 -0
  152. package/dist/utils/validations/validators/multi-select.helpers.cjs +12 -0
  153. package/dist/utils/validations/validators/multi-select.helpers.js +10 -0
  154. package/dist/utils/validations/validators/select.validator.cjs +12 -0
  155. package/dist/utils/validations/validators/select.validator.js +10 -0
  156. package/dist/utils/validations/validators/status.validator.cjs +12 -0
  157. package/dist/utils/validations/validators/status.validator.js +10 -0
  158. package/package.json +3 -3
@@ -0,0 +1,11 @@
1
+
2
+ //#region \0@oxc-project+runtime@0.103.0/helpers/decorate.js
3
+ function __decorate(decorators, target, key, desc) {
4
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6
+ 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;
7
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
8
+ }
9
+
10
+ //#endregion
11
+ exports.__decorate = __decorate;
@@ -0,0 +1,10 @@
1
+ //#region \0@oxc-project+runtime@0.103.0/helpers/decorate.js
2
+ function __decorate(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
+
9
+ //#endregion
10
+ export { __decorate };
@@ -0,0 +1,8 @@
1
+
2
+ //#region \0@oxc-project+runtime@0.103.0/helpers/decorateMetadata.js
3
+ function __decorateMetadata(k, v) {
4
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
5
+ }
6
+
7
+ //#endregion
8
+ exports.__decorateMetadata = __decorateMetadata;
@@ -0,0 +1,7 @@
1
+ //#region \0@oxc-project+runtime@0.103.0/helpers/decorateMetadata.js
2
+ function __decorateMetadata(k, v) {
3
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4
+ }
5
+
6
+ //#endregion
7
+ export { __decorateMetadata };
@@ -0,0 +1,43 @@
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (all, symbols) => {
9
+ let target = {};
10
+ for (var name in all) {
11
+ __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ }
16
+ if (symbols) {
17
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
18
+ }
19
+ return target;
20
+ };
21
+ var __copyProps = (to, from, except, desc) => {
22
+ if (from && typeof from === "object" || typeof from === "function") {
23
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
24
+ key = keys[i];
25
+ if (!__hasOwnProp.call(to, key) && key !== except) {
26
+ __defProp(to, key, {
27
+ get: ((k) => from[k]).bind(null, key),
28
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
29
+ });
30
+ }
31
+ }
32
+ }
33
+ return to;
34
+ };
35
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
36
+ value: mod,
37
+ enumerable: true
38
+ }) : target, mod));
39
+
40
+ //#endregion
41
+
42
+ exports.__export = __export;
43
+ exports.__toESM = __toESM;
@@ -2,7 +2,6 @@ import { createRequire } from "node:module";
2
2
 
3
3
  //#region rolldown:runtime
4
4
  var __defProp = Object.defineProperty;
5
- var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
6
5
  var __export = (all, symbols) => {
7
6
  let target = {};
8
7
  for (var name in all) {
@@ -19,4 +18,4 @@ var __export = (all, symbols) => {
19
18
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
20
19
 
21
20
  //#endregion
22
- export { __export as n, __require as r, __commonJSMin as t };
21
+ export { __export, __require };
@@ -0,0 +1,12 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_index = require('../utils/logger/index.cjs');
3
+ const require_index$1 = require('./v1/index.cjs');
4
+ let _autofleet_node_common = require("@autofleet/node-common");
5
+
6
+ //#region src/api/index.ts
7
+ const router = (0, _autofleet_node_common.Router)({ logger: require_index.default });
8
+ router.use("/v1", require_index$1.default);
9
+ var api_default = router;
10
+
11
+ //#endregion
12
+ exports.default = api_default;
@@ -0,0 +1,11 @@
1
+ import logger_default from "../utils/logger/index.js";
2
+ import v1_default from "./v1/index.js";
3
+ import { Router } from "@autofleet/node-common";
4
+
5
+ //#region src/api/index.ts
6
+ const router = Router({ logger: logger_default });
7
+ router.use("/v1", v1_default);
8
+ var api_default = router;
9
+
10
+ //#endregion
11
+ export { api_default as default };
@@ -0,0 +1,113 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_index = require('../../../utils/logger/index.cjs');
3
+ const require_definition = require('../../../repository/definition.cjs');
4
+ const require_errors = require('../errors.cjs');
5
+ const require_validations = require('./validations.cjs');
6
+ const require_mat_path_state = require('../../../mat-path-state.cjs');
7
+ let _autofleet_errors = require("@autofleet/errors");
8
+ let _autofleet_node_common = require("@autofleet/node-common");
9
+
10
+ //#region src/api/v1/definition/index.ts
11
+ const router = (0, _autofleet_node_common.Router)({ logger: require_index.default });
12
+ const ENTITY = "CustomFieldDefinition";
13
+ const toPascalCase = (str) => str.replace(/(^\w|-\w)/g, (subStr) => subStr.replace(/-/, "").toUpperCase());
14
+ /**
15
+ * Create
16
+ */
17
+ router.post("/", async (req, res) => {
18
+ const { modelName } = req.params;
19
+ const modelType = toPascalCase(modelName);
20
+ try {
21
+ const validatedPayload = await require_validations.validateCustomFieldDefinitionCreation(req.body);
22
+ const customFieldDefinition = await require_definition.create({
23
+ ...validatedPayload,
24
+ modelType
25
+ });
26
+ return res.status(201).json(customFieldDefinition);
27
+ } catch (err) {
28
+ require_index.default.error("Failed to create custom field definition", err);
29
+ return require_errors.default(err, res, {
30
+ logger: require_index.default,
31
+ message: `Error in create ${ENTITY} request`
32
+ });
33
+ }
34
+ });
35
+ /**
36
+ * Get by id
37
+ */
38
+ router.get("/:customFieldDefinitionId", async (req, res) => {
39
+ const { customFieldDefinitionId } = req.params;
40
+ try {
41
+ const customFieldDefinition = await require_definition.findById(customFieldDefinitionId);
42
+ if (!customFieldDefinition) throw new _autofleet_errors.ResourceNotFoundError();
43
+ return res.json(customFieldDefinition);
44
+ } catch (err) {
45
+ require_index.default.error("Failed to fetch custom field definition", err);
46
+ return require_errors.default(err, res, {
47
+ logger: require_index.default,
48
+ message: `Error in get ${ENTITY} request`
49
+ });
50
+ }
51
+ });
52
+ /**
53
+ * Get all
54
+ */
55
+ router.get("/", async (req, res) => {
56
+ const { params: { modelName }, query: { entityIds, modelTypeId } } = req;
57
+ const modelType = toPascalCase(modelName);
58
+ try {
59
+ const applyEntityIdsFilter = !require_mat_path_state.matPathState.isMatPathEnabled?.() && entityIds && entityIds.length > 0;
60
+ if (modelTypeId) {
61
+ const customFieldDefinitions$1 = await require_definition.findByModelTypeId(modelTypeId, {
62
+ withDisabled: true,
63
+ modelType,
64
+ entityIds: applyEntityIdsFilter ? entityIds : void 0
65
+ });
66
+ return res.json(customFieldDefinitions$1);
67
+ }
68
+ const where = {
69
+ modelType,
70
+ ...applyEntityIdsFilter && { entityId: entityIds }
71
+ };
72
+ const customFieldDefinitions = await require_definition.findAll(where, {
73
+ withDisabled: true,
74
+ enrichWithModelTypeIds: true
75
+ });
76
+ return res.json(customFieldDefinitions);
77
+ } catch (err) {
78
+ require_index.default.error("Failed to fetch custom field definitions", err);
79
+ return require_errors.default(err, res, {
80
+ logger: require_index.default,
81
+ message: `Error in get all ${ENTITY} request`
82
+ });
83
+ }
84
+ });
85
+ /**
86
+ * Update
87
+ */
88
+ router.patch("/:customFieldDefinitionId", async (req, res) => {
89
+ const { customFieldDefinitionId, modelName } = req.params;
90
+ const modelType = toPascalCase(modelName);
91
+ try {
92
+ const validatedPayload = await require_validations.validateCustomFieldDefinitionUpdate(req.body);
93
+ if (!await require_definition.findByWhere({
94
+ id: customFieldDefinitionId,
95
+ modelType
96
+ })) throw new _autofleet_errors.ResourceNotFoundError();
97
+ const updatedCustomFieldDefinition = await require_definition.update(customFieldDefinitionId, {
98
+ ...validatedPayload,
99
+ modelType
100
+ });
101
+ return res.status(200).json(updatedCustomFieldDefinition);
102
+ } catch (err) {
103
+ require_index.default.error("Failed to patch custom field definition", err);
104
+ return require_errors.default(err, res, {
105
+ logger: require_index.default,
106
+ message: `Error in update ${ENTITY} request`
107
+ });
108
+ }
109
+ });
110
+ var definition_default = router;
111
+
112
+ //#endregion
113
+ exports.default = definition_default;
@@ -0,0 +1,112 @@
1
+ import logger_default from "../../../utils/logger/index.js";
2
+ import { create, findAll, findById, findByModelTypeId, findByWhere, update } from "../../../repository/definition.js";
3
+ import errors_default from "../errors.js";
4
+ import { validateCustomFieldDefinitionCreation, validateCustomFieldDefinitionUpdate } from "./validations.js";
5
+ import { matPathState } from "../../../mat-path-state.js";
6
+ import { ResourceNotFoundError } from "@autofleet/errors";
7
+ import { Router } from "@autofleet/node-common";
8
+
9
+ //#region src/api/v1/definition/index.ts
10
+ const router = Router({ logger: logger_default });
11
+ const ENTITY = "CustomFieldDefinition";
12
+ const toPascalCase = (str) => str.replace(/(^\w|-\w)/g, (subStr) => subStr.replace(/-/, "").toUpperCase());
13
+ /**
14
+ * Create
15
+ */
16
+ router.post("/", async (req, res) => {
17
+ const { modelName } = req.params;
18
+ const modelType = toPascalCase(modelName);
19
+ try {
20
+ const validatedPayload = await validateCustomFieldDefinitionCreation(req.body);
21
+ const customFieldDefinition = await create({
22
+ ...validatedPayload,
23
+ modelType
24
+ });
25
+ return res.status(201).json(customFieldDefinition);
26
+ } catch (err) {
27
+ logger_default.error("Failed to create custom field definition", err);
28
+ return errors_default(err, res, {
29
+ logger: logger_default,
30
+ message: `Error in create ${ENTITY} request`
31
+ });
32
+ }
33
+ });
34
+ /**
35
+ * Get by id
36
+ */
37
+ router.get("/:customFieldDefinitionId", async (req, res) => {
38
+ const { customFieldDefinitionId } = req.params;
39
+ try {
40
+ const customFieldDefinition = await findById(customFieldDefinitionId);
41
+ if (!customFieldDefinition) throw new ResourceNotFoundError();
42
+ return res.json(customFieldDefinition);
43
+ } catch (err) {
44
+ logger_default.error("Failed to fetch custom field definition", err);
45
+ return errors_default(err, res, {
46
+ logger: logger_default,
47
+ message: `Error in get ${ENTITY} request`
48
+ });
49
+ }
50
+ });
51
+ /**
52
+ * Get all
53
+ */
54
+ router.get("/", async (req, res) => {
55
+ const { params: { modelName }, query: { entityIds, modelTypeId } } = req;
56
+ const modelType = toPascalCase(modelName);
57
+ try {
58
+ const applyEntityIdsFilter = !matPathState.isMatPathEnabled?.() && entityIds && entityIds.length > 0;
59
+ if (modelTypeId) {
60
+ const customFieldDefinitions$1 = await findByModelTypeId(modelTypeId, {
61
+ withDisabled: true,
62
+ modelType,
63
+ entityIds: applyEntityIdsFilter ? entityIds : void 0
64
+ });
65
+ return res.json(customFieldDefinitions$1);
66
+ }
67
+ const where = {
68
+ modelType,
69
+ ...applyEntityIdsFilter && { entityId: entityIds }
70
+ };
71
+ const customFieldDefinitions = await findAll(where, {
72
+ withDisabled: true,
73
+ enrichWithModelTypeIds: true
74
+ });
75
+ return res.json(customFieldDefinitions);
76
+ } catch (err) {
77
+ logger_default.error("Failed to fetch custom field definitions", err);
78
+ return errors_default(err, res, {
79
+ logger: logger_default,
80
+ message: `Error in get all ${ENTITY} request`
81
+ });
82
+ }
83
+ });
84
+ /**
85
+ * Update
86
+ */
87
+ router.patch("/:customFieldDefinitionId", async (req, res) => {
88
+ const { customFieldDefinitionId, modelName } = req.params;
89
+ const modelType = toPascalCase(modelName);
90
+ try {
91
+ const validatedPayload = await validateCustomFieldDefinitionUpdate(req.body);
92
+ if (!await findByWhere({
93
+ id: customFieldDefinitionId,
94
+ modelType
95
+ })) throw new ResourceNotFoundError();
96
+ const updatedCustomFieldDefinition = await update(customFieldDefinitionId, {
97
+ ...validatedPayload,
98
+ modelType
99
+ });
100
+ return res.status(200).json(updatedCustomFieldDefinition);
101
+ } catch (err) {
102
+ logger_default.error("Failed to patch custom field definition", err);
103
+ return errors_default(err, res, {
104
+ logger: logger_default,
105
+ message: `Error in update ${ENTITY} request`
106
+ });
107
+ }
108
+ });
109
+ var definition_default = router;
110
+
111
+ //#endregion
112
+ export { definition_default as default };
@@ -0,0 +1,128 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_index = require('../../../utils/constants/index.cjs');
3
+ let joi = require("joi");
4
+ joi = require_rolldown_runtime.__toESM(joi);
5
+
6
+ //#region src/api/v1/definition/validations.ts
7
+ const FileValidationSchema = joi.default.object({
8
+ name: joi.default.string().required(),
9
+ type: joi.default.string(),
10
+ size: joi.default.string(),
11
+ addedBy: joi.default.string().uuid()
12
+ });
13
+ const statusValidationObject = joi.default.object({
14
+ value: joi.default.string().required(),
15
+ color: joi.default.string().required()
16
+ });
17
+ const stringOptionsSchema = joi.default.array().required().items(joi.default.string()).min(1).unique();
18
+ const statusOptionsSchema = joi.default.array().required().items(statusValidationObject).min(1).unique("value");
19
+ /**
20
+ * Schema for the validation of custom field definition
21
+ * The only custom validation is for
22
+ * {@link CustomFieldDefinitionType.SELECT SELECT},
23
+ * {@link CustomFieldDefinitionType.MULTI_SELECT_DROPDOWN MULTI_SELECT_DROPDOWN},
24
+ * {@link CustomFieldDefinitionType.STATUS STATUS},
25
+ * and
26
+ * {@link CustomFieldDefinitionType.MULTI_SELECT_STATUS MULTI_SELECT_STATUS}
27
+ * field types.
28
+ * The rest of the field types are validated by Joi
29
+ */
30
+ const ValidationSchema = joi.default.when("fieldType", {
31
+ switch: [
32
+ {
33
+ is: require_index.CustomFieldDefinitionType.SELECT,
34
+ then: stringOptionsSchema
35
+ },
36
+ {
37
+ is: require_index.CustomFieldDefinitionType.MULTI_SELECT_DROPDOWN,
38
+ then: stringOptionsSchema
39
+ },
40
+ {
41
+ is: require_index.CustomFieldDefinitionType.STATUS,
42
+ then: statusOptionsSchema
43
+ },
44
+ {
45
+ is: require_index.CustomFieldDefinitionType.MULTI_SELECT_STATUS,
46
+ then: statusOptionsSchema
47
+ }
48
+ ],
49
+ otherwise: joi.default.forbidden()
50
+ });
51
+ const multiSelectDefaultValueSchema = joi.default.array().items(joi.default.string()).unique().allow(null);
52
+ const DefaultValueSchema = joi.default.when("fieldType", { switch: [
53
+ {
54
+ is: require_index.CustomFieldDefinitionType.BOOLEAN,
55
+ then: joi.default.boolean().allow(null)
56
+ },
57
+ {
58
+ is: require_index.CustomFieldDefinitionType.DATE,
59
+ then: joi.default.date().allow(null)
60
+ },
61
+ {
62
+ is: require_index.CustomFieldDefinitionType.DATETIME,
63
+ then: joi.default.date().allow(null)
64
+ },
65
+ {
66
+ is: require_index.CustomFieldDefinitionType.FILE,
67
+ then: joi.default.array().items(FileValidationSchema).allow(null)
68
+ },
69
+ {
70
+ is: require_index.CustomFieldDefinitionType.IMAGE,
71
+ then: joi.default.array().items(joi.default.string().uri()).allow(null)
72
+ },
73
+ {
74
+ is: require_index.CustomFieldDefinitionType.NUMBER,
75
+ then: joi.default.number().allow(null)
76
+ },
77
+ {
78
+ is: require_index.CustomFieldDefinitionType.SELECT,
79
+ then: joi.default.string().allow(null)
80
+ },
81
+ {
82
+ is: require_index.CustomFieldDefinitionType.STATUS,
83
+ then: joi.default.string().allow(null)
84
+ },
85
+ {
86
+ is: require_index.CustomFieldDefinitionType.TEXT,
87
+ then: joi.default.string().allow(null)
88
+ },
89
+ {
90
+ is: require_index.CustomFieldDefinitionType.MULTI_SELECT_STATUS,
91
+ then: multiSelectDefaultValueSchema
92
+ },
93
+ {
94
+ is: require_index.CustomFieldDefinitionType.MULTI_SELECT_DROPDOWN,
95
+ then: multiSelectDefaultValueSchema
96
+ }
97
+ ] });
98
+ const CustomFieldDefinitionCreationSchema = joi.default.object({
99
+ name: joi.default.string().required(),
100
+ displayName: joi.default.string().required(),
101
+ validation: ValidationSchema,
102
+ defaultValue: DefaultValueSchema,
103
+ fieldType: joi.default.string().valid(...Object.values(require_index.CustomFieldDefinitionType)).required(),
104
+ entityId: joi.default.string().guid().required(),
105
+ entityType: joi.default.string().required(),
106
+ description: joi.default.string(),
107
+ required: joi.default.boolean(),
108
+ disabled: joi.default.boolean(),
109
+ blockEditingFromUI: joi.default.boolean(),
110
+ modelTypeIds: joi.default.array().items(joi.default.string().guid())
111
+ }).oxor("required", "blockEditingFromUI", { isPresent: (value) => value === true });
112
+ const CustomFieldDefinitionUpdateSchema = joi.default.object({
113
+ displayName: joi.default.string(),
114
+ validation: ValidationSchema,
115
+ defaultValue: DefaultValueSchema,
116
+ fieldType: joi.default.string().valid(...Object.values(require_index.CustomFieldDefinitionType)),
117
+ description: joi.default.string().allow(null),
118
+ required: joi.default.boolean(),
119
+ disabled: joi.default.boolean(),
120
+ blockEditingFromUI: joi.default.boolean(),
121
+ modelTypeIds: joi.default.array().items(joi.default.string().guid())
122
+ }).oxor("required", "blockEditingFromUI", { isPresent: (value) => value === true });
123
+ const validateCustomFieldDefinitionCreation = (payload) => CustomFieldDefinitionCreationSchema.validateAsync(payload, { abortEarly: false });
124
+ const validateCustomFieldDefinitionUpdate = (payload) => CustomFieldDefinitionUpdateSchema.validateAsync(payload, { abortEarly: false });
125
+
126
+ //#endregion
127
+ exports.validateCustomFieldDefinitionCreation = validateCustomFieldDefinitionCreation;
128
+ exports.validateCustomFieldDefinitionUpdate = validateCustomFieldDefinitionUpdate;
@@ -0,0 +1,125 @@
1
+ import { CustomFieldDefinitionType } from "../../../utils/constants/index.js";
2
+ import Joi from "joi";
3
+
4
+ //#region src/api/v1/definition/validations.ts
5
+ const FileValidationSchema = Joi.object({
6
+ name: Joi.string().required(),
7
+ type: Joi.string(),
8
+ size: Joi.string(),
9
+ addedBy: Joi.string().uuid()
10
+ });
11
+ const statusValidationObject = Joi.object({
12
+ value: Joi.string().required(),
13
+ color: Joi.string().required()
14
+ });
15
+ const stringOptionsSchema = Joi.array().required().items(Joi.string()).min(1).unique();
16
+ const statusOptionsSchema = Joi.array().required().items(statusValidationObject).min(1).unique("value");
17
+ /**
18
+ * Schema for the validation of custom field definition
19
+ * The only custom validation is for
20
+ * {@link CustomFieldDefinitionType.SELECT SELECT},
21
+ * {@link CustomFieldDefinitionType.MULTI_SELECT_DROPDOWN MULTI_SELECT_DROPDOWN},
22
+ * {@link CustomFieldDefinitionType.STATUS STATUS},
23
+ * and
24
+ * {@link CustomFieldDefinitionType.MULTI_SELECT_STATUS MULTI_SELECT_STATUS}
25
+ * field types.
26
+ * The rest of the field types are validated by Joi
27
+ */
28
+ const ValidationSchema = Joi.when("fieldType", {
29
+ switch: [
30
+ {
31
+ is: CustomFieldDefinitionType.SELECT,
32
+ then: stringOptionsSchema
33
+ },
34
+ {
35
+ is: CustomFieldDefinitionType.MULTI_SELECT_DROPDOWN,
36
+ then: stringOptionsSchema
37
+ },
38
+ {
39
+ is: CustomFieldDefinitionType.STATUS,
40
+ then: statusOptionsSchema
41
+ },
42
+ {
43
+ is: CustomFieldDefinitionType.MULTI_SELECT_STATUS,
44
+ then: statusOptionsSchema
45
+ }
46
+ ],
47
+ otherwise: Joi.forbidden()
48
+ });
49
+ const multiSelectDefaultValueSchema = Joi.array().items(Joi.string()).unique().allow(null);
50
+ const DefaultValueSchema = Joi.when("fieldType", { switch: [
51
+ {
52
+ is: CustomFieldDefinitionType.BOOLEAN,
53
+ then: Joi.boolean().allow(null)
54
+ },
55
+ {
56
+ is: CustomFieldDefinitionType.DATE,
57
+ then: Joi.date().allow(null)
58
+ },
59
+ {
60
+ is: CustomFieldDefinitionType.DATETIME,
61
+ then: Joi.date().allow(null)
62
+ },
63
+ {
64
+ is: CustomFieldDefinitionType.FILE,
65
+ then: Joi.array().items(FileValidationSchema).allow(null)
66
+ },
67
+ {
68
+ is: CustomFieldDefinitionType.IMAGE,
69
+ then: Joi.array().items(Joi.string().uri()).allow(null)
70
+ },
71
+ {
72
+ is: CustomFieldDefinitionType.NUMBER,
73
+ then: Joi.number().allow(null)
74
+ },
75
+ {
76
+ is: CustomFieldDefinitionType.SELECT,
77
+ then: Joi.string().allow(null)
78
+ },
79
+ {
80
+ is: CustomFieldDefinitionType.STATUS,
81
+ then: Joi.string().allow(null)
82
+ },
83
+ {
84
+ is: CustomFieldDefinitionType.TEXT,
85
+ then: Joi.string().allow(null)
86
+ },
87
+ {
88
+ is: CustomFieldDefinitionType.MULTI_SELECT_STATUS,
89
+ then: multiSelectDefaultValueSchema
90
+ },
91
+ {
92
+ is: CustomFieldDefinitionType.MULTI_SELECT_DROPDOWN,
93
+ then: multiSelectDefaultValueSchema
94
+ }
95
+ ] });
96
+ const CustomFieldDefinitionCreationSchema = Joi.object({
97
+ name: Joi.string().required(),
98
+ displayName: Joi.string().required(),
99
+ validation: ValidationSchema,
100
+ defaultValue: DefaultValueSchema,
101
+ fieldType: Joi.string().valid(...Object.values(CustomFieldDefinitionType)).required(),
102
+ entityId: Joi.string().guid().required(),
103
+ entityType: Joi.string().required(),
104
+ description: Joi.string(),
105
+ required: Joi.boolean(),
106
+ disabled: Joi.boolean(),
107
+ blockEditingFromUI: Joi.boolean(),
108
+ modelTypeIds: Joi.array().items(Joi.string().guid())
109
+ }).oxor("required", "blockEditingFromUI", { isPresent: (value) => value === true });
110
+ const CustomFieldDefinitionUpdateSchema = Joi.object({
111
+ displayName: Joi.string(),
112
+ validation: ValidationSchema,
113
+ defaultValue: DefaultValueSchema,
114
+ fieldType: Joi.string().valid(...Object.values(CustomFieldDefinitionType)),
115
+ description: Joi.string().allow(null),
116
+ required: Joi.boolean(),
117
+ disabled: Joi.boolean(),
118
+ blockEditingFromUI: Joi.boolean(),
119
+ modelTypeIds: Joi.array().items(Joi.string().guid())
120
+ }).oxor("required", "blockEditingFromUI", { isPresent: (value) => value === true });
121
+ const validateCustomFieldDefinitionCreation = (payload) => CustomFieldDefinitionCreationSchema.validateAsync(payload, { abortEarly: false });
122
+ const validateCustomFieldDefinitionUpdate = (payload) => CustomFieldDefinitionUpdateSchema.validateAsync(payload, { abortEarly: false });
123
+
124
+ //#endregion
125
+ export { validateCustomFieldDefinitionCreation, validateCustomFieldDefinitionUpdate };
@@ -0,0 +1,14 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ let sequelize = require("sequelize");
3
+ let joi = require("joi");
4
+ let _autofleet_errors = require("@autofleet/errors");
5
+
6
+ //#region src/api/v1/errors.ts
7
+ var errors_default = (err, res, additionalData) => {
8
+ let error = err;
9
+ if ([joi.ValidationError, sequelize.ValidationError].some((ErrClass) => err instanceof ErrClass)) error = new _autofleet_errors.BadRequest([err]);
10
+ return (0, _autofleet_errors.handleError)(error, res, additionalData);
11
+ };
12
+
13
+ //#endregion
14
+ exports.default = errors_default;
@@ -0,0 +1,13 @@
1
+ import { ValidationError } from "sequelize";
2
+ import { ValidationError as ValidationError$1 } from "joi";
3
+ import { BadRequest, handleError } from "@autofleet/errors";
4
+
5
+ //#region src/api/v1/errors.ts
6
+ var errors_default = (err, res, additionalData) => {
7
+ let error = err;
8
+ if ([ValidationError$1, ValidationError].some((ErrClass) => err instanceof ErrClass)) error = new BadRequest([err]);
9
+ return handleError(error, res, additionalData);
10
+ };
11
+
12
+ //#endregion
13
+ export { errors_default as default };