@adonis-agora/media 0.22.0 → 0.23.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.
- package/CHANGELOG.md +20 -0
- package/README.md +65 -5
- package/dist/providers/media_provider.d.ts.map +1 -1
- package/dist/providers/media_provider.js +3 -0
- package/dist/providers/media_provider.js.map +1 -1
- package/dist/src/access.d.ts +103 -0
- package/dist/src/access.d.ts.map +1 -0
- package/dist/src/access.js +80 -0
- package/dist/src/access.js.map +1 -0
- package/dist/src/define_config.d.ts +14 -0
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/delivery.d.ts +9 -0
- package/dist/src/delivery.d.ts.map +1 -1
- package/dist/src/delivery.js +3 -1
- package/dist/src/delivery.js.map +1 -1
- package/dist/src/errors.d.ts +14 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +24 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +6 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrations/authkit.d.ts +57 -0
- package/dist/src/integrations/authkit.d.ts.map +1 -0
- package/dist/src/integrations/authkit.js +71 -0
- package/dist/src/integrations/authkit.js.map +1 -0
- package/dist/src/integrations/authz.d.ts +36 -0
- package/dist/src/integrations/authz.d.ts.map +1 -0
- package/dist/src/integrations/authz.js +51 -0
- package/dist/src/integrations/authz.js.map +1 -0
- package/dist/src/media_access.d.ts +108 -0
- package/dist/src/media_access.d.ts.map +1 -0
- package/dist/src/media_access.js +179 -0
- package/dist/src/media_access.js.map +1 -0
- package/dist/src/media_collection.d.ts +11 -0
- package/dist/src/media_collection.d.ts.map +1 -1
- package/dist/src/media_collection.js.map +1 -1
- package/dist/src/media_library.d.ts +3 -0
- package/dist/src/media_library.d.ts.map +1 -1
- package/dist/src/media_library.js +2 -2
- package/dist/src/media_library.js.map +1 -1
- package/dist/src/media_manager.d.ts +6 -0
- package/dist/src/media_manager.d.ts.map +1 -1
- package/dist/src/media_manager.js +7 -0
- package/dist/src/media_manager.js.map +1 -1
- package/package.json +26 -4
package/dist/src/errors.js
CHANGED
|
@@ -389,4 +389,28 @@ export class DeliverySignatureError extends Error {
|
|
|
389
389
|
this.name = 'DeliverySignatureError';
|
|
390
390
|
}
|
|
391
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* A media read or write was refused by its authorization rule (`media.access`, the delivery route,
|
|
394
|
+
* a collection's `access`). `status` is the HTTP answer: `401` when the request is anonymous,
|
|
395
|
+
* `403` when the signed-in user is not allowed.
|
|
396
|
+
*/
|
|
397
|
+
export class MediaAccessDeniedError extends Error {
|
|
398
|
+
action;
|
|
399
|
+
collection;
|
|
400
|
+
mediaId;
|
|
401
|
+
anonymous;
|
|
402
|
+
code = 'E_MEDIA_ACCESS_DENIED';
|
|
403
|
+
status;
|
|
404
|
+
constructor(action, collection, mediaId, anonymous) {
|
|
405
|
+
super(anonymous
|
|
406
|
+
? `Sign in to ${action} media in collection "${collection}".`
|
|
407
|
+
: `Not allowed to ${action} media in collection "${collection}".`);
|
|
408
|
+
this.action = action;
|
|
409
|
+
this.collection = collection;
|
|
410
|
+
this.mediaId = mediaId;
|
|
411
|
+
this.anonymous = anonymous;
|
|
412
|
+
this.name = 'MediaAccessDeniedError';
|
|
413
|
+
this.status = anonymous ? 401 : 403;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
392
416
|
//# sourceMappingURL=errors.js.map
|
package/dist/src/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { configure } from '../configure.js';
|
|
2
|
+
export type { MediaAccessRequest, MediaAction, MediaAuthorizer, MediaCollectionAccess, MediaIdentityResolver, MediaSubject, } from './access.js';
|
|
3
|
+
export { adonisAuthIdentity, authorizers } from './access.js';
|
|
2
4
|
export type { AttachmentData, AttachmentManagerOptions, AttachmentSignedUrlOptions, AttachmentVariant, CreateAttachmentInput, CreateAttachmentOptions, } from './attachment.js';
|
|
3
5
|
export { Attachment, AttachmentManager, } from './attachment.js';
|
|
4
6
|
export type { ContentVerdict } from './content_type.js';
|
|
5
7
|
export { detectMimeType, isClosedSignatureWhitelist, isDetectableMimeType, SIGNATURE_HEAD_BYTES, verifyContentAgainstWhitelist, } from './content_type.js';
|
|
6
|
-
export type { DiskFactory, ImageProcessorFactory, InferConversions, InferTransformers, LucidStoreConfig, LucidUploadSessionStoreConfig, MediaConfig, MediaDeliveryConfig, MediaDirectUploadConfig, MediaResumableConfig, MediaUploadsConfig, S3Credentials, S3DiskConfig, StoreContext, StoreFactory, UploadMode, UploadSessionStoreContext, UploadSessionStoreFactory, } from './define_config.js';
|
|
8
|
+
export type { DiskFactory, ImageProcessorFactory, InferConversions, InferTransformers, LucidStoreConfig, LucidUploadSessionStoreConfig, MediaAccessConfig, MediaConfig, MediaDeliveryConfig, MediaDirectUploadConfig, MediaResumableConfig, MediaUploadsConfig, S3Credentials, S3DiskConfig, StoreContext, StoreFactory, UploadMode, UploadSessionStoreContext, UploadSessionStoreFactory, } from './define_config.js';
|
|
7
9
|
export { defineConfig, disks, engines, processors, stores, transformers, uploadSessions, } from './define_config.js';
|
|
8
10
|
export type { DeliveryMode, DeliveryRequest, DeliveryResult, MediaDeliveryHandlerOptions, OnDemandImageConfig, ResolvedDeliveryMode, } from './delivery.js';
|
|
9
11
|
export { DEFAULT_DELIVERY_SIGNED_TTL_SECONDS, DEFAULT_IMAGE_QUALITIES, DEFAULT_IMAGE_WIDTHS, MediaDeliveryHandler, resolveDeliveryMode, } from './delivery.js';
|
|
@@ -18,7 +20,7 @@ export type { DriveBackedResolverOptions, DriveManagerLike, DriveServiceModule,
|
|
|
18
20
|
export { createDriveBackedResolver } from './disks/drive.js';
|
|
19
21
|
export type { PresignS3UrlInput, SigV4Credentials } from './disks/sigv4.js';
|
|
20
22
|
export { presignS3Url } from './disks/sigv4.js';
|
|
21
|
-
export { ContentSignatureUnrecognizedError, ContentTypeMismatchError, ConversionArtifactMissingError, ConversionNotDefinedError, DeliverySignatureError, DirectUploadsNotConfiguredError, DriveNotReadyError, FfmpegFailedError, HlsSourceUnsupportedError, ImageProcessorMissingError, ImageSizeNotAllowedError, MediaNotFoundError, MediaObjectMissingError, MimeNotAllowedError, NotAnImageError, ResumableUploadsNotConfiguredError, StoreNotConfiguredError, TransformerConflictError, TransformerNotDefinedError, TransformerOutputError, TransformerRuntimeMissingError, TransformNotReadyError, UnsafeFileNameError, UploadNotSupportedError, UploadOffsetConflictError, UploadPartOutOfRangeError, UploadPartSizeError, UploadPartsIncompleteError, UploadSessionExpiredError, UploadSessionNotFoundError, UploadSessionStoreNotConfiguredError, VariantNotFoundError, } from './errors.js';
|
|
23
|
+
export { ContentSignatureUnrecognizedError, ContentTypeMismatchError, ConversionArtifactMissingError, ConversionNotDefinedError, DeliverySignatureError, DirectUploadsNotConfiguredError, DriveNotReadyError, FfmpegFailedError, HlsSourceUnsupportedError, ImageProcessorMissingError, ImageSizeNotAllowedError, MediaAccessDeniedError, MediaNotFoundError, MediaObjectMissingError, MimeNotAllowedError, NotAnImageError, ResumableUploadsNotConfiguredError, StoreNotConfiguredError, TransformerConflictError, TransformerNotDefinedError, TransformerOutputError, TransformerRuntimeMissingError, TransformNotReadyError, UnsafeFileNameError, UploadNotSupportedError, UploadOffsetConflictError, UploadPartOutOfRangeError, UploadPartSizeError, UploadPartsIncompleteError, UploadSessionExpiredError, UploadSessionNotFoundError, UploadSessionStoreNotConfiguredError, VariantNotFoundError, } from './errors.js';
|
|
22
24
|
export { isExtendedDisk } from './extended_disk.js';
|
|
23
25
|
export { sanitizeFileName } from './file_name.js';
|
|
24
26
|
export type { HlsDeliveryHandlerOptions, HlsDeliveryRequest, HlsDeliveryResult, HlsFileRef, HlsUrlBuilder, } from './hls/delivery.js';
|
|
@@ -26,6 +28,8 @@ export { HlsDeliveryHandler } from './hls/delivery.js';
|
|
|
26
28
|
export type { HlsUriRef, HlsUriRewriter } from './hls/playlist.js';
|
|
27
29
|
export { classifyUri, HLS_PLAYLIST_CONTENT_TYPE, HLS_SEGMENT_CONTENT_TYPE, hlsArtifactContentType, isRelativeUri, resolvePackagePath, rewriteHlsPlaylist, } from './hls/playlist.js';
|
|
28
30
|
export type { ConversionPreset, ConversionResult, ConvertOptions, CropPosition, FocalPoint, ImageProcessor, } from './image_processor.js';
|
|
31
|
+
export type { DeliveryRouteContext, MediaDeliveryRouteOptions } from './media_access.js';
|
|
32
|
+
export { MediaAccess } from './media_access.js';
|
|
29
33
|
export type { MediaCollectionConfig } from './media_collection.js';
|
|
30
34
|
export { MediaCollectionRegistry } from './media_collection.js';
|
|
31
35
|
export type { AttachExistingInput, AttachInput, DeliverOptions, MediaLibraryOptions, MediaSignedUrlOptions, OwnerMediaBinding, } from './media_library.js';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// `node ace configure` reaches the hook through this entry point, not through the package's
|
|
3
3
|
// `./configure` export path.
|
|
4
4
|
export { configure } from '../configure.js';
|
|
5
|
+
export { adonisAuthIdentity, authorizers } from './access.js';
|
|
5
6
|
export { Attachment, AttachmentManager, } from './attachment.js';
|
|
6
7
|
// Real-content validation (magic-byte signatures behind `acceptsMimeTypes`)
|
|
7
8
|
export { detectMimeType, isClosedSignatureWhitelist, isDetectableMimeType, SIGNATURE_HEAD_BYTES, verifyContentAgainstWhitelist, } from './content_type.js';
|
|
@@ -18,7 +19,7 @@ export { createDriveBackedResolver } from './disks/drive.js';
|
|
|
18
19
|
// wiring presigned URLs outside the bundled disk)
|
|
19
20
|
export { presignS3Url } from './disks/sigv4.js';
|
|
20
21
|
// Errors
|
|
21
|
-
export { ContentSignatureUnrecognizedError, ContentTypeMismatchError, ConversionArtifactMissingError, ConversionNotDefinedError, DeliverySignatureError, DirectUploadsNotConfiguredError, DriveNotReadyError, FfmpegFailedError, HlsSourceUnsupportedError, ImageProcessorMissingError, ImageSizeNotAllowedError, MediaNotFoundError, MediaObjectMissingError, MimeNotAllowedError, NotAnImageError, ResumableUploadsNotConfiguredError, StoreNotConfiguredError, TransformerConflictError, TransformerNotDefinedError, TransformerOutputError, TransformerRuntimeMissingError, TransformNotReadyError, UnsafeFileNameError, UploadNotSupportedError, UploadOffsetConflictError, UploadPartOutOfRangeError, UploadPartSizeError, UploadPartsIncompleteError, UploadSessionExpiredError, UploadSessionNotFoundError, UploadSessionStoreNotConfiguredError, VariantNotFoundError, } from './errors.js';
|
|
22
|
+
export { ContentSignatureUnrecognizedError, ContentTypeMismatchError, ConversionArtifactMissingError, ConversionNotDefinedError, DeliverySignatureError, DirectUploadsNotConfiguredError, DriveNotReadyError, FfmpegFailedError, HlsSourceUnsupportedError, ImageProcessorMissingError, ImageSizeNotAllowedError, MediaAccessDeniedError, MediaNotFoundError, MediaObjectMissingError, MimeNotAllowedError, NotAnImageError, ResumableUploadsNotConfiguredError, StoreNotConfiguredError, TransformerConflictError, TransformerNotDefinedError, TransformerOutputError, TransformerRuntimeMissingError, TransformNotReadyError, UnsafeFileNameError, UploadNotSupportedError, UploadOffsetConflictError, UploadPartOutOfRangeError, UploadPartSizeError, UploadPartsIncompleteError, UploadSessionExpiredError, UploadSessionNotFoundError, UploadSessionStoreNotConfiguredError, VariantNotFoundError, } from './errors.js';
|
|
22
23
|
export { isExtendedDisk } from './extended_disk.js';
|
|
23
24
|
// Validates a client-supplied upload file name before it reaches a storage key; the same guard the
|
|
24
25
|
// built-in `keyFor` defaults and `MediaLibrary#layoutPath` run every file name through.
|
|
@@ -26,6 +27,7 @@ export { sanitizeFileName } from './file_name.js';
|
|
|
26
27
|
export { HlsDeliveryHandler } from './hls/delivery.js';
|
|
27
28
|
// HLS delivery (playlist rewriting + the framework-agnostic package handler)
|
|
28
29
|
export { classifyUri, HLS_PLAYLIST_CONTENT_TYPE, HLS_SEGMENT_CONTENT_TYPE, hlsArtifactContentType, isRelativeUri, resolvePackagePath, rewriteHlsPlaylist, } from './hls/playlist.js';
|
|
30
|
+
export { MediaAccess } from './media_access.js';
|
|
29
31
|
export { MediaCollectionRegistry } from './media_collection.js';
|
|
30
32
|
export { MediaLibrary } from './media_library.js';
|
|
31
33
|
// Manager + layers
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AAEf,4FAA4F;AAC5F,6BAA6B;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { MediaIdentityResolver } from '../access.js';
|
|
2
|
+
/**
|
|
3
|
+
* The bits of `@adonis-agora/authkit-server` this integration uses — typed structurally so the
|
|
4
|
+
* media package carries no dependency on it.
|
|
5
|
+
*/
|
|
6
|
+
interface AuthkitServerModule {
|
|
7
|
+
getAccountId(ctx: unknown): string | null;
|
|
8
|
+
realAccountId(ctx: unknown): string | null;
|
|
9
|
+
}
|
|
10
|
+
/** The bits of `@adonis-agora/authkit-client` this integration uses. */
|
|
11
|
+
interface AuthkitClientModule {
|
|
12
|
+
getAuthkit(ctx: unknown): Promise<{
|
|
13
|
+
getIdentity(): Promise<{
|
|
14
|
+
userId: string;
|
|
15
|
+
globalRoles?: string[];
|
|
16
|
+
orgId?: string | null;
|
|
17
|
+
} | null>;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
export interface AuthkitIdentityOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Which side of authkit this app is:
|
|
23
|
+
* - `'server'` — the app IS the identity provider (`@adonis-agora/authkit-server`): the account
|
|
24
|
+
* comes from the console session (`getAccountId`, impersonation-aware; `realAccountId` for
|
|
25
|
+
* permission checks);
|
|
26
|
+
* - `'client'` — the app signs in against one (`@adonis-agora/authkit-client`): the identity
|
|
27
|
+
* comes from `ctx.authkit` (`getAuthkit(ctx).getIdentity()`), with its global roles and active
|
|
28
|
+
* organization;
|
|
29
|
+
* - `'auto'` (default) — the client when the request carries `ctx.authkit`, the server when its
|
|
30
|
+
* package is installed, the client otherwise.
|
|
31
|
+
*/
|
|
32
|
+
side?: 'auto' | 'server' | 'client';
|
|
33
|
+
/** Subject type handed to authz. Default `'user'`. */
|
|
34
|
+
type?: string;
|
|
35
|
+
/** @internal test seams: how the authkit packages are loaded. */
|
|
36
|
+
load?: {
|
|
37
|
+
server?: () => Promise<AuthkitServerModule>;
|
|
38
|
+
client?: () => Promise<AuthkitClientModule>;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* `access.identity` for apps on authkit — who the current user is, as authkit sees them:
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* // config/media.ts
|
|
46
|
+
* import { authkitIdentity } from '@adonis-agora/media/authkit'
|
|
47
|
+
* export default defineConfig({ access: { identity: authkitIdentity() } })
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* On the server side, `id` is the account the request acts as (an impersonating admin sees the
|
|
51
|
+
* user's files) and `realId` the human behind it (what `@adonis-agora/media/authz` checks
|
|
52
|
+
* permissions for). On the client side both are the token's `sub`, with its global roles and
|
|
53
|
+
* active organization as `roles` / `tenantId`.
|
|
54
|
+
*/
|
|
55
|
+
export declare function authkitIdentity(options?: AuthkitIdentityOptions): MediaIdentityResolver;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=authkit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authkit.d.ts","sourceRoot":"","sources":["../../../src/integrations/authkit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAgB,MAAM,cAAc,CAAC;AAExE;;;GAGG;AACH,UAAU,mBAAmB;IAC3B,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,wEAAwE;AACxE,UAAU,mBAAmB;IAC3B,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;QAChC,WAAW,IAAI,OAAO,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;YACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SACvB,GAAG,IAAI,CAAC,CAAC;KACX,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;KAC7C,CAAC;CACH;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,qBAAqB,CA+C3F"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
const importServer = () => import('@adonis-agora/authkit-server');
|
|
2
|
+
const importClient = () => import('@adonis-agora/authkit-client');
|
|
3
|
+
/**
|
|
4
|
+
* `access.identity` for apps on authkit — who the current user is, as authkit sees them:
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* // config/media.ts
|
|
8
|
+
* import { authkitIdentity } from '@adonis-agora/media/authkit'
|
|
9
|
+
* export default defineConfig({ access: { identity: authkitIdentity() } })
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* On the server side, `id` is the account the request acts as (an impersonating admin sees the
|
|
13
|
+
* user's files) and `realId` the human behind it (what `@adonis-agora/media/authz` checks
|
|
14
|
+
* permissions for). On the client side both are the token's `sub`, with its global roles and
|
|
15
|
+
* active organization as `roles` / `tenantId`.
|
|
16
|
+
*/
|
|
17
|
+
export function authkitIdentity(options = {}) {
|
|
18
|
+
const side = options.side ?? 'auto';
|
|
19
|
+
const type = options.type;
|
|
20
|
+
const loadServer = options.load?.server ?? importServer;
|
|
21
|
+
const loadClient = options.load?.client ?? importClient;
|
|
22
|
+
const fromServer = async (ctx) => {
|
|
23
|
+
const server = await loadServer();
|
|
24
|
+
const id = server.getAccountId(ctx);
|
|
25
|
+
if (!id)
|
|
26
|
+
return null;
|
|
27
|
+
return { id, realId: server.realAccountId(ctx) ?? id, ...(type ? { type } : {}) };
|
|
28
|
+
};
|
|
29
|
+
const fromClient = async (ctx) => {
|
|
30
|
+
const client = await loadClient();
|
|
31
|
+
const identity = await (await client.getAuthkit(ctx)).getIdentity();
|
|
32
|
+
if (!identity)
|
|
33
|
+
return null;
|
|
34
|
+
return {
|
|
35
|
+
id: identity.userId,
|
|
36
|
+
realId: identity.userId,
|
|
37
|
+
roles: identity.globalRoles ?? [],
|
|
38
|
+
tenantId: identity.orgId ?? null,
|
|
39
|
+
...(type ? { type } : {}),
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
return async (ctx) => {
|
|
43
|
+
if (side === 'server')
|
|
44
|
+
return fromServer(ctx);
|
|
45
|
+
if (side === 'client')
|
|
46
|
+
return fromClient(ctx);
|
|
47
|
+
if (ctx.authkit)
|
|
48
|
+
return fromClient(ctx);
|
|
49
|
+
try {
|
|
50
|
+
return await fromServer(ctx);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (!isModuleNotFound(error))
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
return await fromClient(ctx);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
if (!isModuleNotFound(error))
|
|
61
|
+
throw error;
|
|
62
|
+
throw new Error("authkitIdentity() needs '@adonis-agora/authkit-server' (an identity-provider app) or " +
|
|
63
|
+
"'@adonis-agora/authkit-client' (an app signing in against one), and neither is " +
|
|
64
|
+
'installed. Install the one this app uses, or set `access.identity` to another resolver.', { cause: error });
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function isModuleNotFound(error) {
|
|
69
|
+
return error?.code === 'ERR_MODULE_NOT_FOUND';
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=authkit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authkit.js","sourceRoot":"","sources":["../../../src/integrations/authkit.ts"],"names":[],"mappings":"AA4CA,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,MAAM,CAAC,8BAAwC,CAAiC,CAAC;AACnF,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,MAAM,CAAC,8BAAwC,CAAiC,CAAC;AAEnF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,OAAO,GAA2B,EAAE;IAClE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,YAAY,CAAC;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,YAAY,CAAC;IAExD,MAAM,UAAU,GAAG,KAAK,EAAE,GAAY,EAAgC,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACpF,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAY,EAAgC,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACpE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,MAAM;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;YACjC,QAAQ,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI;YAChC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAK,GAA6B,CAAC,OAAO;YAAE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,uFAAuF;gBACrF,iFAAiF;gBACjF,yFAAyF,EAC3F,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAQ,KAA2B,EAAE,IAAI,KAAK,sBAAsB,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { MediaAccessRequest, MediaAuthorizer } from '../access.js';
|
|
2
|
+
/** The bits of `@adonis-agora/authz`'s service this integration uses (typed structurally). */
|
|
3
|
+
interface AuthzService {
|
|
4
|
+
can(user: unknown, permission: string, options?: {
|
|
5
|
+
scope?: unknown;
|
|
6
|
+
}): Promise<boolean>;
|
|
7
|
+
hasAnyRole(user: unknown, roles: string[], options?: {
|
|
8
|
+
scope?: unknown;
|
|
9
|
+
}): Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
export interface AuthzRuleOptions {
|
|
12
|
+
/** Explicit authz tenant scope for the check. Default: authz's own resolvers (`resolveTenant`). */
|
|
13
|
+
scope?: (request: MediaAccessRequest) => unknown;
|
|
14
|
+
/** @internal test seam: how the authz service is loaded. */
|
|
15
|
+
load?: () => Promise<AuthzService>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Media authorizers backed by `@adonis-agora/authz` (an optional peer, loaded on first use).
|
|
19
|
+
* Wildcards, roles → permissions, super-admins and tenancy all apply, as in any authz check.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { authorizers } from '@adonis-agora/media'
|
|
23
|
+
* import { authz } from '@adonis-agora/media/authz'
|
|
24
|
+
*
|
|
25
|
+
* { name: 'prescription', access: { read: authorizers.any(authorizers.owner(), authz.can('prescriptions.read')) } }
|
|
26
|
+
* { name: 'reports', access: { read: authz.can(({ collection, action }) => `media.${collection}.${action}`) } }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare const authz: {
|
|
30
|
+
/** The user holds `permission` (a string, or derived from the request). Anonymous ⇒ no. */
|
|
31
|
+
can(permission: string | ((request: MediaAccessRequest) => string), options?: AuthzRuleOptions): MediaAuthorizer;
|
|
32
|
+
/** The user has any of these roles in authz (store roles, `resolveRoles`, token roles). */
|
|
33
|
+
roles(roles: readonly string[], options?: AuthzRuleOptions): MediaAuthorizer;
|
|
34
|
+
};
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=authz.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz.d.ts","sourceRoot":"","sources":["../../../src/integrations/authz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAgB,MAAM,cAAc,CAAC;AAEtF,8FAA8F;AAC9F,UAAU,YAAY;IACpB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxF,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7F;AAED,MAAM,WAAW,gBAAgB;IAC/B,mGAAmG;IACnG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC;IACjD,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;CACpC;AAiBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK;IAChB,2FAA2F;IAC3F,GAAG,aACW,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,kBAAkB,KAAK,MAAM,CAAC,YACrD,gBAAgB,GACxB,eAAe;IAWlB,2FAA2F;IAC3F,KAAK,QAAQ,SAAS,MAAM,EAAE,YAAW,gBAAgB,GAAQ,eAAe;CAajF,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const importAuthz = async () => (await import('@adonis-agora/authz/services/main'))
|
|
2
|
+
.default;
|
|
3
|
+
/**
|
|
4
|
+
* What authz is asked about: the app's own user object when the identity has one (so a custom
|
|
5
|
+
* `resolveSubjectRef` keeps working), otherwise the `{ type, id }` reference of the human behind
|
|
6
|
+
* the request — `realId`, never the impersonated account: an admin acting as someone must not
|
|
7
|
+
* gain that someone's permissions, nor lose their own.
|
|
8
|
+
*/
|
|
9
|
+
function authzSubject(subject) {
|
|
10
|
+
if (subject.user != null)
|
|
11
|
+
return subject.user;
|
|
12
|
+
return { type: subject.type ?? 'user', id: subject.realId ?? subject.id };
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Media authorizers backed by `@adonis-agora/authz` (an optional peer, loaded on first use).
|
|
16
|
+
* Wildcards, roles → permissions, super-admins and tenancy all apply, as in any authz check.
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { authorizers } from '@adonis-agora/media'
|
|
20
|
+
* import { authz } from '@adonis-agora/media/authz'
|
|
21
|
+
*
|
|
22
|
+
* { name: 'prescription', access: { read: authorizers.any(authorizers.owner(), authz.can('prescriptions.read')) } }
|
|
23
|
+
* { name: 'reports', access: { read: authz.can(({ collection, action }) => `media.${collection}.${action}`) } }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export const authz = {
|
|
27
|
+
/** The user holds `permission` (a string, or derived from the request). Anonymous ⇒ no. */
|
|
28
|
+
can(permission, options = {}) {
|
|
29
|
+
const load = options.load ?? importAuthz;
|
|
30
|
+
return async (request) => {
|
|
31
|
+
if (!request.subject)
|
|
32
|
+
return false;
|
|
33
|
+
const service = await load();
|
|
34
|
+
const name = typeof permission === 'function' ? permission(request) : permission;
|
|
35
|
+
const scope = options.scope?.(request);
|
|
36
|
+
return service.can(authzSubject(request.subject), name, scope !== undefined ? { scope } : {});
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
/** The user has any of these roles in authz (store roles, `resolveRoles`, token roles). */
|
|
40
|
+
roles(roles, options = {}) {
|
|
41
|
+
const load = options.load ?? importAuthz;
|
|
42
|
+
return async (request) => {
|
|
43
|
+
if (!request.subject)
|
|
44
|
+
return false;
|
|
45
|
+
const service = await load();
|
|
46
|
+
const scope = options.scope?.(request);
|
|
47
|
+
return service.hasAnyRole(authzSubject(request.subject), [...roles], scope !== undefined ? { scope } : {});
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=authz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz.js","sourceRoot":"","sources":["../../../src/integrations/authz.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,GAAG,KAAK,IAA2B,EAAE,CACnD,CAAC,MAAM,MAAM,CAAC,mCAA6C,CAAC,CAA+B;KACzF,OAAO,CAAC;AAEb;;;;;GAKG;AACH,SAAS,YAAY,CAAC,OAAqB;IACzC,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,2FAA2F;IAC3F,GAAG,CACD,UAA8D,EAC9D,OAAO,GAAqB,EAAE;QAE9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;QACzC,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACjF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC,CAAC;IACJ,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,KAAwB,EAAE,OAAO,GAAqB,EAAE;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;QACzC,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC,UAAU,CACvB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAC7B,CAAC,GAAG,KAAK,CAAC,EACV,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
|
+
import { type MediaAction, type MediaAuthorizer, type MediaIdentityResolver, type MediaSubject } from './access.js';
|
|
3
|
+
import type { DeliveryMode } from './delivery.js';
|
|
4
|
+
import type { MediaLibrary } from './media_library.js';
|
|
5
|
+
import type { MediaRecord } from './media_record.js';
|
|
6
|
+
import type { ResponsiveImage, ResponsiveImageOptions } from './responsive_image.js';
|
|
7
|
+
/**
|
|
8
|
+
* The slice of an AdonisJS `HttpContext` the delivery route uses — typed structurally so the
|
|
9
|
+
* route works with the real context and with a test double alike.
|
|
10
|
+
*/
|
|
11
|
+
export interface DeliveryRouteContext {
|
|
12
|
+
params: Record<string, unknown>;
|
|
13
|
+
request: {
|
|
14
|
+
qs(): Record<string, unknown>;
|
|
15
|
+
header(name: string): string | undefined | null;
|
|
16
|
+
};
|
|
17
|
+
response: {
|
|
18
|
+
status(code: number): {
|
|
19
|
+
json(body: unknown): unknown;
|
|
20
|
+
} | unknown;
|
|
21
|
+
header(name: string, value: string): unknown;
|
|
22
|
+
redirect(url: string): unknown;
|
|
23
|
+
stream(stream: Readable): unknown;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface MediaDeliveryRouteOptions {
|
|
27
|
+
/**
|
|
28
|
+
* Who may read. Default: the record's collection `access.read`. With neither, every request is
|
|
29
|
+
* refused — the route never serves by default.
|
|
30
|
+
*/
|
|
31
|
+
authorize?: MediaAuthorizer;
|
|
32
|
+
/** Route parameter holding the media id. Default `'id'`. */
|
|
33
|
+
param?: string;
|
|
34
|
+
/**
|
|
35
|
+
* `Cache-Control` for what the route serves. Default `'private, max-age=60'`: a personal file
|
|
36
|
+
* must not be kept by a shared cache, and a minute absorbs a page rendering it many times.
|
|
37
|
+
*/
|
|
38
|
+
cacheControl?: string;
|
|
39
|
+
/** Override `delivery.mode` for this route. */
|
|
40
|
+
mode?: DeliveryMode;
|
|
41
|
+
/** Signed-URL lifetime when the resolved mode is `signed`. */
|
|
42
|
+
signedTtlSeconds?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Authorization for media, wired to the app's identity (`access.identity` — authkit, AdonisJS
|
|
46
|
+
* auth or your own) and the collections' `access` policies. `media.access` on the manager.
|
|
47
|
+
*
|
|
48
|
+
* The library still never decides authorization by itself: every rule comes from the app —
|
|
49
|
+
* a collection's `access`, or an `authorize` passed in. This is the plumbing that applies them.
|
|
50
|
+
*/
|
|
51
|
+
export declare class MediaAccess {
|
|
52
|
+
#private;
|
|
53
|
+
constructor(options: {
|
|
54
|
+
library: MediaLibrary;
|
|
55
|
+
identity?: MediaIdentityResolver | undefined;
|
|
56
|
+
});
|
|
57
|
+
/** The current user per the configured identity resolver, or `null`. */
|
|
58
|
+
subject(ctx: unknown): Promise<MediaSubject | null>;
|
|
59
|
+
/**
|
|
60
|
+
* May the current user perform `action`? `target` is the record (read) or the collection a file
|
|
61
|
+
* is going into (write). The rule is `authorize` when given, otherwise the collection's
|
|
62
|
+
* `access[action]`; neither ⇒ `false`.
|
|
63
|
+
*/
|
|
64
|
+
can(ctx: unknown, action: MediaAction, target: MediaRecord | {
|
|
65
|
+
collection: string;
|
|
66
|
+
}, authorize?: MediaAuthorizer): Promise<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* {@link can}, throwing {@link MediaAccessDeniedError} when refused — `401` for an anonymous
|
|
69
|
+
* request, `403` otherwise. Use it in your own controllers and upload policies:
|
|
70
|
+
*
|
|
71
|
+
* ```ts
|
|
72
|
+
* // DirectUploadPolicy.onInitiate
|
|
73
|
+
* await media.access.authorize(ctx, 'write', { collection: 'avatar' })
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
authorize(ctx: unknown, action: MediaAction, target: MediaRecord | {
|
|
77
|
+
collection: string;
|
|
78
|
+
}, authorize?: MediaAuthorizer): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* `media.library.image(id)` for the current user: checks read access first (the collection's
|
|
81
|
+
* `access.read`, or `authorize`), so the URLs it hands out — signed ones especially, which
|
|
82
|
+
* carry their authorization — only ever reach someone allowed to see the file.
|
|
83
|
+
*/
|
|
84
|
+
image(ctx: unknown, id: string, options?: ResponsiveImageOptions & {
|
|
85
|
+
authorize?: MediaAuthorizer;
|
|
86
|
+
}): Promise<ResponsiveImage>;
|
|
87
|
+
/**
|
|
88
|
+
* A ready AdonisJS route handler that serves a media record — the delivery route every app was
|
|
89
|
+
* hand-writing:
|
|
90
|
+
*
|
|
91
|
+
* ```ts
|
|
92
|
+
* const serveMedia = media.access.deliveryRoute({ authorize: authorizers.owner() })
|
|
93
|
+
* router.get('/media/:id', serveMedia)
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* - authorizes the read (`authorize`, or the collection's `access.read`; neither ⇒ refused),
|
|
97
|
+
* unless the URL carries a valid `delivery.signing` signature — that signature IS the
|
|
98
|
+
* authorization the app made when it issued the URL;
|
|
99
|
+
* - passes `?conversion`, `?w`, `?q`, `Accept`, `?exp`, `?sig` through (on-demand resize,
|
|
100
|
+
* format negotiation, signed URLs);
|
|
101
|
+
* - redirects or streams per `delivery.mode`, with `Content-Type`, `Content-Length`,
|
|
102
|
+
* `Content-Disposition: inline`, `Cache-Control` (private by default) and `Vary: Accept`;
|
|
103
|
+
* - answers the library's errors as HTTP: 404 (unknown record or conversion), 400 (size not
|
|
104
|
+
* allowed, not an image), 401/403 (not signed in / not allowed / bad signature).
|
|
105
|
+
*/
|
|
106
|
+
deliveryRoute(options?: MediaDeliveryRouteOptions): (ctx: DeliveryRouteContext) => Promise<unknown>;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=media_access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media_access.d.ts","sourceRoot":"","sources":["../../src/media_access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAElB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAUlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAErF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE;QACP,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;KACjD,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;YAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;SAAE,GAAG,OAAO,CAAC;QACjE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAC/B,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,qBAAa,WAAW;;IAItB,YAAY,OAAO,EAAE;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;KAAE,EAG3F;IAED,wEAAwE;IAClE,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAExD;IAED;;;;OAIG;IACG,GAAG,CACP,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAC5C,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,OAAO,CAAC,CAElB;IAiBD;;;;;;;;OAQG;IACG,SAAS,CACb,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAC5C,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,IAAI,CAAC,CASf;IAED;;;;OAIG;IACG,KAAK,CACT,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,sBAAsB,GAAG;QAAE,SAAS,CAAC,EAAE,eAAe,CAAA;KAAO,GACrE,OAAO,CAAC,eAAe,CAAC,CAM1B;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CACX,OAAO,GAAE,yBAA8B,GACtC,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CA2DjD;CACF"}
|