@autofleet/sadot 1.2.0 → 1.2.1-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.
- package/.nvmrc +1 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.js +12 -2
- package/dist/api/v1/definition/index.d.ts +3 -0
- package/dist/api/v1/definition/index.js +116 -2
- package/dist/api/v1/definition/validations.d.ts +2 -0
- package/dist/api/v1/definition/validations.js +77 -2
- package/dist/api/v1/errors.d.ts +4 -0
- package/dist/api/v1/errors.js +12 -2
- package/dist/api/v1/index.d.ts +3 -0
- package/dist/api/v1/index.js +13 -2
- package/dist/api/v1/validator/index.d.ts +3 -0
- package/dist/api/v1/validator/index.js +143 -2
- package/dist/api/v1/validator/validations.d.ts +6 -23
- package/dist/api/v1/validator/validations.js +38 -2
- package/dist/errors/index.d.ts +24 -0
- package/dist/errors/index.js +66 -3
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.js +54 -2
- package/dist/hooks/create.d.ts +10 -0
- package/dist/hooks/create.js +95 -0
- package/dist/hooks/enrich.d.ts +25 -0
- package/dist/hooks/enrich.js +198 -2
- package/dist/hooks/find.d.ts +1 -0
- package/dist/hooks/find.js +29 -2
- package/dist/hooks/hooks.d.ts +17 -0
- package/dist/hooks/hooks.js +388 -2
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/index.js +17 -1
- package/dist/hooks/update.d.ts +10 -0
- package/dist/hooks/update.js +49 -0
- package/dist/hooks/utils/updateInstanceValues.d.ts +15 -0
- package/dist/hooks/utils/updateInstanceValues.js +50 -2
- package/dist/hooks/workaround.d.ts +10 -0
- package/dist/hooks/workaround.js +37 -0
- package/dist/index.d.ts +12 -22
- package/dist/index.js +67 -2
- package/dist/models/CustomFieldDefinition.d.ts +23 -31
- package/dist/models/CustomFieldDefinition.js +192 -2
- package/dist/models/CustomFieldEntries.d.ts +13 -14
- package/dist/models/CustomFieldEntries.js +123 -2
- package/dist/models/CustomFieldValue.d.ts +14 -19
- package/dist/models/CustomFieldValue.js +151 -2
- package/dist/models/CustomValidator.d.ts +15 -17
- package/dist/models/CustomValidator.js +98 -2
- package/dist/models/index.d.ts +18 -7
- package/dist/models/index.js +131 -2
- package/dist/models/tests/AssociatedTestModel.d.ts +12 -0
- package/dist/models/tests/AssociatedTestModel.js +71 -2
- package/dist/models/tests/TestModel.d.ts +12 -0
- package/dist/models/tests/TestModel.js +69 -2
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.d.ts +10 -0
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js +53 -2
- package/dist/models/tests/contextAwareModels/ContextTestModel.d.ts +13 -0
- package/dist/models/tests/contextAwareModels/ContextTestModel.js +47 -2
- package/dist/repository/definition.d.ts +36 -0
- package/dist/repository/definition.js +121 -2
- package/dist/repository/entries.d.ts +13 -0
- package/dist/repository/entries.js +92 -2
- package/dist/repository/utils/formatValues.d.ts +3 -0
- package/dist/repository/utils/formatValues.js +16 -2
- package/dist/repository/validator.d.ts +27 -0
- package/dist/repository/validator.js +69 -2
- package/dist/repository/value.d.ts +28 -0
- package/dist/repository/value.js +124 -2
- package/dist/scopes/filter.d.ts +29 -22
- package/dist/scopes/filter.js +75 -2
- package/dist/scopes/helpers/filter.helpers.d.ts +40 -15
- package/dist/scopes/helpers/filter.helpers.js +183 -25
- package/dist/scopes/index.d.ts +2 -0
- package/dist/scopes/index.js +6 -1
- package/dist/tests/api/test-api.d.ts +2 -0
- package/dist/tests/api/test-api.js +38 -0
- package/dist/tests/functional/searching/index.d.ts +8 -0
- package/dist/tests/functional/searching/index.js +44 -0
- package/dist/tests/helpers/commonHooks.d.ts +6 -0
- package/dist/tests/helpers/commonHooks.js +62 -0
- package/dist/tests/helpers/database-config.d.ts +16 -0
- package/dist/tests/helpers/database-config.js +17 -0
- package/dist/tests/helpers/index.d.ts +7 -0
- package/dist/tests/helpers/index.js +33 -0
- package/dist/tests/mocks/definition.mock.d.ts +48 -0
- package/dist/tests/mocks/definition.mock.js +78 -0
- package/dist/tests/mocks/events.mock.d.ts +4 -0
- package/dist/tests/mocks/events.mock.js +21 -0
- package/dist/tests/mocks/testModel.d.ts +12 -0
- package/dist/tests/mocks/testModel.js +35 -0
- package/dist/types/definition/index.d.ts +25 -0
- package/dist/types/definition/index.js +2 -0
- package/dist/types/entries/index.d.ts +25 -0
- package/dist/types/entries/index.js +2 -0
- package/dist/types/index.d.ts +46 -48
- package/dist/types/index.js +2 -0
- package/dist/types/value/index.d.ts +15 -0
- package/dist/types/value/index.js +2 -0
- package/dist/utils/constants/index.d.ts +17 -20
- package/dist/utils/constants/index.js +22 -2
- package/dist/utils/db/index.d.ts +4 -0
- package/dist/utils/db/index.js +24 -2
- package/dist/utils/helpers/index.d.ts +23 -28
- package/dist/utils/helpers/index.js +40 -2
- package/dist/utils/init.d.ts +7 -0
- package/dist/utils/init.js +112 -2
- package/dist/utils/logger/index.d.ts +3 -0
- package/dist/utils/logger/index.js +42 -2
- package/dist/utils/scopeAttributes.d.ts +2 -0
- package/dist/utils/scopeAttributes.js +11 -2
- package/dist/utils/validations/index.d.ts +8 -0
- package/dist/utils/validations/index.js +41 -2
- package/dist/utils/validations/schema/custom-fields.d.ts +2 -6
- package/dist/utils/validations/schema/custom-fields.js +9 -2
- package/dist/utils/validations/schema/validator-schema.d.ts +9 -0
- package/dist/utils/validations/schema/validator-schema.js +95 -2
- package/dist/utils/validations/type.d.ts +15 -0
- package/dist/utils/validations/type.js +2 -0
- package/dist/utils/validations/validators/index.d.ts +14 -0
- package/dist/utils/validations/validators/index.js +40 -2
- package/dist/utils/validations/validators/select.validator.d.ts +5 -0
- package/dist/utils/validations/validators/select.validator.js +12 -2
- package/dist/utils/validations/validators/status.validator.d.ts +12 -0
- package/dist/utils/validations/validators/status.validator.js +15 -2
- package/package.json +39 -40
- package/src/api/index.ts +10 -0
- package/src/api/v1/definition/index.ts +104 -0
- package/src/api/v1/definition/validations.ts +75 -0
- package/src/api/v1/errors.ts +13 -0
- package/src/api/v1/index.ts +11 -0
- package/src/api/v1/validator/index.ts +141 -0
- package/src/api/v1/validator/validations.ts +39 -0
- package/src/errors/index.ts +70 -0
- package/src/events/index.ts +63 -0
- package/src/hooks/create.ts +81 -0
- package/src/hooks/enrich.ts +255 -0
- package/src/hooks/find.ts +27 -0
- package/src/hooks/hooks.ts +464 -0
- package/src/hooks/index.ts +20 -0
- package/src/hooks/update.ts +55 -0
- package/src/hooks/utils/updateInstanceValues.ts +63 -0
- package/src/hooks/workaround.ts +47 -0
- package/src/index.ts +52 -0
- package/src/models/CustomFieldDefinition.ts +162 -0
- package/src/models/CustomFieldEntries.ts +81 -0
- package/src/models/CustomFieldValue.ts +118 -0
- package/src/models/CustomValidator.ts +78 -0
- package/src/models/index.ts +165 -0
- package/src/models/tests/AssociatedTestModel.ts +57 -0
- package/src/models/tests/TestModel.ts +54 -0
- package/src/models/tests/contextAwareModels/ContextAwareTestModel.ts +43 -0
- package/src/models/tests/contextAwareModels/ContextTestModel.ts +38 -0
- package/src/repository/definition.ts +175 -0
- package/src/repository/entries.ts +88 -0
- package/src/repository/utils/formatValues.ts +14 -0
- package/src/repository/validator.ts +116 -0
- package/src/repository/value.ts +116 -0
- package/src/scopes/filter.ts +100 -0
- package/src/scopes/helpers/filter.helpers.ts +227 -0
- package/src/scopes/index.ts +6 -0
- package/src/tests/api/test-api.ts +40 -0
- package/src/tests/functional/searching/index.ts +39 -0
- package/src/tests/helpers/commonHooks.ts +43 -0
- package/src/tests/helpers/database-config.ts +15 -0
- package/src/tests/helpers/index.ts +35 -0
- package/src/tests/mocks/definition.mock.ts +84 -0
- package/src/tests/mocks/events.mock.ts +21 -0
- package/src/tests/mocks/testModel.ts +37 -0
- package/src/types/definition/index.ts +24 -0
- package/src/types/entries/index.ts +27 -0
- package/src/types/index.ts +52 -0
- package/src/types/value/index.ts +14 -0
- package/src/utils/constants/index.ts +25 -0
- package/src/utils/db/index.ts +21 -0
- package/src/utils/helpers/index.ts +66 -0
- package/src/utils/init.ts +122 -0
- package/src/utils/logger/index.ts +14 -0
- package/src/utils/scopeAttributes.ts +12 -0
- package/src/utils/validations/index.ts +46 -0
- package/src/utils/validations/schema/README.md +93 -0
- package/src/utils/validations/schema/custom-fields.ts +8 -0
- package/src/utils/validations/schema/validator-schema.ts +106 -0
- package/src/utils/validations/type.ts +20 -0
- package/src/utils/validations/validators/index.ts +38 -0
- package/src/utils/validations/validators/select.validator.ts +12 -0
- package/src/utils/validations/validators/status.validator.ts +22 -0
- package/tsconfig.build.json +7 -0
- package/tsconfig.json +16 -0
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.cjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorate.js +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.cjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/decorateMetadata.js +0 -1
- package/dist/_virtual/rolldown_runtime.cjs +0 -1
- package/dist/api/index.cjs +0 -2
- package/dist/api/index.cjs.map +0 -1
- package/dist/api/index.js.map +0 -1
- package/dist/api/v1/definition/index.cjs +0 -2
- package/dist/api/v1/definition/index.cjs.map +0 -1
- package/dist/api/v1/definition/index.js.map +0 -1
- package/dist/api/v1/definition/validations.cjs +0 -2
- package/dist/api/v1/definition/validations.cjs.map +0 -1
- package/dist/api/v1/definition/validations.js.map +0 -1
- package/dist/api/v1/errors.cjs +0 -2
- package/dist/api/v1/errors.cjs.map +0 -1
- package/dist/api/v1/errors.js.map +0 -1
- package/dist/api/v1/index.cjs +0 -2
- package/dist/api/v1/index.cjs.map +0 -1
- package/dist/api/v1/index.js.map +0 -1
- package/dist/api/v1/validator/index.cjs +0 -2
- package/dist/api/v1/validator/index.cjs.map +0 -1
- package/dist/api/v1/validator/index.js.map +0 -1
- package/dist/api/v1/validator/validations.cjs +0 -2
- package/dist/api/v1/validator/validations.cjs.map +0 -1
- package/dist/api/v1/validator/validations.d.cts +0 -23
- package/dist/api/v1/validator/validations.js.map +0 -1
- package/dist/errors/index.cjs +0 -3
- package/dist/errors/index.cjs.map +0 -1
- package/dist/errors/index.js.map +0 -1
- package/dist/events/index.cjs +0 -2
- package/dist/events/index.cjs.map +0 -1
- package/dist/events/index.js.map +0 -1
- package/dist/hooks/enrich.cjs +0 -2
- package/dist/hooks/enrich.cjs.map +0 -1
- package/dist/hooks/enrich.js.map +0 -1
- package/dist/hooks/find.cjs +0 -2
- package/dist/hooks/find.cjs.map +0 -1
- package/dist/hooks/find.js.map +0 -1
- package/dist/hooks/hooks.cjs +0 -2
- package/dist/hooks/hooks.cjs.map +0 -1
- package/dist/hooks/hooks.js.map +0 -1
- package/dist/hooks/index.cjs +0 -1
- package/dist/hooks/utils/updateInstanceValues.cjs +0 -2
- package/dist/hooks/utils/updateInstanceValues.cjs.map +0 -1
- package/dist/hooks/utils/updateInstanceValues.js.map +0 -1
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -23
- package/dist/index.js.map +0 -1
- package/dist/models/CustomFieldDefinition.cjs +0 -2
- package/dist/models/CustomFieldDefinition.cjs.map +0 -1
- package/dist/models/CustomFieldDefinition.d.cts +0 -33
- package/dist/models/CustomFieldDefinition.js.map +0 -1
- package/dist/models/CustomFieldEntries.cjs +0 -2
- package/dist/models/CustomFieldEntries.cjs.map +0 -1
- package/dist/models/CustomFieldEntries.d.cts +0 -16
- package/dist/models/CustomFieldEntries.js.map +0 -1
- package/dist/models/CustomFieldModelTypeMap.cjs +0 -2
- package/dist/models/CustomFieldModelTypeMap.cjs.map +0 -1
- package/dist/models/CustomFieldModelTypeMap.d.cts +0 -15
- package/dist/models/CustomFieldModelTypeMap.d.ts +0 -15
- package/dist/models/CustomFieldModelTypeMap.js +0 -2
- package/dist/models/CustomFieldModelTypeMap.js.map +0 -1
- package/dist/models/CustomFieldValue.cjs +0 -2
- package/dist/models/CustomFieldValue.cjs.map +0 -1
- package/dist/models/CustomFieldValue.d.cts +0 -21
- package/dist/models/CustomFieldValue.js.map +0 -1
- package/dist/models/CustomValidator.cjs +0 -2
- package/dist/models/CustomValidator.cjs.map +0 -1
- package/dist/models/CustomValidator.d.cts +0 -19
- package/dist/models/CustomValidator.js.map +0 -1
- package/dist/models/index.cjs +0 -2
- package/dist/models/index.cjs.map +0 -1
- package/dist/models/index.d.cts +0 -7
- package/dist/models/index.js.map +0 -1
- package/dist/models/tests/AssociatedTestModel.cjs +0 -2
- package/dist/models/tests/AssociatedTestModel.cjs.map +0 -1
- package/dist/models/tests/AssociatedTestModel.js.map +0 -1
- package/dist/models/tests/TestModel.cjs +0 -2
- package/dist/models/tests/TestModel.cjs.map +0 -1
- package/dist/models/tests/TestModel.js.map +0 -1
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs +0 -2
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs.map +0 -1
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js.map +0 -1
- package/dist/models/tests/contextAwareModels/ContextTestModel.cjs +0 -2
- package/dist/models/tests/contextAwareModels/ContextTestModel.cjs.map +0 -1
- package/dist/models/tests/contextAwareModels/ContextTestModel.js.map +0 -1
- package/dist/repository/definition.cjs +0 -2
- package/dist/repository/definition.cjs.map +0 -1
- package/dist/repository/definition.js.map +0 -1
- package/dist/repository/entries.cjs +0 -2
- package/dist/repository/entries.cjs.map +0 -1
- package/dist/repository/entries.js.map +0 -1
- package/dist/repository/utils/formatValues.cjs +0 -2
- package/dist/repository/utils/formatValues.cjs.map +0 -1
- package/dist/repository/utils/formatValues.js.map +0 -1
- package/dist/repository/validator.cjs +0 -2
- package/dist/repository/validator.cjs.map +0 -1
- package/dist/repository/validator.js.map +0 -1
- package/dist/repository/value.cjs +0 -2
- package/dist/repository/value.cjs.map +0 -1
- package/dist/repository/value.js.map +0 -1
- package/dist/scopes/filter.cjs +0 -2
- package/dist/scopes/filter.cjs.map +0 -1
- package/dist/scopes/filter.d.cts +0 -23
- package/dist/scopes/filter.js.map +0 -1
- package/dist/scopes/helpers/filter.helpers.cjs +0 -46
- package/dist/scopes/helpers/filter.helpers.cjs.map +0 -1
- package/dist/scopes/helpers/filter.helpers.d.cts +0 -17
- package/dist/scopes/helpers/filter.helpers.js.map +0 -1
- package/dist/scopes/index.cjs +0 -1
- package/dist/types/index.d.cts +0 -48
- package/dist/utils/constants/index.cjs +0 -2
- package/dist/utils/constants/index.cjs.map +0 -1
- package/dist/utils/constants/index.d.cts +0 -22
- package/dist/utils/constants/index.js.map +0 -1
- package/dist/utils/db/index.cjs +0 -2
- package/dist/utils/db/index.cjs.map +0 -1
- package/dist/utils/db/index.js.map +0 -1
- package/dist/utils/helpers/index.cjs +0 -2
- package/dist/utils/helpers/index.cjs.map +0 -1
- package/dist/utils/helpers/index.d.cts +0 -31
- package/dist/utils/helpers/index.js.map +0 -1
- package/dist/utils/init.cjs +0 -2
- package/dist/utils/init.cjs.map +0 -1
- package/dist/utils/init.js.map +0 -1
- package/dist/utils/logger/index.cjs +0 -2
- package/dist/utils/logger/index.cjs.map +0 -1
- package/dist/utils/logger/index.js.map +0 -1
- package/dist/utils/scopeAttributes.cjs +0 -2
- package/dist/utils/scopeAttributes.cjs.map +0 -1
- package/dist/utils/scopeAttributes.js.map +0 -1
- package/dist/utils/validations/index.cjs +0 -2
- package/dist/utils/validations/index.cjs.map +0 -1
- package/dist/utils/validations/index.js.map +0 -1
- package/dist/utils/validations/schema/custom-fields.cjs +0 -2
- package/dist/utils/validations/schema/custom-fields.cjs.map +0 -1
- package/dist/utils/validations/schema/custom-fields.d.cts +0 -7
- package/dist/utils/validations/schema/custom-fields.js.map +0 -1
- package/dist/utils/validations/schema/validator-schema.cjs +0 -2
- package/dist/utils/validations/schema/validator-schema.cjs.map +0 -1
- package/dist/utils/validations/schema/validator-schema.js.map +0 -1
- package/dist/utils/validations/validators/index.cjs +0 -2
- package/dist/utils/validations/validators/index.cjs.map +0 -1
- package/dist/utils/validations/validators/index.js.map +0 -1
- package/dist/utils/validations/validators/select.validator.cjs +0 -2
- package/dist/utils/validations/validators/select.validator.cjs.map +0 -1
- package/dist/utils/validations/validators/select.validator.js.map +0 -1
- package/dist/utils/validations/validators/status.validator.cjs +0 -2
- package/dist/utils/validations/validators/status.validator.cjs.map +0 -1
- package/dist/utils/validations/validators/status.validator.js.map +0 -1
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const index_1 = require("../../../index");
|
|
27
|
+
const DefinitionRepo = __importStar(require("../../../repository/definition"));
|
|
28
|
+
const definition_mock_1 = require("../../mocks/definition.mock");
|
|
29
|
+
const testModel_1 = require("../../mocks/testModel");
|
|
30
|
+
const models_1 = require("../../../models");
|
|
31
|
+
const customFieldsSearchTestFlow = async ({ fieldType, fieldValue, searchTerm, expectedNumberOfQueryResults, }) => {
|
|
32
|
+
const definition = (0, definition_mock_1.createDefinition)({ fieldType, name: 'coolDefinition' });
|
|
33
|
+
await DefinitionRepo.create({ ...definition });
|
|
34
|
+
const [testModel1] = await (0, testModel_1.createTestModels)(definition.entityId, 2);
|
|
35
|
+
await testModel1.update({ customFields: { [definition.name]: fieldValue } });
|
|
36
|
+
const models = await models_1.TestModel.findAndCountAll({
|
|
37
|
+
...(0, index_1.generateCustomFieldSearchQueryPayload)(searchTerm, models_1.TestModel, definition.entityId),
|
|
38
|
+
});
|
|
39
|
+
expect(models.count).toBe(expectedNumberOfQueryResults);
|
|
40
|
+
if (expectedNumberOfQueryResults > 0) {
|
|
41
|
+
expect(models.rows[0].dataValues.id).toBe(testModel1.id);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.default = customFieldsSearchTestFlow;
|
|
@@ -0,0 +1,62 @@
|
|
|
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.commonTestHooks = void 0;
|
|
30
|
+
const __1 = __importDefault(require("../.."));
|
|
31
|
+
const _1 = require(".");
|
|
32
|
+
const database_config_1 = __importDefault(require("./database-config"));
|
|
33
|
+
const db_1 = __importStar(require("../../utils/db"));
|
|
34
|
+
function commonTestHooks(app = null, models = [{ name: 'TestModel', scopeAttributes: ['fleetId'] }], options = {
|
|
35
|
+
useCustomFieldsEntries: false,
|
|
36
|
+
useValidators: false,
|
|
37
|
+
}) {
|
|
38
|
+
let sequelize;
|
|
39
|
+
beforeAll(async () => {
|
|
40
|
+
sequelize = (0, db_1.default)(database_config_1.default);
|
|
41
|
+
await (0, db_1.createSequelizeMeta)(sequelize);
|
|
42
|
+
await (0, __1.default)(app, _1.getModel, {
|
|
43
|
+
models,
|
|
44
|
+
databaseConfig: database_config_1.default,
|
|
45
|
+
getUser: () => undefined,
|
|
46
|
+
sequelize,
|
|
47
|
+
useCustomFieldsEntries: options.useCustomFieldsEntries,
|
|
48
|
+
useValidators: options.useValidators,
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
afterEach(async () => {
|
|
52
|
+
jest.clearAllMocks();
|
|
53
|
+
await (0, _1.cleanup)({
|
|
54
|
+
useCustomFieldsEntries: options.useCustomFieldsEntries,
|
|
55
|
+
useValidators: options.useValidators,
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
afterAll(async () => {
|
|
59
|
+
await sequelize.close();
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
exports.commonTestHooks = commonTestHooks;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
test: {
|
|
3
|
+
username: string;
|
|
4
|
+
password: string;
|
|
5
|
+
database: string;
|
|
6
|
+
host: string;
|
|
7
|
+
port: string | number;
|
|
8
|
+
dialect: string;
|
|
9
|
+
define: {
|
|
10
|
+
underscored: boolean;
|
|
11
|
+
underscoredAll: boolean;
|
|
12
|
+
};
|
|
13
|
+
logging: boolean;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
test: {
|
|
5
|
+
username: process.env.DB_USERNAME || '',
|
|
6
|
+
password: process.env.DB_PASSWORD || null,
|
|
7
|
+
database: process.env.DB_NAME || 'postgres',
|
|
8
|
+
host: process.env.DB_HOST || '127.0.0.1',
|
|
9
|
+
port: process.env.DB_PORT || 5432,
|
|
10
|
+
dialect: process.env.DB_TYPE || 'postgres',
|
|
11
|
+
define: {
|
|
12
|
+
underscored: true,
|
|
13
|
+
underscoredAll: true,
|
|
14
|
+
},
|
|
15
|
+
logging: false,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CustomFieldOptions } from '../../types';
|
|
2
|
+
export declare const cleanup: (options?: Pick<CustomFieldOptions, 'useCustomFieldsEntries' | 'useValidators'>) => Promise<void>;
|
|
3
|
+
export declare const getModel: (name: string) => any;
|
|
4
|
+
export declare const getReplacementMapWithScopeValue: (conditions: Record<string, any>) => {
|
|
5
|
+
replacementsMap: Record<string, string>;
|
|
6
|
+
scopeValue: Record<string, any>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getReplacementMapWithScopeValue = exports.getModel = exports.cleanup = void 0;
|
|
4
|
+
const sheilta_1 = require("@autofleet/sheilta");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
// eslint-disable-next-line import/prefer-default-export
|
|
7
|
+
const cleanup = async (options) => {
|
|
8
|
+
if (process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'development') {
|
|
9
|
+
await models_1.CustomFieldDefinition.unscoped().destroy({ where: {} });
|
|
10
|
+
await models_1.TestModel.destroy({ where: {} });
|
|
11
|
+
await models_1.ContextAwareTestModel.destroy({ where: {} });
|
|
12
|
+
await models_1.ContextTestModel.destroy({ where: {} });
|
|
13
|
+
if (options?.useCustomFieldsEntries) {
|
|
14
|
+
await models_1.CustomFieldEntries.unscoped().destroy({ where: {} });
|
|
15
|
+
}
|
|
16
|
+
// Clean up validators if they were used
|
|
17
|
+
if (options?.useValidators) {
|
|
18
|
+
await models_1.CustomValidator.unscoped().destroy({ where: {} });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
exports.cleanup = cleanup;
|
|
23
|
+
const getModel = (name) => {
|
|
24
|
+
// eslint-disable-next-line global-require, @typescript-eslint/no-var-requires
|
|
25
|
+
const models = require('../../models');
|
|
26
|
+
return models[name];
|
|
27
|
+
};
|
|
28
|
+
exports.getModel = getModel;
|
|
29
|
+
const getReplacementMapWithScopeValue = (conditions) => ({
|
|
30
|
+
replacementsMap: (0, sheilta_1.generateFilterReplacements)(Object.fromEntries(Object.entries(conditions).map(([key, value]) => [`customFields.${key}`, value]))),
|
|
31
|
+
scopeValue: conditions,
|
|
32
|
+
});
|
|
33
|
+
exports.getReplacementMapWithScopeValue = getReplacementMapWithScopeValue;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { CreateCustomFieldDefinition, CustomFieldDefinitionDTO } from '../../types/definition';
|
|
2
|
+
export declare const contextAwareFieldDefinition: {
|
|
3
|
+
name: string;
|
|
4
|
+
modelType: string;
|
|
5
|
+
fieldType: string;
|
|
6
|
+
entityType: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const coolFieldDefinition: CreateCustomFieldDefinition;
|
|
9
|
+
export declare const coolFieldDefinition2: {
|
|
10
|
+
name: string;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
description?: string;
|
|
14
|
+
createdAt?: Date;
|
|
15
|
+
updatedAt?: Date;
|
|
16
|
+
deletedAt?: Date;
|
|
17
|
+
defaultValue?: any;
|
|
18
|
+
blockEditingFromUI?: boolean;
|
|
19
|
+
displayName?: string;
|
|
20
|
+
fieldType: string;
|
|
21
|
+
validation?: any;
|
|
22
|
+
entityId: string;
|
|
23
|
+
entityType: string;
|
|
24
|
+
modelType: string;
|
|
25
|
+
};
|
|
26
|
+
export declare const coolFieldDefinition3: {
|
|
27
|
+
name: string;
|
|
28
|
+
required?: boolean;
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
description?: string;
|
|
31
|
+
createdAt?: Date;
|
|
32
|
+
updatedAt?: Date;
|
|
33
|
+
deletedAt?: Date;
|
|
34
|
+
defaultValue?: any;
|
|
35
|
+
blockEditingFromUI?: boolean;
|
|
36
|
+
displayName?: string;
|
|
37
|
+
fieldType: string;
|
|
38
|
+
validation?: any;
|
|
39
|
+
entityId: string;
|
|
40
|
+
entityType: string;
|
|
41
|
+
modelType: string;
|
|
42
|
+
};
|
|
43
|
+
export declare const booleanField: (modelType: string) => CreateCustomFieldDefinition;
|
|
44
|
+
export declare const selectField: (modelType: string, options: any) => CreateCustomFieldDefinition;
|
|
45
|
+
export declare const statusField: (modelType: string, options: any) => CreateCustomFieldDefinition;
|
|
46
|
+
export declare const fileField: (modelType: string) => CreateCustomFieldDefinition;
|
|
47
|
+
export declare const createDefinition: (defaults: Partial<CustomFieldDefinitionDTO>) => CreateCustomFieldDefinition;
|
|
48
|
+
export declare const createDefinitions: (defaults: Partial<CustomFieldDefinitionDTO>, length?: number) => CreateCustomFieldDefinition[];
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDefinitions = exports.createDefinition = exports.fileField = exports.statusField = exports.selectField = exports.booleanField = exports.coolFieldDefinition3 = exports.coolFieldDefinition2 = exports.coolFieldDefinition = exports.contextAwareFieldDefinition = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
exports.contextAwareFieldDefinition = {
|
|
6
|
+
name: 'cool field',
|
|
7
|
+
modelType: 'ContextAwareTestModel',
|
|
8
|
+
fieldType: 'number',
|
|
9
|
+
entityType: 'fleetId',
|
|
10
|
+
};
|
|
11
|
+
exports.coolFieldDefinition = {
|
|
12
|
+
name: 'cool field',
|
|
13
|
+
modelType: 'TestModel',
|
|
14
|
+
fieldType: 'number',
|
|
15
|
+
entityId: (0, node_crypto_1.randomUUID)(),
|
|
16
|
+
entityType: 'fleetId',
|
|
17
|
+
};
|
|
18
|
+
exports.coolFieldDefinition2 = {
|
|
19
|
+
...exports.coolFieldDefinition,
|
|
20
|
+
name: 'cool field2',
|
|
21
|
+
};
|
|
22
|
+
exports.coolFieldDefinition3 = {
|
|
23
|
+
...exports.coolFieldDefinition,
|
|
24
|
+
name: 'cool field3',
|
|
25
|
+
};
|
|
26
|
+
const booleanField = (modelType) => ({
|
|
27
|
+
name: 'shapeless',
|
|
28
|
+
modelType,
|
|
29
|
+
fieldType: 'boolean',
|
|
30
|
+
entityId: (0, node_crypto_1.randomUUID)(),
|
|
31
|
+
entityType: 'fleetId',
|
|
32
|
+
});
|
|
33
|
+
exports.booleanField = booleanField;
|
|
34
|
+
const selectField = (modelType, options) => ({
|
|
35
|
+
name: 'choices',
|
|
36
|
+
modelType,
|
|
37
|
+
fieldType: 'select',
|
|
38
|
+
validation: options,
|
|
39
|
+
entityId: (0, node_crypto_1.randomUUID)(),
|
|
40
|
+
entityType: 'fleetId',
|
|
41
|
+
});
|
|
42
|
+
exports.selectField = selectField;
|
|
43
|
+
const statusField = (modelType, options) => ({
|
|
44
|
+
name: 'lifecycle',
|
|
45
|
+
modelType,
|
|
46
|
+
fieldType: 'status',
|
|
47
|
+
validation: options,
|
|
48
|
+
entityId: (0, node_crypto_1.randomUUID)(),
|
|
49
|
+
entityType: 'fleetId',
|
|
50
|
+
});
|
|
51
|
+
exports.statusField = statusField;
|
|
52
|
+
const fileField = (modelType) => ({
|
|
53
|
+
name: 'file',
|
|
54
|
+
modelType,
|
|
55
|
+
fieldType: 'file',
|
|
56
|
+
entityId: (0, node_crypto_1.randomUUID)(),
|
|
57
|
+
entityType: 'fleetId',
|
|
58
|
+
});
|
|
59
|
+
exports.fileField = fileField;
|
|
60
|
+
// eslint-disable-next-line max-len
|
|
61
|
+
const createDefinition = (defaults) => ({
|
|
62
|
+
name: defaults?.name || `def_${(0, node_crypto_1.randomUUID)()}`,
|
|
63
|
+
modelType: defaults?.modelType || 'TestModel',
|
|
64
|
+
fieldType: defaults?.fieldType || 'boolean',
|
|
65
|
+
entityId: defaults?.entityId || (0, node_crypto_1.randomUUID)(),
|
|
66
|
+
entityType: defaults?.entityType || 'fleetId',
|
|
67
|
+
...(defaults?.validation && { validation: defaults.validation }),
|
|
68
|
+
...(defaults?.defaultValue && { defaultValue: defaults.defaultValue }),
|
|
69
|
+
});
|
|
70
|
+
exports.createDefinition = createDefinition;
|
|
71
|
+
const createDefinitions = (defaults, length = 1) => (Array(length).fill({}).map((_) => ({
|
|
72
|
+
name: defaults?.name || `def_${(0, node_crypto_1.randomUUID)()}`,
|
|
73
|
+
modelType: defaults?.modelType || 'TestModel',
|
|
74
|
+
fieldType: defaults?.fieldType || 'boolean',
|
|
75
|
+
entityId: defaults?.entityId || (0, node_crypto_1.randomUUID)(),
|
|
76
|
+
entityType: defaults?.entityType || 'fleetId',
|
|
77
|
+
})));
|
|
78
|
+
exports.createDefinitions = createDefinitions;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const mockEvent: (events: any, eventName: any, numberOfEvents: any) => any[];
|
|
2
|
+
export declare const mockDimCustomFieldDefinitionEvent: (events: any, numberOfEvents: any) => any[];
|
|
3
|
+
export declare const mockDimCustomFieldValueEvent: (events: any, numberOfEvents: any) => any[];
|
|
4
|
+
export declare const mockDimCustomFieldEntriesEvent: (events: any, numberOfEvents: any) => any[];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable no-param-reassign */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.mockDimCustomFieldEntriesEvent = exports.mockDimCustomFieldValueEvent = exports.mockDimCustomFieldDefinitionEvent = exports.mockEvent = void 0;
|
|
5
|
+
const mockEvent = (events, eventName, numberOfEvents) => {
|
|
6
|
+
events.sendObject = jest.fn().mockResolvedValue(true);
|
|
7
|
+
return [
|
|
8
|
+
events.sendObject,
|
|
9
|
+
() => {
|
|
10
|
+
const matchingEvents = events.sendObject.mock.calls.filter((call) => call[0] === eventName);
|
|
11
|
+
expect(matchingEvents.length).toEqual(numberOfEvents);
|
|
12
|
+
},
|
|
13
|
+
];
|
|
14
|
+
};
|
|
15
|
+
exports.mockEvent = mockEvent;
|
|
16
|
+
const mockDimCustomFieldDefinitionEvent = (events, numberOfEvents) => (0, exports.mockEvent)(events, 'dim_custom_field_definition', numberOfEvents);
|
|
17
|
+
exports.mockDimCustomFieldDefinitionEvent = mockDimCustomFieldDefinitionEvent;
|
|
18
|
+
const mockDimCustomFieldValueEvent = (events, numberOfEvents) => (0, exports.mockEvent)(events, 'dim_custom_field_value', numberOfEvents);
|
|
19
|
+
exports.mockDimCustomFieldValueEvent = mockDimCustomFieldValueEvent;
|
|
20
|
+
const mockDimCustomFieldEntriesEvent = (events, numberOfEvents) => (0, exports.mockEvent)(events, 'dim_custom_field_entries', numberOfEvents);
|
|
21
|
+
exports.mockDimCustomFieldEntriesEvent = mockDimCustomFieldEntriesEvent;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TestModel } from '../../models';
|
|
2
|
+
export declare const createTestModel: (payload?: {}) => Promise<TestModel>;
|
|
3
|
+
export declare const createTestModels: (fleetId: any, total: number) => Promise<TestModel[]>;
|
|
4
|
+
export declare const upsertTestModel: (payload: any) => Promise<[TestModel, boolean]>;
|
|
5
|
+
export declare const destroyTestModels: () => Promise<number>;
|
|
6
|
+
export declare const getTestModel: (id: string, options?: {}) => Promise<TestModel | null>;
|
|
7
|
+
export declare const getSomeTestModels: (options?: {
|
|
8
|
+
limit: number;
|
|
9
|
+
}) => Promise<TestModel[]>;
|
|
10
|
+
export declare const updateTestModel: (payload: any, query: any) => Promise<[affectedCount: number, affectedRows: TestModel[]]>;
|
|
11
|
+
export declare const createTestModelWithAssociation: () => Promise<TestModel>;
|
|
12
|
+
export declare const getTestModelWithAssociation: (limit?: number) => Promise<TestModel[]>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTestModelWithAssociation = exports.createTestModelWithAssociation = exports.updateTestModel = exports.getSomeTestModels = exports.getTestModel = exports.destroyTestModels = exports.upsertTestModel = exports.createTestModels = exports.createTestModel = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const createTestModel = (payload = {}) => models_1.TestModel.create(payload);
|
|
6
|
+
exports.createTestModel = createTestModel;
|
|
7
|
+
const createTestModels = (fleetId, total) => {
|
|
8
|
+
const models = [];
|
|
9
|
+
for (let i = 0; i < total; i += 1) {
|
|
10
|
+
models.push((0, exports.createTestModel)({ fleetId }));
|
|
11
|
+
}
|
|
12
|
+
return Promise.all(models);
|
|
13
|
+
};
|
|
14
|
+
exports.createTestModels = createTestModels;
|
|
15
|
+
const upsertTestModel = (payload) => models_1.TestModel.upsert(payload);
|
|
16
|
+
exports.upsertTestModel = upsertTestModel;
|
|
17
|
+
const destroyTestModels = () => models_1.TestModel.destroy({ truncate: true });
|
|
18
|
+
exports.destroyTestModels = destroyTestModels;
|
|
19
|
+
const getTestModel = (id, options = {}) => models_1.TestModel.findByPk(id, options);
|
|
20
|
+
exports.getTestModel = getTestModel;
|
|
21
|
+
const getSomeTestModels = (options = { limit: 1 }) => models_1.TestModel.findAll(options);
|
|
22
|
+
exports.getSomeTestModels = getSomeTestModels;
|
|
23
|
+
const updateTestModel = (payload, query) => models_1.TestModel.update(payload, query);
|
|
24
|
+
exports.updateTestModel = updateTestModel;
|
|
25
|
+
// Associations
|
|
26
|
+
const createTestModelWithAssociation = async () => {
|
|
27
|
+
const model = await models_1.TestModel.create({});
|
|
28
|
+
await models_1.AssociatedTestModel.create({ testModelId: model.id });
|
|
29
|
+
return model;
|
|
30
|
+
};
|
|
31
|
+
exports.createTestModelWithAssociation = createTestModelWithAssociation;
|
|
32
|
+
const getTestModelWithAssociation = (limit = 1) => models_1.TestModel.findAll({
|
|
33
|
+
limit, include: [models_1.AssociatedTestModel],
|
|
34
|
+
});
|
|
35
|
+
exports.getTestModelWithAssociation = getTestModelWithAssociation;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface CustomFieldDefinitionDTO {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
displayName?: string;
|
|
5
|
+
validation?: any;
|
|
6
|
+
defaultValue?: any;
|
|
7
|
+
fieldType: string;
|
|
8
|
+
entityId: string;
|
|
9
|
+
entityType: string;
|
|
10
|
+
modelType: string;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
description?: string;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
createdAt?: Date;
|
|
15
|
+
updatedAt?: Date;
|
|
16
|
+
deletedAt?: Date;
|
|
17
|
+
blockEditingFromUI?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export type CreateCustomFieldDefinition = Omit<CustomFieldDefinitionDTO, 'id'>;
|
|
20
|
+
export type UpdateCustomFieldDefinition = Partial<CreateCustomFieldDefinition>;
|
|
21
|
+
export type SerializedCustomFields = {
|
|
22
|
+
[name: string]: CustomFieldDefinitionDTO & {
|
|
23
|
+
value: any;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ValidationError } from 'joi';
|
|
2
|
+
export interface CustomFieldEntriesDTO {
|
|
3
|
+
modelId: string;
|
|
4
|
+
entityId: string;
|
|
5
|
+
modelType: string;
|
|
6
|
+
/**
|
|
7
|
+
* A collection of custom fields where each key is the name of a CustomFieldDefinition and
|
|
8
|
+
* each value is the value of that custom field for this specific `modelId`.
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* {
|
|
12
|
+
* "vehicleColor": "Red",
|
|
13
|
+
* "vehicleType": "premium",
|
|
14
|
+
* "isActive": true
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
customFields: Record<string, any>;
|
|
18
|
+
createdAt?: Date;
|
|
19
|
+
updatedAt?: Date;
|
|
20
|
+
}
|
|
21
|
+
export interface EntriesValidationError {
|
|
22
|
+
value: any;
|
|
23
|
+
fieldDefinitionName: string;
|
|
24
|
+
joiValidationError: ValidationError;
|
|
25
|
+
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,49 +1,47 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*/
|
|
13
|
-
include?: (entityIds: string | string[]) => IncludeOptions[];
|
|
14
|
-
/**
|
|
15
|
-
* Custom association for the model
|
|
16
|
-
* @param model - The model to associate with
|
|
17
|
-
*/
|
|
18
|
-
customAssociation?: (model: ModelCtor) => void;
|
|
19
|
-
/**
|
|
20
|
-
* Whether to use the entity id from the instance per scope attribute
|
|
21
|
-
*/
|
|
22
|
-
useEntityIdFromInclude?: boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Which attributes to include in the model
|
|
25
|
-
*/
|
|
26
|
-
attributes?: string[];
|
|
1
|
+
import type { IncludeOptions, Transaction } from 'sequelize';
|
|
2
|
+
import type { ModelCtor, Sequelize } from 'sequelize-typescript';
|
|
3
|
+
import type { getUser as GetUserType } from '@autofleet/zehut';
|
|
4
|
+
import type CustomFieldDefinition from '../models/CustomFieldDefinition';
|
|
5
|
+
import type CustomValidator from '../models/CustomValidator';
|
|
6
|
+
export type ModelFetcher = (name: string) => any;
|
|
7
|
+
export interface TransactionOptions extends Record<string, any> {
|
|
8
|
+
transaction?: Transaction & {
|
|
9
|
+
definitionCache?: Map<string, CustomFieldDefinition[]>;
|
|
10
|
+
validationsCache?: Map<string, CustomValidator[]>;
|
|
11
|
+
};
|
|
27
12
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
13
|
+
export type ModelOptions = {
|
|
14
|
+
/**
|
|
15
|
+
* Include options for the model
|
|
16
|
+
*/
|
|
17
|
+
include?: (entityIds: string[] | string) => IncludeOptions[];
|
|
18
|
+
/**
|
|
19
|
+
* Custom association for the model
|
|
20
|
+
* @param model - The model to associate with
|
|
21
|
+
*/
|
|
22
|
+
customAssociation?: (model: ModelCtor) => void;
|
|
23
|
+
/**
|
|
24
|
+
* Whether to use the entity id from the instance per scope attribute
|
|
25
|
+
*/
|
|
26
|
+
useEntityIdFromInclude?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Which attributes to include in the model
|
|
29
|
+
*/
|
|
30
|
+
attributes?: string[];
|
|
31
|
+
};
|
|
32
|
+
export type Models = {
|
|
33
|
+
name: string;
|
|
34
|
+
scopeAttributes: any[];
|
|
35
|
+
modelOptions?: ModelOptions;
|
|
36
|
+
creationWebhookHandler?: (instance: any) => any;
|
|
37
|
+
updateWebhookHandler?: (instance: any) => any;
|
|
38
|
+
deletionWebhookHandler?: (instance: any) => any;
|
|
39
|
+
};
|
|
40
|
+
export type CustomFieldOptions = {
|
|
41
|
+
models: Models[];
|
|
42
|
+
databaseConfig: any;
|
|
43
|
+
getUser: typeof GetUserType;
|
|
44
|
+
sequelize?: Sequelize;
|
|
45
|
+
useCustomFieldsEntries?: boolean;
|
|
46
|
+
useValidators?: boolean;
|
|
47
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface CustomFieldValueDTO {
|
|
2
|
+
id?: string;
|
|
3
|
+
modelId: string;
|
|
4
|
+
customFieldDefinitionId: string;
|
|
5
|
+
value: any;
|
|
6
|
+
createdAt?: Date;
|
|
7
|
+
updatedAt?: Date;
|
|
8
|
+
deletedAt?: Date;
|
|
9
|
+
}
|
|
10
|
+
export type ValuesToUpdate = {
|
|
11
|
+
[name: string]: any;
|
|
12
|
+
};
|
|
13
|
+
export type CreateCustomFieldValue = Omit<CustomFieldValueDTO, 'id'>;
|
|
14
|
+
export type UpdateCustomFieldValue = ValuesToUpdate;
|
|
15
|
+
export type BulkUpdateCustomFieldValue = Partial<CustomFieldValueDTO>[];
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
//#region src/utils/constants/index.d.ts
|
|
4
|
-
declare const supportedEntities: readonly ["businessModelId", "fleetId", "demandSourceId"];
|
|
1
|
+
declare const CUSTOM_FIELDS_FILTER_SCOPE: "filterByCustomFields";
|
|
2
|
+
export declare const supportedEntities: string[];
|
|
5
3
|
/**
|
|
6
|
-
* Supported custom field types
|
|
7
|
-
*/
|
|
8
|
-
declare enum CustomFieldDefinitionType {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
* Supported custom field types
|
|
5
|
+
*/
|
|
6
|
+
export declare enum CustomFieldDefinitionType {
|
|
7
|
+
NUMBER = "number",
|
|
8
|
+
BOOLEAN = "boolean",
|
|
9
|
+
DATE = "date",
|
|
10
|
+
DATETIME = "datetime",
|
|
11
|
+
TEXT = "text",
|
|
12
|
+
IMAGE = "image",
|
|
13
|
+
SELECT = "select",
|
|
14
|
+
STATUS = "status",
|
|
15
|
+
FILE = "file"
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=index.d.ts.map
|
|
17
|
+
export {
|
|
18
|
+
/** @deprecated Use the value from `@autofleet/common-types` instead */
|
|
19
|
+
CUSTOM_FIELDS_FILTER_SCOPE, };
|
|
@@ -1,2 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CUSTOM_FIELDS_FILTER_SCOPE = exports.CustomFieldDefinitionType = exports.supportedEntities = void 0;
|
|
4
|
+
const common_types_1 = require("@autofleet/common-types");
|
|
5
|
+
const { CUSTOM_FIELDS_FILTER_SCOPE } = common_types_1.customFields;
|
|
6
|
+
exports.CUSTOM_FIELDS_FILTER_SCOPE = CUSTOM_FIELDS_FILTER_SCOPE;
|
|
7
|
+
exports.supportedEntities = ['businessModelId', 'fleetId', 'demandSourceId'];
|
|
8
|
+
/**
|
|
9
|
+
* Supported custom field types
|
|
10
|
+
*/
|
|
11
|
+
var CustomFieldDefinitionType;
|
|
12
|
+
(function (CustomFieldDefinitionType) {
|
|
13
|
+
CustomFieldDefinitionType["NUMBER"] = "number";
|
|
14
|
+
CustomFieldDefinitionType["BOOLEAN"] = "boolean";
|
|
15
|
+
CustomFieldDefinitionType["DATE"] = "date";
|
|
16
|
+
CustomFieldDefinitionType["DATETIME"] = "datetime";
|
|
17
|
+
CustomFieldDefinitionType["TEXT"] = "text";
|
|
18
|
+
CustomFieldDefinitionType["IMAGE"] = "image";
|
|
19
|
+
CustomFieldDefinitionType["SELECT"] = "select";
|
|
20
|
+
CustomFieldDefinitionType["STATUS"] = "status";
|
|
21
|
+
CustomFieldDefinitionType["FILE"] = "file";
|
|
22
|
+
})(CustomFieldDefinitionType || (exports.CustomFieldDefinitionType = CustomFieldDefinitionType = {}));
|