@zenofolio/hyper-decor 1.0.71 → 1.0.73
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/.agent/rules/philosophy.md +103 -0
- package/.agent/rules/writing.md +32 -0
- package/README.md +78 -207
- package/dist/__internals/constants.d.ts +1 -62
- package/dist/__internals/constants.js +3 -69
- package/dist/__internals/creators/request.creator.d.ts +1 -10
- package/dist/__internals/creators/request.creator.js +141 -23
- package/dist/__internals/helpers/merge-metadata.d.ts +2 -3
- package/dist/__internals/helpers/merge-metadata.js +31 -7
- package/dist/__internals/helpers/prepare.helper.d.ts +4 -10
- package/dist/__internals/helpers/prepare.helper.js +316 -283
- package/dist/__internals/stores/hyper.store.d.ts +5 -0
- package/dist/__internals/stores/hyper.store.js +5 -0
- package/dist/__internals/stores/index.d.ts +4 -0
- package/dist/__internals/stores/index.js +20 -0
- package/dist/__internals/stores/meta.store.d.ts +34 -0
- package/dist/__internals/stores/meta.store.js +107 -0
- package/dist/__internals/stores/scope.store.d.ts +14 -0
- package/dist/__internals/stores/scope.store.js +29 -0
- package/dist/__internals/stores/serivces.store.d.ts +1 -0
- package/dist/__internals/stores/serivces.store.js +4 -0
- package/dist/__internals/transform/middleware.transform.d.ts +1 -1
- package/dist/__internals/transform/middleware.transform.js +1 -1
- package/dist/__internals/transform/role.transform.d.ts +1 -1
- package/dist/__internals/transform/role.transform.js +4 -4
- package/dist/__internals/transform/scope.transfrom.d.ts +1 -1
- package/dist/__internals/transform/scope.transfrom.js +2 -2
- package/dist/__internals/types.d.ts +53 -4
- package/dist/common/bootstrap.d.ts +6 -2
- package/dist/common/bootstrap.js +44 -10
- package/dist/common/transport.d.ts +1 -0
- package/dist/common/transport.js +27 -14
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +2 -1
- package/dist/decorators/Http.d.ts +3 -43
- package/dist/decorators/Http.js +9 -103
- package/dist/decorators.d.ts +1 -0
- package/dist/decorators.js +17 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +6 -5
- package/dist/lib/event/meta.store.d.ts +4 -0
- package/dist/lib/event/meta.store.js +5 -0
- package/dist/lib/openapi/collectors/class.collector.d.ts +5 -9
- package/dist/lib/openapi/collectors/class.collector.js +6 -63
- package/dist/lib/openapi/collectors/index.d.ts +3 -4
- package/dist/lib/openapi/collectors/index.js +0 -1
- package/dist/lib/openapi/collectors/method.collector.d.ts +6 -1
- package/dist/lib/openapi/collectors/method.collector.js +92 -59
- package/dist/lib/openapi/collectors/schema.collector.d.ts +3 -8
- package/dist/lib/openapi/collectors/schema.collector.js +17 -25
- package/dist/lib/openapi/constants.d.ts +1 -0
- package/dist/lib/openapi/constants.js +2 -2
- package/dist/lib/openapi/decorators.d.ts +16 -0
- package/dist/lib/openapi/decorators.js +93 -0
- package/dist/lib/openapi/index.d.ts +29 -5
- package/dist/lib/openapi/index.js +119 -5
- package/dist/lib/openapi/metadata.d.ts +7 -0
- package/dist/lib/openapi/metadata.js +8 -0
- package/dist/lib/openapi/metadata.registry.d.ts +1 -1
- package/dist/lib/server/decorators/File.d.ts +37 -0
- package/dist/lib/server/decorators/File.js +167 -0
- package/dist/lib/server/decorators/Http.d.ts +12 -0
- package/dist/lib/server/decorators/Http.js +56 -0
- package/dist/lib/server/decorators/HyperApp.d.ts +7 -0
- package/dist/lib/server/decorators/HyperApp.js +14 -0
- package/dist/lib/server/decorators/HyperController.d.ts +6 -0
- package/dist/lib/server/decorators/HyperController.js +27 -0
- package/dist/lib/server/decorators/HyperModule.d.ts +6 -0
- package/dist/lib/server/decorators/HyperModule.js +13 -0
- package/dist/lib/server/decorators/HyperService.d.ts +11 -0
- package/dist/lib/server/decorators/HyperService.js +30 -0
- package/dist/lib/server/decorators/Messaging.d.ts +8 -0
- package/dist/lib/server/decorators/Messaging.js +19 -0
- package/dist/lib/server/decorators/Middleware.d.ts +18 -0
- package/dist/lib/server/decorators/Middleware.js +52 -0
- package/dist/lib/server/decorators/Output.d.ts +6 -0
- package/dist/lib/server/decorators/Output.js +14 -0
- package/dist/lib/server/decorators/Pass.d.ts +10 -0
- package/dist/lib/server/decorators/Pass.js +13 -0
- package/dist/lib/server/decorators/Role.d.ts +7 -0
- package/dist/lib/server/decorators/Role.js +14 -0
- package/dist/lib/server/decorators/Routes.d.ts +14 -0
- package/dist/lib/server/decorators/Routes.js +39 -0
- package/dist/lib/server/decorators/Scope.d.ts +7 -0
- package/dist/lib/server/decorators/Scope.js +14 -0
- package/dist/lib/server/decorators/index.d.ts +16 -0
- package/dist/lib/server/decorators/index.js +32 -0
- package/dist/lib/server/decorators/metadata.d.ts +1 -0
- package/dist/lib/server/decorators/metadata.js +5 -0
- package/dist/lib/server/decorators/types.d.ts +125 -0
- package/dist/lib/server/decorators/types.js +6 -0
- package/dist/lib/server/exeptions/DuplicateControllerPathException.d.ts +14 -0
- package/dist/lib/server/exeptions/DuplicateControllerPathException.js +12 -0
- package/dist/lib/server/exeptions/DuplicatedException.d.ts +8 -0
- package/dist/lib/server/exeptions/DuplicatedException.js +12 -0
- package/dist/lib/server/exeptions/DuplicatedHandlerException.d.ts +4 -0
- package/dist/lib/server/exeptions/DuplicatedHandlerException.js +12 -0
- package/dist/lib/server/exeptions/HyperException.d.ts +8 -0
- package/dist/lib/server/exeptions/HyperException.js +14 -0
- package/dist/lib/server/exeptions/HyperFileException.d.ts +4 -0
- package/dist/lib/server/exeptions/HyperFileException.js +12 -0
- package/dist/lib/server/exeptions/MethodNotFountException.d.ts +4 -0
- package/dist/lib/server/exeptions/MethodNotFountException.js +12 -0
- package/dist/lib/server/exeptions/NotPropertyException.d.ts +6 -0
- package/dist/lib/server/exeptions/NotPropertyException.js +16 -0
- package/dist/lib/server/exeptions/NotRoleException.d.ts +6 -0
- package/dist/lib/server/exeptions/NotRoleException.js +17 -0
- package/dist/lib/server/exeptions/NotScopeException.d.ts +7 -0
- package/dist/lib/server/exeptions/NotScopeException.js +18 -0
- package/dist/lib/server/exeptions/WrongPlaceException.d.ts +8 -0
- package/dist/lib/server/exeptions/WrongPlaceException.js +21 -0
- package/dist/lib/server/exeptions/index.d.ts +8 -0
- package/dist/lib/server/exeptions/index.js +18 -0
- package/dist/lib/server/exeptions/types.d.ts +1 -0
- package/dist/lib/server/exeptions/types.js +2 -0
- package/dist/lib/tree/tree.d.ts +36 -0
- package/dist/lib/tree/tree.js +106 -0
- package/package.json +1 -1
- package/scripts/clean.js +55 -55
- package/scripts/test-server.ts +85 -85
- package/vitest.config.mjs +33 -30
- package/vitest.json +0 -0
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
@@ -7,49 +16,158 @@ exports.default = createParamDecorator;
|
|
|
7
16
|
require("reflect-metadata");
|
|
8
17
|
const constants_1 = require("../constants");
|
|
9
18
|
const decorator_base_1 = require("../decorator-base");
|
|
10
|
-
const who_helper_1 = __importDefault(require("../helpers/who.helper"));
|
|
11
19
|
const WrongPlaceException_1 = __importDefault(require("../../exeptions/WrongPlaceException"));
|
|
12
20
|
const function_util_1 = require("../utils/function.util");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*/
|
|
20
|
-
function createParamDecorator(key, decoratorName, resolver, schema, isWholeSource) {
|
|
21
|
-
const _key = key;
|
|
21
|
+
const object_util_1 = require("../utils/object.util");
|
|
22
|
+
const transform_registry_1 = require("../transform/transform.registry");
|
|
23
|
+
const identitySelector = (value) => value;
|
|
24
|
+
const identityTransformer = (value) => value;
|
|
25
|
+
function createParamDecorator(sourceKey, decoratorName, keyOrSchema, schemaOrTransform, isWholeSource = false) {
|
|
26
|
+
const _sourceKey = sourceKey;
|
|
22
27
|
return (0, decorator_base_1.DecoratorHelper)({
|
|
23
28
|
type: constants_1.KEY_TYPE_CONTROLLER,
|
|
24
29
|
key: constants_1.KEY_PARAMS_PARAM,
|
|
25
30
|
options: (options, Target, propertyKey, parameterIndex) => {
|
|
26
|
-
const
|
|
27
|
-
if (!isProperty)
|
|
28
|
-
throw new WrongPlaceException_1.default(decoratorName, "parameter", `${Target.constructor.name}.${propertyKey}`, Target);
|
|
31
|
+
const isProperty = typeof parameterIndex === "number";
|
|
32
|
+
if (!isProperty) {
|
|
33
|
+
throw new WrongPlaceException_1.default(decoratorName, "parameter", `${Target.constructor.name}.${String(propertyKey)}`, Target);
|
|
34
|
+
}
|
|
29
35
|
const saved = options !== null && options !== void 0 ? options : { params: {} };
|
|
30
|
-
const
|
|
36
|
+
const method = Target[propertyKey];
|
|
37
|
+
const names = (0, function_util_1.extractArgsNames)(method);
|
|
31
38
|
const types = Reflect.getMetadata(constants_1.DESIGN_PARAMTYPES, Target, propertyKey);
|
|
32
39
|
const name = names === null || names === void 0 ? void 0 : names[parameterIndex];
|
|
33
40
|
const type = types === null || types === void 0 ? void 0 : types[parameterIndex];
|
|
41
|
+
let key = undefined;
|
|
42
|
+
let inputSchemaOrFn = undefined;
|
|
43
|
+
let wholeSource = isWholeSource;
|
|
44
|
+
if (typeof keyOrSchema === "string") {
|
|
45
|
+
key = keyOrSchema;
|
|
46
|
+
inputSchemaOrFn = schemaOrTransform;
|
|
47
|
+
}
|
|
48
|
+
else if (keyOrSchema !== undefined) {
|
|
49
|
+
inputSchemaOrFn = keyOrSchema;
|
|
50
|
+
wholeSource = true;
|
|
51
|
+
}
|
|
52
|
+
const hasKey = key !== undefined && key !== "";
|
|
53
|
+
const hasTransform = inputSchemaOrFn !== undefined;
|
|
54
|
+
const extractor = createExtractor(_sourceKey);
|
|
55
|
+
const selector = createSelector(key);
|
|
56
|
+
const transformer = createTransformer(inputSchemaOrFn, _sourceKey, wholeSource);
|
|
57
|
+
const resolver = composeResolver(extractor, selector, transformer, hasKey, hasTransform);
|
|
34
58
|
if (name && saved) {
|
|
35
|
-
|
|
36
|
-
|
|
59
|
+
let methodParams = saved.params[propertyKey];
|
|
60
|
+
if (!methodParams) {
|
|
61
|
+
methodParams = saved.params[propertyKey] = [];
|
|
37
62
|
}
|
|
38
|
-
|
|
63
|
+
methodParams.push({
|
|
39
64
|
name,
|
|
40
65
|
type,
|
|
41
66
|
index: parameterIndex,
|
|
42
|
-
key:
|
|
67
|
+
key: _sourceKey,
|
|
43
68
|
method: propertyKey.toString(),
|
|
44
69
|
resolver,
|
|
45
|
-
schema,
|
|
46
|
-
isWholeSource,
|
|
70
|
+
schema: inputSchemaOrFn,
|
|
71
|
+
isWholeSource: wholeSource,
|
|
47
72
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
73
|
+
if (methodParams.length > 1) {
|
|
74
|
+
methodParams.sort((a, b) => a.index - b.index);
|
|
75
|
+
}
|
|
76
|
+
Reflect.defineMetadata(constants_1.KEY_PARAMS_PARAM, saved, method);
|
|
51
77
|
}
|
|
52
78
|
return saved;
|
|
53
79
|
},
|
|
54
80
|
});
|
|
55
81
|
}
|
|
82
|
+
//////////////////////////
|
|
83
|
+
/// Functions
|
|
84
|
+
/////////////////////////
|
|
85
|
+
function createBodyExtractor() {
|
|
86
|
+
return (req) => __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
const request = req;
|
|
88
|
+
const cachedBody = request.body;
|
|
89
|
+
if (cachedBody !== undefined) {
|
|
90
|
+
return cachedBody;
|
|
91
|
+
}
|
|
92
|
+
const body = yield req.json();
|
|
93
|
+
request.body = body;
|
|
94
|
+
return body;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function createReqExtractor() {
|
|
98
|
+
return (req) => __awaiter(this, void 0, void 0, function* () { return req; });
|
|
99
|
+
}
|
|
100
|
+
function createResExtractor() {
|
|
101
|
+
return (_req, res) => __awaiter(this, void 0, void 0, function* () { return res; });
|
|
102
|
+
}
|
|
103
|
+
function createGenericExtractor(sourceKey) {
|
|
104
|
+
return (req) => __awaiter(this, void 0, void 0, function* () { return req[sourceKey]; });
|
|
105
|
+
}
|
|
106
|
+
function createExtractor(sourceKey) {
|
|
107
|
+
switch (sourceKey) {
|
|
108
|
+
case "body":
|
|
109
|
+
return createBodyExtractor();
|
|
110
|
+
case "req":
|
|
111
|
+
return createReqExtractor();
|
|
112
|
+
case "res":
|
|
113
|
+
return createResExtractor();
|
|
114
|
+
default:
|
|
115
|
+
return createGenericExtractor(sourceKey);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function createSelector(key) {
|
|
119
|
+
if (key === undefined || key === "") {
|
|
120
|
+
return identitySelector;
|
|
121
|
+
}
|
|
122
|
+
return (value) => (0, object_util_1.$get)(value, key, value);
|
|
123
|
+
}
|
|
124
|
+
function createDirectTransformer(fn) {
|
|
125
|
+
return (value) => fn(value);
|
|
126
|
+
}
|
|
127
|
+
function createRegistryTransformer(schema, sourceKey, isWholeSource) {
|
|
128
|
+
const options = { isWholeSource };
|
|
129
|
+
const from = sourceKey;
|
|
130
|
+
return (value, req, res) => transform_registry_1.transformRegistry.resolve({
|
|
131
|
+
data: value,
|
|
132
|
+
schema,
|
|
133
|
+
options,
|
|
134
|
+
req,
|
|
135
|
+
res,
|
|
136
|
+
from,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function createTransformer(inputSchemaOrFn, sourceKey, isWholeSource) {
|
|
140
|
+
if (inputSchemaOrFn === undefined) {
|
|
141
|
+
return identityTransformer;
|
|
142
|
+
}
|
|
143
|
+
if (typeof inputSchemaOrFn === "function" &&
|
|
144
|
+
inputSchemaOrFn.prototype === undefined) {
|
|
145
|
+
return createDirectTransformer(inputSchemaOrFn);
|
|
146
|
+
}
|
|
147
|
+
if (typeof inputSchemaOrFn === "function" ||
|
|
148
|
+
typeof inputSchemaOrFn === "string") {
|
|
149
|
+
return createRegistryTransformer(inputSchemaOrFn, sourceKey, isWholeSource);
|
|
150
|
+
}
|
|
151
|
+
return identityTransformer;
|
|
152
|
+
}
|
|
153
|
+
function composeResolver(extractor, selector, transformer, hasKey, hasTransform) {
|
|
154
|
+
if (!hasKey && !hasTransform) {
|
|
155
|
+
return extractor;
|
|
156
|
+
}
|
|
157
|
+
if (hasKey && !hasTransform) {
|
|
158
|
+
return (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
159
|
+
const value = yield extractor(req, res);
|
|
160
|
+
return selector(value);
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
if (!hasKey && hasTransform) {
|
|
164
|
+
return (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
const value = yield extractor(req, res);
|
|
166
|
+
return transformer(value, req, res);
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
return (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
170
|
+
const value = yield extractor(req, res);
|
|
171
|
+
return transformer(selector(value), req, res);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import "
|
|
2
|
-
type MetadataKey = string | symbol;
|
|
1
|
+
import { HyperCommonMetadata } from "../types";
|
|
3
2
|
type MergeOptions = {
|
|
4
3
|
overwriteArrays?: boolean;
|
|
5
4
|
};
|
|
@@ -10,5 +9,5 @@ type MergeOptions = {
|
|
|
10
9
|
* @param keys Metadata keys to merge.
|
|
11
10
|
* @param options Merge options (e.g., array handling).
|
|
12
11
|
*/
|
|
13
|
-
export declare function mergeMetadata(target:
|
|
12
|
+
export declare function mergeMetadata(target: object, source: object, keys: (keyof HyperCommonMetadata)[], options?: MergeOptions): void;
|
|
14
13
|
export {};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mergeMetadata = mergeMetadata;
|
|
4
|
-
require("
|
|
4
|
+
const meta_store_1 = require("../stores/meta.store");
|
|
5
|
+
/**
|
|
6
|
+
* Perform a clean merge of prefixes
|
|
7
|
+
*/
|
|
8
|
+
const HyperMeta = meta_store_1.Metadata.prefix('server');
|
|
5
9
|
/**
|
|
6
10
|
* Performs a deep merge of metadata from source to target using reflect-metadata.
|
|
7
11
|
* @param target Object where the metadata will be merged.
|
|
@@ -10,13 +14,32 @@ require("reflect-metadata");
|
|
|
10
14
|
* @param options Merge options (e.g., array handling).
|
|
11
15
|
*/
|
|
12
16
|
function mergeMetadata(target, source, keys, options = {}) {
|
|
17
|
+
const sourceRoot = meta_store_1.Metadata.get(source);
|
|
18
|
+
const targetRoot = meta_store_1.Metadata.get(target);
|
|
19
|
+
const sourceServer = sourceRoot.server;
|
|
20
|
+
if (!sourceServer)
|
|
21
|
+
return;
|
|
22
|
+
const sourceCommon = sourceServer.common;
|
|
23
|
+
const targetServer = targetRoot.server || (targetRoot.server = { common: { type: 'controller' }, methods: {} });
|
|
24
|
+
const targetCommon = targetServer.common;
|
|
13
25
|
for (let i = 0; i < keys.length; i++) {
|
|
14
26
|
const key = keys[i];
|
|
15
|
-
const
|
|
16
|
-
if (
|
|
27
|
+
const value = sourceCommon[key]; // Narrowing complex union access
|
|
28
|
+
if (value === undefined)
|
|
17
29
|
continue;
|
|
18
|
-
const
|
|
19
|
-
|
|
30
|
+
const current = targetCommon[key];
|
|
31
|
+
const merged = current === undefined
|
|
32
|
+
? value
|
|
33
|
+
: deepMerge(current, value, options);
|
|
34
|
+
targetCommon[key] = merged;
|
|
35
|
+
}
|
|
36
|
+
// Also merge methods if they exist to preserve routes/params when extending
|
|
37
|
+
if (sourceServer.methods) {
|
|
38
|
+
const sourceMethods = sourceServer.methods;
|
|
39
|
+
const targetMethods = targetServer.methods || (targetServer.methods = {});
|
|
40
|
+
Object.keys(sourceMethods).forEach(methodKey => {
|
|
41
|
+
targetMethods[methodKey] = deepMerge(targetMethods[methodKey] || {}, sourceMethods[methodKey], options);
|
|
42
|
+
});
|
|
20
43
|
}
|
|
21
44
|
}
|
|
22
45
|
function deepMerge(target, source, options) {
|
|
@@ -29,10 +52,11 @@ function deepMerge(target, source, options) {
|
|
|
29
52
|
}
|
|
30
53
|
if (source && typeof source === "object" && target && typeof target === "object") {
|
|
31
54
|
const result = Object.assign({}, target);
|
|
32
|
-
const
|
|
55
|
+
const sourceObj = source;
|
|
56
|
+
const sourceKeys = Object.keys(sourceObj);
|
|
33
57
|
for (let i = 0; i < sourceKeys.length; i++) {
|
|
34
58
|
const k = sourceKeys[i];
|
|
35
|
-
result[k] = deepMerge(result[k],
|
|
59
|
+
result[k] = deepMerge(result[k], sourceObj[k], options);
|
|
36
60
|
}
|
|
37
61
|
return result;
|
|
38
62
|
}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
1
2
|
import { Server } from "hyper-express";
|
|
2
|
-
import { HyperAppMetadata, LogSpaces } from "../../decorators/types";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* @param options
|
|
7
|
-
* @param Target
|
|
8
|
-
* @param app
|
|
9
|
-
* @param log
|
|
10
|
-
*/
|
|
11
|
-
export declare function prepareApplication(options: HyperAppMetadata, Target: any, app: Server, log: (space: keyof LogSpaces, message: string) => void): Promise<void>;
|
|
3
|
+
import { Constructor, HyperAppMetadata, LogSpaces } from "../../lib/server/decorators/types";
|
|
4
|
+
export declare function registerInstanceHandlers(instance: object, target: Constructor, namespace: string, log: (space: keyof LogSpaces, message: string) => void): Promise<void>;
|
|
5
|
+
export declare function prepareApplication(options: HyperAppMetadata, Target: Constructor, log: (space: keyof LogSpaces, message: string) => void): Promise<Server>;
|