mock-config-server 3.4.0 → 3.5.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/bin/bin.js +5 -8
- package/dist/bin/build.js +52 -50
- package/dist/bin/cli.js +50 -43
- package/dist/bin/helpers/createTemplate.js +29 -21
- package/dist/bin/helpers/getMostSpecificPathFromError.js +34 -30
- package/dist/bin/helpers/getValidationMessageFromPath.js +11 -8
- package/dist/bin/helpers/index.js +21 -79
- package/dist/bin/helpers/isOnlyRequestedDataResolvingPropertyExists.js +13 -6
- package/dist/bin/helpers/resolveConfigFile.js +22 -19
- package/dist/bin/helpers/resolveConfigFilePath.js +19 -12
- package/dist/bin/helpers/resolveExportsFromSourceCode.js +13 -10
- package/dist/bin/init.js +114 -97
- package/dist/bin/run.js +42 -37
- package/dist/bin/templates/js/full/mock-server.config.js +16 -16
- package/dist/bin/templates/js/graphql/mock-server.config.js +9 -9
- package/dist/bin/templates/js/rest/mock-server.config.js +9 -9
- package/dist/bin/templates/ts/full/mock-requests/graphql/index.ts +2 -2
- package/dist/bin/templates/ts/full/mock-requests/graphql/user.ts +37 -37
- package/dist/bin/templates/ts/full/mock-requests/graphql/users.ts +14 -14
- package/dist/bin/templates/ts/full/mock-requests/rest/index.ts +2 -2
- package/dist/bin/templates/ts/full/mock-requests/rest/user.ts +37 -37
- package/dist/bin/templates/ts/full/mock-requests/rest/users.ts +14 -14
- package/dist/bin/templates/ts/full/mock-server.config.ts +18 -18
- package/dist/bin/templates/ts/graphql/mock-requests/index.ts +2 -2
- package/dist/bin/templates/ts/graphql/mock-requests/user.ts +37 -37
- package/dist/bin/templates/ts/graphql/mock-requests/users.ts +14 -14
- package/dist/bin/templates/ts/graphql/mock-server.config.ts +11 -11
- package/dist/bin/templates/ts/rest/mock-requests/index.ts +2 -2
- package/dist/bin/templates/ts/rest/mock-requests/user.ts +37 -37
- package/dist/bin/templates/ts/rest/mock-requests/users.ts +14 -14
- package/dist/bin/templates/ts/rest/mock-server.config.ts +11 -11
- package/dist/bin/validateMockServerConfig/baseUrlSchema/baseUrlSchema.js +9 -5
- package/dist/bin/validateMockServerConfig/corsSchema/corsSchema.js +32 -14
- package/dist/bin/validateMockServerConfig/databaseConfigSchema/databaseConfigSchema.js +19 -9
- package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.js +38 -22
- package/dist/bin/validateMockServerConfig/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.js +38 -28
- package/dist/bin/validateMockServerConfig/interceptorsSchema/interceptorsSchema.js +12 -8
- package/dist/bin/validateMockServerConfig/portSchema/portSchema.js +9 -5
- package/dist/bin/validateMockServerConfig/queueSchema/queueSchema.js +18 -9
- package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.js +33 -19
- package/dist/bin/validateMockServerConfig/restConfigSchema/routeConfigSchema/routeConfigSchema.js +62 -48
- package/dist/bin/validateMockServerConfig/settingsSchema/settingsSchema.js +13 -9
- package/dist/bin/validateMockServerConfig/staticPathSchema/staticPathSchema.js +19 -9
- package/dist/bin/validateMockServerConfig/utils/checkModeSchema/checkModeSchema.js +27 -9
- package/dist/bin/validateMockServerConfig/utils/entitiesSchema/entitiesSchema.js +117 -60
- package/dist/bin/validateMockServerConfig/utils/index.js +20 -68
- package/dist/bin/validateMockServerConfig/utils/jsonSchema/jsonSchema.js +30 -10
- package/dist/bin/validateMockServerConfig/utils/plainObjectSchema/plainObjectSchema.js +9 -8
- package/dist/bin/validateMockServerConfig/utils/requiredPropertiesSchema/requiredPropertiesSchema.js +10 -7
- package/dist/bin/validateMockServerConfig/utils/sharedSchema/sharedSchema.js +18 -6
- package/dist/bin/validateMockServerConfig/validateApiMockServerConfig.js +43 -40
- package/dist/bin/validateMockServerConfig/validateMockServerConfig.js +38 -35
- package/dist/index.js +15 -13
- package/dist/src/core/database/createDatabaseRoutes/createDatabaseRoutes.js +25 -28
- package/dist/src/core/database/createDatabaseRoutes/helpers/array/createNewId/createNewId.js +14 -11
- package/dist/src/core/database/createDatabaseRoutes/helpers/array/findIndexById/findIndexById.js +8 -5
- package/dist/src/core/database/createDatabaseRoutes/helpers/array/index.js +17 -35
- package/dist/src/core/database/createDatabaseRoutes/helpers/array/isIndex/isIndex.js +8 -5
- package/dist/src/core/database/createDatabaseRoutes/helpers/createNestedDatabaseRoutes/createNestedDatabaseRoutes.js +157 -143
- package/dist/src/core/database/createDatabaseRoutes/helpers/createRewrittenDatabaseRoutes/createRewrittenDatabaseRoutes.js +15 -8
- package/dist/src/core/database/createDatabaseRoutes/helpers/createShallowDatabaseRoutes/createShallowDatabaseRoutes.js +88 -94
- package/dist/src/core/database/createDatabaseRoutes/helpers/filter/filter.js +44 -47
- package/dist/src/core/database/createDatabaseRoutes/helpers/index.js +19 -57
- package/dist/src/core/database/createDatabaseRoutes/helpers/pagination/pagination.js +32 -31
- package/dist/src/core/database/createDatabaseRoutes/helpers/search/search.js +34 -24
- package/dist/src/core/database/createDatabaseRoutes/helpers/sort/sort.js +38 -34
- package/dist/src/core/database/createDatabaseRoutes/helpers/splitDatabaseByNesting/splitDatabaseByNesting.js +26 -25
- package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.js +65 -50
- package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.js +55 -48
- package/dist/src/core/database/createDatabaseRoutes/storages/Memory/MemoryStorage.js +51 -41
- package/dist/src/core/database/createDatabaseRoutes/storages/index.js +16 -24
- package/dist/src/core/database/index.js +15 -13
- package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +126 -140
- package/dist/src/core/graphql/createGraphQLRoutes/helpers/index.js +15 -13
- package/dist/src/core/graphql/createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js +36 -41
- package/dist/src/core/graphql/index.js +15 -13
- package/dist/src/core/middlewares/cookieParseMiddleware/cookieParseMiddleware.js +16 -13
- package/dist/src/core/middlewares/cookieParseMiddleware/helpers/index.js +15 -13
- package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.js +18 -15
- package/dist/src/core/middlewares/corsMiddleware/corsMiddleware.js +50 -47
- package/dist/src/core/middlewares/corsMiddleware/helpers/getAllowedOrigins/getAllowedOrigins.js +17 -12
- package/dist/src/core/middlewares/corsMiddleware/helpers/index.js +15 -13
- package/dist/src/core/middlewares/destroyerMiddleware/destroyerMiddleware.js +23 -20
- package/dist/src/core/middlewares/errorMiddleware/errorMiddleware.js +23 -17
- package/dist/src/core/middlewares/index.js +23 -91
- package/dist/src/core/middlewares/noCorsMiddleware/noCorsMiddleware.js +22 -19
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.js +21 -23
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/getLevenshteinDistance/getLevenshteinDistance.js +80 -80
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.js +34 -34
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.js +8 -5
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.js +8 -5
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.js +16 -24
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.js +17 -35
- package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +58 -60
- package/dist/src/core/middlewares/requestInterceptorMiddleware/requestInterceptorMiddleware.js +16 -17
- package/dist/src/core/middlewares/staticMiddleware/staticMiddleware.js +32 -25
- package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +120 -130
- package/dist/src/core/rest/createRestRoutes/helpers/index.js +15 -13
- package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.js +37 -43
- package/dist/src/core/rest/index.js +15 -13
- package/dist/src/index.js +16 -24
- package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +56 -53
- package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +64 -62
- package/dist/src/server/createMockServer/createMockServer.js +94 -91
- package/dist/src/server/createRestMockServer/createRestMockServer.js +64 -62
- package/dist/src/server/index.js +23 -91
- package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.js +25 -19
- package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.js +25 -19
- package/dist/src/server/startMockServer/startMockServer.js +25 -19
- package/dist/src/server/startRestMockServer/startRestMockServer.js +25 -19
- package/dist/src/utils/constants/appPath.js +8 -4
- package/dist/src/utils/constants/checkModes.js +74 -11
- package/dist/src/utils/constants/default.js +18 -14
- package/dist/src/utils/constants/index.js +17 -35
- package/dist/src/utils/helpers/asyncHandler.js +8 -5
- package/dist/src/utils/helpers/config/index.js +15 -13
- package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.js +103 -110
- package/dist/src/utils/helpers/entities/convertToEntityDescriptor/convertToEntityDescriptor.js +12 -9
- package/dist/src/utils/helpers/entities/index.js +16 -24
- package/dist/src/utils/helpers/entities/isEntityDescriptor/isEntityDescriptor.js +9 -6
- package/dist/src/utils/helpers/files/index.js +15 -13
- package/dist/src/utils/helpers/files/isFilePathValid/isFilePathValid.js +22 -15
- package/dist/src/utils/helpers/graphql/getGraphQLInput/getGraphQLInput.js +25 -29
- package/dist/src/utils/helpers/graphql/index.js +17 -35
- package/dist/src/utils/helpers/graphql/parseGraphQLRequest/parseGraphQLRequest.js +13 -10
- package/dist/src/utils/helpers/graphql/parseQuery/parseQuery.js +23 -19
- package/dist/src/utils/helpers/index.js +26 -124
- package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +21 -21
- package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +62 -64
- package/dist/src/utils/helpers/interceptors/helpers/setDelay.js +10 -7
- package/dist/src/utils/helpers/interceptors/index.js +16 -24
- package/dist/src/utils/helpers/isPlainObject/isPlainObject.js +8 -5
- package/dist/src/utils/helpers/isPrimitive/isPrimitive.js +8 -5
- package/dist/src/utils/helpers/isRegExp/isRegExp.js +8 -5
- package/dist/src/utils/helpers/sleep.js +9 -6
- package/dist/src/utils/helpers/tests/createTmpDir.js +16 -9
- package/dist/src/utils/helpers/tests/index.js +15 -13
- package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.js +8 -5
- package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.js +9 -6
- package/dist/src/utils/helpers/url/index.js +18 -46
- package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.js +8 -5
- package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +18 -11
- package/dist/src/utils/types/checkModes.js +4 -1
- package/dist/src/utils/types/database.js +4 -1
- package/dist/src/utils/types/entities.js +4 -1
- package/dist/src/utils/types/graphql.js +4 -1
- package/dist/src/utils/types/index.js +24 -102
- package/dist/src/utils/types/interceptors.js +4 -1
- package/dist/src/utils/types/rest.js +4 -1
- package/dist/src/utils/types/server.js +4 -1
- package/dist/src/utils/types/utils.js +4 -1
- package/dist/src/utils/types/values.js +4 -1
- package/package.json +8 -9
- package/dist/bin/templates/.eslintrc.js +0 -14
- package/dist/bin/templates/tsconfig.json +0 -11
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
1
|
+
/* eslint-disable eslint-comments/disable-enable-pair, eslint-comments/no-unlimited-disable */ /* eslint-disable */ "use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const min = (d0, d1, d2, bx, ay) => d0 < d1 || d2 < d1 ? d0 > d2 ? d2 + 1 : d0 + 1 : bx === ay ? d1 : d1 + 1;
|
|
11
|
-
const getLevenshteinDistance = (a, b) => {
|
|
12
|
-
if (a === b) {
|
|
13
|
-
return 0;
|
|
14
|
-
}
|
|
15
|
-
if (a.length > b.length) {
|
|
16
|
-
const tmp = a;
|
|
17
|
-
a = b;
|
|
18
|
-
b = tmp;
|
|
19
|
-
}
|
|
20
|
-
let la = a.length;
|
|
21
|
-
let lb = b.length;
|
|
22
|
-
while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {
|
|
23
|
-
la--;
|
|
24
|
-
lb--;
|
|
25
|
-
}
|
|
26
|
-
let offset = 0;
|
|
27
|
-
while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {
|
|
28
|
-
offset++;
|
|
29
|
-
}
|
|
30
|
-
la -= offset;
|
|
31
|
-
lb -= offset;
|
|
32
|
-
if (la === 0 || lb < 3) {
|
|
33
|
-
return lb;
|
|
34
|
-
}
|
|
35
|
-
let x = 0;
|
|
36
|
-
let y;
|
|
37
|
-
let d0;
|
|
38
|
-
let d1;
|
|
39
|
-
let d2;
|
|
40
|
-
let d3;
|
|
41
|
-
let dd = 0;
|
|
42
|
-
let dy;
|
|
43
|
-
let ay;
|
|
44
|
-
let bx0;
|
|
45
|
-
let bx1;
|
|
46
|
-
let bx2;
|
|
47
|
-
let bx3;
|
|
48
|
-
const vector = [];
|
|
49
|
-
for (y = 0; y < la; y++) {
|
|
50
|
-
vector.push(y + 1);
|
|
51
|
-
vector.push(a.charCodeAt(offset + y));
|
|
52
|
-
}
|
|
53
|
-
const len = vector.length - 1;
|
|
54
|
-
for (; x < lb - 3;) {
|
|
55
|
-
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
56
|
-
bx1 = b.charCodeAt(offset + (d1 = x + 1));
|
|
57
|
-
bx2 = b.charCodeAt(offset + (d2 = x + 2));
|
|
58
|
-
bx3 = b.charCodeAt(offset + (d3 = x + 3));
|
|
59
|
-
dd = x += 4;
|
|
60
|
-
for (y = 0; y < len; y += 2) {
|
|
61
|
-
dy = vector[y];
|
|
62
|
-
ay = vector[y + 1];
|
|
63
|
-
d0 = min(dy, d0, d1, bx0, ay);
|
|
64
|
-
d1 = min(d0, d1, d2, bx1, ay);
|
|
65
|
-
d2 = min(d1, d2, d3, bx2, ay);
|
|
66
|
-
dd = min(d2, d3, dd, bx3, ay);
|
|
67
|
-
vector[y] = dd;
|
|
68
|
-
d3 = d2;
|
|
69
|
-
d2 = d1;
|
|
70
|
-
d1 = d0;
|
|
71
|
-
d0 = dy;
|
|
5
|
+
Object.defineProperty(exports, "getLevenshteinDistance", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return getLevenshteinDistance;
|
|
72
9
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
10
|
+
});
|
|
11
|
+
const min = (d0, d1, d2, bx, ay)=>d0 < d1 || d2 < d1 ? d0 > d2 ? d2 + 1 : d0 + 1 : bx === ay ? d1 : d1 + 1;
|
|
12
|
+
const getLevenshteinDistance = (a, b)=>{
|
|
13
|
+
if (a === b) {
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
if (a.length > b.length) {
|
|
17
|
+
const tmp = a;
|
|
18
|
+
a = b;
|
|
19
|
+
b = tmp;
|
|
20
|
+
}
|
|
21
|
+
let la = a.length;
|
|
22
|
+
let lb = b.length;
|
|
23
|
+
while(la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)){
|
|
24
|
+
la--;
|
|
25
|
+
lb--;
|
|
26
|
+
}
|
|
27
|
+
let offset = 0;
|
|
28
|
+
while(offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)){
|
|
29
|
+
offset++;
|
|
30
|
+
}
|
|
31
|
+
la -= offset;
|
|
32
|
+
lb -= offset;
|
|
33
|
+
if (la === 0 || lb < 3) {
|
|
34
|
+
return lb;
|
|
35
|
+
}
|
|
36
|
+
let x = 0;
|
|
37
|
+
let y;
|
|
38
|
+
let d0;
|
|
39
|
+
let d1;
|
|
40
|
+
let d2;
|
|
41
|
+
let d3;
|
|
42
|
+
let dd = 0;
|
|
43
|
+
let dy;
|
|
44
|
+
let ay;
|
|
45
|
+
let bx0;
|
|
46
|
+
let bx1;
|
|
47
|
+
let bx2;
|
|
48
|
+
let bx3;
|
|
49
|
+
const vector = [];
|
|
50
|
+
for(y = 0; y < la; y++){
|
|
51
|
+
vector.push(y + 1);
|
|
52
|
+
vector.push(a.charCodeAt(offset + y));
|
|
53
|
+
}
|
|
54
|
+
const len = vector.length - 1;
|
|
55
|
+
for(; x < lb - 3;){
|
|
56
|
+
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
57
|
+
bx1 = b.charCodeAt(offset + (d1 = x + 1));
|
|
58
|
+
bx2 = b.charCodeAt(offset + (d2 = x + 2));
|
|
59
|
+
bx3 = b.charCodeAt(offset + (d3 = x + 3));
|
|
60
|
+
dd = x += 4;
|
|
61
|
+
for(y = 0; y < len; y += 2){
|
|
62
|
+
dy = vector[y];
|
|
63
|
+
ay = vector[y + 1];
|
|
64
|
+
d0 = min(dy, d0, d1, bx0, ay);
|
|
65
|
+
d1 = min(d0, d1, d2, bx1, ay);
|
|
66
|
+
d2 = min(d1, d2, d3, bx2, ay);
|
|
67
|
+
dd = min(d2, d3, dd, bx3, ay);
|
|
68
|
+
vector[y] = dd;
|
|
69
|
+
d3 = d2;
|
|
70
|
+
d2 = d1;
|
|
71
|
+
d1 = d0;
|
|
72
|
+
d0 = dy;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
for(; x < lb;){
|
|
76
|
+
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
77
|
+
dd = ++x;
|
|
78
|
+
for(y = 0; y < len; y += 2){
|
|
79
|
+
dy = vector[y];
|
|
80
|
+
vector[y] = dd = min(dy, d0, dd, bx0, vector[y + 1]);
|
|
81
|
+
d0 = dy;
|
|
82
|
+
}
|
|
81
83
|
}
|
|
82
|
-
|
|
83
|
-
return dd;
|
|
84
|
+
return dd;
|
|
84
85
|
};
|
|
85
|
-
exports.getLevenshteinDistance = getLevenshteinDistance;
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const getRestUrlSuggestions = ({
|
|
11
|
-
url,
|
|
12
|
-
requestConfigs
|
|
13
|
-
}) => {
|
|
14
|
-
const actualUrlParts = (0, _helpers.getUrlParts)(url.pathname);
|
|
15
|
-
const restUrlSuggestions = requestConfigs.reduce((acc, requestConfig) => {
|
|
16
|
-
const patternUrlParts = (0, _helpers.getUrlParts)(requestConfig.path);
|
|
17
|
-
// ✅ important: ignore patterns with different amount of parts
|
|
18
|
-
if (patternUrlParts.length !== actualUrlParts.length) return acc;
|
|
19
|
-
const actualUrlMeaningfulString = (0, _helpers2.getActualRestUrlMeaningfulString)(actualUrlParts, patternUrlParts);
|
|
20
|
-
const patternUrlMeaningfulString = (0, _helpers2.getPatternRestUrlMeaningfulString)(patternUrlParts);
|
|
21
|
-
const tolerance = Math.floor(patternUrlMeaningfulString.length / 2);
|
|
22
|
-
const distance = (0, _getLevenshteinDistance.getLevenshteinDistance)(actualUrlMeaningfulString, patternUrlMeaningfulString);
|
|
23
|
-
if (distance <= tolerance) {
|
|
24
|
-
// replace param names in pattern with param values from actual url
|
|
25
|
-
const urlSuggestion = patternUrlParts.map((_patternUrlPart, index) => {
|
|
26
|
-
if (patternUrlParts[index].startsWith(':')) return actualUrlParts[index];
|
|
27
|
-
return patternUrlParts[index];
|
|
28
|
-
}).join('/');
|
|
29
|
-
const suggestionWithQueryParams = `/${urlSuggestion}${url.search}`;
|
|
30
|
-
acc.push({
|
|
31
|
-
...requestConfig,
|
|
32
|
-
path: suggestionWithQueryParams
|
|
33
|
-
});
|
|
5
|
+
Object.defineProperty(exports, "getRestUrlSuggestions", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return getRestUrlSuggestions;
|
|
34
9
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
10
|
+
});
|
|
11
|
+
const _helpers = require("../../../../../utils/helpers");
|
|
12
|
+
const _getLevenshteinDistance = require("../getLevenshteinDistance/getLevenshteinDistance");
|
|
13
|
+
const _helpers1 = require("./helpers");
|
|
14
|
+
const getRestUrlSuggestions = ({ url, requestConfigs })=>{
|
|
15
|
+
const actualUrlParts = (0, _helpers.getUrlParts)(url.pathname);
|
|
16
|
+
const restUrlSuggestions = requestConfigs.reduce((acc, requestConfig)=>{
|
|
17
|
+
const patternUrlParts = (0, _helpers.getUrlParts)(requestConfig.path);
|
|
18
|
+
// ✅ important: ignore patterns with different amount of parts
|
|
19
|
+
if (patternUrlParts.length !== actualUrlParts.length) return acc;
|
|
20
|
+
const actualUrlMeaningfulString = (0, _helpers1.getActualRestUrlMeaningfulString)(actualUrlParts, patternUrlParts);
|
|
21
|
+
const patternUrlMeaningfulString = (0, _helpers1.getPatternRestUrlMeaningfulString)(patternUrlParts);
|
|
22
|
+
const tolerance = Math.floor(patternUrlMeaningfulString.length / 2);
|
|
23
|
+
const distance = (0, _getLevenshteinDistance.getLevenshteinDistance)(actualUrlMeaningfulString, patternUrlMeaningfulString);
|
|
24
|
+
if (distance <= tolerance) {
|
|
25
|
+
// replace param names in pattern with param values from actual url
|
|
26
|
+
const urlSuggestion = patternUrlParts.map((_patternUrlPart, index)=>{
|
|
27
|
+
if (patternUrlParts[index].startsWith(":")) return actualUrlParts[index];
|
|
28
|
+
return patternUrlParts[index];
|
|
29
|
+
}).join("/");
|
|
30
|
+
const suggestionWithQueryParams = `/${urlSuggestion}${url.search}`;
|
|
31
|
+
acc.push({
|
|
32
|
+
...requestConfig,
|
|
33
|
+
path: suggestionWithQueryParams
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return acc;
|
|
37
|
+
}, []);
|
|
38
|
+
return restUrlSuggestions;
|
|
38
39
|
};
|
|
39
|
-
exports.getRestUrlSuggestions = getRestUrlSuggestions;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Object.defineProperty(exports, "getActualRestUrlMeaningfulString", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return getActualRestUrlMeaningfulString;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const getActualRestUrlMeaningfulString = (actualUrlParts, patternUrlParts)=>actualUrlParts.filter((_actualUrlPart, index)=>!patternUrlParts[index].startsWith(":")).join("");
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Object.defineProperty(exports, "getPatternRestUrlMeaningfulString", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return getPatternRestUrlMeaningfulString;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const getPatternRestUrlMeaningfulString = (patternUrlParts)=>patternUrlParts.filter((urlPatternPart)=>!urlPatternPart.startsWith(":")).join("");
|
package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.js
CHANGED
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Object.defineProperty(exports, key, {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () {
|
|
24
|
-
return _getPatternRestUrlMeaningfulString[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
5
|
+
_export_star(require("./getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString"), exports);
|
|
6
|
+
_export_star(require("./getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString"), exports);
|
|
7
|
+
function _export_star(from, to) {
|
|
8
|
+
Object.keys(from).forEach(function(k) {
|
|
9
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
10
|
+
Object.defineProperty(to, k, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function() {
|
|
13
|
+
return from[k];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return from;
|
|
19
|
+
}
|
|
@@ -1,38 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () {
|
|
24
|
-
return _getLevenshteinDistance[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
var _getRestUrlSuggestions = require("./getRestUrlSuggestions/getRestUrlSuggestions");
|
|
29
|
-
Object.keys(_getRestUrlSuggestions).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (key in exports && exports[key] === _getRestUrlSuggestions[key]) return;
|
|
32
|
-
Object.defineProperty(exports, key, {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function () {
|
|
35
|
-
return _getRestUrlSuggestions[key];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
5
|
+
_export_star(require("./getGraphqlUrlSuggestions/getGraphqlUrlSuggestions"), exports);
|
|
6
|
+
_export_star(require("./getLevenshteinDistance/getLevenshteinDistance"), exports);
|
|
7
|
+
_export_star(require("./getRestUrlSuggestions/getRestUrlSuggestions"), exports);
|
|
8
|
+
function _export_star(from, to) {
|
|
9
|
+
Object.keys(from).forEach(function(k) {
|
|
10
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
11
|
+
Object.defineProperty(to, k, {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function() {
|
|
14
|
+
return from[k];
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return from;
|
|
20
|
+
}
|
|
@@ -1,66 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _rest$configs$filter$, _graphql$configs$filt;
|
|
11
|
-
const {
|
|
12
|
-
baseUrl: serverBaseUrl,
|
|
13
|
-
rest,
|
|
14
|
-
graphql
|
|
15
|
-
} = mockServerConfig;
|
|
16
|
-
const restRequestConfigs = (_rest$configs$filter$ = rest === null || rest === void 0 ? void 0 : rest.configs.filter(({
|
|
17
|
-
path
|
|
18
|
-
}) => !(path instanceof RegExp)).map(request => {
|
|
19
|
-
var _rest$baseUrl;
|
|
20
|
-
return {
|
|
21
|
-
method: request.method,
|
|
22
|
-
path: `${serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : ''}${(_rest$baseUrl = rest === null || rest === void 0 ? void 0 : rest.baseUrl) !== null && _rest$baseUrl !== void 0 ? _rest$baseUrl : ''}${request.path}`
|
|
23
|
-
};
|
|
24
|
-
})) !== null && _rest$configs$filter$ !== void 0 ? _rest$configs$filter$ : [];
|
|
25
|
-
const graphqlRequestConfigs = (_graphql$configs$filt = graphql === null || graphql === void 0 ? void 0 : graphql.configs.filter(request => 'operationName' in request && !(request.operationName instanceof RegExp)).map(request => {
|
|
26
|
-
var _graphql$baseUrl;
|
|
27
|
-
return {
|
|
28
|
-
operationType: request.operationType,
|
|
29
|
-
operationName: `${serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : ''}${(_graphql$baseUrl = graphql === null || graphql === void 0 ? void 0 : graphql.baseUrl) !== null && _graphql$baseUrl !== void 0 ? _graphql$baseUrl : ''} ${request.operationName}`
|
|
30
|
-
};
|
|
31
|
-
})) !== null && _graphql$configs$filt !== void 0 ? _graphql$configs$filt : [];
|
|
32
|
-
server.use((request, response) => {
|
|
33
|
-
var _request$headers$acce, _request$headers$acce2;
|
|
34
|
-
const url = new URL(`${request.protocol}://${request.get('host')}${request.originalUrl}`);
|
|
35
|
-
let restRequestSuggestions = [];
|
|
36
|
-
if (rest) {
|
|
37
|
-
restRequestSuggestions = (0, _helpers2.getRestUrlSuggestions)({
|
|
38
|
-
url,
|
|
39
|
-
requestConfigs: restRequestConfigs
|
|
40
|
-
});
|
|
5
|
+
Object.defineProperty(exports, "notFoundMiddleware", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return notFoundMiddleware;
|
|
41
9
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
10
|
+
});
|
|
11
|
+
const _helpers = require("../../../utils/helpers");
|
|
12
|
+
const _helpers1 = require("./helpers");
|
|
13
|
+
const notFoundMiddleware = (server, mockServerConfig)=>{
|
|
14
|
+
const { baseUrl: serverBaseUrl, rest, graphql } = mockServerConfig;
|
|
15
|
+
var _rest_configs_filter_map;
|
|
16
|
+
const restRequestConfigs = (_rest_configs_filter_map = rest === null || rest === void 0 ? void 0 : rest.configs.filter(({ path })=>!(path instanceof RegExp)).map((request)=>{
|
|
17
|
+
var _rest_baseUrl;
|
|
18
|
+
return {
|
|
19
|
+
method: request.method,
|
|
20
|
+
path: `${serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : ""}${(_rest_baseUrl = rest === null || rest === void 0 ? void 0 : rest.baseUrl) !== null && _rest_baseUrl !== void 0 ? _rest_baseUrl : ""}${request.path}`
|
|
21
|
+
};
|
|
22
|
+
})) !== null && _rest_configs_filter_map !== void 0 ? _rest_configs_filter_map : [];
|
|
23
|
+
var _graphql_configs_filter_map;
|
|
24
|
+
const graphqlRequestConfigs = (_graphql_configs_filter_map = graphql === null || graphql === void 0 ? void 0 : graphql.configs.filter((request)=>"operationName" in request && !(request.operationName instanceof RegExp)).map((request)=>{
|
|
25
|
+
var _graphql_baseUrl;
|
|
26
|
+
return {
|
|
27
|
+
operationType: request.operationType,
|
|
28
|
+
operationName: `${serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : ""}${(_graphql_baseUrl = graphql === null || graphql === void 0 ? void 0 : graphql.baseUrl) !== null && _graphql_baseUrl !== void 0 ? _graphql_baseUrl : ""} ${request.operationName}`
|
|
29
|
+
};
|
|
30
|
+
})) !== null && _graphql_configs_filter_map !== void 0 ? _graphql_configs_filter_map : [];
|
|
31
|
+
server.use((request, response)=>{
|
|
32
|
+
var _request_headers_accept, _request_headers_accept1;
|
|
33
|
+
const url = new URL(`${request.protocol}://${request.get("host")}${request.originalUrl}`);
|
|
34
|
+
let restRequestSuggestions = [];
|
|
35
|
+
if (rest) {
|
|
36
|
+
restRequestSuggestions = (0, _helpers1.getRestUrlSuggestions)({
|
|
37
|
+
url,
|
|
38
|
+
requestConfigs: restRequestConfigs
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
let graphqlRequestSuggestions = [];
|
|
42
|
+
if (graphql && (0, _helpers.parseGraphQLRequest)(request)) {
|
|
43
|
+
graphqlRequestSuggestions = (0, _helpers1.getGraphqlUrlSuggestions)({
|
|
44
|
+
url,
|
|
45
|
+
requestConfigs: graphqlRequestConfigs
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const isRequestSupportHtml = ((_request_headers_accept = request.headers.accept) === null || _request_headers_accept === void 0 ? void 0 : _request_headers_accept.includes("text/html")) || ((_request_headers_accept1 = request.headers.accept) === null || _request_headers_accept1 === void 0 ? void 0 : _request_headers_accept1.includes("*/*"));
|
|
49
|
+
if (isRequestSupportHtml) {
|
|
50
|
+
response.status(404).render("pages/404", {
|
|
51
|
+
restRequestSuggestions,
|
|
52
|
+
graphqlRequestSuggestions
|
|
53
|
+
});
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
response.status(404).json({
|
|
57
|
+
message: "Request or page not found. Similar requests in data",
|
|
58
|
+
data: {
|
|
59
|
+
restRequestSuggestions,
|
|
60
|
+
graphqlRequestSuggestions
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
63
|
});
|
|
64
|
-
});
|
|
65
64
|
};
|
|
66
|
-
exports.notFoundMiddleware = notFoundMiddleware;
|
package/dist/src/core/middlewares/requestInterceptorMiddleware/requestInterceptorMiddleware.js
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
Object.defineProperty(exports, "requestInterceptorMiddleware", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return requestInterceptorMiddleware;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _helpers = require("../../../utils/helpers");
|
|
12
|
+
const requestInterceptorMiddleware = ({ server, path = "*", interceptor })=>{
|
|
13
|
+
server.use(path, (0, _helpers.asyncHandler)(async (request, _response, next)=>{
|
|
14
|
+
await (0, _helpers.callRequestInterceptor)({
|
|
15
|
+
request,
|
|
16
|
+
interceptor
|
|
17
|
+
});
|
|
18
|
+
return next();
|
|
19
|
+
}));
|
|
20
20
|
};
|
|
21
|
-
exports.requestInterceptorMiddleware = requestInterceptorMiddleware;
|
|
@@ -1,31 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
5
|
+
Object.defineProperty(exports, "staticMiddleware", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return staticMiddleware;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _express = /*#__PURE__*/ _interop_require_default(require("express"));
|
|
12
|
+
const _constants = require("../../../utils/constants");
|
|
13
|
+
const _helpers = require("../../../utils/helpers");
|
|
14
|
+
function _interop_require_default(obj) {
|
|
15
|
+
return obj && obj.__esModule ? obj : {
|
|
16
|
+
default: obj
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const staticMiddleware = (server, baseUrl, staticPath)=>{
|
|
20
|
+
const isStaticPathArray = Array.isArray(staticPath);
|
|
21
|
+
if (isStaticPathArray) {
|
|
22
|
+
staticPath.forEach((staticPath)=>{
|
|
23
|
+
const isPathObject = typeof staticPath === "object";
|
|
24
|
+
if (isPathObject) {
|
|
25
|
+
server.use((0, _helpers.urlJoin)(baseUrl, staticPath.prefix), _express.default.static((0, _helpers.urlJoin)(_constants.APP_PATH, staticPath.path)));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
server.use(baseUrl, _express.default.static((0, _helpers.urlJoin)(_constants.APP_PATH, staticPath)));
|
|
29
|
+
});
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const isStaticPathObject = typeof staticPath === "object";
|
|
33
|
+
if (isStaticPathObject) {
|
|
17
34
|
server.use((0, _helpers.urlJoin)(baseUrl, staticPath.prefix), _express.default.static((0, _helpers.urlJoin)(_constants.APP_PATH, staticPath.path)));
|
|
18
35
|
return;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const isStaticPathObject = typeof staticPath === 'object';
|
|
25
|
-
if (isStaticPathObject) {
|
|
26
|
-
server.use((0, _helpers.urlJoin)(baseUrl, staticPath.prefix), _express.default.static((0, _helpers.urlJoin)(_constants.APP_PATH, staticPath.path)));
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
server.use(baseUrl, _express.default.static((0, _helpers.urlJoin)(_constants.APP_PATH, staticPath)));
|
|
36
|
+
}
|
|
37
|
+
server.use(baseUrl, _express.default.static((0, _helpers.urlJoin)(_constants.APP_PATH, staticPath)));
|
|
30
38
|
};
|
|
31
|
-
exports.staticMiddleware = staticMiddleware;
|