@naturalcycles/backend-lib 9.17.0 → 9.19.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/admin/adminMiddleware.js +2 -2
- package/dist/admin/firebase.shared.service.js +1 -1
- package/dist/admin/secureHeaderMiddleware.js +1 -1
- package/dist/deploy/deploy.util.js +4 -4
- package/dist/deploy/deployGae.js +1 -1
- package/dist/deploy/deployHealthCheck.js +2 -2
- package/dist/deploy/deployInfo.util.d.ts +1 -1
- package/dist/deploy/deployInfo.util.js +2 -2
- package/dist/env/env.shared.service.js +2 -2
- package/dist/express/startServer.js +2 -2
- package/dist/server/basicAuthMiddleware.js +1 -1
- package/dist/server/bodyParserTimeoutMiddleware.js +1 -1
- package/dist/server/requestLoggerMiddleware.js +1 -1
- package/dist/server/requestTimeoutMiddleware.js +2 -2
- package/dist/server/safeJsonMiddleware.js +1 -1
- package/dist/server/serverStatsMiddleware.js +6 -4
- package/dist/server/serverStatusMiddleware.js +2 -2
- package/dist/server/simpleRequestLoggerMiddleware.js +1 -1
- package/dist/testing/express.test.service.js +1 -1
- package/dist/validation/ajv/ajvValidateRequest.js +2 -5
- package/dist/validation/joi/joiValidateRequest.js +2 -5
- package/dist/validation/validateRequest.util.d.ts +3 -4
- package/dist/validation/validateRequest.util.js +2 -2
- package/dist/validation/zod/zodValidateRequest.js +2 -5
- package/package.json +7 -7
- package/src/admin/adminMiddleware.ts +2 -2
- package/src/admin/firebase.shared.service.ts +1 -1
- package/src/admin/secureHeaderMiddleware.ts +1 -1
- package/src/deploy/deploy.util.ts +4 -4
- package/src/deploy/deployGae.ts +1 -1
- package/src/deploy/deployHealthCheck.ts +2 -2
- package/src/deploy/deployInfo.util.ts +2 -2
- package/src/env/env.shared.service.ts +2 -2
- package/src/express/startServer.ts +2 -2
- package/src/server/basicAuthMiddleware.ts +1 -1
- package/src/server/bodyParserTimeoutMiddleware.ts +1 -1
- package/src/server/requestLoggerMiddleware.ts +1 -1
- package/src/server/requestTimeoutMiddleware.ts +2 -2
- package/src/server/safeJsonMiddleware.ts +1 -1
- package/src/server/serverStatsMiddleware.ts +6 -4
- package/src/server/serverStatusMiddleware.ts +2 -2
- package/src/server/simpleRequestLoggerMiddleware.ts +1 -1
- package/src/testing/express.test.service.ts +1 -1
- package/src/validation/ajv/ajvValidateRequest.ts +2 -5
- package/src/validation/joi/joiValidateRequest.ts +2 -5
- package/src/validation/validateRequest.util.ts +4 -5
- package/src/validation/zod/zodValidateRequest.ts +2 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _memoFn } from '@naturalcycles/js-lib/decorators';
|
|
2
|
-
import { AppError } from '@naturalcycles/js-lib/error';
|
|
1
|
+
import { _memoFn } from '@naturalcycles/js-lib/decorators/memoFn.js';
|
|
2
|
+
import { AppError } from '@naturalcycles/js-lib/error/error.util.js';
|
|
3
3
|
import { fs2 } from '@naturalcycles/nodejs-lib/fs2';
|
|
4
4
|
import { srcDir } from '../paths.cnst.js';
|
|
5
5
|
export function createAdminMiddleware(adminService, cfgDefaults = {}) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { localTime } from '@naturalcycles/js-lib/datetime';
|
|
2
|
-
import { _assert } from '@naturalcycles/js-lib/error';
|
|
3
|
-
import { _mapValues, _merge } from '@naturalcycles/js-lib/object';
|
|
4
|
-
import { _truncate } from '@naturalcycles/js-lib/string';
|
|
1
|
+
import { localTime } from '@naturalcycles/js-lib/datetime/localTime.js';
|
|
2
|
+
import { _assert } from '@naturalcycles/js-lib/error/assert.js';
|
|
3
|
+
import { _mapValues, _merge } from '@naturalcycles/js-lib/object/object.util.js';
|
|
4
|
+
import { _truncate } from '@naturalcycles/js-lib/string/string.util.js';
|
|
5
5
|
import { sha256 } from '@naturalcycles/nodejs-lib';
|
|
6
6
|
import { dimGrey, white } from '@naturalcycles/nodejs-lib/colors';
|
|
7
7
|
import { fs2 } from '@naturalcycles/nodejs-lib/fs2';
|
package/dist/deploy/deployGae.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _anyToError } from '@naturalcycles/js-lib/error';
|
|
2
|
-
import { pRetry } from '@naturalcycles/js-lib/promise';
|
|
2
|
+
import { pRetry } from '@naturalcycles/js-lib/promise/pRetry.js';
|
|
3
3
|
import { _objectAssign } from '@naturalcycles/js-lib/types';
|
|
4
4
|
import { appendToGithubSummary } from '@naturalcycles/nodejs-lib/env';
|
|
5
5
|
import { exec2 } from '@naturalcycles/nodejs-lib/exec2';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { inspect } from 'node:util';
|
|
2
2
|
import { _ms, _since } from '@naturalcycles/js-lib/datetime';
|
|
3
3
|
import { getFetcher } from '@naturalcycles/js-lib/http';
|
|
4
|
-
import { _filterFalsyValues } from '@naturalcycles/js-lib/object';
|
|
5
|
-
import { pDelay } from '@naturalcycles/js-lib/promise';
|
|
4
|
+
import { _filterFalsyValues } from '@naturalcycles/js-lib/object/object.util.js';
|
|
5
|
+
import { pDelay } from '@naturalcycles/js-lib/promise/pDelay.js';
|
|
6
6
|
import { dimGrey, red } from '@naturalcycles/nodejs-lib/colors';
|
|
7
7
|
import { exec2 } from '@naturalcycles/nodejs-lib/exec2';
|
|
8
8
|
import { coloredHttpCode } from '../server/request.log.util.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { DeployInfo } from './deploy.model.js';
|
|
2
|
-
export declare const getDeployInfo: ((projectDir: string) => DeployInfo) & import("@naturalcycles/js-lib/decorators").MemoizedFunction;
|
|
2
|
+
export declare const getDeployInfo: ((projectDir: string) => DeployInfo) & import("@naturalcycles/js-lib/decorators/memoFn.js").MemoizedFunction;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { localTime } from '@naturalcycles/js-lib/datetime';
|
|
2
|
-
import { _memoFn } from '@naturalcycles/js-lib/decorators';
|
|
1
|
+
import { localTime } from '@naturalcycles/js-lib/datetime/localTime.js';
|
|
2
|
+
import { _memoFn } from '@naturalcycles/js-lib/decorators/memoFn.js';
|
|
3
3
|
import { fs2 } from '@naturalcycles/nodejs-lib/fs2';
|
|
4
4
|
export const getDeployInfo = _memoFn((projectDir) => {
|
|
5
5
|
const deployInfoPath = `${projectDir}/deployInfo.json`;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _by } from '@naturalcycles/js-lib';
|
|
2
|
-
import { _assert } from '@naturalcycles/js-lib/error';
|
|
1
|
+
import { _by } from '@naturalcycles/js-lib/array/array.util.js';
|
|
2
|
+
import { _assert } from '@naturalcycles/js-lib/error/assert.js';
|
|
3
3
|
import { dimGrey } from '@naturalcycles/nodejs-lib/colors';
|
|
4
4
|
export class EnvSharedService {
|
|
5
5
|
constructor(cfg) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import os from 'node:os';
|
|
3
|
-
import { _ms } from '@naturalcycles/js-lib/datetime';
|
|
4
|
-
import { _Memo } from '@naturalcycles/js-lib/decorators';
|
|
3
|
+
import { _ms } from '@naturalcycles/js-lib/datetime/time.util.js';
|
|
4
|
+
import { _Memo } from '@naturalcycles/js-lib/decorators/memo.decorator.js';
|
|
5
5
|
import { boldGrey, dimGrey, white } from '@naturalcycles/nodejs-lib/colors';
|
|
6
6
|
import { createDefaultApp } from './createDefaultApp.js';
|
|
7
7
|
const { NODE_OPTIONS, APP_ENV } = process.env;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _split } from '@naturalcycles/js-lib/string';
|
|
1
|
+
import { _split } from '@naturalcycles/js-lib/string/string.util.js';
|
|
2
2
|
import { base64ToString, timingSafeStringEqual } from '@naturalcycles/nodejs-lib';
|
|
3
3
|
export function basicAuthMiddleware(cfg) {
|
|
4
4
|
const { realm } = cfg;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _ms } from '@naturalcycles/js-lib/datetime';
|
|
2
|
-
import { AppError } from '@naturalcycles/js-lib/error';
|
|
1
|
+
import { _ms } from '@naturalcycles/js-lib/datetime/time.util.js';
|
|
2
|
+
import { AppError } from '@naturalcycles/js-lib/error/error.util.js';
|
|
3
3
|
import { onFinished } from '../onFinished.js';
|
|
4
4
|
import { respondWithError } from './genericErrorMiddleware.js';
|
|
5
5
|
import { getRequestEndpoint } from './request.util.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _safeJsonStringify } from '@naturalcycles/js-lib/string';
|
|
1
|
+
import { _safeJsonStringify } from '@naturalcycles/js-lib/string/safeJsonStringify.js';
|
|
2
2
|
/**
|
|
3
3
|
* Replaces express's built-in req.json() function with the safe one,
|
|
4
4
|
* protected from circular references.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { _mb
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { _mb } from '@naturalcycles/js-lib';
|
|
2
|
+
import { _sortBy, _sum } from '@naturalcycles/js-lib/array/array.util.js';
|
|
3
|
+
import { _ms } from '@naturalcycles/js-lib/datetime/time.util.js';
|
|
4
|
+
import { _percentile } from '@naturalcycles/js-lib/math/math.util.js';
|
|
5
|
+
import { NumberStack } from '@naturalcycles/js-lib/math/stack.util.js';
|
|
6
|
+
import { _get, _mapValues } from '@naturalcycles/js-lib/object/object.util.js';
|
|
5
7
|
import { _stringMapEntries, _stringMapValues } from '@naturalcycles/js-lib/types';
|
|
6
8
|
import { onFinished } from '../onFinished.js';
|
|
7
9
|
import { getRequestEndpoint } from './request.util.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { localTime } from '@naturalcycles/js-lib/datetime';
|
|
2
|
-
import { _filterNullishValues } from '@naturalcycles/js-lib/object';
|
|
1
|
+
import { localTime } from '@naturalcycles/js-lib/datetime/localTime.js';
|
|
2
|
+
import { _filterNullishValues } from '@naturalcycles/js-lib/object/object.util.js';
|
|
3
3
|
import { memoryUsageFull, processSharedUtil } from '@naturalcycles/nodejs-lib';
|
|
4
4
|
import { getDeployInfo } from '../deploy/deployInfo.util.js';
|
|
5
5
|
const { versions, arch, platform } = process;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _since } from '@naturalcycles/js-lib/datetime';
|
|
1
|
+
import { _since } from '@naturalcycles/js-lib/datetime/time.util.js';
|
|
2
2
|
import { boldGrey, dimGrey } from '@naturalcycles/nodejs-lib/colors';
|
|
3
3
|
import { onFinished } from '../onFinished.js';
|
|
4
4
|
import { logRequestWithColors } from './request.log.util.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getFetcher } from '@naturalcycles/js-lib/http';
|
|
2
|
-
import { pDelay } from '@naturalcycles/js-lib/promise';
|
|
2
|
+
import { pDelay } from '@naturalcycles/js-lib/promise/pDelay.js';
|
|
3
3
|
import { createDefaultApp, } from '../express/createDefaultApp.js';
|
|
4
4
|
const nativeFetchFn = async (url, init) => await globalThis.fetch(url, init);
|
|
5
5
|
// Example:
|
|
@@ -19,13 +19,10 @@ class AjvValidateRequest {
|
|
|
19
19
|
* Keep in mind that this will also remove all values that are not in the schema.
|
|
20
20
|
*/
|
|
21
21
|
headers(req, schema, opt = {}) {
|
|
22
|
-
return this.validate(req, 'headers', schema,
|
|
23
|
-
mutate: false,
|
|
24
|
-
...opt,
|
|
25
|
-
});
|
|
22
|
+
return this.validate(req, 'headers', schema, opt);
|
|
26
23
|
}
|
|
27
24
|
validate(req, reqProperty, schema, opt = {}) {
|
|
28
|
-
const { mutate
|
|
25
|
+
const { mutate } = opt;
|
|
29
26
|
const originalProperty = req[reqProperty] || {};
|
|
30
27
|
const item = mutate ? originalProperty : { ...originalProperty };
|
|
31
28
|
// Ajv mutates the input
|
|
@@ -20,13 +20,10 @@ class ValidateRequest {
|
|
|
20
20
|
* Keep in mind that this will also remove all values that are not in the schema.
|
|
21
21
|
*/
|
|
22
22
|
headers(req, schema, opt = {}) {
|
|
23
|
-
return this.validate(req, 'headers', schema,
|
|
24
|
-
mutate: false,
|
|
25
|
-
...opt,
|
|
26
|
-
});
|
|
23
|
+
return this.validate(req, 'headers', schema, opt);
|
|
27
24
|
}
|
|
28
25
|
validate(req, reqProperty, schema, opt = {}) {
|
|
29
|
-
const { mutate
|
|
26
|
+
const { mutate } = opt;
|
|
30
27
|
const originalProperty = req[reqProperty] || {};
|
|
31
28
|
// Joi does not mutate the input
|
|
32
29
|
const { error, value } = getValidationResult(originalProperty, schema, `request ${reqProperty}`);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppError } from '@naturalcycles/js-lib/error';
|
|
1
|
+
import { AppError } from '@naturalcycles/js-lib/error/error.util.js';
|
|
2
2
|
export declare function handleValidationError<T, ERR extends AppError>(error: ERR, originalProperty: T, opt?: ReqValidationOptions<ERR>): never;
|
|
3
3
|
export interface ReqValidationOptions<ERR extends AppError> {
|
|
4
4
|
/**
|
|
@@ -12,10 +12,9 @@ export interface ReqValidationOptions<ERR extends AppError> {
|
|
|
12
12
|
*/
|
|
13
13
|
report?: boolean | ((err: ERR) => boolean);
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Defaults to false.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* Exception is `headers` validation, where the default is `false`.
|
|
17
|
+
* When set to true, the validated object will be replaced with the converted value.
|
|
19
18
|
*
|
|
20
19
|
* To avoid mutation - shallow copy is performed.
|
|
21
20
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AppError } from '@naturalcycles/js-lib/error';
|
|
2
|
-
import { _get } from '@naturalcycles/js-lib/object';
|
|
1
|
+
import { AppError } from '@naturalcycles/js-lib/error/error.util.js';
|
|
2
|
+
import { _get } from '@naturalcycles/js-lib/object/object.util.js';
|
|
3
3
|
export function handleValidationError(error, originalProperty, opt = {}) {
|
|
4
4
|
// const item: T = opt.mutate ? { ...req[reqProperty] } : (req[reqProperty] || {})
|
|
5
5
|
let report;
|
|
@@ -20,13 +20,10 @@ class ZodValidateRequest {
|
|
|
20
20
|
* Keep in mind that this will also remove all values that are not in the schema.
|
|
21
21
|
*/
|
|
22
22
|
headers(req, schema, opt = {}) {
|
|
23
|
-
return this.validate(req, 'headers', schema,
|
|
24
|
-
mutate: false,
|
|
25
|
-
...opt,
|
|
26
|
-
});
|
|
23
|
+
return this.validate(req, 'headers', schema, opt);
|
|
27
24
|
}
|
|
28
25
|
validate(req, reqProperty, schema, opt = {}) {
|
|
29
|
-
const { mutate
|
|
26
|
+
const { mutate } = opt;
|
|
30
27
|
const originalProperty = req[reqProperty] || {};
|
|
31
28
|
// Zod does not mutate the input
|
|
32
29
|
const { error, data } = zSafeValidate(originalProperty, schema);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naturalcycles/backend-lib",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "9.
|
|
4
|
+
"version": "9.19.0",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@sentry/node": "^9"
|
|
7
7
|
},
|
|
@@ -26,20 +26,20 @@
|
|
|
26
26
|
"tslib": "^2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@naturalcycles/dev-lib": "*",
|
|
30
29
|
"@sentry/node": "^9",
|
|
31
30
|
"@types/ejs": "^3",
|
|
32
|
-
"fastify": "^5"
|
|
31
|
+
"fastify": "^5",
|
|
32
|
+
"@naturalcycles/dev-lib": "18.4.2"
|
|
33
33
|
},
|
|
34
34
|
"exports": {
|
|
35
|
-
"./cfg/tsconfig.json": "./cfg/tsconfig.json",
|
|
36
35
|
".": "./dist/index.js",
|
|
36
|
+
"./cfg/tsconfig.json": "./cfg/tsconfig.json",
|
|
37
37
|
"./admin": "./dist/admin/index.js",
|
|
38
|
+
"./admin/*.js": "./dist/admin/*.js",
|
|
38
39
|
"./db": "./dist/db/index.js",
|
|
39
40
|
"./deploy": "./dist/deploy/index.js",
|
|
40
|
-
"./
|
|
41
|
-
"./express
|
|
42
|
-
"./express/startServer": "./dist/express/startServer.js",
|
|
41
|
+
"./deploy/*.js": "./dist/deploy/*.js",
|
|
42
|
+
"./express/*.js": "./dist/express/*.js",
|
|
43
43
|
"./ajvValidateRequest": "./dist/validation/ajv/ajvValidateRequest.js",
|
|
44
44
|
"./joiValidateRequest": "./dist/validation/joi/joiValidateRequest.js",
|
|
45
45
|
"./zodValidateRequest": "./dist/validation/zod/zodValidateRequest.js",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _memoFn } from '@naturalcycles/js-lib/decorators'
|
|
2
|
-
import { AppError } from '@naturalcycles/js-lib/error'
|
|
1
|
+
import { _memoFn } from '@naturalcycles/js-lib/decorators/memoFn.js'
|
|
2
|
+
import { AppError } from '@naturalcycles/js-lib/error/error.util.js'
|
|
3
3
|
import { fs2 } from '@naturalcycles/nodejs-lib/fs2'
|
|
4
4
|
import { srcDir } from '../paths.cnst.js'
|
|
5
5
|
import type { BackendRequestHandler } from '../server/server.model.js'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppError } from '@naturalcycles/js-lib/error'
|
|
1
|
+
import { AppError } from '@naturalcycles/js-lib/error/error.util.js'
|
|
2
2
|
import { timingSafeStringEqual } from '@naturalcycles/nodejs-lib'
|
|
3
3
|
import type { BackendRequestHandler } from '../server/server.model.js'
|
|
4
4
|
import type { AdminMiddleware, RequireAdminCfg } from './adminMiddleware.js'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { localTime } from '@naturalcycles/js-lib/datetime'
|
|
2
|
-
import { _assert } from '@naturalcycles/js-lib/error'
|
|
3
|
-
import { _mapValues, _merge } from '@naturalcycles/js-lib/object'
|
|
4
|
-
import { _truncate } from '@naturalcycles/js-lib/string'
|
|
1
|
+
import { localTime } from '@naturalcycles/js-lib/datetime/localTime.js'
|
|
2
|
+
import { _assert } from '@naturalcycles/js-lib/error/assert.js'
|
|
3
|
+
import { _mapValues, _merge } from '@naturalcycles/js-lib/object/object.util.js'
|
|
4
|
+
import { _truncate } from '@naturalcycles/js-lib/string/string.util.js'
|
|
5
5
|
import { sha256 } from '@naturalcycles/nodejs-lib'
|
|
6
6
|
import { dimGrey, white } from '@naturalcycles/nodejs-lib/colors'
|
|
7
7
|
import { fs2 } from '@naturalcycles/nodejs-lib/fs2'
|
package/src/deploy/deployGae.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _anyToError } from '@naturalcycles/js-lib/error'
|
|
2
|
-
import { pRetry } from '@naturalcycles/js-lib/promise'
|
|
2
|
+
import { pRetry } from '@naturalcycles/js-lib/promise/pRetry.js'
|
|
3
3
|
import { _objectAssign } from '@naturalcycles/js-lib/types'
|
|
4
4
|
import { appendToGithubSummary } from '@naturalcycles/nodejs-lib/env'
|
|
5
5
|
import { exec2 } from '@naturalcycles/nodejs-lib/exec2'
|
|
@@ -2,8 +2,8 @@ import type { InspectOptions } from 'node:util'
|
|
|
2
2
|
import { inspect } from 'node:util'
|
|
3
3
|
import { _ms, _since } from '@naturalcycles/js-lib/datetime'
|
|
4
4
|
import { getFetcher } from '@naturalcycles/js-lib/http'
|
|
5
|
-
import { _filterFalsyValues } from '@naturalcycles/js-lib/object'
|
|
6
|
-
import { pDelay } from '@naturalcycles/js-lib/promise'
|
|
5
|
+
import { _filterFalsyValues } from '@naturalcycles/js-lib/object/object.util.js'
|
|
6
|
+
import { pDelay } from '@naturalcycles/js-lib/promise/pDelay.js'
|
|
7
7
|
import type { UnixTimestampMillis } from '@naturalcycles/js-lib/types'
|
|
8
8
|
import { dimGrey, red } from '@naturalcycles/nodejs-lib/colors'
|
|
9
9
|
import { exec2 } from '@naturalcycles/nodejs-lib/exec2'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { localTime } from '@naturalcycles/js-lib/datetime'
|
|
2
|
-
import { _memoFn } from '@naturalcycles/js-lib/decorators'
|
|
1
|
+
import { localTime } from '@naturalcycles/js-lib/datetime/localTime.js'
|
|
2
|
+
import { _memoFn } from '@naturalcycles/js-lib/decorators/memoFn.js'
|
|
3
3
|
import { fs2 } from '@naturalcycles/nodejs-lib/fs2'
|
|
4
4
|
import type { DeployInfo } from './deploy.model.js'
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _by } from '@naturalcycles/js-lib'
|
|
2
|
-
import { _assert } from '@naturalcycles/js-lib/error'
|
|
1
|
+
import { _by } from '@naturalcycles/js-lib/array/array.util.js'
|
|
2
|
+
import { _assert } from '@naturalcycles/js-lib/error/assert.js'
|
|
3
3
|
import type { StringMap } from '@naturalcycles/js-lib/types'
|
|
4
4
|
import { dimGrey } from '@naturalcycles/nodejs-lib/colors'
|
|
5
5
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Server } from 'node:http'
|
|
2
2
|
import os from 'node:os'
|
|
3
|
-
import { _ms } from '@naturalcycles/js-lib/datetime'
|
|
4
|
-
import { _Memo } from '@naturalcycles/js-lib/decorators'
|
|
3
|
+
import { _ms } from '@naturalcycles/js-lib/datetime/time.util.js'
|
|
4
|
+
import { _Memo } from '@naturalcycles/js-lib/decorators/memo.decorator.js'
|
|
5
5
|
import { boldGrey, dimGrey, white } from '@naturalcycles/nodejs-lib/colors'
|
|
6
6
|
import type { SentrySharedService } from '../sentry/sentry.shared.service.js'
|
|
7
7
|
import type { BackendApplication } from '../server/server.model.js'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _split } from '@naturalcycles/js-lib/string'
|
|
1
|
+
import { _split } from '@naturalcycles/js-lib/string/string.util.js'
|
|
2
2
|
import type { StringMap } from '@naturalcycles/js-lib/types'
|
|
3
3
|
import { base64ToString, timingSafeStringEqual } from '@naturalcycles/nodejs-lib'
|
|
4
4
|
import type { BackendRequestHandler } from './server.model.js'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _since } from '@naturalcycles/js-lib/datetime'
|
|
1
|
+
import { _since } from '@naturalcycles/js-lib/datetime/time.util.js'
|
|
2
2
|
import type { UnixTimestampMillis } from '@naturalcycles/js-lib/types'
|
|
3
3
|
import { onFinished } from '../onFinished.js'
|
|
4
4
|
import type { BackendRequest, BackendRequestHandler } from './server.model.js'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _ms } from '@naturalcycles/js-lib/datetime'
|
|
2
|
-
import { AppError } from '@naturalcycles/js-lib/error'
|
|
1
|
+
import { _ms } from '@naturalcycles/js-lib/datetime/time.util.js'
|
|
2
|
+
import { AppError } from '@naturalcycles/js-lib/error/error.util.js'
|
|
3
3
|
import type { NumberOfSeconds } from '@naturalcycles/js-lib/types'
|
|
4
4
|
import { onFinished } from '../onFinished.js'
|
|
5
5
|
import { respondWithError } from './genericErrorMiddleware.js'
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { _mb
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { _mb } from '@naturalcycles/js-lib'
|
|
2
|
+
import { _sortBy, _sum } from '@naturalcycles/js-lib/array/array.util.js'
|
|
3
|
+
import { _ms } from '@naturalcycles/js-lib/datetime/time.util.js'
|
|
4
|
+
import { _percentile } from '@naturalcycles/js-lib/math/math.util.js'
|
|
5
|
+
import { NumberStack } from '@naturalcycles/js-lib/math/stack.util.js'
|
|
6
|
+
import { _get, _mapValues } from '@naturalcycles/js-lib/object/object.util.js'
|
|
5
7
|
import { _stringMapEntries, _stringMapValues, type StringMap } from '@naturalcycles/js-lib/types'
|
|
6
8
|
import { onFinished } from '../onFinished.js'
|
|
7
9
|
import { getRequestEndpoint } from './request.util.js'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { localTime } from '@naturalcycles/js-lib/datetime'
|
|
2
|
-
import { _filterNullishValues } from '@naturalcycles/js-lib/object'
|
|
1
|
+
import { localTime } from '@naturalcycles/js-lib/datetime/localTime.js'
|
|
2
|
+
import { _filterNullishValues } from '@naturalcycles/js-lib/object/object.util.js'
|
|
3
3
|
import { memoryUsageFull, processSharedUtil } from '@naturalcycles/nodejs-lib'
|
|
4
4
|
import { getDeployInfo } from '../deploy/deployInfo.util.js'
|
|
5
5
|
import type { BackendRequestHandler } from './server.model.js'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _since } from '@naturalcycles/js-lib/datetime'
|
|
1
|
+
import { _since } from '@naturalcycles/js-lib/datetime/time.util.js'
|
|
2
2
|
import type { UnixTimestampMillis } from '@naturalcycles/js-lib/types'
|
|
3
3
|
import { boldGrey, dimGrey } from '@naturalcycles/nodejs-lib/colors'
|
|
4
4
|
import { onFinished } from '../onFinished.js'
|
|
@@ -2,7 +2,7 @@ import type { Server } from 'node:http'
|
|
|
2
2
|
import type { AddressInfo } from 'node:net'
|
|
3
3
|
import type { Fetcher, FetcherOptions, FetchFunction } from '@naturalcycles/js-lib/http'
|
|
4
4
|
import { getFetcher } from '@naturalcycles/js-lib/http'
|
|
5
|
-
import { pDelay } from '@naturalcycles/js-lib/promise'
|
|
5
|
+
import { pDelay } from '@naturalcycles/js-lib/promise/pDelay.js'
|
|
6
6
|
import {
|
|
7
7
|
type BackendRequestHandlerCfg,
|
|
8
8
|
createDefaultApp,
|
|
@@ -41,10 +41,7 @@ class AjvValidateRequest {
|
|
|
41
41
|
schema: AjvSchema<T>,
|
|
42
42
|
opt: ReqValidationOptions<AjvValidationError> = {},
|
|
43
43
|
): T {
|
|
44
|
-
return this.validate(req, 'headers', schema,
|
|
45
|
-
mutate: false,
|
|
46
|
-
...opt,
|
|
47
|
-
})
|
|
44
|
+
return this.validate(req, 'headers', schema, opt)
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
private validate<T>(
|
|
@@ -53,7 +50,7 @@ class AjvValidateRequest {
|
|
|
53
50
|
schema: AjvSchema<T>,
|
|
54
51
|
opt: ReqValidationOptions<AjvValidationError> = {},
|
|
55
52
|
): T {
|
|
56
|
-
const { mutate
|
|
53
|
+
const { mutate } = opt
|
|
57
54
|
const originalProperty = req[reqProperty] || {}
|
|
58
55
|
const item: T = mutate ? originalProperty : { ...originalProperty }
|
|
59
56
|
|
|
@@ -42,10 +42,7 @@ class ValidateRequest {
|
|
|
42
42
|
schema: AnySchema<T>,
|
|
43
43
|
opt: ReqValidationOptions<JoiValidationError> = {},
|
|
44
44
|
): T {
|
|
45
|
-
return this.validate(req, 'headers', schema,
|
|
46
|
-
mutate: false,
|
|
47
|
-
...opt,
|
|
48
|
-
})
|
|
45
|
+
return this.validate(req, 'headers', schema, opt)
|
|
49
46
|
}
|
|
50
47
|
|
|
51
48
|
private validate<T>(
|
|
@@ -54,7 +51,7 @@ class ValidateRequest {
|
|
|
54
51
|
schema: AnySchema<T>,
|
|
55
52
|
opt: ReqValidationOptions<JoiValidationError> = {},
|
|
56
53
|
): T {
|
|
57
|
-
const { mutate
|
|
54
|
+
const { mutate } = opt
|
|
58
55
|
const originalProperty = req[reqProperty] || {}
|
|
59
56
|
|
|
60
57
|
// Joi does not mutate the input
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AppError } from '@naturalcycles/js-lib/error'
|
|
2
|
-
import { _get } from '@naturalcycles/js-lib/object'
|
|
1
|
+
import { AppError } from '@naturalcycles/js-lib/error/error.util.js'
|
|
2
|
+
import { _get } from '@naturalcycles/js-lib/object/object.util.js'
|
|
3
3
|
|
|
4
4
|
export function handleValidationError<T, ERR extends AppError>(
|
|
5
5
|
error: ERR,
|
|
@@ -54,10 +54,9 @@ export interface ReqValidationOptions<ERR extends AppError> {
|
|
|
54
54
|
report?: boolean | ((err: ERR) => boolean)
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
57
|
+
* Defaults to false.
|
|
58
58
|
*
|
|
59
|
-
*
|
|
60
|
-
* Exception is `headers` validation, where the default is `false`.
|
|
59
|
+
* When set to true, the validated object will be replaced with the converted value.
|
|
61
60
|
*
|
|
62
61
|
* To avoid mutation - shallow copy is performed.
|
|
63
62
|
*/
|
|
@@ -41,10 +41,7 @@ class ZodValidateRequest {
|
|
|
41
41
|
schema: ZodType<T>,
|
|
42
42
|
opt: ReqValidationOptions<ZodValidationError> = {},
|
|
43
43
|
): T {
|
|
44
|
-
return this.validate(req, 'headers', schema,
|
|
45
|
-
mutate: false,
|
|
46
|
-
...opt,
|
|
47
|
-
})
|
|
44
|
+
return this.validate(req, 'headers', schema, opt)
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
private validate<T>(
|
|
@@ -53,7 +50,7 @@ class ZodValidateRequest {
|
|
|
53
50
|
schema: ZodType<T>,
|
|
54
51
|
opt: ReqValidationOptions<ZodValidationError> = {},
|
|
55
52
|
): T {
|
|
56
|
-
const { mutate
|
|
53
|
+
const { mutate } = opt
|
|
57
54
|
const originalProperty = req[reqProperty] || {}
|
|
58
55
|
|
|
59
56
|
// Zod does not mutate the input
|