@venizia/ignis 0.2.0-22 → 0.2.0-23
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/dist/components/api-reference/ui/factory.d.ts +1 -1
- package/dist/components/api-reference/ui/factory.d.ts.map +1 -1
- package/dist/components/api-reference/ui/factory.js +5 -4
- package/dist/components/api-reference/ui/factory.js.map +1 -1
- package/dist/components/static-asset/common/constants.d.ts +9 -1
- package/dist/components/static-asset/common/constants.d.ts.map +1 -1
- package/dist/components/static-asset/common/constants.js +25 -2
- package/dist/components/static-asset/common/constants.js.map +1 -1
- package/dist/components/static-asset/common/types.d.ts +14 -11
- package/dist/components/static-asset/common/types.d.ts.map +1 -1
- package/dist/components/static-asset/component.d.ts.map +1 -1
- package/dist/components/static-asset/component.js +10 -6
- package/dist/components/static-asset/component.js.map +1 -1
- package/dist/components/static-asset/controller/base.definition.d.ts +25 -554
- package/dist/components/static-asset/controller/base.definition.d.ts.map +1 -1
- package/dist/components/static-asset/controller/base.definition.js +205 -291
- package/dist/components/static-asset/controller/base.definition.js.map +1 -1
- package/dist/components/static-asset/controller/factory.d.ts +22 -2
- package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
- package/dist/components/static-asset/controller/factory.js +265 -117
- package/dist/components/static-asset/controller/factory.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/components/api-reference/ui/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC;IACzD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CACrC,CAAC;IACA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAE3C,MAAM,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/components/api-reference/ui/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC;IACzD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CACrC,CAAC;IACA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAE3C,MAAM,CAAC,WAAW;IASlB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,GAAG,WAAW;IAYtD,QAAQ,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAyBtC,sBAAsB;CAGvB"}
|
|
@@ -13,14 +13,15 @@ class UIProviderFactory extends ignis_helpers_1.MemoryStorageHelper {
|
|
|
13
13
|
}
|
|
14
14
|
return UIProviderFactory.instance;
|
|
15
15
|
}
|
|
16
|
+
// One lookup, not a `isBound` probe followed by a second `get` of the same key.
|
|
16
17
|
getProvider({ type }) {
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
const provider = this.get(type);
|
|
19
|
+
if (!provider) {
|
|
19
20
|
throw (0, core_1.getError)({
|
|
20
|
-
message: `[UIProviderFactory][getProvider] Unknown UI Provider | type: ${type} | available: ${
|
|
21
|
+
message: `[UIProviderFactory][getProvider] Unknown UI Provider | type: ${type} | available: ${this.keys().join(', ')}`,
|
|
21
22
|
});
|
|
22
23
|
}
|
|
23
|
-
return
|
|
24
|
+
return provider;
|
|
24
25
|
}
|
|
25
26
|
register(opts) {
|
|
26
27
|
if (this.isBound(opts.type)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/components/api-reference/ui/factory.ts"],"names":[],"mappings":";;;AACA,sCAA4C;AAC5C,sDAAuD;AACvD,0DAA6D;AAC7D,qCAA4C;AAC5C,uCAA8C;AAE9C,MAAa,iBAAkB,SAAQ,mCAErC;IAGA,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,EAAE,IAAI,EAAsB;QACtC,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../src/components/api-reference/ui/factory.ts"],"names":[],"mappings":";;;AACA,sCAA4C;AAC5C,sDAAuD;AACvD,0DAA6D;AAC7D,qCAA4C;AAC5C,uCAA8C;AAE9C,MAAa,iBAAkB,SAAQ,mCAErC;IAGA,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,gFAAgF;IAChF,WAAW,CAAC,EAAE,IAAI,EAAsB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAA,eAAQ,EAAC;gBACb,OAAO,EAAE,gEAAgE,IAAI,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACvH,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,IAAsB;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM;iBACR,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;iBACvB,IAAI,CAAC,iDAAiD,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,wBAAe,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,2BAAiB,EAAE,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,KAAK,wBAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,yBAAgB,EAAE,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,eAAQ,EAAC;oBACb,OAAO,EAAE,iDAAiD,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,wBAAe,CAAC,UAAU,CAAC,EAAE;iBACnH,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AAtDD,8CAsDC"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import type { TConstValue } from '@venizia/ignis-helpers/common';
|
|
2
|
-
|
|
2
|
+
/** `content-type` is absent on purpose: it is decided from the object name, never from the backend. */
|
|
3
|
+
export declare const WHITELIST_HEADERS: readonly ["content-encoding", "cache-control", "etag", "last-modified"];
|
|
4
|
+
/**
|
|
5
|
+
* Types the controller will let a browser render, keyed off the object name. Anything absent here is
|
|
6
|
+
* served as an attachment, because a renderable upload on the API origin is stored XSS - and `nosniff`
|
|
7
|
+
* cannot stop a type we declared ourselves. `image/svg+xml` is deliberately excluded: SVG carries script.
|
|
8
|
+
*/
|
|
9
|
+
export declare const RENDERABLE_CONTENT_TYPES: Set<string>;
|
|
3
10
|
export declare class StaticAssetStorageTypes {
|
|
4
11
|
static readonly DISK = "disk";
|
|
12
|
+
/** @deprecated Use {@link StaticAssetStorageTypes.BUN_S3}, which reaches MinIO over the same S3 API. */
|
|
5
13
|
static readonly MINIO = "minio";
|
|
6
14
|
static readonly BUN_S3 = "bun-s3";
|
|
7
15
|
static readonly SCHEME_SET: Set<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/static-asset/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/static-asset/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,uGAAuG;AACvG,eAAO,MAAM,iBAAiB,yEAKpB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,aAgBnC,CAAC;AAEH,qBAAa,uBAAuB;IAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,wGAAwG;IACxG,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAElC,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAiD;IAE3E,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -1,16 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StaticAssetStorageTypes = exports.WHITELIST_HEADERS = void 0;
|
|
3
|
+
exports.StaticAssetStorageTypes = exports.RENDERABLE_CONTENT_TYPES = exports.WHITELIST_HEADERS = void 0;
|
|
4
4
|
const common_1 = require("@venizia/ignis-helpers/common");
|
|
5
|
+
/** `content-type` is absent on purpose: it is decided from the object name, never from the backend. */
|
|
5
6
|
exports.WHITELIST_HEADERS = [
|
|
6
|
-
common_1.HTTP.Headers.CONTENT_TYPE,
|
|
7
7
|
common_1.HTTP.Headers.CONTENT_ENCODING,
|
|
8
8
|
common_1.HTTP.Headers.CACHE_CONTROL,
|
|
9
9
|
common_1.HTTP.Headers.ETAG,
|
|
10
10
|
common_1.HTTP.Headers.LAST_MODIFIED,
|
|
11
11
|
];
|
|
12
|
+
/**
|
|
13
|
+
* Types the controller will let a browser render, keyed off the object name. Anything absent here is
|
|
14
|
+
* served as an attachment, because a renderable upload on the API origin is stored XSS - and `nosniff`
|
|
15
|
+
* cannot stop a type we declared ourselves. `image/svg+xml` is deliberately excluded: SVG carries script.
|
|
16
|
+
*/
|
|
17
|
+
exports.RENDERABLE_CONTENT_TYPES = new Set([
|
|
18
|
+
'image/png',
|
|
19
|
+
'image/jpeg',
|
|
20
|
+
'image/gif',
|
|
21
|
+
'image/webp',
|
|
22
|
+
'image/avif',
|
|
23
|
+
'image/bmp',
|
|
24
|
+
'image/x-icon',
|
|
25
|
+
'video/mp4',
|
|
26
|
+
'video/webm',
|
|
27
|
+
'audio/mpeg',
|
|
28
|
+
'audio/wav',
|
|
29
|
+
'audio/ogg',
|
|
30
|
+
'application/pdf',
|
|
31
|
+
'text/plain',
|
|
32
|
+
'text/csv',
|
|
33
|
+
]);
|
|
12
34
|
class StaticAssetStorageTypes {
|
|
13
35
|
static { this.DISK = 'disk'; }
|
|
36
|
+
/** @deprecated Use {@link StaticAssetStorageTypes.BUN_S3}, which reaches MinIO over the same S3 API. */
|
|
14
37
|
static { this.MINIO = 'minio'; }
|
|
15
38
|
static { this.BUN_S3 = 'bun-s3'; }
|
|
16
39
|
static { this.SCHEME_SET = new Set([this.DISK, this.MINIO, this.BUN_S3]); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/static-asset/common/constants.ts"],"names":[],"mappings":";;;AACA,0DAAqD;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/static-asset/common/constants.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AAErD,uGAAuG;AAC1F,QAAA,iBAAiB,GAAG;IAC/B,aAAI,CAAC,OAAO,CAAC,gBAAgB;IAC7B,aAAI,CAAC,OAAO,CAAC,aAAa;IAC1B,aAAI,CAAC,OAAO,CAAC,IAAI;IACjB,aAAI,CAAC,OAAO,CAAC,aAAa;CAClB,CAAC;AAEX;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,IAAI,GAAG,CAAS;IACtD,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,cAAc;IACd,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,YAAY;IACZ,UAAU;CACX,CAAC,CAAC;AAEH,MAAa,uBAAuB;aAClB,SAAI,GAAG,MAAM,CAAC;IAC9B,wGAAwG;aACxF,UAAK,GAAG,OAAO,CAAC;aAChB,WAAM,GAAG,QAAQ,CAAC;aAElB,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3E,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AAVH,0DAWC"}
|
|
@@ -3,7 +3,7 @@ import type { IStorageHelper } from '@venizia/ignis-helpers';
|
|
|
3
3
|
import type { BaseRelationalEntity } from '@venizia/ignis-connectors/postgres';
|
|
4
4
|
import type { DefaultCRUDRepository } from '@venizia/ignis-connectors/postgres';
|
|
5
5
|
import type { AnyType, ValueOrPromise } from '@venizia/ignis-helpers/common';
|
|
6
|
-
import type { DiskHelper, IFileStat, IUploadResult } from '@venizia/ignis-helpers';
|
|
6
|
+
import type { DiskHelper, IBucketRef, IFileStat, IObjectLocation, IUploadResult, TUploadNaming } from '@venizia/ignis-helpers';
|
|
7
7
|
import type { BunS3Helper } from '@venizia/ignis-helpers/bun-s3';
|
|
8
8
|
import type { MinioHelper } from '@venizia/ignis-helpers/minio';
|
|
9
9
|
import type { TMetaLinkSchema } from '../models';
|
|
@@ -15,24 +15,21 @@ export type TStaticAssetExtraOptions = {
|
|
|
15
15
|
};
|
|
16
16
|
/** `folderPath` carries the upload query's target folder - dropping it flattens nested uploads. */
|
|
17
17
|
normalizeNameFn?: (opts: {
|
|
18
|
-
|
|
19
|
-
folderPath?: string;
|
|
20
|
-
}) => string;
|
|
21
|
-
normalizeLinkFn?: (opts: {
|
|
22
|
-
bucketName: string;
|
|
23
|
-
normalizeName: string;
|
|
18
|
+
file: TUploadNaming;
|
|
24
19
|
}) => string;
|
|
20
|
+
normalizeLinkFn?: (opts: IObjectLocation) => string;
|
|
25
21
|
/** Maximum folder nesting depth allowed in object paths. Default: 2 */
|
|
26
22
|
maxFolderDepth?: number;
|
|
27
23
|
[key: string]: AnyType;
|
|
28
24
|
};
|
|
29
|
-
/** Decides the
|
|
25
|
+
/** Decides the key one uploaded file is stored under. `defaultKey` is what IGNIS would have written. */
|
|
30
26
|
export type TResolveObjectName = (opts: {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
bucket: IBucketRef;
|
|
28
|
+
file: TUploadNaming;
|
|
29
|
+
defaultKey: string;
|
|
34
30
|
}) => string;
|
|
35
31
|
/** Adds routes of the application's own to a generated asset controller. Runs after every built-in route, so a built-in route always wins a path collision. `basePath` is the mount path with exactly one leading slash. */
|
|
32
|
+
/** Adds routes of the application's own. Registration order decides a path collision, so the same shape serves both the before and the after hook. */
|
|
36
33
|
export type TDefineExtraRoutes = (opts: {
|
|
37
34
|
controller: BaseRestController;
|
|
38
35
|
helper: IStorageHelper;
|
|
@@ -74,6 +71,10 @@ export type TStaticAssetsComponentOptions = {
|
|
|
74
71
|
name: string;
|
|
75
72
|
basePath: string;
|
|
76
73
|
isStrict?: boolean;
|
|
74
|
+
/** The single bucket every object route uses. It leaves the URL (`/objects/{objectName}`) and the four bucket-management routes are not registered. The function form is read per request, so an environment variable can be read lazily. */
|
|
75
|
+
bucket?: string | (() => string);
|
|
76
|
+
/** `true` serves a raw nested object path (`/objects/photos/2024/f.jpg`) - a URL shape change; a percent-encoded path keeps working either way. Default: `false`. */
|
|
77
|
+
rawObjectPath?: boolean;
|
|
77
78
|
routes?: {
|
|
78
79
|
getBuckets?: Partial<Omit<IAuthRouteConfig, 'method' | 'request' | 'responses'>>;
|
|
79
80
|
getBucketByName?: Partial<Omit<IAuthRouteConfig, 'method' | 'request' | 'responses'>>;
|
|
@@ -90,6 +91,8 @@ export type TStaticAssetsComponentOptions = {
|
|
|
90
91
|
extra?: TStaticAssetExtraOptions;
|
|
91
92
|
/** Decides the stored object name of each uploaded file; absent keeps the storage helper's own naming. */
|
|
92
93
|
resolveObjectName?: TResolveObjectName;
|
|
94
|
+
/** Registers the application's own routes BEFORE every built-in one, so a literal path wins over the catch-all `rawObjectPath` produces. Hono matches in registration order. */
|
|
95
|
+
defineRoutesBefore?: TDefineExtraRoutes;
|
|
93
96
|
/** Registers the application's own routes on the generated controller, after every built-in one. */
|
|
94
97
|
defineExtraRoutes?: TDefineExtraRoutes;
|
|
95
98
|
} & ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/static-asset/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/static-asset/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,kBAAkB,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,mGAAmG;IACnG,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,KAAK,MAAM,CAAC;IAC5D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,MAAM,CAAC;IAEpD,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,wGAAwG;AACxG,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,KAAK,MAAM,CAAC;AAEb,4NAA4N;AAC5N,sJAAsJ;AACtJ,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IACtC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAK,IAAI,CAAC;AAGX,MAAM,MAAM,aAAa,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,eAAe,GAAG,eAAe,IAAI;IAC9E,KAAK,EAAE,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QACtB,YAAY,EAAE,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;QACpB,KAAK,EAAE,YAAY,CAAC;KACrB,KAAK,cAAc,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;YAEnB,6OAA6O;YAC7O,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;YAEjC,qKAAqK;YACrK,aAAa,CAAC,EAAE,OAAO,CAAC;YAExB,MAAM,CAAC,EAAE;gBACP,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBACjF,eAAe,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBACtF,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBACnF,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBAEnF,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC7E,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBAClF,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBACnF,eAAe,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBACtF,oBAAoB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;gBAE3F,gBAAgB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC;aACxF,CAAC;SACH,CAAC;QACF,KAAK,CAAC,EAAE,wBAAwB,CAAC;QAEjC,0GAA0G;QAC1G,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;QAEvC,gLAAgL;QAChL,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QAExC,oGAAoG;QACpG,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;KACxC,GAAG,CACA;QAAE,OAAO,EAAE,OAAO,uBAAuB,CAAC,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,GACvE;QAAE,OAAO,EAAE,OAAO,uBAAuB,CAAC,IAAI,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GACpE;QAAE,OAAO,EAAE,OAAO,uBAAuB,CAAC,KAAK,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,CACzE,GACC,CAAC;QAAE,WAAW,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,GAAG;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;CAC5F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/static-asset/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,qBAAa,oBAAqB,SAAQ,aAAa;IAEC,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAcjF,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/static-asset/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,qBAAa,oBAAqB,SAAQ,aAAa;IAEC,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAcjF,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC;CAmDzC"}
|
|
@@ -39,7 +39,7 @@ let StaticAssetComponent = StaticAssetComponent_1 = class StaticAssetComponent e
|
|
|
39
39
|
key: common_1.StaticAssetComponentBindingKeys.STATIC_ASSET_COMPONENT_OPTIONS,
|
|
40
40
|
});
|
|
41
41
|
for (const [key, opt] of Object.entries(componentOptions)) {
|
|
42
|
-
const { storage, controller, helper, extra, resolveObjectName, defineExtraRoutes } = opt;
|
|
42
|
+
const { storage, controller, helper, extra, resolveObjectName, defineRoutesBefore, defineExtraRoutes, } = opt;
|
|
43
43
|
this.application.controller(controller_1.AssetControllerFactory.defineAssetController({
|
|
44
44
|
controller,
|
|
45
45
|
storage,
|
|
@@ -47,15 +47,19 @@ let StaticAssetComponent = StaticAssetComponent_1 = class StaticAssetComponent e
|
|
|
47
47
|
useMetaLink: opt.useMetaLink,
|
|
48
48
|
metaLink: opt.useMetaLink ? opt.metaLink : undefined,
|
|
49
49
|
resolveObjectName,
|
|
50
|
+
defineRoutesBefore,
|
|
50
51
|
defineExtraRoutes,
|
|
51
52
|
options: {
|
|
52
53
|
...extra,
|
|
53
54
|
normalizeLinkFn: extra?.normalizeLinkFn ??
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
// The link follows the URL shape the controller serves: `{objectName}` is one Hono path segment unless `rawObjectPath` widens it, and a configured bucket leaves the path.
|
|
56
|
+
(linkOptions => (0, controller_1.buildObjectLink)({
|
|
57
|
+
basePath: controller.basePath,
|
|
58
|
+
bucket: linkOptions.bucket,
|
|
59
|
+
object: linkOptions.object,
|
|
60
|
+
hasConfiguredBucket: controller.bucket !== undefined,
|
|
61
|
+
rawObjectPath: controller.rawObjectPath,
|
|
62
|
+
})),
|
|
59
63
|
},
|
|
60
64
|
}));
|
|
61
65
|
this.application.logger.info(`[binding] Asset storage is bound | Key: %s | Storage type: %s | UseMetaLink: %s`, key, storage, Boolean(opt.useMetaLink));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/static-asset/component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,wDAAsD;AACtD,8CAAyC;AACzC,wDAAqD;AACrD,wDAAgD;AAEhD,qCAA0F;AAC1F,
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/static-asset/component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,wDAAsD;AACtD,8CAAyC;AACzC,wDAAqD;AACrD,wDAAgD;AAEhD,qCAA0F;AAC1F,6CAAuE;AAEvE,IAAa,oBAAoB,4BAAjC,MAAa,oBAAqB,SAAQ,4BAAa;IACrD,YAC8D,WAA4B;QAExF,KAAK,CAAC;YACJ,KAAK,EAAE,sBAAoB,CAAC,IAAI;YAChC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE;YACrD,QAAQ,EAAE;gBACR,CAAC,wCAA+B,CAAC,8BAA8B,CAAC,EAC9D,sBAAO,CAAC,IAAI,CAAgC;oBAC1C,GAAG,EAAE,wCAA+B,CAAC,8BAA8B;iBACpE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACjB;SACF,CAAC,CAAC;QAXyD,gBAAW,GAAX,WAAW,CAAiB;IAY1F,CAAC;IAEQ,OAAO;QACd,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAgC;YAC3E,GAAG,EAAE,wCAA+B,CAAC,8BAA8B;SACpE,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1D,MAAM,EACJ,OAAO,EACP,UAAU,EACV,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,GAAG,GAAG,CAAC;YAER,IAAI,CAAC,WAAW,CAAC,UAAU,CACzB,mCAAsB,CAAC,qBAAqB,CAAC;gBAC3C,UAAU;gBACV,OAAO;gBACP,MAAM;gBACN,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACpD,iBAAiB;gBACjB,kBAAkB;gBAClB,iBAAiB;gBACjB,OAAO,EAAE;oBACP,GAAG,KAAK;oBACR,eAAe,EACb,KAAK,EAAE,eAAe;wBACtB,2KAA2K;wBAC3K,CAAC,WAAW,CAAC,EAAE,CACb,IAAA,4BAAe,EAAC;4BACd,QAAQ,EAAE,UAAU,CAAC,QAAQ;4BAC7B,MAAM,EAAE,WAAW,CAAC,MAAM;4BAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;4BAC1B,mBAAmB,EAAE,UAAU,CAAC,MAAM,KAAK,SAAS;4BACpD,aAAa,EAAE,UAAU,CAAC,aAAa;yBACxC,CAAC,CAAC;iBACR;aACF,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAC1B,iFAAiF,EACjF,GAAG,EACH,OAAO,EACP,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAnEY,oDAAoB;+BAApB,oBAAoB;IAE5B,WAAA,IAAA,iBAAM,EAAC,EAAE,GAAG,EAAE,2BAAY,CAAC,oBAAoB,EAAE,CAAC,CAAA;qCAAsB,8BAAe;GAF/E,oBAAoB,CAmEhC"}
|