@enbox/dwn-sdk-js 0.3.4 → 0.3.6
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/browser.mjs +8 -8
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/generated/precompiled-validators.js +766 -1224
- package/dist/esm/generated/precompiled-validators.js.map +1 -1
- package/dist/esm/src/core/abstract-message.js +3 -3
- package/dist/esm/src/core/abstract-message.js.map +1 -1
- package/dist/esm/src/core/grant-authorization.js +6 -2
- package/dist/esm/src/core/grant-authorization.js.map +1 -1
- package/dist/esm/src/core/message.js +4 -4
- package/dist/esm/src/core/message.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization-action.js +3 -3
- package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization-validation.js +1 -1
- package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization.js +11 -11
- package/dist/esm/src/core/protocol-authorization.js.map +1 -1
- package/dist/esm/src/core/records-grant-authorization.js +1 -1
- package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
- package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
- package/dist/esm/src/dwn.js +9 -4
- package/dist/esm/src/dwn.js.map +1 -1
- package/dist/esm/src/event-stream/event-emitter-event-log.js +12 -12
- package/dist/esm/src/event-stream/event-emitter-event-log.js.map +1 -1
- package/dist/esm/src/handlers/messages-read.js +7 -7
- package/dist/esm/src/handlers/messages-read.js.map +1 -1
- package/dist/esm/src/handlers/messages-subscribe.js +1 -1
- package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
- package/dist/esm/src/handlers/messages-sync.js +18 -18
- package/dist/esm/src/handlers/messages-sync.js.map +1 -1
- package/dist/esm/src/handlers/protocols-configure.js +1 -1
- package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
- package/dist/esm/src/handlers/protocols-query.js +1 -1
- package/dist/esm/src/handlers/protocols-query.js.map +1 -1
- package/dist/esm/src/handlers/records-count.js.map +1 -1
- package/dist/esm/src/handlers/records-delete.js.map +1 -1
- package/dist/esm/src/handlers/records-query.js.map +1 -1
- package/dist/esm/src/handlers/records-read.js +6 -6
- package/dist/esm/src/handlers/records-read.js.map +1 -1
- package/dist/esm/src/handlers/records-subscribe.js +1 -1
- package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
- package/dist/esm/src/handlers/records-write.js +16 -16
- package/dist/esm/src/handlers/records-write.js.map +1 -1
- package/dist/esm/src/index.js +2 -2
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/interfaces/messages-subscribe.js +1 -1
- package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
- package/dist/esm/src/interfaces/messages-sync.js +1 -1
- package/dist/esm/src/interfaces/messages-sync.js.map +1 -1
- package/dist/esm/src/interfaces/protocols-configure.js +9 -9
- package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
- package/dist/esm/src/interfaces/protocols-query.js +1 -1
- package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
- package/dist/esm/src/interfaces/records-count.js +1 -1
- package/dist/esm/src/interfaces/records-count.js.map +1 -1
- package/dist/esm/src/interfaces/records-delete.js +1 -1
- package/dist/esm/src/interfaces/records-delete.js.map +1 -1
- package/dist/esm/src/interfaces/records-query.js +1 -1
- package/dist/esm/src/interfaces/records-query.js.map +1 -1
- package/dist/esm/src/interfaces/records-read.js +1 -1
- package/dist/esm/src/interfaces/records-read.js.map +1 -1
- package/dist/esm/src/interfaces/records-subscribe.js +1 -1
- package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
- package/dist/esm/src/interfaces/records-write-signing.js +1 -1
- package/dist/esm/src/interfaces/records-write-signing.js.map +1 -1
- package/dist/esm/src/interfaces/records-write.js +9 -9
- package/dist/esm/src/interfaces/records-write.js.map +1 -1
- package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
- package/dist/esm/src/jose/jws/general/verifier.js +30 -2
- package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
- package/dist/esm/src/protocols/permissions.js +1 -1
- package/dist/esm/src/protocols/permissions.js.map +1 -1
- package/dist/esm/src/smt/smt-store-level.js.map +1 -1
- package/dist/esm/src/smt/smt-store-memory.js.map +1 -1
- package/dist/esm/src/smt/sparse-merkle-tree.js +2 -2
- package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -1
- package/dist/esm/src/state-index/state-index-level.js.map +1 -1
- package/dist/esm/src/store/index-level-compound.js +10 -10
- package/dist/esm/src/store/index-level-compound.js.map +1 -1
- package/dist/esm/src/store/index-level.js +3 -3
- package/dist/esm/src/store/index-level.js.map +1 -1
- package/dist/esm/src/store/level-wrapper.js +1 -1
- package/dist/esm/src/store/level-wrapper.js.map +1 -1
- package/dist/esm/src/store/storage-controller.js +23 -10
- package/dist/esm/src/store/storage-controller.js.map +1 -1
- package/dist/esm/src/types/permission-types.js.map +1 -1
- package/dist/esm/src/utils/memory-cache.js.map +1 -1
- package/dist/esm/src/utils/messages.js +2 -2
- package/dist/esm/src/utils/messages.js.map +1 -1
- package/dist/esm/src/utils/private-key-signer.js.map +1 -1
- package/dist/esm/src/utils/records.js +1 -1
- package/dist/esm/src/utils/records.js.map +1 -1
- package/dist/esm/src/utils/time.js +5 -9
- package/dist/esm/src/utils/time.js.map +1 -1
- package/dist/esm/tests/core/grant-authorization.spec.js +38 -0
- package/dist/esm/tests/core/grant-authorization.spec.js.map +1 -0
- package/dist/esm/tests/features/permissions.spec.js +1 -1
- package/dist/esm/tests/features/permissions.spec.js.map +1 -1
- package/dist/esm/tests/features/records-prune-cross-protocol.spec.js +422 -0
- package/dist/esm/tests/features/records-prune-cross-protocol.spec.js.map +1 -0
- package/dist/esm/tests/fuzz/object.fuzz.spec.js +1 -1
- package/dist/esm/tests/fuzz/object.fuzz.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-subscribe.spec.js +3 -26
- package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-sync.spec.js +3 -26
- package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
- package/dist/esm/tests/handlers/protocols-query.spec.js +4 -3
- package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-subscribe.spec.js +2 -1
- package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
- package/dist/esm/tests/jose/jws/general.spec.js +115 -0
- package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
- package/dist/esm/tests/test-suite.js +2 -0
- package/dist/esm/tests/test-suite.js.map +1 -1
- package/dist/esm/tests/utils/poller.js +2 -2
- package/dist/esm/tests/utils/poller.js.map +1 -1
- package/dist/esm/tests/utils/test-data-generator.js +1 -1
- package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
- package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
- package/dist/types/src/core/abstract-message.d.ts +4 -4
- package/dist/types/src/core/abstract-message.d.ts.map +1 -1
- package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/resumable-task-manager.d.ts +2 -2
- package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
- package/dist/types/src/dwn.d.ts +12 -12
- package/dist/types/src/dwn.d.ts.map +1 -1
- package/dist/types/src/event-stream/event-emitter-event-log.d.ts +5 -5
- package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +1 -1
- package/dist/types/src/handlers/messages-read.d.ts +1 -1
- package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
- package/dist/types/src/handlers/messages-subscribe.d.ts +1 -1
- package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
- package/dist/types/src/handlers/messages-sync.d.ts +1 -1
- package/dist/types/src/handlers/messages-sync.d.ts.map +1 -1
- package/dist/types/src/handlers/protocols-configure.d.ts +1 -1
- package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
- package/dist/types/src/handlers/protocols-query.d.ts +1 -1
- package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
- package/dist/types/src/handlers/records-count.d.ts +1 -1
- package/dist/types/src/handlers/records-count.d.ts.map +1 -1
- package/dist/types/src/handlers/records-delete.d.ts +1 -1
- package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
- package/dist/types/src/handlers/records-query.d.ts +1 -1
- package/dist/types/src/handlers/records-query.d.ts.map +1 -1
- package/dist/types/src/handlers/records-read.d.ts +1 -1
- package/dist/types/src/handlers/records-read.d.ts.map +1 -1
- package/dist/types/src/handlers/records-subscribe.d.ts +1 -1
- package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
- package/dist/types/src/handlers/records-write.d.ts +1 -1
- package/dist/types/src/handlers/records-write.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +5 -5
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-write.d.ts +2 -2
- package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
- package/dist/types/src/jose/jws/general/builder.d.ts +1 -1
- package/dist/types/src/jose/jws/general/builder.d.ts.map +1 -1
- package/dist/types/src/jose/jws/general/verifier.d.ts +13 -0
- package/dist/types/src/jose/jws/general/verifier.d.ts.map +1 -1
- package/dist/types/src/smt/smt-store-level.d.ts +1 -1
- package/dist/types/src/smt/smt-store-level.d.ts.map +1 -1
- package/dist/types/src/smt/smt-store-memory.d.ts +1 -1
- package/dist/types/src/smt/smt-store-memory.d.ts.map +1 -1
- package/dist/types/src/smt/sparse-merkle-tree.d.ts +1 -1
- package/dist/types/src/smt/sparse-merkle-tree.d.ts.map +1 -1
- package/dist/types/src/state-index/state-index-level.d.ts +3 -3
- package/dist/types/src/state-index/state-index-level.d.ts.map +1 -1
- package/dist/types/src/store/index-level.d.ts +2 -2
- package/dist/types/src/store/index-level.d.ts.map +1 -1
- package/dist/types/src/store/storage-controller.d.ts +19 -5
- package/dist/types/src/store/storage-controller.d.ts.map +1 -1
- package/dist/types/src/types/permission-types.d.ts +3 -4
- package/dist/types/src/types/permission-types.d.ts.map +1 -1
- package/dist/types/src/utils/memory-cache.d.ts +2 -2
- package/dist/types/src/utils/memory-cache.d.ts.map +1 -1
- package/dist/types/src/utils/private-key-signer.d.ts +2 -2
- package/dist/types/src/utils/private-key-signer.d.ts.map +1 -1
- package/dist/types/src/utils/time.d.ts +3 -6
- package/dist/types/src/utils/time.d.ts.map +1 -1
- package/dist/types/tests/core/grant-authorization.spec.d.ts +2 -0
- package/dist/types/tests/core/grant-authorization.spec.d.ts.map +1 -0
- package/dist/types/tests/features/records-prune-cross-protocol.spec.d.ts +29 -0
- package/dist/types/tests/features/records-prune-cross-protocol.spec.d.ts.map +1 -0
- package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/protocols-query.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
- package/dist/types/tests/test-suite.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/core/abstract-message.ts +8 -8
- package/src/core/grant-authorization.ts +9 -2
- package/src/core/message.ts +4 -4
- package/src/core/protocol-authorization-action.ts +3 -3
- package/src/core/protocol-authorization-validation.ts +9 -9
- package/src/core/protocol-authorization.ts +24 -24
- package/src/core/records-grant-authorization.ts +1 -1
- package/src/core/resumable-task-manager.ts +2 -2
- package/src/dwn.ts +34 -17
- package/src/event-stream/event-emitter-event-log.ts +15 -15
- package/src/handlers/messages-read.ts +7 -7
- package/src/handlers/messages-subscribe.ts +2 -2
- package/src/handlers/messages-sync.ts +19 -19
- package/src/handlers/protocols-configure.ts +2 -2
- package/src/handlers/protocols-query.ts +2 -2
- package/src/handlers/records-count.ts +1 -1
- package/src/handlers/records-delete.ts +1 -1
- package/src/handlers/records-query.ts +1 -1
- package/src/handlers/records-read.ts +6 -6
- package/src/handlers/records-subscribe.ts +2 -2
- package/src/handlers/records-write.ts +18 -18
- package/src/index.ts +5 -5
- package/src/interfaces/messages-subscribe.ts +1 -1
- package/src/interfaces/messages-sync.ts +1 -1
- package/src/interfaces/protocols-configure.ts +12 -12
- package/src/interfaces/protocols-query.ts +1 -1
- package/src/interfaces/records-count.ts +1 -1
- package/src/interfaces/records-delete.ts +2 -2
- package/src/interfaces/records-query.ts +1 -1
- package/src/interfaces/records-read.ts +1 -1
- package/src/interfaces/records-subscribe.ts +1 -1
- package/src/interfaces/records-write-signing.ts +1 -1
- package/src/interfaces/records-write.ts +13 -13
- package/src/jose/jws/general/builder.ts +1 -1
- package/src/jose/jws/general/verifier.ts +44 -3
- package/src/protocols/permissions.ts +1 -1
- package/src/smt/smt-store-level.ts +1 -1
- package/src/smt/smt-store-memory.ts +1 -1
- package/src/smt/sparse-merkle-tree.ts +10 -10
- package/src/state-index/state-index-level.ts +3 -3
- package/src/store/index-level-compound.ts +11 -11
- package/src/store/index-level.ts +5 -5
- package/src/store/level-wrapper.ts +1 -1
- package/src/store/storage-controller.ts +31 -16
- package/src/types/permission-types.ts +3 -4
- package/src/utils/memory-cache.ts +2 -2
- package/src/utils/messages.ts +3 -3
- package/src/utils/private-key-signer.ts +2 -2
- package/src/utils/records.ts +2 -2
- package/src/utils/time.ts +5 -10
- package/dist/esm/src/utils/object.js +0 -40
- package/dist/esm/src/utils/object.js.map +0 -1
- package/dist/esm/tests/utils/object.spec.js +0 -36
- package/dist/esm/tests/utils/object.spec.js.map +0 -1
- package/dist/types/src/utils/object.d.ts +0 -13
- package/dist/types/src/utils/object.d.ts.map +0 -1
- package/dist/types/tests/utils/object.spec.d.ts +0 -2
- package/dist/types/tests/utils/object.spec.d.ts.map +0 -1
- package/src/utils/object.ts +0 -43
package/src/utils/records.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { FilterUtility } from './filter.js';
|
|
|
12
12
|
import { Jws } from './jws.js';
|
|
13
13
|
import { Message } from '../core/message.js';
|
|
14
14
|
import { PermissionGrant } from '../protocols/permission-grant.js';
|
|
15
|
-
import { removeUndefinedProperties } from '
|
|
15
|
+
import { removeUndefinedProperties } from '@enbox/common';
|
|
16
16
|
import { SortDirection } from '../types/query-types.js';
|
|
17
17
|
import { X25519 } from '@enbox/crypto';
|
|
18
18
|
import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
|
|
@@ -375,7 +375,7 @@ export class Records {
|
|
|
375
375
|
delete filterCopy.recipient;
|
|
376
376
|
}
|
|
377
377
|
|
|
378
|
-
return filterCopy
|
|
378
|
+
return filterCopy;
|
|
379
379
|
}
|
|
380
380
|
|
|
381
381
|
/**
|
package/src/utils/time.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sleep } from '@enbox/common';
|
|
1
2
|
import { Temporal } from '@js-temporal/polyfill';
|
|
2
3
|
import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
|
|
3
4
|
|
|
@@ -5,21 +6,15 @@ import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
|
|
|
5
6
|
* Time related utilities.
|
|
6
7
|
*/
|
|
7
8
|
export class Time {
|
|
8
|
-
/**
|
|
9
|
-
* sleeps for the desired duration
|
|
10
|
-
* @param durationInMillisecond the desired amount of sleep time
|
|
11
|
-
* @returns when the provided duration has passed
|
|
12
|
-
*/
|
|
13
|
-
public static async sleep(durationInMillisecond: number): Promise<void> {
|
|
14
|
-
return new Promise(resolve => setTimeout(resolve, durationInMillisecond));
|
|
15
|
-
}
|
|
16
|
-
|
|
17
9
|
/**
|
|
18
10
|
* We must sleep for at least 2ms to avoid timestamp collisions during testing.
|
|
19
11
|
* https://github.com/enboxorg/enbox/issues/481
|
|
12
|
+
*
|
|
13
|
+
* For arbitrary-duration sleeps, use `sleep` from `@enbox/common`
|
|
14
|
+
* directly — this class only retains the DWN-specific minimum.
|
|
20
15
|
*/
|
|
21
16
|
public static async minimalSleep(): Promise<void> {
|
|
22
|
-
await
|
|
17
|
+
await sleep(2);
|
|
23
18
|
}
|
|
24
19
|
|
|
25
20
|
/**
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks whether the given object has any properties.
|
|
3
|
-
*/
|
|
4
|
-
export function isEmptyObject(obj) {
|
|
5
|
-
if (typeof (obj) !== 'object') {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
for (const _ in obj) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Recursively removes all properties with an empty object or array as its value from the given object.
|
|
15
|
-
*/
|
|
16
|
-
export function removeEmptyObjects(obj) {
|
|
17
|
-
Object.keys(obj).forEach(key => {
|
|
18
|
-
if (typeof (obj[key]) === 'object') {
|
|
19
|
-
// recursive remove empty object or array properties in nested objects
|
|
20
|
-
removeEmptyObjects(obj[key]);
|
|
21
|
-
}
|
|
22
|
-
if (isEmptyObject(obj[key])) {
|
|
23
|
-
delete obj[key];
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Recursively removes all properties with `undefined` as its value from the given object.
|
|
29
|
-
*/
|
|
30
|
-
export function removeUndefinedProperties(obj) {
|
|
31
|
-
Object.keys(obj).forEach(key => {
|
|
32
|
-
if (obj[key] === undefined) {
|
|
33
|
-
delete obj[key];
|
|
34
|
-
}
|
|
35
|
-
else if (typeof (obj[key]) === 'object') {
|
|
36
|
-
removeUndefinedProperties(obj[key]); // recursive remove `undefined` properties in nested objects
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=object.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../src/utils/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,OAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAA4B;IAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC7B,IAAI,OAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAClC,sEAAsE;YACtE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAA4B,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAA4B;IACpE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC7B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,OAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACzC,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAA4B,CAAC,CAAC,CAAC,4DAA4D;QAC9H,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'bun:test';
|
|
2
|
-
import { removeEmptyObjects, removeUndefinedProperties } from '../../src/utils/object.js';
|
|
3
|
-
describe('Object', () => {
|
|
4
|
-
describe('removeUndefinedProperties', () => {
|
|
5
|
-
it('should remove all `undefined` properties of a nested object', () => {
|
|
6
|
-
const mockObject = {
|
|
7
|
-
a: true,
|
|
8
|
-
b: undefined,
|
|
9
|
-
c: {
|
|
10
|
-
a: 0,
|
|
11
|
-
b: undefined,
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const expectedResult = {
|
|
15
|
-
a: true,
|
|
16
|
-
c: {
|
|
17
|
-
a: 0
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
removeUndefinedProperties(mockObject);
|
|
21
|
-
expect(mockObject).toEqual(expectedResult);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
describe('removeEmptyObjects', () => {
|
|
25
|
-
it('should remove all empty objects', () => {
|
|
26
|
-
const obj = {
|
|
27
|
-
foo: {},
|
|
28
|
-
bar: { baz: {} },
|
|
29
|
-
buzz: 'hello'
|
|
30
|
-
};
|
|
31
|
-
removeEmptyObjects(obj);
|
|
32
|
-
expect(obj).toEqual({ buzz: 'hello' });
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=object.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.spec.js","sourceRoot":"","sources":["../../../../tests/utils/object.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE1F,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,UAAU,GAAG;gBACjB,CAAC,EAAG,IAAI;gBACR,CAAC,EAAG,SAAS;gBACb,CAAC,EAAG;oBACF,CAAC,EAAG,CAAC;oBACL,CAAC,EAAG,SAAS;iBACd;aACF,CAAC;YACF,MAAM,cAAc,GAAG;gBACrB,CAAC,EAAG,IAAI;gBACR,CAAC,EAAG;oBACF,CAAC,EAAE,CAAC;iBACL;aACF,CAAC;YAEF,yBAAyB,CAAC,UAAU,CAAC,CAAC;YAEtC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,GAAG,GAAG;gBACV,GAAG,EAAI,EAAE;gBACT,GAAG,EAAI,EAAE,GAAG,EAAE,EAAE,EAAE;gBAClB,IAAI,EAAG,OAAO;aACf,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAExB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks whether the given object has any properties.
|
|
3
|
-
*/
|
|
4
|
-
export declare function isEmptyObject(obj: unknown): boolean;
|
|
5
|
-
/**
|
|
6
|
-
* Recursively removes all properties with an empty object or array as its value from the given object.
|
|
7
|
-
*/
|
|
8
|
-
export declare function removeEmptyObjects(obj: Record<string, unknown>): void;
|
|
9
|
-
/**
|
|
10
|
-
* Recursively removes all properties with `undefined` as its value from the given object.
|
|
11
|
-
*/
|
|
12
|
-
export declare function removeUndefinedProperties(obj: Record<string, unknown>): void;
|
|
13
|
-
//# sourceMappingURL=object.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../src/utils/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAUnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWrE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAQ5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.spec.d.ts","sourceRoot":"","sources":["../../../../tests/utils/object.spec.ts"],"names":[],"mappings":""}
|
package/src/utils/object.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks whether the given object has any properties.
|
|
3
|
-
*/
|
|
4
|
-
export function isEmptyObject(obj: unknown): boolean {
|
|
5
|
-
if (typeof(obj) !== 'object') {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
for (const _ in obj) {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Recursively removes all properties with an empty object or array as its value from the given object.
|
|
18
|
-
*/
|
|
19
|
-
export function removeEmptyObjects(obj: Record<string, unknown>): void {
|
|
20
|
-
Object.keys(obj).forEach(key => {
|
|
21
|
-
if (typeof(obj[key]) === 'object') {
|
|
22
|
-
// recursive remove empty object or array properties in nested objects
|
|
23
|
-
removeEmptyObjects(obj[key] as Record<string, unknown>);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (isEmptyObject(obj[key])) {
|
|
27
|
-
delete obj[key];
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Recursively removes all properties with `undefined` as its value from the given object.
|
|
34
|
-
*/
|
|
35
|
-
export function removeUndefinedProperties(obj: Record<string, unknown>): void {
|
|
36
|
-
Object.keys(obj).forEach(key => {
|
|
37
|
-
if (obj[key] === undefined) {
|
|
38
|
-
delete obj[key];
|
|
39
|
-
} else if (typeof(obj[key]) === 'object') {
|
|
40
|
-
removeUndefinedProperties(obj[key] as Record<string, unknown>); // recursive remove `undefined` properties in nested objects
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|