@tstdl/base 0.81.14 → 0.81.15

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.
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.corsMiddleware = void 0;
4
4
  const types_1 = require("../../types");
5
+ const array_1 = require("../../../utils/array");
5
6
  const type_guards_1 = require("../../../utils/type-guards");
6
7
  function corsMiddleware(options = {}) {
7
8
  // eslint-disable-next-line max-statements, @typescript-eslint/no-shadow
@@ -16,23 +17,30 @@ function corsMiddleware(options = {}) {
16
17
  if (allowCredentials) {
17
18
  response.headers.setIfMissing('Access-Control-Allow-Credentials', 'true');
18
19
  }
19
- if ((0, type_guards_1.isDefined)(cors.accessControlAllowHeaders)) {
20
+ if ((0, type_guards_1.isDefined)(cors.accessControlAllowHeaders) && !request.headers.has('Access-Control-Allow-Headers')) {
20
21
  const value = await (0, types_1.resolveApiEndpointDataProvider)(request, context, cors.accessControlAllowHeaders);
21
22
  response.headers.setIfMissing('Access-Control-Allow-Headers', value);
22
23
  }
23
- if ((0, type_guards_1.isDefined)(cors.accessControlExposeHeaders)) {
24
+ if ((0, type_guards_1.isDefined)(cors.accessControlExposeHeaders) && !request.headers.has('Access-Control-Expose-Headers')) {
24
25
  const value = await (0, types_1.resolveApiEndpointDataProvider)(request, context, cors.accessControlExposeHeaders);
25
26
  response.headers.setIfMissing('Access-Control-Expose-Headers', value);
26
27
  }
27
- if ((0, type_guards_1.isDefined)(cors.accessControlMaxAge)) {
28
+ if ((0, type_guards_1.isDefined)(cors.accessControlMaxAge) && !request.headers.has('Access-Control-Max-Age')) {
28
29
  const value = await (0, types_1.resolveApiEndpointDataProvider)(request, context, cors.accessControlMaxAge);
29
30
  response.headers.setIfMissing('Access-Control-Max-Age', value);
30
31
  }
31
32
  }
32
- if ((0, type_guards_1.isDefined)(cors.accessControlAllowOrigin)) {
33
+ if ((0, type_guards_1.isDefined)(cors.accessControlAllowOrigin) && !response.headers.has('Access-Control-Allow-Origin')) {
33
34
  const value = await (0, types_1.resolveApiEndpointDataProvider)(request, context, cors.accessControlAllowOrigin);
34
35
  response.headers.setIfMissing('Access-Control-Allow-Origin', value);
35
36
  }
37
+ if ((0, type_guards_1.isDefined)(cors.autoAccessControlAllowOrigin) && !response.headers.has('Access-Control-Allow-Origin')) {
38
+ const value = await (0, types_1.resolveApiEndpointDataProvider)(request, context, cors.autoAccessControlAllowOrigin);
39
+ const allowed = (0, type_guards_1.isDefined)(value) && (0, array_1.toArray)(value).includes(request.url.origin);
40
+ if (allowed) {
41
+ response.headers.setIfMissing('Access-Control-Allow-Origin', request.url.origin);
42
+ }
43
+ }
36
44
  return response;
37
45
  }
38
46
  return corsMiddleware;
@@ -1 +1 @@
1
- {"version":3,"file":"cors.middleware.js","sourceRoot":"","sources":["../../../../source/api/server/middlewares/cors.middleware.ts"],"names":[],"mappings":";;;AACA,uCAA6D;AAG7D,4DAAgD;AAOhD,SAAgB,cAAc,CAAC,UAAiC,EAAE;IAChE,wEAAwE;IACxE,KAAK,UAAU,cAAc,CAAC,OAA0B,EAAE,IAAgE,EAAE,OAAoC;QAC9J,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAErC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;QACtG,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,aAAkC,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QAEvH,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE;YAC/B,MAAM,YAAY,GAAG,CAAC,MAAM,IAAA,sCAA8B,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9J,MAAM,gBAAgB,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,IAAA,sCAA8B,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;YAEvK,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC;YAE5E,IAAI,gBAAgB,EAAE;gBACpB,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;aAC3E;YAED,IAAI,IAAA,uBAAS,EAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE;gBAC7C,MAAM,KAAK,GAAG,MAAM,IAAA,sCAA8B,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACrG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;aACtE;YAED,IAAI,IAAA,uBAAS,EAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE;gBAC9C,MAAM,KAAK,GAAG,MAAM,IAAA,sCAA8B,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACtG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;aACvE;YAED,IAAI,IAAA,uBAAS,EAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;gBACvC,MAAM,KAAK,GAAG,MAAM,IAAA,sCAA8B,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC/F,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;aAChE;SACF;QAED,IAAI,IAAA,uBAAS,EAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE;YAC5C,MAAM,KAAK,GAAG,MAAM,IAAA,sCAA8B,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACpG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;SACrE;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AA3CD,wCA2CC"}
1
+ {"version":3,"file":"cors.middleware.js","sourceRoot":"","sources":["../../../../source/api/server/middlewares/cors.middleware.ts"],"names":[],"mappings":"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"}
package/api/types.d.ts CHANGED
@@ -23,12 +23,13 @@ export declare type ApiEndpointDefinitionBody = SchemaTestable | typeof String |
23
23
  export declare type ApiEndpointDefinitionResult = SchemaTestable | typeof String | typeof Uint8Array | typeof Blob | typeof ReadableStream;
24
24
  export declare type ApiEndpointDataProvider<T> = T | ((request: HttpServerRequest, context: ApiGatewayMiddlewareContext) => T | Promise<T>);
25
25
  export declare type ApiEndpointDefinitionCors = {
26
- accessControlAllowCredentials?: ApiEndpointDataProvider<boolean>;
27
- accessControlAllowHeaders?: ApiEndpointDataProvider<OneOrMany<string>>;
28
- accessControlAllowMethods?: ApiEndpointDataProvider<OneOrMany<HttpMethod>>;
29
- accessControlAllowOrigin?: ApiEndpointDataProvider<string>;
30
- accessControlExposeHeaders?: ApiEndpointDataProvider<OneOrMany<string>>;
31
- accessControlMaxAge?: ApiEndpointDataProvider<number>;
26
+ accessControlAllowCredentials?: ApiEndpointDataProvider<boolean | undefined>;
27
+ accessControlAllowHeaders?: ApiEndpointDataProvider<OneOrMany<string> | undefined>;
28
+ accessControlAllowMethods?: ApiEndpointDataProvider<OneOrMany<HttpMethod> | undefined>;
29
+ accessControlAllowOrigin?: ApiEndpointDataProvider<string | undefined>;
30
+ autoAccessControlAllowOrigin?: ApiEndpointDataProvider<OneOrMany<string> | undefined>;
31
+ accessControlExposeHeaders?: ApiEndpointDataProvider<OneOrMany<string> | undefined>;
32
+ accessControlMaxAge?: ApiEndpointDataProvider<number | undefined>;
32
33
  };
33
34
  export declare type ApiEndpointDefinition = {
34
35
  /**
package/api/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/api/types.ts"],"names":[],"mappings":";;;AAIA,mDAAsD;AACtD,sDAAiD;AAiJjD,SAAgB,SAAS,CAA0B,UAAa;IAC9D,OAAO,UAAU,CAAC;AACpB,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,8BAA8B,CAAI,OAA0B,EAAE,OAAoC,EAAE,QAAoC;IAC5J,IAAI,IAAA,wBAAU,EAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACnC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAND,wEAMC;AAED,SAAgB,gCAAgC,CAAuC,sBAAyB;IAC9G,MAAM,OAAO,GAAG,uCAAuC,CAAC,sBAAsB,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAA8B,CAAC;AAClE,CAAC;AAHD,4EAGC;AAED,SAAgB,uCAAuC,CAAuC,aAAgB;IAC5G,OAAO,IAAA,sBAAa,EAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAmC,EAAE,CAAC,CAAC,GAAa,EAAE,IAAA,wBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3I,CAAC;AAFD,0FAEC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/api/types.ts"],"names":[],"mappings":";;;AAIA,mDAAsD;AACtD,sDAAiD;AAkJjD,SAAgB,SAAS,CAA0B,UAAa;IAC9D,OAAO,UAAU,CAAC;AACpB,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,8BAA8B,CAAI,OAA0B,EAAE,OAAoC,EAAE,QAAoC;IAC5J,IAAI,IAAA,wBAAU,EAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACnC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAND,wEAMC;AAED,SAAgB,gCAAgC,CAAuC,sBAAyB;IAC9G,MAAM,OAAO,GAAG,uCAAuC,CAAC,sBAAsB,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAA8B,CAAC;AAClE,CAAC;AAHD,4EAGC;AAED,SAAgB,uCAAuC,CAAuC,aAAgB;IAC5G,OAAO,IAAA,sBAAa,EAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAmC,EAAE,CAAC,CAAC,GAAa,EAAE,IAAA,wBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3I,CAAC;AAFD,0FAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tstdl/base",
3
- "version": "0.81.14",
3
+ "version": "0.81.15",
4
4
  "author": "Patrick Hein",
5
5
  "publishConfig": {
6
6
  "access": "public"