@rest-vir/run-service 0.15.1 → 0.17.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.
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { check } from '@augment-vir/assert';
|
|
2
1
|
import { HttpMethod } from '@augment-vir/common';
|
|
3
|
-
import { AnyOrigin, getAllowedEndpointMethods, isAnyOrigin, restVirServiceNameHeader, } from '@rest-vir/define-service';
|
|
2
|
+
import { AnyOrigin, checkOriginRequirement, getAllowedEndpointMethods, isAnyOrigin, restVirServiceNameHeader, } from '@rest-vir/define-service';
|
|
4
3
|
import { HttpStatus, RestVirHandlerError } from '@rest-vir/implement-service';
|
|
5
4
|
import { convertDuration } from 'date-vir';
|
|
6
5
|
/**
|
|
@@ -93,7 +92,7 @@ function buildOptionsRequestCorsHeaders(matchedOrigin, allowedMethods, customHea
|
|
|
93
92
|
};
|
|
94
93
|
}
|
|
95
94
|
async function matchOrigin(endpoint, origin) {
|
|
96
|
-
const endpointRequirement = await checkOriginRequirement(endpoint.requiredClientOrigin
|
|
95
|
+
const endpointRequirement = await checkOriginRequirement(origin, endpoint.requiredClientOrigin);
|
|
97
96
|
if (isAnyOrigin(endpointRequirement)) {
|
|
98
97
|
return AnyOrigin;
|
|
99
98
|
}
|
|
@@ -104,7 +103,7 @@ async function matchOrigin(endpoint, origin) {
|
|
|
104
103
|
return origin;
|
|
105
104
|
}
|
|
106
105
|
/** If the endpoint requirement is `undefined`, then we check the service requirement. */
|
|
107
|
-
const serviceRequirement = await checkOriginRequirement(endpoint.service.requiredClientOrigin
|
|
106
|
+
const serviceRequirement = await checkOriginRequirement(origin, endpoint.service.requiredClientOrigin);
|
|
108
107
|
if (isAnyOrigin(serviceRequirement)) {
|
|
109
108
|
return AnyOrigin;
|
|
110
109
|
}
|
|
@@ -120,34 +119,3 @@ async function matchOrigin(endpoint, origin) {
|
|
|
120
119
|
*/
|
|
121
120
|
throw new RestVirHandlerError(endpoint, `Request origin '${origin}' failed to get checked for endpoint '${endpoint.path}' or service '${endpoint.service.serviceName}'`);
|
|
122
121
|
}
|
|
123
|
-
async function checkOriginRequirement(originRequirement, origin) {
|
|
124
|
-
if (isAnyOrigin(originRequirement)) {
|
|
125
|
-
/** Any origin has been explicitly allowed. */
|
|
126
|
-
return AnyOrigin;
|
|
127
|
-
}
|
|
128
|
-
else if (originRequirement === undefined) {
|
|
129
|
-
/** No checking occurred. */
|
|
130
|
-
return undefined;
|
|
131
|
-
}
|
|
132
|
-
else if (!origin) {
|
|
133
|
-
/** If there is an origin requirement but no origin then the origin automatically fails. */
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
else if (check.isString(originRequirement)) {
|
|
137
|
-
return origin === originRequirement;
|
|
138
|
-
}
|
|
139
|
-
else if (check.instanceOf(originRequirement, RegExp)) {
|
|
140
|
-
return !!originRequirement.exec(origin);
|
|
141
|
-
}
|
|
142
|
-
else if (check.isArray(originRequirement)) {
|
|
143
|
-
for (const requirement of originRequirement) {
|
|
144
|
-
if (await checkOriginRequirement(requirement, origin)) {
|
|
145
|
-
return true;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
return await originRequirement(origin);
|
|
152
|
-
}
|
|
153
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rest-vir/run-service",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "Run a service defined by @rest-vir/define-service and implemented by @rest-vir/implement-service.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"rest",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"@augment-vir/common": "^31.16.0",
|
|
44
44
|
"@augment-vir/node": "^31.16.0",
|
|
45
45
|
"@fastify/websocket": "^11.0.2",
|
|
46
|
-
"@rest-vir/define-service": "^0.
|
|
47
|
-
"@rest-vir/implement-service": "^0.
|
|
46
|
+
"@rest-vir/define-service": "^0.17.0",
|
|
47
|
+
"@rest-vir/implement-service": "^0.17.0",
|
|
48
48
|
"cluster-vir": "^0.1.0",
|
|
49
49
|
"date-vir": "^7.3.1",
|
|
50
50
|
"fastify": "^5.3.2",
|