@lehnihon/bit-form 2.2.13 → 2.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +2 -1
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.js +1 -1
  4. package/dist/chunk-4EMYM7JF.cjs +2 -0
  5. package/dist/chunk-4EMYM7JF.cjs.map +1 -0
  6. package/dist/{chunk-ALIYU2RT.cjs → chunk-AVUK52JW.cjs} +2 -2
  7. package/dist/{chunk-ALIYU2RT.cjs.map → chunk-AVUK52JW.cjs.map} +1 -1
  8. package/dist/chunk-CIZ6UW2J.cjs +2 -0
  9. package/dist/{chunk-MAKFWOL5.cjs.map → chunk-CIZ6UW2J.cjs.map} +1 -1
  10. package/dist/chunk-FTXV2NZO.cjs +2 -0
  11. package/dist/{chunk-VOA3SKFY.cjs.map → chunk-FTXV2NZO.cjs.map} +1 -1
  12. package/dist/chunk-G3EHXKOS.js +2 -0
  13. package/dist/chunk-G3EHXKOS.js.map +1 -0
  14. package/dist/{chunk-OSQWKXFI.cjs → chunk-GKNGJOB3.cjs} +2 -2
  15. package/dist/{chunk-OSQWKXFI.cjs.map → chunk-GKNGJOB3.cjs.map} +1 -1
  16. package/dist/{chunk-JKYECJH5.js → chunk-HE6EQZTH.js} +2 -2
  17. package/dist/{chunk-IXZ52RPZ.cjs → chunk-IB2BMG4F.cjs} +2 -2
  18. package/dist/{chunk-IXZ52RPZ.cjs.map → chunk-IB2BMG4F.cjs.map} +1 -1
  19. package/dist/{chunk-LM34BK4Q.cjs → chunk-KGI5PU2P.cjs} +2 -2
  20. package/dist/{chunk-LM34BK4Q.cjs.map → chunk-KGI5PU2P.cjs.map} +1 -1
  21. package/dist/chunk-KMOB6DB6.js +2 -0
  22. package/dist/chunk-KMOB6DB6.js.map +1 -0
  23. package/dist/{chunk-7OZR7KWL.js → chunk-LBISXDNW.js} +2 -2
  24. package/dist/chunk-NFKYWPEV.js +2 -0
  25. package/dist/chunk-NFKYWPEV.js.map +1 -0
  26. package/dist/{chunk-EY44ZBGC.js → chunk-SYEUXL2E.js} +2 -2
  27. package/dist/{chunk-4NQOD2BA.js → chunk-VSNLUHZQ.js} +2 -2
  28. package/dist/cli/index.cjs +378 -84
  29. package/dist/core/bindings.cjs +1 -1
  30. package/dist/core/bindings.js +1 -1
  31. package/dist/core/store.cjs +1 -1
  32. package/dist/core/store.js +1 -1
  33. package/dist/core/utils.cjs +1 -1
  34. package/dist/core/utils.js +1 -1
  35. package/dist/core.cjs +1 -1
  36. package/dist/core.js +1 -1
  37. package/dist/devtools/bridge.cjs +1 -1
  38. package/dist/devtools/bridge.js +1 -1
  39. package/dist/devtools/index.cjs +2 -2
  40. package/dist/devtools/index.js +1 -1
  41. package/dist/index.cjs +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/react/index.cjs +1 -1
  44. package/dist/react/index.js +1 -1
  45. package/dist/react-native/index.cjs +1 -1
  46. package/dist/react-native/index.js +1 -1
  47. package/dist/utils.cjs +1 -1
  48. package/dist/utils.js +1 -1
  49. package/dist/vue/index.cjs +1 -1
  50. package/dist/vue/index.js +1 -1
  51. package/package.json +1 -1
  52. package/dist/chunk-G4HK5QTU.js +0 -2
  53. package/dist/chunk-G4HK5QTU.js.map +0 -1
  54. package/dist/chunk-IMMFFTXE.js +0 -2
  55. package/dist/chunk-IMMFFTXE.js.map +0 -1
  56. package/dist/chunk-MAKFWOL5.cjs +0 -2
  57. package/dist/chunk-MJ4AOJRT.cjs +0 -2
  58. package/dist/chunk-MJ4AOJRT.cjs.map +0 -1
  59. package/dist/chunk-VOA3SKFY.cjs +0 -2
  60. package/dist/chunk-W2FPKUNM.js +0 -2
  61. package/dist/chunk-W2FPKUNM.js.map +0 -1
  62. /package/dist/{chunk-JKYECJH5.js.map → chunk-HE6EQZTH.js.map} +0 -0
  63. /package/dist/{chunk-7OZR7KWL.js.map → chunk-LBISXDNW.js.map} +0 -0
  64. /package/dist/{chunk-EY44ZBGC.js.map → chunk-SYEUXL2E.js.map} +0 -0
  65. /package/dist/{chunk-4NQOD2BA.js.map → chunk-VSNLUHZQ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-MAKFWOL5.cjs","../src/core/store/engines/store-field-query-engine.ts","../src/core/store/orchestration/framework-store-brand.ts","../src/core/store/orchestration/hook-brand.ts","../src/core/store/managers/core/baseline-manager.ts","../src/core/store/managers/core/computed-manager.ts"],"names":["resolveFieldMask","args","path","getFieldConfig","masks","maskOption","createFieldStateSnapshot","state","value","isHidden","isRequired","isDirty","isValidating","pathKey","BIT_FRAMEWORK_STORE_SYMBOL","BIT_HOOKS_API_SYMBOL","BitBaselineManager","baselineValues","deepClone","values","BitComputedManager","getComputedEntries","onError","changedPaths","computedEntries","entriesToRun","nextValues","failedPaths","entry","dep","newValue","error","currentValue","getDeepValue","cached","valuesEqual","canUseScalarCache","deepEqual","setDeepValue","entries","map","dependents","childIdx","segments","len","prefix","children","reverseDependencies","affectedPaths","queue","queueIndex","currentPath","dependentPath","orderedAllEntries","indexByPath","affectedEntries","entryIndex","left","right","item","entryByPath","inDegree","dependencyPath","nextDependents","orderedPaths","nextDegree","signature","ordered","orderedEntries","index"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-MAKFWOL5.cjs","sourcesContent":[null,"import type { BitMask, BitMaskName } from \"../../mask/types\";\nimport type {\n BitErrors,\n BitFieldDefinition,\n BitFieldState,\n BitPath,\n BitPathValue,\n BitState,\n} from \"../contracts/types\";\n\nexport function resolveFieldMask<T extends object>(args: {\n path: string;\n getFieldConfig: (path: string) => BitFieldDefinition<T> | undefined;\n masks: Record<BitMaskName, BitMask> | undefined;\n}): BitMask | undefined {\n const { path, getFieldConfig, masks } = args;\n const maskOption = getFieldConfig(path)?.mask;\n\n if (!maskOption) {\n return undefined;\n }\n\n if (typeof maskOption === \"string\") {\n return masks?.[maskOption as keyof typeof masks];\n }\n\n return maskOption;\n}\n\nexport function createFieldStateSnapshot<\n TForm extends object,\n P extends BitPath<TForm>,\n>(args: {\n state: Readonly<BitState<TForm>>;\n path: P;\n value: BitPathValue<TForm, P>;\n isHidden: boolean;\n isRequired: boolean;\n isDirty: boolean;\n isValidating: boolean;\n}): BitFieldState<TForm, BitPathValue<TForm, P>> {\n const { state, path, value, isHidden, isRequired, isDirty, isValidating } =\n args;\n const pathKey = path as string;\n\n return {\n value,\n error: state.errors[pathKey as keyof BitErrors<TForm>],\n touched: !!state.touched[pathKey as keyof typeof state.touched],\n isHidden,\n isRequired,\n isDirty,\n isValidating,\n };\n}\n","export const BIT_FRAMEWORK_STORE_SYMBOL = Symbol.for(\n \"bit-form.framework-store-api\",\n);\n","export const BIT_HOOKS_API_SYMBOL = Symbol.for(\"bit-form.hooks-api\");\n","import { deepClone } from \"../../../utils\";\n\nexport class BitBaselineManager<T extends object> {\n constructor(baselineValues: T) {\n this.baselineValues = deepClone(baselineValues);\n }\n\n private baselineValues: T;\n private baselineSnapshot?: Readonly<T>;\n\n getValues(): T {\n if (!this.baselineSnapshot) {\n this.baselineSnapshot = Object.freeze(deepClone(this.baselineValues));\n }\n\n return this.baselineSnapshot as T;\n }\n\n setValues(values: T): void {\n this.baselineValues = deepClone(values);\n this.baselineSnapshot = undefined;\n }\n}\n","import { deepEqual, getDeepValue, setDeepValue } from \"../../../utils\";\nimport type { BitComputedFn } from \"../../contracts/types\";\n\nexport interface BitComputedEntry<T extends object> {\n path: string;\n compute: BitComputedFn<T>;\n dependsOn: readonly string[];\n}\n\nexport class BitComputedManager<T extends object> {\n private equalityCache = new Map<\n string,\n { current: unknown; next: unknown; equal: boolean }\n >();\n private reverseDepsCache: Map<string, Set<string>> | null = null;\n private childDepsIndex: Map<string, Set<string>> | null = null;\n private validatedEntriesSignature: string | null = null;\n private validatedEntriesRef: BitComputedEntry<T>[] | null = null;\n private orderedAllEntriesCache: {\n signature: string;\n ordered: BitComputedEntry<T>[];\n } | null = null;\n private orderedIndexByPathCache: {\n signature: string;\n indexByPath: Map<string, number>;\n } | null = null;\n\n constructor(\n private getComputedEntries: () => BitComputedEntry<T>[],\n private onError?: (error: unknown, path: string) => void,\n ) {}\n\n private isCacheableScalar(value: unknown): boolean {\n return (\n value === null ||\n (typeof value !== \"object\" && typeof value !== \"function\")\n );\n }\n\n invalidateReverseDeps(): void {\n this.reverseDepsCache = null;\n this.childDepsIndex = null;\n this.orderedAllEntriesCache = null;\n this.validatedEntriesSignature = null;\n this.validatedEntriesRef = null;\n this.orderedIndexByPathCache = null;\n this.equalityCache.clear();\n }\n\n apply(values: T, changedPaths?: readonly string[]): T {\n const computedEntries = this.getComputedEntries();\n if (computedEntries.length === 0) return values;\n\n this.ensureEntriesAreValid(computedEntries);\n\n const entriesToRun = this.resolveEntriesToRun(\n computedEntries,\n changedPaths,\n );\n\n if (entriesToRun.length === 0) {\n return values;\n }\n\n let nextValues = values;\n const failedPaths = new Set<string>();\n\n for (const entry of entriesToRun) {\n // Skip this entry if any of its declared dependencies failed in this run.\n if (entry.dependsOn.some((dep) => failedPaths.has(dep))) {\n failedPaths.add(entry.path);\n continue;\n }\n\n let newValue: unknown;\n try {\n newValue = entry.compute(nextValues);\n } catch (error) {\n this.onError?.(error, entry.path);\n failedPaths.add(entry.path);\n continue;\n }\n const currentValue = getDeepValue(nextValues, entry.path);\n\n const cached = this.equalityCache.get(entry.path);\n let valuesEqual: boolean;\n const canUseScalarCache =\n this.isCacheableScalar(currentValue) &&\n this.isCacheableScalar(newValue);\n\n if (\n canUseScalarCache &&\n cached &&\n cached.current === currentValue &&\n cached.next === newValue\n ) {\n valuesEqual = cached.equal;\n } else {\n valuesEqual = deepEqual(currentValue, newValue);\n\n if (canUseScalarCache) {\n this.equalityCache.set(entry.path, {\n current: currentValue,\n next: newValue,\n equal: valuesEqual,\n });\n } else {\n this.equalityCache.delete(entry.path);\n }\n }\n\n if (!valuesEqual) {\n nextValues = setDeepValue(nextValues, entry.path, newValue);\n }\n }\n return nextValues;\n }\n\n private getReverseDependencies(\n entries: BitComputedEntry<T>[],\n ): Map<string, Set<string>> {\n if (this.reverseDepsCache) return this.reverseDepsCache;\n\n const map = new Map<string, Set<string>>();\n\n for (const entry of entries) {\n for (const dep of entry.dependsOn) {\n let dependents = map.get(dep);\n if (!dependents) {\n dependents = new Set();\n map.set(dep, dependents);\n }\n dependents.add(entry.path);\n }\n }\n\n const childIdx = new Map<string, Set<string>>();\n\n for (const dep of map.keys()) {\n const segments = dep.split(\".\");\n for (let len = 1; len < segments.length; len++) {\n const prefix = segments.slice(0, len).join(\".\");\n let children = childIdx.get(prefix);\n if (!children) {\n children = new Set();\n childIdx.set(prefix, children);\n }\n children.add(dep);\n }\n }\n\n this.reverseDepsCache = map;\n this.childDepsIndex = childIdx;\n return map;\n }\n\n private resolveEntriesToRun(\n entries: BitComputedEntry<T>[],\n changedPaths?: readonly string[],\n ): BitComputedEntry<T>[] {\n if (\n !changedPaths ||\n changedPaths.length === 0 ||\n changedPaths.includes(\"*\")\n ) {\n return this.getOrderedAllEntries(entries);\n }\n\n const reverseDependencies = this.getReverseDependencies(entries);\n const affectedPaths = new Set<string>();\n const queue = [...changedPaths];\n let queueIndex = 0;\n\n while (queueIndex < queue.length) {\n const currentPath = queue[queueIndex++]!;\n const dependents = this.getDependentsForPath(\n reverseDependencies,\n currentPath,\n );\n\n if (!dependents) {\n continue;\n }\n\n for (const dependentPath of dependents) {\n if (affectedPaths.has(dependentPath)) {\n continue;\n }\n\n affectedPaths.add(dependentPath);\n queue.push(dependentPath);\n }\n }\n\n if (affectedPaths.size === 0) {\n return [];\n }\n\n const orderedAllEntries = this.getOrderedAllEntries(entries);\n const indexByPath = this.getOrderedIndexByPath(entries, orderedAllEntries);\n const affectedEntries: Array<{\n index: number;\n entry: BitComputedEntry<T>;\n }> = [];\n\n affectedPaths.forEach((path) => {\n const entryIndex = indexByPath.get(path);\n if (entryIndex === undefined) {\n return;\n }\n\n const entry = orderedAllEntries[entryIndex];\n if (!entry) {\n return;\n }\n\n affectedEntries.push({ index: entryIndex, entry });\n });\n\n affectedEntries.sort((left, right) => left.index - right.index);\n return affectedEntries.map((item) => item.entry);\n }\n\n private orderEntries(entries: BitComputedEntry<T>[]) {\n if (entries.length <= 1) {\n return entries;\n }\n\n const entryByPath = new Map(entries.map((entry) => [entry.path, entry]));\n const inDegree = new Map<string, number>();\n const dependents = new Map<string, Set<string>>();\n\n entries.forEach((entry) => inDegree.set(entry.path, 0));\n\n entries.forEach((entry) => {\n entry.dependsOn.forEach((dependencyPath) => {\n if (!entryByPath.has(dependencyPath)) {\n return;\n }\n\n const nextDependents = dependents.get(dependencyPath) ?? new Set();\n if (!nextDependents.has(entry.path)) {\n nextDependents.add(entry.path);\n dependents.set(dependencyPath, nextDependents);\n inDegree.set(entry.path, (inDegree.get(entry.path) ?? 0) + 1);\n }\n });\n });\n\n const queue = entries\n .filter((entry) => (inDegree.get(entry.path) ?? 0) === 0)\n .map((entry) => entry.path);\n const orderedPaths: string[] = [];\n\n while (queue.length > 0) {\n const currentPath = queue.shift()!;\n orderedPaths.push(currentPath);\n\n const nextDependents = dependents.get(currentPath);\n if (!nextDependents) {\n continue;\n }\n\n nextDependents.forEach((dependentPath) => {\n const nextDegree = (inDegree.get(dependentPath) ?? 0) - 1;\n inDegree.set(dependentPath, nextDegree);\n\n if (nextDegree === 0) {\n queue.push(dependentPath);\n }\n });\n }\n\n if (orderedPaths.length !== entries.length) {\n throw new Error(\n \"BitStore: cyclic computed dependencies detected. Check computedDependsOn definitions.\",\n );\n }\n\n return orderedPaths.map((path) => entryByPath.get(path)!);\n }\n\n private getOrderedAllEntries(entries: BitComputedEntry<T>[]) {\n const signature = this.createEntriesSignature(entries);\n if (\n this.orderedAllEntriesCache &&\n this.orderedAllEntriesCache.signature === signature\n ) {\n return this.orderedAllEntriesCache.ordered;\n }\n\n const ordered = this.orderEntries(entries);\n this.orderedAllEntriesCache = { signature, ordered };\n return ordered;\n }\n\n private getOrderedIndexByPath(\n entries: BitComputedEntry<T>[],\n orderedEntries: BitComputedEntry<T>[],\n ): Map<string, number> {\n const signature = this.createEntriesSignature(entries);\n if (\n this.orderedIndexByPathCache &&\n this.orderedIndexByPathCache.signature === signature\n ) {\n return this.orderedIndexByPathCache.indexByPath;\n }\n\n const indexByPath = new Map<string, number>();\n orderedEntries.forEach((entry, index) => {\n indexByPath.set(entry.path, index);\n });\n\n this.orderedIndexByPathCache = { signature, indexByPath };\n return indexByPath;\n }\n\n private ensureEntriesAreValid(entries: BitComputedEntry<T>[]) {\n if (this.validatedEntriesRef === entries) {\n return;\n }\n\n const signature = this.createEntriesSignature(entries);\n if (this.validatedEntriesSignature === signature) {\n this.validatedEntriesRef = entries;\n return;\n }\n\n entries.forEach((entry) => this.assertDependencies(entry));\n this.invalidateReverseDeps();\n this.validatedEntriesSignature = signature;\n this.validatedEntriesRef = entries;\n }\n\n private createEntriesSignature(entries: BitComputedEntry<T>[]): string {\n return entries\n .map((entry) => `${entry.path}:${entry.dependsOn.join(\",\")}`)\n .join(\"|\");\n }\n\n private getDependentsForPath(\n reverseDependencies: Map<string, Set<string>>,\n changedPath: string,\n ) {\n const dependents = new Set<string>();\n\n const collect = (dependencyPath: string) => {\n const listeners = reverseDependencies.get(dependencyPath);\n if (!listeners) {\n return;\n }\n\n listeners.forEach((path) => dependents.add(path));\n };\n\n collect(changedPath);\n\n const parentSegments = changedPath.split(\".\");\n while (parentSegments.length > 1) {\n parentSegments.pop();\n collect(parentSegments.join(\".\"));\n }\n\n const childKeys = this.childDepsIndex?.get(changedPath);\n if (childKeys) {\n for (const childDep of childKeys) {\n collect(childDep);\n }\n }\n\n return dependents;\n }\n\n private assertDependencies(entry: BitComputedEntry<T>) {\n if (entry.dependsOn.length === 0) {\n throw new Error(\n `BitStore: computed field \\`${entry.path}\\` requires explicit computedDependsOn in v4.`,\n );\n }\n\n if (entry.dependsOn.includes(entry.path)) {\n throw new Error(\n `BitStore: computed field \\`${entry.path}\\` cannot depend on itself.`,\n );\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-CIZ6UW2J.cjs","../src/core/store/engines/store-field-query-engine.ts","../src/core/store/orchestration/framework-store-brand.ts","../src/core/store/orchestration/hook-brand.ts","../src/core/store/managers/core/baseline-manager.ts","../src/core/store/managers/core/computed-manager.ts"],"names":["resolveFieldMask","args","path","getFieldConfig","masks","maskOption","createFieldStateSnapshot","state","value","isHidden","isRequired","isDirty","isValidating","pathKey","BIT_FRAMEWORK_STORE_SYMBOL","BIT_HOOKS_API_SYMBOL","BitBaselineManager","baselineValues","deepClone","values","BitComputedManager","getComputedEntries","onError","changedPaths","computedEntries","entriesToRun","nextValues","failedPaths","entry","dep","newValue","error","currentValue","getDeepValue","cached","valuesEqual","canUseScalarCache","deepEqual","setDeepValue","entries","map","dependents","childIdx","segments","len","prefix","children","reverseDependencies","affectedPaths","queue","queueIndex","currentPath","dependentPath","orderedAllEntries","indexByPath","affectedEntries","entryIndex","left","right","item","entryByPath","inDegree","dependencyPath","nextDependents","orderedPaths","nextDegree","signature","ordered","orderedEntries","index"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-CIZ6UW2J.cjs","sourcesContent":[null,"import type { BitMask, BitMaskName } from \"../../mask/types\";\nimport type {\n BitErrors,\n BitFieldDefinition,\n BitFieldState,\n BitPath,\n BitPathValue,\n BitState,\n} from \"../contracts/types\";\n\nexport function resolveFieldMask<T extends object>(args: {\n path: string;\n getFieldConfig: (path: string) => BitFieldDefinition<T> | undefined;\n masks: Record<BitMaskName, BitMask> | undefined;\n}): BitMask | undefined {\n const { path, getFieldConfig, masks } = args;\n const maskOption = getFieldConfig(path)?.mask;\n\n if (!maskOption) {\n return undefined;\n }\n\n if (typeof maskOption === \"string\") {\n return masks?.[maskOption as keyof typeof masks];\n }\n\n return maskOption;\n}\n\nexport function createFieldStateSnapshot<\n TForm extends object,\n P extends BitPath<TForm>,\n>(args: {\n state: Readonly<BitState<TForm>>;\n path: P;\n value: BitPathValue<TForm, P>;\n isHidden: boolean;\n isRequired: boolean;\n isDirty: boolean;\n isValidating: boolean;\n}): BitFieldState<TForm, BitPathValue<TForm, P>> {\n const { state, path, value, isHidden, isRequired, isDirty, isValidating } =\n args;\n const pathKey = path as string;\n\n return {\n value,\n error: state.errors[pathKey as keyof BitErrors<TForm>],\n touched: !!state.touched[pathKey as keyof typeof state.touched],\n isHidden,\n isRequired,\n isDirty,\n isValidating,\n };\n}\n","export const BIT_FRAMEWORK_STORE_SYMBOL = Symbol.for(\n \"bit-form.framework-store-api\",\n);\n","export const BIT_HOOKS_API_SYMBOL = Symbol.for(\"bit-form.hooks-api\");\n","import { deepClone } from \"../../../utils\";\n\nexport class BitBaselineManager<T extends object> {\n constructor(baselineValues: T) {\n this.baselineValues = deepClone(baselineValues);\n }\n\n private baselineValues: T;\n private baselineSnapshot?: Readonly<T>;\n\n getValues(): T {\n if (!this.baselineSnapshot) {\n this.baselineSnapshot = Object.freeze(deepClone(this.baselineValues));\n }\n\n return this.baselineSnapshot as T;\n }\n\n setValues(values: T): void {\n this.baselineValues = deepClone(values);\n this.baselineSnapshot = undefined;\n }\n}\n","import { deepEqual, getDeepValue, setDeepValue } from \"../../../utils\";\nimport type { BitComputedFn } from \"../../contracts/types\";\n\nexport interface BitComputedEntry<T extends object> {\n path: string;\n compute: BitComputedFn<T>;\n dependsOn: readonly string[];\n}\n\nexport class BitComputedManager<T extends object> {\n private equalityCache = new Map<\n string,\n { current: unknown; next: unknown; equal: boolean }\n >();\n private reverseDepsCache: Map<string, Set<string>> | null = null;\n private childDepsIndex: Map<string, Set<string>> | null = null;\n private validatedEntriesSignature: string | null = null;\n private validatedEntriesRef: BitComputedEntry<T>[] | null = null;\n private orderedAllEntriesCache: {\n signature: string;\n ordered: BitComputedEntry<T>[];\n } | null = null;\n private orderedIndexByPathCache: {\n signature: string;\n indexByPath: Map<string, number>;\n } | null = null;\n\n constructor(\n private getComputedEntries: () => BitComputedEntry<T>[],\n private onError?: (error: unknown, path: string) => void,\n ) {}\n\n private isCacheableScalar(value: unknown): boolean {\n return (\n value === null ||\n (typeof value !== \"object\" && typeof value !== \"function\")\n );\n }\n\n invalidateReverseDeps(): void {\n this.reverseDepsCache = null;\n this.childDepsIndex = null;\n this.orderedAllEntriesCache = null;\n this.validatedEntriesSignature = null;\n this.validatedEntriesRef = null;\n this.orderedIndexByPathCache = null;\n this.equalityCache.clear();\n }\n\n apply(values: T, changedPaths?: readonly string[]): T {\n const computedEntries = this.getComputedEntries();\n if (computedEntries.length === 0) return values;\n\n this.ensureEntriesAreValid(computedEntries);\n\n const entriesToRun = this.resolveEntriesToRun(\n computedEntries,\n changedPaths,\n );\n\n if (entriesToRun.length === 0) {\n return values;\n }\n\n let nextValues = values;\n const failedPaths = new Set<string>();\n\n for (const entry of entriesToRun) {\n // Skip this entry if any of its declared dependencies failed in this run.\n if (entry.dependsOn.some((dep) => failedPaths.has(dep))) {\n failedPaths.add(entry.path);\n continue;\n }\n\n let newValue: unknown;\n try {\n newValue = entry.compute(nextValues);\n } catch (error) {\n this.onError?.(error, entry.path);\n failedPaths.add(entry.path);\n continue;\n }\n const currentValue = getDeepValue(nextValues, entry.path);\n\n const cached = this.equalityCache.get(entry.path);\n let valuesEqual: boolean;\n const canUseScalarCache =\n this.isCacheableScalar(currentValue) &&\n this.isCacheableScalar(newValue);\n\n if (\n canUseScalarCache &&\n cached &&\n cached.current === currentValue &&\n cached.next === newValue\n ) {\n valuesEqual = cached.equal;\n } else {\n valuesEqual = deepEqual(currentValue, newValue);\n\n if (canUseScalarCache) {\n this.equalityCache.set(entry.path, {\n current: currentValue,\n next: newValue,\n equal: valuesEqual,\n });\n } else {\n this.equalityCache.delete(entry.path);\n }\n }\n\n if (!valuesEqual) {\n nextValues = setDeepValue(nextValues, entry.path, newValue);\n }\n }\n return nextValues;\n }\n\n private getReverseDependencies(\n entries: BitComputedEntry<T>[],\n ): Map<string, Set<string>> {\n if (this.reverseDepsCache) return this.reverseDepsCache;\n\n const map = new Map<string, Set<string>>();\n\n for (const entry of entries) {\n for (const dep of entry.dependsOn) {\n let dependents = map.get(dep);\n if (!dependents) {\n dependents = new Set();\n map.set(dep, dependents);\n }\n dependents.add(entry.path);\n }\n }\n\n const childIdx = new Map<string, Set<string>>();\n\n for (const dep of map.keys()) {\n const segments = dep.split(\".\");\n for (let len = 1; len < segments.length; len++) {\n const prefix = segments.slice(0, len).join(\".\");\n let children = childIdx.get(prefix);\n if (!children) {\n children = new Set();\n childIdx.set(prefix, children);\n }\n children.add(dep);\n }\n }\n\n this.reverseDepsCache = map;\n this.childDepsIndex = childIdx;\n return map;\n }\n\n private resolveEntriesToRun(\n entries: BitComputedEntry<T>[],\n changedPaths?: readonly string[],\n ): BitComputedEntry<T>[] {\n if (\n !changedPaths ||\n changedPaths.length === 0 ||\n changedPaths.includes(\"*\")\n ) {\n return this.getOrderedAllEntries(entries);\n }\n\n const reverseDependencies = this.getReverseDependencies(entries);\n const affectedPaths = new Set<string>();\n const queue = [...changedPaths];\n let queueIndex = 0;\n\n while (queueIndex < queue.length) {\n const currentPath = queue[queueIndex++]!;\n const dependents = this.getDependentsForPath(\n reverseDependencies,\n currentPath,\n );\n\n if (!dependents) {\n continue;\n }\n\n for (const dependentPath of dependents) {\n if (affectedPaths.has(dependentPath)) {\n continue;\n }\n\n affectedPaths.add(dependentPath);\n queue.push(dependentPath);\n }\n }\n\n if (affectedPaths.size === 0) {\n return [];\n }\n\n const orderedAllEntries = this.getOrderedAllEntries(entries);\n const indexByPath = this.getOrderedIndexByPath(entries, orderedAllEntries);\n const affectedEntries: Array<{\n index: number;\n entry: BitComputedEntry<T>;\n }> = [];\n\n affectedPaths.forEach((path) => {\n const entryIndex = indexByPath.get(path);\n if (entryIndex === undefined) {\n return;\n }\n\n const entry = orderedAllEntries[entryIndex];\n if (!entry) {\n return;\n }\n\n affectedEntries.push({ index: entryIndex, entry });\n });\n\n affectedEntries.sort((left, right) => left.index - right.index);\n return affectedEntries.map((item) => item.entry);\n }\n\n private orderEntries(entries: BitComputedEntry<T>[]) {\n if (entries.length <= 1) {\n return entries;\n }\n\n const entryByPath = new Map(entries.map((entry) => [entry.path, entry]));\n const inDegree = new Map<string, number>();\n const dependents = new Map<string, Set<string>>();\n\n entries.forEach((entry) => inDegree.set(entry.path, 0));\n\n entries.forEach((entry) => {\n entry.dependsOn.forEach((dependencyPath) => {\n if (!entryByPath.has(dependencyPath)) {\n return;\n }\n\n const nextDependents = dependents.get(dependencyPath) ?? new Set();\n if (!nextDependents.has(entry.path)) {\n nextDependents.add(entry.path);\n dependents.set(dependencyPath, nextDependents);\n inDegree.set(entry.path, (inDegree.get(entry.path) ?? 0) + 1);\n }\n });\n });\n\n const queue = entries\n .filter((entry) => (inDegree.get(entry.path) ?? 0) === 0)\n .map((entry) => entry.path);\n const orderedPaths: string[] = [];\n\n while (queue.length > 0) {\n const currentPath = queue.shift()!;\n orderedPaths.push(currentPath);\n\n const nextDependents = dependents.get(currentPath);\n if (!nextDependents) {\n continue;\n }\n\n nextDependents.forEach((dependentPath) => {\n const nextDegree = (inDegree.get(dependentPath) ?? 0) - 1;\n inDegree.set(dependentPath, nextDegree);\n\n if (nextDegree === 0) {\n queue.push(dependentPath);\n }\n });\n }\n\n if (orderedPaths.length !== entries.length) {\n throw new Error(\n \"BitStore: cyclic computed dependencies detected. Check computedDependsOn definitions.\",\n );\n }\n\n return orderedPaths.map((path) => entryByPath.get(path)!);\n }\n\n private getOrderedAllEntries(entries: BitComputedEntry<T>[]) {\n const signature = this.createEntriesSignature(entries);\n if (\n this.orderedAllEntriesCache &&\n this.orderedAllEntriesCache.signature === signature\n ) {\n return this.orderedAllEntriesCache.ordered;\n }\n\n const ordered = this.orderEntries(entries);\n this.orderedAllEntriesCache = { signature, ordered };\n return ordered;\n }\n\n private getOrderedIndexByPath(\n entries: BitComputedEntry<T>[],\n orderedEntries: BitComputedEntry<T>[],\n ): Map<string, number> {\n const signature = this.createEntriesSignature(entries);\n if (\n this.orderedIndexByPathCache &&\n this.orderedIndexByPathCache.signature === signature\n ) {\n return this.orderedIndexByPathCache.indexByPath;\n }\n\n const indexByPath = new Map<string, number>();\n orderedEntries.forEach((entry, index) => {\n indexByPath.set(entry.path, index);\n });\n\n this.orderedIndexByPathCache = { signature, indexByPath };\n return indexByPath;\n }\n\n private ensureEntriesAreValid(entries: BitComputedEntry<T>[]) {\n if (this.validatedEntriesRef === entries) {\n return;\n }\n\n const signature = this.createEntriesSignature(entries);\n if (this.validatedEntriesSignature === signature) {\n this.validatedEntriesRef = entries;\n return;\n }\n\n entries.forEach((entry) => this.assertDependencies(entry));\n this.invalidateReverseDeps();\n this.validatedEntriesSignature = signature;\n this.validatedEntriesRef = entries;\n }\n\n private createEntriesSignature(entries: BitComputedEntry<T>[]): string {\n return entries\n .map((entry) => `${entry.path}:${entry.dependsOn.join(\",\")}`)\n .join(\"|\");\n }\n\n private getDependentsForPath(\n reverseDependencies: Map<string, Set<string>>,\n changedPath: string,\n ) {\n const dependents = new Set<string>();\n\n const collect = (dependencyPath: string) => {\n const listeners = reverseDependencies.get(dependencyPath);\n if (!listeners) {\n return;\n }\n\n listeners.forEach((path) => dependents.add(path));\n };\n\n collect(changedPath);\n\n const parentSegments = changedPath.split(\".\");\n while (parentSegments.length > 1) {\n parentSegments.pop();\n collect(parentSegments.join(\".\"));\n }\n\n const childKeys = this.childDepsIndex?.get(changedPath);\n if (childKeys) {\n for (const childDep of childKeys) {\n collect(childDep);\n }\n }\n\n return dependents;\n }\n\n private assertDependencies(entry: BitComputedEntry<T>) {\n if (entry.dependsOn.length === 0) {\n throw new Error(\n `BitStore: computed field \\`${entry.path}\\` requires explicit computedDependsOn in v4.`,\n );\n }\n\n if (entry.dependsOn.includes(entry.path)) {\n throw new Error(\n `BitStore: computed field \\`${entry.path}\\` cannot depend on itself.`,\n );\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }function l(e,n=new WeakMap){if(e===null||typeof e!="object")return e;if(typeof structuredClone=="function")try{return structuredClone(e)}catch (e2){}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(n.has(e))return n.get(e);if(e instanceof Map){let t=new Map;return n.set(e,t),e.forEach((o,r)=>{t.set(l(r,n),l(o,n))}),t}if(e instanceof Set){let t=new Set;return n.set(e,t),e.forEach(o=>{t.add(l(o,n))}),t}if(Array.isArray(e)){let t=[];n.set(e,t);for(let o of e)t.push(l(o,n));return t}let s=Object.getPrototypeOf(e);if(!(s===Object.prototype||s===null)){let t=Object.create(s);n.set(e,t);for(let o of Reflect.ownKeys(e)){let r=Object.getOwnPropertyDescriptor(e,o);r&&("value"in r&&(r.value=l(r.value,n)),Object.defineProperty(t,o,r))}return t}let c={};n.set(e,c);for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(c[t]=l(e[t],n));return c}function k(e){return l(e)}function R(e,n,s=new WeakMap){if(n===void 0)return k(e);if(n===null||typeof n!="object"||n instanceof Date||n instanceof RegExp||Array.isArray(n))return k(n);let a=n;if(s.has(a))return s.get(a);let c=e&&typeof e=="object"&&!Array.isArray(e)?k(e):{};s.set(a,c);try{for(let t of Object.keys(n)){let o=n[t],r=c[t];if(o!==null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp)){c[t]=R(r,o,s);continue}c[t]=k(o)}}finally{s.delete(a)}return c}function m(e,n){return e===n?!0:e===null||typeof e!="object"||n===null||typeof n!="object"?!1:b(e,n)}function b(e,n){return T(e,n,new WeakMap)}function T(e,n,s){if(e===n)return!0;if(e===null||typeof e!="object"||n===null||typeof n!="object")return!1;let a=s.get(e);if(_optionalChain([a, 'optionalAccess', _ => _.has, 'call', _2 => _2(n)]))return!0;if(a?a.add(n):s.set(e,new WeakSet([n])),Array.isArray(e)!==Array.isArray(n))return!1;if(e instanceof Date&&n instanceof Date)return e.getTime()===n.getTime();if(e instanceof RegExp&&n instanceof RegExp)return e.toString()===n.toString();let c=Object.keys(e),t=Object.keys(n);if(c.length!==t.length)return!1;for(let o of c)if(!Object.prototype.hasOwnProperty.call(n,o)||!T(e[o],n[o],s))return!1;return!0}function O(e,n,s="",a=new Set,c=new Map){if(m(e,n))return a;if(e===null||typeof e!="object"||n===null||typeof n!="object")return s&&a.add(s),a;let t=c.get(e);if(_optionalChain([t, 'optionalAccess', _3 => _3.has, 'call', _4 => _4(n)]))return a;t?t.add(n):c.set(e,new Set([n]));try{if(Array.isArray(e)||Array.isArray(n))return!m(e,n)&&s&&a.add(s),a;let o=new Set;for(let r of Object.keys(e||{}))o.add(r);for(let r of Object.keys(n||{}))o.add(r);for(let r of o){let i=s?`${s}.${r}`:r;O(_optionalChain([e, 'optionalAccess', _5 => _5[r]]),_optionalChain([n, 'optionalAccess', _6 => _6[r]]),i,a,c)}return a}finally{let o=c.get(e);_optionalChain([o, 'optionalAccess', _7 => _7.delete, 'call', _8 => _8(n)]),o&&o.size===0&&c.delete(e)}}var d=new Map,E=new Set(["__proto__"]);function S(e,n){if(d.has(e))d.delete(e);else if(d.size>=5e3){let s=d.keys().next().value;s!==void 0&&d.delete(s)}d.set(e,n)}function p(e){let n=d.get(e);if(n)return n;let s=e.split(".");return S(e,s),s}function A(e){for(let n=0;n<e.length;n++){let s=e[n];if(E.has(s)||s==="constructor"&&e[n+1]==="prototype")return!0}return!1}function K(e,n){if(!n)return e;let s=p(n);if(A(s))return;let a=e;for(let c of s){if(a==null)return;a=a[c]}return a}function D(e,n,s){if(!n)return s;let a=p(n);if(A(a))return e;let c=Array.isArray(e)?[...e]:{...e},t=c;for(let o=0;o<a.length-1;o++){let r=a[o],i=a[o+1],f=Number(i),y=Number.isInteger(f)&&String(f)===i,u=t[r];u==null?t[r]=y?[]:{}:t[r]=Array.isArray(u)?[...u]:{...u},t=t[r]}return t[a[a.length-1]]=s,c}function N(e,n){if(n.length===0)return e;let s=n.filter(([t])=>{let o=p(t);return!A(o)});if(s.length===0)return e;let a=Array.isArray(e)?[...e]:{...e},c=new WeakSet;a&&typeof a=="object"&&c.add(a);for(let[t,o]of s){let r=p(t),i=a;for(let f=0;f<r.length-1;f++){let y=r[f],u=r[f+1],w=Number(u),x=Number.isInteger(w)&&String(w)===u,g=i[y];g==null?(i[y]=x?[]:{},c.add(i[y])):typeof g=="object"?c.has(g)||(i[y]=Array.isArray(g)?[...g]:{...g},c.add(i[y])):(i[y]=x?[]:{},c.add(i[y])),i=i[y]}i[r[r.length-1]]=o}return a}function P(e,n){if(n.length===0)return e;let s=n.filter(t=>{if(!t)return!0;let o=p(t);return!A(o)});if(s.length===0)return e;let a=Array.isArray(e)?[...e]:{...e},c=new WeakSet;a&&typeof a=="object"&&c.add(a);for(let t of s){if(!t)return Array.isArray(e)?[]:{};let o=p(t),r=a;for(let f=0;f<o.length-1;f++){let y=o[f],u=_optionalChain([r, 'optionalAccess', _9 => _9[y]]);if(u==null){r=void 0;break}if(typeof u=="object")c.has(u)||(r[y]=Array.isArray(u)?[...u]:{...u},c.add(r[y]));else{r=void 0;break}r=r[y]}if(!r)continue;let i=o[o.length-1];if(Array.isArray(r)){let f=Number(i);Number.isInteger(f)&&f>=0&&r.splice(f,1)}else r&&typeof r=="object"&&delete r[i]}return a}function $(e,n){let s={},a=`${n}.`;for(let c in e)c!==n&&!c.startsWith(a)&&(s[c]=e[c]);return s}function j(e,n,s){let a={},c={},t={},o=`${n}.`;for(let r of Object.keys(e.errors)){let i=h(r,o,s);i&&(a[i]=e.errors[r])}for(let r of Object.keys(e.touched)){let i=h(r,o,s);i&&(c[i]=e.touched[r])}for(let r of Object.keys(e.isValidating)){let i=h(r,o,s);i&&(t[i]=e.isValidating[r])}return{errors:a,touched:c,isValidating:t}}function h(e,n,s){if(!e.startsWith(n))return e;let c=e.substring(n.length).split("."),t=Number(c[0]);if(!Number.isInteger(t)||t<0)return e;let o=s(t);if(o===null)return null;let r=c.slice(1).join(".");return r?`${n}${o}.${r}`:`${n}${o}`}function V(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=_nullishCoalesce(e.errors, () => (e));if(typeof n!="object"||n===null||Array.isArray(n))return!1;let s=Object.entries(n);return s.length===0?!1:s.every(([a,c])=>a.length>0&&(typeof c=="string"||Array.isArray(c)&&c.every(t=>typeof t=="string")))}function M(e){return V(e)?_nullishCoalesce(e.errors, () => (e)):{}}exports.a = k; exports.b = R; exports.c = m; exports.d = b; exports.e = O; exports.f = K; exports.g = D; exports.h = N; exports.i = P; exports.j = $; exports.k = j; exports.l = h; exports.m = V; exports.n = M;
2
+ //# sourceMappingURL=chunk-FTXV2NZO.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/utils/clone.ts","../src/core/utils/structural.ts"],"names":["cloneValue","obj","visited","clone","value","key","item","prototype","descriptor","deepClone","deepMerge","target","source","activeMerges","sourceObject","base","sourceValue","baseValue","valueEqual","a","b","deepEqual","deepEqualInner","visitedPairs","visitedTargets","keysA","keysB","collectDirtyPaths","initial","prefix","result","activePairs","activeInitials","allKeys","k","p"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-VOA3SKFY.cjs","sourcesContent":["export function cloneValue<T>(\n obj: T,\n visited: WeakMap<object, unknown> = new WeakMap(),\n): T {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (typeof structuredClone === \"function\") {\n try {\n return structuredClone(obj);\n } catch {\n // Alguns runtimes lançam para payloads não suportados (ex.: funções).\n // Nesses casos, seguimos para o clone recursivo para manter fail-open.\n }\n }\n\n if (obj instanceof Date) {\n return new Date(obj.getTime()) as any as T;\n }\n\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as any as T;\n }\n\n if (visited.has(obj as object)) {\n return visited.get(obj as object) as T;\n }\n\n if (obj instanceof Map) {\n const clone = new Map<unknown, unknown>();\n visited.set(obj as object, clone);\n\n obj.forEach((value, key) => {\n clone.set(cloneValue(key, visited), cloneValue(value, visited));\n });\n\n return clone as T;\n }\n\n if (obj instanceof Set) {\n const clone = new Set<unknown>();\n visited.set(obj as object, clone);\n\n obj.forEach((value) => {\n clone.add(cloneValue(value, visited));\n });\n\n return clone as T;\n }\n\n if (Array.isArray(obj)) {\n const clone: unknown[] = [];\n visited.set(obj as object, clone);\n\n for (const item of obj) {\n clone.push(cloneValue(item, visited));\n }\n\n return clone as T;\n }\n\n const prototype = Object.getPrototypeOf(obj);\n const isPlainObject = prototype === Object.prototype || prototype === null;\n\n if (!isPlainObject) {\n const clone = Object.create(prototype) as Record<PropertyKey, unknown>;\n visited.set(obj as object, clone);\n\n for (const key of Reflect.ownKeys(obj as object)) {\n const descriptor = Object.getOwnPropertyDescriptor(obj as object, key);\n if (!descriptor) {\n continue;\n }\n\n if (\"value\" in descriptor) {\n descriptor.value = cloneValue(descriptor.value, visited);\n }\n\n Object.defineProperty(clone, key, descriptor);\n }\n\n return clone as T;\n }\n\n const clone: any = {};\n visited.set(obj as object, clone);\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n clone[key] = cloneValue((obj as any)[key], visited);\n }\n }\n\n return clone as T;\n}\n","import { cloneValue } from \"./clone\";\n\nexport function deepClone<T>(obj: T): T {\n return cloneValue(obj);\n}\n\nexport function deepMerge<T>(\n target: T,\n source: any,\n activeMerges: WeakMap<object, unknown> = new WeakMap(),\n): T {\n if (source === undefined) {\n return deepClone(target);\n }\n\n if (\n source === null ||\n typeof source !== \"object\" ||\n source instanceof Date ||\n source instanceof RegExp ||\n Array.isArray(source)\n ) {\n return deepClone(source as T);\n }\n\n const sourceObject = source as object;\n if (activeMerges.has(sourceObject)) {\n return activeMerges.get(sourceObject) as T;\n }\n\n const base =\n target && typeof target === \"object\" && !Array.isArray(target)\n ? deepClone(target as any)\n : ({} as Record<string, unknown>);\n\n activeMerges.set(sourceObject, base);\n\n try {\n for (const key of Object.keys(source)) {\n const sourceValue = source[key];\n const baseValue = (base as Record<string, unknown>)[key];\n\n if (\n sourceValue !== null &&\n typeof sourceValue === \"object\" &&\n !Array.isArray(sourceValue) &&\n !(sourceValue instanceof Date) &&\n !(sourceValue instanceof RegExp)\n ) {\n (base as Record<string, unknown>)[key] = deepMerge(\n baseValue,\n sourceValue,\n activeMerges,\n );\n continue;\n }\n\n (base as Record<string, unknown>)[key] = deepClone(sourceValue);\n }\n } finally {\n activeMerges.delete(sourceObject);\n }\n\n return base as T;\n}\n\nexport function valueEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n return deepEqual(a, b);\n}\n\nexport function deepEqual(a: any, b: any): boolean {\n return deepEqualInner(a, b, new WeakMap());\n}\n\nfunction deepEqualInner(\n a: any,\n b: any,\n visitedPairs: WeakMap<object, WeakSet<object>>,\n): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n\n const visitedTargets = visitedPairs.get(a);\n if (visitedTargets?.has(b)) return true;\n\n if (visitedTargets) {\n visitedTargets.add(b);\n } else {\n visitedPairs.set(a, new WeakSet([b]));\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) return false;\n\n if (a instanceof Date && b instanceof Date)\n return a.getTime() === b.getTime();\n if (a instanceof RegExp && b instanceof RegExp)\n return a.toString() === b.toString();\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(b, key) ||\n !deepEqualInner(a[key], b[key], visitedPairs)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function collectDirtyPaths(\n obj: any,\n initial: any,\n prefix = \"\",\n result: Set<string> = new Set(),\n activePairs: Map<object, Set<object>> = new Map(),\n): Set<string> {\n if (valueEqual(obj, initial)) return result;\n if (\n obj === null ||\n typeof obj !== \"object\" ||\n initial === null ||\n typeof initial !== \"object\"\n ) {\n if (prefix) result.add(prefix);\n return result;\n }\n\n const activeInitials = activePairs.get(obj as object);\n if (activeInitials?.has(initial as object)) {\n return result;\n }\n\n if (activeInitials) {\n activeInitials.add(initial as object);\n } else {\n activePairs.set(obj as object, new Set([initial as object]));\n }\n\n try {\n if (Array.isArray(obj) || Array.isArray(initial)) {\n if (!valueEqual(obj, initial) && prefix) result.add(prefix);\n return result;\n }\n const allKeys = new Set<string>();\n for (const key of Object.keys(obj || {})) {\n allKeys.add(key);\n }\n for (const key of Object.keys(initial || {})) {\n allKeys.add(key);\n }\n for (const k of allKeys) {\n const p = prefix ? `${prefix}.${k}` : k;\n collectDirtyPaths(\n (obj as any)?.[k],\n (initial as any)?.[k],\n p,\n result,\n activePairs,\n );\n }\n return result;\n } finally {\n const nextActiveInitials = activePairs.get(obj as object);\n nextActiveInitials?.delete(initial as object);\n\n if (nextActiveInitials && nextActiveInitials.size === 0) {\n activePairs.delete(obj as object);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/utils/clone.ts","../src/core/utils/structural.ts"],"names":["cloneValue","obj","visited","clone","value","key","item","prototype","descriptor","deepClone","deepMerge","target","source","activeMerges","sourceObject","base","sourceValue","baseValue","valueEqual","a","b","deepEqual","deepEqualInner","visitedPairs","visitedTargets","keysA","keysB","collectDirtyPaths","initial","prefix","result","activePairs","activeInitials","allKeys","k","p"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-FTXV2NZO.cjs","sourcesContent":["export function cloneValue<T>(\n obj: T,\n visited: WeakMap<object, unknown> = new WeakMap(),\n): T {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (typeof structuredClone === \"function\") {\n try {\n return structuredClone(obj);\n } catch {\n // Alguns runtimes lançam para payloads não suportados (ex.: funções).\n // Nesses casos, seguimos para o clone recursivo para manter fail-open.\n }\n }\n\n if (obj instanceof Date) {\n return new Date(obj.getTime()) as any as T;\n }\n\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as any as T;\n }\n\n if (visited.has(obj as object)) {\n return visited.get(obj as object) as T;\n }\n\n if (obj instanceof Map) {\n const clone = new Map<unknown, unknown>();\n visited.set(obj as object, clone);\n\n obj.forEach((value, key) => {\n clone.set(cloneValue(key, visited), cloneValue(value, visited));\n });\n\n return clone as T;\n }\n\n if (obj instanceof Set) {\n const clone = new Set<unknown>();\n visited.set(obj as object, clone);\n\n obj.forEach((value) => {\n clone.add(cloneValue(value, visited));\n });\n\n return clone as T;\n }\n\n if (Array.isArray(obj)) {\n const clone: unknown[] = [];\n visited.set(obj as object, clone);\n\n for (const item of obj) {\n clone.push(cloneValue(item, visited));\n }\n\n return clone as T;\n }\n\n const prototype = Object.getPrototypeOf(obj);\n const isPlainObject = prototype === Object.prototype || prototype === null;\n\n if (!isPlainObject) {\n const clone = Object.create(prototype) as Record<PropertyKey, unknown>;\n visited.set(obj as object, clone);\n\n for (const key of Reflect.ownKeys(obj as object)) {\n const descriptor = Object.getOwnPropertyDescriptor(obj as object, key);\n if (!descriptor) {\n continue;\n }\n\n if (\"value\" in descriptor) {\n descriptor.value = cloneValue(descriptor.value, visited);\n }\n\n Object.defineProperty(clone, key, descriptor);\n }\n\n return clone as T;\n }\n\n const clone: any = {};\n visited.set(obj as object, clone);\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n clone[key] = cloneValue((obj as any)[key], visited);\n }\n }\n\n return clone as T;\n}\n","import { cloneValue } from \"./clone\";\n\nexport function deepClone<T>(obj: T): T {\n return cloneValue(obj);\n}\n\nexport function deepMerge<T>(\n target: T,\n source: any,\n activeMerges: WeakMap<object, unknown> = new WeakMap(),\n): T {\n if (source === undefined) {\n return deepClone(target);\n }\n\n if (\n source === null ||\n typeof source !== \"object\" ||\n source instanceof Date ||\n source instanceof RegExp ||\n Array.isArray(source)\n ) {\n return deepClone(source as T);\n }\n\n const sourceObject = source as object;\n if (activeMerges.has(sourceObject)) {\n return activeMerges.get(sourceObject) as T;\n }\n\n const base =\n target && typeof target === \"object\" && !Array.isArray(target)\n ? deepClone(target as any)\n : ({} as Record<string, unknown>);\n\n activeMerges.set(sourceObject, base);\n\n try {\n for (const key of Object.keys(source)) {\n const sourceValue = source[key];\n const baseValue = (base as Record<string, unknown>)[key];\n\n if (\n sourceValue !== null &&\n typeof sourceValue === \"object\" &&\n !Array.isArray(sourceValue) &&\n !(sourceValue instanceof Date) &&\n !(sourceValue instanceof RegExp)\n ) {\n (base as Record<string, unknown>)[key] = deepMerge(\n baseValue,\n sourceValue,\n activeMerges,\n );\n continue;\n }\n\n (base as Record<string, unknown>)[key] = deepClone(sourceValue);\n }\n } finally {\n activeMerges.delete(sourceObject);\n }\n\n return base as T;\n}\n\nexport function valueEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n return deepEqual(a, b);\n}\n\nexport function deepEqual(a: any, b: any): boolean {\n return deepEqualInner(a, b, new WeakMap());\n}\n\nfunction deepEqualInner(\n a: any,\n b: any,\n visitedPairs: WeakMap<object, WeakSet<object>>,\n): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n\n const visitedTargets = visitedPairs.get(a);\n if (visitedTargets?.has(b)) return true;\n\n if (visitedTargets) {\n visitedTargets.add(b);\n } else {\n visitedPairs.set(a, new WeakSet([b]));\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) return false;\n\n if (a instanceof Date && b instanceof Date)\n return a.getTime() === b.getTime();\n if (a instanceof RegExp && b instanceof RegExp)\n return a.toString() === b.toString();\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(b, key) ||\n !deepEqualInner(a[key], b[key], visitedPairs)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function collectDirtyPaths(\n obj: any,\n initial: any,\n prefix = \"\",\n result: Set<string> = new Set(),\n activePairs: Map<object, Set<object>> = new Map(),\n): Set<string> {\n if (valueEqual(obj, initial)) return result;\n if (\n obj === null ||\n typeof obj !== \"object\" ||\n initial === null ||\n typeof initial !== \"object\"\n ) {\n if (prefix) result.add(prefix);\n return result;\n }\n\n const activeInitials = activePairs.get(obj as object);\n if (activeInitials?.has(initial as object)) {\n return result;\n }\n\n if (activeInitials) {\n activeInitials.add(initial as object);\n } else {\n activePairs.set(obj as object, new Set([initial as object]));\n }\n\n try {\n if (Array.isArray(obj) || Array.isArray(initial)) {\n if (!valueEqual(obj, initial) && prefix) result.add(prefix);\n return result;\n }\n const allKeys = new Set<string>();\n for (const key of Object.keys(obj || {})) {\n allKeys.add(key);\n }\n for (const key of Object.keys(initial || {})) {\n allKeys.add(key);\n }\n for (const k of allKeys) {\n const p = prefix ? `${prefix}.${k}` : k;\n collectDirtyPaths(\n (obj as any)?.[k],\n (initial as any)?.[k],\n p,\n result,\n activePairs,\n );\n }\n return result;\n } finally {\n const nextActiveInitials = activePairs.get(obj as object);\n nextActiveInitials?.delete(initial as object);\n\n if (nextActiveInitials && nextActiveInitials.size === 0) {\n activePairs.delete(obj as object);\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ function l(e,n=new WeakMap){if(e===null||typeof e!="object")return e;if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(n.has(e))return n.get(e);if(e instanceof Map){let t=new Map;return n.set(e,t),e.forEach((o,r)=>{t.set(l(r,n),l(o,n))}),t}if(e instanceof Set){let t=new Set;return n.set(e,t),e.forEach(o=>{t.add(l(o,n))}),t}if(Array.isArray(e)){let t=[];n.set(e,t);for(let o of e)t.push(l(o,n));return t}let s=Object.getPrototypeOf(e);if(!(s===Object.prototype||s===null)){let t=Object.create(s);n.set(e,t);for(let o of Reflect.ownKeys(e)){let r=Object.getOwnPropertyDescriptor(e,o);r&&("value"in r&&(r.value=l(r.value,n)),Object.defineProperty(t,o,r))}return t}let c={};n.set(e,c);for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(c[t]=l(e[t],n));return c}function k(e){return l(e)}function R(e,n,s=new WeakMap){if(n===void 0)return k(e);if(n===null||typeof n!="object"||n instanceof Date||n instanceof RegExp||Array.isArray(n))return k(n);let a=n;if(s.has(a))return s.get(a);let c=e&&typeof e=="object"&&!Array.isArray(e)?k(e):{};s.set(a,c);try{for(let t of Object.keys(n)){let o=n[t],r=c[t];if(o!==null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp)){c[t]=R(r,o,s);continue}c[t]=k(o)}}finally{s.delete(a)}return c}function m(e,n){return e===n?!0:e===null||typeof e!="object"||n===null||typeof n!="object"?!1:b(e,n)}function b(e,n){return T(e,n,new WeakMap)}function T(e,n,s){if(e===n)return!0;if(e===null||typeof e!="object"||n===null||typeof n!="object")return!1;let a=s.get(e);if(a?.has(n))return!0;if(a?a.add(n):s.set(e,new WeakSet([n])),Array.isArray(e)!==Array.isArray(n))return!1;if(e instanceof Date&&n instanceof Date)return e.getTime()===n.getTime();if(e instanceof RegExp&&n instanceof RegExp)return e.toString()===n.toString();let c=Object.keys(e),t=Object.keys(n);if(c.length!==t.length)return!1;for(let o of c)if(!Object.prototype.hasOwnProperty.call(n,o)||!T(e[o],n[o],s))return!1;return!0}function O(e,n,s="",a=new Set,c=new Map){if(m(e,n))return a;if(e===null||typeof e!="object"||n===null||typeof n!="object")return s&&a.add(s),a;let t=c.get(e);if(t?.has(n))return a;t?t.add(n):c.set(e,new Set([n]));try{if(Array.isArray(e)||Array.isArray(n))return!m(e,n)&&s&&a.add(s),a;let o=new Set;for(let r of Object.keys(e||{}))o.add(r);for(let r of Object.keys(n||{}))o.add(r);for(let r of o){let i=s?`${s}.${r}`:r;O(e?.[r],n?.[r],i,a,c)}return a}finally{let o=c.get(e);o?.delete(n),o&&o.size===0&&c.delete(e)}}var d=new Map,E=new Set(["__proto__"]);function S(e,n){if(d.has(e))d.delete(e);else if(d.size>=5e3){let s=d.keys().next().value;s!==void 0&&d.delete(s)}d.set(e,n)}function p(e){let n=d.get(e);if(n)return n;let s=e.split(".");return S(e,s),s}function A(e){for(let n=0;n<e.length;n++){let s=e[n];if(E.has(s)||s==="constructor"&&e[n+1]==="prototype")return!0}return!1}function K(e,n){if(!n)return e;let s=p(n);if(A(s))return;let a=e;for(let c of s){if(a==null)return;a=a[c]}return a}function D(e,n,s){if(!n)return s;let a=p(n);if(A(a))return e;let c=Array.isArray(e)?[...e]:{...e},t=c;for(let o=0;o<a.length-1;o++){let r=a[o],i=a[o+1],f=Number(i),y=Number.isInteger(f)&&String(f)===i,u=t[r];u==null?t[r]=y?[]:{}:t[r]=Array.isArray(u)?[...u]:{...u},t=t[r]}return t[a[a.length-1]]=s,c}function N(e,n){if(n.length===0)return e;let s=n.filter(([t])=>{let o=p(t);return!A(o)});if(s.length===0)return e;let a=Array.isArray(e)?[...e]:{...e},c=new WeakSet;a&&typeof a=="object"&&c.add(a);for(let[t,o]of s){let r=p(t),i=a;for(let f=0;f<r.length-1;f++){let y=r[f],u=r[f+1],w=Number(u),x=Number.isInteger(w)&&String(w)===u,g=i[y];g==null?(i[y]=x?[]:{},c.add(i[y])):typeof g=="object"?c.has(g)||(i[y]=Array.isArray(g)?[...g]:{...g},c.add(i[y])):(i[y]=x?[]:{},c.add(i[y])),i=i[y]}i[r[r.length-1]]=o}return a}function P(e,n){if(n.length===0)return e;let s=n.filter(t=>{if(!t)return!0;let o=p(t);return!A(o)});if(s.length===0)return e;let a=Array.isArray(e)?[...e]:{...e},c=new WeakSet;a&&typeof a=="object"&&c.add(a);for(let t of s){if(!t)return Array.isArray(e)?[]:{};let o=p(t),r=a;for(let f=0;f<o.length-1;f++){let y=o[f],u=r?.[y];if(u==null){r=void 0;break}if(typeof u=="object")c.has(u)||(r[y]=Array.isArray(u)?[...u]:{...u},c.add(r[y]));else{r=void 0;break}r=r[y]}if(!r)continue;let i=o[o.length-1];if(Array.isArray(r)){let f=Number(i);Number.isInteger(f)&&f>=0&&r.splice(f,1)}else r&&typeof r=="object"&&delete r[i]}return a}function $(e,n){let s={},a=`${n}.`;for(let c in e)c!==n&&!c.startsWith(a)&&(s[c]=e[c]);return s}function j(e,n,s){let a={},c={},t={},o=`${n}.`;for(let r of Object.keys(e.errors)){let i=h(r,o,s);i&&(a[i]=e.errors[r])}for(let r of Object.keys(e.touched)){let i=h(r,o,s);i&&(c[i]=e.touched[r])}for(let r of Object.keys(e.isValidating)){let i=h(r,o,s);i&&(t[i]=e.isValidating[r])}return{errors:a,touched:c,isValidating:t}}function h(e,n,s){if(!e.startsWith(n))return e;let c=e.substring(n.length).split("."),t=Number(c[0]);if(!Number.isInteger(t)||t<0)return e;let o=s(t);if(o===null)return null;let r=c.slice(1).join(".");return r?`${n}${o}.${r}`:`${n}${o}`}function V(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=e.errors??e;if(typeof n!="object"||n===null||Array.isArray(n))return!1;let s=Object.entries(n);return s.length===0?!1:s.every(([a,c])=>a.length>0&&(typeof c=="string"||Array.isArray(c)&&c.every(t=>typeof t=="string")))}function M(e){return V(e)?e.errors??e:{}}export{k as a,R as b,m as c,b as d,O as e,K as f,D as g,N as h,P as i,$ as j,j as k,h as l,V as m,M as n};
2
+ //# sourceMappingURL=chunk-G3EHXKOS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/utils/clone.ts","../src/core/utils/structural.ts","../src/core/utils/path-value.ts","../src/core/utils/array-meta.ts","../src/core/utils/server-errors.ts"],"sourcesContent":["export function cloneValue<T>(\n obj: T,\n visited: WeakMap<object, unknown> = new WeakMap(),\n): T {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (typeof structuredClone === \"function\") {\n try {\n return structuredClone(obj);\n } catch {\n // Alguns runtimes lançam para payloads não suportados (ex.: funções).\n // Nesses casos, seguimos para o clone recursivo para manter fail-open.\n }\n }\n\n if (obj instanceof Date) {\n return new Date(obj.getTime()) as any as T;\n }\n\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as any as T;\n }\n\n if (visited.has(obj as object)) {\n return visited.get(obj as object) as T;\n }\n\n if (obj instanceof Map) {\n const clone = new Map<unknown, unknown>();\n visited.set(obj as object, clone);\n\n obj.forEach((value, key) => {\n clone.set(cloneValue(key, visited), cloneValue(value, visited));\n });\n\n return clone as T;\n }\n\n if (obj instanceof Set) {\n const clone = new Set<unknown>();\n visited.set(obj as object, clone);\n\n obj.forEach((value) => {\n clone.add(cloneValue(value, visited));\n });\n\n return clone as T;\n }\n\n if (Array.isArray(obj)) {\n const clone: unknown[] = [];\n visited.set(obj as object, clone);\n\n for (const item of obj) {\n clone.push(cloneValue(item, visited));\n }\n\n return clone as T;\n }\n\n const prototype = Object.getPrototypeOf(obj);\n const isPlainObject = prototype === Object.prototype || prototype === null;\n\n if (!isPlainObject) {\n const clone = Object.create(prototype) as Record<PropertyKey, unknown>;\n visited.set(obj as object, clone);\n\n for (const key of Reflect.ownKeys(obj as object)) {\n const descriptor = Object.getOwnPropertyDescriptor(obj as object, key);\n if (!descriptor) {\n continue;\n }\n\n if (\"value\" in descriptor) {\n descriptor.value = cloneValue(descriptor.value, visited);\n }\n\n Object.defineProperty(clone, key, descriptor);\n }\n\n return clone as T;\n }\n\n const clone: any = {};\n visited.set(obj as object, clone);\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n clone[key] = cloneValue((obj as any)[key], visited);\n }\n }\n\n return clone as T;\n}\n","import { cloneValue } from \"./clone\";\n\nexport function deepClone<T>(obj: T): T {\n return cloneValue(obj);\n}\n\nexport function deepMerge<T>(\n target: T,\n source: any,\n activeMerges: WeakMap<object, unknown> = new WeakMap(),\n): T {\n if (source === undefined) {\n return deepClone(target);\n }\n\n if (\n source === null ||\n typeof source !== \"object\" ||\n source instanceof Date ||\n source instanceof RegExp ||\n Array.isArray(source)\n ) {\n return deepClone(source as T);\n }\n\n const sourceObject = source as object;\n if (activeMerges.has(sourceObject)) {\n return activeMerges.get(sourceObject) as T;\n }\n\n const base =\n target && typeof target === \"object\" && !Array.isArray(target)\n ? deepClone(target as any)\n : ({} as Record<string, unknown>);\n\n activeMerges.set(sourceObject, base);\n\n try {\n for (const key of Object.keys(source)) {\n const sourceValue = source[key];\n const baseValue = (base as Record<string, unknown>)[key];\n\n if (\n sourceValue !== null &&\n typeof sourceValue === \"object\" &&\n !Array.isArray(sourceValue) &&\n !(sourceValue instanceof Date) &&\n !(sourceValue instanceof RegExp)\n ) {\n (base as Record<string, unknown>)[key] = deepMerge(\n baseValue,\n sourceValue,\n activeMerges,\n );\n continue;\n }\n\n (base as Record<string, unknown>)[key] = deepClone(sourceValue);\n }\n } finally {\n activeMerges.delete(sourceObject);\n }\n\n return base as T;\n}\n\nexport function valueEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n return deepEqual(a, b);\n}\n\nexport function deepEqual(a: any, b: any): boolean {\n return deepEqualInner(a, b, new WeakMap());\n}\n\nfunction deepEqualInner(\n a: any,\n b: any,\n visitedPairs: WeakMap<object, WeakSet<object>>,\n): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n\n const visitedTargets = visitedPairs.get(a);\n if (visitedTargets?.has(b)) return true;\n\n if (visitedTargets) {\n visitedTargets.add(b);\n } else {\n visitedPairs.set(a, new WeakSet([b]));\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) return false;\n\n if (a instanceof Date && b instanceof Date)\n return a.getTime() === b.getTime();\n if (a instanceof RegExp && b instanceof RegExp)\n return a.toString() === b.toString();\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(b, key) ||\n !deepEqualInner(a[key], b[key], visitedPairs)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function collectDirtyPaths(\n obj: any,\n initial: any,\n prefix = \"\",\n result: Set<string> = new Set(),\n activePairs: Map<object, Set<object>> = new Map(),\n): Set<string> {\n if (valueEqual(obj, initial)) return result;\n if (\n obj === null ||\n typeof obj !== \"object\" ||\n initial === null ||\n typeof initial !== \"object\"\n ) {\n if (prefix) result.add(prefix);\n return result;\n }\n\n const activeInitials = activePairs.get(obj as object);\n if (activeInitials?.has(initial as object)) {\n return result;\n }\n\n if (activeInitials) {\n activeInitials.add(initial as object);\n } else {\n activePairs.set(obj as object, new Set([initial as object]));\n }\n\n try {\n if (Array.isArray(obj) || Array.isArray(initial)) {\n if (!valueEqual(obj, initial) && prefix) result.add(prefix);\n return result;\n }\n const allKeys = new Set<string>();\n for (const key of Object.keys(obj || {})) {\n allKeys.add(key);\n }\n for (const key of Object.keys(initial || {})) {\n allKeys.add(key);\n }\n for (const k of allKeys) {\n const p = prefix ? `${prefix}.${k}` : k;\n collectDirtyPaths(\n (obj as any)?.[k],\n (initial as any)?.[k],\n p,\n result,\n activePairs,\n );\n }\n return result;\n } finally {\n const nextActiveInitials = activePairs.get(obj as object);\n nextActiveInitials?.delete(initial as object);\n\n if (nextActiveInitials && nextActiveInitials.size === 0) {\n activePairs.delete(obj as object);\n }\n }\n}\n","const PATH_CACHE_MAX = 5000;\nconst pathCache = new Map<string, string[]>();\nconst BLOCKED_PATH_SEGMENTS = new Set([\"__proto__\"]);\n\nfunction setPathCacheEntry(path: string, keys: string[]) {\n if (pathCache.has(path)) {\n pathCache.delete(path);\n } else if (pathCache.size >= PATH_CACHE_MAX) {\n const oldestKey = pathCache.keys().next().value;\n if (oldestKey !== undefined) {\n pathCache.delete(oldestKey);\n }\n }\n\n pathCache.set(path, keys);\n}\n\nfunction getPathKeys(path: string): string[] {\n const cached = pathCache.get(path);\n if (cached) {\n return cached;\n }\n\n const keys = path.split(\".\");\n setPathCacheEntry(path, keys);\n return keys;\n}\n\nfunction hasBlockedPathSegment(keys: readonly string[]): boolean {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (BLOCKED_PATH_SEGMENTS.has(key)) {\n return true;\n }\n\n if (key === \"constructor\" && keys[i + 1] === \"prototype\") {\n return true;\n }\n }\n\n return false;\n}\n\nexport function getDeepValue(obj: any, path: string): any {\n if (!path) return obj;\n\n const keys = getPathKeys(path);\n if (hasBlockedPathSegment(keys)) return undefined;\n\n let current = obj;\n for (const key of keys) {\n if (current === null || current === undefined) return undefined;\n current = current[key];\n }\n return current;\n}\n\nexport function setDeepValue(obj: any, path: string, value: any): any {\n if (!path) return value;\n\n const keys = getPathKeys(path);\n if (hasBlockedPathSegment(keys)) return obj;\n\n const result = Array.isArray(obj) ? [...obj] : { ...obj };\n let current = result;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n const nextKey = keys[i + 1];\n\n const nextAsNumber = Number(nextKey);\n const isNextNumeric =\n Number.isInteger(nextAsNumber) && String(nextAsNumber) === nextKey;\n const currentValue = current[key];\n\n if (currentValue === null || currentValue === undefined) {\n current[key] = isNextNumeric ? [] : {};\n } else {\n current[key] = Array.isArray(currentValue)\n ? [...currentValue]\n : { ...currentValue };\n }\n\n current = current[key];\n }\n\n current[keys[keys.length - 1]] = value;\n\n return result;\n}\n\nexport function setDeepValues(\n obj: any,\n updates: ReadonlyArray<readonly [path: string, value: any]>,\n): any {\n if (updates.length === 0) {\n return obj;\n }\n\n const safeUpdates = updates.filter(([path]) => {\n const keys = getPathKeys(path);\n return !hasBlockedPathSegment(keys);\n });\n\n if (safeUpdates.length === 0) {\n return obj;\n }\n\n const root = Array.isArray(obj) ? [...obj] : { ...obj };\n const clonedNodes = new WeakSet<object>();\n if (root && typeof root === \"object\") {\n clonedNodes.add(root);\n }\n\n for (const [path, value] of safeUpdates) {\n const keys = getPathKeys(path);\n let current: any = root;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n const nextKey = keys[i + 1];\n\n const nextAsNumber = Number(nextKey);\n const isNextNumeric =\n Number.isInteger(nextAsNumber) && String(nextAsNumber) === nextKey;\n\n const currentValue = current[key];\n\n if (currentValue === null || currentValue === undefined) {\n current[key] = isNextNumeric ? [] : {};\n clonedNodes.add(current[key]);\n } else if (typeof currentValue === \"object\") {\n if (!clonedNodes.has(currentValue)) {\n current[key] = Array.isArray(currentValue)\n ? [...currentValue]\n : { ...currentValue };\n clonedNodes.add(current[key]);\n }\n } else {\n current[key] = isNextNumeric ? [] : {};\n clonedNodes.add(current[key]);\n }\n\n current = current[key];\n }\n\n current[keys[keys.length - 1]] = value;\n }\n\n return root;\n}\n\nexport function unsetDeepValue(obj: any, path: string): any {\n if (!path) {\n return Array.isArray(obj) ? [] : {};\n }\n\n const keys = getPathKeys(path);\n if (hasBlockedPathSegment(keys)) {\n return obj;\n }\n\n const root = Array.isArray(obj) ? [...obj] : { ...obj };\n let current: any = root;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n const currentValue = current?.[key];\n\n if (currentValue === null || currentValue === undefined) {\n return root;\n }\n\n current[key] = Array.isArray(currentValue)\n ? [...currentValue]\n : { ...currentValue };\n\n current = current[key];\n }\n\n const leafKey = keys[keys.length - 1];\n\n if (Array.isArray(current)) {\n const arrayIndex = Number(leafKey);\n // Only splice if leafKey is a valid array index (integer >= 0)\n if (Number.isInteger(arrayIndex) && arrayIndex >= 0) {\n current.splice(arrayIndex, 1);\n }\n } else if (current && typeof current === \"object\") {\n delete current[leafKey];\n }\n\n return root;\n}\n\nexport function unsetDeepValues(obj: any, paths: ReadonlyArray<string>): any {\n if (paths.length === 0) {\n return obj;\n }\n\n const safePaths = paths.filter((path) => {\n if (!path) return true;\n const keys = getPathKeys(path);\n return !hasBlockedPathSegment(keys);\n });\n\n if (safePaths.length === 0) {\n return obj;\n }\n\n const root = Array.isArray(obj) ? [...obj] : { ...obj };\n const clonedNodes = new WeakSet<object>();\n if (root && typeof root === \"object\") {\n clonedNodes.add(root);\n }\n\n for (const path of safePaths) {\n if (!path) {\n return Array.isArray(obj) ? [] : {};\n }\n\n const keys = getPathKeys(path);\n\n let current: any = root;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n const currentValue = current?.[key];\n\n if (currentValue === null || currentValue === undefined) {\n current = undefined;\n break;\n }\n\n if (typeof currentValue === \"object\") {\n if (!clonedNodes.has(currentValue)) {\n current[key] = Array.isArray(currentValue)\n ? [...currentValue]\n : { ...currentValue };\n clonedNodes.add(current[key]);\n }\n } else {\n current = undefined;\n break;\n }\n\n current = current[key];\n }\n\n if (!current) {\n continue;\n }\n\n const leafKey = keys[keys.length - 1];\n\n if (Array.isArray(current)) {\n const arrayIndex = Number(leafKey);\n // Only splice if leafKey is a valid array index (integer >= 0)\n if (Number.isInteger(arrayIndex) && arrayIndex >= 0) {\n current.splice(arrayIndex, 1);\n }\n } else if (current && typeof current === \"object\") {\n delete current[leafKey];\n }\n }\n\n return root;\n}\n","export function cleanPrefixedKeys(\n obj: Record<string, any>,\n prefix: string,\n): Record<string, any> {\n const newObj: Record<string, any> = {};\n const prefixWithDot = `${prefix}.`;\n\n for (const key in obj) {\n if (key !== prefix && !key.startsWith(prefixWithDot)) {\n newObj[key] = obj[key];\n }\n }\n return newObj;\n}\n\nexport const shiftKeys = (\n obj: Record<string, any>,\n path: string,\n removedIndex: number,\n) => {\n return reindexObjectKeys(obj, path, (currentIdx) => {\n if (currentIdx === removedIndex) {\n return null;\n }\n\n return currentIdx > removedIndex ? currentIdx - 1 : currentIdx;\n });\n};\n\nexport const swapKeys = (\n obj: Record<string, any>,\n path: string,\n indexA: number,\n indexB: number,\n) => {\n return reindexObjectKeys(obj, path, (currentIdx) => {\n if (currentIdx === indexA) {\n return indexB;\n }\n\n if (currentIdx === indexB) {\n return indexA;\n }\n\n return currentIdx;\n });\n};\n\nexport const moveKeys = (\n obj: Record<string, any>,\n path: string,\n from: number,\n to: number,\n) => {\n return reindexObjectKeys(obj, path, (currentIdx) => {\n if (currentIdx === from) {\n return to;\n }\n\n if (from < to && currentIdx > from && currentIdx <= to) {\n return currentIdx - 1;\n }\n\n if (from > to && currentIdx >= to && currentIdx < from) {\n return currentIdx + 1;\n }\n\n return currentIdx;\n });\n};\n\nexport function reindexFieldArrayMeta(\n state: {\n errors: Record<string, any>;\n touched: Record<string, any>;\n isValidating: Record<string, any>;\n },\n path: string,\n remapIndex: (index: number) => number | null,\n) {\n const nextErrors: Record<string, any> = {};\n const nextTouched: Record<string, any> = {};\n const nextIsValidating: Record<string, any> = {};\n\n const prefix = `${path}.`;\n\n for (const key of Object.keys(state.errors)) {\n const nextKey = remapIndexedPath(key, prefix, remapIndex);\n if (nextKey) nextErrors[nextKey] = state.errors[key];\n }\n\n for (const key of Object.keys(state.touched)) {\n const nextKey = remapIndexedPath(key, prefix, remapIndex);\n if (nextKey) nextTouched[nextKey] = state.touched[key];\n }\n\n for (const key of Object.keys(state.isValidating)) {\n const nextKey = remapIndexedPath(key, prefix, remapIndex);\n if (nextKey) nextIsValidating[nextKey] = state.isValidating[key];\n }\n\n return {\n errors: nextErrors,\n touched: nextTouched,\n isValidating: nextIsValidating,\n };\n}\n\nexport function remapIndexedPath(\n key: string,\n prefix: string,\n remapIndex: (index: number) => number | null,\n): string | null {\n if (!key.startsWith(prefix)) {\n return key;\n }\n\n const remaining = key.substring(prefix.length);\n const parts = remaining.split(\".\");\n const currentIdx = Number(parts[0]);\n if (!Number.isInteger(currentIdx) || currentIdx < 0) {\n return key;\n }\n const nextIdx = remapIndex(currentIdx);\n\n if (nextIdx === null) {\n return null;\n }\n\n const rest = parts.slice(1).join(\".\");\n return rest ? `${prefix}${nextIdx}.${rest}` : `${prefix}${nextIdx}`;\n}\n\nfunction reindexObjectKeys(\n obj: Record<string, any>,\n path: string,\n remapIndex: (index: number) => number | null,\n) {\n const nextObject: Record<string, any> = {};\n const prefix = `${path}.`;\n\n for (const key of Object.keys(obj)) {\n if (!key.startsWith(prefix)) {\n nextObject[key] = obj[key];\n continue;\n }\n\n const remaining = key.substring(prefix.length);\n const parts = remaining.split(\".\");\n const currentIdx = Number(parts[0]);\n if (!Number.isInteger(currentIdx) || currentIdx < 0) {\n nextObject[key] = obj[key];\n continue;\n }\n const nextIdx = remapIndex(currentIdx);\n\n if (nextIdx === null) {\n continue;\n }\n\n const rest = parts.slice(1).join(\".\");\n const nextKey = rest\n ? `${prefix}${nextIdx}.${rest}`\n : `${prefix}${nextIdx}`;\n nextObject[nextKey] = obj[key];\n }\n\n return nextObject;\n}\n","export function isValidationErrorShape(\n x: unknown,\n): x is Record<string, string | string[]> {\n if (typeof x !== \"object\" || x === null || Array.isArray(x)) return false;\n\n const obj = (x as Record<string, unknown>).errors ?? x;\n if (typeof obj !== \"object\" || obj === null || Array.isArray(obj)) {\n return false;\n }\n\n const entries = Object.entries(obj as Record<string, unknown>);\n if (entries.length === 0) {\n return false;\n }\n\n return entries.every(\n ([key, v]) =>\n key.length > 0 &&\n (typeof v === \"string\" ||\n (Array.isArray(v) && v.every((i) => typeof i === \"string\"))),\n );\n}\n\nexport function extractServerErrors(\n x: unknown,\n): Record<string, string | string[]> {\n if (!isValidationErrorShape(x)) return {};\n\n const obj = (x as Record<string, unknown>).errors ?? x;\n return obj as Record<string, string | string[]>;\n}\n"],"mappings":"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","names":["cloneValue","obj","visited","clone","value","key","item","prototype","descriptor","deepClone","obj","cloneValue","deepMerge","target","source","activeMerges","sourceObject","base","key","sourceValue","baseValue","valueEqual","a","b","deepEqual","deepEqualInner","visitedPairs","visitedTargets","keysA","keysB","collectDirtyPaths","initial","prefix","result","activePairs","activeInitials","allKeys","k","p","nextActiveInitials","pathCache","BLOCKED_PATH_SEGMENTS","setPathCacheEntry","path","keys","oldestKey","getPathKeys","cached","hasBlockedPathSegment","i","key","getDeepValue","obj","current","setDeepValue","value","result","nextKey","nextAsNumber","isNextNumeric","currentValue","setDeepValues","updates","safeUpdates","root","clonedNodes","unsetDeepValues","obj","paths","safePaths","path","keys","getPathKeys","hasBlockedPathSegment","root","clonedNodes","current","i","key","currentValue","leafKey","arrayIndex","cleanPrefixedKeys","obj","prefix","newObj","prefixWithDot","key","reindexFieldArrayMeta","state","path","remapIndex","nextErrors","nextTouched","nextIsValidating","prefix","key","nextKey","remapIndexedPath","parts","currentIdx","nextIdx","rest","isValidationErrorShape","x","obj","entries","key","v","i","extractServerErrors"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkVOA3SKFYcjs = require('./chunk-VOA3SKFY.cjs');function o(i,e){return e&&e.value===i.value&&e.error===i.error&&e.touched===i.touched&&e.isHidden===i.isHidden&&e.isRequired===i.isRequired&&e.isDirty===i.isDirty&&e.isValidating===i.isValidating?e:{value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating}}function d(i,e){return i===e?!0:!i||!e?!1:_chunkVOA3SKFYcjs.d.call(void 0, i.value,e.value)&&i.error===e.error&&i.touched===e.touched&&i.isHidden===e.isHidden&&i.isRequired===e.isRequired&&i.isDirty===e.isDirty&&i.isValidating===e.isValidating}var n=d;exports.a = o; exports.b = d; exports.c = n;
2
- //# sourceMappingURL=chunk-OSQWKXFI.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkFTXV2NZOcjs = require('./chunk-FTXV2NZO.cjs');function o(i,e){return e&&e.value===i.value&&e.error===i.error&&e.touched===i.touched&&e.isHidden===i.isHidden&&e.isRequired===i.isRequired&&e.isDirty===i.isDirty&&e.isValidating===i.isValidating?e:{value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating}}function d(i,e){return i===e?!0:!i||!e?!1:_chunkFTXV2NZOcjs.d.call(void 0, i.value,e.value)&&i.error===e.error&&i.touched===e.touched&&i.isHidden===e.isHidden&&i.isRequired===e.isRequired&&i.isDirty===e.isDirty&&i.isValidating===e.isValidating}var n=d;exports.a = o; exports.b = d; exports.c = n;
2
+ //# sourceMappingURL=chunk-GKNGJOB3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-OSQWKXFI.cjs","../src/core/utils/field-state-snapshot.ts"],"names":["createFieldStateSnapshot","nextState","lastSnapshot","areFieldSnapshotsEqual","snapshotA","snapshotB","deepEqual","areFieldStatesEqual"],"mappings":"AAAA,iIAAwC,SCqCxBA,CAAAA,CACdC,CAAAA,CASAC,CAAAA,CAC0B,CAE1B,OAAIA,CAAAA,EAEAA,CAAAA,CAAa,KAAA,GAAUD,CAAAA,CAAU,KAAA,EACjCC,CAAAA,CAAa,KAAA,GAAUD,CAAAA,CAAU,KAAA,EACjCC,CAAAA,CAAa,OAAA,GAAYD,CAAAA,CAAU,OAAA,EACnCC,CAAAA,CAAa,QAAA,GAAaD,CAAAA,CAAU,QAAA,EACpCC,CAAAA,CAAa,UAAA,GAAeD,CAAAA,CAAU,UAAA,EACtCC,CAAAA,CAAa,OAAA,GAAYD,CAAAA,CAAU,OAAA,EACnCC,CAAAA,CAAa,YAAA,GAAiBD,CAAAA,CAAU,YAAA,CAGjCC,CAAAA,CAIJ,CACL,KAAA,CAAOD,CAAAA,CAAU,KAAA,CACjB,KAAA,CAAOA,CAAAA,CAAU,KAAA,CACjB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUA,CAAAA,CAAU,QAAA,CACpB,UAAA,CAAYA,CAAAA,CAAU,UAAA,CACtB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,YAAA,CAAcA,CAAAA,CAAU,YAC1B,CACF,CAUO,SAASE,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACS,CACT,OAAID,CAAAA,GAAcC,CAAAA,CAAkB,CAAA,CAAA,CAChC,CAACD,CAAAA,EAAa,CAACC,CAAAA,CAAkB,CAAA,CAAA,CAGnCC,iCAAAA,CAAUF,CAAU,KAAA,CAAOC,CAAAA,CAAU,KAAK,CAAA,EAC1CD,CAAAA,CAAU,KAAA,GAAUC,CAAAA,CAAU,KAAA,EAC9BD,CAAAA,CAAU,OAAA,GAAYC,CAAAA,CAAU,OAAA,EAChCD,CAAAA,CAAU,QAAA,GAAaC,CAAAA,CAAU,QAAA,EACjCD,CAAAA,CAAU,UAAA,GAAeC,CAAAA,CAAU,UAAA,EACnCD,CAAAA,CAAU,OAAA,GAAYC,CAAAA,CAAU,OAAA,EAChCD,CAAAA,CAAU,YAAA,GAAiBC,CAAAA,CAAU,YAEzC,CAEO,IAAME,CAAAA,CAAsBJ,CAAAA,CAAAA,4CAAAA","file":"/home/runner/work/bit-form/bit-form/dist/chunk-OSQWKXFI.cjs","sourcesContent":[null,"/**\n * Field State Snapshot Utilities\n *\n * Shared utilities for creating and managing field state snapshots across frameworks\n * (React, Vue, Angular). Reduces code duplication while maintaining type safety.\n */\n\nimport type { BitFieldState } from \"../store/contracts/types\";\nimport { deepEqual } from \"../utils\";\n\n/**\n * Represents a stable snapshot of field state that can be compared for equality.\n */\nexport type BitFieldSnapshot<TValue = unknown> = BitFieldState<\n Record<string, unknown>,\n TValue\n>;\n\n/**\n * Creates or reuses a field state snapshot with shallow equality checking.\n *\n * This function prevents unnecessary re-renders in frameworks like React by\n * returning the same object reference when field state hasn't changed.\n *\n * @param nextState - The new field state from the store\n * @param lastSnapshot - The previous snapshot (can be null on first call)\n * @returns A stable snapshot object that can be used for equality comparison\n *\n * @example\n * ```typescript\n * const snapshot = createFieldStateSnapshot(store.getFieldState(\"email\"), lastSnapshot);\n * if (snapshot !== lastSnapshot) {\n * // Field state changed, update component\n * render(snapshot);\n * }\n * ```\n */\nexport function createFieldStateSnapshot<TValue = unknown>(\n nextState: {\n value: TValue;\n error: string | undefined;\n touched: boolean;\n isHidden: boolean;\n isRequired: boolean;\n isDirty: boolean;\n isValidating: boolean;\n },\n lastSnapshot: BitFieldSnapshot<TValue> | null,\n): BitFieldSnapshot<TValue> {\n // Use shallow equality: return cached if all fields are equal by reference\n if (lastSnapshot) {\n const shallowEqual =\n lastSnapshot.value === nextState.value &&\n lastSnapshot.error === nextState.error &&\n lastSnapshot.touched === nextState.touched &&\n lastSnapshot.isHidden === nextState.isHidden &&\n lastSnapshot.isRequired === nextState.isRequired &&\n lastSnapshot.isDirty === nextState.isDirty &&\n lastSnapshot.isValidating === nextState.isValidating;\n\n if (shallowEqual) {\n return lastSnapshot;\n }\n }\n\n return {\n value: nextState.value,\n error: nextState.error,\n touched: nextState.touched,\n isHidden: nextState.isHidden,\n isRequired: nextState.isRequired,\n isDirty: nextState.isDirty,\n isValidating: nextState.isValidating,\n };\n}\n\n/**\n * Deep comparison utility for field state snapshots.\n * Useful for scenarios where shallow comparison isn't sufficient (e.g., object/array values).\n *\n * @param snapshotA - First snapshot\n * @param snapshotB - Second snapshot\n * @returns true if snapshots are deeply equal\n */\nexport function areFieldSnapshotsEqual(\n snapshotA: BitFieldSnapshot | null | undefined,\n snapshotB: BitFieldSnapshot | null | undefined,\n): boolean {\n if (snapshotA === snapshotB) return true;\n if (!snapshotA || !snapshotB) return false;\n\n return (\n deepEqual(snapshotA.value, snapshotB.value) &&\n snapshotA.error === snapshotB.error &&\n snapshotA.touched === snapshotB.touched &&\n snapshotA.isHidden === snapshotB.isHidden &&\n snapshotA.isRequired === snapshotB.isRequired &&\n snapshotA.isDirty === snapshotB.isDirty &&\n snapshotA.isValidating === snapshotB.isValidating\n );\n}\n\nexport const areFieldStatesEqual = areFieldSnapshotsEqual;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-GKNGJOB3.cjs","../src/core/utils/field-state-snapshot.ts"],"names":["createFieldStateSnapshot","nextState","lastSnapshot","areFieldSnapshotsEqual","snapshotA","snapshotB","deepEqual","areFieldStatesEqual"],"mappings":"AAAA,iIAAwC,SCqCxBA,CAAAA,CACdC,CAAAA,CASAC,CAAAA,CAC0B,CAE1B,OAAIA,CAAAA,EAEAA,CAAAA,CAAa,KAAA,GAAUD,CAAAA,CAAU,KAAA,EACjCC,CAAAA,CAAa,KAAA,GAAUD,CAAAA,CAAU,KAAA,EACjCC,CAAAA,CAAa,OAAA,GAAYD,CAAAA,CAAU,OAAA,EACnCC,CAAAA,CAAa,QAAA,GAAaD,CAAAA,CAAU,QAAA,EACpCC,CAAAA,CAAa,UAAA,GAAeD,CAAAA,CAAU,UAAA,EACtCC,CAAAA,CAAa,OAAA,GAAYD,CAAAA,CAAU,OAAA,EACnCC,CAAAA,CAAa,YAAA,GAAiBD,CAAAA,CAAU,YAAA,CAGjCC,CAAAA,CAIJ,CACL,KAAA,CAAOD,CAAAA,CAAU,KAAA,CACjB,KAAA,CAAOA,CAAAA,CAAU,KAAA,CACjB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUA,CAAAA,CAAU,QAAA,CACpB,UAAA,CAAYA,CAAAA,CAAU,UAAA,CACtB,OAAA,CAASA,CAAAA,CAAU,OAAA,CACnB,YAAA,CAAcA,CAAAA,CAAU,YAC1B,CACF,CAUO,SAASE,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACS,CACT,OAAID,CAAAA,GAAcC,CAAAA,CAAkB,CAAA,CAAA,CAChC,CAACD,CAAAA,EAAa,CAACC,CAAAA,CAAkB,CAAA,CAAA,CAGnCC,iCAAAA,CAAUF,CAAU,KAAA,CAAOC,CAAAA,CAAU,KAAK,CAAA,EAC1CD,CAAAA,CAAU,KAAA,GAAUC,CAAAA,CAAU,KAAA,EAC9BD,CAAAA,CAAU,OAAA,GAAYC,CAAAA,CAAU,OAAA,EAChCD,CAAAA,CAAU,QAAA,GAAaC,CAAAA,CAAU,QAAA,EACjCD,CAAAA,CAAU,UAAA,GAAeC,CAAAA,CAAU,UAAA,EACnCD,CAAAA,CAAU,OAAA,GAAYC,CAAAA,CAAU,OAAA,EAChCD,CAAAA,CAAU,YAAA,GAAiBC,CAAAA,CAAU,YAEzC,CAEO,IAAME,CAAAA,CAAsBJ,CAAAA,CAAAA,4CAAAA","file":"/home/runner/work/bit-form/bit-form/dist/chunk-GKNGJOB3.cjs","sourcesContent":[null,"/**\n * Field State Snapshot Utilities\n *\n * Shared utilities for creating and managing field state snapshots across frameworks\n * (React, Vue, Angular). Reduces code duplication while maintaining type safety.\n */\n\nimport type { BitFieldState } from \"../store/contracts/types\";\nimport { deepEqual } from \"../utils\";\n\n/**\n * Represents a stable snapshot of field state that can be compared for equality.\n */\nexport type BitFieldSnapshot<TValue = unknown> = BitFieldState<\n Record<string, unknown>,\n TValue\n>;\n\n/**\n * Creates or reuses a field state snapshot with shallow equality checking.\n *\n * This function prevents unnecessary re-renders in frameworks like React by\n * returning the same object reference when field state hasn't changed.\n *\n * @param nextState - The new field state from the store\n * @param lastSnapshot - The previous snapshot (can be null on first call)\n * @returns A stable snapshot object that can be used for equality comparison\n *\n * @example\n * ```typescript\n * const snapshot = createFieldStateSnapshot(store.getFieldState(\"email\"), lastSnapshot);\n * if (snapshot !== lastSnapshot) {\n * // Field state changed, update component\n * render(snapshot);\n * }\n * ```\n */\nexport function createFieldStateSnapshot<TValue = unknown>(\n nextState: {\n value: TValue;\n error: string | undefined;\n touched: boolean;\n isHidden: boolean;\n isRequired: boolean;\n isDirty: boolean;\n isValidating: boolean;\n },\n lastSnapshot: BitFieldSnapshot<TValue> | null,\n): BitFieldSnapshot<TValue> {\n // Use shallow equality: return cached if all fields are equal by reference\n if (lastSnapshot) {\n const shallowEqual =\n lastSnapshot.value === nextState.value &&\n lastSnapshot.error === nextState.error &&\n lastSnapshot.touched === nextState.touched &&\n lastSnapshot.isHidden === nextState.isHidden &&\n lastSnapshot.isRequired === nextState.isRequired &&\n lastSnapshot.isDirty === nextState.isDirty &&\n lastSnapshot.isValidating === nextState.isValidating;\n\n if (shallowEqual) {\n return lastSnapshot;\n }\n }\n\n return {\n value: nextState.value,\n error: nextState.error,\n touched: nextState.touched,\n isHidden: nextState.isHidden,\n isRequired: nextState.isRequired,\n isDirty: nextState.isDirty,\n isValidating: nextState.isValidating,\n };\n}\n\n/**\n * Deep comparison utility for field state snapshots.\n * Useful for scenarios where shallow comparison isn't sufficient (e.g., object/array values).\n *\n * @param snapshotA - First snapshot\n * @param snapshotB - Second snapshot\n * @returns true if snapshots are deeply equal\n */\nexport function areFieldSnapshotsEqual(\n snapshotA: BitFieldSnapshot | null | undefined,\n snapshotB: BitFieldSnapshot | null | undefined,\n): boolean {\n if (snapshotA === snapshotB) return true;\n if (!snapshotA || !snapshotB) return false;\n\n return (\n deepEqual(snapshotA.value, snapshotB.value) &&\n snapshotA.error === snapshotB.error &&\n snapshotA.touched === snapshotB.touched &&\n snapshotA.isHidden === snapshotB.isHidden &&\n snapshotA.isRequired === snapshotB.isRequired &&\n snapshotA.isDirty === snapshotB.isDirty &&\n snapshotA.isValidating === snapshotB.isValidating\n );\n}\n\nexport const areFieldStatesEqual = areFieldSnapshotsEqual;\n"]}
@@ -1,2 +1,2 @@
1
- import{d as r}from"./chunk-IMMFFTXE.js";function o(i,e){return e&&e.value===i.value&&e.error===i.error&&e.touched===i.touched&&e.isHidden===i.isHidden&&e.isRequired===i.isRequired&&e.isDirty===i.isDirty&&e.isValidating===i.isValidating?e:{value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating}}function d(i,e){return i===e?!0:!i||!e?!1:r(i.value,e.value)&&i.error===e.error&&i.touched===e.touched&&i.isHidden===e.isHidden&&i.isRequired===e.isRequired&&i.isDirty===e.isDirty&&i.isValidating===e.isValidating}var n=d;export{o as a,d as b,n as c};
2
- //# sourceMappingURL=chunk-JKYECJH5.js.map
1
+ import{d as r}from"./chunk-G3EHXKOS.js";function o(i,e){return e&&e.value===i.value&&e.error===i.error&&e.touched===i.touched&&e.isHidden===i.isHidden&&e.isRequired===i.isRequired&&e.isDirty===i.isDirty&&e.isValidating===i.isValidating?e:{value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating}}function d(i,e){return i===e?!0:!i||!e?!1:r(i.value,e.value)&&i.error===e.error&&i.touched===e.touched&&i.isHidden===e.isHidden&&i.isRequired===e.isRequired&&i.isDirty===e.isDirty&&i.isValidating===e.isValidating}var n=d;export{o as a,d as b,n as c};
2
+ //# sourceMappingURL=chunk-HE6EQZTH.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkMAKFWOL5cjs = require('./chunk-MAKFWOL5.cjs');var _chunkALIYU2RTcjs = require('./chunk-ALIYU2RT.cjs');var _chunkRHMJPKNVcjs = require('./chunk-RHMJPKNV.cjs');var _chunkOSQWKXFIcjs = require('./chunk-OSQWKXFI.cjs');var _chunkVOA3SKFYcjs = require('./chunk-VOA3SKFY.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var L=_react.createContext.call(void 0, null),ft= exports.a =({store:t,children:e})=>_jsxruntime.jsx.call(void 0, L.Provider,{value:_chunkMAKFWOL5cjs.d.call(void 0, t),children:e}),l= exports.b =()=>{let t=_react.useContext.call(void 0, L);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};function Pt(){let t=l(),[e,r]=_react.useState.call(void 0, null),[i,s]=_react.useState.call(void 0, null),o=_react.useRef.call(void 0, null),c=_react.useCallback.call(void 0, S=>_chunkALIYU2RTcjs.b.call(void 0, t,S),[t]),m=_react.useCallback.call(void 0, ()=>{let S=_chunkALIYU2RTcjs.a.call(void 0, t);return o.current&&o.current.isValid===S.isValid&&o.current.isDirty===S.isDirty&&o.current.isSubmitting===S.isSubmitting?o.current:(o.current=S,S)},[t]),n=_react.useSyncExternalStore.call(void 0, c,m,m),d=_react.useMemo.call(void 0, ()=>_chunkALIYU2RTcjs.i.call(void 0, t,{clearSubmissionState:()=>{r(null),s(null)},setSubmissionResult:S=>{s(S)},setSubmissionError:S=>{r(S)}}),[t]),{controller:a,actions:x}=d,v=_react.useCallback.call(void 0, a.submit,[a]),T=_react.useCallback.call(void 0, a.onSubmit,[a]),E=_react.useCallback.call(void 0, a.reset,[a]),u=_react.useCallback.call(void 0, a.getValues,[a]),b=_react.useCallback.call(void 0, a.getErrors,[a]),B=_react.useCallback.call(void 0, a.getTouched,[a]),g=_react.useCallback.call(void 0, a.getDirtyValues,[a]);return{meta:_react.useMemo.call(void 0, ()=>({...n,submitError:e,lastResponse:i}),[n,e,i]),getValues:u,getErrors:b,getTouched:B,getDirtyValues:g,submit:v,onSubmit:T,reset:E,...x}}function Rt(t){let e=l(),r=_react.useMemo.call(void 0, ()=>_chunkALIYU2RTcjs.g.call(void 0, e,t),[e,t]),i=_react.useRef.call(void 0, null),s=_react.useCallback.call(void 0, ()=>{let n=r.readItems();return i.current&&_chunkVOA3SKFYcjs.c.call(void 0, i.current,n)?i.current:(i.current=n,n)},[r]),o=_react.useCallback.call(void 0, n=>e.observe.subscribePath(t,()=>n()),[e,t]),c=_react.useSyncExternalStore.call(void 0, o,s,s),m=_react.useMemo.call(void 0, ()=>r.getFields(c),[r,c]);return _react.useEffect.call(void 0, ()=>()=>{_chunkALIYU2RTcjs.k.call(void 0, e,`${t}.`)},[e,t]),{fields:m,length:c.length,append:r.append,prepend:r.prepend,insert:r.insert,remove:r.remove,move:r.move,swap:r.swap,replace:r.replace,clear:r.clear}}function At(t){let e=l(),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let n=e.read.getScopeStatus(t);return r.current&&_chunkRHMJPKNVcjs.b.call(void 0, r.current,n)?r.current:(r.current=n,n)},[e,t]),s=_react.useCallback.call(void 0, n=>e.observe.subscribeScopeStatus(t,()=>n()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,i,i),c=_react.useCallback.call(void 0, async()=>{let n=await e.feature.validate({scope:t}),d=e.read.getScopeErrors(t);return{valid:n,errors:d}},[e,t]),m=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(t),[e,t]);return{scopeName:t,status:o,errors:o.errors,validate:c,getErrors:m,isValid:!o.hasErrors,isDirty:o.isDirty}}function It(t){let e=l(),[r,i]=_react.useState.call(void 0, 0),s=_nullishCoalesce(t[r], () => ("")),o=_react.useRef.call(void 0, null),c=_react.useCallback.call(void 0, ()=>{let u=e.read.getScopeStatus(s);return o.current&&_chunkRHMJPKNVcjs.b.call(void 0, o.current,u)?o.current:(o.current=u,u)},[e,s]),m=_react.useSyncExternalStore.call(void 0, _react.useCallback.call(void 0, u=>e.observe.subscribeScopeStatus(s,()=>u()),[e,s]),c,c),n=_react.useCallback.call(void 0, async()=>{let u=await e.feature.validate({scope:s}),b=e.read.getScopeErrors(s);return{valid:u,errors:b}},[e,s]),d=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(s),[e,s]),a=_react.useCallback.call(void 0, async()=>{let u=e.read.getScopeFields(s);if(e.feature.hasValidationsInProgress(u))return!1;let b=await e.feature.validate({scope:s});if(b)i(B=>Math.min(B+1,t.length-1));else{let B=e.read.getScopeErrors(s),g=Object.keys(B);g.length>0&&e.write.markFieldsTouched(g)}return b},[e,s,t.length]),x=_react.useCallback.call(void 0, ()=>{i(u=>Math.max(u-1,0))},[]),v=_react.useCallback.call(void 0, u=>{i(Math.max(0,Math.min(u-1,t.length-1)))},[t.length]),T=r===0,E=r>=t.length-1;return{step:r+1,stepIndex:r,scope:s,next:a,prev:x,goTo:v,isFirst:T,isLast:E,status:m,errors:m.errors,isValid:!m.hasErrors,isDirty:m.isDirty,validate:n,getErrors:d}}function zt(t){let e=l(),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let o=_chunkVOA3SKFYcjs.f.call(void 0, e.read.getState().values,t);return r.current!==null&&_chunkVOA3SKFYcjs.c.call(void 0, r.current,o)?r.current:(r.current=o,o)},[e,t]),s=_react.useCallback.call(void 0, o=>e.observe.subscribePath(t,()=>o()),[e,t]);return _react.useSyncExternalStore.call(void 0, s,i,i)}function Qt(){let t=l(),e=_react.useSyncExternalStore.call(void 0, c=>_chunkALIYU2RTcjs.e.call(void 0, t,c),()=>_chunkALIYU2RTcjs.d.call(void 0, t),()=>_chunkALIYU2RTcjs.d.call(void 0, t)),r=_react.useCallback.call(void 0, async()=>t.feature.restorePersisted(),[t]),i=_react.useCallback.call(void 0, async()=>{await t.feature.forceSave()},[t]),s=_react.useCallback.call(void 0, async()=>{await t.feature.clearPersisted()},[t]),o=_react.useMemo.call(void 0, ()=>({isSaving:e.isSaving,isRestoring:e.isRestoring,error:e.error}),[e]);return{restore:r,save:i,clear:s,meta:o}}function se(t){let e=l(),r=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>()=>_chunkALIYU2RTcjs.j.call(void 0, e,t),[e,t]);let i=_react.useCallback.call(void 0, ()=>{let n=e.read.getFieldState(t),d=_chunkOSQWKXFIcjs.a.call(void 0, n,r.current);return r.current=d,d},[e,t]),s=_react.useCallback.call(void 0, n=>e.observe.subscribeFieldState(t,()=>n()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,i,i),c=_react.useCallback.call(void 0, n=>e.write.setField(t,n),[e,t]),m=_react.useCallback.call(void 0, ()=>e.write.blurField(t),[e,t]);return{fieldState:o,setValue:c,setBlur:m,store:e}}exports.a = ft; exports.b = l; exports.c = Pt; exports.d = se; exports.e = Rt; exports.f = At; exports.g = It; exports.h = zt; exports.i = Qt;
2
- //# sourceMappingURL=chunk-IXZ52RPZ.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkCIZ6UW2Jcjs = require('./chunk-CIZ6UW2J.cjs');var _chunkAVUK52JWcjs = require('./chunk-AVUK52JW.cjs');var _chunkRHMJPKNVcjs = require('./chunk-RHMJPKNV.cjs');var _chunkGKNGJOB3cjs = require('./chunk-GKNGJOB3.cjs');var _chunkFTXV2NZOcjs = require('./chunk-FTXV2NZO.cjs');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var L=_react.createContext.call(void 0, null),ft= exports.a =({store:t,children:e})=>_jsxruntime.jsx.call(void 0, L.Provider,{value:_chunkCIZ6UW2Jcjs.d.call(void 0, t),children:e}),l= exports.b =()=>{let t=_react.useContext.call(void 0, L);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};function Pt(){let t=l(),[e,r]=_react.useState.call(void 0, null),[i,s]=_react.useState.call(void 0, null),o=_react.useRef.call(void 0, null),c=_react.useCallback.call(void 0, S=>_chunkAVUK52JWcjs.b.call(void 0, t,S),[t]),m=_react.useCallback.call(void 0, ()=>{let S=_chunkAVUK52JWcjs.a.call(void 0, t);return o.current&&o.current.isValid===S.isValid&&o.current.isDirty===S.isDirty&&o.current.isSubmitting===S.isSubmitting?o.current:(o.current=S,S)},[t]),n=_react.useSyncExternalStore.call(void 0, c,m,m),d=_react.useMemo.call(void 0, ()=>_chunkAVUK52JWcjs.i.call(void 0, t,{clearSubmissionState:()=>{r(null),s(null)},setSubmissionResult:S=>{s(S)},setSubmissionError:S=>{r(S)}}),[t]),{controller:a,actions:x}=d,v=_react.useCallback.call(void 0, a.submit,[a]),T=_react.useCallback.call(void 0, a.onSubmit,[a]),E=_react.useCallback.call(void 0, a.reset,[a]),u=_react.useCallback.call(void 0, a.getValues,[a]),b=_react.useCallback.call(void 0, a.getErrors,[a]),B=_react.useCallback.call(void 0, a.getTouched,[a]),g=_react.useCallback.call(void 0, a.getDirtyValues,[a]);return{meta:_react.useMemo.call(void 0, ()=>({...n,submitError:e,lastResponse:i}),[n,e,i]),getValues:u,getErrors:b,getTouched:B,getDirtyValues:g,submit:v,onSubmit:T,reset:E,...x}}function Rt(t){let e=l(),r=_react.useMemo.call(void 0, ()=>_chunkAVUK52JWcjs.g.call(void 0, e,t),[e,t]),i=_react.useRef.call(void 0, null),s=_react.useCallback.call(void 0, ()=>{let n=r.readItems();return i.current&&_chunkFTXV2NZOcjs.c.call(void 0, i.current,n)?i.current:(i.current=n,n)},[r]),o=_react.useCallback.call(void 0, n=>e.observe.subscribePath(t,()=>n()),[e,t]),c=_react.useSyncExternalStore.call(void 0, o,s,s),m=_react.useMemo.call(void 0, ()=>r.getFields(c),[r,c]);return _react.useEffect.call(void 0, ()=>()=>{_chunkAVUK52JWcjs.k.call(void 0, e,`${t}.`)},[e,t]),{fields:m,length:c.length,append:r.append,prepend:r.prepend,insert:r.insert,remove:r.remove,move:r.move,swap:r.swap,replace:r.replace,clear:r.clear}}function At(t){let e=l(),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let n=e.read.getScopeStatus(t);return r.current&&_chunkRHMJPKNVcjs.b.call(void 0, r.current,n)?r.current:(r.current=n,n)},[e,t]),s=_react.useCallback.call(void 0, n=>e.observe.subscribeScopeStatus(t,()=>n()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,i,i),c=_react.useCallback.call(void 0, async()=>{let n=await e.feature.validate({scope:t}),d=e.read.getScopeErrors(t);return{valid:n,errors:d}},[e,t]),m=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(t),[e,t]);return{scopeName:t,status:o,errors:o.errors,validate:c,getErrors:m,isValid:!o.hasErrors,isDirty:o.isDirty}}function It(t){let e=l(),[r,i]=_react.useState.call(void 0, 0),s=_nullishCoalesce(t[r], () => ("")),o=_react.useRef.call(void 0, null),c=_react.useCallback.call(void 0, ()=>{let u=e.read.getScopeStatus(s);return o.current&&_chunkRHMJPKNVcjs.b.call(void 0, o.current,u)?o.current:(o.current=u,u)},[e,s]),m=_react.useSyncExternalStore.call(void 0, _react.useCallback.call(void 0, u=>e.observe.subscribeScopeStatus(s,()=>u()),[e,s]),c,c),n=_react.useCallback.call(void 0, async()=>{let u=await e.feature.validate({scope:s}),b=e.read.getScopeErrors(s);return{valid:u,errors:b}},[e,s]),d=_react.useCallback.call(void 0, ()=>e.read.getScopeErrors(s),[e,s]),a=_react.useCallback.call(void 0, async()=>{let u=e.read.getScopeFields(s);if(e.feature.hasValidationsInProgress(u))return!1;let b=await e.feature.validate({scope:s});if(b)i(B=>Math.min(B+1,t.length-1));else{let B=e.read.getScopeErrors(s),g=Object.keys(B);g.length>0&&e.write.markFieldsTouched(g)}return b},[e,s,t.length]),x=_react.useCallback.call(void 0, ()=>{i(u=>Math.max(u-1,0))},[]),v=_react.useCallback.call(void 0, u=>{i(Math.max(0,Math.min(u-1,t.length-1)))},[t.length]),T=r===0,E=r>=t.length-1;return{step:r+1,stepIndex:r,scope:s,next:a,prev:x,goTo:v,isFirst:T,isLast:E,status:m,errors:m.errors,isValid:!m.hasErrors,isDirty:m.isDirty,validate:n,getErrors:d}}function zt(t){let e=l(),r=_react.useRef.call(void 0, null),i=_react.useCallback.call(void 0, ()=>{let o=_chunkFTXV2NZOcjs.f.call(void 0, e.read.getState().values,t);return r.current!==null&&_chunkFTXV2NZOcjs.c.call(void 0, r.current,o)?r.current:(r.current=o,o)},[e,t]),s=_react.useCallback.call(void 0, o=>e.observe.subscribePath(t,()=>o()),[e,t]);return _react.useSyncExternalStore.call(void 0, s,i,i)}function Qt(){let t=l(),e=_react.useSyncExternalStore.call(void 0, c=>_chunkAVUK52JWcjs.e.call(void 0, t,c),()=>_chunkAVUK52JWcjs.d.call(void 0, t),()=>_chunkAVUK52JWcjs.d.call(void 0, t)),r=_react.useCallback.call(void 0, async()=>t.feature.restorePersisted(),[t]),i=_react.useCallback.call(void 0, async()=>{await t.feature.forceSave()},[t]),s=_react.useCallback.call(void 0, async()=>{await t.feature.clearPersisted()},[t]),o=_react.useMemo.call(void 0, ()=>({isSaving:e.isSaving,isRestoring:e.isRestoring,error:e.error}),[e]);return{restore:r,save:i,clear:s,meta:o}}function se(t){let e=l(),r=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>()=>_chunkAVUK52JWcjs.j.call(void 0, e,t),[e,t]);let i=_react.useCallback.call(void 0, ()=>{let n=e.read.getFieldState(t),d=_chunkGKNGJOB3cjs.a.call(void 0, n,r.current);return r.current=d,d},[e,t]),s=_react.useCallback.call(void 0, n=>e.observe.subscribeFieldState(t,()=>n()),[e,t]),o=_react.useSyncExternalStore.call(void 0, s,i,i),c=_react.useCallback.call(void 0, n=>e.write.setField(t,n),[e,t]),m=_react.useCallback.call(void 0, ()=>e.write.blurField(t),[e,t]);return{fieldState:o,setValue:c,setBlur:m,store:e}}exports.a = ft; exports.b = l; exports.c = Pt; exports.d = se; exports.e = Rt; exports.f = At; exports.g = It; exports.h = zt; exports.i = Qt;
2
+ //# sourceMappingURL=chunk-IB2BMG4F.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-IXZ52RPZ.cjs","../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts"],"names":["BitContext","createContext","BitFormProvider","store","children","jsx","createFrameworkStoreAdapter","useBitStore","useContext","useBitForm","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","subscribeMeta","useCallback","cb","subscribeFormMetaSnapshot","getMetaSnapshot","nextMeta","readFormMetaSnapshot","metaState","useSyncExternalStore","binding","useMemo","createFrameworkFormBinding","result","error","controller","actions","submit","onSubmit","reset","getValues","getErrors","getTouched","getDirtyValues","useBitArray","path","createArrayBinding","lastSnapshotRef","getSnapshot","next","valueEqual","subscribeArray","data","fields","useEffect","cleanupRegisteredPrefix"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-IXZ52RPZ.cjs","sourcesContent":[null,"import React, { createContext, useContext } from \"react\";\nimport type { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nconst BitContext = createContext<BitFrameworkStoreApi<any> | null>(null);\n\nexport const BitFormProvider = ({\n store,\n children,\n}: {\n store: BitFrameworkStoreApi<any> | BitStoreApi<any>;\n children: React.ReactNode;\n}) => (\n <BitContext.Provider value={createFrameworkStoreAdapter(store)}>\n {children}\n </BitContext.Provider>\n);\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitFrameworkStoreApi<T>;\n};\n","import {\n useCallback,\n useSyncExternalStore,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport {\n createFrameworkFormBinding,\n readFormMetaSnapshot,\n subscribeFormMetaSnapshot,\n} from \"../core\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n const lastMeta = useRef<ReturnType<typeof readFormMetaSnapshot<T>> | null>(\n null,\n );\n\n const subscribeMeta = useCallback(\n (cb: () => void) => subscribeFormMetaSnapshot(store, cb),\n [store],\n );\n const getMetaSnapshot = useCallback(() => {\n const nextMeta = readFormMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === nextMeta.isValid &&\n lastMeta.current.isDirty === nextMeta.isDirty &&\n lastMeta.current.isSubmitting === nextMeta.isSubmitting\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n subscribeMeta,\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const binding = useMemo(\n () =>\n createFrameworkFormBinding(store, {\n clearSubmissionState: () => {\n setSubmitError(null);\n setLastResponse(null);\n },\n setSubmissionResult: (result) => {\n setLastResponse(result);\n },\n setSubmissionError: (error) => {\n setSubmitError(error);\n },\n }),\n [store],\n );\n\n const { controller, actions } = binding;\n\n const submit = useCallback(controller.submit, [controller]);\n const onSubmit = useCallback(controller.onSubmit, [controller]);\n const reset = useCallback(controller.reset, [controller]);\n\n const getValues = useCallback(controller.getValues, [controller]);\n const getErrors = useCallback(controller.getErrors, [controller]);\n const getTouched = useCallback(controller.getTouched, [controller]);\n const getDirtyValues = useCallback(controller.getDirtyValues, [controller]);\n\n const meta = useMemo(\n () => ({\n ...metaState,\n submitError,\n lastResponse,\n }),\n [metaState, submitError, lastResponse],\n );\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n ...actions,\n };\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from \"react\";\nimport {\n BitArrayPath,\n cleanupRegisteredPrefix,\n createArrayBinding,\n valueEqual,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const controller = useMemo(\n () => createArrayBinding<TForm, P>(store, path),\n [store, path],\n );\n type ArraySnapshot = ReturnType<typeof controller.readItems>;\n const lastSnapshotRef = useRef<ArraySnapshot | null>(null);\n\n const getSnapshot = useCallback(() => {\n const next = controller.readItems();\n\n if (lastSnapshotRef.current && valueEqual(lastSnapshotRef.current, next)) {\n return lastSnapshotRef.current;\n }\n\n lastSnapshotRef.current = next;\n return next;\n }, [controller]);\n\n const subscribeArray = useCallback(\n (cb: () => void) => store.observe.subscribePath(path, () => cb()),\n [store, path],\n );\n\n const data = useSyncExternalStore(subscribeArray, getSnapshot, getSnapshot);\n\n const fields = useMemo(() => controller.getFields(data), [controller, data]);\n\n useEffect(() => {\n return () => {\n cleanupRegisteredPrefix(store, `${path as string}.`);\n };\n }, [store, path]);\n\n return {\n fields,\n length: data.length,\n append: controller.append,\n prepend: controller.prepend,\n insert: controller.insert,\n remove: controller.remove,\n move: controller.move,\n swap: controller.swap,\n replace: controller.replace,\n clear: controller.clear,\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-IB2BMG4F.cjs","../src/react/context.tsx","../src/react/use-bit-form.ts","../src/react/use-bit-array.ts"],"names":["BitContext","createContext","BitFormProvider","store","children","jsx","createFrameworkStoreAdapter","useBitStore","useContext","useBitForm","submitError","setSubmitError","useState","lastResponse","setLastResponse","lastMeta","useRef","subscribeMeta","useCallback","cb","subscribeFormMetaSnapshot","getMetaSnapshot","nextMeta","readFormMetaSnapshot","metaState","useSyncExternalStore","binding","useMemo","createFrameworkFormBinding","result","error","controller","actions","submit","onSubmit","reset","getValues","getErrors","getTouched","getDirtyValues","useBitArray","path","createArrayBinding","lastSnapshotRef","getSnapshot","next","valueEqual","subscribeArray","data","fields","useEffect","cleanupRegisteredPrefix"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-IB2BMG4F.cjs","sourcesContent":[null,"import React, { createContext, useContext } from \"react\";\nimport type { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nconst BitContext = createContext<BitFrameworkStoreApi<any> | null>(null);\n\nexport const BitFormProvider = ({\n store,\n children,\n}: {\n store: BitFrameworkStoreApi<any> | BitStoreApi<any>;\n children: React.ReactNode;\n}) => (\n <BitContext.Provider value={createFrameworkStoreAdapter(store)}>\n {children}\n </BitContext.Provider>\n);\n\nexport const useBitStore = <T extends object>() => {\n const store = useContext(BitContext);\n if (!store)\n throw new Error(\n \"BitForm hooks devem ser usados dentro de um BitFormProvider\",\n );\n return store as BitFrameworkStoreApi<T>;\n};\n","import {\n useCallback,\n useSyncExternalStore,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useBitStore } from \"./context\";\nimport {\n createFrameworkFormBinding,\n readFormMetaSnapshot,\n subscribeFormMetaSnapshot,\n} from \"../core\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n\n const [submitError, setSubmitError] = useState<Error | null>(null);\n const [lastResponse, setLastResponse] = useState<unknown>(null);\n const lastMeta = useRef<ReturnType<typeof readFormMetaSnapshot<T>> | null>(\n null,\n );\n\n const subscribeMeta = useCallback(\n (cb: () => void) => subscribeFormMetaSnapshot(store, cb),\n [store],\n );\n const getMetaSnapshot = useCallback(() => {\n const nextMeta = readFormMetaSnapshot(store);\n\n if (\n lastMeta.current &&\n lastMeta.current.isValid === nextMeta.isValid &&\n lastMeta.current.isDirty === nextMeta.isDirty &&\n lastMeta.current.isSubmitting === nextMeta.isSubmitting\n ) {\n return lastMeta.current;\n }\n\n lastMeta.current = nextMeta;\n return nextMeta;\n }, [store]);\n\n const metaState = useSyncExternalStore(\n subscribeMeta,\n getMetaSnapshot,\n getMetaSnapshot,\n );\n\n const binding = useMemo(\n () =>\n createFrameworkFormBinding(store, {\n clearSubmissionState: () => {\n setSubmitError(null);\n setLastResponse(null);\n },\n setSubmissionResult: (result) => {\n setLastResponse(result);\n },\n setSubmissionError: (error) => {\n setSubmitError(error);\n },\n }),\n [store],\n );\n\n const { controller, actions } = binding;\n\n const submit = useCallback(controller.submit, [controller]);\n const onSubmit = useCallback(controller.onSubmit, [controller]);\n const reset = useCallback(controller.reset, [controller]);\n\n const getValues = useCallback(controller.getValues, [controller]);\n const getErrors = useCallback(controller.getErrors, [controller]);\n const getTouched = useCallback(controller.getTouched, [controller]);\n const getDirtyValues = useCallback(controller.getDirtyValues, [controller]);\n\n const meta = useMemo(\n () => ({\n ...metaState,\n submitError,\n lastResponse,\n }),\n [metaState, submitError, lastResponse],\n );\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n ...actions,\n };\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useSyncExternalStore,\n} from \"react\";\nimport {\n BitArrayPath,\n cleanupRegisteredPrefix,\n createArrayBinding,\n valueEqual,\n} from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const controller = useMemo(\n () => createArrayBinding<TForm, P>(store, path),\n [store, path],\n );\n type ArraySnapshot = ReturnType<typeof controller.readItems>;\n const lastSnapshotRef = useRef<ArraySnapshot | null>(null);\n\n const getSnapshot = useCallback(() => {\n const next = controller.readItems();\n\n if (lastSnapshotRef.current && valueEqual(lastSnapshotRef.current, next)) {\n return lastSnapshotRef.current;\n }\n\n lastSnapshotRef.current = next;\n return next;\n }, [controller]);\n\n const subscribeArray = useCallback(\n (cb: () => void) => store.observe.subscribePath(path, () => cb()),\n [store, path],\n );\n\n const data = useSyncExternalStore(subscribeArray, getSnapshot, getSnapshot);\n\n const fields = useMemo(() => controller.getFields(data), [controller, data]);\n\n useEffect(() => {\n return () => {\n cleanupRegisteredPrefix(store, `${path as string}.`);\n };\n }, [store, path]);\n\n return {\n fields,\n length: data.length,\n append: controller.append,\n prepend: controller.prepend,\n insert: controller.insert,\n remove: controller.remove,\n move: controller.move,\n swap: controller.swap,\n replace: controller.replace,\n clear: controller.clear,\n };\n}\n"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkQKGTVKBUcjs = require('./chunk-QKGTVKBU.cjs');var _chunkMAKFWOL5cjs = require('./chunk-MAKFWOL5.cjs');function R(e){return{values:e.values,errors:e.errors,touched:e.touched,isValid:e.isValid,isDirty:e.isDirty,isSubmitting:e.isSubmitting,isValidating:e.isValidating,persist:e.persist}}function k(e){let o=e.getHistoryMetadata();return{...R(e.getState()),_meta:{canUndo:o.canUndo,canRedo:o.canRedo,totalSteps:o.historySize,currentIndex:o.historyIndex}}}function b(e){let o={};for(let[t,i]of Object.entries(e))o[t]=k(i);return o}function w(e){if(!e||typeof e!="object")return!1;let o=e;return typeof o.getState=="function"&&typeof o.getHistoryMetadata=="function"}function I(e){if(!w(e))return!1;let o=e;return typeof o.undo=="function"&&typeof o.redo=="function"&&typeof o.reset=="function"}function B(e,o){let t=e[o];return I(t)?t:null}var S=null,O=50;function N(e,o=_chunkMAKFWOL5cjs.a){S&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),S());let t=null,i=null,f,n=null,a=new Set,T=!1,u=r=>{_optionalChain([t, 'optionalAccess', _ => _.readyState])===WebSocket.OPEN&&t.send(JSON.stringify(r))},h=()=>{if(a.size===0)return;let r=b(Array.from(a).reduce((s,l)=>{let d=o.stores[l];return d&&(s[l]=d),s},{}));a.clear(),n=null,Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r})},D=()=>{n||(n=setTimeout(()=>{h()},O))},y=()=>{T=!1,t=new WebSocket(e),t.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket."),u({type:"HELLO",protocolVersion:1,payload:{role:"server",protocolVersion:1}});let r=b(o.stores);Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r}),i=o.subscribe((s,l)=>{a.add(s),D()}),f=setInterval(()=>{u({type:"PING",protocolVersion:1})},3e4)},t.onmessage=r=>{try{let s=JSON.parse(r.data);if(_chunkQKGTVKBUcjs.c.call(void 0, s)){let{storeId:l,action:d}=s.payload,p=B(o.stores,l);if(!p)return;switch(d){case"undo":p.undo();break;case"redo":p.redo();break;case"reset":p.reset();break}}}catch(s){console.warn("[bit-form] Erro ao processar comando do CLI:",s)}},t.onclose=()=>{i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),T?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),setTimeout(y,3e3))}};y();let m=()=>{T=!0,i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),t&&(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),S=null};return S=m,m}exports.a = b; exports.b = B; exports.c = N;
2
- //# sourceMappingURL=chunk-LM34BK4Q.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkQKGTVKBUcjs = require('./chunk-QKGTVKBU.cjs');var _chunkCIZ6UW2Jcjs = require('./chunk-CIZ6UW2J.cjs');function R(e){return{values:e.values,errors:e.errors,touched:e.touched,isValid:e.isValid,isDirty:e.isDirty,isSubmitting:e.isSubmitting,isValidating:e.isValidating,persist:e.persist}}function k(e){let o=e.getHistoryMetadata();return{...R(e.getState()),_meta:{canUndo:o.canUndo,canRedo:o.canRedo,totalSteps:o.historySize,currentIndex:o.historyIndex}}}function b(e){let o={};for(let[t,i]of Object.entries(e))o[t]=k(i);return o}function w(e){if(!e||typeof e!="object")return!1;let o=e;return typeof o.getState=="function"&&typeof o.getHistoryMetadata=="function"}function I(e){if(!w(e))return!1;let o=e;return typeof o.undo=="function"&&typeof o.redo=="function"&&typeof o.reset=="function"}function B(e,o){let t=e[o];return I(t)?t:null}var S=null,O=50;function N(e,o=_chunkCIZ6UW2Jcjs.a){S&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),S());let t=null,i=null,f,n=null,a=new Set,T=!1,u=r=>{_optionalChain([t, 'optionalAccess', _ => _.readyState])===WebSocket.OPEN&&t.send(JSON.stringify(r))},h=()=>{if(a.size===0)return;let r=b(Array.from(a).reduce((s,l)=>{let d=o.stores[l];return d&&(s[l]=d),s},{}));a.clear(),n=null,Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r})},D=()=>{n||(n=setTimeout(()=>{h()},O))},y=()=>{T=!1,t=new WebSocket(e),t.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket."),u({type:"HELLO",protocolVersion:1,payload:{role:"server",protocolVersion:1}});let r=b(o.stores);Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r}),i=o.subscribe((s,l)=>{a.add(s),D()}),f=setInterval(()=>{u({type:"PING",protocolVersion:1})},3e4)},t.onmessage=r=>{try{let s=JSON.parse(r.data);if(_chunkQKGTVKBUcjs.c.call(void 0, s)){let{storeId:l,action:d}=s.payload,p=B(o.stores,l);if(!p)return;switch(d){case"undo":p.undo();break;case"redo":p.redo();break;case"reset":p.reset();break}}}catch(s){console.warn("[bit-form] Erro ao processar comando do CLI:",s)}},t.onclose=()=>{i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),T?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),setTimeout(y,3e3))}};y();let m=()=>{T=!0,i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),t&&(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),S=null};return S=m,m}exports.a = b; exports.b = B; exports.c = N;
2
+ //# sourceMappingURL=chunk-KGI5PU2P.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-LM34BK4Q.cjs","../src/devtools/store-snapshot.ts","../src/devtools/store-port.ts","../src/devtools/bridge.ts"],"names":["normalizeStoreState","state","createDevToolsStoreSnapshot","store","historyMeta","createDevToolsSnapshotMap","stores","snapshots","storeId","instance","isDevToolsReadableStore","value","candidate","isDevToolsActionableStore","getDevToolsActionableStore","activeBridgeCleanup","STATE_BATCH_INTERVAL_MS","setupRemoteBridge","url","bus","bitBus","socket","unsubscribeBus","heartbeatInterval","batchFlushTimeout","pendingStoreIds","isIntentionalDisconnect","sendWhenOpen","message","flushPendingStoreUpdates","payload","acc","storeInstance","scheduleStoreFlush","connect","initialState","_newState","event","isDevToolsActionMessage","action","e","cleanup"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-LM34BK4Q.cjs","sourcesContent":[null,"import type { BitBusStorePort, BitState } from \"../core\";\nimport type { DevToolsStoreSnapshot, DevToolsStoreSnapshots } from \"./protocol\";\n\nfunction normalizeStoreState<T extends object>(\n state: Readonly<BitState<T>>,\n): Omit<DevToolsStoreSnapshot, \"_meta\"> {\n return {\n values: state.values,\n errors: state.errors as Record<string, unknown>,\n touched: state.touched as Record<string, unknown>,\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n isValidating: state.isValidating as Record<string, unknown>,\n persist: state.persist,\n };\n}\n\nexport function createDevToolsStoreSnapshot<T extends object>(store: {\n getState: () => Readonly<BitState<T>>;\n getHistoryMetadata: () => {\n canUndo: boolean;\n canRedo: boolean;\n historySize: number;\n historyIndex: number;\n };\n}): DevToolsStoreSnapshot {\n const historyMeta = store.getHistoryMetadata();\n\n return {\n ...normalizeStoreState(store.getState()),\n _meta: {\n canUndo: historyMeta.canUndo,\n canRedo: historyMeta.canRedo,\n totalSteps: historyMeta.historySize,\n currentIndex: historyMeta.historyIndex,\n },\n };\n}\n\nexport function createDevToolsSnapshotMap(\n stores: Record<string, BitBusStorePort<object>>,\n): DevToolsStoreSnapshots {\n const snapshots: DevToolsStoreSnapshots = {};\n\n for (const [storeId, instance] of Object.entries(stores)) {\n snapshots[storeId] = createDevToolsStoreSnapshot(instance);\n }\n\n return snapshots;\n}\n","import type { BitBusStorePort } from \"../core\";\n\nexport type BitDevToolsReadableStore<T extends object = object> =\n BitBusStorePort<T>;\n\nexport type BitDevToolsActionableStore<T extends object = object> =\n BitBusStorePort<T>;\n\nexport function isDevToolsReadableStore(\n value: unknown,\n): value is BitDevToolsReadableStore<object> {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as unknown as Record<string, unknown>;\n\n return (\n typeof candidate.getState === \"function\" &&\n typeof candidate.getHistoryMetadata === \"function\"\n );\n}\n\nexport function isDevToolsActionableStore(\n value: unknown,\n): value is BitDevToolsActionableStore<object> {\n if (!isDevToolsReadableStore(value)) {\n return false;\n }\n\n const candidate = value as unknown as Record<string, unknown>;\n\n return (\n typeof candidate.undo === \"function\" &&\n typeof candidate.redo === \"function\" &&\n typeof candidate.reset === \"function\"\n );\n}\n\nexport function getDevToolsActionableStore(\n stores: Record<string, unknown>,\n storeId: string,\n): BitDevToolsActionableStore<object> | null {\n const candidate = stores[storeId];\n return isDevToolsActionableStore(candidate) ? candidate : null;\n}\n","import { bitBus } from \"../core\";\nimport type { BitBus } from \"../core\";\nimport type { BitBusStorePort } from \"../core\";\nimport { DEVTOOLS_PROTOCOL_VERSION, isDevToolsActionMessage } from \"./protocol\";\nimport { createDevToolsSnapshotMap } from \"./store-snapshot\";\nimport { getDevToolsActionableStore } from \"./store-port\";\n\nlet activeBridgeCleanup: (() => void) | null = null;\nconst STATE_BATCH_INTERVAL_MS = 50;\n\nexport function setupRemoteBridge(url: string, bus: BitBus = bitBus) {\n if (activeBridgeCleanup) {\n console.warn(\n \"[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado).\",\n );\n activeBridgeCleanup();\n }\n\n let socket: WebSocket | null = null;\n let unsubscribeBus: (() => void) | null = null;\n let heartbeatInterval: ReturnType<typeof setInterval>;\n let batchFlushTimeout: ReturnType<typeof setTimeout> | null = null;\n const pendingStoreIds = new Set<string>();\n let isIntentionalDisconnect = false;\n\n const sendWhenOpen = (message: Record<string, unknown>) => {\n if (socket?.readyState !== WebSocket.OPEN) {\n return;\n }\n\n socket.send(JSON.stringify(message));\n };\n\n const flushPendingStoreUpdates = () => {\n if (pendingStoreIds.size === 0) {\n return;\n }\n\n const payload = createDevToolsSnapshotMap(\n Array.from(pendingStoreIds).reduce<\n Record<string, BitBusStorePort<object>>\n >((acc, storeId) => {\n const storeInstance = bus.stores[storeId];\n if (storeInstance) {\n acc[storeId] = storeInstance;\n }\n return acc;\n }, {}),\n );\n\n pendingStoreIds.clear();\n batchFlushTimeout = null;\n\n if (Object.keys(payload).length > 0) {\n sendWhenOpen({\n type: \"STATE_UPDATE\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload,\n });\n }\n };\n\n const scheduleStoreFlush = () => {\n if (batchFlushTimeout) {\n return;\n }\n\n batchFlushTimeout = setTimeout(() => {\n flushPendingStoreUpdates();\n }, STATE_BATCH_INTERVAL_MS);\n };\n\n const connect = () => {\n isIntentionalDisconnect = false;\n socket = new WebSocket(url);\n\n socket.onopen = () => {\n console.log(\"[bit-form] 🔌 Conectado ao CLI DevTools via WebSocket.\");\n\n sendWhenOpen({\n type: \"HELLO\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: { role: \"server\", protocolVersion: DEVTOOLS_PROTOCOL_VERSION },\n });\n\n const initialState = createDevToolsSnapshotMap(bus.stores);\n if (Object.keys(initialState).length > 0) {\n sendWhenOpen({\n type: \"STATE_UPDATE\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: initialState,\n });\n }\n\n unsubscribeBus = bus.subscribe((storeId, _newState) => {\n pendingStoreIds.add(storeId);\n scheduleStoreFlush();\n });\n\n heartbeatInterval = setInterval(() => {\n sendWhenOpen({\n type: \"PING\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n });\n }, 30000);\n };\n\n socket.onmessage = (event) => {\n try {\n const message = JSON.parse(event.data) as unknown;\n\n if (isDevToolsActionMessage(message)) {\n const { storeId, action } = message.payload;\n const store = getDevToolsActionableStore(bus.stores, storeId);\n\n if (!store) {\n return;\n }\n\n switch (action) {\n case \"undo\":\n store.undo();\n break;\n case \"redo\":\n store.redo();\n break;\n case \"reset\":\n store.reset();\n break;\n }\n }\n } catch (e) {\n console.warn(\"[bit-form] Erro ao processar comando do CLI:\", e);\n }\n };\n\n socket.onclose = () => {\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n if (batchFlushTimeout) {\n clearTimeout(batchFlushTimeout);\n batchFlushTimeout = null;\n }\n pendingStoreIds.clear();\n\n if (!isIntentionalDisconnect) {\n console.log(\"[bit-form] Conexão perdida. Reconectando em 3s...\");\n setTimeout(connect, 3000);\n } else {\n console.log(\"[bit-form] Ponte antiga encerrada com sucesso.\");\n }\n };\n };\n\n connect();\n\n const cleanup = () => {\n isIntentionalDisconnect = true;\n\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n if (batchFlushTimeout) {\n clearTimeout(batchFlushTimeout);\n batchFlushTimeout = null;\n }\n pendingStoreIds.clear();\n if (\n socket &&\n (socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING)\n ) {\n socket.close();\n }\n activeBridgeCleanup = null;\n };\n\n activeBridgeCleanup = cleanup;\n\n return cleanup;\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/chunk-KGI5PU2P.cjs","../src/devtools/store-snapshot.ts","../src/devtools/store-port.ts","../src/devtools/bridge.ts"],"names":["normalizeStoreState","state","createDevToolsStoreSnapshot","store","historyMeta","createDevToolsSnapshotMap","stores","snapshots","storeId","instance","isDevToolsReadableStore","value","candidate","isDevToolsActionableStore","getDevToolsActionableStore","activeBridgeCleanup","STATE_BATCH_INTERVAL_MS","setupRemoteBridge","url","bus","bitBus","socket","unsubscribeBus","heartbeatInterval","batchFlushTimeout","pendingStoreIds","isIntentionalDisconnect","sendWhenOpen","message","flushPendingStoreUpdates","payload","acc","storeInstance","scheduleStoreFlush","connect","initialState","_newState","event","isDevToolsActionMessage","action","e","cleanup"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-KGI5PU2P.cjs","sourcesContent":[null,"import type { BitBusStorePort, BitState } from \"../core\";\nimport type { DevToolsStoreSnapshot, DevToolsStoreSnapshots } from \"./protocol\";\n\nfunction normalizeStoreState<T extends object>(\n state: Readonly<BitState<T>>,\n): Omit<DevToolsStoreSnapshot, \"_meta\"> {\n return {\n values: state.values,\n errors: state.errors as Record<string, unknown>,\n touched: state.touched as Record<string, unknown>,\n isValid: state.isValid,\n isDirty: state.isDirty,\n isSubmitting: state.isSubmitting,\n isValidating: state.isValidating as Record<string, unknown>,\n persist: state.persist,\n };\n}\n\nexport function createDevToolsStoreSnapshot<T extends object>(store: {\n getState: () => Readonly<BitState<T>>;\n getHistoryMetadata: () => {\n canUndo: boolean;\n canRedo: boolean;\n historySize: number;\n historyIndex: number;\n };\n}): DevToolsStoreSnapshot {\n const historyMeta = store.getHistoryMetadata();\n\n return {\n ...normalizeStoreState(store.getState()),\n _meta: {\n canUndo: historyMeta.canUndo,\n canRedo: historyMeta.canRedo,\n totalSteps: historyMeta.historySize,\n currentIndex: historyMeta.historyIndex,\n },\n };\n}\n\nexport function createDevToolsSnapshotMap(\n stores: Record<string, BitBusStorePort<object>>,\n): DevToolsStoreSnapshots {\n const snapshots: DevToolsStoreSnapshots = {};\n\n for (const [storeId, instance] of Object.entries(stores)) {\n snapshots[storeId] = createDevToolsStoreSnapshot(instance);\n }\n\n return snapshots;\n}\n","import type { BitBusStorePort } from \"../core\";\n\nexport type BitDevToolsReadableStore<T extends object = object> =\n BitBusStorePort<T>;\n\nexport type BitDevToolsActionableStore<T extends object = object> =\n BitBusStorePort<T>;\n\nexport function isDevToolsReadableStore(\n value: unknown,\n): value is BitDevToolsReadableStore<object> {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as unknown as Record<string, unknown>;\n\n return (\n typeof candidate.getState === \"function\" &&\n typeof candidate.getHistoryMetadata === \"function\"\n );\n}\n\nexport function isDevToolsActionableStore(\n value: unknown,\n): value is BitDevToolsActionableStore<object> {\n if (!isDevToolsReadableStore(value)) {\n return false;\n }\n\n const candidate = value as unknown as Record<string, unknown>;\n\n return (\n typeof candidate.undo === \"function\" &&\n typeof candidate.redo === \"function\" &&\n typeof candidate.reset === \"function\"\n );\n}\n\nexport function getDevToolsActionableStore(\n stores: Record<string, unknown>,\n storeId: string,\n): BitDevToolsActionableStore<object> | null {\n const candidate = stores[storeId];\n return isDevToolsActionableStore(candidate) ? candidate : null;\n}\n","import { bitBus } from \"../core\";\nimport type { BitBus } from \"../core\";\nimport type { BitBusStorePort } from \"../core\";\nimport { DEVTOOLS_PROTOCOL_VERSION, isDevToolsActionMessage } from \"./protocol\";\nimport { createDevToolsSnapshotMap } from \"./store-snapshot\";\nimport { getDevToolsActionableStore } from \"./store-port\";\n\nlet activeBridgeCleanup: (() => void) | null = null;\nconst STATE_BATCH_INTERVAL_MS = 50;\n\nexport function setupRemoteBridge(url: string, bus: BitBus = bitBus) {\n if (activeBridgeCleanup) {\n console.warn(\n \"[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado).\",\n );\n activeBridgeCleanup();\n }\n\n let socket: WebSocket | null = null;\n let unsubscribeBus: (() => void) | null = null;\n let heartbeatInterval: ReturnType<typeof setInterval>;\n let batchFlushTimeout: ReturnType<typeof setTimeout> | null = null;\n const pendingStoreIds = new Set<string>();\n let isIntentionalDisconnect = false;\n\n const sendWhenOpen = (message: Record<string, unknown>) => {\n if (socket?.readyState !== WebSocket.OPEN) {\n return;\n }\n\n socket.send(JSON.stringify(message));\n };\n\n const flushPendingStoreUpdates = () => {\n if (pendingStoreIds.size === 0) {\n return;\n }\n\n const payload = createDevToolsSnapshotMap(\n Array.from(pendingStoreIds).reduce<\n Record<string, BitBusStorePort<object>>\n >((acc, storeId) => {\n const storeInstance = bus.stores[storeId];\n if (storeInstance) {\n acc[storeId] = storeInstance;\n }\n return acc;\n }, {}),\n );\n\n pendingStoreIds.clear();\n batchFlushTimeout = null;\n\n if (Object.keys(payload).length > 0) {\n sendWhenOpen({\n type: \"STATE_UPDATE\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload,\n });\n }\n };\n\n const scheduleStoreFlush = () => {\n if (batchFlushTimeout) {\n return;\n }\n\n batchFlushTimeout = setTimeout(() => {\n flushPendingStoreUpdates();\n }, STATE_BATCH_INTERVAL_MS);\n };\n\n const connect = () => {\n isIntentionalDisconnect = false;\n socket = new WebSocket(url);\n\n socket.onopen = () => {\n console.log(\"[bit-form] 🔌 Conectado ao CLI DevTools via WebSocket.\");\n\n sendWhenOpen({\n type: \"HELLO\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: { role: \"server\", protocolVersion: DEVTOOLS_PROTOCOL_VERSION },\n });\n\n const initialState = createDevToolsSnapshotMap(bus.stores);\n if (Object.keys(initialState).length > 0) {\n sendWhenOpen({\n type: \"STATE_UPDATE\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n payload: initialState,\n });\n }\n\n unsubscribeBus = bus.subscribe((storeId, _newState) => {\n pendingStoreIds.add(storeId);\n scheduleStoreFlush();\n });\n\n heartbeatInterval = setInterval(() => {\n sendWhenOpen({\n type: \"PING\",\n protocolVersion: DEVTOOLS_PROTOCOL_VERSION,\n });\n }, 30000);\n };\n\n socket.onmessage = (event) => {\n try {\n const message = JSON.parse(event.data) as unknown;\n\n if (isDevToolsActionMessage(message)) {\n const { storeId, action } = message.payload;\n const store = getDevToolsActionableStore(bus.stores, storeId);\n\n if (!store) {\n return;\n }\n\n switch (action) {\n case \"undo\":\n store.undo();\n break;\n case \"redo\":\n store.redo();\n break;\n case \"reset\":\n store.reset();\n break;\n }\n }\n } catch (e) {\n console.warn(\"[bit-form] Erro ao processar comando do CLI:\", e);\n }\n };\n\n socket.onclose = () => {\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n if (batchFlushTimeout) {\n clearTimeout(batchFlushTimeout);\n batchFlushTimeout = null;\n }\n pendingStoreIds.clear();\n\n if (!isIntentionalDisconnect) {\n console.log(\"[bit-form] Conexão perdida. Reconectando em 3s...\");\n setTimeout(connect, 3000);\n } else {\n console.log(\"[bit-form] Ponte antiga encerrada com sucesso.\");\n }\n };\n };\n\n connect();\n\n const cleanup = () => {\n isIntentionalDisconnect = true;\n\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n if (batchFlushTimeout) {\n clearTimeout(batchFlushTimeout);\n batchFlushTimeout = null;\n }\n pendingStoreIds.clear();\n if (\n socket &&\n (socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING)\n ) {\n socket.close();\n }\n activeBridgeCleanup = null;\n };\n\n activeBridgeCleanup = cleanup;\n\n return cleanup;\n}\n"]}