@openstax/ts-utils 1.2.3 → 1.2.4

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.
@@ -6,7 +6,7 @@ const routing_1 = require("../routing");
6
6
  const createLambdaCorsResponseMiddleware = (config) => (responsePromise, { request }) => {
7
7
  const cors = async () => {
8
8
  const allowedHost = await (0, resolveConfigValue_1.resolveConfigValue)(config.corsAllowedHostRegex);
9
- if (request.headers.origin && new URL(request.headers.origin).hostname.match(new RegExp(allowedHost))) {
9
+ if (request.headers.origin && request.headers.origin !== 'null' && new URL(request.headers.origin).hostname.match(new RegExp(allowedHost))) {
10
10
  return {
11
11
  'Access-Control-Allow-Origin': request.headers.origin,
12
12
  'Access-Control-Allow-Credentials': 'true',
@@ -48,7 +48,9 @@ export declare const browserAuthProvider: <C extends string = "auth">({ window,
48
48
  * gets an authorized url for an iframe src. sets params on the url and saves its
49
49
  * origin to trust releasing user identity to it
50
50
  */
51
- getAuthorizedEmbedUrl: (urlString: string) => string;
51
+ getAuthorizedEmbedUrl: (urlString: string, extraParams?: {
52
+ [key: string]: string;
53
+ } | undefined) => string;
52
54
  /**
53
55
  * gets second argument for `fetch` that has authentication token or cookie
54
56
  */
@@ -14,7 +14,9 @@ export declare const embeddedAuthProvider: (getUserData: UserDataLoader, { query
14
14
  window: Window;
15
15
  }) => {
16
16
  embeddedQueryValue: string;
17
- getAuthorizedEmbedUrl: (urlString: string) => string;
17
+ getAuthorizedEmbedUrl: (urlString: string, extraParams?: {
18
+ [key: string]: string;
19
+ } | undefined) => string;
18
20
  unmount: () => void;
19
21
  };
20
22
  export {};
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.embeddedAuthProvider = exports.PostMessageTypes = void 0;
7
+ const query_string_1 = __importDefault(require("query-string"));
4
8
  var PostMessageTypes;
5
9
  (function (PostMessageTypes) {
6
10
  PostMessageTypes["ReceiveUser"] = "receive-user";
@@ -17,10 +21,11 @@ const embeddedAuthProvider = (getUserData, { queryKey = 'auth', window }) => {
17
21
  }
18
22
  };
19
23
  window.addEventListener('message', messageHandler);
20
- const getAuthorizedEmbedUrl = (urlString) => {
24
+ const getAuthorizedEmbedUrl = (urlString, extraParams) => {
21
25
  const url = new URL(urlString);
22
26
  trustedEmbeds.add(url.origin);
23
- url.searchParams.set(queryKey, embeddedQueryValue);
27
+ const params = query_string_1.default.parse(url.search);
28
+ url.search = query_string_1.default.stringify({ ...params, ...extraParams, [queryKey]: embeddedQueryValue });
24
29
  return url.href;
25
30
  };
26
31
  return {