@decaf-ts/decoration 0.0.6 → 0.0.8

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 (40) hide show
  1. package/README.md +200 -108
  2. package/dist/decoration.cjs +312 -165
  3. package/dist/decoration.esm.cjs +310 -166
  4. package/lib/constants.cjs +23 -30
  5. package/lib/constants.d.ts +22 -29
  6. package/lib/decoration/Decoration.cjs +55 -57
  7. package/lib/decoration/Decoration.d.ts +59 -61
  8. package/lib/decoration/index.cjs +5 -1
  9. package/lib/decoration/index.d.ts +4 -0
  10. package/lib/decoration/types.cjs +1 -1
  11. package/lib/decoration/types.d.ts +34 -49
  12. package/lib/decorators.cjs +103 -25
  13. package/lib/decorators.d.ts +82 -25
  14. package/lib/esm/constants.d.ts +22 -29
  15. package/lib/esm/constants.js +23 -30
  16. package/lib/esm/decoration/Decoration.d.ts +59 -61
  17. package/lib/esm/decoration/Decoration.js +55 -57
  18. package/lib/esm/decoration/index.d.ts +4 -0
  19. package/lib/esm/decoration/index.js +5 -1
  20. package/lib/esm/decoration/types.d.ts +34 -49
  21. package/lib/esm/decoration/types.js +1 -1
  22. package/lib/esm/decorators.d.ts +82 -25
  23. package/lib/esm/decorators.js +101 -26
  24. package/lib/esm/index.d.ts +4 -5
  25. package/lib/esm/index.js +5 -6
  26. package/lib/esm/metadata/Metadata.d.ts +108 -51
  27. package/lib/esm/metadata/Metadata.js +130 -51
  28. package/lib/esm/metadata/index.d.ts +4 -0
  29. package/lib/esm/metadata/index.js +5 -1
  30. package/lib/esm/metadata/types.d.ts +22 -6
  31. package/lib/esm/metadata/types.js +1 -1
  32. package/lib/index.cjs +5 -6
  33. package/lib/index.d.ts +4 -5
  34. package/lib/metadata/Metadata.cjs +130 -51
  35. package/lib/metadata/Metadata.d.ts +108 -51
  36. package/lib/metadata/index.cjs +5 -1
  37. package/lib/metadata/index.d.ts +4 -0
  38. package/lib/metadata/types.cjs +1 -1
  39. package/lib/metadata/types.d.ts +22 -6
  40. package/package.json +10 -3
@@ -1,6 +1,6 @@
1
1
  import { DecorationBuilderBuild, DecorationBuilderEnd, DecorationBuilderMid, DecorationBuilderStart, FlavourResolver, IDecorationBuilder } from "./types";
2
2
  /**
3
- * @description Union type covering supported decorator kinds
3
+ * @description Union type covering supported decorator kinds.
4
4
  * @summary Represents any of the standard TypeScript decorator signatures (class, property, or method), enabling flexible registration and application within the Decoration system.
5
5
  * @template T
6
6
  * @typeDef DecoratorTypes
@@ -8,7 +8,7 @@ import { DecorationBuilderBuild, DecorationBuilderEnd, DecorationBuilderMid, Dec
8
8
  */
9
9
  export type DecoratorTypes = ClassDecorator | PropertyDecorator | MethodDecorator;
10
10
  /**
11
- * @description Type definition for a decorator factory function
11
+ * @description Type definition for a decorator factory function.
12
12
  * @summary Represents a function that accepts arbitrary arguments and returns a concrete decorator function to be applied to a target.
13
13
  * @template A
14
14
  * @typeDef DecoratorFactory
@@ -16,11 +16,11 @@ export type DecoratorTypes = ClassDecorator | PropertyDecorator | MethodDecorato
16
16
  */
17
17
  export type DecoratorFactory = (...args: any[]) => DecoratorTypes;
18
18
  /**
19
- * @description Argument bundle for a decorator factory
19
+ * @description Argument bundle for a decorator factory.
20
20
  * @summary Object form used to defer decorator creation, carrying both the factory function and its argument list to be invoked later during application.
21
21
  * @typeDef DecoratorFactoryArgs
22
- * @property {DecoratorFactory} decorator The factory function that produces a decorator when invoked
23
- * @property {any[]} args list of arguments to pass to the decorator factory
22
+ * @property {DecoratorFactory} decorator Factory function that produces a decorator when invoked.
23
+ * @property {any[]} args List of arguments to pass to the decorator factory.
24
24
  * @memberOf module:decoration
25
25
  */
26
26
  export type DecoratorFactoryArgs = {
@@ -28,20 +28,17 @@ export type DecoratorFactoryArgs = {
28
28
  args: any[];
29
29
  };
30
30
  /**
31
- * @description Union that represents either a ready-to-apply decorator or a factory with arguments
31
+ * @description Union that represents either a ready-to-apply decorator or a factory with arguments.
32
32
  * @summary Allows registering decorators in two forms: as direct decorator functions or as deferred factories paired with their argument lists for later instantiation.
33
33
  * @typeDef DecoratorData
34
34
  * @memberOf module:decoration
35
35
  */
36
36
  export type DecoratorData = DecoratorTypes | DecoratorFactoryArgs;
37
37
  /**
38
- * @description A decorator management class that handles flavoured decorators
39
- * @summary The Decoration class provides a builder pattern for creating and managing decorators with different flavours.
40
- * It supports registering, extending, and applying decorators with context-aware flavour resolution.
41
- * The class implements a fluent interface for defining, extending, and applying decorators with different flavours,
42
- * allowing for framework-specific decorator implementations while maintaining a consistent API.
43
- * @template T Type of the decorator (ClassDecorator | PropertyDecorator | MethodDecorator)
44
- * @param {string} [flavour] Optional flavour parameter for the decorator context
38
+ * @description A decorator management class that handles flavoured decorators.
39
+ * @summary The Decoration class provides a builder pattern for creating and managing decorators with different flavours. It supports registering, extending, and applying decorators with context-aware flavour resolution, allowing framework-specific implementations while maintaining a consistent API.
40
+ * @template T Type of the decorator (ClassDecorator | PropertyDecorator | MethodDecorator).
41
+ * @param {string} [flavour=DefaultFlavour] Optional flavour parameter for the decorator context.
45
42
  * @class
46
43
  * @example
47
44
  * ```typescript
@@ -79,64 +76,63 @@ export type DecoratorData = DecoratorTypes | DecoratorFactoryArgs;
79
76
  export declare class Decoration implements IDecorationBuilder {
80
77
  private flavour;
81
78
  /**
82
- * @description Static map of registered decorators
83
- * @summary Stores all registered decorators organized by key and flavour
79
+ * @description Static map of registered decorators.
80
+ * @summary Stores all registered decorators organised by key and flavour.
84
81
  */
85
82
  private static decorators;
86
83
  /**
87
- * @description Function to resolve flavour from a target
88
- * @summary Resolver function that determines the appropriate flavour for a given target
84
+ * @description Function to resolve flavour from a target.
85
+ * @summary Resolver function that determines the appropriate flavour for a given target.
89
86
  */
90
87
  private static flavourResolver;
91
88
  /**
92
- * @description Set of decorators for the current context
89
+ * @description Set of decorators for the current context.
93
90
  */
94
91
  private decorators?;
95
92
  /**
96
- * @description Set of additional decorators
93
+ * @description Set of additional decorators.
97
94
  */
98
95
  private extras?;
99
96
  /**
100
- * @description Current decorator key
97
+ * @description Current decorator key.
101
98
  */
102
99
  private key?;
103
100
  constructor(flavour?: string);
104
101
  /**
105
- * @description Sets the key for the decoration builder
106
- * @summary Initializes a new decoration chain with the specified key
107
- * @param {string} key The identifier for the decorator
108
- * @return {DecorationBuilderMid} Builder instance for method chaining
102
+ * @description Sets the key for the decoration builder.
103
+ * @summary Initialises a new decoration chain with the specified key.
104
+ * @param {string} key Identifier for the decorator.
105
+ * @return {DecorationBuilderMid} Builder instance for method chaining.
109
106
  */
110
107
  for(key: string): DecorationBuilderMid;
111
108
  /**
112
- * @description Adds decorators to the current context
113
- * @summary Internal method to add decorators with addon support
114
- * @param {boolean} [addon=false] Whether the decorators are addons
115
- * @param decorators Array of decorators
116
- * @return {this} Current instance for chaining
109
+ * @description Adds decorators to the current context.
110
+ * @summary Internal method to add decorators with addon support.
111
+ * @param {boolean} [addon=false] Indicates whether the decorators are additive extras.
112
+ * @param {...DecoratorData} decorators Decorators to register for the configured key.
113
+ * @return {this} Current instance for chaining.
117
114
  */
118
115
  private decorate;
119
116
  /**
120
- * @description Defines the base decorators
121
- * @summary Sets the primary decorators for the current context
122
- * @param decorators Decorators to define
123
- * @return Builder instance for finishing the chain
117
+ * @description Defines the base decorators.
118
+ * @summary Sets the primary decorators for the current context.
119
+ * @param {...DecoratorData} decorators Decorators to define.
120
+ * @return {DecorationBuilderEnd} Builder instance for finishing the chain (also implements DecorationBuilderBuild).
124
121
  */
125
122
  define(...decorators: DecoratorData[]): DecorationBuilderEnd & DecorationBuilderBuild;
126
123
  /**
127
- * @description Extends existing decorators
128
- * @summary Adds additional decorators to the current context
129
- * @param decorators Additional decorators
130
- * @return {DecorationBuilderBuild} Builder instance for building the decorator
124
+ * @description Extends existing decorators.
125
+ * @summary Adds additional decorators to the current context.
126
+ * @param {...DecoratorData} decorators Additional decorators to register as addons.
127
+ * @return {DecorationBuilderBuild} Builder instance for building the decorator.
131
128
  */
132
129
  extend(...decorators: DecoratorData[]): DecorationBuilderBuild;
133
130
  /**
134
- * @description Factory that creates a context-aware decorator for a key/flavour
135
- * @summary Produces a decorator function bound to the provided key and flavour. The resulting decorator resolves the actual
136
- * decorators to apply at invocation time based on the target's resolved flavour and the registered base and extra decorators.
137
- * @param {string} key The decoration key used to look up registered decorators
138
- * @param {string} [f=DefaultFlavour] Optional explicit flavour to bind the factory to
139
- * @return {function(object, any, TypedPropertyDescriptor<any>): any} A decorator function that applies the resolved decorators
131
+ * @description Factory that creates a context-aware decorator for a key/flavour.
132
+ * @summary Produces a decorator function bound to the provided key and flavour. The resulting decorator resolves the actual decorators to apply at invocation time based on the target's resolved flavour and the registered base and extra decorators.
133
+ * @param {string} key Decoration key used to look up registered decorators.
134
+ * @param {string} [f=DefaultFlavour] Explicit flavour to bind the factory to.
135
+ * @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies the resolved decorators.
140
136
  * @mermaid
141
137
  * sequenceDiagram
142
138
  * participant U as User Code
@@ -159,38 +155,40 @@ export declare class Decoration implements IDecorationBuilder {
159
155
  descriptor: TypedPropertyDescriptor<any> | undefined;
160
156
  };
161
157
  /**
162
- * @description Creates the final decorator function
163
- * @summary Builds and returns the decorator factory function
164
- * @return {function(any, any?, TypedPropertyDescriptor?): any} The generated decorator function
158
+ * @description Creates the final decorator function.
159
+ * @summary Builds and returns the decorator factory function.
160
+ * @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Generated decorator function ready for application.
165
161
  */
166
162
  apply(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
167
163
  /**
168
- * @description Registers decorators for a specific key and flavour
169
- * @summary Internal method to store decorators in the static registry
170
- * @param {string} key Decorator key
171
- * @param {string} flavour Decorator flavour
172
- * @param [decorators] Primary decorators
173
- * @param [extras] Additional decorators
164
+ * @description Registers decorators for a specific key and flavour.
165
+ * @summary Internal method to store decorators in the static registry.
166
+ * @param {string} key Decorator key.
167
+ * @param {string} flavour Decorator flavour.
168
+ * @param {Set<DecoratorData>} [decorators] Primary decorators registered for the key.
169
+ * @param {Set<DecoratorData>} [extras] Additional decorators registered as flavour-specific addons.
170
+ * @return {void}
174
171
  */
175
172
  private static register;
176
173
  /**
177
- * @description Sets the global flavour resolver
178
- * @summary Configures the function used to determine decorator flavours
179
- * @param {FlavourResolver} resolver Function to resolve flavours
174
+ * @description Sets the global flavour resolver.
175
+ * @summary Configures the function used to determine decorator flavours.
176
+ * @param {FlavourResolver} resolver Function to resolve flavours.
177
+ * @return {void}
180
178
  */
181
179
  static setFlavourResolver(resolver: FlavourResolver): void;
182
180
  /**
183
- * @description Convenience static entry to start a decoration builder
181
+ * @description Convenience static entry to start a decoration builder.
184
182
  * @summary Creates a new Decoration instance and initiates the builder chain with the provided key.
185
- * @param {string} key The decoration key to configure
186
- * @return {DecorationBuilderMid} A builder instance for chaining definitions
183
+ * @param {string} key Decoration key to configure.
184
+ * @return {DecorationBuilderMid} Builder instance for chaining definitions.
187
185
  */
188
186
  static for(key: string): DecorationBuilderMid;
189
187
  /**
190
- * @description Starts a builder for a specific flavour
188
+ * @description Starts a builder for a specific flavour.
191
189
  * @summary Convenience method to begin a Decoration builder chain bound to the given flavour identifier, allowing registration of flavour-specific decorators.
192
- * @param {string} flavour The flavour name to bind to the builder
193
- * @return {DecorationBuilderStart} A builder start interface to continue configuration
190
+ * @param {string} flavour Flavour name to bind to the builder.
191
+ * @return {DecorationBuilderStart} Builder start interface to continue configuration.
194
192
  */
195
193
  static flavouredAs(flavour: string): DecorationBuilderStart;
196
194
  }
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
+ /**
3
+ * @description Public exports for the decoration builder subsystem
4
+ * @summary Re-exports the fluent builder class along with its companion types so consumers can import from a single entry point.
5
+ */
2
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
7
  if (k2 === undefined) k2 = k;
4
8
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -16,4 +20,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
20
  Object.defineProperty(exports, "__esModule", { value: true });
17
21
  __exportStar(require("./Decoration.cjs"), exports);
18
22
  __exportStar(require("./types.cjs"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQTZCO0FBQzdCLDhDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0RlY29yYXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsbURBQTZCO0FBQzdCLDhDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIFB1YmxpYyBleHBvcnRzIGZvciB0aGUgZGVjb3JhdGlvbiBidWlsZGVyIHN1YnN5c3RlbVxuICogQHN1bW1hcnkgUmUtZXhwb3J0cyB0aGUgZmx1ZW50IGJ1aWxkZXIgY2xhc3MgYWxvbmcgd2l0aCBpdHMgY29tcGFuaW9uIHR5cGVzIHNvIGNvbnN1bWVycyBjYW4gaW1wb3J0IGZyb20gYSBzaW5nbGUgZW50cnkgcG9pbnQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vRGVjb3JhdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbiJdfQ==
@@ -1,2 +1,6 @@
1
+ /**
2
+ * @description Public exports for the decoration builder subsystem
3
+ * @summary Re-exports the fluent builder class along with its companion types so consumers can import from a single entry point.
4
+ */
1
5
  export * from "./Decoration";
2
6
  export * from "./types";
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdGlvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjb3JhdG9yRGF0YSB9IGZyb20gXCIuL0RlY29yYXRpb25cIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgZmluYWwgc3RhZ2Ugb2YgdGhlIGRlY29yYXRpb24gYnVpbGRlciBwYXR0ZXJuXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIHRoZSBidWlsZCBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyLCBwcm92aWRpbmcgdGhlIGFiaWxpdHkgdG8gYXBwbHlcbiAqIHRoZSBjb25maWd1cmVkIGRlY29yYXRvciB0byBhIHRhcmdldC4gVGhpcyBpcyB0aGUgZmluYWwgc3RhZ2UgaW4gdGhlIGJ1aWxkZXIgY2hhaW4uXG4gKlxuICogQGludGVyZmFjZSBEZWNvcmF0aW9uQnVpbGRlckJ1aWxkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjb3JhdGlvbkJ1aWxkZXJCdWlsZCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbmQgcmV0dXJucyB0aGUgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gICAqIEBzdW1tYXJ5IEZpbmFsaXplcyB0aGUgYnVpbGRlciBwcm9jZXNzIGFuZCByZXR1cm5zIGEgZGVjb3JhdG9yIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gYSBjbGFzcyxcbiAgICogcHJvcGVydHksIG9yIG1ldGhvZC5cbiAgICpcbiAgICogQHJldHVybnMge2Z1bmN0aW9ufSBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIGEgdGFyZ2V0XG4gICAqL1xuICBhcHBseSgpOiAoXG4gICAgdGFyZ2V0OiBhbnksXG4gICAgcHJvcGVydHlLZXk/OiBhbnksXG4gICAgZGVzY3JpcHRvcj86IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPGFueT5cbiAgKSA9PiBhbnk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIGV4dGVuc2lvbiBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyIHBhdHRlcm5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgdGhlIGV4dGVuc2lvbiBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyLCBwcm92aWRpbmcgdGhlIGFiaWxpdHkgdG8gYWRkXG4gKiBhZGRpdGlvbmFsIGRlY29yYXRvcnMgdG8gdGhlIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQGludGVyZmFjZSBEZWNvcmF0aW9uQnVpbGRlckVuZFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjb3JhdGlvbkJ1aWxkZXJFbmQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFkZHMgYWRkaXRpb25hbCBkZWNvcmF0b3JzIHRvIHRoZSBleGlzdGluZyBjb25maWd1cmF0aW9uXG4gICAqIEBzdW1tYXJ5IEV4dGVuZHMgdGhlIGN1cnJlbnQgZGVjb3JhdG9yIGNvbmZpZ3VyYXRpb24gd2l0aCBhZGRpdGlvbmFsIGRlY29yYXRvcnMuXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciBhZGRpbmcgYmVoYXZpb3IgdG8gZXhpc3RpbmcgZGVjb3JhdG9ycy5cbiAgICpcbiAgICogQHBhcmFtIHsuLi4oQ2xhc3NEZWNvcmF0b3J8UHJvcGVydHlEZWNvcmF0b3J8TWV0aG9kRGVjb3JhdG9yKX0gZGVjb3JhdG9ycyAtIEFkZGl0aW9uYWwgZGVjb3JhdG9ycyB0byBhZGRcbiAgICogQHJldHVybnMge0RlY29yYXRpb25CdWlsZGVyQnVpbGR9IFRoZSBidWlsZCBzdGFnZSBvZiB0aGUgYnVpbGRlciBwYXR0ZXJuXG4gICAqL1xuICBleHRlbmQoLi4uZGVjb3JhdG9yczogRGVjb3JhdG9yRGF0YVtdKTogRGVjb3JhdGlvbkJ1aWxkZXJCdWlsZDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgbWlkZGxlIHN0YWdlIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIgcGF0dGVyblxuICogQHN1bW1hcnkgUmVwcmVzZW50cyB0aGUgbWlkZGxlIHN0YWdlIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIsIGV4dGVuZGluZyB0aGUgZW5kIHN0YWdlXG4gKiBhbmQgcHJvdmlkaW5nIHRoZSBhYmlsaXR5IHRvIGRlZmluZSB0aGUgcHJpbWFyeSBkZWNvcmF0b3JzIGZvciB0aGUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyTWlkXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNvcmF0aW9uQnVpbGRlck1pZCBleHRlbmRzIERlY29yYXRpb25CdWlsZGVyRW5kIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBwcmltYXJ5IGRlY29yYXRvcnMgZm9yIHRoZSBjb25maWd1cmF0aW9uXG4gICAqIEBzdW1tYXJ5IFNldHMgdGhlIG1haW4gZGVjb3JhdG9ycyBmb3IgdGhlIGN1cnJlbnQgY29udGV4dC4gVGhpcyBpcyB0eXBpY2FsbHlcbiAgICogY2FsbGVkIGFmdGVyIHNwZWNpZnlpbmcgdGhlIGtleSB3aXRoIHRoZSAnZm9yJyBtZXRob2QuXG4gICAqL1xuICBkZWZpbmUoXG4gICAgLi4uZGVjb3JhdG9yczogRGVjb3JhdG9yRGF0YVtdXG4gICk6IERlY29yYXRpb25CdWlsZGVyRW5kICYgRGVjb3JhdGlvbkJ1aWxkZXJCdWlsZDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgc3RhcnRpbmcgc3RhZ2Ugb2YgdGhlIGRlY29yYXRpb24gYnVpbGRlciBwYXR0ZXJuXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIHRoZSBpbml0aWFsIHN0YWdlIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIsIHByb3ZpZGluZyB0aGUgZW50cnkgcG9pbnRcbiAqIGZvciB0aGUgYnVpbGRlciBwYXR0ZXJuIGJ5IHNwZWNpZnlpbmcgdGhlIGtleSBmb3IgdGhlIGRlY29yYXRvci5cbiAqXG4gKiBAaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyU3RhcnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyU3RhcnQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFNwZWNpZmllcyB0aGUga2V5IGZvciB0aGUgZGVjb3JhdG9yXG4gICAqIEBzdW1tYXJ5IFNldHMgdGhlIGlkZW50aWZpZXIgZm9yIHRoZSBkZWNvcmF0b3IsIHdoaWNoIGlzIHVzZWQgdG8gcmVnaXN0ZXIgYW5kIHJldHJpZXZlXG4gICAqIHRoZSBkZWNvcmF0b3IgaW4gdGhlIGRlY29yYXRpb24gcmVnaXN0cnkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgZGVjb3JhdG9yXG4gICAqIEByZXR1cm4ge0RlY29yYXRpb25CdWlsZGVyTWlkfSBUaGUgbWlkZGxlIHN0YWdlIG9mIHRoZSBidWlsZGVyIHBhdHRlcm5cbiAgICovXG4gIGZvcihpZDogc3RyaW5nKTogRGVjb3JhdGlvbkJ1aWxkZXJNaWQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXByZWhlbnNpdmUgaW50ZXJmYWNlIGZvciB0aGUgY29tcGxldGUgZGVjb3JhdGlvbiBidWlsZGVyIHBhdHRlcm5cbiAqIEBzdW1tYXJ5IEEgdW5pZmllZCBpbnRlcmZhY2UgdGhhdCBjb21iaW5lcyBhbGwgc3RhZ2VzIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIgcGF0dGVybixcbiAqIHByb3ZpZGluZyBhIGNvbXBsZXRlIEFQSSBmb3IgY3JlYXRpbmcsIGNvbmZpZ3VyaW5nLCBhbmQgYXBwbHlpbmcgZGVjb3JhdG9ycy5cbiAqIFRoaXMgaW50ZXJmYWNlIGlzIGltcGxlbWVudGVkIGJ5IHRoZSBEZWNvcmF0aW9uIGNsYXNzLlxuICpcbiAqIEBpbnRlcmZhY2UgSURlY29yYXRpb25CdWlsZGVyXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGVjb3JhdGlvbkJ1aWxkZXJcbiAgZXh0ZW5kcyBEZWNvcmF0aW9uQnVpbGRlclN0YXJ0LFxuICAgIERlY29yYXRpb25CdWlsZGVyTWlkLFxuICAgIERlY29yYXRpb25CdWlsZGVyRW5kLFxuICAgIERlY29yYXRpb25CdWlsZGVyQnVpbGQge31cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHlwZSBkZWZpbml0aW9uIGZvciBhIGZ1bmN0aW9uIHRoYXQgcmVzb2x2ZXMgdGhlIGZsYXZvdXIgZm9yIGEgdGFyZ2V0XG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgZnVuY3Rpb24gdHlwZSB0aGF0IGRldGVybWluZXMgdGhlIGFwcHJvcHJpYXRlIGZsYXZvdXIgZm9yIGEgZ2l2ZW4gdGFyZ2V0IG9iamVjdC5cbiAqIFRoaXMgaXMgdXNlZCBieSB0aGUgRGVjb3JhdGlvbiBjbGFzcyB0byByZXNvbHZlIHdoaWNoIGZsYXZvdXIgb2YgZGVjb3JhdG9yIHRvIGFwcGx5IGJhc2VkIG9uIHRoZSB0YXJnZXQuXG4gKlxuICogQHR5cGVkZWYge2Z1bmN0aW9uKG9iamVjdCk6IHN0cmluZ30gRmxhdm91clJlc29sdmVyXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0IHRvIHJlc29sdmUgdGhlIGZsYXZvdXIgZm9yXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSByZXNvbHZlZCBmbGF2b3VyIGlkZW50aWZpZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgdHlwZSBGbGF2b3VyUmVzb2x2ZXIgPSAodGFyZ2V0OiBvYmplY3QpID0+IHN0cmluZztcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdGlvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjb3JhdG9yRGF0YSB9IGZyb20gXCIuL0RlY29yYXRpb25cIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgZmluYWwgc3RhZ2Ugb2YgdGhlIGRlY29yYXRpb24gYnVpbGRlciBwYXR0ZXJuLlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyB0aGUgYnVpbGQgc3RhZ2Ugb2YgdGhlIGRlY29yYXRpb24gYnVpbGRlciwgcHJvdmlkaW5nIHRoZSBhYmlsaXR5IHRvIGFwcGx5IHRoZSBjb25maWd1cmVkIGRlY29yYXRvciB0byBhIHRhcmdldC4gVGhpcyBpcyB0aGUgZmluYWwgc3RhZ2UgaW4gdGhlIGJ1aWxkZXIgY2hhaW4uXG4gKiBAaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyQnVpbGRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyQnVpbGQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYW5kIHJldHVybnMgdGhlIGRlY29yYXRvciBmdW5jdGlvbi5cbiAgICogQHN1bW1hcnkgRmluYWxpc2VzIHRoZSBidWlsZGVyIHByb2Nlc3MgYW5kIHJldHVybnMgYSBkZWNvcmF0b3IgZnVuY3Rpb24gdGhhdCBjYW4gYmUgYXBwbGllZCB0byBhIGNsYXNzLCBwcm9wZXJ0eSwgb3IgbWV0aG9kLlxuICAgKiBAcGFyYW0ge2FueX0gdGFyZ2V0IFRhcmdldCBjb25zdHJ1Y3RvciBvciBwcm90b3R5cGUgcmVjZWl2aW5nIHRoZSBkZWNvcmF0b3IuXG4gICAqIEBwYXJhbSB7YW55fSBbcHJvcGVydHlLZXldIFByb3BlcnR5IGtleSB3aGVuIGRlY29yYXRpbmcgYSBjbGFzcyBtZW1iZXIuXG4gICAqIEBwYXJhbSB7VHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55Pn0gW2Rlc2NyaXB0b3JdIERlc2NyaXB0b3Igc3VwcGxpZWQgZm9yIG1ldGhvZCBvciBhY2Nlc3NvciBkZWNvcmF0aW9uLlxuICAgKiBAcmV0dXJuIHtDbGFzc0RlY29yYXRvcnxNZXRob2REZWNvcmF0b3J8UHJvcGVydHlEZWNvcmF0b3J8UGFyYW1ldGVyRGVjb3JhdG9yfSBEZWNvcmF0b3IgZnVuY3Rpb24gdGhhdCBjYW4gYmUgYXBwbGllZCB0byBhIHRhcmdldC5cbiAgICovXG4gIGFwcGx5KCk6IChcbiAgICB0YXJnZXQ6IGFueSxcbiAgICBwcm9wZXJ0eUtleT86IGFueSxcbiAgICBkZXNjcmlwdG9yPzogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55PlxuICApID0+IGFueTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgZXh0ZW5zaW9uIHN0YWdlIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIgcGF0dGVybi5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgdGhlIGV4dGVuc2lvbiBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyLCBwcm92aWRpbmcgdGhlIGFiaWxpdHkgdG8gYWRkIGFkZGl0aW9uYWwgZGVjb3JhdG9ycyB0byB0aGUgZXhpc3RpbmcgY29uZmlndXJhdGlvbi5cbiAqIEBpbnRlcmZhY2UgRGVjb3JhdGlvbkJ1aWxkZXJFbmRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyRW5kIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBZGRzIGFkZGl0aW9uYWwgZGVjb3JhdG9ycyB0byB0aGUgZXhpc3RpbmcgY29uZmlndXJhdGlvbi5cbiAgICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgY3VycmVudCBkZWNvcmF0b3IgY29uZmlndXJhdGlvbiB3aXRoIGFkZGl0aW9uYWwgZGVjb3JhdG9ycywgbWFraW5nIGl0IHVzZWZ1bCBmb3IgYXVnbWVudGluZyBwcmV2aW91c2x5IGRlZmluZWQgYmVoYXZpb3VyLlxuICAgKiBAcGFyYW0gey4uLkRlY29yYXRvckRhdGF9IGRlY29yYXRvcnMgQWRkaXRpb25hbCBkZWNvcmF0b3JzIHRvIGFkZC5cbiAgICogQHJldHVybiB7RGVjb3JhdGlvbkJ1aWxkZXJCdWlsZH0gVGhlIGJ1aWxkIHN0YWdlIG9mIHRoZSBidWlsZGVyIHBhdHRlcm4uXG4gICAqL1xuICBleHRlbmQoLi4uZGVjb3JhdG9yczogRGVjb3JhdG9yRGF0YVtdKTogRGVjb3JhdGlvbkJ1aWxkZXJCdWlsZDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciB0aGUgbWlkZGxlIHN0YWdlIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIgcGF0dGVybi5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgdGhlIG1pZGRsZSBzdGFnZSBvZiB0aGUgZGVjb3JhdGlvbiBidWlsZGVyLCBleHRlbmRpbmcgdGhlIGVuZCBzdGFnZSBhbmQgcHJvdmlkaW5nIHRoZSBhYmlsaXR5IHRvIGRlZmluZSB0aGUgcHJpbWFyeSBkZWNvcmF0b3JzIGZvciB0aGUgY29uZmlndXJhdGlvbi5cbiAqIEBpbnRlcmZhY2UgRGVjb3JhdGlvbkJ1aWxkZXJNaWRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyTWlkIGV4dGVuZHMgRGVjb3JhdGlvbkJ1aWxkZXJFbmQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIHByaW1hcnkgZGVjb3JhdG9ycyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBzdW1tYXJ5IFNldHMgdGhlIG1haW4gZGVjb3JhdG9ycyBmb3IgdGhlIGN1cnJlbnQgY29udGV4dCBhZnRlciBzcGVjaWZ5aW5nIHRoZSBrZXkgd2l0aCB0aGUgYGZvcmAgbWV0aG9kLlxuICAgKiBAcGFyYW0gey4uLkRlY29yYXRvckRhdGF9IGRlY29yYXRvcnMgRGVjb3JhdG9ycyB0byBkZWZpbmUgZm9yIHRoZSBjdXJyZW50IGtleSBhbmQgZmxhdm91ci5cbiAgICogQHJldHVybiB7RGVjb3JhdGlvbkJ1aWxkZXJFbmR9IEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIHJlbWFpbmluZyBidWlsZGVyIHN0YWdlcyAoYWxzbyBpbXBsZW1lbnRzIERlY29yYXRpb25CdWlsZGVyQnVpbGQpLlxuICAgKi9cbiAgZGVmaW5lKFxuICAgIC4uLmRlY29yYXRvcnM6IERlY29yYXRvckRhdGFbXVxuICApOiBEZWNvcmF0aW9uQnVpbGRlckVuZCAmIERlY29yYXRpb25CdWlsZGVyQnVpbGQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgdGhlIHN0YXJ0aW5nIHN0YWdlIG9mIHRoZSBkZWNvcmF0aW9uIGJ1aWxkZXIgcGF0dGVybi5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgdGhlIGluaXRpYWwgc3RhZ2Ugb2YgdGhlIGRlY29yYXRpb24gYnVpbGRlciwgcHJvdmlkaW5nIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIGJ1aWxkZXIgcGF0dGVybiBieSBzcGVjaWZ5aW5nIHRoZSBrZXkgZm9yIHRoZSBkZWNvcmF0b3IuXG4gKiBAaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyU3RhcnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRpb25CdWlsZGVyU3RhcnQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFNwZWNpZmllcyB0aGUga2V5IGZvciB0aGUgZGVjb3JhdG9yLlxuICAgKiBAc3VtbWFyeSBTZXRzIHRoZSBpZGVudGlmaWVyIGZvciB0aGUgZGVjb3JhdG9yLCB3aGljaCBpcyB1c2VkIHRvIHJlZ2lzdGVyIGFuZCByZXRyaWV2ZSB0aGUgZGVjb3JhdG9yIGluIHRoZSBkZWNvcmF0aW9uIHJlZ2lzdHJ5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgSWRlbnRpZmllciBmb3IgdGhlIGRlY29yYXRvci5cbiAgICogQHJldHVybiB7RGVjb3JhdGlvbkJ1aWxkZXJNaWR9IFRoZSBtaWRkbGUgc3RhZ2Ugb2YgdGhlIGJ1aWxkZXIgcGF0dGVybi5cbiAgICovXG4gIGZvcihpZDogc3RyaW5nKTogRGVjb3JhdGlvbkJ1aWxkZXJNaWQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXByZWhlbnNpdmUgaW50ZXJmYWNlIGZvciB0aGUgY29tcGxldGUgZGVjb3JhdGlvbiBidWlsZGVyIHBhdHRlcm4uXG4gKiBAc3VtbWFyeSBVbmlmaWVkIGludGVyZmFjZSB0aGF0IGNvbWJpbmVzIGFsbCBzdGFnZXMgb2YgdGhlIGRlY29yYXRpb24gYnVpbGRlciBwYXR0ZXJuLCBwcm92aWRpbmcgYSBjb21wbGV0ZSBBUEkgZm9yIGNyZWF0aW5nLCBjb25maWd1cmluZywgYW5kIGFwcGx5aW5nIGRlY29yYXRvcnMuIFRoaXMgaW50ZXJmYWNlIGlzIGltcGxlbWVudGVkIGJ5IHRoZSBEZWNvcmF0aW9uIGNsYXNzLlxuICogQGludGVyZmFjZSBJRGVjb3JhdGlvbkJ1aWxkZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEZWNvcmF0aW9uQnVpbGRlclxuICBleHRlbmRzIERlY29yYXRpb25CdWlsZGVyU3RhcnQsXG4gICAgRGVjb3JhdGlvbkJ1aWxkZXJNaWQsXG4gICAgRGVjb3JhdGlvbkJ1aWxkZXJFbmQsXG4gICAgRGVjb3JhdGlvbkJ1aWxkZXJCdWlsZCB7fVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIGRlZmluaXRpb24gZm9yIGEgZnVuY3Rpb24gdGhhdCByZXNvbHZlcyB0aGUgZmxhdm91ciBmb3IgYSB0YXJnZXQuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgZnVuY3Rpb24gdHlwZSB0aGF0IGRldGVybWluZXMgdGhlIGFwcHJvcHJpYXRlIGZsYXZvdXIgZm9yIGEgZ2l2ZW4gdGFyZ2V0IG9iamVjdCwgZW5hYmxpbmcgZmxhdm91ci1hd2FyZSBkZWNvcmF0b3Igc2VsZWN0aW9uLlxuICogQHBhcmFtIHtvYmplY3R9IHRhcmdldCBUYXJnZXQgb2JqZWN0IHRvIHJlc29sdmUgdGhlIGZsYXZvdXIgZm9yLlxuICogQHJldHVybiB7c3RyaW5nfSBSZXNvbHZlZCBmbGF2b3VyIGlkZW50aWZpZXIuXG4gKiBAdHlwZURlZiBGbGF2b3VyUmVzb2x2ZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgdHlwZSBGbGF2b3VyUmVzb2x2ZXIgPSAodGFyZ2V0OiBvYmplY3QpID0+IHN0cmluZztcbiJdfQ==
@@ -1,95 +1,80 @@
1
1
  import { DecoratorData } from "./Decoration";
2
2
  /**
3
- * @description Interface for the final stage of the decoration builder pattern
4
- * @summary Represents the build stage of the decoration builder, providing the ability to apply
5
- * the configured decorator to a target. This is the final stage in the builder chain.
6
- *
3
+ * @description Interface for the final stage of the decoration builder pattern.
4
+ * @summary Represents the build stage of the decoration builder, providing the ability to apply the configured decorator to a target. This is the final stage in the builder chain.
7
5
  * @interface DecorationBuilderBuild
6
+ * @memberOf module:decoration
8
7
  */
9
8
  export interface DecorationBuilderBuild {
10
9
  /**
11
- * @description Creates and returns the decorator function
12
- * @summary Finalizes the builder process and returns a decorator function that can be applied to a class,
13
- * property, or method.
14
- *
15
- * @returns {function} A decorator function that can be applied to a target
10
+ * @description Creates and returns the decorator function.
11
+ * @summary Finalises the builder process and returns a decorator function that can be applied to a class, property, or method.
12
+ * @param {any} target Target constructor or prototype receiving the decorator.
13
+ * @param {any} [propertyKey] Property key when decorating a class member.
14
+ * @param {TypedPropertyDescriptor<any>} [descriptor] Descriptor supplied for method or accessor decoration.
15
+ * @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that can be applied to a target.
16
16
  */
17
17
  apply(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
18
18
  }
19
19
  /**
20
- * @description Interface for the extension stage of the decoration builder pattern
21
- * @summary Represents the extension stage of the decoration builder, providing the ability to add
22
- * additional decorators to the existing configuration.
23
- *
20
+ * @description Interface for the extension stage of the decoration builder pattern.
21
+ * @summary Represents the extension stage of the decoration builder, providing the ability to add additional decorators to the existing configuration.
24
22
  * @interface DecorationBuilderEnd
25
23
  * @memberOf module:decoration
26
24
  */
27
25
  export interface DecorationBuilderEnd {
28
26
  /**
29
- * @description Adds additional decorators to the existing configuration
30
- * @summary Extends the current decorator configuration with additional decorators.
31
- * This is useful for adding behavior to existing decorators.
32
- *
33
- * @param {...(ClassDecorator|PropertyDecorator|MethodDecorator)} decorators - Additional decorators to add
34
- * @returns {DecorationBuilderBuild} The build stage of the builder pattern
27
+ * @description Adds additional decorators to the existing configuration.
28
+ * @summary Extends the current decorator configuration with additional decorators, making it useful for augmenting previously defined behaviour.
29
+ * @param {...DecoratorData} decorators Additional decorators to add.
30
+ * @return {DecorationBuilderBuild} The build stage of the builder pattern.
35
31
  */
36
32
  extend(...decorators: DecoratorData[]): DecorationBuilderBuild;
37
33
  }
38
34
  /**
39
- * @description Interface for the middle stage of the decoration builder pattern
40
- * @summary Represents the middle stage of the decoration builder, extending the end stage
41
- * and providing the ability to define the primary decorators for the configuration.
42
- *
35
+ * @description Interface for the middle stage of the decoration builder pattern.
36
+ * @summary Represents the middle stage of the decoration builder, extending the end stage and providing the ability to define the primary decorators for the configuration.
43
37
  * @interface DecorationBuilderMid
44
38
  * @memberOf module:decoration
45
39
  */
46
40
  export interface DecorationBuilderMid extends DecorationBuilderEnd {
47
41
  /**
48
- * @description Defines the primary decorators for the configuration
49
- * @summary Sets the main decorators for the current context. This is typically
50
- * called after specifying the key with the 'for' method.
42
+ * @description Defines the primary decorators for the configuration.
43
+ * @summary Sets the main decorators for the current context after specifying the key with the `for` method.
44
+ * @param {...DecoratorData} decorators Decorators to define for the current key and flavour.
45
+ * @return {DecorationBuilderEnd} Interface representing the remaining builder stages (also implements DecorationBuilderBuild).
51
46
  */
52
47
  define(...decorators: DecoratorData[]): DecorationBuilderEnd & DecorationBuilderBuild;
53
48
  }
54
49
  /**
55
- * @description Interface for the starting stage of the decoration builder pattern
56
- * @summary Represents the initial stage of the decoration builder, providing the entry point
57
- * for the builder pattern by specifying the key for the decorator.
58
- *
50
+ * @description Interface for the starting stage of the decoration builder pattern.
51
+ * @summary Represents the initial stage of the decoration builder, providing the entry point for the builder pattern by specifying the key for the decorator.
59
52
  * @interface DecorationBuilderStart
60
53
  * @memberOf module:decoration
61
54
  */
62
55
  export interface DecorationBuilderStart {
63
56
  /**
64
- * @description Specifies the key for the decorator
65
- * @summary Sets the identifier for the decorator, which is used to register and retrieve
66
- * the decorator in the decoration registry.
67
- *
68
- * @param {string} id - The identifier for the decorator
69
- * @return {DecorationBuilderMid} The middle stage of the builder pattern
57
+ * @description Specifies the key for the decorator.
58
+ * @summary Sets the identifier for the decorator, which is used to register and retrieve the decorator in the decoration registry.
59
+ * @param {string} id Identifier for the decorator.
60
+ * @return {DecorationBuilderMid} The middle stage of the builder pattern.
70
61
  */
71
62
  for(id: string): DecorationBuilderMid;
72
63
  }
73
64
  /**
74
- * @description Comprehensive interface for the complete decoration builder pattern
75
- * @summary A unified interface that combines all stages of the decoration builder pattern,
76
- * providing a complete API for creating, configuring, and applying decorators.
77
- * This interface is implemented by the Decoration class.
78
- *
65
+ * @description Comprehensive interface for the complete decoration builder pattern.
66
+ * @summary Unified interface that combines all stages of the decoration builder pattern, providing a complete API for creating, configuring, and applying decorators. This interface is implemented by the Decoration class.
79
67
  * @interface IDecorationBuilder
80
68
  * @memberOf module:decoration
81
69
  */
82
70
  export interface IDecorationBuilder extends DecorationBuilderStart, DecorationBuilderMid, DecorationBuilderEnd, DecorationBuilderBuild {
83
71
  }
84
72
  /**
85
- * @description Type definition for a function that resolves the flavour for a target
86
- * @summary Defines a function type that determines the appropriate flavour for a given target object.
87
- * This is used by the Decoration class to resolve which flavour of decorator to apply based on the target.
88
- *
89
- * @typedef {function(object): string} FlavourResolver
90
- *
91
- * @param {object} target - The target object to resolve the flavour for
92
- * @return {string} The resolved flavour identifier
73
+ * @description Type definition for a function that resolves the flavour for a target.
74
+ * @summary Defines a function type that determines the appropriate flavour for a given target object, enabling flavour-aware decorator selection.
75
+ * @param {object} target Target object to resolve the flavour for.
76
+ * @return {string} Resolved flavour identifier.
77
+ * @typeDef FlavourResolver
93
78
  * @memberOf module:decoration
94
79
  */
95
80
  export type FlavourResolver = (target: object) => string;