@twin.org/core 0.0.4-next.8 → 0.9.0-next.1

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 (119) hide show
  1. package/dist/es/encoding/base64.js +1 -1
  2. package/dist/es/encoding/base64.js.map +1 -1
  3. package/dist/es/errors/conflictError.js +1 -1
  4. package/dist/es/errors/conflictError.js.map +1 -1
  5. package/dist/es/errors/generalError.js +1 -1
  6. package/dist/es/errors/generalError.js.map +1 -1
  7. package/dist/es/errors/notImplementedError.js +1 -1
  8. package/dist/es/errors/notImplementedError.js.map +1 -1
  9. package/dist/es/errors/validationError.js +1 -1
  10. package/dist/es/errors/validationError.js.map +1 -1
  11. package/dist/es/helpers/arrayHelper.js +1 -1
  12. package/dist/es/helpers/arrayHelper.js.map +1 -1
  13. package/dist/es/helpers/errorHelper.js +1 -1
  14. package/dist/es/helpers/errorHelper.js.map +1 -1
  15. package/dist/es/helpers/jsonHelper.js +1 -1
  16. package/dist/es/helpers/jsonHelper.js.map +1 -1
  17. package/dist/es/helpers/objectHelper.js +2 -2
  18. package/dist/es/helpers/objectHelper.js.map +1 -1
  19. package/dist/es/helpers/stringHelper.js +2 -2
  20. package/dist/es/helpers/stringHelper.js.map +1 -1
  21. package/dist/es/index.js +7 -0
  22. package/dist/es/index.js.map +1 -1
  23. package/dist/es/models/IComponent.js.map +1 -1
  24. package/dist/es/models/IDuration.js +4 -0
  25. package/dist/es/models/IDuration.js.map +1 -0
  26. package/dist/es/models/ILocale.js.map +1 -1
  27. package/dist/es/models/ISharedObjectBufferOptions.js +4 -0
  28. package/dist/es/models/ISharedObjectBufferOptions.js.map +1 -0
  29. package/dist/es/models/ISharedObjectBufferWorkerMessage.js +2 -0
  30. package/dist/es/models/ISharedObjectBufferWorkerMessage.js.map +1 -0
  31. package/dist/es/models/IValidationFailure.js.map +1 -1
  32. package/dist/es/models/coerceType.js +5 -1
  33. package/dist/es/models/coerceType.js.map +1 -1
  34. package/dist/es/models/sharedObjectBufferMessageTypes.js +13 -0
  35. package/dist/es/models/sharedObjectBufferMessageTypes.js.map +1 -0
  36. package/dist/es/types/duration.js +184 -0
  37. package/dist/es/types/duration.js.map +1 -0
  38. package/dist/es/types/durationRegExp.js +4 -0
  39. package/dist/es/types/durationRegExp.js.map +1 -0
  40. package/dist/es/types/url.js +1 -0
  41. package/dist/es/types/url.js.map +1 -1
  42. package/dist/es/utils/asyncCache.js +1 -1
  43. package/dist/es/utils/asyncCache.js.map +1 -1
  44. package/dist/es/utils/coerce.js +34 -20
  45. package/dist/es/utils/coerce.js.map +1 -1
  46. package/dist/es/utils/compression.js +1 -1
  47. package/dist/es/utils/compression.js.map +1 -1
  48. package/dist/es/utils/guards.js +12 -0
  49. package/dist/es/utils/guards.js.map +1 -1
  50. package/dist/es/utils/is.js +65 -16
  51. package/dist/es/utils/is.js.map +1 -1
  52. package/dist/es/utils/mutex.js +49 -8
  53. package/dist/es/utils/mutex.js.map +1 -1
  54. package/dist/es/utils/sharedObjectBuffer.js +308 -0
  55. package/dist/es/utils/sharedObjectBuffer.js.map +1 -0
  56. package/dist/es/utils/sharedStore.js +2 -2
  57. package/dist/es/utils/sharedStore.js.map +1 -1
  58. package/dist/types/errors/conflictError.d.ts +1 -1
  59. package/dist/types/errors/generalError.d.ts +1 -1
  60. package/dist/types/errors/notImplementedError.d.ts +1 -1
  61. package/dist/types/errors/validationError.d.ts +1 -1
  62. package/dist/types/helpers/arrayHelper.d.ts +1 -1
  63. package/dist/types/helpers/errorHelper.d.ts +1 -1
  64. package/dist/types/helpers/jsonHelper.d.ts +1 -1
  65. package/dist/types/helpers/objectHelper.d.ts +2 -2
  66. package/dist/types/helpers/stringHelper.d.ts +2 -2
  67. package/dist/types/index.d.ts +7 -0
  68. package/dist/types/models/IComponent.d.ts +2 -2
  69. package/dist/types/models/IDuration.d.ts +45 -0
  70. package/dist/types/models/ILocale.d.ts +1 -1
  71. package/dist/types/models/ISharedObjectBufferOptions.d.ts +17 -0
  72. package/dist/types/models/ISharedObjectBufferWorkerMessage.d.ts +29 -0
  73. package/dist/types/models/IValidationFailure.d.ts +1 -1
  74. package/dist/types/models/coerceType.d.ts +4 -0
  75. package/dist/types/models/sharedObjectBufferMessageTypes.d.ts +13 -0
  76. package/dist/types/types/duration.d.ts +29 -0
  77. package/dist/types/types/durationRegExp.d.ts +1 -0
  78. package/dist/types/types/url.d.ts +1 -0
  79. package/dist/types/utils/asyncCache.d.ts +1 -1
  80. package/dist/types/utils/coerce.d.ts +19 -20
  81. package/dist/types/utils/compression.d.ts +1 -1
  82. package/dist/types/utils/guards.d.ts +9 -0
  83. package/dist/types/utils/is.d.ts +16 -9
  84. package/dist/types/utils/mutex.d.ts +12 -1
  85. package/dist/types/utils/sharedObjectBuffer.d.ts +74 -0
  86. package/dist/types/utils/sharedStore.d.ts +2 -2
  87. package/docs/changelog.md +273 -0
  88. package/docs/reference/classes/ArrayHelper.md +1 -1
  89. package/docs/reference/classes/AsyncCache.md +1 -1
  90. package/docs/reference/classes/Coerce.md +32 -48
  91. package/docs/reference/classes/Compression.md +1 -1
  92. package/docs/reference/classes/ConflictError.md +1 -1
  93. package/docs/reference/classes/Duration.md +88 -0
  94. package/docs/reference/classes/ErrorHelper.md +1 -1
  95. package/docs/reference/classes/GeneralError.md +1 -1
  96. package/docs/reference/classes/Guards.md +36 -0
  97. package/docs/reference/classes/Is.md +31 -9
  98. package/docs/reference/classes/JsonHelper.md +1 -1
  99. package/docs/reference/classes/Mutex.md +39 -1
  100. package/docs/reference/classes/NotImplementedError.md +1 -1
  101. package/docs/reference/classes/ObjectHelper.md +10 -2
  102. package/docs/reference/classes/SharedObjectBuffer.md +192 -0
  103. package/docs/reference/classes/SharedStore.md +2 -2
  104. package/docs/reference/classes/StringHelper.md +16 -13
  105. package/docs/reference/classes/Url.md +4 -0
  106. package/docs/reference/classes/ValidationError.md +1 -1
  107. package/docs/reference/index.md +8 -0
  108. package/docs/reference/interfaces/IComponent.md +2 -2
  109. package/docs/reference/interfaces/IDuration.md +83 -0
  110. package/docs/reference/interfaces/ILocale.md +1 -1
  111. package/docs/reference/interfaces/ISharedObjectBufferOptions.md +33 -0
  112. package/docs/reference/interfaces/ISharedObjectBufferWorkerMessage.md +44 -0
  113. package/docs/reference/interfaces/IValidationFailure.md +1 -1
  114. package/docs/reference/type-aliases/SharedObjectBufferMessageTypes.md +5 -0
  115. package/docs/reference/variables/CoerceType.md +6 -0
  116. package/docs/reference/variables/DURATION_REG_EXP.md +3 -0
  117. package/docs/reference/variables/SharedObjectBufferMessageTypes.md +13 -0
  118. package/locales/en.json +9 -2
  119. package/package.json +3 -3
package/docs/changelog.md CHANGED
@@ -1,5 +1,278 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.0-next.1](https://github.com/iotaledger/twin-framework/compare/core-v0.9.0-next.0...core-v0.9.0-next.1) (2026-06-22)
4
+
5
+
6
+ ### Features
7
+
8
+ * add context id features ([#206](https://github.com/iotaledger/twin-framework/issues/206)) ([ef0d4ee](https://github.com/iotaledger/twin-framework/commit/ef0d4ee11a4f5fc6cc6f52a4958ce905c04ee13b))
9
+ * add duration support ([#362](https://github.com/iotaledger/twin-framework/issues/362)) ([24dbe8b](https://github.com/iotaledger/twin-framework/commit/24dbe8b208eb127a52024cb219d31d27731e9ae3))
10
+ * add factory.createIfExists ([aad5a53](https://github.com/iotaledger/twin-framework/commit/aad5a53cef1b1c2e04344ea46244d41e371dff9b))
11
+ * add Factory.getFactory ([ad6cd2d](https://github.com/iotaledger/twin-framework/commit/ad6cd2d30351c145c70212f8cce1b66d5e8a5235))
12
+ * add guard.dateString ([#335](https://github.com/iotaledger/twin-framework/issues/335)) ([a26a166](https://github.com/iotaledger/twin-framework/commit/a26a166eb1f62ece05b2432730cb7354feacecfc))
13
+ * add health method to components ([a88016d](https://github.com/iotaledger/twin-framework/commit/a88016d90d172413e5bc5238dc1b3e35f82fcc2c))
14
+ * add Is.class method ([4988205](https://github.com/iotaledger/twin-framework/commit/498820543e256a130b4888c958fe1d87ca865d7f))
15
+ * add isDefault option to factory registration ([a8a700b](https://github.com/iotaledger/twin-framework/commit/a8a700bb8ddaf7dd5097869a358b8fc5f7c40ce7))
16
+ * add mutex ([#316](https://github.com/iotaledger/twin-framework/issues/316)) ([1027e5a](https://github.com/iotaledger/twin-framework/commit/1027e5ac77aa9804178b4253abdeefd6f1c3d521))
17
+ * add objectHelper.split ([386830a](https://github.com/iotaledger/twin-framework/commit/386830a77f8e842a5b119be0983708e042c3b14b))
18
+ * add partial second support ([39bf087](https://github.com/iotaledger/twin-framework/commit/39bf087ddc113a9bf73e0d0e99f738f6f60c2f2d))
19
+ * add rsa cipher support ([7af6cc6](https://github.com/iotaledger/twin-framework/commit/7af6cc67512d3363bd4a2f2e87bd7733c2800147))
20
+ * add single occurrence array type ([e890e43](https://github.com/iotaledger/twin-framework/commit/e890e4399e75ae5097f3ad8b1007321cbb1ed4ac))
21
+ * add single occurrence array type ([#245](https://github.com/iotaledger/twin-framework/issues/245)) ([771dc78](https://github.com/iotaledger/twin-framework/commit/771dc78025b5546c9c9681be9494a76ab71171c6))
22
+ * add support for health i18n validation ([7a286dd](https://github.com/iotaledger/twin-framework/commit/7a286ddb0c1bfa498bf3a77126cd589042bad6de))
23
+ * add teardown to IComponent interface ([32c173c](https://github.com/iotaledger/twin-framework/commit/32c173cda115c20d3b4cee14b8a29cdc08e91555))
24
+ * add teardown to IComponent interface ([98ce864](https://github.com/iotaledger/twin-framework/commit/98ce8648e709310c4435de334825b381fb4e32cb))
25
+ * add typeName method to factory ([699fcbd](https://github.com/iotaledger/twin-framework/commit/699fcbd1168228401ddb81fdacb959b8cdc4206a))
26
+ * add uuidv7 support ([#219](https://github.com/iotaledger/twin-framework/issues/219)) ([916c657](https://github.com/iotaledger/twin-framework/commit/916c657d270ce99fafe554233739fdd9ca28635b))
27
+ * adding link header helper ([#225](https://github.com/iotaledger/twin-framework/issues/225)) ([703c072](https://github.com/iotaledger/twin-framework/commit/703c0725aceac6b6ec0c4fa729ef832d12fb3fd7))
28
+ * additional nameof operators ([a5aab60](https://github.com/iotaledger/twin-framework/commit/a5aab60bf66a86f1b7ff8af7c4f044cb03706d50))
29
+ * additional RSA methods and async ([1fceee2](https://github.com/iotaledger/twin-framework/commit/1fceee2d1248a24a7620846025fcf906495c07f4))
30
+ * bump version ([c5354fa](https://github.com/iotaledger/twin-framework/commit/c5354fa906f4493c70f2642a9175a66780a10636))
31
+ * configurable timeout for mutex ([2087e04](https://github.com/iotaledger/twin-framework/commit/2087e04464a110a3f009fbc8b066696ed6784fc2))
32
+ * eslint migration to flat config ([74427d7](https://github.com/iotaledger/twin-framework/commit/74427d78d342167f7850e49ab87269326355befe))
33
+ * expand error params to accept properties ([032e9fd](https://github.com/iotaledger/twin-framework/commit/032e9fd1388e457cde32ca1005dfe014a5a9c077))
34
+ * factory create and integrity ([#235](https://github.com/iotaledger/twin-framework/issues/235)) ([9f98b99](https://github.com/iotaledger/twin-framework/commit/9f98b99daf46eb365346fae49cc4ffba63e74cb3))
35
+ * health status grouping ([5007c29](https://github.com/iotaledger/twin-framework/commit/5007c29fe4123fe56f754450b993dbe5dc32a057))
36
+ * improve async cache edge cases ([4e57a6e](https://github.com/iotaledger/twin-framework/commit/4e57a6ec4113533b0ea903eae7d469200fa1348c))
37
+ * improve base error data extraction ([dccc933](https://github.com/iotaledger/twin-framework/commit/dccc93361a1544b41db0e7c126ff90e858d87960))
38
+ * improve error formatting ([#313](https://github.com/iotaledger/twin-framework/issues/313)) ([5a19623](https://github.com/iotaledger/twin-framework/commit/5a196231bcbf088bf9ba92a93b7478d3b8c5593f))
39
+ * improve Is.function and ModuleHelper.getModuleMethod signatures ([ecf968b](https://github.com/iotaledger/twin-framework/commit/ecf968b02934b3676be4bf7cd2d1e7f8e7af6ce2))
40
+ * improve Is.function definition to retain types ([f20b6b0](https://github.com/iotaledger/twin-framework/commit/f20b6b0dd16e74b75dc359be72b05989305c6410))
41
+ * improve signatures ([45a7d58](https://github.com/iotaledger/twin-framework/commit/45a7d58baa5b6abc8c0735656f393d402fabb4ad))
42
+ * improve signatures ([cdd24be](https://github.com/iotaledger/twin-framework/commit/cdd24be6fb898d33955b6f2f93c3ddbd73582269))
43
+ * improve signatures ([2041ae2](https://github.com/iotaledger/twin-framework/commit/2041ae214cbd8d472d5e8be8d3403cd06a114040))
44
+ * improve signatures ([d8a0ee1](https://github.com/iotaledger/twin-framework/commit/d8a0ee16542134a3f8b0653065239f42045125b4))
45
+ * improve signatures ([1d084c5](https://github.com/iotaledger/twin-framework/commit/1d084c58c7eb41ae50b0ce80ce57e48a22dd3102))
46
+ * improve signatures ([#287](https://github.com/iotaledger/twin-framework/issues/287)) ([c9f38f0](https://github.com/iotaledger/twin-framework/commit/c9f38f00e1cea8759e1105b41872a650c66c00f4))
47
+ * is and coerce accept duration object ([51dffa1](https://github.com/iotaledger/twin-framework/commit/51dffa18066eb86a14c700d90d3c1bd8b322c0fc))
48
+ * locales validation ([#197](https://github.com/iotaledger/twin-framework/issues/197)) ([55fdadb](https://github.com/iotaledger/twin-framework/commit/55fdadb13595ce0047f787bd1d4135d429a99f12))
49
+ * mutex safe usage in browser ([#339](https://github.com/iotaledger/twin-framework/issues/339)) ([02d409f](https://github.com/iotaledger/twin-framework/commit/02d409f211e91267964208d58a27f29791715086))
50
+ * nodeIdentity optional in IComponent methods ([c78dc17](https://github.com/iotaledger/twin-framework/commit/c78dc17f4357d3e1ae40e415f468d3eae13e81f4))
51
+ * relocate core packages from tools ([bcab8f3](https://github.com/iotaledger/twin-framework/commit/bcab8f3160442ea4fcaf442947462504f3d6a17d))
52
+ * shared object buffer ([#355](https://github.com/iotaledger/twin-framework/issues/355)) ([70d82ea](https://github.com/iotaledger/twin-framework/commit/70d82ea8f43f01aa840ae90ee0b1f23b064a07c6))
53
+ * simplify factory options ([7f85a85](https://github.com/iotaledger/twin-framework/commit/7f85a8553dd3008364e8e1104f2e6f6b6595d77e))
54
+ * simplify StringHelper signature ([0390403](https://github.com/iotaledger/twin-framework/commit/039040344952f91ee3c671249bc0e1c8f3b38e17))
55
+ * typescript 6 update ([1d10f31](https://github.com/iotaledger/twin-framework/commit/1d10f31e6516ec622773f45e88af82fe749b384a))
56
+ * update dependencies ([4da77ab](https://github.com/iotaledger/twin-framework/commit/4da77ab30f499e52825ac5a76f51436ceb59c26e))
57
+ * update dependencies ([f3bd015](https://github.com/iotaledger/twin-framework/commit/f3bd015efd169196b7e0335f5cab876ba6ca1d75))
58
+ * urn random switched to using uuidv7 ([606c9a2](https://github.com/iotaledger/twin-framework/commit/606c9a2ed68a10fc7fc2bc5f93388c1b71033154))
59
+ * urn random switched to using uuidv7 ([6a29f8b](https://github.com/iotaledger/twin-framework/commit/6a29f8bd573d06992b7eaa027b1daf4c2a2e1e85))
60
+ * use cause instead of inner for errors ([1f4acc4](https://github.com/iotaledger/twin-framework/commit/1f4acc4d7a6b71a134d9547da9bf40de1e1e49da))
61
+
62
+
63
+ ### Bug Fixes
64
+
65
+ * async thread lock ([97a96a5](https://github.com/iotaledger/twin-framework/commit/97a96a57f60c7b45a0ccbbfa1c43199b6e7512f9))
66
+ * ensure __decorate is defined for decorators ([103a563](https://github.com/iotaledger/twin-framework/commit/103a563ce01ebdef6240d2e590e7b026e8692684))
67
+ * improve exception handling in asyncCache ([c81b29b](https://github.com/iotaledger/twin-framework/commit/c81b29b660b152d2f0757d323430287e6491bf59))
68
+ * improve jsdoc comments ([f7c8e43](https://github.com/iotaledger/twin-framework/commit/f7c8e43fab9803dffa6461950d5b9979e25bcd24))
69
+ * linting ([b77511d](https://github.com/iotaledger/twin-framework/commit/b77511de8781707088b1beb4c92f12d7d6e0fd5f))
70
+ * mutex locking ([d5af3c1](https://github.com/iotaledger/twin-framework/commit/d5af3c1e66070f86408ba1410809689c6d22958b))
71
+ * pick non iterable keys ([399399a](https://github.com/iotaledger/twin-framework/commit/399399abfb8947c4eb235df527532ffe186986b3))
72
+ * prevent TOCTOU race in Mutex.getOrFetchLock for concurrent async callers ([#343](https://github.com/iotaledger/twin-framework/issues/343)) ([5238ad1](https://github.com/iotaledger/twin-framework/commit/5238ad1a68e24c69162204b02030c6686c15e9f4))
73
+ * remove misleading undefined from AsyncCache return type ([05b3291](https://github.com/iotaledger/twin-framework/commit/05b32914e03a63c7daf7b77952a2ebedb7ca7f6b))
74
+
75
+
76
+ ### Dependencies
77
+
78
+ * The following workspace dependencies were updated
79
+ * dependencies
80
+ * @twin.org/nameof bumped from 0.9.0-next.0 to 0.9.0-next.1
81
+ * devDependencies
82
+ * @twin.org/nameof-transformer bumped from 0.9.0-next.0 to 0.9.0-next.1
83
+ * @twin.org/nameof-vitest-plugin bumped from 0.9.0-next.0 to 0.9.0-next.1
84
+
85
+ ## [0.0.4-next.15](https://github.com/iotaledger/twin-framework/compare/core-v0.0.4-next.14...core-v0.0.4-next.15) (2026-06-19)
86
+
87
+
88
+ ### Features
89
+
90
+ * configurable timeout for mutex ([2087e04](https://github.com/iotaledger/twin-framework/commit/2087e04464a110a3f009fbc8b066696ed6784fc2))
91
+
92
+
93
+ ### Dependencies
94
+
95
+ * The following workspace dependencies were updated
96
+ * dependencies
97
+ * @twin.org/nameof bumped from 0.0.4-next.14 to 0.0.4-next.15
98
+ * devDependencies
99
+ * @twin.org/nameof-transformer bumped from 0.0.4-next.14 to 0.0.4-next.15
100
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.4-next.14 to 0.0.4-next.15
101
+
102
+ ## [0.0.4-next.14](https://github.com/iotaledger/twin-framework/compare/core-v0.0.4-next.13...core-v0.0.4-next.14) (2026-06-18)
103
+
104
+
105
+ ### Features
106
+
107
+ * add partial second support ([39bf087](https://github.com/iotaledger/twin-framework/commit/39bf087ddc113a9bf73e0d0e99f738f6f60c2f2d))
108
+
109
+
110
+ ### Dependencies
111
+
112
+ * The following workspace dependencies were updated
113
+ * dependencies
114
+ * @twin.org/nameof bumped from 0.0.4-next.13 to 0.0.4-next.14
115
+ * devDependencies
116
+ * @twin.org/nameof-transformer bumped from 0.0.4-next.13 to 0.0.4-next.14
117
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.4-next.13 to 0.0.4-next.14
118
+
119
+ ## [0.0.4-next.13](https://github.com/iotaledger/twin-framework/compare/core-v0.0.4-next.12...core-v0.0.4-next.13) (2026-06-18)
120
+
121
+
122
+ ### Features
123
+
124
+ * is and coerce accept duration object ([51dffa1](https://github.com/iotaledger/twin-framework/commit/51dffa18066eb86a14c700d90d3c1bd8b322c0fc))
125
+
126
+
127
+ ### Dependencies
128
+
129
+ * The following workspace dependencies were updated
130
+ * dependencies
131
+ * @twin.org/nameof bumped from 0.0.4-next.12 to 0.0.4-next.13
132
+ * devDependencies
133
+ * @twin.org/nameof-transformer bumped from 0.0.4-next.12 to 0.0.4-next.13
134
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.4-next.12 to 0.0.4-next.13
135
+
136
+ ## [0.0.4-next.12](https://github.com/iotaledger/twin-framework/compare/core-v0.0.4-next.11...core-v0.0.4-next.12) (2026-06-18)
137
+
138
+
139
+ ### Features
140
+
141
+ * add duration support ([#362](https://github.com/iotaledger/twin-framework/issues/362)) ([24dbe8b](https://github.com/iotaledger/twin-framework/commit/24dbe8b208eb127a52024cb219d31d27731e9ae3))
142
+
143
+
144
+ ### Dependencies
145
+
146
+ * The following workspace dependencies were updated
147
+ * dependencies
148
+ * @twin.org/nameof bumped from 0.0.4-next.11 to 0.0.4-next.12
149
+ * devDependencies
150
+ * @twin.org/nameof-transformer bumped from 0.0.4-next.11 to 0.0.4-next.12
151
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.4-next.11 to 0.0.4-next.12
152
+
153
+ ## [0.0.4-next.11](https://github.com/iotaledger/twin-framework/compare/core-v0.0.4-next.10...core-v0.0.4-next.11) (2026-06-15)
154
+
155
+
156
+ ### Bug Fixes
157
+
158
+ * mutex locking ([d5af3c1](https://github.com/iotaledger/twin-framework/commit/d5af3c1e66070f86408ba1410809689c6d22958b))
159
+
160
+
161
+ ### Dependencies
162
+
163
+ * The following workspace dependencies were updated
164
+ * dependencies
165
+ * @twin.org/nameof bumped from 0.0.4-next.10 to 0.0.4-next.11
166
+ * devDependencies
167
+ * @twin.org/nameof-transformer bumped from 0.0.4-next.10 to 0.0.4-next.11
168
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.4-next.10 to 0.0.4-next.11
169
+
170
+ ## [0.0.4-next.10](https://github.com/iotaledger/twin-framework/compare/core-v0.0.4-next.9...core-v0.0.4-next.10) (2026-06-15)
171
+
172
+
173
+ ### Features
174
+
175
+ * add context id features ([#206](https://github.com/iotaledger/twin-framework/issues/206)) ([ef0d4ee](https://github.com/iotaledger/twin-framework/commit/ef0d4ee11a4f5fc6cc6f52a4958ce905c04ee13b))
176
+ * add factory.createIfExists ([aad5a53](https://github.com/iotaledger/twin-framework/commit/aad5a53cef1b1c2e04344ea46244d41e371dff9b))
177
+ * add Factory.getFactory ([ad6cd2d](https://github.com/iotaledger/twin-framework/commit/ad6cd2d30351c145c70212f8cce1b66d5e8a5235))
178
+ * add guard.dateString ([#335](https://github.com/iotaledger/twin-framework/issues/335)) ([a26a166](https://github.com/iotaledger/twin-framework/commit/a26a166eb1f62ece05b2432730cb7354feacecfc))
179
+ * add guards arrayEndsWith and arrayStartsWith ([95d875e](https://github.com/iotaledger/twin-framework/commit/95d875ec8ccb4713c145fdde941d4cfedcec2ed3))
180
+ * add health method to components ([a88016d](https://github.com/iotaledger/twin-framework/commit/a88016d90d172413e5bc5238dc1b3e35f82fcc2c))
181
+ * add Is.class method ([4988205](https://github.com/iotaledger/twin-framework/commit/498820543e256a130b4888c958fe1d87ca865d7f))
182
+ * add isDefault option to factory registration ([a8a700b](https://github.com/iotaledger/twin-framework/commit/a8a700bb8ddaf7dd5097869a358b8fc5f7c40ce7))
183
+ * add mutex ([#316](https://github.com/iotaledger/twin-framework/issues/316)) ([1027e5a](https://github.com/iotaledger/twin-framework/commit/1027e5ac77aa9804178b4253abdeefd6f1c3d521))
184
+ * add objectHelper.split ([386830a](https://github.com/iotaledger/twin-framework/commit/386830a77f8e842a5b119be0983708e042c3b14b))
185
+ * add ObjectOrArray and ArrayHelper methods ([0ac9077](https://github.com/iotaledger/twin-framework/commit/0ac907764d64b38ad1b04b0e9c3027055b527559))
186
+ * add rsa cipher support ([7af6cc6](https://github.com/iotaledger/twin-framework/commit/7af6cc67512d3363bd4a2f2e87bd7733c2800147))
187
+ * add single occurrence array type ([e890e43](https://github.com/iotaledger/twin-framework/commit/e890e4399e75ae5097f3ad8b1007321cbb1ed4ac))
188
+ * add single occurrence array type ([#245](https://github.com/iotaledger/twin-framework/issues/245)) ([771dc78](https://github.com/iotaledger/twin-framework/commit/771dc78025b5546c9c9681be9494a76ab71171c6))
189
+ * add support for health i18n validation ([7a286dd](https://github.com/iotaledger/twin-framework/commit/7a286ddb0c1bfa498bf3a77126cd589042bad6de))
190
+ * add teardown to IComponent interface ([32c173c](https://github.com/iotaledger/twin-framework/commit/32c173cda115c20d3b4cee14b8a29cdc08e91555))
191
+ * add teardown to IComponent interface ([98ce864](https://github.com/iotaledger/twin-framework/commit/98ce8648e709310c4435de334825b381fb4e32cb))
192
+ * add typeName method to factory ([699fcbd](https://github.com/iotaledger/twin-framework/commit/699fcbd1168228401ddb81fdacb959b8cdc4206a))
193
+ * add uuidv7 support ([#219](https://github.com/iotaledger/twin-framework/issues/219)) ([916c657](https://github.com/iotaledger/twin-framework/commit/916c657d270ce99fafe554233739fdd9ca28635b))
194
+ * add zlib/deflate mime types detection ([72c472b](https://github.com/iotaledger/twin-framework/commit/72c472b5a35a973e7109336f5b6cdd84dbb8bbcb))
195
+ * adding link header helper ([#225](https://github.com/iotaledger/twin-framework/issues/225)) ([703c072](https://github.com/iotaledger/twin-framework/commit/703c0725aceac6b6ec0c4fa729ef832d12fb3fd7))
196
+ * additional nameof operators ([a5aab60](https://github.com/iotaledger/twin-framework/commit/a5aab60bf66a86f1b7ff8af7c4f044cb03706d50))
197
+ * additional RSA methods and async ([1fceee2](https://github.com/iotaledger/twin-framework/commit/1fceee2d1248a24a7620846025fcf906495c07f4))
198
+ * bump version ([c5354fa](https://github.com/iotaledger/twin-framework/commit/c5354fa906f4493c70f2642a9175a66780a10636))
199
+ * eslint migration to flat config ([74427d7](https://github.com/iotaledger/twin-framework/commit/74427d78d342167f7850e49ab87269326355befe))
200
+ * expand error params to accept properties ([032e9fd](https://github.com/iotaledger/twin-framework/commit/032e9fd1388e457cde32ca1005dfe014a5a9c077))
201
+ * factory create and integrity ([#235](https://github.com/iotaledger/twin-framework/issues/235)) ([9f98b99](https://github.com/iotaledger/twin-framework/commit/9f98b99daf46eb365346fae49cc4ffba63e74cb3))
202
+ * health status grouping ([5007c29](https://github.com/iotaledger/twin-framework/commit/5007c29fe4123fe56f754450b993dbe5dc32a057))
203
+ * improve async cache edge cases ([4e57a6e](https://github.com/iotaledger/twin-framework/commit/4e57a6ec4113533b0ea903eae7d469200fa1348c))
204
+ * improve base error data extraction ([dccc933](https://github.com/iotaledger/twin-framework/commit/dccc93361a1544b41db0e7c126ff90e858d87960))
205
+ * improve error display in CLI ([94b6ca8](https://github.com/iotaledger/twin-framework/commit/94b6ca8bdcfe3ca7671c4095b436ea7bddaae98e))
206
+ * improve error formatting ([#313](https://github.com/iotaledger/twin-framework/issues/313)) ([5a19623](https://github.com/iotaledger/twin-framework/commit/5a196231bcbf088bf9ba92a93b7478d3b8c5593f))
207
+ * improve Is.function and ModuleHelper.getModuleMethod signatures ([ecf968b](https://github.com/iotaledger/twin-framework/commit/ecf968b02934b3676be4bf7cd2d1e7f8e7af6ce2))
208
+ * improve Is.function definition to retain types ([f20b6b0](https://github.com/iotaledger/twin-framework/commit/f20b6b0dd16e74b75dc359be72b05989305c6410))
209
+ * improve signatures ([45a7d58](https://github.com/iotaledger/twin-framework/commit/45a7d58baa5b6abc8c0735656f393d402fabb4ad))
210
+ * improve signatures ([cdd24be](https://github.com/iotaledger/twin-framework/commit/cdd24be6fb898d33955b6f2f93c3ddbd73582269))
211
+ * improve signatures ([2041ae2](https://github.com/iotaledger/twin-framework/commit/2041ae214cbd8d472d5e8be8d3403cd06a114040))
212
+ * improve signatures ([d8a0ee1](https://github.com/iotaledger/twin-framework/commit/d8a0ee16542134a3f8b0653065239f42045125b4))
213
+ * improve signatures ([1d084c5](https://github.com/iotaledger/twin-framework/commit/1d084c58c7eb41ae50b0ce80ce57e48a22dd3102))
214
+ * improve signatures ([#287](https://github.com/iotaledger/twin-framework/issues/287)) ([c9f38f0](https://github.com/iotaledger/twin-framework/commit/c9f38f00e1cea8759e1105b41872a650c66c00f4))
215
+ * locales validation ([#197](https://github.com/iotaledger/twin-framework/issues/197)) ([55fdadb](https://github.com/iotaledger/twin-framework/commit/55fdadb13595ce0047f787bd1d4135d429a99f12))
216
+ * mutex safe usage in browser ([#339](https://github.com/iotaledger/twin-framework/issues/339)) ([02d409f](https://github.com/iotaledger/twin-framework/commit/02d409f211e91267964208d58a27f29791715086))
217
+ * nodeIdentity optional in IComponent methods ([c78dc17](https://github.com/iotaledger/twin-framework/commit/c78dc17f4357d3e1ae40e415f468d3eae13e81f4))
218
+ * propagate includeStackTrace on error conversion ([8471cbb](https://github.com/iotaledger/twin-framework/commit/8471cbb71f8fc98247a0e92126c438c1a8b04d9b))
219
+ * propagate includeStackTrace on error conversion ([818337d](https://github.com/iotaledger/twin-framework/commit/818337d50d14bf5a7e8b3204649aa7527115cca9))
220
+ * relocate core packages from tools ([bcab8f3](https://github.com/iotaledger/twin-framework/commit/bcab8f3160442ea4fcaf442947462504f3d6a17d))
221
+ * shared object buffer ([#355](https://github.com/iotaledger/twin-framework/issues/355)) ([70d82ea](https://github.com/iotaledger/twin-framework/commit/70d82ea8f43f01aa840ae90ee0b1f23b064a07c6))
222
+ * simplify factory options ([7f85a85](https://github.com/iotaledger/twin-framework/commit/7f85a8553dd3008364e8e1104f2e6f6b6595d77e))
223
+ * simplify StringHelper signature ([0390403](https://github.com/iotaledger/twin-framework/commit/039040344952f91ee3c671249bc0e1c8f3b38e17))
224
+ * support indexed properties set in objects ([b9c001d](https://github.com/iotaledger/twin-framework/commit/b9c001dc4614f6ff7486f4370735a553613d823a))
225
+ * typescript 6 update ([1d10f31](https://github.com/iotaledger/twin-framework/commit/1d10f31e6516ec622773f45e88af82fe749b384a))
226
+ * update dependencies ([4da77ab](https://github.com/iotaledger/twin-framework/commit/4da77ab30f499e52825ac5a76f51436ceb59c26e))
227
+ * update dependencies ([f3bd015](https://github.com/iotaledger/twin-framework/commit/f3bd015efd169196b7e0335f5cab876ba6ca1d75))
228
+ * urn random switched to using uuidv7 ([606c9a2](https://github.com/iotaledger/twin-framework/commit/606c9a2ed68a10fc7fc2bc5f93388c1b71033154))
229
+ * urn random switched to using uuidv7 ([6a29f8b](https://github.com/iotaledger/twin-framework/commit/6a29f8bd573d06992b7eaa027b1daf4c2a2e1e85))
230
+ * use cause instead of inner for errors ([1f4acc4](https://github.com/iotaledger/twin-framework/commit/1f4acc4d7a6b71a134d9547da9bf40de1e1e49da))
231
+
232
+
233
+ ### Bug Fixes
234
+
235
+ * async thread lock ([97a96a5](https://github.com/iotaledger/twin-framework/commit/97a96a57f60c7b45a0ccbbfa1c43199b6e7512f9))
236
+ * ensure __decorate is defined for decorators ([103a563](https://github.com/iotaledger/twin-framework/commit/103a563ce01ebdef6240d2e590e7b026e8692684))
237
+ * improve exception handling in asyncCache ([c81b29b](https://github.com/iotaledger/twin-framework/commit/c81b29b660b152d2f0757d323430287e6491bf59))
238
+ * improve jsdoc comments ([f7c8e43](https://github.com/iotaledger/twin-framework/commit/f7c8e43fab9803dffa6461950d5b9979e25bcd24))
239
+ * linting ([b77511d](https://github.com/iotaledger/twin-framework/commit/b77511de8781707088b1beb4c92f12d7d6e0fd5f))
240
+ * pick non iterable keys ([399399a](https://github.com/iotaledger/twin-framework/commit/399399abfb8947c4eb235df527532ffe186986b3))
241
+ * prevent TOCTOU race in Mutex.getOrFetchLock for concurrent async callers ([#343](https://github.com/iotaledger/twin-framework/issues/343)) ([5238ad1](https://github.com/iotaledger/twin-framework/commit/5238ad1a68e24c69162204b02030c6686c15e9f4))
242
+ * remove misleading undefined from AsyncCache return type ([05b3291](https://github.com/iotaledger/twin-framework/commit/05b32914e03a63c7daf7b77952a2ebedb7ca7f6b))
243
+
244
+
245
+ ### Dependencies
246
+
247
+ * The following workspace dependencies were updated
248
+ * dependencies
249
+ * @twin.org/nameof bumped from 0.0.4-next.9 to 0.0.4-next.10
250
+ * devDependencies
251
+ * @twin.org/nameof-transformer bumped from 0.0.4-next.9 to 0.0.4-next.10
252
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.4-next.9 to 0.0.4-next.10
253
+
254
+ ## [0.0.4-next.9](https://github.com/iotaledger/twin-framework/compare/core-v0.0.4-next.8...core-v0.0.4-next.9) (2026-06-15)
255
+
256
+
257
+ ### Features
258
+
259
+ * shared object buffer ([#355](https://github.com/iotaledger/twin-framework/issues/355)) ([70d82ea](https://github.com/iotaledger/twin-framework/commit/70d82ea8f43f01aa840ae90ee0b1f23b064a07c6))
260
+
261
+
262
+ ### Bug Fixes
263
+
264
+ * linting ([b77511d](https://github.com/iotaledger/twin-framework/commit/b77511de8781707088b1beb4c92f12d7d6e0fd5f))
265
+
266
+
267
+ ### Dependencies
268
+
269
+ * The following workspace dependencies were updated
270
+ * dependencies
271
+ * @twin.org/nameof bumped from 0.0.4-next.8 to 0.0.4-next.9
272
+ * devDependencies
273
+ * @twin.org/nameof-transformer bumped from 0.0.4-next.8 to 0.0.4-next.9
274
+ * @twin.org/nameof-vitest-plugin bumped from 0.0.4-next.8 to 0.0.4-next.9
275
+
3
276
  ## [0.0.4-next.8](https://github.com/iotaledger/twin-framework/compare/core-v0.0.4-next.7...core-v0.0.4-next.8) (2026-06-10)
4
277
 
5
278
 
@@ -38,7 +38,7 @@ The second array.
38
38
 
39
39
  `boolean`
40
40
 
41
- True if both arrays are empty of have the same values.
41
+ True if both arrays are empty or have the same values.
42
42
 
43
43
  ***
44
44
 
@@ -125,7 +125,7 @@ The TTL of the entry in the cache in milliseconds. Defaults to 1000 (1 second).
125
125
 
126
126
  `Promise`\<`void`\>
127
127
 
128
- Nothing.
128
+ A promise that resolves when the entry has been stored.
129
129
 
130
130
  ***
131
131
 
@@ -32,11 +32,7 @@ The value to coerce.
32
32
 
33
33
  `string` \| `undefined`
34
34
 
35
- The value if it can be coerced.
36
-
37
- #### Throws
38
-
39
- TypeError If the value can not be coerced.
35
+ The coerced string, or undefined if the value cannot be coerced.
40
36
 
41
37
  ***
42
38
 
@@ -58,11 +54,7 @@ The value to coerce.
58
54
 
59
55
  `number` \| `undefined`
60
56
 
61
- The value if it can be coerced.
62
-
63
- #### Throws
64
-
65
- TypeError If the value can not be coerced.
57
+ The coerced number, or undefined if the value cannot be coerced.
66
58
 
67
59
  ***
68
60
 
@@ -84,11 +76,7 @@ The value to coerce.
84
76
 
85
77
  `number` \| `undefined`
86
78
 
87
- The value if it can be coerced.
88
-
89
- #### Throws
90
-
91
- TypeError If the value can not be coerced.
79
+ The coerced integer, or undefined if the value cannot be coerced.
92
80
 
93
81
  ***
94
82
 
@@ -110,11 +98,7 @@ The value to coerce.
110
98
 
111
99
  `bigint` \| `undefined`
112
100
 
113
- The value if it can be coerced.
114
-
115
- #### Throws
116
-
117
- TypeError If the value can not be coerced.
101
+ The coerced bigint, or undefined if the value cannot be coerced.
118
102
 
119
103
  ***
120
104
 
@@ -136,11 +120,7 @@ The value to coerce.
136
120
 
137
121
  `boolean` \| `undefined`
138
122
 
139
- The value if it can be coerced.
140
-
141
- #### Throws
142
-
143
- TypeError If the value can not be coerced.
123
+ The coerced boolean, or undefined if the value cannot be coerced.
144
124
 
145
125
  ***
146
126
 
@@ -162,11 +142,7 @@ The value to coerce.
162
142
 
163
143
  `Date` \| `undefined`
164
144
 
165
- The value if it can be coerced.
166
-
167
- #### Throws
168
-
169
- TypeError If the value can not be coerced.
145
+ The coerced date, or undefined if the value cannot be coerced.
170
146
 
171
147
  ***
172
148
 
@@ -188,11 +164,7 @@ The value to coerce.
188
164
 
189
165
  `Date` \| `undefined`
190
166
 
191
- The value if it can be coerced.
192
-
193
- #### Throws
194
-
195
- TypeError If the value can not be coerced.
167
+ The coerced date/time, or undefined if the value cannot be coerced.
196
168
 
197
169
  ***
198
170
 
@@ -214,11 +186,31 @@ The value to coerce.
214
186
 
215
187
  `Date` \| `undefined`
216
188
 
217
- The value if it can be coerced.
189
+ The coerced time, or undefined if the value cannot be coerced.
190
+
191
+ ***
192
+
193
+ ### duration() {#duration}
218
194
 
219
- #### Throws
195
+ > `static` **duration**(`value`): [`IDuration`](../interfaces/IDuration.md) \| `undefined`
220
196
 
221
- TypeError If the value can not be coerced.
197
+ Coerce the value to a duration object.
198
+ Accepts an IDuration object, ISO 8601 duration strings (e.g. "PT1H", "P1Y2M3DT4H5M6S"),
199
+ or numeric values already expressed as seconds (stored in the seconds field).
200
+
201
+ #### Parameters
202
+
203
+ ##### value
204
+
205
+ `unknown`
206
+
207
+ The value to coerce.
208
+
209
+ #### Returns
210
+
211
+ [`IDuration`](../interfaces/IDuration.md) \| `undefined`
212
+
213
+ The duration object, or undefined if the value cannot be coerced.
222
214
 
223
215
  ***
224
216
 
@@ -246,11 +238,7 @@ The value to coerce.
246
238
 
247
239
  `T` \| `undefined`
248
240
 
249
- The value if it can be coerced.
250
-
251
- #### Throws
252
-
253
- TypeError If the value can not be coerced.
241
+ The coerced object, or undefined if the value cannot be coerced.
254
242
 
255
243
  ***
256
244
 
@@ -272,11 +260,7 @@ The value to coerce.
272
260
 
273
261
  `Uint8Array`\<`ArrayBufferLike`\> \| `undefined`
274
262
 
275
- The value if it can be coerced.
276
-
277
- #### Throws
278
-
279
- TypeError If the value can not be coerced.
263
+ The coerced Uint8Array, or undefined if the value cannot be coerced.
280
264
 
281
265
  ***
282
266
 
@@ -26,7 +26,7 @@ Runtime name for the class.
26
26
 
27
27
  > `static` **compress**(`bytes`, `type`): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\>
28
28
 
29
- Compress bytes using GZIP.
29
+ Compress bytes using the specified compression type.
30
30
 
31
31
  #### Parameters
32
32
 
@@ -48,7 +48,7 @@ Any additional information for the error.
48
48
 
49
49
  `unknown`
50
50
 
51
- The cause or the error if we have wrapped another error.
51
+ The cause of the error if we have wrapped another error.
52
52
 
53
53
  #### Returns
54
54
 
@@ -0,0 +1,88 @@
1
+ # Class: Duration
2
+
3
+ Helper methods for working with ISO 8601 durations.
4
+
5
+ ## Constructors
6
+
7
+ ### Constructor
8
+
9
+ > **new Duration**(): `Duration`
10
+
11
+ #### Returns
12
+
13
+ `Duration`
14
+
15
+ ## Properties
16
+
17
+ ### CLASS\_NAME {#class_name}
18
+
19
+ > `readonly` `static` **CLASS\_NAME**: `string`
20
+
21
+ Runtime name for the class.
22
+
23
+ ## Methods
24
+
25
+ ### parse() {#parse}
26
+
27
+ > `static` **parse**(`value`): [`IDuration`](../interfaces/IDuration.md) \| `undefined`
28
+
29
+ Parse an ISO 8601 duration string into its component parts.
30
+
31
+ #### Parameters
32
+
33
+ ##### value
34
+
35
+ `string`
36
+
37
+ The string to parse.
38
+
39
+ #### Returns
40
+
41
+ [`IDuration`](../interfaces/IDuration.md) \| `undefined`
42
+
43
+ The parsed duration, or undefined if the string is not a valid ISO 8601 duration.
44
+
45
+ ***
46
+
47
+ ### toString() {#tostring}
48
+
49
+ > `static` **toString**(`duration`): `string`
50
+
51
+ Convert a duration object to an ISO 8601 duration string.
52
+
53
+ #### Parameters
54
+
55
+ ##### duration
56
+
57
+ [`IDuration`](../interfaces/IDuration.md)
58
+
59
+ The duration to convert.
60
+
61
+ #### Returns
62
+
63
+ `string`
64
+
65
+ The ISO 8601 duration string (e.g. "P1Y2M3DT4H5M6S").
66
+
67
+ ***
68
+
69
+ ### toSeconds() {#toseconds}
70
+
71
+ > `static` **toSeconds**(`duration`): `number`
72
+
73
+ Convert a duration object to total seconds.
74
+ Year and month components use the average values 365.25 days and 30.4375 days.
75
+
76
+ #### Parameters
77
+
78
+ ##### duration
79
+
80
+ [`IDuration`](../interfaces/IDuration.md)
81
+
82
+ The duration to convert.
83
+
84
+ #### Returns
85
+
86
+ `number`
87
+
88
+ The total number of seconds.
@@ -18,7 +18,7 @@ Error helper functions.
18
18
 
19
19
  > `static` **formatErrors**(`error`, `options?`): `string`[]
20
20
 
21
- Format Errors and returns just their messages.
21
+ Format errors and returns just their messages.
22
22
 
23
23
  #### Parameters
24
24
 
@@ -1,6 +1,6 @@
1
1
  # Class: GeneralError
2
2
 
3
- Class to handle errors.
3
+ Class to handle general-purpose errors.
4
4
 
5
5
  ## Extends
6
6
 
@@ -1181,3 +1181,39 @@ The format of the uuidV7, either standard or compact.
1181
1181
  #### Throws
1182
1182
 
1183
1183
  GuardError If the value does not match the assertion.
1184
+
1185
+ ***
1186
+
1187
+ ### duration() {#duration}
1188
+
1189
+ > `static` **duration**(`source`, `property`, `value`): asserts value is string \| IDuration
1190
+
1191
+ Is the property a valid ISO 8601 duration string or IDuration object.
1192
+
1193
+ #### Parameters
1194
+
1195
+ ##### source
1196
+
1197
+ `string`
1198
+
1199
+ The source of the error.
1200
+
1201
+ ##### property
1202
+
1203
+ `string`
1204
+
1205
+ The name of the property.
1206
+
1207
+ ##### value
1208
+
1209
+ `unknown`
1210
+
1211
+ The value to test.
1212
+
1213
+ #### Returns
1214
+
1215
+ asserts value is string \| IDuration
1216
+
1217
+ #### Throws
1218
+
1219
+ GuardError If the value does not match the assertion.