{"version":3,"sources":["../../../src/internals/helpers/array.ts"],"names":["removeFromArray","arr","target","index","findIndex","value","splice","castArray","result","Array","isArray","hasMinLength","n","length","watchArray","array","handlers","Proxy","set","property","receiver","apply","Reflect","Number","isInteger","isAdd","oldValue","onAdd","onRemove","deleteProperty","undefined"],"mappings":"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","file":"array.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport function removeFromArray<T>(arr: T[], target: T): boolean {\n  const index = arr.findIndex((value) => value === target);\n  if (index === -1) {\n    return false;\n  }\n\n  arr.splice(index, 1);\n  return true;\n}\n\nexport function castArray<T>(arr: T) {\n  const result = Array.isArray(arr) ? arr : [arr];\n  return result as T extends unknown[] ? T : [T];\n}\n\ntype HasMinLength<T, N extends number, T2 extends any[] = []> = T2[\"length\"] extends N\n  ? [...T2, ...T[]]\n  : HasMinLength<T, N, [any, ...T2]>;\n\nexport function hasMinLength<T, N extends number>(arr: T[], n: N): arr is HasMinLength<T, N> {\n  return arr.length >= n;\n}\n\ninterface ArrayChangeHandlers<T> {\n  onAdd?: (value: T) => void;\n  onRemove?: (value: T) => void;\n}\n\nexport function watchArray<T>(array: T[], handlers: ArrayChangeHandlers<T>): T[] {\n  /**\n   * Does not handle 'length' modification\n   */\n\n  return new Proxy(array, {\n    set(target, property, value, receiver) {\n      const apply = () => Reflect.set(target, property, value, receiver);\n\n      const index = Number(property);\n\n      // Ignore non-index and length changes\n      if (!Number.isInteger(index) || index < 0) {\n        return apply();\n      }\n\n      const isAdd = !(property in target);\n      const oldValue = target[index];\n      const result = apply();\n\n      if (isAdd) {\n        handlers.onAdd?.(value);\n      } else if (oldValue !== value) {\n        // Treat replacement as removal + add\n        handlers.onRemove?.(oldValue);\n        handlers.onAdd?.(value);\n      }\n\n      return result;\n    },\n\n    deleteProperty(target, property) {\n      const index = Number(property);\n\n      if (!Number.isInteger(index) || index < 0) {\n        return Reflect.deleteProperty(target, property);\n      }\n\n      const oldValue = target[index];\n      const result = Reflect.deleteProperty(target, property);\n\n      if (result && oldValue !== undefined) {\n        handlers.onRemove?.(oldValue);\n      }\n\n      return result;\n    },\n  });\n}\n"]}