@gravity-ui/gateway 4.0.0 → 4.1.1-alpha.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/{build → dist/commonjs}/components/grpc.d.ts +4 -4
- package/{build → dist/commonjs}/components/grpc.js +90 -79
- package/{build → dist/commonjs}/components/mixed.d.ts +4 -4
- package/{build → dist/commonjs}/components/mixed.js +11 -12
- package/{build → dist/commonjs}/components/rest.d.ts +5 -5
- package/{build → dist/commonjs}/components/rest.js +32 -32
- package/{build → dist/commonjs}/constants.d.ts +2 -2
- package/{build → dist/commonjs}/constants.js +25 -18
- package/{build → dist/commonjs}/index.d.ts +8 -7
- package/{build → dist/commonjs}/index.js +32 -44
- package/{build → dist/commonjs}/models/common.d.ts +13 -6
- package/{build → dist/commonjs}/models/context.d.ts +0 -1
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/utils/axios.d.ts +3 -0
- package/{build → dist/commonjs}/utils/axios.js +3 -4
- package/{build → dist/commonjs}/utils/common.d.ts +3 -3
- package/{build → dist/commonjs}/utils/common.js +7 -8
- package/{build → dist/commonjs}/utils/create-context-api.d.ts +2 -2
- package/{build → dist/commonjs}/utils/create-context-api.js +5 -6
- package/{build → dist/commonjs}/utils/grpc-reflection.js +21 -12
- package/{build → dist/commonjs}/utils/grpc.d.ts +1 -1
- package/{build → dist/commonjs}/utils/grpc.js +11 -12
- package/dist/commonjs/utils/overrideEndpoints/index.d.ts +2 -0
- package/dist/commonjs/utils/overrideEndpoints/index.js +4 -0
- package/{build → dist/commonjs}/utils/overrideEndpoints/overrideEndpoints.d.ts +1 -1
- package/{build → dist/commonjs}/utils/overrideEndpoints/overrideEndpoints.js +1 -2
- package/{build → dist/commonjs}/utils/parse-error.d.ts +5 -5
- package/{build → dist/commonjs}/utils/parse-error.js +21 -21
- package/{build → dist/commonjs}/utils/proto-path-resolver.js +23 -17
- package/{build → dist/commonjs}/utils/redact-sensitive-headers.d.ts +1 -2
- package/{build → dist/commonjs}/utils/redact-sensitive-headers.js +1 -2
- package/dist/commonjs/utils/source-dir.d.ts +1 -0
- package/dist/commonjs/utils/source-dir.js +41 -0
- package/{build → dist/commonjs}/utils/typed-api.d.ts +1 -1
- package/{build → dist/commonjs}/utils/typed-api.js +1 -2
- package/{build → dist/commonjs}/utils/validate.js +6 -10
- package/dist/esm/components/grpc.d.ts +24 -0
- package/dist/esm/components/grpc.js +641 -0
- package/dist/esm/components/mixed.d.ts +11 -0
- package/dist/esm/components/mixed.js +62 -0
- package/dist/esm/components/rest.d.ts +8 -0
- package/dist/esm/components/rest.js +349 -0
- package/dist/esm/constants.d.ts +53 -0
- package/dist/esm/constants.js +79 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.js +264 -0
- package/dist/esm/models/common.d.ts +272 -0
- package/dist/esm/models/common.js +5 -0
- package/dist/esm/models/context.d.ts +22 -0
- package/dist/esm/models/context.js +1 -0
- package/dist/esm/models/error.d.ts +12 -0
- package/dist/esm/models/error.js +1 -0
- package/dist/esm/package.json +3 -0
- package/{build → dist/esm}/utils/axios.d.ts +1 -1
- package/dist/esm/utils/axios.js +23 -0
- package/dist/esm/utils/common.d.ts +15 -0
- package/dist/esm/utils/common.js +38 -0
- package/dist/esm/utils/create-context-api.d.ts +4 -0
- package/dist/esm/utils/create-context-api.js +38 -0
- package/dist/esm/utils/grpc-reflection.d.ts +28 -0
- package/dist/esm/utils/grpc-reflection.js +68 -0
- package/dist/esm/utils/grpc.d.ts +5 -0
- package/dist/esm/utils/grpc.js +39 -0
- package/dist/esm/utils/overrideEndpoints/index.d.ts +2 -0
- package/dist/esm/utils/overrideEndpoints/index.js +2 -0
- package/dist/esm/utils/overrideEndpoints/overrideEndpoints.d.ts +17 -0
- package/dist/esm/utils/overrideEndpoints/overrideEndpoints.js +96 -0
- package/dist/esm/utils/parse-error.d.ts +30 -0
- package/dist/esm/utils/parse-error.js +210 -0
- package/dist/esm/utils/proto-path-resolver.d.ts +2 -0
- package/dist/esm/utils/proto-path-resolver.js +23 -0
- package/dist/esm/utils/redact-sensitive-headers.d.ts +3 -0
- package/dist/esm/utils/redact-sensitive-headers.js +12 -0
- package/dist/esm/utils/source-dir.d.ts +1 -0
- package/dist/esm/utils/source-dir.js +4 -0
- package/dist/esm/utils/typed-api.d.ts +2 -0
- package/dist/esm/utils/typed-api.js +3 -0
- package/dist/esm/utils/validate.d.ts +4 -0
- package/dist/esm/utils/validate.js +47 -0
- package/package.json +41 -16
- package/build/utils/overrideEndpoints/index.d.ts +0 -2
- package/build/utils/overrideEndpoints/index.js +0 -4
- /package/bin/{patch.js → patch.cjs} +0 -0
- /package/{build → dist/commonjs}/models/common.js +0 -0
- /package/{build → dist/commonjs}/models/context.js +0 -0
- /package/{build → dist/commonjs}/models/error.d.ts +0 -0
- /package/{build → dist/commonjs}/models/error.js +0 -0
- /package/{build → dist/commonjs}/utils/grpc-reflection.d.ts +0 -0
- /package/{build → dist/commonjs}/utils/proto-path-resolver.d.ts +0 -0
- /package/{build → dist/commonjs}/utils/validate.d.ts +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Ajv } from 'ajv';
|
|
2
|
+
export function validateArgs(args, schema) {
|
|
3
|
+
const ajv = new Ajv();
|
|
4
|
+
const validate = ajv.compile(schema);
|
|
5
|
+
return validate(args) ? false : ajv.errorsText(validate.errors);
|
|
6
|
+
}
|
|
7
|
+
export function encodePathParams(params) {
|
|
8
|
+
const encodedParams = {};
|
|
9
|
+
Object.keys(params).forEach((key) => {
|
|
10
|
+
const value = params[key];
|
|
11
|
+
if (value instanceof Buffer) {
|
|
12
|
+
encodedParams[key] = value;
|
|
13
|
+
}
|
|
14
|
+
else if (typeof value === 'object' && value !== null) {
|
|
15
|
+
encodedParams[key] = encodePathParams(value);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
encodedParams[key] = encodeURIComponent(value);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return encodedParams;
|
|
22
|
+
}
|
|
23
|
+
export function getPathParam(value) {
|
|
24
|
+
return /^((?!(\.\.|\?|#|\\|\/)).)*$/i.test(value) ? value : 'GATEWAY_INVALID_PARAM_VALUE';
|
|
25
|
+
}
|
|
26
|
+
export function getPathArgsProxy(args, encodePathArgs) {
|
|
27
|
+
const encodePathArgsVal = encodePathArgs !== null && encodePathArgs !== void 0 ? encodePathArgs : true;
|
|
28
|
+
if (!args) {
|
|
29
|
+
return args;
|
|
30
|
+
}
|
|
31
|
+
return new Proxy(args, {
|
|
32
|
+
get: (object, key) => {
|
|
33
|
+
const value = object[key];
|
|
34
|
+
if (value instanceof Buffer) {
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
if (typeof value === 'object' && value !== null) {
|
|
38
|
+
return getPathArgsProxy(value);
|
|
39
|
+
}
|
|
40
|
+
if (typeof value === 'string') {
|
|
41
|
+
const pathParam = getPathParam(value);
|
|
42
|
+
return encodePathArgsVal ? encodeURIComponent(pathParam) : pathParam;
|
|
43
|
+
}
|
|
44
|
+
return value; // TODO return error INVALID_PARAMS
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
package/package.json
CHANGED
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/gateway",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.1-alpha.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/commonjs/index.js",
|
|
8
|
+
"module": "./dist/esm/index.js",
|
|
9
|
+
"types": "./dist/commonjs/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
"./package.json": "./package.json",
|
|
12
|
+
".": {
|
|
13
|
+
"import": {
|
|
14
|
+
"types": "./dist/esm/index.d.ts",
|
|
15
|
+
"default": "./dist/esm/index.js"
|
|
16
|
+
},
|
|
17
|
+
"require": {
|
|
18
|
+
"types": "./dist/commonjs/index.d.ts",
|
|
19
|
+
"default": "./dist/commonjs/index.js"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
7
23
|
"files": [
|
|
8
|
-
"
|
|
24
|
+
"dist",
|
|
9
25
|
"proto",
|
|
10
26
|
"bin",
|
|
11
27
|
"patches"
|
|
12
28
|
],
|
|
13
|
-
"types": "build/index.d.ts",
|
|
14
29
|
"bin": {
|
|
15
|
-
"gateway-reflection-patch": "bin/patch.
|
|
30
|
+
"gateway-reflection-patch": "bin/patch.cjs"
|
|
16
31
|
},
|
|
17
32
|
"repository": {
|
|
18
33
|
"type": "git",
|
|
@@ -24,13 +39,13 @@
|
|
|
24
39
|
"homepage": "https://github.com/gravity-ui/gateway#readme",
|
|
25
40
|
"scripts": {
|
|
26
41
|
"prepare": "husky install",
|
|
27
|
-
"build": "
|
|
42
|
+
"build": "tshy",
|
|
28
43
|
"build-integration": "sh integration-test/build.sh",
|
|
29
|
-
"start-integration-server": "node build-integration/
|
|
44
|
+
"start-integration-server": "node build-integration/server",
|
|
30
45
|
"build-and-run-integration": "npm run build-integration && npm run start-integration-server",
|
|
31
46
|
"clean": "rm -rf build && rm -rf build-integration",
|
|
32
47
|
"lint": "npm run lint:code && npm run lint:exports",
|
|
33
|
-
"lint:code": "eslint \"
|
|
48
|
+
"lint:code": "eslint \"src/**/*.{js,ts}\" --quiet",
|
|
34
49
|
"lint:exports": "npm run build && attw --pack .",
|
|
35
50
|
"typecheck": "tsc --noEmit",
|
|
36
51
|
"prepublishOnly": "npm run build",
|
|
@@ -41,9 +56,9 @@
|
|
|
41
56
|
"dependencies": {
|
|
42
57
|
"@grpc/grpc-js": "^1.9.9",
|
|
43
58
|
"@grpc/proto-loader": "^0.7.8",
|
|
44
|
-
"ajv": "^8.
|
|
59
|
+
"ajv": "^8.17.1",
|
|
45
60
|
"axios": "^1.3.5",
|
|
46
|
-
"axios-retry": "^
|
|
61
|
+
"axios-retry": "^4.5.0",
|
|
47
62
|
"lodash": "^4.17.21",
|
|
48
63
|
"object-sizeof": "^2.6.5",
|
|
49
64
|
"protobufjs": "^7.2.5",
|
|
@@ -51,13 +66,13 @@
|
|
|
51
66
|
},
|
|
52
67
|
"devDependencies": {
|
|
53
68
|
"@arethetypeswrong/cli": "^0.17.3",
|
|
54
|
-
"@commitlint/cli": "^
|
|
55
|
-
"@commitlint/config-conventional": "^
|
|
69
|
+
"@commitlint/cli": "^19.6.1",
|
|
70
|
+
"@commitlint/config-conventional": "^19.6.0",
|
|
56
71
|
"@gravity-ui/eslint-config": "^2.0.0",
|
|
57
72
|
"@gravity-ui/prettier-config": "^1.0.1",
|
|
58
73
|
"@gravity-ui/tsconfig": "^1.0.0",
|
|
59
74
|
"@types/express": "^4.17.17",
|
|
60
|
-
"@types/jest": "^29.5.
|
|
75
|
+
"@types/jest": "^29.5.14",
|
|
61
76
|
"@types/lodash": "^4.14.192",
|
|
62
77
|
"@types/node": "^18.15.11",
|
|
63
78
|
"@types/uuid": "^9.0.1",
|
|
@@ -68,13 +83,14 @@
|
|
|
68
83
|
"grpc-server-reflection": "^0.1.5",
|
|
69
84
|
"grpc-tools": "^1.12.4",
|
|
70
85
|
"husky": "^8.0.3",
|
|
71
|
-
"jest": "^29.
|
|
86
|
+
"jest": "^29.7.0",
|
|
72
87
|
"nano-staged": "^0.8.0",
|
|
73
88
|
"prettier": "^2.8.6",
|
|
74
89
|
"start-server-and-test": "^2.0.0",
|
|
75
|
-
"ts-jest": "^29.
|
|
90
|
+
"ts-jest": "^29.2.5",
|
|
76
91
|
"tsc-watch": "^6.0.0",
|
|
77
|
-
"
|
|
92
|
+
"tshy": "^3.0.2",
|
|
93
|
+
"typescript": "^5.7.3"
|
|
78
94
|
},
|
|
79
95
|
"peerDependencies": {
|
|
80
96
|
"grpc-reflection-js": "^0.3.0"
|
|
@@ -91,5 +107,14 @@
|
|
|
91
107
|
"*.md": [
|
|
92
108
|
"prettier --write"
|
|
93
109
|
]
|
|
110
|
+
},
|
|
111
|
+
"tshy": {
|
|
112
|
+
"exclude": [
|
|
113
|
+
"src/**/*.test.ts"
|
|
114
|
+
],
|
|
115
|
+
"exports": {
|
|
116
|
+
"./package.json": "./package.json",
|
|
117
|
+
".": "./src/index.ts"
|
|
118
|
+
}
|
|
94
119
|
}
|
|
95
120
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|