@haskou/value-objects 4.1.0 → 6.0.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.
Files changed (162) hide show
  1. package/README.md +78 -176
  2. package/dist/errors/InvalidPasswordError.d.ts +5 -0
  3. package/dist/errors/InvalidPasswordError.d.ts.map +1 -0
  4. package/dist/errors/InvalidPasswordError.js +11 -0
  5. package/dist/errors/InvalidPasswordError.js.map +1 -0
  6. package/dist/errors/index.d.ts +1 -2
  7. package/dist/errors/index.d.ts.map +1 -1
  8. package/dist/errors/index.js +1 -2
  9. package/dist/errors/index.js.map +1 -1
  10. package/dist/interfaces/PrimitiveOf.d.ts +5 -1
  11. package/dist/interfaces/PrimitiveOf.d.ts.map +1 -1
  12. package/dist/patterns/Assert.d.ts +1 -1
  13. package/dist/patterns/Assert.d.ts.map +1 -1
  14. package/dist/types/Primitive.d.ts +1 -1
  15. package/dist/types/Primitive.d.ts.map +1 -1
  16. package/dist/value-objects/Color.d.ts +1 -1
  17. package/dist/value-objects/Color.d.ts.map +1 -1
  18. package/dist/value-objects/Color.js +5 -2
  19. package/dist/value-objects/Color.js.map +1 -1
  20. package/dist/value-objects/Email.d.ts +1 -0
  21. package/dist/value-objects/Email.d.ts.map +1 -1
  22. package/dist/value-objects/Email.js +2 -1
  23. package/dist/value-objects/Email.js.map +1 -1
  24. package/dist/value-objects/Enum.d.ts +1 -1
  25. package/dist/value-objects/Enum.d.ts.map +1 -1
  26. package/dist/value-objects/Enum.js +1 -1
  27. package/dist/value-objects/Enum.js.map +1 -1
  28. package/dist/value-objects/NumberValueObject.js +1 -1
  29. package/dist/value-objects/NumberValueObject.js.map +1 -1
  30. package/dist/value-objects/Password.d.ts +8 -0
  31. package/dist/value-objects/Password.d.ts.map +1 -0
  32. package/dist/value-objects/Password.js +28 -0
  33. package/dist/value-objects/Password.js.map +1 -0
  34. package/dist/value-objects/UniqueObjectArray.d.ts.map +1 -1
  35. package/dist/value-objects/ValueObject.d.ts +1 -0
  36. package/dist/value-objects/ValueObject.d.ts.map +1 -1
  37. package/dist/value-objects/ValueObject.js +7 -1
  38. package/dist/value-objects/ValueObject.js.map +1 -1
  39. package/dist/value-objects/coordinates/Latitude.d.ts.map +1 -1
  40. package/dist/value-objects/coordinates/Latitude.js +5 -4
  41. package/dist/value-objects/coordinates/Latitude.js.map +1 -1
  42. package/dist/value-objects/coordinates/Longitude.d.ts.map +1 -1
  43. package/dist/value-objects/coordinates/Longitude.js +5 -4
  44. package/dist/value-objects/coordinates/Longitude.js.map +1 -1
  45. package/dist/value-objects/hashes/MD5Hash.d.ts +0 -3
  46. package/dist/value-objects/hashes/MD5Hash.d.ts.map +1 -1
  47. package/dist/value-objects/hashes/MD5Hash.js +0 -4
  48. package/dist/value-objects/hashes/MD5Hash.js.map +1 -1
  49. package/dist/value-objects/hashes/SHA256Hash.d.ts +0 -3
  50. package/dist/value-objects/hashes/SHA256Hash.d.ts.map +1 -1
  51. package/dist/value-objects/hashes/SHA256Hash.js +0 -4
  52. package/dist/value-objects/hashes/SHA256Hash.js.map +1 -1
  53. package/dist/value-objects/hashes/SHA512Hash.d.ts +0 -3
  54. package/dist/value-objects/hashes/SHA512Hash.d.ts.map +1 -1
  55. package/dist/value-objects/hashes/SHA512Hash.js +0 -4
  56. package/dist/value-objects/hashes/SHA512Hash.js.map +1 -1
  57. package/dist/value-objects/ids/ShortId.d.ts +2 -0
  58. package/dist/value-objects/ids/ShortId.d.ts.map +1 -1
  59. package/dist/value-objects/ids/ShortId.js +12 -3
  60. package/dist/value-objects/ids/ShortId.js.map +1 -1
  61. package/dist/value-objects/ids/UUID.d.ts +3 -0
  62. package/dist/value-objects/ids/UUID.d.ts.map +1 -1
  63. package/dist/value-objects/ids/UUID.js +23 -4
  64. package/dist/value-objects/ids/UUID.js.map +1 -1
  65. package/dist/value-objects/index.d.ts +1 -1
  66. package/dist/value-objects/index.d.ts.map +1 -1
  67. package/dist/value-objects/index.js +1 -1
  68. package/dist/value-objects/index.js.map +1 -1
  69. package/dist/value-objects/media/Media.d.ts +2 -0
  70. package/dist/value-objects/media/Media.d.ts.map +1 -1
  71. package/dist/value-objects/media/Media.js +14 -1
  72. package/dist/value-objects/media/Media.js.map +1 -1
  73. package/dist/value-objects/time/CalendarDay.d.ts +2 -1
  74. package/dist/value-objects/time/CalendarDay.d.ts.map +1 -1
  75. package/dist/value-objects/time/CalendarDay.js +25 -11
  76. package/dist/value-objects/time/CalendarDay.js.map +1 -1
  77. package/dist/value-objects/time/DayOfWeek.d.ts.map +1 -1
  78. package/dist/value-objects/time/DayOfWeek.js +2 -3
  79. package/dist/value-objects/time/DayOfWeek.js.map +1 -1
  80. package/dist/value-objects/time/Duration.js +2 -2
  81. package/dist/value-objects/time/Duration.js.map +1 -1
  82. package/dist/value-objects/time/Hour.d.ts +3 -0
  83. package/dist/value-objects/time/Hour.d.ts.map +1 -1
  84. package/dist/value-objects/time/Hour.js +30 -31
  85. package/dist/value-objects/time/Hour.js.map +1 -1
  86. package/dist/value-objects/time/Timestamp.d.ts +3 -1
  87. package/dist/value-objects/time/Timestamp.d.ts.map +1 -1
  88. package/dist/value-objects/time/Timestamp.js +50 -9
  89. package/dist/value-objects/time/Timestamp.js.map +1 -1
  90. package/dist/value-objects/time/TimestampInterval.d.ts +2 -4
  91. package/dist/value-objects/time/TimestampInterval.d.ts.map +1 -1
  92. package/dist/value-objects/time/TimestampInterval.js +0 -10
  93. package/dist/value-objects/time/TimestampInterval.js.map +1 -1
  94. package/package.json +50 -33
  95. package/dist/errors/InvalidKeyError.d.ts +0 -5
  96. package/dist/errors/InvalidKeyError.d.ts.map +0 -1
  97. package/dist/errors/InvalidKeyError.js +0 -11
  98. package/dist/errors/InvalidKeyError.js.map +0 -1
  99. package/dist/errors/InvalidSignatureError.d.ts +0 -5
  100. package/dist/errors/InvalidSignatureError.d.ts.map +0 -1
  101. package/dist/errors/InvalidSignatureError.js +0 -11
  102. package/dist/errors/InvalidSignatureError.js.map +0 -1
  103. package/dist/value-objects/crypto/CryptoAdapter.d.ts +0 -30
  104. package/dist/value-objects/crypto/CryptoAdapter.d.ts.map +0 -1
  105. package/dist/value-objects/crypto/CryptoAdapter.js +0 -96
  106. package/dist/value-objects/crypto/CryptoAdapter.js.map +0 -1
  107. package/dist/value-objects/crypto/CryptoPayload.d.ts +0 -5
  108. package/dist/value-objects/crypto/CryptoPayload.d.ts.map +0 -1
  109. package/dist/value-objects/crypto/CryptoPayload.js +0 -3
  110. package/dist/value-objects/crypto/CryptoPayload.js.map +0 -1
  111. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts +0 -25
  112. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts.map +0 -1
  113. package/dist/value-objects/crypto/EncryptedKeyPair.js +0 -42
  114. package/dist/value-objects/crypto/EncryptedKeyPair.js.map +0 -1
  115. package/dist/value-objects/crypto/EncryptedPayload.d.ts +0 -4
  116. package/dist/value-objects/crypto/EncryptedPayload.d.ts.map +0 -1
  117. package/dist/value-objects/crypto/EncryptedPayload.js +0 -8
  118. package/dist/value-objects/crypto/EncryptedPayload.js.map +0 -1
  119. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts +0 -11
  120. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts.map +0 -1
  121. package/dist/value-objects/crypto/EncryptedPrivateKey.js +0 -37
  122. package/dist/value-objects/crypto/EncryptedPrivateKey.js.map +0 -1
  123. package/dist/value-objects/crypto/Key.d.ts +0 -4
  124. package/dist/value-objects/crypto/Key.d.ts.map +0 -1
  125. package/dist/value-objects/crypto/Key.js +0 -8
  126. package/dist/value-objects/crypto/Key.js.map +0 -1
  127. package/dist/value-objects/crypto/KeyPair.d.ts +0 -26
  128. package/dist/value-objects/crypto/KeyPair.d.ts.map +0 -1
  129. package/dist/value-objects/crypto/KeyPair.js +0 -45
  130. package/dist/value-objects/crypto/KeyPair.js.map +0 -1
  131. package/dist/value-objects/crypto/PrivateKey.d.ts +0 -19
  132. package/dist/value-objects/crypto/PrivateKey.d.ts.map +0 -1
  133. package/dist/value-objects/crypto/PrivateKey.js +0 -56
  134. package/dist/value-objects/crypto/PrivateKey.js.map +0 -1
  135. package/dist/value-objects/crypto/PublicKey.d.ts +0 -15
  136. package/dist/value-objects/crypto/PublicKey.d.ts.map +0 -1
  137. package/dist/value-objects/crypto/PublicKey.js +0 -54
  138. package/dist/value-objects/crypto/PublicKey.js.map +0 -1
  139. package/dist/value-objects/crypto/Signature.d.ts +0 -11
  140. package/dist/value-objects/crypto/Signature.d.ts.map +0 -1
  141. package/dist/value-objects/crypto/Signature.js +0 -26
  142. package/dist/value-objects/crypto/Signature.js.map +0 -1
  143. package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.d.ts +0 -21
  144. package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.d.ts.map +0 -1
  145. package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.js +0 -56
  146. package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.js.map +0 -1
  147. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts +0 -14
  148. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts.map +0 -1
  149. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js +0 -33
  150. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js.map +0 -1
  151. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts +0 -20
  152. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts.map +0 -1
  153. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js +0 -69
  154. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js.map +0 -1
  155. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts +0 -8
  156. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts.map +0 -1
  157. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.js +0 -10
  158. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.js.map +0 -1
  159. package/dist/value-objects/crypto/index.d.ts +0 -9
  160. package/dist/value-objects/crypto/index.d.ts.map +0 -1
  161. package/dist/value-objects/crypto/index.js +0 -12
  162. package/dist/value-objects/crypto/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DayOfWeek.js","sourceRoot":"","sources":["../../../src/value-objects/time/DayOfWeek.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,kCAA+B;AAG/B,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;AACnB,CAAC,EARW,WAAW,2BAAX,WAAW,QAQtB;AAEY,QAAA,qBAAqB,GAAG;IACnC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACxB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAa,SAAU,SAAQ,WAAI;IAC1B,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,CAAC,UAAU,CAAC,GAAW;QAClC,MAAM,CAAC,IAAI,CAAC,GACV,MAAM,CAAC,OAAO,CAAC,6BAAqB,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAC7B,IAAI,EAAE,CAAC;QAEV,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,SAAoB;QAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAEjD,OAAO,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAEM,QAAQ;QACb,OAAO,6BAAqB,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;IAC1D,CAAC;;AAlCH,8BAmCC"}
1
+ {"version":3,"file":"DayOfWeek.js","sourceRoot":"","sources":["../../../src/value-objects/time/DayOfWeek.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAAwC;AACxC,kCAA+B;AAG/B,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;AACnB,CAAC,EARW,WAAW,2BAAX,WAAW,QAQtB;AAEY,QAAA,qBAAqB,GAAG;IACnC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACxB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAa,SAAU,SAAQ,WAAI;IAC1B,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,CAAC,UAAU,CAAC,GAAW;QAClC,MAAM,CAAC,IAAI,CAAC,GACV,MAAM,CAAC,OAAO,CAAC,6BAAqB,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAC7B,IAAI,EAAE,CAAC;QAEV,IAAA,iBAAM,EAAC,IAAI,EAAE,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAExC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,SAAoB;QAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAEjD,OAAO,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAEM,QAAQ;QACb,OAAO,6BAAqB,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;IAC1D,CAAC;;AAhCH,8BAiCC"}
@@ -56,10 +56,10 @@ class Duration extends NumberValueObject_1.NumberValueObject {
56
56
  return new NumberValueObject_1.NumberValueObject(this.valueOf());
57
57
  }
58
58
  getDays() {
59
- return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.DAYS).valueOf()) % Duration.SECOND_UNITS.DAYS);
59
+ return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.DAYS).valueOf()));
60
60
  }
61
61
  getHours() {
62
- return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.HOURS).valueOf()) % Duration.SECOND_UNITS.HOURS);
62
+ return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.HOURS).valueOf()) % 24);
63
63
  }
64
64
  getMinutes() {
65
65
  return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this)
@@ -1 +1 @@
1
- {"version":3,"file":"Duration.js","sourceRoot":"","sources":["../../../src/value-objects/time/Duration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Duration.js","sourceRoot":"","sources":["../../../src/value-objects/time/Duration.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@ export declare class Hour extends StringValueObject {
3
3
  private readonly minutes;
4
4
  private readonly hours;
5
5
  private static addTrailZero;
6
+ private static normalizeMinutes;
7
+ private static parseFromNumber;
8
+ private static parseFromString;
6
9
  constructor(value: string);
7
10
  constructor(value: number, minutes?: number);
8
11
  addMinutes(minutes: number): Hour;
@@ -1 +1 @@
1
- {"version":3,"file":"Hour.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/Hour.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,IAAK,SAAQ,iBAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAC,YAAY;gBAIf,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAiCpC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAkBjC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAiBlC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAQlC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAOvC"}
1
+ {"version":3,"file":"Hour.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/Hour.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,IAAK,SAAQ,iBAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B,OAAO,CAAC,MAAM,CAAC,eAAe;IAa9B,OAAO,CAAC,MAAM,CAAC,eAAe;gBAsBlB,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAYpC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASjC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAiBlC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAQlC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAOvC"}
@@ -9,44 +9,43 @@ class Hour extends StringValueObject_1.StringValueObject {
9
9
  minutes;
10
10
  hours;
11
11
  static addTrailZero(value) {
12
- return Number(value) < 10 ? `0${Number(value)}` : value;
12
+ return value < 10 ? `0${value}` : value.toString();
13
+ }
14
+ static normalizeMinutes(totalMinutes) {
15
+ const minutesPerDay = 24 * 60;
16
+ return ((totalMinutes % minutesPerDay) + minutesPerDay) % minutesPerDay;
17
+ }
18
+ static parseFromNumber(value, minutes) {
19
+ (0, Assert_1.assert)(Number.isInteger(value) && value >= 0 && value <= 23, new InvalidHourError_1.InvalidHourError());
20
+ (0, Assert_1.assert)(Number.isInteger(minutes) && minutes >= 0 && minutes <= 59, new InvalidMinutesError_1.InvalidMinutesError());
21
+ return [Hour.addTrailZero(value), Hour.addTrailZero(minutes)];
22
+ }
23
+ static parseFromString(value) {
24
+ const parts = value.split(':');
25
+ (0, Assert_1.assert)(parts.length === 2 && parts[1] !== '', new InvalidHourError_1.InvalidHourError());
26
+ const [hours, minutes] = parts;
27
+ (0, Assert_1.assert)(/^\d{1,2}$/.test(hours), new InvalidHourError_1.InvalidHourError());
28
+ (0, Assert_1.assert)(/^\d{1,2}$/.test(minutes), new InvalidMinutesError_1.InvalidMinutesError());
29
+ const parsedHours = Number(hours);
30
+ const parsedMinutes = Number(minutes);
31
+ (0, Assert_1.assert)(parsedHours >= 0 && parsedHours <= 23, new InvalidHourError_1.InvalidHourError());
32
+ (0, Assert_1.assert)(parsedMinutes >= 0 && parsedMinutes <= 59, new InvalidMinutesError_1.InvalidMinutesError());
33
+ return [Hour.addTrailZero(parsedHours), Hour.addTrailZero(parsedMinutes)];
13
34
  }
14
35
  constructor(value, minutes) {
15
- let parsedHours;
16
- let parsedMinutes;
17
- if (typeof value === 'number' && minutes !== undefined) {
18
- (0, Assert_1.assert)(Number(value) >= 0 && Number(value) <= 23, new InvalidHourError_1.InvalidHourError());
19
- (0, Assert_1.assert)(Number(minutes) >= 0 && Number(minutes) <= 59, new InvalidMinutesError_1.InvalidMinutesError());
20
- parsedHours = Hour.addTrailZero(value.toString());
21
- parsedMinutes = Hour.addTrailZero(minutes.toString());
22
- }
23
- else {
24
- (0, Assert_1.assert)(typeof value === 'string', new InvalidHourError_1.InvalidHourError());
25
- (0, Assert_1.assert)(value.includes(':'), new InvalidHourError_1.InvalidHourError());
26
- const [hours, minutes] = value.split(':');
27
- (0, Assert_1.assert)(Number(hours) >= 0 && Number(hours) <= 23, new InvalidHourError_1.InvalidHourError());
28
- (0, Assert_1.assert)(Number(minutes) >= 0 && Number(minutes) <= 59, new InvalidMinutesError_1.InvalidMinutesError());
29
- parsedHours = Hour.addTrailZero(hours);
30
- parsedMinutes = Hour.addTrailZero(minutes);
31
- }
36
+ const [parsedHours, parsedMinutes] = typeof value === 'number' && minutes !== undefined
37
+ ? Hour.parseFromNumber(value, minutes)
38
+ : Hour.parseFromString(value);
32
39
  super(`${parsedHours}:${parsedMinutes}`);
33
40
  this.hours = parsedHours;
34
41
  this.minutes = parsedMinutes;
35
42
  }
36
43
  addMinutes(minutes) {
37
- const totalMinutes = Number(this.minutes) + minutes;
38
- let newHour = Number(this.hours) + Math.floor(totalMinutes / 60);
39
- let newMinutes = totalMinutes % 60;
40
- if (newHour > 23) {
41
- newHour = newHour - 24;
42
- }
43
- else if (newHour < 0) {
44
- newHour = 24 + newHour;
45
- }
46
- if (newMinutes < 0) {
47
- newMinutes = 60 + newMinutes;
48
- }
49
- return new Hour(`${newHour}:${newMinutes}`);
44
+ const currentMinutes = Number(this.hours) * 60 + Number(this.minutes);
45
+ const normalizedMinutes = Hour.normalizeMinutes(currentMinutes + minutes);
46
+ const newHour = Math.floor(normalizedMinutes / 60);
47
+ const newMinutes = normalizedMinutes % 60;
48
+ return new Hour(newHour, newMinutes);
50
49
  }
51
50
  diffInMinutes(other) {
52
51
  let endHour = Number(other.hours);
@@ -1 +1 @@
1
- {"version":3,"file":"Hour.js","sourceRoot":"","sources":["../../../src/value-objects/time/Hour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Hour.js","sourceRoot":"","sources":["../../../src/value-objects/time/Hour.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@ type TimestampValue = number | Date | Timestamp | string;
10
10
  export declare class Timestamp extends ValueObject<number> {
11
11
  private static readonly FACTORS;
12
12
  private static valueMilliseconds;
13
+ private static getLastDayOfUtcMonth;
14
+ private static ensureCalendarDelta;
15
+ private static createUtcCalendarValue;
13
16
  static new(value: TimestampValue): Timestamp;
14
17
  static now(): Timestamp;
15
18
  static fromSeconds(seconds: number | NumberValueObject): Timestamp;
@@ -19,7 +22,6 @@ export declare class Timestamp extends ValueObject<number> {
19
22
  toSeconds(): number;
20
23
  toDate(): Date;
21
24
  toString(): string;
22
- isEqual(other: Timestamp): boolean;
23
25
  isBefore(other: Timestamp): boolean;
24
26
  isAfter(other: Timestamp): boolean;
25
27
  isBeforeOrEqual(other: Timestamp): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/Timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,KAAK,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,qBAAa,SAAU,SAAQ,WAAW,CAAC,MAAM,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAQ7B;IAEF,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAgBlB,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS;WAIrC,GAAG,IAAI,SAAS;WAIhB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;gBAItD,KAAK,CAAC,EAAE,cAAc;IAIlC,WAAW,IAAI,SAAS;IAYxB,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,MAAM;IAInB,MAAM,IAAI,IAAI;IAId,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAInC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI1C,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIzC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMpE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAM1D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAM1D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMtD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMpD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMtD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMxD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMtD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAM1C,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIpC,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAItC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIrC,cAAc,IAAI,WAAW;IAI7B,MAAM,IAAI,GAAG;IAIb,QAAQ,IAAI,KAAK;IAIjB,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,MAAM;IAIlB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM;IAItB,cAAc,IAAI,WAAW;CAGrC"}
1
+ {"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/Timestamp.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,KAAK,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,qBAAa,SAAU,SAAQ,WAAW,CAAC,MAAM,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAM7B;IAEF,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgBhC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAqBnC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC,OAAO,CAAC,MAAM,CAAC,sBAAsB;WAsBvB,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS;WAIrC,GAAG,IAAI,SAAS;WAIhB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;gBAItD,KAAK,CAAC,EAAE,cAAc;IASlC,WAAW,IAAI,SAAS;IAYxB,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,MAAM;IAInB,MAAM,IAAI,IAAI;IAId,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAInC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI1C,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIzC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMpE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAM1D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAM1D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMtD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMpD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMtD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAwBxD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAsBtD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAM1C,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIpC,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAItC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIrC,cAAc,IAAI,WAAW;IAI7B,MAAM,IAAI,GAAG;IAIb,QAAQ,IAAI,KAAK;IAIjB,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,MAAM;IAIlB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM;IAItB,cAAc,IAAI,WAAW;CAGrC"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Timestamp = void 0;
4
+ const InvalidIntegerError_1 = require("../../errors/InvalidIntegerError");
5
+ const InvalidNumberError_1 = require("../../errors/InvalidNumberError");
6
+ const Assert_1 = require("../../patterns/Assert");
4
7
  const ValueObject_1 = require("../ValueObject");
5
8
  const CalendarDay_1 = require("./CalendarDay");
6
9
  const Day_1 = require("./Day");
@@ -12,10 +15,8 @@ class Timestamp extends ValueObject_1.ValueObject {
12
15
  DAYS: 24 * 60 * 60 * 1000,
13
16
  HOURS: 60 * 60 * 1000,
14
17
  MINUTES: 60 * 1000,
15
- MONTHS: 30 * 24 * 60 * 60 * 1000,
16
18
  SECONDS: 1000,
17
19
  WEEKS: 7 * 24 * 60 * 60 * 1000,
18
- YEARS: 365 * 24 * 60 * 60 * 1000,
19
20
  };
20
21
  static valueMilliseconds(value) {
21
22
  if (value instanceof Timestamp || value instanceof Date) {
@@ -29,6 +30,37 @@ class Timestamp extends ValueObject_1.ValueObject {
29
30
  }
30
31
  return Date.now().valueOf();
31
32
  }
33
+ static getLastDayOfUtcMonth(year, month) {
34
+ const normalizedYear = year + Math.floor(month / 12);
35
+ const normalizedMonth = ((month % 12) + 12) % 12;
36
+ const days = [
37
+ 31,
38
+ new Year_1.Year(normalizedYear).isLeapYear() ? 29 : 28,
39
+ 31,
40
+ 30,
41
+ 31,
42
+ 30,
43
+ 31,
44
+ 31,
45
+ 30,
46
+ 31,
47
+ 30,
48
+ 31,
49
+ ];
50
+ return days[normalizedMonth];
51
+ }
52
+ static ensureCalendarDelta(value) {
53
+ (0, Assert_1.assert)(Number.isInteger(value), new InvalidIntegerError_1.InvalidIntegerError(value));
54
+ }
55
+ static createUtcCalendarValue(sourceValue, year, month, day) {
56
+ const integerValue = Math.floor(sourceValue);
57
+ const fractionalMilliseconds = sourceValue - integerValue;
58
+ const source = new Date(integerValue);
59
+ const target = new Date(0);
60
+ target.setUTCFullYear(year, month, day);
61
+ target.setUTCHours(source.getUTCHours(), source.getUTCMinutes(), source.getUTCSeconds(), source.getUTCMilliseconds());
62
+ return target.valueOf() + fractionalMilliseconds;
63
+ }
32
64
  static new(value) {
33
65
  return new Timestamp(value);
34
66
  }
@@ -40,6 +72,7 @@ class Timestamp extends ValueObject_1.ValueObject {
40
72
  }
41
73
  constructor(value) {
42
74
  super(Timestamp.valueMilliseconds(value));
75
+ (0, Assert_1.assert)(Number.isFinite(new Date(this.value).valueOf()), new InvalidNumberError_1.InvalidNumberError(this.value));
43
76
  }
44
77
  toExactHour() {
45
78
  const date = new Date(this.valueOf());
@@ -61,9 +94,6 @@ class Timestamp extends ValueObject_1.ValueObject {
61
94
  toString() {
62
95
  return `${this.valueOf()}`;
63
96
  }
64
- isEqual(other) {
65
- return this.value === other.valueOf();
66
- }
67
97
  isBefore(other) {
68
98
  return this.value < other.valueOf();
69
99
  }
@@ -101,12 +131,23 @@ class Timestamp extends ValueObject_1.ValueObject {
101
131
  return this.clone(value);
102
132
  }
103
133
  addMonths(months) {
104
- const value = this.value + months.valueOf() * Timestamp.FACTORS.MONTHS;
105
- return this.clone(value);
134
+ const delta = months.valueOf();
135
+ Timestamp.ensureCalendarDelta(delta);
136
+ const source = new Date(Math.floor(this.value));
137
+ const totalMonths = source.getUTCFullYear() * 12 + source.getUTCMonth() + delta;
138
+ const targetYear = Math.floor(totalMonths / 12);
139
+ const targetMonth = totalMonths - targetYear * 12;
140
+ const targetDay = Math.min(source.getUTCDate(), Timestamp.getLastDayOfUtcMonth(targetYear, targetMonth));
141
+ return this.clone(Timestamp.createUtcCalendarValue(this.value, targetYear, targetMonth, targetDay));
106
142
  }
107
143
  addYears(years) {
108
- const value = this.value + years.valueOf() * Timestamp.FACTORS.YEARS;
109
- return this.clone(value);
144
+ const delta = years.valueOf();
145
+ Timestamp.ensureCalendarDelta(delta);
146
+ const source = new Date(Math.floor(this.value));
147
+ const targetYear = source.getUTCFullYear() + delta;
148
+ const targetMonth = source.getUTCMonth();
149
+ const targetDay = Math.min(source.getUTCDate(), Timestamp.getLastDayOfUtcMonth(targetYear, targetMonth));
150
+ return this.clone(Timestamp.createUtcCalendarValue(this.value, targetYear, targetMonth, targetDay));
110
151
  }
111
152
  addDuration(duration) {
112
153
  const value = this.value + duration.valueOf();
@@ -1 +1 @@
1
- {"version":3,"file":"Timestamp.js","sourceRoot":"","sources":["../../../src/value-objects/time/Timestamp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Timestamp.js","sourceRoot":"","sources":["../../../src/value-objects/time/Timestamp.ts"],"names":[],"mappings":";;;AAAA,0EAAuE;AACvE,wEAAqE;AACrE,kDAA+C;AAE/C,gDAA6C;AAC7C,+CAA4C;AAC5C,+BAA4B;AAE5B,mCAAgC;AAChC,+CAA4C;AAC5C,iCAA8B;AAI9B,MAAa,SAAU,SAAQ,yBAAmB;IACxC,MAAM,CAAU,OAAO,GAAG;QAChC,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QACzB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACrB,OAAO,EAAE,EAAE,GAAG,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;KAC/B,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,KAAsB;QACrD,IAAI,KAAK,YAAY,SAAS,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,IAAY,EAAE,KAAa;QAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG;YACX,EAAE;YACF,IAAI,WAAI,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAC/C,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;YACF,EAAE;SACH,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,KAAa;QAC9C,IAAA,eAAM,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,yCAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAEO,MAAM,CAAC,sBAAsB,CACnC,WAAmB,EACnB,IAAY,EACZ,KAAa,EACb,GAAW;QAEX,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,sBAAsB,GAAG,WAAW,GAAG,YAAY,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,WAAW,EAAE,EACpB,MAAM,CAAC,aAAa,EAAE,EACtB,MAAM,CAAC,aAAa,EAAE,EACtB,MAAM,CAAC,kBAAkB,EAAE,CAC5B,CAAC;QAEF,OAAO,MAAM,CAAC,OAAO,EAAE,GAAG,sBAAsB,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,KAAqB;QACrC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,GAAG;QACf,OAAO,IAAI,SAAS,EAAE,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,OAAmC;QAC3D,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,YAAmB,KAAsB;QACvC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1C,IAAA,eAAM,EACJ,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,EAC/C,IAAI,uCAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CACnC,CAAC;IACJ,CAAC;IAEM,WAAW;QAChB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEtC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAExB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;QAElD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEM,QAAQ;QACb,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IAC7B,CAAC;IAEM,QAAQ,CAAC,KAAgB;QAC9B,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,OAAO,CAAC,KAAgB;QAC7B,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,eAAe,CAAC,KAAgB;QACrC,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAEM,cAAc,CAAC,KAAgB;QACpC,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAEM,eAAe,CAAC,YAAwC;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;QAElD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,UAAU,CAAC,OAAmC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;QAEzE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,UAAU,CAAC,OAAmC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;QAEzE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,QAAQ,CAAC,KAAiC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QAErE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,OAAO,CAAC,IAAgC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QAEnE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,QAAQ,CAAC,KAAiC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QAErE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,SAAS,CAAC,MAAkC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,MAAM,WAAW,GACf,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,MAAM,CAAC,UAAU,EAAE,EACnB,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,CACxD,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CACf,SAAS,CAAC,sBAAsB,CAC9B,IAAI,CAAC,KAAK,EACV,UAAU,EACV,WAAW,EACX,SAAS,CACV,CACF,CAAC;IACJ,CAAC;IAEM,QAAQ,CAAC,KAAiC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,MAAM,CAAC,UAAU,EAAE,EACnB,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,CACxD,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CACf,SAAS,CAAC,sBAAsB,CAC9B,IAAI,CAAC,KAAK,EACV,UAAU,EACV,WAAW,EACX,SAAS,CACV,CACF,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAAkB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAE9C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,SAAS,CAAC,KAAgB;QAC/B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEM,WAAW,CAAC,KAAgB;QACjC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEM,UAAU,CAAC,KAAgB;QAChC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,SAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,aAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,yBAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;;AAnRH,8BAoRC"}
@@ -5,8 +5,8 @@ import { DayOfWeek } from './DayOfWeek';
5
5
  import { Duration } from './Duration';
6
6
  import { Timestamp } from './Timestamp';
7
7
  export declare class TimestampInterval extends ValueObject<string> {
8
- private start;
9
- private end;
8
+ private readonly start;
9
+ private readonly end;
10
10
  static fromPrimitives(primitives: PrimitiveOf<TimestampInterval>): TimestampInterval;
11
11
  constructor(start: Timestamp, end: Timestamp);
12
12
  toPrimitives(): {
@@ -17,8 +17,6 @@ export declare class TimestampInterval extends ValueObject<string> {
17
17
  getEnd(): Timestamp;
18
18
  getDuration(): Duration;
19
19
  getTotalDaysOfWeek(dayOfWeek: DayOfWeek): number;
20
- modifyStart(start: Timestamp): void;
21
- modifyEnd(end: Timestamp): void;
22
20
  getDaysBetweenInterval(): CalendarDay[];
23
21
  getOverlappingInterval(searchInterval: TimestampInterval): TimestampInterval | null;
24
22
  includes(timestamp: Timestamp): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TimestampInterval.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/TimestampInterval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAWtD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG;WAXC,cAAc,CAC1B,UAAU,EAAE,WAAW,CAAC,iBAAiB,CAAC,GACzC,iBAAiB;gBAQV,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,SAAS;IAUjB,YAAY;;;;IAOZ,QAAQ,IAAI,SAAS;IAIrB,MAAM,IAAI,SAAS;IAInB,WAAW,IAAI,QAAQ;IAMvB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAmBhD,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMnC,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAM/B,sBAAsB,IAAI,WAAW,EAAE;IAcvC,sBAAsB,CAC3B,cAAc,EAAE,iBAAiB,GAChC,iBAAiB,GAAG,IAAI;IAepB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;CAM/C"}
1
+ {"version":3,"file":"TimestampInterval.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/TimestampInterval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAWtD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;WAXR,cAAc,CAC1B,UAAU,EAAE,WAAW,CAAC,iBAAiB,CAAC,GACzC,iBAAiB;gBAQD,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,SAAS;IAU1B,YAAY;;;;IAOZ,QAAQ,IAAI,SAAS;IAIrB,MAAM,IAAI,SAAS;IAInB,WAAW,IAAI,QAAQ;IAMvB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAmBhD,sBAAsB,IAAI,WAAW,EAAE;IAcvC,sBAAsB,CAC3B,cAAc,EAAE,iBAAiB,GAChC,iBAAiB,GAAG,IAAI;IAepB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;CAM/C"}
@@ -47,16 +47,6 @@ class TimestampInterval extends ValueObject_1.ValueObject {
47
47
  }
48
48
  return count;
49
49
  }
50
- modifyStart(start) {
51
- const end = this.end;
52
- (0, Assert_1.assert)(start.isBefore(end), new InvalidTimestampIntervalError_1.InvalidTimestampIntervalError(start, end));
53
- this.start = start;
54
- }
55
- modifyEnd(end) {
56
- const start = this.start;
57
- (0, Assert_1.assert)(start.isBefore(end), new InvalidTimestampIntervalError_1.InvalidTimestampIntervalError(start, end));
58
- this.end = end;
59
- }
60
50
  getDaysBetweenInterval() {
61
51
  const days = [];
62
52
  let iteratorTimestamp = new Timestamp_1.Timestamp(this.getStart());
@@ -1 +1 @@
1
- {"version":3,"file":"TimestampInterval.js","sourceRoot":"","sources":["../../../src/value-objects/time/TimestampInterval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimestampInterval.js","sourceRoot":"","sources":["../../../src/value-objects/time/TimestampInterval.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,42 @@
1
1
  {
2
2
  "name": "@haskou/value-objects",
3
- "version": "4.1.0",
3
+ "version": "6.0.0",
4
+ "description": "TypeScript value objects for validated, immutable primitive values and small domain-safe data structures.",
4
5
  "main": "dist/index.js",
5
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "require": "./dist/index.js",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
6
15
  "files": [
7
16
  "dist"
8
17
  ],
18
+ "sideEffects": false,
9
19
  "license": "MIT",
20
+ "engines": {
21
+ "node": ">=20.20.2"
22
+ },
23
+ "keywords": [
24
+ "value-object",
25
+ "value-objects",
26
+ "typescript",
27
+ "validation",
28
+ "validated-types",
29
+ "immutable",
30
+ "immutability",
31
+ "type-safety",
32
+ "domain-primitives",
33
+ "primitive-obsession",
34
+ "ddd",
35
+ "domain-driven-design",
36
+ "email-validation",
37
+ "uuid",
38
+ "hash"
39
+ ],
10
40
  "publishConfig": {
11
41
  "access": "public"
12
42
  },
@@ -17,46 +47,33 @@
17
47
  "bugs": {
18
48
  "url": "https://github.com/haskou/value-objects/issues"
19
49
  },
20
- "homepage": "https://github.com/haskou/value-objects#readme",
50
+ "homepage": "https://haskou.github.io/value-objects/",
21
51
  "scripts": {
22
52
  "lint": "eslint ./src --ext .ts",
23
53
  "lint:fix": "eslint ./src --ext .ts --fix",
24
54
  "test": "yarn lint && yarn test:unit",
25
- "test:unit": "jest --passWithNoTests --runInBand",
55
+ "test:unit": "jest --runInBand",
26
56
  "test:coverage": "NODE_ENV=test jest --collect-coverage",
27
57
  "build": "rm -rf dist/ && tsc",
28
- "publish:patch": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --patch && yarn publish && git push",
29
- "publish:minor": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --minor && yarn publish && git push",
30
- "publish:major": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --major && yarn publish && git push"
31
- },
32
- "devDependencies": {
33
- "@types/jest": "^30.0.0",
34
- "@types/node": "^24.0.13",
35
- "@types/uuid": "8",
36
- "@typescript-eslint/eslint-plugin": "6.20.0",
37
- "@typescript-eslint/parser": "6.20.0",
38
- "eslint": "8.57.0",
39
- "eslint-config-prettier": "^10.1.5",
40
- "eslint-plugin-perfectionist": "^4.15.0",
41
- "eslint-plugin-prettier": "^5.5.1",
42
- "eslint-plugin-sonarjs": "^3.0.4",
43
- "eslint-plugin-unused-imports": "^4.1.4",
44
- "faker": "^6.6.6",
45
- "jest": "^30.0.4",
46
- "jest-extended": "^6.0.0",
47
- "jest-runner-tsc": "^1.6.0",
48
- "prettier": "^3.6.2",
49
- "prettier-eslint": "^16.4.2",
50
- "ts-jest": "^29.4.0",
51
- "ts-node": "^10.9.2",
52
- "typescript": "^5.8.3"
58
+ "docs:dev": "vitepress dev docs",
59
+ "docs:build": "vitepress build docs",
60
+ "docs:preview": "vitepress build docs && vitepress preview docs"
53
61
  },
54
62
  "dependencies": {
55
- "@noble/ciphers": "^2.2.0",
56
- "@noble/curves": "^2.0.1",
57
- "@noble/hashes": "^2.0.1",
58
- "bson-objectid": "^2.0.4",
59
63
  "buffer": "^6.0.3",
60
- "uuid": "8"
64
+ "tslib": "^2.8.1"
65
+ },
66
+ "devDependencies": {
67
+ "@haskou/eslint-config": "^0.2.2",
68
+ "@types/jest": "^30.0.0",
69
+ "@types/node": "^26.1.2",
70
+ "eslint": "^10.8.0",
71
+ "jest": "^30.4.2",
72
+ "jest-extended": "^7.0.0",
73
+ "prettier": "^3.9.6",
74
+ "ts-jest": "^29.4.12",
75
+ "typescript": "^6.0.3",
76
+ "vitepress": "^1.6.4",
77
+ "vue": "^3.5.40"
61
78
  }
62
79
  }
@@ -1,5 +0,0 @@
1
- import { DomainError } from './DomainError';
2
- export declare class InvalidKeyError extends DomainError {
3
- constructor(keySize: number, possibleKeySizes: number[]);
4
- }
5
- //# sourceMappingURL=InvalidKeyError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvalidKeyError.d.ts","sourceRoot":"","sources":["../../src/errors/InvalidKeyError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE;CAOxD"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidKeyError = void 0;
4
- const DomainError_1 = require("./DomainError");
5
- class InvalidKeyError extends DomainError_1.DomainError {
6
- constructor(keySize, possibleKeySizes) {
7
- super(`Invalid key size: ${keySize}. Supported key sizes are ${possibleKeySizes.join(', ')}`);
8
- }
9
- }
10
- exports.InvalidKeyError = InvalidKeyError;
11
- //# sourceMappingURL=InvalidKeyError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvalidKeyError.js","sourceRoot":"","sources":["../../src/errors/InvalidKeyError.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,MAAa,eAAgB,SAAQ,yBAAW;IAC9C,YAAY,OAAe,EAAE,gBAA0B;QACrD,KAAK,CACH,qBAAqB,OAAO,6BAA6B,gBAAgB,CAAC,IAAI,CAC5E,IAAI,CACL,EAAE,CACJ,CAAC;IACJ,CAAC;CACF;AARD,0CAQC"}
@@ -1,5 +0,0 @@
1
- import { DomainError } from './DomainError';
2
- export declare class InvalidSignatureError extends DomainError {
3
- constructor(length: number);
4
- }
5
- //# sourceMappingURL=InvalidSignatureError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvalidSignatureError.d.ts","sourceRoot":"","sources":["../../src/errors/InvalidSignatureError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,qBAAsB,SAAQ,WAAW;gBACxC,MAAM,EAAE,MAAM;CAG3B"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidSignatureError = void 0;
4
- const DomainError_1 = require("./DomainError");
5
- class InvalidSignatureError extends DomainError_1.DomainError {
6
- constructor(length) {
7
- super(`Signature must be a ${length}-character string`);
8
- }
9
- }
10
- exports.InvalidSignatureError = InvalidSignatureError;
11
- //# sourceMappingURL=InvalidSignatureError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvalidSignatureError.js","sourceRoot":"","sources":["../../src/errors/InvalidSignatureError.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,MAAa,qBAAsB,SAAQ,yBAAW;IACpD,YAAY,MAAc;QACxB,KAAK,CAAC,uBAAuB,MAAM,mBAAmB,CAAC,CAAC;IAC1D,CAAC;CACF;AAJD,sDAIC"}
@@ -1,30 +0,0 @@
1
- import { Buffer } from 'buffer';
2
- type HashAlgorithm = 'md5' | 'sha256' | 'sha512';
3
- export declare class CryptoAdapter {
4
- private static pemToDer;
5
- private static wrapPem;
6
- static decryptAes256Gcm(key: Uint8Array, iv: Uint8Array, cipherText: Uint8Array, tag: Uint8Array): Buffer;
7
- static deriveEncryptionKey(sharedSecret: Uint8Array, ephemeralPublicKey: Uint8Array): Uint8Array;
8
- static encryptAes256Gcm(key: Uint8Array, iv: Uint8Array, message: Uint8Array): {
9
- cipherText: Uint8Array;
10
- tag: Uint8Array;
11
- };
12
- static getPublicKey(privateKeyPem: string): string;
13
- static hash(algorithm: HashAlgorithm, value: string | Uint8Array): string;
14
- static privateKeyToPem(seed: Uint8Array): string;
15
- static privateKeyToSeed(privateKeyPem: string): Uint8Array;
16
- static privateKeyToX25519(privateKeyPem: string): Uint8Array;
17
- static publicKeyToPem(publicKey: Uint8Array): string;
18
- static publicKeyToX25519(publicKeyPem: string): Uint8Array;
19
- static publicKeyToBytes(publicKeyPem: string): Uint8Array;
20
- static randomBytes(size: number): Buffer;
21
- static randomPrivateKeyPem(): string;
22
- static sign(message: Uint8Array, privateKeyPem: string): Buffer;
23
- static toBytes(value: string | Uint8Array): Uint8Array;
24
- static verify(signature: Uint8Array, message: Uint8Array, publicKeyPem: string): boolean;
25
- static x25519PublicKey(privateKey: Uint8Array): Uint8Array;
26
- static x25519SharedSecret(privateKey: Uint8Array, publicKey: Uint8Array): Uint8Array;
27
- static x25519RandomPrivateKey(): Uint8Array;
28
- }
29
- export {};
30
- //# sourceMappingURL=CryptoAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CryptoAdapter.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,KAAK,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ;IASvB,OAAO,CAAC,MAAM,CAAC,OAAO;WAOR,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,GACd,MAAM;WAIK,mBAAmB,CAC/B,YAAY,EAAE,UAAU,EACxB,kBAAkB,EAAE,UAAU,GAC7B,UAAU;WAIC,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,GAClB;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE;WAShC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;WAM3C,IAAI,CAChB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,MAAM;WAWK,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;WAIzC,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU;WAInD,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU;WAMrD,cAAc,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;WAO7C,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;WAInD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;WAIlD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAIjC,mBAAmB,IAAI,MAAM;WAI7B,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;WAMxD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU;WAQ/C,MAAM,CAClB,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO;WAQI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;WAInD,kBAAkB,CAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GACpB,UAAU;WAIC,sBAAsB,IAAI,UAAU;CAGnD"}