@decaf-ts/utils 0.2.9 → 0.2.11

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.
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Environment = void 0;
4
4
  const text_1 = require("./text.cjs");
5
- const accumulator_1 = require("./accumulator.cjs");
6
5
  const web_1 = require("./web.cjs");
6
+ const typed_object_accumulator_1 = require("typed-object-accumulator");
7
7
  /**
8
8
  * @class Environment
9
9
  * @extends {ObjectAccumulator<T>}
@@ -12,7 +12,7 @@ const web_1 = require("./web.cjs");
12
12
  * @summary Manages environment-related data and provides methods for accumulation and key retrieval.
13
13
  * @param {T} [initialData] - The initial data to populate the environment with.
14
14
  */
15
- class Environment extends accumulator_1.ObjectAccumulator {
15
+ class Environment extends typed_object_accumulator_1.ObjectAccumulator {
16
16
  /**
17
17
  * @static
18
18
  * @protected
@@ -91,4 +91,4 @@ class Environment extends accumulator_1.ObjectAccumulator {
91
91
  }
92
92
  }
93
93
  exports.Environment = Environment;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXFDO0FBQ3JDLG1EQUFrRDtBQUVsRCxtQ0FBa0M7QUFFbEM7Ozs7Ozs7R0FPRztBQUNILE1BQWEsV0FBOEIsU0FBUSwrQkFBb0I7SUFDckU7Ozs7OztPQU1HO2FBQ2MsWUFBTyxHQUN0QixHQUFxQixFQUFFLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQVU1QztRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLE9BQU8sQ0FBQyxDQUFTO1FBQ3pCLElBQUksR0FBNEIsQ0FBQztRQUNqQyxJQUFJLElBQUEsZUFBUyxHQUFFLEVBQUUsQ0FBQztZQUNoQixHQUFHLEdBQUksVUFBK0QsQ0FDcEUsS0FBSyxDQUNOLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM3QixDQUFDLEdBQUcsSUFBQSxrQkFBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRVMsTUFBTSxDQUFtQixLQUFRO1FBQ3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQzdCLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQ1IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEMsT0FBTyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN0RCxDQUFDO2dCQUNELEdBQUcsRUFBRSxDQUFDLEdBQWUsRUFBRSxFQUFFO29CQUN2QixDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNWLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ08sTUFBTSxDQUFDLFFBQVEsQ0FBNkIsR0FBRyxJQUFlO1FBQ3RFLFdBQVcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUztZQUM1QyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM5QixDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUMxQixPQUFPLFdBQVcsQ0FBQyxTQUFjLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUNmLEtBQVE7UUFJUixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQWlCLElBQUk7UUFDL0IsT0FBTyxXQUFXLENBQUMsUUFBUSxFQUFFO2FBQzFCLElBQUksRUFBRTthQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUEsa0JBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDOztBQWhHSCxrQ0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b0VOVkZvcm1hdCB9IGZyb20gXCIuL3RleHRcIjtcbmltcG9ydCB7IE9iamVjdEFjY3VtdWxhdG9yIH0gZnJvbSBcIi4vYWNjdW11bGF0b3JcIjtcbmltcG9ydCB7IEVudmlyb25tZW50RmFjdG9yeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tIFwiLi93ZWJcIjtcblxuLyoqXG4gKiBAY2xhc3MgRW52aXJvbm1lbnRcbiAqIEBleHRlbmRzIHtPYmplY3RBY2N1bXVsYXRvcjxUPn1cbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAZGVzY3JpcHRpb24gQSBjbGFzcyByZXByZXNlbnRpbmcgYW4gZW52aXJvbm1lbnQgd2l0aCBhY2N1bXVsYXRpb24gY2FwYWJpbGl0aWVzLlxuICogQHN1bW1hcnkgTWFuYWdlcyBlbnZpcm9ubWVudC1yZWxhdGVkIGRhdGEgYW5kIHByb3ZpZGVzIG1ldGhvZHMgZm9yIGFjY3VtdWxhdGlvbiBhbmQga2V5IHJldHJpZXZhbC5cbiAqIEBwYXJhbSB7VH0gW2luaXRpYWxEYXRhXSAtIFRoZSBpbml0aWFsIGRhdGEgdG8gcG9wdWxhdGUgdGhlIGVudmlyb25tZW50IHdpdGguXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudDxUIGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIE9iamVjdEFjY3VtdWxhdG9yPFQ+IHtcbiAgLyoqXG4gICAqIEBzdGF0aWNcbiAgICogQHByb3RlY3RlZFxuICAgKiBAZGVzY3JpcHRpb24gQSBmYWN0b3J5IGZ1bmN0aW9uIGZvciBjcmVhdGluZyBFbnZpcm9ubWVudCBpbnN0YW5jZXMuXG4gICAqIEBzdW1tYXJ5IERlZmluZXMgaG93IG5ldyBpbnN0YW5jZXMgb2YgdGhlIEVudmlyb25tZW50IGNsYXNzIHNob3VsZCBiZSBjcmVhdGVkLlxuICAgKiBAcmV0dXJuIHtFbnZpcm9ubWVudDxhbnk+fSBBIG5ldyBpbnN0YW5jZSBvZiB0aGUgRW52aXJvbm1lbnQgY2xhc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIGZhY3Rvcnk6IEVudmlyb25tZW50RmFjdG9yeTxhbnksIGFueT4gPVxuICAgICgpOiBFbnZpcm9ubWVudDxhbnk+ID0+IG5ldyBFbnZpcm9ubWVudCgpO1xuXG4gIC8qKlxuICAgKiBAc3RhdGljXG4gICAqIEBwcml2YXRlXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBFbnZpcm9ubWVudCBjbGFzcy5cbiAgICogQHR5cGUge0Vudmlyb25tZW50PGFueT59XG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEVudmlyb25tZW50PGFueT47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZnJvbUVudihrOiBzdHJpbmcpIHtcbiAgICBsZXQgZW52OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIGVudiA9IChnbG9iYWxUaGlzIGFzIHR5cGVvZiBnbG9iYWxUaGlzICYgeyBFTlY6IFJlY29yZDxzdHJpbmcsIGFueT4gfSlbXG4gICAgICAgIFwiRU5WXCJcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGVudiA9IGdsb2JhbFRoaXMucHJvY2Vzcy5lbnY7XG4gICAgICBrID0gdG9FTlZGb3JtYXQoayk7XG4gICAgfVxuICAgIHJldHVybiBlbnZba107XG4gIH1cblxuICBwcm90ZWN0ZWQgZXhwYW5kPFYgZXh0ZW5kcyBvYmplY3Q+KHZhbHVlOiBWKTogdm9pZCB7XG4gICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrLCB2XSkgPT4ge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGssIHtcbiAgICAgICAgZ2V0OiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZnJvbUVudiA9IHRoaXMuZnJvbUVudihrKTtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIGZyb21FbnYgPT09IFwidW5kZWZpbmVkXCIgPyB2IDogZnJvbUVudjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiAodmFsOiBWW2tleW9mIFZdKSA9PiB7XG4gICAgICAgICAgdiA9IHZhbDtcbiAgICAgICAgfSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3RlY3RlZFxuICAgKiBAc3RhdGljXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgb3IgY3JlYXRlcyB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBFbnZpcm9ubWVudCBjbGFzcy5cbiAgICogQHN1bW1hcnkgRW5zdXJlcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiB0aGUgRW52aXJvbm1lbnQgY2xhc3MgZXhpc3RzLlxuICAgKiBAdGVtcGxhdGUgRVxuICAgKiBAcGFyYW0gey4uLnVua25vd25bXX0gYXJncyAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIGlmIGEgbmV3IGluc3RhbmNlIGlzIGNyZWF0ZWQuXG4gICAqIEByZXR1cm4ge0V9IFRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIEVudmlyb25tZW50IGNsYXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRpYyBpbnN0YW5jZTxFIGV4dGVuZHMgRW52aXJvbm1lbnQ8YW55Pj4oLi4uYXJnczogdW5rbm93bltdKTogRSB7XG4gICAgRW52aXJvbm1lbnQuX2luc3RhbmNlID0gIUVudmlyb25tZW50Ll9pbnN0YW5jZVxuICAgICAgPyBFbnZpcm9ubWVudC5mYWN0b3J5KC4uLmFyZ3MpXG4gICAgICA6IEVudmlyb25tZW50Ll9pbnN0YW5jZTtcbiAgICByZXR1cm4gRW52aXJvbm1lbnQuX2luc3RhbmNlIGFzIEU7XG4gIH1cblxuICAvKipcbiAgICogQHN0YXRpY1xuICAgKiBAZGVzY3JpcHRpb24gQWNjdW11bGF0ZXMgdGhlIGdpdmVuIHZhbHVlIGludG8gdGhlIGVudmlyb25tZW50LlxuICAgKiBAc3VtbWFyeSBBZGRzIG5ldyBwcm9wZXJ0aWVzIHRvIHRoZSBlbnZpcm9ubWVudCBmcm9tIHRoZSBwcm92aWRlZCBvYmplY3QuXG4gICAqIEB0ZW1wbGF0ZSBWXG4gICAqIEBwYXJhbSB7Vn0gdmFsdWUgLSBUaGUgb2JqZWN0IHRvIGFjY3VtdWxhdGUgaW50byB0aGUgZW52aXJvbm1lbnQuXG4gICAqIEByZXR1cm4ge1Z9IFRoZSB1cGRhdGVkIGVudmlyb25tZW50IGluc3RhbmNlLlxuICAgKi9cbiAgc3RhdGljIGFjY3VtdWxhdGU8ViBleHRlbmRzIG9iamVjdD4oXG4gICAgdmFsdWU6IFZcbiAgKTogdHlwZW9mIEVudmlyb25tZW50Ll9pbnN0YW5jZSAmXG4gICAgViAmXG4gICAgT2JqZWN0QWNjdW11bGF0b3I8dHlwZW9mIEVudmlyb25tZW50Ll9pbnN0YW5jZSAmIFY+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IEVudmlyb25tZW50Lmluc3RhbmNlKCk7XG4gICAgcmV0dXJuIGluc3RhbmNlLmFjY3VtdWxhdGUodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdGF0aWNcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUga2V5cyBvZiB0aGUgZW52aXJvbm1lbnQsIG9wdGlvbmFsbHkgY29udmVydGluZyB0aGVtIHRvIEVOViBmb3JtYXQuXG4gICAqIEBzdW1tYXJ5IEdldHMgYWxsIGtleXMgaW4gdGhlIGVudmlyb25tZW50LCB3aXRoIGFuIG9wdGlvbiB0byBmb3JtYXQgdGhlbSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt0b0Vudj10cnVlXSAtIFdoZXRoZXIgdG8gY29udmVydCB0aGUga2V5cyB0byBFTlYgZm9ybWF0LlxuICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gQW4gYXJyYXkgb2Yga2V5cyBmcm9tIHRoZSBlbnZpcm9ubWVudC5cbiAgICovXG4gIHN0YXRpYyBrZXlzKHRvRW52OiBib29sZWFuID0gdHJ1ZSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gRW52aXJvbm1lbnQuaW5zdGFuY2UoKVxuICAgICAgLmtleXMoKVxuICAgICAgLm1hcCgoaykgPT4gKHRvRW52ID8gdG9FTlZGb3JtYXQoaykgOiBrKSk7XG4gIH1cbn1cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXFDO0FBRXJDLG1DQUFrQztBQUNsQyx1RUFBNkQ7QUFFN0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsV0FBOEIsU0FBUSw0Q0FBb0I7SUFDckU7Ozs7OztPQU1HO2FBQ2MsWUFBTyxHQUN0QixHQUFxQixFQUFFLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQVU1QztRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLE9BQU8sQ0FBQyxDQUFTO1FBQ3pCLElBQUksR0FBNEIsQ0FBQztRQUNqQyxJQUFJLElBQUEsZUFBUyxHQUFFLEVBQUUsQ0FBQztZQUNoQixHQUFHLEdBQUksVUFBK0QsQ0FDcEUsS0FBSyxDQUNOLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM3QixDQUFDLEdBQUcsSUFBQSxrQkFBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRVMsTUFBTSxDQUFtQixLQUFRO1FBQ3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQzdCLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQ1IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEMsT0FBTyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN0RCxDQUFDO2dCQUNELEdBQUcsRUFBRSxDQUFDLEdBQWUsRUFBRSxFQUFFO29CQUN2QixDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNWLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ08sTUFBTSxDQUFDLFFBQVEsQ0FBNkIsR0FBRyxJQUFlO1FBQ3RFLFdBQVcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUztZQUM1QyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM5QixDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUMxQixPQUFPLFdBQVcsQ0FBQyxTQUFjLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUNmLEtBQVE7UUFJUixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQWlCLElBQUk7UUFDL0IsT0FBTyxXQUFXLENBQUMsUUFBUSxFQUFFO2FBQzFCLElBQUksRUFBRTthQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUEsa0JBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDOztBQWhHSCxrQ0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b0VOVkZvcm1hdCB9IGZyb20gXCIuL3RleHRcIjtcbmltcG9ydCB7IEVudmlyb25tZW50RmFjdG9yeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tIFwiLi93ZWJcIjtcbmltcG9ydCB7IE9iamVjdEFjY3VtdWxhdG9yIH0gZnJvbSBcInR5cGVkLW9iamVjdC1hY2N1bXVsYXRvclwiO1xuXG4vKipcbiAqIEBjbGFzcyBFbnZpcm9ubWVudFxuICogQGV4dGVuZHMge09iamVjdEFjY3VtdWxhdG9yPFQ+fVxuICogQHRlbXBsYXRlIFRcbiAqIEBkZXNjcmlwdGlvbiBBIGNsYXNzIHJlcHJlc2VudGluZyBhbiBlbnZpcm9ubWVudCB3aXRoIGFjY3VtdWxhdGlvbiBjYXBhYmlsaXRpZXMuXG4gKiBAc3VtbWFyeSBNYW5hZ2VzIGVudmlyb25tZW50LXJlbGF0ZWQgZGF0YSBhbmQgcHJvdmlkZXMgbWV0aG9kcyBmb3IgYWNjdW11bGF0aW9uIGFuZCBrZXkgcmV0cmlldmFsLlxuICogQHBhcmFtIHtUfSBbaW5pdGlhbERhdGFdIC0gVGhlIGluaXRpYWwgZGF0YSB0byBwb3B1bGF0ZSB0aGUgZW52aXJvbm1lbnQgd2l0aC5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50PFQgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgT2JqZWN0QWNjdW11bGF0b3I8VD4ge1xuICAvKipcbiAgICogQHN0YXRpY1xuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBBIGZhY3RvcnkgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIEVudmlyb25tZW50IGluc3RhbmNlcy5cbiAgICogQHN1bW1hcnkgRGVmaW5lcyBob3cgbmV3IGluc3RhbmNlcyBvZiB0aGUgRW52aXJvbm1lbnQgY2xhc3Mgc2hvdWxkIGJlIGNyZWF0ZWQuXG4gICAqIEByZXR1cm4ge0Vudmlyb25tZW50PGFueT59IEEgbmV3IGluc3RhbmNlIG9mIHRoZSBFbnZpcm9ubWVudCBjbGFzcy5cbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgZmFjdG9yeTogRW52aXJvbm1lbnRGYWN0b3J5PGFueSwgYW55PiA9XG4gICAgKCk6IEVudmlyb25tZW50PGFueT4gPT4gbmV3IEVudmlyb25tZW50KCk7XG5cbiAgLyoqXG4gICAqIEBzdGF0aWNcbiAgICogQHByaXZhdGVcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIEVudmlyb25tZW50IGNsYXNzLlxuICAgKiBAdHlwZSB7RW52aXJvbm1lbnQ8YW55Pn1cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogRW52aXJvbm1lbnQ8YW55PjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmcm9tRW52KGs6IHN0cmluZykge1xuICAgIGxldCBlbnY6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgZW52ID0gKGdsb2JhbFRoaXMgYXMgdHlwZW9mIGdsb2JhbFRoaXMgJiB7IEVOVjogUmVjb3JkPHN0cmluZywgYW55PiB9KVtcbiAgICAgICAgXCJFTlZcIlxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW52ID0gZ2xvYmFsVGhpcy5wcm9jZXNzLmVudjtcbiAgICAgIGsgPSB0b0VOVkZvcm1hdChrKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudltrXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBleHBhbmQ8ViBleHRlbmRzIG9iamVjdD4odmFsdWU6IFYpOiB2b2lkIHtcbiAgICBPYmplY3QuZW50cmllcyh2YWx1ZSkuZm9yRWFjaCgoW2ssIHZdKSA9PiB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgaywge1xuICAgICAgICBnZXQ6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBmcm9tRW52ID0gdGhpcy5mcm9tRW52KGspO1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgZnJvbUVudiA9PT0gXCJ1bmRlZmluZWRcIiA/IHYgOiBmcm9tRW52O1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6ICh2YWw6IFZba2V5b2YgVl0pID0+IHtcbiAgICAgICAgICB2ID0gdmFsO1xuICAgICAgICB9LFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBzdGF0aWNcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBvciBjcmVhdGVzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIEVudmlyb25tZW50IGNsYXNzLlxuICAgKiBAc3VtbWFyeSBFbnN1cmVzIG9ubHkgb25lIGluc3RhbmNlIG9mIHRoZSBFbnZpcm9ubWVudCBjbGFzcyBleGlzdHMuXG4gICAqIEB0ZW1wbGF0ZSBFXG4gICAqIEBwYXJhbSB7Li4udW5rbm93bltdfSBhcmdzIC0gQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGZhY3RvcnkgZnVuY3Rpb24gaWYgYSBuZXcgaW5zdGFuY2UgaXMgY3JlYXRlZC5cbiAgICogQHJldHVybiB7RX0gVGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgRW52aXJvbm1lbnQgY2xhc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIGluc3RhbmNlPEUgZXh0ZW5kcyBFbnZpcm9ubWVudDxhbnk+PiguLi5hcmdzOiB1bmtub3duW10pOiBFIHtcbiAgICBFbnZpcm9ubWVudC5faW5zdGFuY2UgPSAhRW52aXJvbm1lbnQuX2luc3RhbmNlXG4gICAgICA/IEVudmlyb25tZW50LmZhY3RvcnkoLi4uYXJncylcbiAgICAgIDogRW52aXJvbm1lbnQuX2luc3RhbmNlO1xuICAgIHJldHVybiBFbnZpcm9ubWVudC5faW5zdGFuY2UgYXMgRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3RhdGljXG4gICAqIEBkZXNjcmlwdGlvbiBBY2N1bXVsYXRlcyB0aGUgZ2l2ZW4gdmFsdWUgaW50byB0aGUgZW52aXJvbm1lbnQuXG4gICAqIEBzdW1tYXJ5IEFkZHMgbmV3IHByb3BlcnRpZXMgdG8gdGhlIGVudmlyb25tZW50IGZyb20gdGhlIHByb3ZpZGVkIG9iamVjdC5cbiAgICogQHRlbXBsYXRlIFZcbiAgICogQHBhcmFtIHtWfSB2YWx1ZSAtIFRoZSBvYmplY3QgdG8gYWNjdW11bGF0ZSBpbnRvIHRoZSBlbnZpcm9ubWVudC5cbiAgICogQHJldHVybiB7Vn0gVGhlIHVwZGF0ZWQgZW52aXJvbm1lbnQgaW5zdGFuY2UuXG4gICAqL1xuICBzdGF0aWMgYWNjdW11bGF0ZTxWIGV4dGVuZHMgb2JqZWN0PihcbiAgICB2YWx1ZTogVlxuICApOiB0eXBlb2YgRW52aXJvbm1lbnQuX2luc3RhbmNlICZcbiAgICBWICZcbiAgICBPYmplY3RBY2N1bXVsYXRvcjx0eXBlb2YgRW52aXJvbm1lbnQuX2luc3RhbmNlICYgVj4ge1xuICAgIGNvbnN0IGluc3RhbmNlID0gRW52aXJvbm1lbnQuaW5zdGFuY2UoKTtcbiAgICByZXR1cm4gaW5zdGFuY2UuYWNjdW11bGF0ZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN0YXRpY1xuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIHRoZSBrZXlzIG9mIHRoZSBlbnZpcm9ubWVudCwgb3B0aW9uYWxseSBjb252ZXJ0aW5nIHRoZW0gdG8gRU5WIGZvcm1hdC5cbiAgICogQHN1bW1hcnkgR2V0cyBhbGwga2V5cyBpbiB0aGUgZW52aXJvbm1lbnQsIHdpdGggYW4gb3B0aW9uIHRvIGZvcm1hdCB0aGVtIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3RvRW52PXRydWVdIC0gV2hldGhlciB0byBjb252ZXJ0IHRoZSBrZXlzIHRvIEVOViBmb3JtYXQuXG4gICAqIEByZXR1cm4ge3N0cmluZ1tdfSBBbiBhcnJheSBvZiBrZXlzIGZyb20gdGhlIGVudmlyb25tZW50LlxuICAgKi9cbiAgc3RhdGljIGtleXModG9FbnY6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBFbnZpcm9ubWVudC5pbnN0YW5jZSgpXG4gICAgICAua2V5cygpXG4gICAgICAubWFwKChrKSA9PiAodG9FbnYgPyB0b0VOVkZvcm1hdChrKSA6IGspKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
- import { ObjectAccumulator } from "./accumulator";
2
1
  import { EnvironmentFactory } from "./types";
2
+ import { ObjectAccumulator } from "typed-object-accumulator";
3
3
  /**
4
4
  * @class Environment
5
5
  * @extends {ObjectAccumulator<T>}
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@decaf-ts/utils",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "description": "module management utils for decaf-ts",
5
- "type": "module",
6
5
  "exports": {
7
6
  "require": "./lib/index.cjs",
8
7
  "import": "./lib/esm/index.js"
@@ -116,6 +115,7 @@
116
115
  "dependencies": {
117
116
  "@decaf-ts/logging": "^0.2.0",
118
117
  "prompts": "^2.4.2",
119
- "styled-string-builder": "^1.4.6"
118
+ "styled-string-builder": "^1.4.6",
119
+ "typed-object-accumulator": "^0.1.4"
120
120
  }
121
121
  }
@@ -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
- }
@@ -1,144 +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 class ObjectAccumulator {
10
- constructor() {
11
- Object.defineProperty(this, "__size", {
12
- value: 0,
13
- writable: true,
14
- configurable: false,
15
- enumerable: false,
16
- });
17
- }
18
- /**
19
- * @protected
20
- * @description Expands the accumulator with properties from a new object
21
- * @summary Adds new properties to the accumulator
22
- * @template V - The type of the object being expanded
23
- * @param {V} value - The object to expand with
24
- * @returns {void}
25
- */
26
- expand(value) {
27
- Object.entries(value).forEach(([k, v]) => {
28
- Object.defineProperty(this, k, {
29
- get: () => v,
30
- set: (val) => {
31
- v = val;
32
- },
33
- configurable: true,
34
- enumerable: true,
35
- });
36
- });
37
- }
38
- /**
39
- * @description Accumulates a new object into the accumulator
40
- * @summary Adds properties from a new object to the accumulator, maintaining type information
41
- * @template V - The type of the object being accumulated
42
- * @param {V} value - The object to accumulate
43
- * @returns A new ObjectAccumulator instance with updated type information
44
- * @mermaid
45
- * sequenceDiagram
46
- * participant A as Accumulator
47
- * participant O as Object
48
- * A->>O: Get entries
49
- * loop For each entry
50
- * A->>A: Define property
51
- * end
52
- * A->>A: Update size
53
- * A->>A: Return updated accumulator
54
- */
55
- accumulate(value) {
56
- this.expand(value);
57
- this.__size = this.__size + Object.keys(value).length;
58
- return this;
59
- }
60
- /**
61
- * @description Retrieves a value from the accumulator by its key
62
- * @summary Gets a value from the accumulated object using a type-safe key
63
- * @template K - The key type, must be a key of this
64
- * @param {K} key - The key of the value to retrieve
65
- * @returns {any | undefined} The value associated with the key, or undefined if not found
66
- */
67
- get(key) {
68
- return this[key];
69
- }
70
- /**
71
- * @description Checks if a key exists in the accumulator
72
- * @summary Determines whether the accumulator contains a specific key
73
- * @param {string} key - The key to check for existence
74
- * @returns {boolean} True if the key exists, false otherwise
75
- */
76
- has(key) {
77
- return !!this[key];
78
- }
79
- /**
80
- * @description Removes a key-value pair from the accumulator
81
- * @summary Deletes a property from the accumulated object
82
- * @param {string} key - The key of the property to remove
83
- * @returns {} The accumulator instance with the specified property removed
84
- */
85
- remove(key) {
86
- if (!(key in this))
87
- return this;
88
- delete this[key];
89
- this.__size--;
90
- return this;
91
- }
92
- /**
93
- * @description Retrieves all keys from the accumulator
94
- * @summary Gets an array of all accumulated property keys
95
- * @returns {string[]} An array of keys as strings
96
- */
97
- keys() {
98
- return Object.keys(this);
99
- }
100
- /**
101
- * @description Retrieves all values from the accumulator
102
- * @summary Gets an array of all accumulated property values
103
- * @returns An array of values
104
- */
105
- values() {
106
- return Object.values(this);
107
- }
108
- /**
109
- * @description Gets the number of key-value pairs in the accumulator
110
- * @summary Returns the count of accumulated properties
111
- * @returns {number} The number of key-value pairs
112
- */
113
- size() {
114
- return this.__size;
115
- }
116
- /**
117
- * @description Clears all accumulated key-value pairs
118
- * @summary Removes all properties from the accumulator and returns a new empty instance
119
- * @returns {ObjectAccumulator<never>} A new empty ObjectAccumulator instance
120
- */
121
- clear() {
122
- return new ObjectAccumulator();
123
- }
124
- /**
125
- * @description Executes a callback for each key-value pair in the accumulator
126
- * @summary Iterates over all accumulated properties, calling a function for each
127
- * @param {function(any, string, number): void} callback - The function to execute for each entry
128
- * @returns {void}
129
- */
130
- forEach(callback) {
131
- Object.entries(this).forEach(([key, value], i) => callback(value, key, i));
132
- }
133
- /**
134
- * @description Creates a new array with the results of calling a provided function on every element in the accumulator
135
- * @summary Maps each accumulated property to a new value using a callback function
136
- * @template R - The type of the mapped values
137
- * @param {function(any, string,number): R} callback - Function that produces an element of the new array
138
- * @returns {R[]} A new array with each element being the result of the callback function
139
- */
140
- map(callback) {
141
- return Object.entries(this).map(([key, value], i) => callback(value, key, i));
142
- }
143
- }
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjdW11bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvYWNjdW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFRNUI7UUFDRSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDcEMsS0FBSyxFQUFFLENBQUM7WUFDUixRQUFRLEVBQUUsSUFBSTtZQUNkLFlBQVksRUFBRSxLQUFLO1lBQ25CLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sTUFBTSxDQUFtQixLQUFRO1FBQ3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQzdCLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLEdBQUcsRUFBRSxDQUFDLEdBQWUsRUFBRSxFQUFFO29CQUN2QixDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNWLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsVUFBVSxDQUFtQixLQUFRO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3RELE9BQU8sSUFBbUQsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsR0FBRyxDQUF1QixHQUFNO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQWlCLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQ0osR0FBd0I7UUFJeEIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWhDLE9BQU8sSUFBSSxDQUFDLEdBQWlCLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxPQUFPLElBQ29DLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJO1FBQ0YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLO1FBQ0gsT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUNMLFFBQXVFO1FBRXZFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDL0MsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFpQixFQUFFLENBQUMsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEdBQUcsQ0FDRCxRQUFvRTtRQUVwRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDbEQsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFpQixFQUFFLENBQUMsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAY2xhc3MgT2JqZWN0QWNjdW11bGF0b3JcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIGFjY3VtdWxhdGVkIG9iamVjdCwgZXh0ZW5kcyBvYmplY3RcbiAqIEBkZXNjcmlwdGlvbiBBIGNsYXNzIHRoYXQgYWNjdW11bGF0ZXMgb2JqZWN0cyBhbmQgcHJvdmlkZXMgdHlwZS1zYWZlIGFjY2VzcyB0byB0aGVpciBwcm9wZXJ0aWVzLlxuICogSXQgYWxsb3dzIGZvciBkeW5hbWljIGFkZGl0aW9uIG9mIHByb3BlcnRpZXMgd2hpbGUgbWFpbnRhaW5pbmcgdHlwZSBpbmZvcm1hdGlvbi5cbiAqIEBzdW1tYXJ5IEFjY3VtdWxhdGVzIG9iamVjdHMgYW5kIG1haW50YWlucyB0eXBlIGluZm9ybWF0aW9uIGZvciBhY2N1bXVsYXRlZCBwcm9wZXJ0aWVzXG4gKiBAbWVtYmVyT2YgdXRpbHNcbiAqL1xuZXhwb3J0IGNsYXNzIE9iamVjdEFjY3VtdWxhdG9yPFQgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgc2l6ZSBvZiB0aGUgYWNjdW11bGF0ZWQgb2JqZWN0XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBwcml2YXRlIF9fc2l6ZSE6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJfX3NpemVcIiwge1xuICAgICAgdmFsdWU6IDAsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBFeHBhbmRzIHRoZSBhY2N1bXVsYXRvciB3aXRoIHByb3BlcnRpZXMgZnJvbSBhIG5ldyBvYmplY3RcbiAgICogQHN1bW1hcnkgQWRkcyBuZXcgcHJvcGVydGllcyB0byB0aGUgYWNjdW11bGF0b3JcbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgdHlwZSBvZiB0aGUgb2JqZWN0IGJlaW5nIGV4cGFuZGVkXG4gICAqIEBwYXJhbSB7Vn0gdmFsdWUgLSBUaGUgb2JqZWN0IHRvIGV4cGFuZCB3aXRoXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgcHJvdGVjdGVkIGV4cGFuZDxWIGV4dGVuZHMgb2JqZWN0Pih2YWx1ZTogVik6IHZvaWQge1xuICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChbaywgdl0pID0+IHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBrLCB7XG4gICAgICAgIGdldDogKCkgPT4gdixcbiAgICAgICAgc2V0OiAodmFsOiBWW2tleW9mIFZdKSA9PiB7XG4gICAgICAgICAgdiA9IHZhbDtcbiAgICAgICAgfSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFjY3VtdWxhdGVzIGEgbmV3IG9iamVjdCBpbnRvIHRoZSBhY2N1bXVsYXRvclxuICAgKiBAc3VtbWFyeSBBZGRzIHByb3BlcnRpZXMgZnJvbSBhIG5ldyBvYmplY3QgdG8gdGhlIGFjY3VtdWxhdG9yLCBtYWludGFpbmluZyB0eXBlIGluZm9ybWF0aW9uXG4gICAqIEB0ZW1wbGF0ZSBWIC0gVGhlIHR5cGUgb2YgdGhlIG9iamVjdCBiZWluZyBhY2N1bXVsYXRlZFxuICAgKiBAcGFyYW0ge1Z9IHZhbHVlIC0gVGhlIG9iamVjdCB0byBhY2N1bXVsYXRlXG4gICAqIEByZXR1cm5zIEEgbmV3IE9iamVjdEFjY3VtdWxhdG9yIGluc3RhbmNlIHdpdGggdXBkYXRlZCB0eXBlIGluZm9ybWF0aW9uXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEEgYXMgQWNjdW11bGF0b3JcbiAgICogICBwYXJ0aWNpcGFudCBPIGFzIE9iamVjdFxuICAgKiAgIEEtPj5POiBHZXQgZW50cmllc1xuICAgKiAgIGxvb3AgRm9yIGVhY2ggZW50cnlcbiAgICogICAgIEEtPj5BOiBEZWZpbmUgcHJvcGVydHlcbiAgICogICBlbmRcbiAgICogICBBLT4+QTogVXBkYXRlIHNpemVcbiAgICogICBBLT4+QTogUmV0dXJuIHVwZGF0ZWQgYWNjdW11bGF0b3JcbiAgICovXG4gIGFjY3VtdWxhdGU8ViBleHRlbmRzIG9iamVjdD4odmFsdWU6IFYpOiBUICYgViAmIE9iamVjdEFjY3VtdWxhdG9yPFQgJiBWPiB7XG4gICAgdGhpcy5leHBhbmQodmFsdWUpO1xuICAgIHRoaXMuX19zaXplID0gdGhpcy5fX3NpemUgKyBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoO1xuICAgIHJldHVybiB0aGlzIGFzIHVua25vd24gYXMgVCAmIFYgJiBPYmplY3RBY2N1bXVsYXRvcjxUICYgVj47XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBhIHZhbHVlIGZyb20gdGhlIGFjY3VtdWxhdG9yIGJ5IGl0cyBrZXlcbiAgICogQHN1bW1hcnkgR2V0cyBhIHZhbHVlIGZyb20gdGhlIGFjY3VtdWxhdGVkIG9iamVjdCB1c2luZyBhIHR5cGUtc2FmZSBrZXlcbiAgICogQHRlbXBsYXRlIEsgLSBUaGUga2V5IHR5cGUsIG11c3QgYmUgYSBrZXkgb2YgdGhpc1xuICAgKiBAcGFyYW0ge0t9IGtleSAtIFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIHthbnkgfCB1bmRlZmluZWR9IFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGtleSwgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgZ2V0PEsgZXh0ZW5kcyBrZXlvZiB0aGlzPihrZXk6IEspOiB0aGlzW0tdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpc1trZXldO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgYSBrZXkgZXhpc3RzIGluIHRoZSBhY2N1bXVsYXRvclxuICAgKiBAc3VtbWFyeSBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGFjY3VtdWxhdG9yIGNvbnRhaW5zIGEgc3BlY2lmaWMga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHRvIGNoZWNrIGZvciBleGlzdGVuY2VcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIGtleSBleGlzdHMsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaGFzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpc1trZXkgYXMga2V5b2YgdGhpc107XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlbW92ZXMgYSBrZXktdmFsdWUgcGFpciBmcm9tIHRoZSBhY2N1bXVsYXRvclxuICAgKiBAc3VtbWFyeSBEZWxldGVzIGEgcHJvcGVydHkgZnJvbSB0aGUgYWNjdW11bGF0ZWQgb2JqZWN0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byByZW1vdmVcbiAgICogQHJldHVybnMge30gVGhlIGFjY3VtdWxhdG9yIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSByZW1vdmVkXG4gICAqL1xuICByZW1vdmUoXG4gICAga2V5OiBrZXlvZiB0aGlzIHwgc3RyaW5nXG4gICk6XG4gICAgfCAoT21pdDx0aGlzLCB0eXBlb2Yga2V5PiAmIE9iamVjdEFjY3VtdWxhdG9yPE9taXQ8dGhpcywgdHlwZW9mIGtleT4+KVxuICAgIHwgdGhpcyB7XG4gICAgaWYgKCEoa2V5IGluIHRoaXMpKSByZXR1cm4gdGhpcztcblxuICAgIGRlbGV0ZSB0aGlzW2tleSBhcyBrZXlvZiB0aGlzXTtcbiAgICB0aGlzLl9fc2l6ZS0tO1xuICAgIHJldHVybiB0aGlzIGFzIHVua25vd24gYXMgT21pdDx0aGlzLCB0eXBlb2Yga2V5PiAmXG4gICAgICBPYmplY3RBY2N1bXVsYXRvcjxPbWl0PHRoaXMsIHR5cGVvZiBrZXk+PjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGFsbCBrZXlzIGZyb20gdGhlIGFjY3VtdWxhdG9yXG4gICAqIEBzdW1tYXJ5IEdldHMgYW4gYXJyYXkgb2YgYWxsIGFjY3VtdWxhdGVkIHByb3BlcnR5IGtleXNcbiAgICogQHJldHVybnMge3N0cmluZ1tdfSBBbiBhcnJheSBvZiBrZXlzIGFzIHN0cmluZ3NcbiAgICovXG4gIGtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGFsbCB2YWx1ZXMgZnJvbSB0aGUgYWNjdW11bGF0b3JcbiAgICogQHN1bW1hcnkgR2V0cyBhbiBhcnJheSBvZiBhbGwgYWNjdW11bGF0ZWQgcHJvcGVydHkgdmFsdWVzXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHZhbHVlc1xuICAgKi9cbiAgdmFsdWVzKCk6IFRba2V5b2YgVF1bXSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIGFjY3VtdWxhdG9yXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIGNvdW50IG9mIGFjY3VtdWxhdGVkIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnNcbiAgICovXG4gIHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fX3NpemU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENsZWFycyBhbGwgYWNjdW11bGF0ZWQga2V5LXZhbHVlIHBhaXJzXG4gICAqIEBzdW1tYXJ5IFJlbW92ZXMgYWxsIHByb3BlcnRpZXMgZnJvbSB0aGUgYWNjdW11bGF0b3IgYW5kIHJldHVybnMgYSBuZXcgZW1wdHkgaW5zdGFuY2VcbiAgICogQHJldHVybnMge09iamVjdEFjY3VtdWxhdG9yPG5ldmVyPn0gQSBuZXcgZW1wdHkgT2JqZWN0QWNjdW11bGF0b3IgaW5zdGFuY2VcbiAgICovXG4gIGNsZWFyKCk6IE9iamVjdEFjY3VtdWxhdG9yPG5ldmVyPiB7XG4gICAgcmV0dXJuIG5ldyBPYmplY3RBY2N1bXVsYXRvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIGNhbGxiYWNrIGZvciBlYWNoIGtleS12YWx1ZSBwYWlyIGluIHRoZSBhY2N1bXVsYXRvclxuICAgKiBAc3VtbWFyeSBJdGVyYXRlcyBvdmVyIGFsbCBhY2N1bXVsYXRlZCBwcm9wZXJ0aWVzLCBjYWxsaW5nIGEgZnVuY3Rpb24gZm9yIGVhY2hcbiAgICogQHBhcmFtIHtmdW5jdGlvbihhbnksIHN0cmluZywgbnVtYmVyKTogdm9pZH0gY2FsbGJhY2sgLSBUaGUgZnVuY3Rpb24gdG8gZXhlY3V0ZSBmb3IgZWFjaCBlbnRyeVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGZvckVhY2goXG4gICAgY2FsbGJhY2s6ICh2YWx1ZTogdGhpc1trZXlvZiB0aGlzXSwga2V5OiBrZXlvZiB0aGlzLCBpOiBudW1iZXIpID0+IHZvaWRcbiAgKTogdm9pZCB7XG4gICAgT2JqZWN0LmVudHJpZXModGhpcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdLCBpKSA9PlxuICAgICAgY2FsbGJhY2sodmFsdWUsIGtleSBhcyBrZXlvZiB0aGlzLCBpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgYXJyYXkgd2l0aCB0aGUgcmVzdWx0cyBvZiBjYWxsaW5nIGEgcHJvdmlkZWQgZnVuY3Rpb24gb24gZXZlcnkgZWxlbWVudCBpbiB0aGUgYWNjdW11bGF0b3JcbiAgICogQHN1bW1hcnkgTWFwcyBlYWNoIGFjY3VtdWxhdGVkIHByb3BlcnR5IHRvIGEgbmV3IHZhbHVlIHVzaW5nIGEgY2FsbGJhY2sgZnVuY3Rpb25cbiAgICogQHRlbXBsYXRlIFIgLSBUaGUgdHlwZSBvZiB0aGUgbWFwcGVkIHZhbHVlc1xuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGFueSwgc3RyaW5nLG51bWJlcik6IFJ9IGNhbGxiYWNrIC0gRnVuY3Rpb24gdGhhdCBwcm9kdWNlcyBhbiBlbGVtZW50IG9mIHRoZSBuZXcgYXJyYXlcbiAgICogQHJldHVybnMge1JbXX0gQSBuZXcgYXJyYXkgd2l0aCBlYWNoIGVsZW1lbnQgYmVpbmcgdGhlIHJlc3VsdCBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb25cbiAgICovXG4gIG1hcDxSPihcbiAgICBjYWxsYmFjazogKHZhbHVlOiB0aGlzW2tleW9mIHRoaXNdLCBrZXk6IGtleW9mIHRoaXMsIGk6IG51bWJlcikgPT4gUlxuICApOiBSW10ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzKS5tYXAoKFtrZXksIHZhbHVlXSwgaSkgPT5cbiAgICAgIGNhbGxiYWNrKHZhbHVlLCBrZXkgYXMga2V5b2YgdGhpcywgaSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -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
- }