@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.
Files changed (246) hide show
  1. package/dist/browser.mjs +8 -8
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/generated/precompiled-validators.js +766 -1224
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/src/core/abstract-message.js +3 -3
  6. package/dist/esm/src/core/abstract-message.js.map +1 -1
  7. package/dist/esm/src/core/grant-authorization.js +6 -2
  8. package/dist/esm/src/core/grant-authorization.js.map +1 -1
  9. package/dist/esm/src/core/message.js +4 -4
  10. package/dist/esm/src/core/message.js.map +1 -1
  11. package/dist/esm/src/core/protocol-authorization-action.js +3 -3
  12. package/dist/esm/src/core/protocol-authorization-action.js.map +1 -1
  13. package/dist/esm/src/core/protocol-authorization-validation.js +1 -1
  14. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  15. package/dist/esm/src/core/protocol-authorization.js +11 -11
  16. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  17. package/dist/esm/src/core/records-grant-authorization.js +1 -1
  18. package/dist/esm/src/core/records-grant-authorization.js.map +1 -1
  19. package/dist/esm/src/core/resumable-task-manager.js.map +1 -1
  20. package/dist/esm/src/dwn.js +9 -4
  21. package/dist/esm/src/dwn.js.map +1 -1
  22. package/dist/esm/src/event-stream/event-emitter-event-log.js +12 -12
  23. package/dist/esm/src/event-stream/event-emitter-event-log.js.map +1 -1
  24. package/dist/esm/src/handlers/messages-read.js +7 -7
  25. package/dist/esm/src/handlers/messages-read.js.map +1 -1
  26. package/dist/esm/src/handlers/messages-subscribe.js +1 -1
  27. package/dist/esm/src/handlers/messages-subscribe.js.map +1 -1
  28. package/dist/esm/src/handlers/messages-sync.js +18 -18
  29. package/dist/esm/src/handlers/messages-sync.js.map +1 -1
  30. package/dist/esm/src/handlers/protocols-configure.js +1 -1
  31. package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
  32. package/dist/esm/src/handlers/protocols-query.js +1 -1
  33. package/dist/esm/src/handlers/protocols-query.js.map +1 -1
  34. package/dist/esm/src/handlers/records-count.js.map +1 -1
  35. package/dist/esm/src/handlers/records-delete.js.map +1 -1
  36. package/dist/esm/src/handlers/records-query.js.map +1 -1
  37. package/dist/esm/src/handlers/records-read.js +6 -6
  38. package/dist/esm/src/handlers/records-read.js.map +1 -1
  39. package/dist/esm/src/handlers/records-subscribe.js +1 -1
  40. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  41. package/dist/esm/src/handlers/records-write.js +16 -16
  42. package/dist/esm/src/handlers/records-write.js.map +1 -1
  43. package/dist/esm/src/index.js +2 -2
  44. package/dist/esm/src/index.js.map +1 -1
  45. package/dist/esm/src/interfaces/messages-subscribe.js +1 -1
  46. package/dist/esm/src/interfaces/messages-subscribe.js.map +1 -1
  47. package/dist/esm/src/interfaces/messages-sync.js +1 -1
  48. package/dist/esm/src/interfaces/messages-sync.js.map +1 -1
  49. package/dist/esm/src/interfaces/protocols-configure.js +9 -9
  50. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  51. package/dist/esm/src/interfaces/protocols-query.js +1 -1
  52. package/dist/esm/src/interfaces/protocols-query.js.map +1 -1
  53. package/dist/esm/src/interfaces/records-count.js +1 -1
  54. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  55. package/dist/esm/src/interfaces/records-delete.js +1 -1
  56. package/dist/esm/src/interfaces/records-delete.js.map +1 -1
  57. package/dist/esm/src/interfaces/records-query.js +1 -1
  58. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  59. package/dist/esm/src/interfaces/records-read.js +1 -1
  60. package/dist/esm/src/interfaces/records-read.js.map +1 -1
  61. package/dist/esm/src/interfaces/records-subscribe.js +1 -1
  62. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  63. package/dist/esm/src/interfaces/records-write-signing.js +1 -1
  64. package/dist/esm/src/interfaces/records-write-signing.js.map +1 -1
  65. package/dist/esm/src/interfaces/records-write.js +9 -9
  66. package/dist/esm/src/interfaces/records-write.js.map +1 -1
  67. package/dist/esm/src/jose/jws/general/builder.js.map +1 -1
  68. package/dist/esm/src/jose/jws/general/verifier.js +30 -2
  69. package/dist/esm/src/jose/jws/general/verifier.js.map +1 -1
  70. package/dist/esm/src/protocols/permissions.js +1 -1
  71. package/dist/esm/src/protocols/permissions.js.map +1 -1
  72. package/dist/esm/src/smt/smt-store-level.js.map +1 -1
  73. package/dist/esm/src/smt/smt-store-memory.js.map +1 -1
  74. package/dist/esm/src/smt/sparse-merkle-tree.js +2 -2
  75. package/dist/esm/src/smt/sparse-merkle-tree.js.map +1 -1
  76. package/dist/esm/src/state-index/state-index-level.js.map +1 -1
  77. package/dist/esm/src/store/index-level-compound.js +10 -10
  78. package/dist/esm/src/store/index-level-compound.js.map +1 -1
  79. package/dist/esm/src/store/index-level.js +3 -3
  80. package/dist/esm/src/store/index-level.js.map +1 -1
  81. package/dist/esm/src/store/level-wrapper.js +1 -1
  82. package/dist/esm/src/store/level-wrapper.js.map +1 -1
  83. package/dist/esm/src/store/storage-controller.js +23 -10
  84. package/dist/esm/src/store/storage-controller.js.map +1 -1
  85. package/dist/esm/src/types/permission-types.js.map +1 -1
  86. package/dist/esm/src/utils/memory-cache.js.map +1 -1
  87. package/dist/esm/src/utils/messages.js +2 -2
  88. package/dist/esm/src/utils/messages.js.map +1 -1
  89. package/dist/esm/src/utils/private-key-signer.js.map +1 -1
  90. package/dist/esm/src/utils/records.js +1 -1
  91. package/dist/esm/src/utils/records.js.map +1 -1
  92. package/dist/esm/src/utils/time.js +5 -9
  93. package/dist/esm/src/utils/time.js.map +1 -1
  94. package/dist/esm/tests/core/grant-authorization.spec.js +38 -0
  95. package/dist/esm/tests/core/grant-authorization.spec.js.map +1 -0
  96. package/dist/esm/tests/features/permissions.spec.js +1 -1
  97. package/dist/esm/tests/features/permissions.spec.js.map +1 -1
  98. package/dist/esm/tests/features/records-prune-cross-protocol.spec.js +422 -0
  99. package/dist/esm/tests/features/records-prune-cross-protocol.spec.js.map +1 -0
  100. package/dist/esm/tests/fuzz/object.fuzz.spec.js +1 -1
  101. package/dist/esm/tests/fuzz/object.fuzz.spec.js.map +1 -1
  102. package/dist/esm/tests/handlers/messages-subscribe.spec.js +3 -26
  103. package/dist/esm/tests/handlers/messages-subscribe.spec.js.map +1 -1
  104. package/dist/esm/tests/handlers/messages-sync.spec.js +3 -26
  105. package/dist/esm/tests/handlers/messages-sync.spec.js.map +1 -1
  106. package/dist/esm/tests/handlers/protocols-query.spec.js +4 -3
  107. package/dist/esm/tests/handlers/protocols-query.spec.js.map +1 -1
  108. package/dist/esm/tests/handlers/records-subscribe.spec.js +2 -1
  109. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  110. package/dist/esm/tests/jose/jws/general.spec.js +115 -0
  111. package/dist/esm/tests/jose/jws/general.spec.js.map +1 -1
  112. package/dist/esm/tests/test-suite.js +2 -0
  113. package/dist/esm/tests/test-suite.js.map +1 -1
  114. package/dist/esm/tests/utils/poller.js +2 -2
  115. package/dist/esm/tests/utils/poller.js.map +1 -1
  116. package/dist/esm/tests/utils/test-data-generator.js +1 -1
  117. package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
  118. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  119. package/dist/types/src/core/abstract-message.d.ts +4 -4
  120. package/dist/types/src/core/abstract-message.d.ts.map +1 -1
  121. package/dist/types/src/core/grant-authorization.d.ts.map +1 -1
  122. package/dist/types/src/core/resumable-task-manager.d.ts +2 -2
  123. package/dist/types/src/core/resumable-task-manager.d.ts.map +1 -1
  124. package/dist/types/src/dwn.d.ts +12 -12
  125. package/dist/types/src/dwn.d.ts.map +1 -1
  126. package/dist/types/src/event-stream/event-emitter-event-log.d.ts +5 -5
  127. package/dist/types/src/event-stream/event-emitter-event-log.d.ts.map +1 -1
  128. package/dist/types/src/handlers/messages-read.d.ts +1 -1
  129. package/dist/types/src/handlers/messages-read.d.ts.map +1 -1
  130. package/dist/types/src/handlers/messages-subscribe.d.ts +1 -1
  131. package/dist/types/src/handlers/messages-subscribe.d.ts.map +1 -1
  132. package/dist/types/src/handlers/messages-sync.d.ts +1 -1
  133. package/dist/types/src/handlers/messages-sync.d.ts.map +1 -1
  134. package/dist/types/src/handlers/protocols-configure.d.ts +1 -1
  135. package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
  136. package/dist/types/src/handlers/protocols-query.d.ts +1 -1
  137. package/dist/types/src/handlers/protocols-query.d.ts.map +1 -1
  138. package/dist/types/src/handlers/records-count.d.ts +1 -1
  139. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  140. package/dist/types/src/handlers/records-delete.d.ts +1 -1
  141. package/dist/types/src/handlers/records-delete.d.ts.map +1 -1
  142. package/dist/types/src/handlers/records-query.d.ts +1 -1
  143. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  144. package/dist/types/src/handlers/records-read.d.ts +1 -1
  145. package/dist/types/src/handlers/records-read.d.ts.map +1 -1
  146. package/dist/types/src/handlers/records-subscribe.d.ts +1 -1
  147. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  148. package/dist/types/src/handlers/records-write.d.ts +1 -1
  149. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  150. package/dist/types/src/index.d.ts +5 -5
  151. package/dist/types/src/index.d.ts.map +1 -1
  152. package/dist/types/src/interfaces/records-write.d.ts +2 -2
  153. package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
  154. package/dist/types/src/jose/jws/general/builder.d.ts +1 -1
  155. package/dist/types/src/jose/jws/general/builder.d.ts.map +1 -1
  156. package/dist/types/src/jose/jws/general/verifier.d.ts +13 -0
  157. package/dist/types/src/jose/jws/general/verifier.d.ts.map +1 -1
  158. package/dist/types/src/smt/smt-store-level.d.ts +1 -1
  159. package/dist/types/src/smt/smt-store-level.d.ts.map +1 -1
  160. package/dist/types/src/smt/smt-store-memory.d.ts +1 -1
  161. package/dist/types/src/smt/smt-store-memory.d.ts.map +1 -1
  162. package/dist/types/src/smt/sparse-merkle-tree.d.ts +1 -1
  163. package/dist/types/src/smt/sparse-merkle-tree.d.ts.map +1 -1
  164. package/dist/types/src/state-index/state-index-level.d.ts +3 -3
  165. package/dist/types/src/state-index/state-index-level.d.ts.map +1 -1
  166. package/dist/types/src/store/index-level.d.ts +2 -2
  167. package/dist/types/src/store/index-level.d.ts.map +1 -1
  168. package/dist/types/src/store/storage-controller.d.ts +19 -5
  169. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  170. package/dist/types/src/types/permission-types.d.ts +3 -4
  171. package/dist/types/src/types/permission-types.d.ts.map +1 -1
  172. package/dist/types/src/utils/memory-cache.d.ts +2 -2
  173. package/dist/types/src/utils/memory-cache.d.ts.map +1 -1
  174. package/dist/types/src/utils/private-key-signer.d.ts +2 -2
  175. package/dist/types/src/utils/private-key-signer.d.ts.map +1 -1
  176. package/dist/types/src/utils/time.d.ts +3 -6
  177. package/dist/types/src/utils/time.d.ts.map +1 -1
  178. package/dist/types/tests/core/grant-authorization.spec.d.ts +2 -0
  179. package/dist/types/tests/core/grant-authorization.spec.d.ts.map +1 -0
  180. package/dist/types/tests/features/records-prune-cross-protocol.spec.d.ts +29 -0
  181. package/dist/types/tests/features/records-prune-cross-protocol.spec.d.ts.map +1 -0
  182. package/dist/types/tests/handlers/messages-subscribe.spec.d.ts.map +1 -1
  183. package/dist/types/tests/handlers/messages-sync.spec.d.ts.map +1 -1
  184. package/dist/types/tests/handlers/protocols-query.spec.d.ts.map +1 -1
  185. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  186. package/dist/types/tests/test-suite.d.ts.map +1 -1
  187. package/package.json +4 -3
  188. package/src/core/abstract-message.ts +8 -8
  189. package/src/core/grant-authorization.ts +9 -2
  190. package/src/core/message.ts +4 -4
  191. package/src/core/protocol-authorization-action.ts +3 -3
  192. package/src/core/protocol-authorization-validation.ts +9 -9
  193. package/src/core/protocol-authorization.ts +24 -24
  194. package/src/core/records-grant-authorization.ts +1 -1
  195. package/src/core/resumable-task-manager.ts +2 -2
  196. package/src/dwn.ts +34 -17
  197. package/src/event-stream/event-emitter-event-log.ts +15 -15
  198. package/src/handlers/messages-read.ts +7 -7
  199. package/src/handlers/messages-subscribe.ts +2 -2
  200. package/src/handlers/messages-sync.ts +19 -19
  201. package/src/handlers/protocols-configure.ts +2 -2
  202. package/src/handlers/protocols-query.ts +2 -2
  203. package/src/handlers/records-count.ts +1 -1
  204. package/src/handlers/records-delete.ts +1 -1
  205. package/src/handlers/records-query.ts +1 -1
  206. package/src/handlers/records-read.ts +6 -6
  207. package/src/handlers/records-subscribe.ts +2 -2
  208. package/src/handlers/records-write.ts +18 -18
  209. package/src/index.ts +5 -5
  210. package/src/interfaces/messages-subscribe.ts +1 -1
  211. package/src/interfaces/messages-sync.ts +1 -1
  212. package/src/interfaces/protocols-configure.ts +12 -12
  213. package/src/interfaces/protocols-query.ts +1 -1
  214. package/src/interfaces/records-count.ts +1 -1
  215. package/src/interfaces/records-delete.ts +2 -2
  216. package/src/interfaces/records-query.ts +1 -1
  217. package/src/interfaces/records-read.ts +1 -1
  218. package/src/interfaces/records-subscribe.ts +1 -1
  219. package/src/interfaces/records-write-signing.ts +1 -1
  220. package/src/interfaces/records-write.ts +13 -13
  221. package/src/jose/jws/general/builder.ts +1 -1
  222. package/src/jose/jws/general/verifier.ts +44 -3
  223. package/src/protocols/permissions.ts +1 -1
  224. package/src/smt/smt-store-level.ts +1 -1
  225. package/src/smt/smt-store-memory.ts +1 -1
  226. package/src/smt/sparse-merkle-tree.ts +10 -10
  227. package/src/state-index/state-index-level.ts +3 -3
  228. package/src/store/index-level-compound.ts +11 -11
  229. package/src/store/index-level.ts +5 -5
  230. package/src/store/level-wrapper.ts +1 -1
  231. package/src/store/storage-controller.ts +31 -16
  232. package/src/types/permission-types.ts +3 -4
  233. package/src/utils/memory-cache.ts +2 -2
  234. package/src/utils/messages.ts +3 -3
  235. package/src/utils/private-key-signer.ts +2 -2
  236. package/src/utils/records.ts +2 -2
  237. package/src/utils/time.ts +5 -10
  238. package/dist/esm/src/utils/object.js +0 -40
  239. package/dist/esm/src/utils/object.js.map +0 -1
  240. package/dist/esm/tests/utils/object.spec.js +0 -36
  241. package/dist/esm/tests/utils/object.spec.js.map +0 -1
  242. package/dist/types/src/utils/object.d.ts +0 -13
  243. package/dist/types/src/utils/object.d.ts.map +0 -1
  244. package/dist/types/tests/utils/object.spec.d.ts +0 -2
  245. package/dist/types/tests/utils/object.spec.d.ts.map +0 -1
  246. package/src/utils/object.ts +0 -43
@@ -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 './object.js';
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 as Filter;
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 Time.sleep(2);
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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=object.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.spec.d.ts","sourceRoot":"","sources":["../../../../tests/utils/object.spec.ts"],"names":[],"mappings":""}
@@ -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
- }