@decaf-ts/decoration 0.8.4 → 0.8.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.
- package/README.md +1 -1
- package/dist/decoration.cjs +1 -1
- package/dist/decoration.cjs.map +1 -1
- package/dist/decoration.js +1 -1
- package/dist/decoration.js.map +1 -1
- package/lib/decoration/Decoration.cjs +36 -17
- package/lib/decoration/Decoration.d.ts +1 -0
- package/lib/decoration/Decoration.js.map +1 -1
- package/lib/decoration/flavourRegistry.cjs +29 -0
- package/lib/decoration/flavourRegistry.d.ts +9 -0
- package/lib/decoration/flavourRegistry.js.map +1 -0
- package/lib/decoration/index.cjs +2 -0
- package/lib/decoration/index.d.ts +2 -0
- package/lib/decoration/index.js.map +1 -1
- package/lib/decoration/metadataLink.cjs +26 -0
- package/lib/decoration/metadataLink.d.ts +8 -0
- package/lib/decoration/metadataLink.js.map +1 -0
- package/lib/decorators.cjs +17 -209
- package/lib/decorators.d.ts +1 -107
- package/lib/decorators.js.map +1 -1
- package/lib/esm/decoration/Decoration.d.ts +1 -0
- package/lib/esm/decoration/Decoration.js +33 -14
- package/lib/esm/decoration/Decoration.js.map +1 -1
- package/lib/esm/decoration/flavourRegistry.d.ts +9 -0
- package/lib/esm/decoration/flavourRegistry.js +26 -0
- package/lib/esm/decoration/flavourRegistry.js.map +1 -0
- package/lib/esm/decoration/index.d.ts +2 -0
- package/lib/esm/decoration/index.js +2 -0
- package/lib/esm/decoration/index.js.map +1 -1
- package/lib/esm/decoration/metadataLink.d.ts +8 -0
- package/lib/esm/decoration/metadataLink.js +20 -0
- package/lib/esm/decoration/metadataLink.js.map +1 -0
- package/lib/esm/decorators.d.ts +1 -107
- package/lib/esm/decorators.js +6 -199
- package/lib/esm/decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/metadata/Metadata.js +3 -3
- package/lib/esm/metadata/Metadata.js.map +1 -1
- package/lib/esm/shared/core.d.ts +107 -0
- package/lib/esm/shared/core.js +184 -0
- package/lib/esm/shared/core.js.map +1 -0
- package/lib/esm/shared/index.d.ts +1 -0
- package/lib/esm/shared/index.js +2 -0
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/index.cjs +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js.map +1 -1
- package/lib/metadata/Metadata.cjs +3 -3
- package/lib/metadata/Metadata.js.map +1 -1
- package/lib/shared/core.cjs +195 -0
- package/lib/shared/core.d.ts +107 -0
- package/lib/shared/core.js.map +1 -0
- package/lib/shared/index.cjs +18 -0
- package/lib/shared/index.d.ts +1 -0
- package/lib/shared/index.js.map +1 -0
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
package/lib/esm/decorators.js
CHANGED
|
@@ -1,62 +1,12 @@
|
|
|
1
|
-
import { Metadata } from "./metadata/Metadata.js";
|
|
2
|
-
import { DecorationKeys } from "./constants.js";
|
|
3
1
|
import { Decoration } from "./decoration/Decoration.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator that writes the metadata when applied.
|
|
10
|
-
* @function metadata
|
|
11
|
-
* @category Decorators
|
|
12
|
-
*/
|
|
13
|
-
export function metadata(key, value) {
|
|
14
|
-
return function metadata(model, prop, descriptor) {
|
|
15
|
-
let targetModel = model;
|
|
16
|
-
if (prop) {
|
|
17
|
-
targetModel =
|
|
18
|
-
typeof model === "function"
|
|
19
|
-
? model
|
|
20
|
-
: model.constructor || model;
|
|
21
|
-
if (typeof descriptor === "undefined") {
|
|
22
|
-
const metadataTarget = typeof model === "function" ? model.prototype : model;
|
|
23
|
-
const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
|
|
24
|
-
const propKey = Metadata.key(DecorationKeys.PROPERTIES, prop.toString());
|
|
25
|
-
const existing = Metadata.get(targetModel, propKey);
|
|
26
|
-
if (typeof designType !== "undefined" ||
|
|
27
|
-
typeof existing === "undefined") {
|
|
28
|
-
Metadata.set(targetModel, propKey, designType);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
Metadata.set(targetModel, key, value);
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
export function metadataArray(key, ...data) {
|
|
36
|
-
return function metadataArray(target, propertyKey, descriptor) {
|
|
37
|
-
const existingData = Metadata.get(target, key) || [];
|
|
38
|
-
const metaKey = propertyKey ? Metadata.key(key, propertyKey) : key;
|
|
39
|
-
const arr = [metadata(metaKey, [...new Set([...existingData, ...data])])];
|
|
40
|
-
return apply(...arr)(target, propertyKey, descriptor);
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
function manageFlavourRMetadata(object, flavour) {
|
|
44
|
-
const canonical = Metadata.constr(object);
|
|
45
|
-
const flav = Metadata["innerGet"](Metadata.Symbol(object), DecorationKeys.FLAVOUR) || Decoration.defaultFlavour;
|
|
46
|
-
const old = Metadata["innerGet"](Symbol.for(DecorationKeys.FLAVOUR), flav) || [];
|
|
47
|
-
const filtered = old.filter((o) => {
|
|
48
|
-
return Metadata.constr(o) !== canonical;
|
|
49
|
-
});
|
|
50
|
-
Metadata.set(DecorationKeys.FLAVOUR, flav, filtered);
|
|
51
|
-
const current = new Set(Metadata["innerGet"](Symbol.for(DecorationKeys.FLAVOUR), flavour) || []);
|
|
52
|
-
current.add(object);
|
|
53
|
-
Metadata.set(DecorationKeys.FLAVOUR, flavour, [...current]);
|
|
54
|
-
}
|
|
2
|
+
import { DecorationKeys } from "./constants.js";
|
|
3
|
+
import { Metadata } from "./metadata/Metadata.js";
|
|
4
|
+
import { assignFlavour } from "./decoration/flavourRegistry.js";
|
|
5
|
+
import { metadata } from "./shared/core.js";
|
|
6
|
+
export { metadata, metadataArray, param, paramMetadata, prop, method, apply, propMetadata, methodMetadata, } from "./shared/core.js";
|
|
55
7
|
export function uses(flavour) {
|
|
56
8
|
return (object) => {
|
|
57
|
-
const constr =
|
|
58
|
-
manageFlavourRMetadata(object, flavour);
|
|
59
|
-
Metadata.set(constr, DecorationKeys.FLAVOUR, flavour);
|
|
9
|
+
const constr = assignFlavour(object, flavour, Decoration.defaultFlavour);
|
|
60
10
|
if (flavour !== Decoration.defaultFlavour) {
|
|
61
11
|
Decoration["resolvePendingDecorators"](constr, flavour);
|
|
62
12
|
}
|
|
@@ -80,149 +30,6 @@ export function uses(flavour) {
|
|
|
80
30
|
return object;
|
|
81
31
|
};
|
|
82
32
|
}
|
|
83
|
-
/**
|
|
84
|
-
* @description Captures and stores a property's design type.
|
|
85
|
-
* @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
|
|
86
|
-
* @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
|
|
87
|
-
* @function prop
|
|
88
|
-
* @category Property Decorators
|
|
89
|
-
*/
|
|
90
|
-
export function prop() {
|
|
91
|
-
// function innerProp() {
|
|
92
|
-
return function innerProp(model, prop) {
|
|
93
|
-
const metadataTarget = typeof model === "function" ? model.prototype : model;
|
|
94
|
-
const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
|
|
95
|
-
return metadata(Metadata.key(DecorationKeys.PROPERTIES, prop), designType)(model, prop);
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* @description Captures a single parameter type for the decorated method.
|
|
100
|
-
* @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
|
|
101
|
-
* @return {ParameterDecorator} Decorator that records the parameter type when applied.
|
|
102
|
-
* @function param
|
|
103
|
-
* @category Parameter Decorators
|
|
104
|
-
* @mermaid
|
|
105
|
-
* sequenceDiagram
|
|
106
|
-
* participant U as User Code
|
|
107
|
-
* participant P as param()
|
|
108
|
-
* participant M as Metadata
|
|
109
|
-
* U->>P: param()(target, key, index)
|
|
110
|
-
* P->>U: method()(target, key, descriptor)
|
|
111
|
-
* P->>M: params(constructor, key)
|
|
112
|
-
* M-->>P: parameter constructors[]
|
|
113
|
-
* P->>M: set(methods.key.index, constructor)
|
|
114
|
-
* P-->>U: parameter recorded
|
|
115
|
-
*/
|
|
116
|
-
export function param() {
|
|
117
|
-
return function param(model, prop, index) {
|
|
118
|
-
if (!prop)
|
|
119
|
-
throw new Error(`The @param decorator can only be applied to methods`);
|
|
120
|
-
method()(model, prop, Object.getOwnPropertyDescriptor(model, prop));
|
|
121
|
-
const paramTpes = Metadata.params(model.constructor, prop);
|
|
122
|
-
if (!paramTpes)
|
|
123
|
-
throw new Error(`Missing parameter types for ${String(prop)}`);
|
|
124
|
-
if (index >= paramTpes.length)
|
|
125
|
-
throw new Error(`Parameter index ${index} out of range for ${String(prop)}`);
|
|
126
|
-
metadata(Metadata.key(DecorationKeys.METHODS, prop, index.toString()), paramTpes[index])(model, prop);
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* @description Extends a parameter decorator with additional metadata.
|
|
131
|
-
* @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
|
|
132
|
-
* @param {string} key Metadata key to associate with the parameter.
|
|
133
|
-
* @param {any} value Metadata value persisted under the given key.
|
|
134
|
-
* @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
|
|
135
|
-
* @function paramMetadata
|
|
136
|
-
* @category Parameter Decorators
|
|
137
|
-
*/
|
|
138
|
-
export function paramMetadata(key, value) {
|
|
139
|
-
return function paramMetadata(target, prop, index) {
|
|
140
|
-
return apply(param(), metadata(Metadata.key(DecorationKeys.METHODS, prop, key), value))(target, prop, index);
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* @description Records method design-time metadata.
|
|
145
|
-
* @summary Decorator factory that captures a method's reflected parameter and return types, storing them under the appropriate metadata keys so they can be inspected at runtime.
|
|
146
|
-
* @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
|
|
147
|
-
* @function method
|
|
148
|
-
* @mermaid
|
|
149
|
-
* sequenceDiagram
|
|
150
|
-
* participant U as User Code
|
|
151
|
-
* participant F as method()
|
|
152
|
-
* participant M as Metadata
|
|
153
|
-
* U->>F: method()(target, key, descriptor)
|
|
154
|
-
* F->>U: Reflect.getOwnMetadata(design:paramtypes)
|
|
155
|
-
* F->>U: Reflect.getOwnMetadata(design:returntype)
|
|
156
|
-
* F->>M: set(methods.key.design:paramtypes, params)
|
|
157
|
-
* F->>M: set(methods.key.design:returntype, returnType)
|
|
158
|
-
* F-->>U: decorated function
|
|
159
|
-
* @category Method Decorators
|
|
160
|
-
*/
|
|
161
|
-
export function method() {
|
|
162
|
-
return function method(obj, prop, descriptor) {
|
|
163
|
-
const designParams = Reflect.getOwnMetadata(DecorationKeys.DESIGN_PARAMS, obj, prop);
|
|
164
|
-
const designReturn = Reflect.getOwnMetadata(DecorationKeys.DESIGN_RETURN, obj, prop);
|
|
165
|
-
return apply(metadata(Metadata.key(DecorationKeys.METHODS, prop, DecorationKeys.DESIGN_PARAMS), designParams), metadata(Metadata.key(DecorationKeys.METHODS, prop, DecorationKeys.DESIGN_RETURN), designReturn))(obj, prop, descriptor);
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* @description Decorator factory that applies multiple decorators to a single target.
|
|
170
|
-
* @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
|
|
171
|
-
* @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
|
|
172
|
-
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
|
|
173
|
-
* @function apply
|
|
174
|
-
* @mermaid
|
|
175
|
-
* sequenceDiagram
|
|
176
|
-
* participant U as User Code
|
|
177
|
-
* participant A as apply(...decorators)
|
|
178
|
-
* participant D as Decorator
|
|
179
|
-
* U->>A: get decorator(...decorators)
|
|
180
|
-
* A->>U: returns (target, key?, desc?) => void
|
|
181
|
-
* U->>A: invoke on target
|
|
182
|
-
* loop for each decorator
|
|
183
|
-
* A->>D: invoke appropriate decorator type
|
|
184
|
-
* end
|
|
185
|
-
* @category Decorators
|
|
186
|
-
*/
|
|
187
|
-
export function apply(...decorators) {
|
|
188
|
-
return (target, propertyKey, descriptor) => {
|
|
189
|
-
for (const decorator of decorators) {
|
|
190
|
-
if (typeof propertyKey === "undefined") {
|
|
191
|
-
decorator(target);
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
if (typeof descriptor === "number") {
|
|
195
|
-
decorator(target, propertyKey, descriptor);
|
|
196
|
-
continue;
|
|
197
|
-
}
|
|
198
|
-
decorator(target, propertyKey, descriptor);
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* @description Creates a property metadata decorator.
|
|
204
|
-
* @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
|
|
205
|
-
* @param {string} key Metadata key to set for the property.
|
|
206
|
-
* @param {any} value Metadata value to associate with the key.
|
|
207
|
-
* @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
|
|
208
|
-
* @function propMetadata
|
|
209
|
-
* @category Property Decorators
|
|
210
|
-
*/
|
|
211
|
-
export function propMetadata(key, value) {
|
|
212
|
-
return apply(metadata(key, value), prop());
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* @description Creates a method metadata decorator.
|
|
216
|
-
* @summary Convenience factory that combines `metadata(key, value)` and `method()` to both set an arbitrary metadata key and record the method's design return and param types.
|
|
217
|
-
* @param {string} key Metadata key to set for the property.
|
|
218
|
-
* @param {any} value Metadata value to associate with the key.
|
|
219
|
-
* @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
|
|
220
|
-
* @function methodMetadata
|
|
221
|
-
* @category Method Decorators
|
|
222
|
-
*/
|
|
223
|
-
export function methodMetadata(key, value) {
|
|
224
|
-
return apply(metadata(key, value), method());
|
|
225
|
-
}
|
|
226
33
|
/**
|
|
227
34
|
* @description Attaches a human-readable description to a class or member.
|
|
228
35
|
* @summary Decorator factory that stores a textual description in the metadata store under the appropriate description key for a class or its property.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mCAAgC;AACrD,OAAO,EAAE,cAAc,EAAE,uBAAoB;AAC7C,OAAO,EAAE,QAAQ,EAAE,+BAA4B;AAC/C,OAAO,EAAE,aAAa,EAAE,wCAAqC;AAC7D,OAAO,EAAE,QAAQ,EAAE,yBAAsB;AAEzC,OAAO,EACL,QAAQ,EACR,aAAa,EACb,KAAK,EACL,aAAa,EACb,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,cAAc,GACf,yBAAsB;AAEvB,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;QAEzE,IAAI,OAAO,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;YAC1C,UAAU,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,QAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,QAAQ,GAAG,UAAU,CAAC,iBAAiB,CAAC;oBACtC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;oBACvC,CAAC,CAAC,SAAS,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;YACD,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;gBACvD,UAAU,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,SAAS,gBAAgB,CAAC,IAAY;QACpC,OAAO,SAAS,gBAAgB,CAC9B,QAAa,EACb,IAAU,EACV,UAAgB;YAEhB,OAAO,QAAQ,CACb,QAAQ,CAAC,GAAG,CACV,cAAc,CAAC,WAAW,EAC1B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAC9C,EACD,IAAI,CACL,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;SAC9C,MAAM,CAAC;QACN,SAAS,EAAE,gBAAgB;QAC3B,IAAI,EAAE,CAAC,IAAI,CAAC;KACb,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sCAA6B;AAC7B,oCAA2B;AAC3B,+BAA4B;AAC5B,gCAA6B;AAC7B,6BAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sCAA6B;AAC7B,oCAA2B;AAC3B,kCAAyB;AACzB,+BAA4B;AAC5B,gCAA6B;AAC7B,6BAA0B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DecorationKeys, DecorationState, DefaultFlavour, ObjectKeySplitter, } from "./../constants.js";
|
|
2
2
|
import "reflect-metadata";
|
|
3
3
|
import { PACKAGE_NAME, VERSION } from "./../version.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolvePendingDecorators, resolveFlavour, } from "./../decoration/metadataLink.js";
|
|
5
5
|
/**
|
|
6
6
|
* @description Retrieves a nested value from an object given a path.
|
|
7
7
|
* @summary Walks an object structure using a splitter-delimited path and returns the value at that location or `undefined` if any key is missing.
|
|
@@ -176,7 +176,7 @@ export class Metadata {
|
|
|
176
176
|
return this.get(model, this.key(DecorationKeys.DESCRIPTION, (prop ? prop : DecorationKeys.CLASS)));
|
|
177
177
|
}
|
|
178
178
|
static flavourOf(model) {
|
|
179
|
-
return
|
|
179
|
+
return resolveFlavour(model);
|
|
180
180
|
}
|
|
181
181
|
static flavouredAs(flavour) {
|
|
182
182
|
return this.innerGet(Symbol.for(DecorationKeys.FLAVOUR), flavour) || [];
|
|
@@ -277,7 +277,7 @@ export class Metadata {
|
|
|
277
277
|
constructors
|
|
278
278
|
.filter((c) => this.isDecorated(c) === DecorationState.PENDING)
|
|
279
279
|
.forEach((constructor) => {
|
|
280
|
-
|
|
280
|
+
resolvePendingDecorators(constructor);
|
|
281
281
|
});
|
|
282
282
|
if (constructors.length === 0) {
|
|
283
283
|
const fallbackSymbol = Symbol.for(resolvedModel.toString());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/metadata/Metadata.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,0BAAqB;AACtB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,wBAAmB;AACnD,OAAO,EAAE,UAAU,EAAE,sCAAiC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAwB,EACxB,IAAY,EACZ,WAAmB,iBAAiB;IAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,OAAO,GAAG,GAAG,CAAC;IAElB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IACE,OAAO,KAAK,IAAI;YAChB,OAAO,KAAK,SAAS;YACrB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;YAEnD,OAAO,SAAS,CAAC;QACnB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAwB,EACxB,IAAY,EACZ,KAAU,EACV,QAAQ,GAAG,iBAAiB;IAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,IAAI,OAAO,GAAqB,GAAG,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IACE,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI;YACrB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAChC,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,QAAQ;IACnB;;;OAGG;aACY,cAAS,GAAwB,EAAE,CAAC;IACnD;;;OAGG;aACY,qBAAgB,GAAgC,EAAE,CAAC;IAElE;;;OAGG;aACI,aAAQ,GAAG,iBAAiB,CAAC;IACpC;;;OAGG;aACI,YAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IACxC;;;OAGG;aACI,WAAM,GAAY,IAAI,CAAC;IAE9B,gBAAuB,CAAC;IAExB,MAAM,CAAC,MAAM,CAAI,GAAmB;QAClC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,gEAAgE;IAChE,8DAA8D;IAE9D;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,KAAkB;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,KAAkB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,WAAW,CAChB,KAAqB,EACrB,IAAc;QAEd,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,EACL,IAAI,CAAC,GAAG,CACN,cAAc,CAAC,WAAW,EAC1B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAW,CAC/C,CACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAkB;QACjC,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAkB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,QAA4B,CAAC;QACjC,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAClD,QAAyC,CAC1C,EAAE,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAChC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CACnD,CAAC;gBACF,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;wBAC/B,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC;wBAC/B,SAAS;oBACX,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAI,KAAqB,EAAE,IAAY;QAClD,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,CACrE,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CACV,KAAqB,EACrB,IAAY,EACZ,KAAa;QAEb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,qBAAqB,MAAM,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;QACJ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAI,KAAqB,EAAE,IAAY;QAClD,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,CACrE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,KAAkB,EAAE,IAAY;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAI,KAAqB;QACpC,OAAO,KAAK,CAAC,cAAc,CAAC,WAAiC,CAAC,IAAI,KAAK,CAAC;IAC1E,CAAC;IAuBD;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,CAAC,KAAkB,EAAE,GAAY;QACzC,IAAI,GAAG,KAAK,cAAc,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACjE,YAAY;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC;aAC9D,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACvB,UAAU,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACL,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,eAAe,GAAG,YAAY;aACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;aACpD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAE1C,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEnD,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,KAAkB;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CACxB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAC1B,cAAc,CAAC,UAAU,CAC1B,CAAC;QACF,OAAO,IAAI,IAAI,KAAK,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,GAAqB;QAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,OAAO,GAAG,KAAK,QAAQ;YACzB,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,uBAAuB,CAAC,KAAkB;QACvD,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,OAAO,GAAQ,KAAK,CAAC;QAEzB,OAAO,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,OAAsB,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM;gBAAE,MAAM;YAC/D,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,kBAAkB,CAAC,MAAa;QAC7C,IAAI,GAAG,GAAQ,SAAS,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAC1B,GAA0B,EAC1B,KAA4B,CAC7B,CAAC;gBACF,SAAS;YACX,CAAC;YAED,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,kBAAkB,CAAC,KAAU;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAA4B,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,iBAAiB,CAC9B,MAA2B,EAC3B,MAA2B;QAE3B,MAAM,MAAM,GAAwB,EAAE,GAAG,MAAM,EAAE,CAAC;QAElD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAEhC,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;oBAC3C,CAAC,CAAC,IAAI,CAAC,iBAAiB,CACpB,WAAkC,EAClC,WAAkC,CACnC;oBACH,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAkC,CAAC,CAAC;gBACnE,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,aAAa,CAAC,KAAU;QACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;IACtD,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,GAAoB,EAAE,KAAU;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAS,CAAC;QAChE,IAAI,OAAO,GAAG,KAAK,QAAQ;YACzB,OAAO,kBAAkB,CACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EACtB,GAAG,EACH,KAAK,EACL,IAAI,CAAC,QAAQ,CACd,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtC,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,CAAC,KAA2B,EAAE,GAAW,EAAE,KAAU;QAC7D,IAAI,GAAG,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE;gBACvD,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QACnE,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,GAAG,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClE,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;oBAC/D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACd,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;gBACtC,CAAC;YACH,CAAC;iBAAM,IACL,GAAG,KAAK,cAAc,CAAC,UAAU;gBACjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EACzB,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,KAA4B,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,IAAI;oBAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;YACpD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAClC,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,QAAQ,CAAC,MAAM;YACf,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAC1D,CAAC;YACD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE;gBACzC,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,OAAe,EAAE,OAAe;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,GAAG;YACL,MAAM,IAAI,KAAK,CACb,mBAAmB,OAAO,4BAA4B,OAAO,EAAE,CAChE,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS;QACd,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAc;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;;AAGH,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/metadata/Metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Assigns arbitrary metadata to a target using a string key.
|
|
3
|
+
* @summary Decorator factory that stores a key/value pair in the central metadata store for the provided class or member.
|
|
4
|
+
* @param {string} key Metadata key to associate with the target.
|
|
5
|
+
* @param {any} value Metadata value to store under the given key.
|
|
6
|
+
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator that writes the metadata when applied.
|
|
7
|
+
* @function metadata
|
|
8
|
+
* @category Decorators
|
|
9
|
+
*/
|
|
10
|
+
export declare function metadata(key: string, value: any): (model: any, prop?: any, descriptor?: PropertyDescriptor | number) => void;
|
|
11
|
+
export declare function metadataArray(key: string, ...data: any[]): (target: any, propertyKey?: any, descriptor?: any) => void;
|
|
12
|
+
/**
|
|
13
|
+
* @description Captures and stores a property's design type.
|
|
14
|
+
* @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
|
|
15
|
+
* @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
|
|
16
|
+
* @function prop
|
|
17
|
+
* @category Property Decorators
|
|
18
|
+
*/
|
|
19
|
+
export declare function prop(): (model: object, prop?: any) => void;
|
|
20
|
+
/**
|
|
21
|
+
* @description Captures a single parameter type for the decorated method.
|
|
22
|
+
* @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
|
|
23
|
+
* @return {ParameterDecorator} Decorator that records the parameter type when applied.
|
|
24
|
+
* @function param
|
|
25
|
+
* @category Parameter Decorators
|
|
26
|
+
* @mermaid
|
|
27
|
+
* sequenceDiagram
|
|
28
|
+
* participant U as User Code
|
|
29
|
+
* participant P as param()
|
|
30
|
+
* participant M as Metadata
|
|
31
|
+
* U->>P: param()(target, key, index)
|
|
32
|
+
* P->>U: method()(target, key, descriptor)
|
|
33
|
+
* P->>M: params(constructor, key)
|
|
34
|
+
* M-->>P: parameter constructors[]
|
|
35
|
+
* P->>M: set(methods.key.index, constructor)
|
|
36
|
+
* P-->>U: parameter recorded
|
|
37
|
+
*/
|
|
38
|
+
export declare function param(): (model: object, prop?: any, index?: number) => void;
|
|
39
|
+
/**
|
|
40
|
+
* @description Extends a parameter decorator with additional metadata.
|
|
41
|
+
* @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
|
|
42
|
+
* @param {string} key Metadata key to associate with the parameter.
|
|
43
|
+
* @param {any} value Metadata value persisted under the given key.
|
|
44
|
+
* @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
|
|
45
|
+
* @function paramMetadata
|
|
46
|
+
* @category Parameter Decorators
|
|
47
|
+
*/
|
|
48
|
+
export declare function paramMetadata(key: string, value: any): (target: any, prop: any, index: number) => void;
|
|
49
|
+
/**
|
|
50
|
+
* @description Records method design-time metadata.
|
|
51
|
+
* @summary Decorator factory that captures a method's reflected parameter and return types, storing them under the appropriate metadata keys so they can be inspected at runtime.
|
|
52
|
+
* @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
|
|
53
|
+
* @function method
|
|
54
|
+
* @mermaid
|
|
55
|
+
* sequenceDiagram
|
|
56
|
+
* participant U as User Code
|
|
57
|
+
* participant F as method()
|
|
58
|
+
* participant M as Metadata
|
|
59
|
+
* U->>F: method()(target, key, descriptor)
|
|
60
|
+
* F->>U: Reflect.getOwnMetadata(design:paramtypes)
|
|
61
|
+
* F->>U: Reflect.getOwnMetadata(design:returntype)
|
|
62
|
+
* F->>M: set(methods.key.design:paramtypes, params)
|
|
63
|
+
* F->>M: set(methods.key.design:returntype, returnType)
|
|
64
|
+
* F-->>U: decorated function
|
|
65
|
+
* @category Method Decorators
|
|
66
|
+
*/
|
|
67
|
+
export declare function method(): (obj: any, prop?: any, descriptor?: any) => void;
|
|
68
|
+
/**
|
|
69
|
+
* @description Decorator factory that applies multiple decorators to a single target.
|
|
70
|
+
* @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
|
|
71
|
+
* @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
|
|
72
|
+
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
|
|
73
|
+
* @function apply
|
|
74
|
+
* @mermaid
|
|
75
|
+
* sequenceDiagram
|
|
76
|
+
* participant U as User Code
|
|
77
|
+
* participant A as apply(...decorators)
|
|
78
|
+
* participant D as Decorator
|
|
79
|
+
* U->>A: get decorator(...decorators)
|
|
80
|
+
* A->>U: returns (target, key?, desc?) => void
|
|
81
|
+
* U->>A: invoke on target
|
|
82
|
+
* loop for each decorator
|
|
83
|
+
* A->>D: invoke appropriate decorator type
|
|
84
|
+
* end
|
|
85
|
+
* @category Decorators
|
|
86
|
+
*/
|
|
87
|
+
export declare function apply(...decorators: Array<ClassDecorator | MethodDecorator | PropertyDecorator | ParameterDecorator>): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
88
|
+
/**
|
|
89
|
+
* @description Creates a property metadata decorator.
|
|
90
|
+
* @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
|
|
91
|
+
* @param {string} key Metadata key to set for the property.
|
|
92
|
+
* @param {any} value Metadata value to associate with the key.
|
|
93
|
+
* @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
|
|
94
|
+
* @function propMetadata
|
|
95
|
+
* @category Property Decorators
|
|
96
|
+
*/
|
|
97
|
+
export declare function propMetadata(key: string, value: any): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
98
|
+
/**
|
|
99
|
+
* @description Creates a method metadata decorator.
|
|
100
|
+
* @summary Convenience factory that combines `metadata(key, value)` and `method()` to both set an arbitrary metadata key and record the method's design return and param types.
|
|
101
|
+
* @param {string} key Metadata key to set for the property.
|
|
102
|
+
* @param {any} value Metadata value to associate with the key.
|
|
103
|
+
* @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
|
|
104
|
+
* @function methodMetadata
|
|
105
|
+
* @category Method Decorators
|
|
106
|
+
*/
|
|
107
|
+
export declare function methodMetadata(key: string, value: any): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { Metadata } from "./../metadata/Metadata.js";
|
|
2
|
+
import { DecorationKeys } from "./../constants.js";
|
|
3
|
+
/**
|
|
4
|
+
* @description Assigns arbitrary metadata to a target using a string key.
|
|
5
|
+
* @summary Decorator factory that stores a key/value pair in the central metadata store for the provided class or member.
|
|
6
|
+
* @param {string} key Metadata key to associate with the target.
|
|
7
|
+
* @param {any} value Metadata value to store under the given key.
|
|
8
|
+
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator that writes the metadata when applied.
|
|
9
|
+
* @function metadata
|
|
10
|
+
* @category Decorators
|
|
11
|
+
*/
|
|
12
|
+
export function metadata(key, value) {
|
|
13
|
+
return function metadata(model, prop, descriptor) {
|
|
14
|
+
let targetModel = model;
|
|
15
|
+
if (prop) {
|
|
16
|
+
targetModel =
|
|
17
|
+
typeof model === "function"
|
|
18
|
+
? model
|
|
19
|
+
: model.constructor || model;
|
|
20
|
+
if (typeof descriptor === "undefined") {
|
|
21
|
+
const metadataTarget = typeof model === "function" ? model.prototype : model;
|
|
22
|
+
const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
|
|
23
|
+
const propKey = Metadata.key(DecorationKeys.PROPERTIES, prop.toString());
|
|
24
|
+
const existing = Metadata.get(targetModel, propKey);
|
|
25
|
+
if (typeof designType !== "undefined" ||
|
|
26
|
+
typeof existing === "undefined") {
|
|
27
|
+
Metadata.set(targetModel, propKey, designType);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
Metadata.set(targetModel, key, value);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function metadataArray(key, ...data) {
|
|
35
|
+
return function metadataArray(target, propertyKey, descriptor) {
|
|
36
|
+
const existingData = Metadata.get(target, key) || [];
|
|
37
|
+
const metaKey = propertyKey ? Metadata.key(key, propertyKey) : key;
|
|
38
|
+
const arr = [metadata(metaKey, [...new Set([...existingData, ...data])])];
|
|
39
|
+
return apply(...arr)(target, propertyKey, descriptor);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @description Captures and stores a property's design type.
|
|
44
|
+
* @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
|
|
45
|
+
* @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
|
|
46
|
+
* @function prop
|
|
47
|
+
* @category Property Decorators
|
|
48
|
+
*/
|
|
49
|
+
export function prop() {
|
|
50
|
+
return function innerProp(model, prop) {
|
|
51
|
+
const metadataTarget = typeof model === "function" ? model.prototype : model;
|
|
52
|
+
const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
|
|
53
|
+
return metadata(Metadata.key(DecorationKeys.PROPERTIES, prop), designType)(model, prop);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @description Captures a single parameter type for the decorated method.
|
|
58
|
+
* @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
|
|
59
|
+
* @return {ParameterDecorator} Decorator that records the parameter type when applied.
|
|
60
|
+
* @function param
|
|
61
|
+
* @category Parameter Decorators
|
|
62
|
+
* @mermaid
|
|
63
|
+
* sequenceDiagram
|
|
64
|
+
* participant U as User Code
|
|
65
|
+
* participant P as param()
|
|
66
|
+
* participant M as Metadata
|
|
67
|
+
* U->>P: param()(target, key, index)
|
|
68
|
+
* P->>U: method()(target, key, descriptor)
|
|
69
|
+
* P->>M: params(constructor, key)
|
|
70
|
+
* M-->>P: parameter constructors[]
|
|
71
|
+
* P->>M: set(methods.key.index, constructor)
|
|
72
|
+
* P-->>U: parameter recorded
|
|
73
|
+
*/
|
|
74
|
+
export function param() {
|
|
75
|
+
return function param(model, prop, index) {
|
|
76
|
+
if (!prop)
|
|
77
|
+
throw new Error(`The @param decorator can only be applied to methods`);
|
|
78
|
+
method()(model, prop, Object.getOwnPropertyDescriptor(model, prop));
|
|
79
|
+
const paramTpes = Metadata.params(model.constructor, prop);
|
|
80
|
+
if (!paramTpes)
|
|
81
|
+
throw new Error(`Missing parameter types for ${String(prop)}`);
|
|
82
|
+
if (index >= paramTpes.length)
|
|
83
|
+
throw new Error(`Parameter index ${index} out of range for ${String(prop)}`);
|
|
84
|
+
metadata(Metadata.key(DecorationKeys.METHODS, prop, index.toString()), paramTpes[index])(model, prop);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @description Extends a parameter decorator with additional metadata.
|
|
89
|
+
* @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
|
|
90
|
+
* @param {string} key Metadata key to associate with the parameter.
|
|
91
|
+
* @param {any} value Metadata value persisted under the given key.
|
|
92
|
+
* @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
|
|
93
|
+
* @function paramMetadata
|
|
94
|
+
* @category Parameter Decorators
|
|
95
|
+
*/
|
|
96
|
+
export function paramMetadata(key, value) {
|
|
97
|
+
return function paramMetadata(target, prop, index) {
|
|
98
|
+
return apply(param(), metadata(Metadata.key(DecorationKeys.METHODS, prop, key), value))(target, prop, index);
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @description Records method design-time metadata.
|
|
103
|
+
* @summary Decorator factory that captures a method's reflected parameter and return types, storing them under the appropriate metadata keys so they can be inspected at runtime.
|
|
104
|
+
* @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
|
|
105
|
+
* @function method
|
|
106
|
+
* @mermaid
|
|
107
|
+
* sequenceDiagram
|
|
108
|
+
* participant U as User Code
|
|
109
|
+
* participant F as method()
|
|
110
|
+
* participant M as Metadata
|
|
111
|
+
* U->>F: method()(target, key, descriptor)
|
|
112
|
+
* F->>U: Reflect.getOwnMetadata(design:paramtypes)
|
|
113
|
+
* F->>U: Reflect.getOwnMetadata(design:returntype)
|
|
114
|
+
* F->>M: set(methods.key.design:paramtypes, params)
|
|
115
|
+
* F->>M: set(methods.key.design:returntype, returnType)
|
|
116
|
+
* F-->>U: decorated function
|
|
117
|
+
* @category Method Decorators
|
|
118
|
+
*/
|
|
119
|
+
export function method() {
|
|
120
|
+
return function method(obj, prop, descriptor) {
|
|
121
|
+
const designParams = Reflect.getOwnMetadata(DecorationKeys.DESIGN_PARAMS, obj, prop);
|
|
122
|
+
const designReturn = Reflect.getOwnMetadata(DecorationKeys.DESIGN_RETURN, obj, prop);
|
|
123
|
+
return apply(metadata(Metadata.key(DecorationKeys.METHODS, prop, DecorationKeys.DESIGN_PARAMS), designParams), metadata(Metadata.key(DecorationKeys.METHODS, prop, DecorationKeys.DESIGN_RETURN), designReturn))(obj, prop, descriptor);
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* @description Decorator factory that applies multiple decorators to a single target.
|
|
128
|
+
* @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
|
|
129
|
+
* @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
|
|
130
|
+
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
|
|
131
|
+
* @function apply
|
|
132
|
+
* @mermaid
|
|
133
|
+
* sequenceDiagram
|
|
134
|
+
* participant U as User Code
|
|
135
|
+
* participant A as apply(...decorators)
|
|
136
|
+
* participant D as Decorator
|
|
137
|
+
* U->>A: get decorator(...decorators)
|
|
138
|
+
* A->>U: returns (target, key?, desc?) => void
|
|
139
|
+
* U->>A: invoke on target
|
|
140
|
+
* loop for each decorator
|
|
141
|
+
* A->>D: invoke appropriate decorator type
|
|
142
|
+
* end
|
|
143
|
+
* @category Decorators
|
|
144
|
+
*/
|
|
145
|
+
export function apply(...decorators) {
|
|
146
|
+
return (target, propertyKey, descriptor) => {
|
|
147
|
+
for (const decorator of decorators) {
|
|
148
|
+
if (typeof propertyKey === "undefined") {
|
|
149
|
+
decorator(target);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (typeof descriptor === "number") {
|
|
153
|
+
decorator(target, propertyKey, descriptor);
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
decorator(target, propertyKey, descriptor);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* @description Creates a property metadata decorator.
|
|
162
|
+
* @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
|
|
163
|
+
* @param {string} key Metadata key to set for the property.
|
|
164
|
+
* @param {any} value Metadata value to associate with the key.
|
|
165
|
+
* @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
|
|
166
|
+
* @function propMetadata
|
|
167
|
+
* @category Property Decorators
|
|
168
|
+
*/
|
|
169
|
+
export function propMetadata(key, value) {
|
|
170
|
+
return apply(metadata(key, value), prop());
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* @description Creates a method metadata decorator.
|
|
174
|
+
* @summary Convenience factory that combines `metadata(key, value)` and `method()` to both set an arbitrary metadata key and record the method's design return and param types.
|
|
175
|
+
* @param {string} key Metadata key to set for the property.
|
|
176
|
+
* @param {any} value Metadata value to associate with the key.
|
|
177
|
+
* @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
|
|
178
|
+
* @function methodMetadata
|
|
179
|
+
* @category Method Decorators
|
|
180
|
+
*/
|
|
181
|
+
export function methodMetadata(key, value) {
|
|
182
|
+
return apply(metadata(key, value), method());
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/shared/core.ts"],"names":[],"mappings":"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"}
|