tracked-instance 1.0.21 → 1.0.23

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.
package/dist/index.mjs CHANGED
@@ -1333,13 +1333,14 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
1333
1333
  }
1334
1334
  var baseClone_default = baseClone;
1335
1335
 
1336
- // node_modules/lodash-es/cloneDeep.js
1336
+ // node_modules/lodash-es/cloneDeepWith.js
1337
1337
  var CLONE_DEEP_FLAG2 = 1;
1338
1338
  var CLONE_SYMBOLS_FLAG2 = 4;
1339
- function cloneDeep(value) {
1340
- return baseClone_default(value, CLONE_DEEP_FLAG2 | CLONE_SYMBOLS_FLAG2);
1339
+ function cloneDeepWith(value, customizer) {
1340
+ customizer = typeof customizer == "function" ? customizer : void 0;
1341
+ return baseClone_default(value, CLONE_DEEP_FLAG2 | CLONE_SYMBOLS_FLAG2, customizer);
1341
1342
  }
1342
- var cloneDeep_default = cloneDeep;
1343
+ var cloneDeepWith_default = cloneDeepWith;
1343
1344
 
1344
1345
  // node_modules/lodash-es/_hasPath.js
1345
1346
  function hasPath(object, path, hasFunc) {
@@ -1494,6 +1495,14 @@ var createNestedRef = (source, handler) => customRef((track, trigger) => {
1494
1495
  }
1495
1496
  };
1496
1497
  });
1498
+ var cloneDeep = (inputValue) => cloneDeepWith_default(inputValue, (value) => {
1499
+ if (value instanceof Date) {
1500
+ return new Date(value.getTime());
1501
+ }
1502
+ if (value instanceof File) {
1503
+ return value;
1504
+ }
1505
+ });
1497
1506
 
1498
1507
  // src/tracked-instance.ts
1499
1508
  var ArrayInOriginalData = class {
@@ -1589,22 +1598,22 @@ function useTrackedInstance(initialData) {
1589
1598
  return result;
1590
1599
  }
1591
1600
  }));
1592
- const _data = createNestedRef({ root: cloneDeep_default(initialData) }, (parentThree) => ({
1601
+ const _data = createNestedRef({ root: cloneDeep(initialData) }, (parentThree) => ({
1593
1602
  set(target, property, value, receiver) {
1594
1603
  const path = parentThree.concat({ target, property, receiver });
1595
1604
  const oldValue = target[property];
1596
1605
  const triggerChangingArrayItems = () => {
1597
- const originalDataValue = get_default(
1606
+ const arrayInOriginalData = get_default(
1598
1607
  _originalData.value,
1599
1608
  path.map((i) => i.property)
1600
1609
  );
1601
- const { length: originalDataLength } = originalDataValue || oldValue;
1602
- if (value < originalDataLength) {
1603
- for (let i = value; i < originalDataLength; i++) {
1610
+ const originalDataValue = arrayInOriginalData?.length || oldValue;
1611
+ if (value < originalDataValue) {
1612
+ for (let i = value; i < originalDataValue; i++) {
1604
1613
  delete receiver[i];
1605
1614
  }
1606
- } else if (originalDataLength < value) {
1607
- for (let i = originalDataLength; i < value; i++) {
1615
+ } else if (originalDataValue < value) {
1616
+ for (let i = originalDataValue; i < value; i++) {
1608
1617
  receiver[i] = void 0;
1609
1618
  }
1610
1619
  }
@@ -1616,10 +1625,11 @@ function useTrackedInstance(initialData) {
1616
1625
  } else {
1617
1626
  snapshotValueToOriginalData(_originalData.value, path, value);
1618
1627
  }
1619
- return Reflect.set(target, property, cloneDeep_default(value), receiver);
1628
+ return Reflect.set(target, property, cloneDeep(value), receiver);
1620
1629
  },
1621
1630
  deleteProperty(target, property) {
1622
- setOriginalDataValue(_originalData.value, parentThree.concat({ target, property }));
1631
+ const path = parentThree.concat({ target, property });
1632
+ snapshotValueToOriginalData(_originalData.value, path, void 0);
1623
1633
  return Reflect.deleteProperty(target, property);
1624
1634
  }
1625
1635
  }));
@@ -1646,7 +1656,7 @@ function useTrackedInstance(initialData) {
1646
1656
  });
1647
1657
  const changedData = computed(() => _changedData.value.root);
1648
1658
  const loadData = (newData) => {
1649
- _data.value = { root: cloneDeep_default(newData) };
1659
+ _data.value = { root: cloneDeep(newData) };
1650
1660
  _originalData.value = {};
1651
1661
  };
1652
1662
  const reset = () => {
@@ -9,7 +9,8 @@ export interface NestedProxyPathItem {
9
9
  export declare const isObject: (value: unknown) => boolean;
10
10
  export declare const isEmpty: (value: object) => boolean;
11
11
  export declare const iterateObject: (source: Record<string, any>, params?: {
12
- goDeepCondition?: ((path: string[], value: any) => boolean) | undefined;
13
- includeParent?: boolean | undefined;
14
- }) => Generator<[string[], any], void, unknown>;
15
- export declare const createNestedRef: <Source extends Record<string, any>>(source: Source, handler: <InnerSource extends Record<string, any>>(path: NestedProxyPathItem[]) => ProxyHandler<InnerSource>) => import("vue").Ref<Source>;
12
+ goDeepCondition?: (path: string[], value: any) => boolean;
13
+ includeParent?: boolean;
14
+ }) => Generator<[string[], any], void, any>;
15
+ export declare const createNestedRef: <Source extends Record<string, any>>(source: Source, handler: <InnerSource extends Record<string, any>>(path: NestedProxyPathItem[]) => ProxyHandler<InnerSource>) => import("vue").Ref<Source, Source>;
16
+ export declare const cloneDeep: (inputValue: any) => any;
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "tracked-instance",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "Build large forms and track all changes",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "tsc && esbuild ./src/index.ts --bundle --external:vue --outfile=./dist/index.mjs --format=esm",
8
+ "test-ui": "vitest --ui",
8
9
  "test": "vitest run"
9
10
  },
10
11
  "main": "./dist/index.mjs",
@@ -14,9 +15,10 @@
14
15
  ],
15
16
  "devDependencies": {
16
17
  "@types/lodash-es": "^4.17.12",
17
- "typescript": "^5.2.2",
18
- "vitest": "^1.3.0",
19
- "vue": "^3.4.19"
18
+ "@vitest/ui": "^3.0.5",
19
+ "typescript": "^5.7.3",
20
+ "vitest": "^3.0.5",
21
+ "vue": "^3.5.13"
20
22
  },
21
23
  "peerDependencies": {
22
24
  "vue": "^3.0.0"