@esri/hub-common 14.84.0 → 14.85.0

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.
@@ -0,0 +1,67 @@
1
+ import { deepEqual } from "./deepEqual";
2
+ import { _isObject } from "./_deep-map-values";
3
+ import { isFindable } from "./internal/isFindable";
4
+ /**
5
+ * Recursively deletes properties from an object or array that have a
6
+ * specific value.
7
+ *
8
+ * Hub commonly applies migrations to entities on load. During those
9
+ * migrations, often we want to delete properties to clean things up.
10
+ * However, during the save process, we typically fetch the entity
11
+ * from it's backing store and spread the migrated entity over the top of
12
+ * the fetched entity. This results in the deleted props being re-added.
13
+ *
14
+ * To avoid this, instead of deleting the props in the migration,
15
+ * we can set them to a specific value (e.g. `remove-this-prop`) and then
16
+ * use this function to remove them, after the merge.
17
+ *
18
+ * @param object - The object or array to delete properties from.
19
+ * @param value - The value to match and delete.
20
+ * @returns The modified object or array with properties deleted.
21
+ */
22
+ export function deepDeletePropByValue(object, value) {
23
+ // If the object is the value we want to delete, return undefined
24
+ if (deepEqual(object, value)) {
25
+ return undefined;
26
+ }
27
+ // If the object is an array, iterate over the array and recurse
28
+ // on the entries
29
+ if (Array.isArray(object)) {
30
+ return object.reduce((acc, entry) => {
31
+ if (isFindable(entry)) {
32
+ const recursedObject = deepDeletePropByValue(entry, value);
33
+ if (recursedObject !== undefined) {
34
+ acc = [...acc, recursedObject];
35
+ }
36
+ }
37
+ else {
38
+ if (entry !== value) {
39
+ acc = [...acc, entry];
40
+ } // else we are excluding this entry
41
+ }
42
+ return acc;
43
+ }, []);
44
+ }
45
+ if (_isObject(object)) {
46
+ return Object.keys(object).reduce((acc, key) => {
47
+ // if this is an object but not a date, regexp, or function, recurse
48
+ if (isFindable(object[key]) && !deepEqual(object[key], value)) {
49
+ const filteredEntry = deepDeletePropByValue(object[key], value);
50
+ acc[key] = filteredEntry;
51
+ }
52
+ else {
53
+ // ensure the value is not the value we want to delete
54
+ if (!deepEqual(object[key], value)) {
55
+ acc = Object.assign(Object.assign({}, acc), { [key]: object[key] });
56
+ } // else this key matches the value and we are excluding it
57
+ }
58
+ return acc;
59
+ }, {});
60
+ }
61
+ else {
62
+ // just return the object b/c it's not something we can compare
63
+ // e.g. a function
64
+ return object;
65
+ }
66
+ }
67
+ //# sourceMappingURL=deepDeletePropByValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepDeletePropByValue.js","sourceRoot":"","sources":["../../../src/objects/deepDeletePropByValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAW,EAAE,KAAU;IAC3D,iEAAiE;IACjE,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC;KAClB;IAED,gEAAgE;IAChE,iBAAiB;IACjB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;gBACrB,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3D,IAAI,cAAc,KAAK,SAAS,EAAE;oBAChC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC;iBAChC;aACF;iBAAM;gBACL,IAAI,KAAK,KAAK,KAAK,EAAE;oBACnB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;iBACvB,CAAC,mCAAmC;aACtC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,oEAAoE;YACpE,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE;gBAC7D,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC/D,GAAW,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;aACnC;iBAAM;gBACL,sDAAsD;gBACtD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE;oBAClC,GAAG,mCAAQ,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAE,CAAC;iBACtC,CAAC,0DAA0D;aAC7D;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;SAAM;QACL,+DAA+D;QAC/D,kBAAkB;QAClB,OAAO,MAAM,CAAC;KACf;AACH,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { _isObject } from "./_deep-map-values";
2
+ /**
3
+ * Compares two values deeply for equality.
4
+ * Works for primatives, arrays and objects.
5
+ * Not verified for other types.
6
+ * @param a - The first value to compare.
7
+ * @param b - The second value to compare.
8
+ * @returns True if the values are deeply equal, false otherwise.
9
+ */
10
+ export function deepEqual(a, b) {
11
+ // Simple comparison for primitives
12
+ if (a === b) {
13
+ return true;
14
+ }
15
+ // object checks
16
+ if (a && b && _isObject(a) && _isObject(b)) {
17
+ // if either are not arrays, return false
18
+ if (Array.isArray(a) !== Array.isArray(b)) {
19
+ return false;
20
+ }
21
+ const keys = Object.keys(a);
22
+ // if key lengths are different, return false
23
+ if (keys.length !== Object.keys(b).length) {
24
+ return false;
25
+ }
26
+ // recurse on each key
27
+ return keys.every((key) => deepEqual(a[key], b[key]));
28
+ }
29
+ return false;
30
+ }
31
+ //# sourceMappingURL=deepEqual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepEqual.js","sourceRoot":"","sources":["../../../src/objects/deepEqual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,CAAM,EAAE,CAAM;IACtC,mCAAmC;IACnC,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,gBAAgB;IAChB,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;QAC1C,yCAAyC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzC,OAAO,KAAK,CAAC;SACd;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,6CAA6C;QAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YACzC,OAAO,KAAK,CAAC;SACd;QACD,sBAAsB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -13,4 +13,6 @@ export * from "./deepFilter";
13
13
  export * from "./deepFind";
14
14
  export * from "./resolveReferences";
15
15
  export * from "./pickProps";
16
+ export * from "./deepEqual";
17
+ export * from "./deepDeletePropByValue";
16
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/objects/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/objects/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepDeletePropByValue = void 0;
4
+ const deepEqual_1 = require("./deepEqual");
5
+ const _deep_map_values_1 = require("./_deep-map-values");
6
+ const isFindable_1 = require("./internal/isFindable");
7
+ /**
8
+ * Recursively deletes properties from an object or array that have a
9
+ * specific value.
10
+ *
11
+ * Hub commonly applies migrations to entities on load. During those
12
+ * migrations, often we want to delete properties to clean things up.
13
+ * However, during the save process, we typically fetch the entity
14
+ * from it's backing store and spread the migrated entity over the top of
15
+ * the fetched entity. This results in the deleted props being re-added.
16
+ *
17
+ * To avoid this, instead of deleting the props in the migration,
18
+ * we can set them to a specific value (e.g. `remove-this-prop`) and then
19
+ * use this function to remove them, after the merge.
20
+ *
21
+ * @param object - The object or array to delete properties from.
22
+ * @param value - The value to match and delete.
23
+ * @returns The modified object or array with properties deleted.
24
+ */
25
+ function deepDeletePropByValue(object, value) {
26
+ // If the object is the value we want to delete, return undefined
27
+ if (deepEqual_1.deepEqual(object, value)) {
28
+ return undefined;
29
+ }
30
+ // If the object is an array, iterate over the array and recurse
31
+ // on the entries
32
+ if (Array.isArray(object)) {
33
+ return object.reduce((acc, entry) => {
34
+ if (isFindable_1.isFindable(entry)) {
35
+ const recursedObject = deepDeletePropByValue(entry, value);
36
+ if (recursedObject !== undefined) {
37
+ acc = [...acc, recursedObject];
38
+ }
39
+ }
40
+ else {
41
+ if (entry !== value) {
42
+ acc = [...acc, entry];
43
+ } // else we are excluding this entry
44
+ }
45
+ return acc;
46
+ }, []);
47
+ }
48
+ if (_deep_map_values_1._isObject(object)) {
49
+ return Object.keys(object).reduce((acc, key) => {
50
+ // if this is an object but not a date, regexp, or function, recurse
51
+ if (isFindable_1.isFindable(object[key]) && !deepEqual_1.deepEqual(object[key], value)) {
52
+ const filteredEntry = deepDeletePropByValue(object[key], value);
53
+ acc[key] = filteredEntry;
54
+ }
55
+ else {
56
+ // ensure the value is not the value we want to delete
57
+ if (!deepEqual_1.deepEqual(object[key], value)) {
58
+ acc = Object.assign(Object.assign({}, acc), { [key]: object[key] });
59
+ } // else this key matches the value and we are excluding it
60
+ }
61
+ return acc;
62
+ }, {});
63
+ }
64
+ else {
65
+ // just return the object b/c it's not something we can compare
66
+ // e.g. a function
67
+ return object;
68
+ }
69
+ }
70
+ exports.deepDeletePropByValue = deepDeletePropByValue;
71
+ //# sourceMappingURL=deepDeletePropByValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepDeletePropByValue.js","sourceRoot":"","sources":["../../../src/objects/deepDeletePropByValue.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,yDAA+C;AAC/C,sDAAmD;AAEnD;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,qBAAqB,CAAC,MAAW,EAAE,KAAU;IAC3D,iEAAiE;IACjE,IAAI,qBAAS,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC;KAClB;IAED,gEAAgE;IAChE,iBAAiB;IACjB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,uBAAU,CAAC,KAAK,CAAC,EAAE;gBACrB,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3D,IAAI,cAAc,KAAK,SAAS,EAAE;oBAChC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC;iBAChC;aACF;iBAAM;gBACL,IAAI,KAAK,KAAK,KAAK,EAAE;oBACnB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;iBACvB,CAAC,mCAAmC;aACtC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;IAED,IAAI,4BAAS,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,oEAAoE;YACpE,IAAI,uBAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE;gBAC7D,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC/D,GAAW,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;aACnC;iBAAM;gBACL,sDAAsD;gBACtD,IAAI,CAAC,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE;oBAClC,GAAG,mCAAQ,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAE,CAAC;iBACtC,CAAC,0DAA0D;aAC7D;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;SAAM;QACL,+DAA+D;QAC/D,kBAAkB;QAClB,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AA3CD,sDA2CC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepEqual = void 0;
4
+ const _deep_map_values_1 = require("./_deep-map-values");
5
+ /**
6
+ * Compares two values deeply for equality.
7
+ * Works for primatives, arrays and objects.
8
+ * Not verified for other types.
9
+ * @param a - The first value to compare.
10
+ * @param b - The second value to compare.
11
+ * @returns True if the values are deeply equal, false otherwise.
12
+ */
13
+ function deepEqual(a, b) {
14
+ // Simple comparison for primitives
15
+ if (a === b) {
16
+ return true;
17
+ }
18
+ // object checks
19
+ if (a && b && _deep_map_values_1._isObject(a) && _deep_map_values_1._isObject(b)) {
20
+ // if either are not arrays, return false
21
+ if (Array.isArray(a) !== Array.isArray(b)) {
22
+ return false;
23
+ }
24
+ const keys = Object.keys(a);
25
+ // if key lengths are different, return false
26
+ if (keys.length !== Object.keys(b).length) {
27
+ return false;
28
+ }
29
+ // recurse on each key
30
+ return keys.every((key) => deepEqual(a[key], b[key]));
31
+ }
32
+ return false;
33
+ }
34
+ exports.deepEqual = deepEqual;
35
+ //# sourceMappingURL=deepEqual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepEqual.js","sourceRoot":"","sources":["../../../src/objects/deepEqual.ts"],"names":[],"mappings":";;;AAAA,yDAA+C;AAE/C;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,CAAM,EAAE,CAAM;IACtC,mCAAmC;IACnC,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,gBAAgB;IAChB,IAAI,CAAC,IAAI,CAAC,IAAI,4BAAS,CAAC,CAAC,CAAC,IAAI,4BAAS,CAAC,CAAC,CAAC,EAAE;QAC1C,yCAAyC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzC,OAAO,KAAK,CAAC;SACd;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,6CAA6C;QAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YACzC,OAAO,KAAK,CAAC;SACd;QACD,sBAAsB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AApBD,8BAoBC"}
@@ -16,4 +16,6 @@ tslib_1.__exportStar(require("./deepFilter"), exports);
16
16
  tslib_1.__exportStar(require("./deepFind"), exports);
17
17
  tslib_1.__exportStar(require("./resolveReferences"), exports);
18
18
  tslib_1.__exportStar(require("./pickProps"), exports);
19
+ tslib_1.__exportStar(require("./deepEqual"), exports);
20
+ tslib_1.__exportStar(require("./deepDeletePropByValue"), exports);
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/objects/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,wDAA8B;AAC9B,qDAA2B;AAC3B,wDAA8B;AAC9B,qDAA2B;AAC3B,sDAA4B;AAC5B,6DAAmC;AACnC,+DAAqC;AACrC,gEAAsC;AACtC,0DAAgC;AAChC,qDAA2B;AAC3B,uDAA6B;AAC7B,qDAA2B;AAC3B,8DAAoC;AACpC,sDAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/objects/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,wDAA8B;AAC9B,qDAA2B;AAC3B,wDAA8B;AAC9B,qDAA2B;AAC3B,sDAA4B;AAC5B,6DAAmC;AACnC,+DAAqC;AACrC,gEAAsC;AACtC,0DAAgC;AAChC,qDAA2B;AAC3B,uDAA6B;AAC7B,qDAA2B;AAC3B,8DAAoC;AACpC,sDAA4B;AAC5B,sDAA4B;AAC5B,kEAAwC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Recursively deletes properties from an object or array that have a
3
+ * specific value.
4
+ *
5
+ * Hub commonly applies migrations to entities on load. During those
6
+ * migrations, often we want to delete properties to clean things up.
7
+ * However, during the save process, we typically fetch the entity
8
+ * from it's backing store and spread the migrated entity over the top of
9
+ * the fetched entity. This results in the deleted props being re-added.
10
+ *
11
+ * To avoid this, instead of deleting the props in the migration,
12
+ * we can set them to a specific value (e.g. `remove-this-prop`) and then
13
+ * use this function to remove them, after the merge.
14
+ *
15
+ * @param object - The object or array to delete properties from.
16
+ * @param value - The value to match and delete.
17
+ * @returns The modified object or array with properties deleted.
18
+ */
19
+ export declare function deepDeletePropByValue(object: any, value: any): any;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Compares two values deeply for equality.
3
+ * Works for primatives, arrays and objects.
4
+ * Not verified for other types.
5
+ * @param a - The first value to compare.
6
+ * @param b - The second value to compare.
7
+ * @returns True if the values are deeply equal, false otherwise.
8
+ */
9
+ export declare function deepEqual(a: any, b: any): boolean;
@@ -13,3 +13,5 @@ export * from "./deepFilter";
13
13
  export * from "./deepFind";
14
14
  export * from "./resolveReferences";
15
15
  export * from "./pickProps";
16
+ export * from "./deepEqual";
17
+ export * from "./deepDeletePropByValue";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esri/hub-common",
3
- "version": "14.84.0",
3
+ "version": "14.85.0",
4
4
  "description": "Common TypeScript types and utility functions for @esri/hub.js.",
5
5
  "main": "dist/node/index.js",
6
6
  "module": "dist/esm/index.js",