@openstax/ts-utils 1.35.3 → 1.35.5

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.
@@ -0,0 +1,11 @@
1
+ import { AccountsGateway } from '../accountsGateway';
2
+ import { LaunchVerifier } from '../launchParams/verifier';
3
+ import type { Logger } from '../logger';
4
+ import { AuthProvider } from '.';
5
+ export declare const launchTokenAuthMiddleware: () => <M extends {
6
+ logger: Logger;
7
+ accountsGateway: AccountsGateway;
8
+ launchVerifier: LaunchVerifier;
9
+ }>(middleware: M) => M & {
10
+ authProvider: AuthProvider;
11
+ };
@@ -0,0 +1,27 @@
1
+ import { assertDefined } from '../../assertions';
2
+ import { once } from '../../misc/helpers';
3
+ const stubAuthProvider = (services) => {
4
+ const getUserUuid = once(async () => {
5
+ const token = await services.launchVerifier.verify();
6
+ return assertDefined(token.sub, new Error('Launch token does not contain a user UUID'));
7
+ });
8
+ const getUser = once(async () => {
9
+ const uuid = await getUserUuid();
10
+ const { items } = await services.accountsGateway.searchUsers({ q: `uuid:${uuid}` });
11
+ return assertDefined(items[0], new Error(`User with UUID ${uuid} not found`));
12
+ });
13
+ return {
14
+ getAuthToken: () => {
15
+ throw new Error('Auth token not available when authenticated via JWT');
16
+ },
17
+ getAuthorizedFetchConfig: () => {
18
+ throw new Error('Authorized subrequest not available when authenticated via JWT');
19
+ },
20
+ getUser,
21
+ loadUserData: getUser,
22
+ };
23
+ };
24
+ export const launchTokenAuthMiddleware = () => (middleware) => ({
25
+ ...middleware,
26
+ authProvider: stubAuthProvider(middleware),
27
+ });
@@ -62,7 +62,8 @@ export const s3FileServer = (initializer) => (configProvider) => {
62
62
  const Conditions = [
63
63
  { acl: 'private' },
64
64
  { bucket },
65
- ['starts-with', '$key', prefix]
65
+ ['starts-with', '$key', prefix],
66
+ ['starts-with', '$Content-Type', ''],
66
67
  ];
67
68
  const defaultFields = {
68
69
  acl: 'private',