@decaf-ts/utils 0.2.6 → 0.2.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 (157) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/bin/build-scripts.cjs +1885 -1423
  4. package/bin/tag-release.cjs +1876 -1420
  5. package/bin/tag-release.sh +0 -0
  6. package/bin/update-scripts.cjs +1881 -1425
  7. package/dist/assets/slogans.json +0 -0
  8. package/dist/utils.cjs +86 -689
  9. package/dist/utils.esm.cjs +78 -674
  10. package/lib/assets/slogans.json +0 -0
  11. package/lib/bin/build-scripts.d.ts +0 -0
  12. package/lib/bin/tag-release.d.ts +0 -0
  13. package/lib/bin/update-scripts.d.ts +0 -0
  14. package/lib/cli/command.cjs +6 -7
  15. package/lib/cli/command.d.ts +5 -5
  16. package/lib/cli/commands/build-scripts.cjs +9 -3
  17. package/lib/cli/commands/build-scripts.d.ts +1 -1
  18. package/lib/cli/commands/index.cjs +0 -0
  19. package/lib/cli/commands/index.d.ts +0 -0
  20. package/lib/cli/commands/tag-release.cjs +1 -1
  21. package/lib/cli/commands/tag-release.d.ts +1 -1
  22. package/lib/cli/commands/update-scripts.cjs +1 -1
  23. package/lib/cli/commands/update-scripts.d.ts +1 -1
  24. package/lib/cli/constants.cjs +0 -0
  25. package/lib/cli/constants.d.ts +0 -0
  26. package/lib/cli/index.cjs +0 -0
  27. package/lib/cli/index.d.ts +0 -0
  28. package/lib/cli/types.cjs +1 -1
  29. package/lib/cli/types.d.ts +1 -1
  30. package/lib/esm/assets/slogans.json +0 -0
  31. package/lib/esm/bin/build-scripts.d.ts +0 -0
  32. package/lib/esm/bin/build-scripts.js +0 -0
  33. package/lib/esm/bin/tag-release.d.ts +0 -0
  34. package/lib/esm/bin/tag-release.js +0 -0
  35. package/lib/esm/bin/update-scripts.d.ts +0 -0
  36. package/lib/esm/bin/update-scripts.js +0 -0
  37. package/lib/esm/cli/command.d.ts +5 -5
  38. package/lib/esm/cli/command.js +2 -3
  39. package/lib/esm/cli/commands/build-scripts.d.ts +1 -1
  40. package/lib/esm/cli/commands/build-scripts.js +9 -3
  41. package/lib/esm/cli/commands/index.d.ts +0 -0
  42. package/lib/esm/cli/commands/index.js +0 -0
  43. package/lib/esm/cli/commands/tag-release.d.ts +1 -1
  44. package/lib/esm/cli/commands/tag-release.js +1 -1
  45. package/lib/esm/cli/commands/update-scripts.d.ts +1 -1
  46. package/lib/esm/cli/commands/update-scripts.js +1 -1
  47. package/lib/esm/cli/constants.d.ts +0 -0
  48. package/lib/esm/cli/constants.js +0 -0
  49. package/lib/esm/cli/index.d.ts +0 -0
  50. package/lib/esm/cli/index.js +0 -0
  51. package/lib/esm/cli/types.d.ts +1 -1
  52. package/lib/esm/cli/types.js +1 -1
  53. package/lib/esm/index.d.ts +2 -2
  54. package/lib/esm/index.js +2 -2
  55. package/lib/esm/input/index.d.ts +0 -0
  56. package/lib/esm/input/index.js +0 -0
  57. package/lib/esm/input/input.d.ts +1 -2
  58. package/lib/esm/input/input.js +2 -2
  59. package/lib/esm/input/types.d.ts +83 -0
  60. package/lib/esm/input/types.js +1 -1
  61. package/lib/esm/output/common.d.ts +3 -3
  62. package/lib/esm/output/common.js +2 -2
  63. package/lib/esm/output/index.d.ts +1 -3
  64. package/lib/esm/output/index.js +2 -4
  65. package/lib/esm/utils/constants.d.ts +0 -77
  66. package/lib/esm/utils/constants.js +1 -114
  67. package/lib/esm/utils/environment.d.ts +1 -1
  68. package/lib/esm/utils/environment.js +2 -2
  69. package/lib/esm/utils/fs.d.ts +0 -0
  70. package/lib/esm/utils/fs.js +2 -2
  71. package/lib/esm/utils/http.d.ts +1 -1
  72. package/lib/esm/utils/http.js +2 -2
  73. package/lib/esm/utils/index.d.ts +0 -0
  74. package/lib/esm/utils/index.js +0 -0
  75. package/lib/esm/utils/md.d.ts +0 -0
  76. package/lib/esm/utils/md.js +0 -0
  77. package/lib/esm/utils/tests.d.ts +0 -0
  78. package/lib/esm/utils/tests.js +0 -0
  79. package/lib/esm/utils/text.d.ts +0 -0
  80. package/lib/esm/utils/text.js +0 -0
  81. package/lib/esm/utils/timeout.d.ts +0 -0
  82. package/lib/esm/utils/timeout.js +0 -0
  83. package/lib/esm/utils/types.d.ts +0 -0
  84. package/lib/esm/utils/types.js +0 -0
  85. package/lib/esm/utils/utils.d.ts +2 -2
  86. package/lib/esm/utils/utils.js +2 -2
  87. package/lib/esm/utils/web.d.ts +0 -0
  88. package/lib/esm/utils/web.js +0 -0
  89. package/lib/esm/writers/OutputWriter.d.ts +0 -0
  90. package/lib/esm/writers/OutputWriter.js +0 -0
  91. package/lib/esm/writers/RegexpOutputWriter.d.ts +0 -0
  92. package/lib/esm/writers/RegexpOutputWriter.js +0 -0
  93. package/lib/esm/writers/StandardOutputWriter.d.ts +2 -2
  94. package/lib/esm/writers/StandardOutputWriter.js +2 -2
  95. package/lib/esm/writers/index.d.ts +0 -0
  96. package/lib/esm/writers/index.js +0 -0
  97. package/lib/esm/writers/types.d.ts +0 -0
  98. package/lib/esm/writers/types.js +0 -0
  99. package/lib/index.cjs +2 -2
  100. package/lib/index.d.ts +2 -2
  101. package/lib/input/index.cjs +0 -0
  102. package/lib/input/index.d.ts +0 -0
  103. package/lib/input/input.cjs +2 -2
  104. package/lib/input/input.d.ts +1 -2
  105. package/lib/input/types.cjs +1 -1
  106. package/lib/input/types.d.ts +83 -0
  107. package/lib/output/common.cjs +2 -2
  108. package/lib/output/common.d.ts +3 -3
  109. package/lib/output/index.cjs +1 -3
  110. package/lib/output/index.d.ts +1 -3
  111. package/lib/utils/constants.cjs +2 -115
  112. package/lib/utils/constants.d.ts +0 -77
  113. package/lib/utils/environment.cjs +3 -3
  114. package/lib/utils/environment.d.ts +1 -1
  115. package/lib/utils/fs.cjs +2 -2
  116. package/lib/utils/fs.d.ts +0 -0
  117. package/lib/utils/http.cjs +2 -2
  118. package/lib/utils/http.d.ts +1 -1
  119. package/lib/utils/index.cjs +0 -0
  120. package/lib/utils/index.d.ts +0 -0
  121. package/lib/utils/md.cjs +0 -0
  122. package/lib/utils/md.d.ts +0 -0
  123. package/lib/utils/tests.cjs +0 -0
  124. package/lib/utils/tests.d.ts +0 -0
  125. package/lib/utils/text.cjs +0 -0
  126. package/lib/utils/text.d.ts +0 -0
  127. package/lib/utils/timeout.cjs +0 -0
  128. package/lib/utils/timeout.d.ts +0 -0
  129. package/lib/utils/types.cjs +0 -0
  130. package/lib/utils/types.d.ts +0 -0
  131. package/lib/utils/utils.cjs +2 -2
  132. package/lib/utils/utils.d.ts +2 -2
  133. package/lib/utils/web.cjs +0 -0
  134. package/lib/utils/web.d.ts +0 -0
  135. package/lib/writers/OutputWriter.cjs +0 -0
  136. package/lib/writers/OutputWriter.d.ts +0 -0
  137. package/lib/writers/RegexpOutputWriter.cjs +0 -0
  138. package/lib/writers/RegexpOutputWriter.d.ts +0 -0
  139. package/lib/writers/StandardOutputWriter.cjs +2 -2
  140. package/lib/writers/StandardOutputWriter.d.ts +2 -2
  141. package/lib/writers/index.cjs +0 -0
  142. package/lib/writers/index.d.ts +0 -0
  143. package/lib/writers/types.cjs +0 -0
  144. package/lib/writers/types.d.ts +0 -0
  145. package/package.json +5 -2
  146. package/lib/esm/output/logging.d.ts +0 -177
  147. package/lib/esm/output/logging.js +0 -349
  148. package/lib/esm/output/types.d.ts +0 -203
  149. package/lib/esm/output/types.js +0 -2
  150. package/lib/esm/utils/accumulator.d.ts +0 -105
  151. package/lib/esm/utils/accumulator.js +0 -144
  152. package/lib/output/logging.cjs +0 -354
  153. package/lib/output/logging.d.ts +0 -177
  154. package/lib/output/types.cjs +0 -3
  155. package/lib/output/types.d.ts +0 -203
  156. package/lib/utils/accumulator.cjs +0 -148
  157. package/lib/utils/accumulator.d.ts +0 -105
@@ -1,203 +0,0 @@
1
- import { LogLevel } from "../utils/constants";
2
- import { styles } from "styled-string-builder";
3
- export type StringLike = string | {
4
- toString: () => string;
5
- };
6
- export type LoggingContext = string | {
7
- new (...args: any[]): any;
8
- } | ((...args: any[]) => any);
9
- /**
10
- * @description Interface for a logger with verbosity levels.
11
- * @summary Defines methods for logging at different verbosity levels.
12
- * @interface VerbosityLogger
13
- * @memberOf @decaf-ts/utils
14
- */
15
- export interface VerbosityLogger {
16
- /**
17
- * @description Logs a `way too verbose` or a silly message.
18
- * @param {StringLike} msg - The message to log.
19
- */
20
- silly(msg: StringLike): void;
21
- /**
22
- * @description Logs a verbose message.
23
- * @param {StringLike} msg - The message to log.
24
- * @param {number} verbosity - The verbosity level of the message.
25
- */
26
- verbose(msg: StringLike, verbosity?: number): void;
27
- /**
28
- * @description Logs an info message.
29
- * @param {StringLike} msg - The message to log.
30
- */
31
- info(msg: StringLike): void;
32
- /**
33
- * @description Logs an error message.
34
- * @param {StringLike | Error} msg - The message to log.
35
- */
36
- error(msg: StringLike | Error): void;
37
- /**
38
- * @description Logs a debug message.
39
- * @param {string} msg - The message to log.
40
- */
41
- debug(msg: StringLike): void;
42
- for(method?: string | ((...args: any[]) => any), config?: Partial<LoggingConfig>): VerbosityLogger;
43
- setConfig(config: Partial<LoggingConfig>): void;
44
- }
45
- /**
46
- * @description Configuration for logging.
47
- * @summary Defines the log level and verbosity for logging.
48
- * @typedef {Object} LoggingConfig
49
- * @property {LogLevel} level - The logging level.
50
- * @property {number} verbose - The verbosity level.
51
- * @memberOf @decaf-ts/utils
52
- */
53
- export type LoggingConfig = {
54
- level: LogLevel;
55
- logLevel?: boolean;
56
- verbose: number;
57
- separator: string;
58
- style?: boolean;
59
- timestamp?: boolean;
60
- timestampFormat?: string;
61
- context?: boolean;
62
- theme?: Theme;
63
- };
64
- /**
65
- /**
66
- * @description Represents a theme option for console output styling.
67
- * @summary Defines the structure for styling a specific element in the console output.
68
- * It allows for customization of foreground color, background color, and additional styles.
69
- * Colors can be specified as a single number, an RGB array, or left undefined for default.
70
- *
71
- * @interface ThemeOption
72
- * @memberOf @decaf-ts/utils
73
- */
74
- export interface ThemeOption {
75
- fg?: number | [number] | [number, number, number];
76
- bg?: number | [number] | [number, number, number];
77
- style?: number[] | [keyof typeof styles];
78
- }
79
- export type ThemeOptionByLogLevel = Partial<Record<LogLevel, ThemeOption>>;
80
- /**
81
- /**
82
- * @description Defines the color theme for console output.
83
- * @summary This interface specifies the color scheme for various elements of console output,
84
- * including styling for different log levels and components. It uses ThemeOption to
85
- * define the styling for each element, allowing for customization of colors and styles
86
- * for different parts of the log output.
87
- *
88
- * @interface Theme
89
- * @memberOf @decaf-ts/utils
90
- */
91
- export interface Theme {
92
- /**
93
- * @description Styling for class names in the output.
94
- */
95
- class: ThemeOption | ThemeOptionByLogLevel;
96
- /**
97
- * @description Styling for timestamps in the output.
98
- */
99
- timestamp: ThemeOption | ThemeOptionByLogLevel;
100
- /**
101
- * @description Styling for the main message text in the output.
102
- */
103
- message: ThemeOption | ThemeOptionByLogLevel;
104
- /**
105
- * @description Styling for method names in the output.
106
- */
107
- method: ThemeOption | ThemeOptionByLogLevel;
108
- /**
109
- * @description Styling for identifier elements in the output.
110
- */
111
- id: ThemeOption | ThemeOptionByLogLevel;
112
- /**
113
- * @description Styling for identifier elements in the output.
114
- */
115
- stack: ThemeOption;
116
- /**
117
- * @description Styling for different log levels in the output.
118
- */
119
- logLevel: ThemeOptionByLogLevel;
120
- }
121
- /**
122
- * @description Represents a color function in the Kleur library.
123
- * @summary The Color interface defines a function that can be called with or without arguments
124
- * to apply color styling to text or chain multiple color operations.
125
- *
126
- * @interface Color
127
- * @memberOf module:@decaf-ts/utils
128
- * */
129
- export interface Color {
130
- /**
131
- * @description Applies the color to the given text.
132
- * @param {string | number} x - The text or number to be colored.
133
- * @return {string} The colored text.
134
- */
135
- (x: string | number): string;
136
- /**
137
- * @description Allows chaining of multiple color operations.
138
- * @return {Kleur} The Kleur instance for method chaining.
139
- */
140
- (): Kleur;
141
- }
142
- /**
143
- * @description Represents the main Kleur interface with all available color and style methods.
144
- * @summary The Kleur interface provides methods for applying various colors, background colors,
145
- * and text styles to strings in terminal output.
146
- *
147
- * @interface Kleur
148
- * @memberOf module:@decaf-ts/utils
149
- */
150
- export interface Kleur {
151
- /** @description Applies black color to the text. */
152
- black: Color;
153
- /** @description Applies red color to the text. */
154
- red: Color;
155
- /** @description Applies green color to the text. */
156
- green: Color;
157
- /** @description Applies yellow color to the text. */
158
- yellow: Color;
159
- /** @description Applies blue color to the text. */
160
- blue: Color;
161
- /** @description Applies magenta color to the text. */
162
- magenta: Color;
163
- /** @description Applies cyan color to the text. */
164
- cyan: Color;
165
- /** @description Applies white color to the text. */
166
- white: Color;
167
- /** @description Applies gray color to the text. */
168
- gray: Color;
169
- /** @description Alias for gray color. */
170
- grey: Color;
171
- /** @description Applies black background to the text. */
172
- bgBlack: Color;
173
- /** @description Applies red background to the text. */
174
- bgRed: Color;
175
- /** @description Applies green background to the text. */
176
- bgGreen: Color;
177
- /** @description Applies yellow background to the text. */
178
- bgYellow: Color;
179
- /** @description Applies blue background to the text. */
180
- bgBlue: Color;
181
- /** @description Applies magenta background to the text. */
182
- bgMagenta: Color;
183
- /** @description Applies cyan background to the text. */
184
- bgCyan: Color;
185
- /** @description Applies white background to the text. */
186
- bgWhite: Color;
187
- /** @description Resets all applied styles. */
188
- reset: Color;
189
- /** @description Applies bold style to the text. */
190
- bold: Color;
191
- /** @description Applies dim (decreased intensity) style to the text. */
192
- dim: Color;
193
- /** @description Applies italic style to the text. */
194
- italic: Color;
195
- /** @description Applies underline style to the text. */
196
- underline: Color;
197
- /** @description Inverts the foreground and background colors. */
198
- inverse: Color;
199
- /** @description Hides the text (same color as background). */
200
- hidden: Color;
201
- /** @description Applies strikethrough style to the text. */
202
- strikethrough: Color;
203
- }
@@ -1,148 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectAccumulator = void 0;
4
- /**
5
- * @class ObjectAccumulator
6
- * @template T - The type of the accumulated object, extends object
7
- * @description A class that accumulates objects and provides type-safe access to their properties.
8
- * It allows for dynamic addition of properties while maintaining type information.
9
- * @summary Accumulates objects and maintains type information for accumulated properties
10
- * @memberOf utils
11
- */
12
- class ObjectAccumulator {
13
- constructor() {
14
- Object.defineProperty(this, "__size", {
15
- value: 0,
16
- writable: true,
17
- configurable: false,
18
- enumerable: false,
19
- });
20
- }
21
- /**
22
- * @protected
23
- * @description Expands the accumulator with properties from a new object
24
- * @summary Adds new properties to the accumulator
25
- * @template V - The type of the object being expanded
26
- * @param {V} value - The object to expand with
27
- * @returns {void}
28
- */
29
- expand(value) {
30
- Object.entries(value).forEach(([k, v]) => {
31
- Object.defineProperty(this, k, {
32
- get: () => v,
33
- set: (val) => {
34
- v = val;
35
- },
36
- configurable: true,
37
- enumerable: true,
38
- });
39
- });
40
- }
41
- /**
42
- * @description Accumulates a new object into the accumulator
43
- * @summary Adds properties from a new object to the accumulator, maintaining type information
44
- * @template V - The type of the object being accumulated
45
- * @param {V} value - The object to accumulate
46
- * @returns A new ObjectAccumulator instance with updated type information
47
- * @mermaid
48
- * sequenceDiagram
49
- * participant A as Accumulator
50
- * participant O as Object
51
- * A->>O: Get entries
52
- * loop For each entry
53
- * A->>A: Define property
54
- * end
55
- * A->>A: Update size
56
- * A->>A: Return updated accumulator
57
- */
58
- accumulate(value) {
59
- this.expand(value);
60
- this.__size = this.__size + Object.keys(value).length;
61
- return this;
62
- }
63
- /**
64
- * @description Retrieves a value from the accumulator by its key
65
- * @summary Gets a value from the accumulated object using a type-safe key
66
- * @template K - The key type, must be a key of this
67
- * @param {K} key - The key of the value to retrieve
68
- * @returns {any | undefined} The value associated with the key, or undefined if not found
69
- */
70
- get(key) {
71
- return this[key];
72
- }
73
- /**
74
- * @description Checks if a key exists in the accumulator
75
- * @summary Determines whether the accumulator contains a specific key
76
- * @param {string} key - The key to check for existence
77
- * @returns {boolean} True if the key exists, false otherwise
78
- */
79
- has(key) {
80
- return !!this[key];
81
- }
82
- /**
83
- * @description Removes a key-value pair from the accumulator
84
- * @summary Deletes a property from the accumulated object
85
- * @param {string} key - The key of the property to remove
86
- * @returns {} The accumulator instance with the specified property removed
87
- */
88
- remove(key) {
89
- if (!(key in this))
90
- return this;
91
- delete this[key];
92
- this.__size--;
93
- return this;
94
- }
95
- /**
96
- * @description Retrieves all keys from the accumulator
97
- * @summary Gets an array of all accumulated property keys
98
- * @returns {string[]} An array of keys as strings
99
- */
100
- keys() {
101
- return Object.keys(this);
102
- }
103
- /**
104
- * @description Retrieves all values from the accumulator
105
- * @summary Gets an array of all accumulated property values
106
- * @returns An array of values
107
- */
108
- values() {
109
- return Object.values(this);
110
- }
111
- /**
112
- * @description Gets the number of key-value pairs in the accumulator
113
- * @summary Returns the count of accumulated properties
114
- * @returns {number} The number of key-value pairs
115
- */
116
- size() {
117
- return this.__size;
118
- }
119
- /**
120
- * @description Clears all accumulated key-value pairs
121
- * @summary Removes all properties from the accumulator and returns a new empty instance
122
- * @returns {ObjectAccumulator<never>} A new empty ObjectAccumulator instance
123
- */
124
- clear() {
125
- return new ObjectAccumulator();
126
- }
127
- /**
128
- * @description Executes a callback for each key-value pair in the accumulator
129
- * @summary Iterates over all accumulated properties, calling a function for each
130
- * @param {function(any, string, number): void} callback - The function to execute for each entry
131
- * @returns {void}
132
- */
133
- forEach(callback) {
134
- Object.entries(this).forEach(([key, value], i) => callback(value, key, i));
135
- }
136
- /**
137
- * @description Creates a new array with the results of calling a provided function on every element in the accumulator
138
- * @summary Maps each accumulated property to a new value using a callback function
139
- * @template R - The type of the mapped values
140
- * @param {function(any, string,number): R} callback - Function that produces an element of the new array
141
- * @returns {R[]} A new array with each element being the result of the callback function
142
- */
143
- map(callback) {
144
- return Object.entries(this).map(([key, value], i) => callback(value, key, i));
145
- }
146
- }
147
- exports.ObjectAccumulator = ObjectAccumulator;
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjdW11bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYWNjdW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7R0FPRztBQUNILE1BQWEsaUJBQWlCO0lBUTVCO1FBQ0UsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3BDLEtBQUssRUFBRSxDQUFDO1lBQ1IsUUFBUSxFQUFFLElBQUk7WUFDZCxZQUFZLEVBQUUsS0FBSztZQUNuQixVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLE1BQU0sQ0FBbUIsS0FBUTtRQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDWixHQUFHLEVBQUUsQ0FBQyxHQUFlLEVBQUUsRUFBRTtvQkFDdkIsQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDVixDQUFDO2dCQUNELFlBQVksRUFBRSxJQUFJO2dCQUNsQixVQUFVLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILFVBQVUsQ0FBbUIsS0FBUTtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN0RCxPQUFPLElBQW1ELENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEdBQUcsQ0FBdUIsR0FBTTtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsR0FBVztRQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFpQixDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUNKLEdBQXdCO1FBSXhCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVoQyxPQUFPLElBQUksQ0FBQyxHQUFpQixDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUNvQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSTtRQUNGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSztRQUNILE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FDTCxRQUF1RTtRQUV2RSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQy9DLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBaUIsRUFBRSxDQUFDLENBQUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQ0QsUUFBb0U7UUFFcEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ2xELFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBaUIsRUFBRSxDQUFDLENBQUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJLRCw4Q0FxS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBjbGFzcyBPYmplY3RBY2N1bXVsYXRvclxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgYWNjdW11bGF0ZWQgb2JqZWN0LCBleHRlbmRzIG9iamVjdFxuICogQGRlc2NyaXB0aW9uIEEgY2xhc3MgdGhhdCBhY2N1bXVsYXRlcyBvYmplY3RzIGFuZCBwcm92aWRlcyB0eXBlLXNhZmUgYWNjZXNzIHRvIHRoZWlyIHByb3BlcnRpZXMuXG4gKiBJdCBhbGxvd3MgZm9yIGR5bmFtaWMgYWRkaXRpb24gb2YgcHJvcGVydGllcyB3aGlsZSBtYWludGFpbmluZyB0eXBlIGluZm9ybWF0aW9uLlxuICogQHN1bW1hcnkgQWNjdW11bGF0ZXMgb2JqZWN0cyBhbmQgbWFpbnRhaW5zIHR5cGUgaW5mb3JtYXRpb24gZm9yIGFjY3VtdWxhdGVkIHByb3BlcnRpZXNcbiAqIEBtZW1iZXJPZiB1dGlsc1xuICovXG5leHBvcnQgY2xhc3MgT2JqZWN0QWNjdW11bGF0b3I8VCBleHRlbmRzIG9iamVjdD4ge1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBzaXplIG9mIHRoZSBhY2N1bXVsYXRlZCBvYmplY3RcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIHByaXZhdGUgX19zaXplITogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcIl9fc2l6ZVwiLCB7XG4gICAgICB2YWx1ZTogMCxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQGRlc2NyaXB0aW9uIEV4cGFuZHMgdGhlIGFjY3VtdWxhdG9yIHdpdGggcHJvcGVydGllcyBmcm9tIGEgbmV3IG9iamVjdFxuICAgKiBAc3VtbWFyeSBBZGRzIG5ldyBwcm9wZXJ0aWVzIHRvIHRoZSBhY2N1bXVsYXRvclxuICAgKiBAdGVtcGxhdGUgViAtIFRoZSB0eXBlIG9mIHRoZSBvYmplY3QgYmVpbmcgZXhwYW5kZWRcbiAgICogQHBhcmFtIHtWfSB2YWx1ZSAtIFRoZSBvYmplY3QgdG8gZXhwYW5kIHdpdGhcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgZXhwYW5kPFYgZXh0ZW5kcyBvYmplY3Q+KHZhbHVlOiBWKTogdm9pZCB7XG4gICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrLCB2XSkgPT4ge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGssIHtcbiAgICAgICAgZ2V0OiAoKSA9PiB2LFxuICAgICAgICBzZXQ6ICh2YWw6IFZba2V5b2YgVl0pID0+IHtcbiAgICAgICAgICB2ID0gdmFsO1xuICAgICAgICB9LFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQWNjdW11bGF0ZXMgYSBuZXcgb2JqZWN0IGludG8gdGhlIGFjY3VtdWxhdG9yXG4gICAqIEBzdW1tYXJ5IEFkZHMgcHJvcGVydGllcyBmcm9tIGEgbmV3IG9iamVjdCB0byB0aGUgYWNjdW11bGF0b3IsIG1haW50YWluaW5nIHR5cGUgaW5mb3JtYXRpb25cbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgdHlwZSBvZiB0aGUgb2JqZWN0IGJlaW5nIGFjY3VtdWxhdGVkXG4gICAqIEBwYXJhbSB7Vn0gdmFsdWUgLSBUaGUgb2JqZWN0IHRvIGFjY3VtdWxhdGVcbiAgICogQHJldHVybnMgQSBuZXcgT2JqZWN0QWNjdW11bGF0b3IgaW5zdGFuY2Ugd2l0aCB1cGRhdGVkIHR5cGUgaW5mb3JtYXRpb25cbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQSBhcyBBY2N1bXVsYXRvclxuICAgKiAgIHBhcnRpY2lwYW50IE8gYXMgT2JqZWN0XG4gICAqICAgQS0+Pk86IEdldCBlbnRyaWVzXG4gICAqICAgbG9vcCBGb3IgZWFjaCBlbnRyeVxuICAgKiAgICAgQS0+PkE6IERlZmluZSBwcm9wZXJ0eVxuICAgKiAgIGVuZFxuICAgKiAgIEEtPj5BOiBVcGRhdGUgc2l6ZVxuICAgKiAgIEEtPj5BOiBSZXR1cm4gdXBkYXRlZCBhY2N1bXVsYXRvclxuICAgKi9cbiAgYWNjdW11bGF0ZTxWIGV4dGVuZHMgb2JqZWN0Pih2YWx1ZTogVik6IFQgJiBWICYgT2JqZWN0QWNjdW11bGF0b3I8VCAmIFY+IHtcbiAgICB0aGlzLmV4cGFuZCh2YWx1ZSk7XG4gICAgdGhpcy5fX3NpemUgPSB0aGlzLl9fc2l6ZSArIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGg7XG4gICAgcmV0dXJuIHRoaXMgYXMgdW5rbm93biBhcyBUICYgViAmIE9iamVjdEFjY3VtdWxhdG9yPFQgJiBWPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgdmFsdWUgZnJvbSB0aGUgYWNjdW11bGF0b3IgYnkgaXRzIGtleVxuICAgKiBAc3VtbWFyeSBHZXRzIGEgdmFsdWUgZnJvbSB0aGUgYWNjdW11bGF0ZWQgb2JqZWN0IHVzaW5nIGEgdHlwZS1zYWZlIGtleVxuICAgKiBAdGVtcGxhdGUgSyAtIFRoZSBrZXkgdHlwZSwgbXVzdCBiZSBhIGtleSBvZiB0aGlzXG4gICAqIEBwYXJhbSB7S30ga2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMge2FueSB8IHVuZGVmaW5lZH0gVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5LCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAqL1xuICBnZXQ8SyBleHRlbmRzIGtleW9mIHRoaXM+KGtleTogSyk6IHRoaXNbS10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzW2tleV07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENoZWNrcyBpZiBhIGtleSBleGlzdHMgaW4gdGhlIGFjY3VtdWxhdG9yXG4gICAqIEBzdW1tYXJ5IERldGVybWluZXMgd2hldGhlciB0aGUgYWNjdW11bGF0b3IgY29udGFpbnMgYSBzcGVjaWZpYyBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgdG8gY2hlY2sgZm9yIGV4aXN0ZW5jZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUga2V5IGV4aXN0cywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzW2tleSBhcyBrZXlvZiB0aGlzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlcyBhIGtleS12YWx1ZSBwYWlyIGZyb20gdGhlIGFjY3VtdWxhdG9yXG4gICAqIEBzdW1tYXJ5IERlbGV0ZXMgYSBwcm9wZXJ0eSBmcm9tIHRoZSBhY2N1bXVsYXRlZCBvYmplY3RcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIHJlbW92ZVxuICAgKiBAcmV0dXJucyB7fSBUaGUgYWNjdW11bGF0b3IgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IHJlbW92ZWRcbiAgICovXG4gIHJlbW92ZShcbiAgICBrZXk6IGtleW9mIHRoaXMgfCBzdHJpbmdcbiAgKTpcbiAgICB8IChPbWl0PHRoaXMsIHR5cGVvZiBrZXk+ICYgT2JqZWN0QWNjdW11bGF0b3I8T21pdDx0aGlzLCB0eXBlb2Yga2V5Pj4pXG4gICAgfCB0aGlzIHtcbiAgICBpZiAoIShrZXkgaW4gdGhpcykpIHJldHVybiB0aGlzO1xuXG4gICAgZGVsZXRlIHRoaXNba2V5IGFzIGtleW9mIHRoaXNdO1xuICAgIHRoaXMuX19zaXplLS07XG4gICAgcmV0dXJuIHRoaXMgYXMgdW5rbm93biBhcyBPbWl0PHRoaXMsIHR5cGVvZiBrZXk+ICZcbiAgICAgIE9iamVjdEFjY3VtdWxhdG9yPE9taXQ8dGhpcywgdHlwZW9mIGtleT4+O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYWxsIGtleXMgZnJvbSB0aGUgYWNjdW11bGF0b3JcbiAgICogQHN1bW1hcnkgR2V0cyBhbiBhcnJheSBvZiBhbGwgYWNjdW11bGF0ZWQgcHJvcGVydHkga2V5c1xuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IEFuIGFycmF5IG9mIGtleXMgYXMgc3RyaW5nc1xuICAgKi9cbiAga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYWxsIHZhbHVlcyBmcm9tIHRoZSBhY2N1bXVsYXRvclxuICAgKiBAc3VtbWFyeSBHZXRzIGFuIGFycmF5IG9mIGFsbCBhY2N1bXVsYXRlZCBwcm9wZXJ0eSB2YWx1ZXNcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgdmFsdWVzXG4gICAqL1xuICB2YWx1ZXMoKTogVFtrZXlvZiBUXVtdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgbnVtYmVyIG9mIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgYWNjdW11bGF0b3JcbiAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgY291bnQgb2YgYWNjdW11bGF0ZWQgcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgbnVtYmVyIG9mIGtleS12YWx1ZSBwYWlyc1xuICAgKi9cbiAgc2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9fc2l6ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2xlYXJzIGFsbCBhY2N1bXVsYXRlZCBrZXktdmFsdWUgcGFpcnNcbiAgICogQHN1bW1hcnkgUmVtb3ZlcyBhbGwgcHJvcGVydGllcyBmcm9tIHRoZSBhY2N1bXVsYXRvciBhbmQgcmV0dXJucyBhIG5ldyBlbXB0eSBpbnN0YW5jZVxuICAgKiBAcmV0dXJucyB7T2JqZWN0QWNjdW11bGF0b3I8bmV2ZXI+fSBBIG5ldyBlbXB0eSBPYmplY3RBY2N1bXVsYXRvciBpbnN0YW5jZVxuICAgKi9cbiAgY2xlYXIoKTogT2JqZWN0QWNjdW11bGF0b3I8bmV2ZXI+IHtcbiAgICByZXR1cm4gbmV3IE9iamVjdEFjY3VtdWxhdG9yKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgY2FsbGJhY2sgZm9yIGVhY2gga2V5LXZhbHVlIHBhaXIgaW4gdGhlIGFjY3VtdWxhdG9yXG4gICAqIEBzdW1tYXJ5IEl0ZXJhdGVzIG92ZXIgYWxsIGFjY3VtdWxhdGVkIHByb3BlcnRpZXMsIGNhbGxpbmcgYSBmdW5jdGlvbiBmb3IgZWFjaFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGFueSwgc3RyaW5nLCBudW1iZXIpOiB2b2lkfSBjYWxsYmFjayAtIFRoZSBmdW5jdGlvbiB0byBleGVjdXRlIGZvciBlYWNoIGVudHJ5XG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZm9yRWFjaChcbiAgICBjYWxsYmFjazogKHZhbHVlOiB0aGlzW2tleW9mIHRoaXNdLCBrZXk6IGtleW9mIHRoaXMsIGk6IG51bWJlcikgPT4gdm9pZFxuICApOiB2b2lkIHtcbiAgICBPYmplY3QuZW50cmllcyh0aGlzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0sIGkpID0+XG4gICAgICBjYWxsYmFjayh2YWx1ZSwga2V5IGFzIGtleW9mIHRoaXMsIGkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBhcnJheSB3aXRoIHRoZSByZXN1bHRzIG9mIGNhbGxpbmcgYSBwcm92aWRlZCBmdW5jdGlvbiBvbiBldmVyeSBlbGVtZW50IGluIHRoZSBhY2N1bXVsYXRvclxuICAgKiBAc3VtbWFyeSBNYXBzIGVhY2ggYWNjdW11bGF0ZWQgcHJvcGVydHkgdG8gYSBuZXcgdmFsdWUgdXNpbmcgYSBjYWxsYmFjayBmdW5jdGlvblxuICAgKiBAdGVtcGxhdGUgUiAtIFRoZSB0eXBlIG9mIHRoZSBtYXBwZWQgdmFsdWVzXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oYW55LCBzdHJpbmcsbnVtYmVyKTogUn0gY2FsbGJhY2sgLSBGdW5jdGlvbiB0aGF0IHByb2R1Y2VzIGFuIGVsZW1lbnQgb2YgdGhlIG5ldyBhcnJheVxuICAgKiBAcmV0dXJucyB7UltdfSBBIG5ldyBhcnJheSB3aXRoIGVhY2ggZWxlbWVudCBiZWluZyB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvblxuICAgKi9cbiAgbWFwPFI+KFxuICAgIGNhbGxiYWNrOiAodmFsdWU6IHRoaXNba2V5b2YgdGhpc10sIGtleToga2V5b2YgdGhpcywgaTogbnVtYmVyKSA9PiBSXG4gICk6IFJbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMpLm1hcCgoW2tleSwgdmFsdWVdLCBpKSA9PlxuICAgICAgY2FsbGJhY2sodmFsdWUsIGtleSBhcyBrZXlvZiB0aGlzLCBpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,105 +0,0 @@
1
- /**
2
- * @class ObjectAccumulator
3
- * @template T - The type of the accumulated object, extends object
4
- * @description A class that accumulates objects and provides type-safe access to their properties.
5
- * It allows for dynamic addition of properties while maintaining type information.
6
- * @summary Accumulates objects and maintains type information for accumulated properties
7
- * @memberOf utils
8
- */
9
- export declare class ObjectAccumulator<T extends object> {
10
- /**
11
- * @private
12
- * @description The size of the accumulated object
13
- * @type {number}
14
- */
15
- private __size;
16
- constructor();
17
- /**
18
- * @protected
19
- * @description Expands the accumulator with properties from a new object
20
- * @summary Adds new properties to the accumulator
21
- * @template V - The type of the object being expanded
22
- * @param {V} value - The object to expand with
23
- * @returns {void}
24
- */
25
- protected expand<V extends object>(value: V): void;
26
- /**
27
- * @description Accumulates a new object into the accumulator
28
- * @summary Adds properties from a new object to the accumulator, maintaining type information
29
- * @template V - The type of the object being accumulated
30
- * @param {V} value - The object to accumulate
31
- * @returns A new ObjectAccumulator instance with updated type information
32
- * @mermaid
33
- * sequenceDiagram
34
- * participant A as Accumulator
35
- * participant O as Object
36
- * A->>O: Get entries
37
- * loop For each entry
38
- * A->>A: Define property
39
- * end
40
- * A->>A: Update size
41
- * A->>A: Return updated accumulator
42
- */
43
- accumulate<V extends object>(value: V): T & V & ObjectAccumulator<T & V>;
44
- /**
45
- * @description Retrieves a value from the accumulator by its key
46
- * @summary Gets a value from the accumulated object using a type-safe key
47
- * @template K - The key type, must be a key of this
48
- * @param {K} key - The key of the value to retrieve
49
- * @returns {any | undefined} The value associated with the key, or undefined if not found
50
- */
51
- get<K extends keyof this>(key: K): this[K] | undefined;
52
- /**
53
- * @description Checks if a key exists in the accumulator
54
- * @summary Determines whether the accumulator contains a specific key
55
- * @param {string} key - The key to check for existence
56
- * @returns {boolean} True if the key exists, false otherwise
57
- */
58
- has(key: string): boolean;
59
- /**
60
- * @description Removes a key-value pair from the accumulator
61
- * @summary Deletes a property from the accumulated object
62
- * @param {string} key - The key of the property to remove
63
- * @returns {} The accumulator instance with the specified property removed
64
- */
65
- remove(key: keyof this | string): (Omit<this, typeof key> & ObjectAccumulator<Omit<this, typeof key>>) | this;
66
- /**
67
- * @description Retrieves all keys from the accumulator
68
- * @summary Gets an array of all accumulated property keys
69
- * @returns {string[]} An array of keys as strings
70
- */
71
- keys(): string[];
72
- /**
73
- * @description Retrieves all values from the accumulator
74
- * @summary Gets an array of all accumulated property values
75
- * @returns An array of values
76
- */
77
- values(): T[keyof T][];
78
- /**
79
- * @description Gets the number of key-value pairs in the accumulator
80
- * @summary Returns the count of accumulated properties
81
- * @returns {number} The number of key-value pairs
82
- */
83
- size(): number;
84
- /**
85
- * @description Clears all accumulated key-value pairs
86
- * @summary Removes all properties from the accumulator and returns a new empty instance
87
- * @returns {ObjectAccumulator<never>} A new empty ObjectAccumulator instance
88
- */
89
- clear(): ObjectAccumulator<never>;
90
- /**
91
- * @description Executes a callback for each key-value pair in the accumulator
92
- * @summary Iterates over all accumulated properties, calling a function for each
93
- * @param {function(any, string, number): void} callback - The function to execute for each entry
94
- * @returns {void}
95
- */
96
- forEach(callback: (value: this[keyof this], key: keyof this, i: number) => void): void;
97
- /**
98
- * @description Creates a new array with the results of calling a provided function on every element in the accumulator
99
- * @summary Maps each accumulated property to a new value using a callback function
100
- * @template R - The type of the mapped values
101
- * @param {function(any, string,number): R} callback - Function that produces an element of the new array
102
- * @returns {R[]} A new array with each element being the result of the callback function
103
- */
104
- map<R>(callback: (value: this[keyof this], key: keyof this, i: number) => R): R[];
105
- }