@decaf-ts/decoration 0.8.3 → 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.
Files changed (65) hide show
  1. package/README.md +1 -1
  2. package/dist/decoration.cjs +1 -1
  3. package/dist/decoration.cjs.map +1 -1
  4. package/dist/decoration.js +1 -1
  5. package/dist/decoration.js.map +1 -1
  6. package/lib/decoration/Decoration.cjs +42 -16
  7. package/lib/decoration/Decoration.d.ts +1 -0
  8. package/lib/decoration/Decoration.js.map +1 -1
  9. package/lib/decoration/flavourRegistry.cjs +29 -0
  10. package/lib/decoration/flavourRegistry.d.ts +9 -0
  11. package/lib/decoration/flavourRegistry.js.map +1 -0
  12. package/lib/decoration/index.cjs +2 -0
  13. package/lib/decoration/index.d.ts +2 -0
  14. package/lib/decoration/index.js.map +1 -1
  15. package/lib/decoration/metadataLink.cjs +26 -0
  16. package/lib/decoration/metadataLink.d.ts +8 -0
  17. package/lib/decoration/metadataLink.js.map +1 -0
  18. package/lib/decorators.cjs +17 -197
  19. package/lib/decorators.d.ts +1 -107
  20. package/lib/decorators.js.map +1 -1
  21. package/lib/esm/decoration/Decoration.d.ts +1 -0
  22. package/lib/esm/decoration/Decoration.js +40 -14
  23. package/lib/esm/decoration/Decoration.js.map +1 -1
  24. package/lib/esm/decoration/flavourRegistry.d.ts +9 -0
  25. package/lib/esm/decoration/flavourRegistry.js +26 -0
  26. package/lib/esm/decoration/flavourRegistry.js.map +1 -0
  27. package/lib/esm/decoration/index.d.ts +2 -0
  28. package/lib/esm/decoration/index.js +2 -0
  29. package/lib/esm/decoration/index.js.map +1 -1
  30. package/lib/esm/decoration/metadataLink.d.ts +8 -0
  31. package/lib/esm/decoration/metadataLink.js +20 -0
  32. package/lib/esm/decoration/metadataLink.js.map +1 -0
  33. package/lib/esm/decorators.d.ts +1 -107
  34. package/lib/esm/decorators.js +6 -187
  35. package/lib/esm/decorators.js.map +1 -1
  36. package/lib/esm/index.d.ts +1 -0
  37. package/lib/esm/index.js +1 -0
  38. package/lib/esm/index.js.map +1 -1
  39. package/lib/esm/metadata/Metadata.d.ts +5 -0
  40. package/lib/esm/metadata/Metadata.js +34 -4
  41. package/lib/esm/metadata/Metadata.js.map +1 -1
  42. package/lib/esm/shared/core.d.ts +107 -0
  43. package/lib/esm/shared/core.js +184 -0
  44. package/lib/esm/shared/core.js.map +1 -0
  45. package/lib/esm/shared/index.d.ts +1 -0
  46. package/lib/esm/shared/index.js +2 -0
  47. package/lib/esm/shared/index.js.map +1 -0
  48. package/lib/esm/version.d.ts +1 -1
  49. package/lib/esm/version.js +1 -1
  50. package/lib/index.cjs +1 -0
  51. package/lib/index.d.ts +1 -0
  52. package/lib/index.js.map +1 -1
  53. package/lib/metadata/Metadata.cjs +34 -4
  54. package/lib/metadata/Metadata.d.ts +5 -0
  55. package/lib/metadata/Metadata.js.map +1 -1
  56. package/lib/shared/core.cjs +195 -0
  57. package/lib/shared/core.d.ts +107 -0
  58. package/lib/shared/core.js.map +1 -0
  59. package/lib/shared/index.cjs +18 -0
  60. package/lib/shared/index.d.ts +1 -0
  61. package/lib/shared/index.js.map +1 -0
  62. package/lib/version.cjs +1 -1
  63. package/lib/version.d.ts +1 -1
  64. package/package.json +3 -2
  65. package/workdocs/assets/slogans.json +198 -0
@@ -1,54 +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
- * @description Assigns arbitrary metadata to a target using a string key.
6
- * @summary Decorator factory that stores a key/value pair in the central metadata store for the provided class or member.
7
- * @param {string} key Metadata key to associate with the target.
8
- * @param {any} value Metadata value to store under the given key.
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,
15
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
- descriptor) {
17
- let targetModel = model;
18
- if (prop) {
19
- targetModel =
20
- typeof model === "function"
21
- ? model
22
- : model.constructor || model;
23
- }
24
- Metadata.set(targetModel, key, value);
25
- };
26
- }
27
- export function metadataArray(key, ...data) {
28
- return function metadataArray(target, propertyKey, descriptor) {
29
- const existingData = Metadata.get(target, key) || [];
30
- const metaKey = propertyKey ? Metadata.key(key, propertyKey) : key;
31
- const arr = [metadata(metaKey, [...new Set([...existingData, ...data])])];
32
- return apply(...arr)(target, propertyKey, descriptor);
33
- };
34
- }
35
- function manageFlavourRMetadata(object, flavour) {
36
- const canonical = Metadata.constr(object);
37
- const flav = Metadata["innerGet"](Metadata.Symbol(object), DecorationKeys.FLAVOUR) || Decoration.defaultFlavour;
38
- const old = Metadata["innerGet"](Symbol.for(DecorationKeys.FLAVOUR), flav) || [];
39
- const filtered = old.filter((o) => {
40
- return Metadata.constr(o) !== canonical;
41
- });
42
- Metadata.set(DecorationKeys.FLAVOUR, flav, filtered);
43
- const current = new Set(Metadata["innerGet"](Symbol.for(DecorationKeys.FLAVOUR), flavour) || []);
44
- current.add(object);
45
- Metadata.set(DecorationKeys.FLAVOUR, flavour, [...current]);
46
- }
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";
47
7
  export function uses(flavour) {
48
8
  return (object) => {
49
- const constr = Metadata.constr(object);
50
- manageFlavourRMetadata(object, flavour);
51
- Metadata.set(constr, DecorationKeys.FLAVOUR, flavour);
9
+ const constr = assignFlavour(object, flavour, Decoration.defaultFlavour);
52
10
  if (flavour !== Decoration.defaultFlavour) {
53
11
  Decoration["resolvePendingDecorators"](constr, flavour);
54
12
  }
@@ -72,145 +30,6 @@ export function uses(flavour) {
72
30
  return object;
73
31
  };
74
32
  }
75
- /**
76
- * @description Captures and stores a property's design type.
77
- * @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
78
- * @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
79
- * @function prop
80
- * @category Property Decorators
81
- */
82
- export function prop() {
83
- // function innerProp() {
84
- return function innerProp(model, prop) {
85
- const metadataTarget = typeof model === "function" ? model.prototype : model;
86
- const designType = Reflect.getOwnMetadata(DecorationKeys.DESIGN_TYPE, metadataTarget, prop);
87
- return metadata(Metadata.key(DecorationKeys.PROPERTIES, prop), designType)(model, prop);
88
- };
89
- }
90
- /**
91
- * @description Captures a single parameter type for the decorated method.
92
- * @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
93
- * @return {ParameterDecorator} Decorator that records the parameter type when applied.
94
- * @function param
95
- * @category Parameter Decorators
96
- * @mermaid
97
- * sequenceDiagram
98
- * participant U as User Code
99
- * participant P as param()
100
- * participant M as Metadata
101
- * U->>P: param()(target, key, index)
102
- * P->>U: method()(target, key, descriptor)
103
- * P->>M: params(constructor, key)
104
- * M-->>P: parameter constructors[]
105
- * P->>M: set(methods.key.index, constructor)
106
- * P-->>U: parameter recorded
107
- */
108
- export function param() {
109
- return function param(model, prop, index) {
110
- if (!prop)
111
- throw new Error(`The @param decorator can only be applied to methods`);
112
- method()(model, prop, Object.getOwnPropertyDescriptor(model, prop));
113
- const paramTpes = Metadata.params(model.constructor, prop);
114
- if (!paramTpes)
115
- throw new Error(`Missing parameter types for ${String(prop)}`);
116
- if (index >= paramTpes.length)
117
- throw new Error(`Parameter index ${index} out of range for ${String(prop)}`);
118
- metadata(Metadata.key(DecorationKeys.METHODS, prop, index.toString()), paramTpes[index])(model, prop);
119
- };
120
- }
121
- /**
122
- * @description Extends a parameter decorator with additional metadata.
123
- * @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
124
- * @param {string} key Metadata key to associate with the parameter.
125
- * @param {any} value Metadata value persisted under the given key.
126
- * @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
127
- * @function paramMetadata
128
- * @category Parameter Decorators
129
- */
130
- export function paramMetadata(key, value) {
131
- return function paramMetadata(target, prop, index) {
132
- return apply(param(), metadata(Metadata.key(DecorationKeys.METHODS, prop, key), value))(target, prop, index);
133
- };
134
- }
135
- /**
136
- * @description Records method design-time metadata.
137
- * @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.
138
- * @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
139
- * @function method
140
- * @mermaid
141
- * sequenceDiagram
142
- * participant U as User Code
143
- * participant F as method()
144
- * participant M as Metadata
145
- * U->>F: method()(target, key, descriptor)
146
- * F->>U: Reflect.getOwnMetadata(design:paramtypes)
147
- * F->>U: Reflect.getOwnMetadata(design:returntype)
148
- * F->>M: set(methods.key.design:paramtypes, params)
149
- * F->>M: set(methods.key.design:returntype, returnType)
150
- * F-->>U: decorated function
151
- * @category Method Decorators
152
- */
153
- export function method() {
154
- return function method(obj, prop, descriptor) {
155
- const designParams = Reflect.getOwnMetadata(DecorationKeys.DESIGN_PARAMS, obj, prop);
156
- const designReturn = Reflect.getOwnMetadata(DecorationKeys.DESIGN_RETURN, obj, prop);
157
- 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);
158
- };
159
- }
160
- /**
161
- * @description Decorator factory that applies multiple decorators to a single target.
162
- * @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
163
- * @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
164
- * @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
165
- * @function apply
166
- * @mermaid
167
- * sequenceDiagram
168
- * participant U as User Code
169
- * participant A as apply(...decorators)
170
- * participant D as Decorator
171
- * U->>A: get decorator(...decorators)
172
- * A->>U: returns (target, key?, desc?) => void
173
- * U->>A: invoke on target
174
- * loop for each decorator
175
- * A->>D: invoke appropriate decorator type
176
- * end
177
- * @category Decorators
178
- */
179
- export function apply(...decorators) {
180
- return (target, propertyKey, descriptor) => {
181
- for (const decorator of decorators) {
182
- if (target instanceof Function && !descriptor) {
183
- decorator(target);
184
- continue;
185
- }
186
- decorator(target, propertyKey, descriptor);
187
- }
188
- };
189
- }
190
- /**
191
- * @description Creates a property metadata decorator.
192
- * @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
193
- * @param {string} key Metadata key to set for the property.
194
- * @param {any} value Metadata value to associate with the key.
195
- * @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
196
- * @function propMetadata
197
- * @category Property Decorators
198
- */
199
- export function propMetadata(key, value) {
200
- return apply(metadata(key, value), prop());
201
- }
202
- /**
203
- * @description Creates a method metadata decorator.
204
- * @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.
205
- * @param {string} key Metadata key to set for the property.
206
- * @param {any} value Metadata value to associate with the key.
207
- * @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
208
- * @function methodMetadata
209
- * @category Method Decorators
210
- */
211
- export function methodMetadata(key, value) {
212
- return apply(metadata(key, value), method());
213
- }
214
33
  /**
215
34
  * @description Attaches a human-readable description to a class or member.
216
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":"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"}
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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export * from "./decoration";
7
7
  export * from "./metadata";
8
+ export * from "./shared";
8
9
  export * from "./constants";
9
10
  export * from "./decorators";
10
11
  export * from "./version";
package/lib/esm/index.js CHANGED
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export * from "./decoration/index.js";
7
7
  export * from "./metadata/index.js";
8
+ export * from "./shared/index.js";
8
9
  export * from "./constants.js";
9
10
  export * from "./decorators.js";
10
11
  export * from "./version.js";
@@ -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"}
@@ -81,6 +81,11 @@ export declare class Metadata {
81
81
  * @summary Maps a Symbol derived from the constructor to its metadata object, enabling efficient lookup.
82
82
  */
83
83
  private static _metadata;
84
+ /**
85
+ * @description Property index store keyed by constructor symbol
86
+ * @summary Tracks property keys that have been decorated, independent of metadata bucket mutations.
87
+ */
88
+ private static _propertiesIndex;
84
89
  /**
85
90
  * @description Path delimiter for nested metadata keys
86
91
  * @summary Used by get/set operations to navigate nested structures, defaults to ObjectKeySplitter.
@@ -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 { Decoration } from "./../decoration/Decoration.js";
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.
@@ -109,6 +109,11 @@ export class Metadata {
109
109
  * @summary Maps a Symbol derived from the constructor to its metadata object, enabling efficient lookup.
110
110
  */
111
111
  static { this._metadata = {}; }
112
+ /**
113
+ * @description Property index store keyed by constructor symbol
114
+ * @summary Tracks property keys that have been decorated, independent of metadata bucket mutations.
115
+ */
116
+ static { this._propertiesIndex = {}; }
112
117
  /**
113
118
  * @description Path delimiter for nested metadata keys
114
119
  * @summary Used by get/set operations to navigate nested structures, defaults to ObjectKeySplitter.
@@ -137,7 +142,12 @@ export class Metadata {
137
142
  * @return {string[]|undefined} Array of property names or `undefined` if no metadata exists.
138
143
  */
139
144
  static properties(model) {
140
- const meta = this.get(model);
145
+ const resolvedModel = this.constr(model);
146
+ const symbol = this.Symbol(resolvedModel);
147
+ const indexed = this._propertiesIndex[symbol];
148
+ if (indexed && indexed.size)
149
+ return [...indexed];
150
+ const meta = this.get(resolvedModel);
141
151
  if (!meta || !meta.properties)
142
152
  return undefined;
143
153
  return Object.keys(meta.properties);
@@ -166,7 +176,7 @@ export class Metadata {
166
176
  return this.get(model, this.key(DecorationKeys.DESCRIPTION, (prop ? prop : DecorationKeys.CLASS)));
167
177
  }
168
178
  static flavourOf(model) {
169
- return Decoration["flavourResolver"](model);
179
+ return resolveFlavour(model);
170
180
  }
171
181
  static flavouredAs(flavour) {
172
182
  return this.innerGet(Symbol.for(DecorationKeys.FLAVOUR), flavour) || [];
@@ -267,7 +277,7 @@ export class Metadata {
267
277
  constructors
268
278
  .filter((c) => this.isDecorated(c) === DecorationState.PENDING)
269
279
  .forEach((constructor) => {
270
- Decoration["resolvePendingDecorators"](constructor);
280
+ resolvePendingDecorators(constructor);
271
281
  });
272
282
  if (constructors.length === 0) {
273
283
  const fallbackSymbol = Symbol.for(resolvedModel.toString());
@@ -428,6 +438,26 @@ export class Metadata {
428
438
  if (typeof model !== "string")
429
439
  model = this.constr(model) || model;
430
440
  const symbol = typeof model === "string" ? Symbol.for(model) : this.Symbol(model);
441
+ if (typeof key === "string") {
442
+ const propPrefix = `${DecorationKeys.PROPERTIES}${this.splitter}`;
443
+ if (key.startsWith(propPrefix)) {
444
+ const prop = key.slice(propPrefix.length);
445
+ if (prop.length) {
446
+ const set = this._propertiesIndex[symbol] || new Set();
447
+ set.add(prop);
448
+ this._propertiesIndex[symbol] = set;
449
+ }
450
+ }
451
+ else if (key === DecorationKeys.PROPERTIES &&
452
+ this.isPlainObject(value)) {
453
+ const set = this._propertiesIndex[symbol] || new Set();
454
+ Object.keys(value).forEach((prop) => {
455
+ set.add(prop);
456
+ });
457
+ if (set.size)
458
+ this._propertiesIndex[symbol] = set;
459
+ }
460
+ }
431
461
  this.innerSet(symbol, key, value);
432
462
  if (typeof model !== "string" &&
433
463
  Metadata.mirror &&
@@ -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;IAEnD;;;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,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,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,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;