@rest-vir/run-service 0.15.1 → 0.16.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, origin);
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, origin);
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.15.1",
3
+ "version": "0.16.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.15.1",
47
- "@rest-vir/implement-service": "^0.15.1",
46
+ "@rest-vir/define-service": "^0.16.0",
47
+ "@rest-vir/implement-service": "^0.16.0",
48
48
  "cluster-vir": "^0.1.0",
49
49
  "date-vir": "^7.3.1",
50
50
  "fastify": "^5.3.2",