@autofleet/sadot 0.11.0 → 0.12.0
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/dist/api/index.d.ts +2 -1
- package/dist/api/index.js +2 -1
- package/dist/api/v1/definition/index.d.ts +2 -1
- package/dist/api/v1/definition/index.js +1 -1
- package/dist/api/v1/errors.d.ts +1 -1
- package/dist/api/v1/index.d.ts +2 -1
- package/dist/api/v1/index.js +2 -1
- package/dist/events/index.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +14 -1
- package/dist/scopes/filter.d.ts +1 -1
- package/dist/tests/api/test-api.js +2 -1
- package/dist/tests/helpers/index.js +2 -2
- package/dist/tests/mocks/events.mock.js +1 -1
- package/dist/utils/constants/index.d.ts +1 -1
- package/dist/utils/logger/index.d.ts +1 -0
- package/dist/utils/logger/index.js +34 -0
- package/package.json +19 -8
- package/src/api/index.ts +2 -1
- package/src/api/v1/definition/index.ts +1 -1
- package/src/api/v1/index.ts +2 -2
- package/src/events/index.ts +1 -1
- package/src/index.ts +4 -3
- package/src/tests/api/test-api.ts +2 -1
- package/src/tests/helpers/index.ts +1 -1
- package/src/tests/mocks/events.mock.ts +1 -1
- package/src/utils/logger/index.ts +9 -0
package/dist/api/index.d.ts
CHANGED
package/dist/api/index.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
// export the api object
|
|
7
7
|
const node_common_1 = require("@autofleet/node-common");
|
|
8
8
|
const v1_1 = __importDefault(require("./v1"));
|
|
9
|
-
const
|
|
9
|
+
const logger_1 = __importDefault(require("../utils/logger"));
|
|
10
|
+
const router = (0, node_common_1.Router)({ logger: logger_1.default });
|
|
10
11
|
router.use('/v1', v1_1.default);
|
|
11
12
|
exports.default = router;
|
|
@@ -32,7 +32,7 @@ const errors_2 = __importDefault(require("../errors"));
|
|
|
32
32
|
const DefinitionRepo = __importStar(require("../../../repository/definition"));
|
|
33
33
|
const validations_1 = require("./validations");
|
|
34
34
|
const logger_1 = __importDefault(require("../../../utils/logger"));
|
|
35
|
-
const router = (0, node_common_1.Router)({
|
|
35
|
+
const router = (0, node_common_1.Router)({ logger: logger_1.default });
|
|
36
36
|
const ENTITY = 'CustomFieldDefinition';
|
|
37
37
|
const toPascalCase = (str) => str.replace(/(^\w|-\w)/g, (subStr) => subStr.replace(/-/, '').toUpperCase());
|
|
38
38
|
/**
|
package/dist/api/v1/errors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Response } from 'express';
|
|
2
2
|
import { type LogPayload } from '@autofleet/errors';
|
|
3
|
-
declare const _default: (err: any, res: Response, additionalData?: LogPayload) =>
|
|
3
|
+
declare const _default: (err: any, res: Response, additionalData?: LogPayload) => void;
|
|
4
4
|
export default _default;
|
package/dist/api/v1/index.d.ts
CHANGED
package/dist/api/v1/index.js
CHANGED
|
@@ -4,7 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_common_1 = require("@autofleet/node-common");
|
|
7
|
+
const logger_1 = __importDefault(require("../../utils/logger"));
|
|
7
8
|
const definition_1 = __importDefault(require("./definition"));
|
|
8
|
-
const router = (0, node_common_1.Router)({
|
|
9
|
+
const router = (0, node_common_1.Router)({ logger: logger_1.default });
|
|
9
10
|
router.use('/custom-field-definitions/:modelName', definition_1.default);
|
|
10
11
|
exports.default = router;
|
package/dist/events/index.js
CHANGED
|
@@ -44,7 +44,7 @@ const sendDimEvent = (instance) => {
|
|
|
44
44
|
catch (err) {
|
|
45
45
|
logger_1.default.error('Failed to convert booleans in dim event payload', err);
|
|
46
46
|
}
|
|
47
|
-
events.sendObject(mapping.tableName, mapping.eventVersion, objectToSend);
|
|
47
|
+
events.sendObject(mapping.tableName, mapping.eventVersion, objectToSend).catch(() => null);
|
|
48
48
|
};
|
|
49
49
|
exports.sendDimEvent = sendDimEvent;
|
|
50
50
|
exports.default = events;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Application } from 'express';
|
|
2
2
|
import type { Sequelize } from 'sequelize-typescript';
|
|
3
|
-
import type { CustomFieldOptions, ModelFetcher } from './types';
|
|
3
|
+
import type { CustomFieldOptions, ModelFetcher, Models } from './types';
|
|
4
4
|
export * from './utils/validations/schema/custom-fields';
|
|
5
5
|
export * from './utils/constants';
|
|
6
6
|
export * from './utils/helpers';
|
|
@@ -10,4 +10,4 @@ export * from './utils/helpers';
|
|
|
10
10
|
*/
|
|
11
11
|
declare const useCustomFields: (app: Application | null, getModel: ModelFetcher, options: CustomFieldOptions) => Promise<Sequelize>;
|
|
12
12
|
export default useCustomFields;
|
|
13
|
-
export declare const disableCustomFields: (models:
|
|
13
|
+
export declare const disableCustomFields: (models: Models[], getModel: ModelFetcher) => void;
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,18 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
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
|
+
};
|
|
13
25
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
26
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
27
|
};
|
|
@@ -21,7 +33,7 @@ exports.disableCustomFields = void 0;
|
|
|
21
33
|
const models_1 = require("./models");
|
|
22
34
|
const api_1 = __importDefault(require("./api"));
|
|
23
35
|
const db_1 = __importDefault(require("./utils/db"));
|
|
24
|
-
const logger_1 =
|
|
36
|
+
const logger_1 = __importStar(require("./utils/logger"));
|
|
25
37
|
const init_1 = require("./utils/init");
|
|
26
38
|
__exportStar(require("./utils/validations/schema/custom-fields"), exports);
|
|
27
39
|
__exportStar(require("./utils/constants"), exports);
|
|
@@ -31,6 +43,7 @@ __exportStar(require("./utils/helpers"), exports);
|
|
|
31
43
|
* @see {@link 'custom-fields/config'} for configurations
|
|
32
44
|
*/
|
|
33
45
|
const useCustomFields = async (app, getModel, options) => {
|
|
46
|
+
(0, logger_1.tryAddingTraceIdMiddleware)().catch(() => null);
|
|
34
47
|
const { models, useCustomFieldsEntries } = options;
|
|
35
48
|
if (app) {
|
|
36
49
|
app.use('/api', api_1.default);
|
package/dist/scopes/filter.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ type customFieldsFilterScopeParams = {
|
|
|
12
12
|
* @returns A function that takes conditions and returns the Sequelize options object.
|
|
13
13
|
*/
|
|
14
14
|
export declare const customFieldsFilterScope: (name: string, options?: Pick<CustomFieldOptions, 'useCustomFieldsEntries'>) => ({ replacementsMap: replacements, scopeValue: conditions }: customFieldsFilterScopeParams) => CustomFieldFilterOptions;
|
|
15
|
-
export declare const scopeName
|
|
15
|
+
export declare const scopeName: "filterByCustomFields";
|
|
16
16
|
export declare const customFieldsSortScope: (name: string, options?: Pick<CustomFieldOptions, 'useCustomFieldsEntries'>) => ({ replacementsMap, scopeValue: sort }: {
|
|
17
17
|
replacementsMap: any;
|
|
18
18
|
scopeValue: any;
|
|
@@ -5,10 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const express_1 = __importDefault(require("express"));
|
|
7
7
|
const node_common_1 = require("@autofleet/node-common");
|
|
8
|
+
const logger_1 = __importDefault(require("../../utils/logger"));
|
|
8
9
|
const models_1 = require("../../models");
|
|
9
10
|
const app = (0, express_1.default)();
|
|
10
11
|
app.use(express_1.default.json());
|
|
11
|
-
const api = (0, node_common_1.Router)();
|
|
12
|
+
const api = (0, node_common_1.Router)({ logger: logger_1.default });
|
|
12
13
|
api.get('/v1/test-models', async (req, res) => {
|
|
13
14
|
const testModels = await models_1.TestModel.findAll();
|
|
14
15
|
return res.json(testModels);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getReplacementMapWithScopeValue = exports.getModel = exports.cleanup = void 0;
|
|
4
|
-
const
|
|
4
|
+
const sheilta_1 = require("@autofleet/sheilta");
|
|
5
5
|
const models_1 = require("../../models");
|
|
6
6
|
// eslint-disable-next-line import/prefer-default-export
|
|
7
7
|
const cleanup = async (options) => {
|
|
@@ -23,7 +23,7 @@ const getModel = (name) => {
|
|
|
23
23
|
};
|
|
24
24
|
exports.getModel = getModel;
|
|
25
25
|
const getReplacementMapWithScopeValue = (conditions) => ({
|
|
26
|
-
replacementsMap: (0,
|
|
26
|
+
replacementsMap: (0, sheilta_1.generateFilterReplacements)(Object.fromEntries(Object.entries(conditions).map(([key, value]) => [`customFields.${key}`, value]))),
|
|
27
27
|
scopeValue: conditions,
|
|
28
28
|
});
|
|
29
29
|
exports.getReplacementMapWithScopeValue = getReplacementMapWithScopeValue;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.mockDimCustomFieldEntriesEvent = exports.mockDimCustomFieldValueEvent = exports.mockDimCustomFieldDefinitionEvent = exports.mockEvent = void 0;
|
|
5
5
|
const mockEvent = (events, eventName, numberOfEvents) => {
|
|
6
|
-
events.sendObject = jest.fn();
|
|
6
|
+
events.sendObject = jest.fn().mockResolvedValue(true);
|
|
7
7
|
return [
|
|
8
8
|
events.sendObject,
|
|
9
9
|
() => {
|
|
@@ -1,8 +1,42 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.tryAddingTraceIdMiddleware = void 0;
|
|
6
30
|
const logger_1 = __importDefault(require("@autofleet/logger"));
|
|
7
31
|
const logger = (0, logger_1.default)();
|
|
32
|
+
async function tryAddingTraceIdMiddleware() {
|
|
33
|
+
try {
|
|
34
|
+
const { outbreak } = await Promise.resolve().then(() => __importStar(require('@autofleet/zehut')));
|
|
35
|
+
logger.addContextMiddleware(() => ({ traceId: outbreak.getCurrentContext().context?.get('x-trace-id') }));
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
logger.error('Failed to add traceId middleware', { err });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.tryAddingTraceIdMiddleware = tryAddingTraceIdMiddleware;
|
|
8
42
|
exports.default = logger;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autofleet/sadot",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -27,12 +27,8 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@autofleet/common-types": "^
|
|
31
|
-
"@autofleet/
|
|
32
|
-
"@autofleet/events": "^2.0.0",
|
|
33
|
-
"@autofleet/logger": "^4.1.0",
|
|
34
|
-
"@autofleet/node-common": "^3.0.0",
|
|
35
|
-
"express": "^4.18.2",
|
|
30
|
+
"@autofleet/common-types": "^4.4.0",
|
|
31
|
+
"@autofleet/events": "^4.0.0",
|
|
36
32
|
"joi": "^17.7.0",
|
|
37
33
|
"pg": "^8.10.0",
|
|
38
34
|
"reflect-metadata": "^0.1.13",
|
|
@@ -40,6 +36,10 @@
|
|
|
40
36
|
"sequelize-typescript": "^2.1.5"
|
|
41
37
|
},
|
|
42
38
|
"devDependencies": {
|
|
39
|
+
"@autofleet/errors": "^3.0.1",
|
|
40
|
+
"@autofleet/logger": "^4.2.1",
|
|
41
|
+
"@autofleet/node-common": "^4.0.2",
|
|
42
|
+
"@autofleet/zehut": "^3.2.0",
|
|
43
43
|
"@types/express": "^4.17.17",
|
|
44
44
|
"@types/jest": "^29.5.13",
|
|
45
45
|
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
@@ -47,14 +47,25 @@
|
|
|
47
47
|
"eslint": "^8.57.0",
|
|
48
48
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
49
49
|
"eslint-plugin-import": "^2.22.1",
|
|
50
|
+
"express": "^4.21.2",
|
|
50
51
|
"jest": "^29.7.0",
|
|
51
52
|
"npm-watch": "^0.11.0",
|
|
53
|
+
"supertest": "^7.0.0",
|
|
52
54
|
"ts-jest": "^29.1.2",
|
|
53
55
|
"ts-node": "^8.6.2",
|
|
54
56
|
"typescript": "^5.3.3"
|
|
55
57
|
},
|
|
56
58
|
"peerDependencies": {
|
|
57
|
-
"@autofleet/
|
|
59
|
+
"@autofleet/errors": "^3",
|
|
60
|
+
"@autofleet/logger": "^4",
|
|
61
|
+
"@autofleet/node-common": "^4",
|
|
62
|
+
"@autofleet/sheilta": "^2",
|
|
63
|
+
"@autofleet/zehut": "^3"
|
|
64
|
+
},
|
|
65
|
+
"peerDependenciesMeta": {
|
|
66
|
+
"@autofleet/zehut": {
|
|
67
|
+
"optional": true
|
|
68
|
+
}
|
|
58
69
|
},
|
|
59
70
|
"engines": {
|
|
60
71
|
"node": ">=16.0.0"
|
package/src/api/index.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { validateCustomFieldDefinitionCreation, validateCustomFieldDefinitionUpd
|
|
|
7
7
|
import logger from '../../../utils/logger';
|
|
8
8
|
import type { CustomFieldDefinition } from '../../../models';
|
|
9
9
|
|
|
10
|
-
const router = Router({
|
|
10
|
+
const router = Router({ logger });
|
|
11
11
|
const ENTITY = 'CustomFieldDefinition';
|
|
12
12
|
|
|
13
13
|
const toPascalCase = (str: string): string => str.replace(/(^\w|-\w)/g, (subStr) => subStr.replace(/-/, '').toUpperCase());
|
package/src/api/v1/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Router } from '@autofleet/node-common';
|
|
2
|
-
|
|
2
|
+
import logger from '../../utils/logger';
|
|
3
3
|
import definitionRouter from './definition';
|
|
4
4
|
|
|
5
|
-
const router = Router({
|
|
5
|
+
const router = Router({ logger });
|
|
6
6
|
|
|
7
7
|
router.use('/custom-field-definitions/:modelName', definitionRouter);
|
|
8
8
|
|
package/src/events/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
} from './models';
|
|
6
6
|
import api from './api';
|
|
7
7
|
import initDB from './utils/db';
|
|
8
|
-
import logger from './utils/logger';
|
|
9
|
-
import type { CustomFieldOptions, ModelFetcher } from './types';
|
|
8
|
+
import logger, { tryAddingTraceIdMiddleware } from './utils/logger';
|
|
9
|
+
import type { CustomFieldOptions, ModelFetcher, Models } from './types';
|
|
10
10
|
import {
|
|
11
11
|
addHooks, addScopes, applyCustomAssociation, removeHooks,
|
|
12
12
|
} from './utils/init';
|
|
@@ -26,6 +26,7 @@ const useCustomFields = async (
|
|
|
26
26
|
getModel: ModelFetcher,
|
|
27
27
|
options: CustomFieldOptions,
|
|
28
28
|
): Promise<Sequelize> => {
|
|
29
|
+
tryAddingTraceIdMiddleware().catch(() => null);
|
|
29
30
|
const { models, useCustomFieldsEntries } = options;
|
|
30
31
|
if (app) {
|
|
31
32
|
app.use('/api', api);
|
|
@@ -45,6 +46,6 @@ const useCustomFields = async (
|
|
|
45
46
|
|
|
46
47
|
export default useCustomFields;
|
|
47
48
|
|
|
48
|
-
export const disableCustomFields = (models, getModel): void => {
|
|
49
|
+
export const disableCustomFields = (models: Models[], getModel: ModelFetcher): void => {
|
|
49
50
|
removeHooks(models, getModel);
|
|
50
51
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { Router } from '@autofleet/node-common';
|
|
3
|
+
import logger from '../../utils/logger';
|
|
3
4
|
import { TestModel } from '../../models';
|
|
4
5
|
|
|
5
6
|
const app = express();
|
|
6
7
|
app.use(express.json());
|
|
7
|
-
const api = Router();
|
|
8
|
+
const api = Router({ logger });
|
|
8
9
|
|
|
9
10
|
api.get('/v1/test-models', async (req, res) => {
|
|
10
11
|
const testModels = await TestModel.findAll();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { generateFilterReplacements } from '@autofleet/sheilta
|
|
1
|
+
import { generateFilterReplacements } from '@autofleet/sheilta';
|
|
2
2
|
import {
|
|
3
3
|
ContextAwareTestModel, ContextTestModel, CustomFieldDefinition, CustomFieldEntries, TestModel,
|
|
4
4
|
} from '../../models';
|
|
@@ -2,4 +2,13 @@ import Logger from '@autofleet/logger';
|
|
|
2
2
|
|
|
3
3
|
const logger = Logger();
|
|
4
4
|
|
|
5
|
+
export async function tryAddingTraceIdMiddleware() {
|
|
6
|
+
try {
|
|
7
|
+
const { outbreak } = await import('@autofleet/zehut');
|
|
8
|
+
logger.addContextMiddleware(() => ({ traceId: outbreak.getCurrentContext().context?.get('x-trace-id') }));
|
|
9
|
+
} catch (err) {
|
|
10
|
+
logger.error('Failed to add traceId middleware', { err });
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
5
14
|
export default logger;
|