asn1-ts 8.0.5 → 9.0.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 (430) hide show
  1. package/README.md +2 -1
  2. package/dist/{node/ConstructedElementSpecification.d.ts → ConstructedElementSpecification.d.mts} +2 -2
  3. package/dist/ConstructedElementSpecification.mjs +1 -0
  4. package/dist/{node/asn1.d.ts → asn1.d.mts} +7 -7
  5. package/dist/{node/asn1.js → asn1.mjs} +91 -132
  6. package/dist/{node/classes/ABSTRACT-SYNTAX.d.ts → classes/ABSTRACT-SYNTAX.d.mts} +2 -2
  7. package/dist/classes/ABSTRACT-SYNTAX.mjs +1 -0
  8. package/dist/{node/classes/TYPE-IDENTIFIER.d.ts → classes/TYPE-IDENTIFIER.d.mts} +2 -2
  9. package/dist/classes/TYPE-IDENTIFIER.mjs +1 -0
  10. package/dist/classes/index.d.mts +2 -0
  11. package/dist/classes/index.mjs +1 -0
  12. package/dist/{node/codecs/ber/decoders/decodeBitString.d.ts → codecs/ber/decoders/decodeBitString.d.mts} +1 -1
  13. package/dist/codecs/ber/decoders/decodeBitString.mjs +19 -0
  14. package/dist/{node/codecs/ber/decoders/decodeBoolean.d.ts → codecs/ber/decoders/decodeBoolean.d.mts} +1 -1
  15. package/dist/codecs/ber/decoders/decodeBoolean.mjs +7 -0
  16. package/dist/{node/codecs/ber/decoders/decodeDuration.d.ts → codecs/ber/decoders/decodeDuration.d.mts} +1 -1
  17. package/dist/{node/codecs/ber/decoders/decodeDuration.js → codecs/ber/decoders/decodeDuration.mjs} +9 -48
  18. package/dist/{node/codecs/ber/decoders/decodeGeneralizedTime.d.ts → codecs/ber/decoders/decodeGeneralizedTime.d.mts} +1 -1
  19. package/dist/{node/codecs/ber/decoders/decodeGeneralizedTime.js → codecs/ber/decoders/decodeGeneralizedTime.mjs} +10 -49
  20. package/dist/{node/codecs/ber/decoders/decodeReal.d.ts → codecs/ber/decoders/decodeReal.d.mts} +1 -1
  21. package/dist/codecs/ber/decoders/decodeReal.mjs +108 -0
  22. package/dist/codecs/ber/decoders/decodeSequence.d.mts +3 -0
  23. package/dist/codecs/ber/decoders/decodeSequence.mjs +11 -0
  24. package/dist/{node/codecs/ber/decoders/decodeUTCTime.d.ts → codecs/ber/decoders/decodeUTCTime.d.mts} +1 -1
  25. package/dist/codecs/ber/decoders/decodeUTCTime.mjs +45 -0
  26. package/dist/{node/codecs/ber/encoders/encodeGeneralString.d.ts → codecs/ber/encoders/encodeGeneralString.d.mts} +1 -1
  27. package/dist/codecs/ber/encoders/encodeGeneralString.mjs +13 -0
  28. package/dist/{node/codecs/ber/encoders/encodeGraphicString.d.ts → codecs/ber/encoders/encodeGraphicString.d.mts} +1 -1
  29. package/dist/codecs/ber/encoders/encodeGraphicString.mjs +13 -0
  30. package/dist/{node/codecs/ber/encoders/encodeNumericString.d.ts → codecs/ber/encoders/encodeNumericString.d.mts} +1 -1
  31. package/dist/codecs/ber/encoders/encodeNumericString.mjs +13 -0
  32. package/dist/{node/codecs/ber/encoders/encodeObjectDescriptor.d.ts → codecs/ber/encoders/encodeObjectDescriptor.d.mts} +1 -1
  33. package/dist/codecs/ber/encoders/encodeObjectDescriptor.mjs +13 -0
  34. package/dist/{node/codecs/ber/encoders/encodePrintableString.d.ts → codecs/ber/encoders/encodePrintableString.d.mts} +1 -1
  35. package/dist/codecs/ber/encoders/encodePrintableString.mjs +14 -0
  36. package/dist/{node/codecs/ber/encoders/encodeVisibleString.d.ts → codecs/ber/encoders/encodeVisibleString.d.mts} +1 -1
  37. package/dist/codecs/ber/encoders/encodeVisibleString.mjs +13 -0
  38. package/dist/{node/codecs/ber.d.ts → codecs/ber.d.mts} +5 -5
  39. package/dist/{node/codecs/ber.js → codecs/ber.mjs} +142 -180
  40. package/dist/codecs/cer/decoders/decodeSequence.d.mts +3 -0
  41. package/dist/codecs/cer/decoders/decodeSequence.mjs +14 -0
  42. package/dist/{node/codecs/cer.d.ts → codecs/cer.d.mts} +5 -5
  43. package/dist/{node/codecs/cer.js → codecs/cer.mjs} +146 -184
  44. package/dist/{node/codecs/coer/decoders/decodeBoolean.d.ts → codecs/coer/decoders/decodeBoolean.d.mts} +1 -1
  45. package/dist/codecs/coer/decoders/decodeBoolean.mjs +10 -0
  46. package/dist/{node/codecs/der/decoders/decodeBitString.d.ts → codecs/der/decoders/decodeBitString.d.mts} +1 -1
  47. package/dist/codecs/der/decoders/decodeBitString.mjs +23 -0
  48. package/dist/{node/codecs/der/decoders/decodeBoolean.d.ts → codecs/der/decoders/decodeBoolean.d.mts} +1 -1
  49. package/dist/codecs/der/decoders/decodeBoolean.mjs +10 -0
  50. package/dist/{node/codecs/der/decoders/decodeDuration.d.ts → codecs/der/decoders/decodeDuration.d.mts} +1 -1
  51. package/dist/{node/codecs/der/decoders/decodeDuration.js → codecs/der/decoders/decodeDuration.mjs} +9 -48
  52. package/dist/{node/codecs/der/decoders/decodeGeneralizedTime.d.ts → codecs/der/decoders/decodeGeneralizedTime.d.mts} +1 -1
  53. package/dist/codecs/der/decoders/decodeGeneralizedTime.mjs +42 -0
  54. package/dist/{node/codecs/der/decoders/decodeReal.d.ts → codecs/der/decoders/decodeReal.d.mts} +1 -1
  55. package/dist/codecs/der/decoders/decodeReal.mjs +95 -0
  56. package/dist/codecs/der/decoders/decodeSequence.d.mts +3 -0
  57. package/dist/codecs/der/decoders/decodeSequence.mjs +14 -0
  58. package/dist/{node/codecs/der/decoders/decodeUTCTime.d.ts → codecs/der/decoders/decodeUTCTime.d.mts} +1 -1
  59. package/dist/codecs/der/decoders/decodeUTCTime.mjs +24 -0
  60. package/dist/{node/codecs/der.d.ts → codecs/der.d.mts} +5 -5
  61. package/dist/{node/codecs/der.js → codecs/der.mjs} +138 -176
  62. package/dist/{node/codecs/x690/decoders/decodeCharacterString.d.ts → codecs/x690/decoders/decodeCharacterString.d.mts} +1 -1
  63. package/dist/codecs/x690/decoders/decodeCharacterString.mjs +12 -0
  64. package/dist/{node/codecs/x690/decoders/decodeDate.d.ts → codecs/x690/decoders/decodeDate.d.mts} +1 -1
  65. package/dist/codecs/x690/decoders/decodeDate.mjs +10 -0
  66. package/dist/{node/codecs/x690/decoders/decodeDateTime.d.ts → codecs/x690/decoders/decodeDateTime.d.mts} +1 -1
  67. package/dist/codecs/x690/decoders/decodeDateTime.mjs +13 -0
  68. package/dist/{node/codecs/x690/decoders/decodeEmbeddedPDV.d.ts → codecs/x690/decoders/decodeEmbeddedPDV.d.mts} +1 -1
  69. package/dist/codecs/x690/decoders/decodeEmbeddedPDV.mjs +8 -0
  70. package/dist/{node/codecs/x690/decoders/decodeExternal.d.ts → codecs/x690/decoders/decodeExternal.d.mts} +1 -1
  71. package/dist/codecs/x690/decoders/decodeExternal.mjs +39 -0
  72. package/dist/{node/codecs/x690/decoders/decodeGeneralString.d.ts → codecs/x690/decoders/decodeGeneralString.d.mts} +1 -1
  73. package/dist/codecs/x690/decoders/decodeGeneralString.mjs +12 -0
  74. package/dist/{node/codecs/x690/decoders/decodeGraphicString.d.ts → codecs/x690/decoders/decodeGraphicString.d.mts} +1 -1
  75. package/dist/codecs/x690/decoders/decodeGraphicString.mjs +12 -0
  76. package/dist/{node/codecs/x690/decoders/decodeInteger.d.ts → codecs/x690/decoders/decodeInteger.d.mts} +1 -1
  77. package/dist/codecs/x690/decoders/decodeInteger.mjs +16 -0
  78. package/dist/{node/codecs/x690/decoders/decodeNumericString.d.ts → codecs/x690/decoders/decodeNumericString.d.mts} +1 -1
  79. package/dist/codecs/x690/decoders/decodeNumericString.mjs +12 -0
  80. package/dist/{node/codecs/x690/decoders/decodeOIDIRI.d.ts → codecs/x690/decoders/decodeOIDIRI.d.mts} +1 -1
  81. package/dist/codecs/x690/decoders/decodeOIDIRI.mjs +4 -0
  82. package/dist/{node/codecs/x690/decoders/decodeObjectDescriptor.d.ts → codecs/x690/decoders/decodeObjectDescriptor.d.mts} +1 -1
  83. package/dist/codecs/x690/decoders/decodeObjectDescriptor.mjs +12 -0
  84. package/dist/{node/codecs/x690/decoders/decodeObjectIdentifier.d.ts → codecs/x690/decoders/decodeObjectIdentifier.d.mts} +1 -1
  85. package/dist/codecs/x690/decoders/decodeObjectIdentifier.mjs +46 -0
  86. package/dist/{node/codecs/x690/decoders/decodePrintableString.d.ts → codecs/x690/decoders/decodePrintableString.d.mts} +1 -1
  87. package/dist/codecs/x690/decoders/decodePrintableString.mjs +13 -0
  88. package/dist/{node/codecs/x690/decoders/decodeRelativeOIDIRI.d.ts → codecs/x690/decoders/decodeRelativeOIDIRI.d.mts} +1 -1
  89. package/dist/codecs/x690/decoders/decodeRelativeOIDIRI.mjs +4 -0
  90. package/dist/{node/codecs/x690/decoders/decodeRelativeObjectIdentifier.d.ts → codecs/x690/decoders/decodeRelativeObjectIdentifier.d.mts} +1 -1
  91. package/dist/codecs/x690/decoders/decodeRelativeObjectIdentifier.mjs +24 -0
  92. package/dist/{node/codecs/x690/decoders/decodeTime.d.ts → codecs/x690/decoders/decodeTime.d.mts} +1 -1
  93. package/dist/codecs/x690/decoders/decodeTime.mjs +4 -0
  94. package/dist/{node/codecs/x690/decoders/decodeTimeOfDay.d.ts → codecs/x690/decoders/decodeTimeOfDay.d.mts} +1 -1
  95. package/dist/codecs/x690/decoders/decodeTimeOfDay.mjs +14 -0
  96. package/dist/{node/codecs/x690/decoders/decodeVisibleString.d.ts → codecs/x690/decoders/decodeVisibleString.d.mts} +1 -1
  97. package/dist/codecs/x690/decoders/decodeVisibleString.mjs +12 -0
  98. package/dist/{node/codecs/x690/encoders/encodeBitString.d.ts → codecs/x690/encoders/encodeBitString.d.mts} +1 -1
  99. package/dist/codecs/x690/encoders/encodeBitString.mjs +13 -0
  100. package/dist/{node/codecs/x690/encoders/encodeBoolean.d.ts → codecs/x690/encoders/encodeBoolean.d.mts} +1 -1
  101. package/dist/codecs/x690/encoders/encodeBoolean.mjs +3 -0
  102. package/dist/{node/codecs/x690/encoders/encodeCharacterString.d.ts → codecs/x690/encoders/encodeCharacterString.d.mts} +1 -1
  103. package/dist/codecs/x690/encoders/encodeCharacterString.mjs +9 -0
  104. package/dist/{node/codecs/x690/encoders/encodeDate.d.ts → codecs/x690/encoders/encodeDate.d.mts} +1 -1
  105. package/dist/codecs/x690/encoders/encodeDate.mjs +11 -0
  106. package/dist/{node/codecs/x690/encoders/encodeDateTime.d.ts → codecs/x690/encoders/encodeDateTime.d.mts} +1 -1
  107. package/dist/codecs/x690/encoders/encodeDateTime.mjs +14 -0
  108. package/dist/{node/codecs/x690/encoders/encodeDuration.d.ts → codecs/x690/encoders/encodeDuration.d.mts} +1 -1
  109. package/dist/{node/codecs/x690/encoders/encodeDuration.js → codecs/x690/encoders/encodeDuration.mjs} +5 -11
  110. package/dist/{node/codecs/x690/encoders/encodeEmbeddedPDV.d.ts → codecs/x690/encoders/encodeEmbeddedPDV.d.mts} +1 -1
  111. package/dist/codecs/x690/encoders/encodeEmbeddedPDV.mjs +9 -0
  112. package/dist/{node/codecs/x690/encoders/encodeExternal.d.ts → codecs/x690/encoders/encodeExternal.d.mts} +1 -1
  113. package/dist/codecs/x690/encoders/encodeExternal.mjs +36 -0
  114. package/dist/{node/codecs/x690/encoders/encodeGeneralizedTime.d.ts → codecs/x690/encoders/encodeGeneralizedTime.d.mts} +1 -1
  115. package/dist/{node/codecs/x690/encoders/encodeGeneralizedTime.js → codecs/x690/encoders/encodeGeneralizedTime.mjs} +3 -9
  116. package/dist/{node/codecs/x690/encoders/encodeInteger.d.ts → codecs/x690/encoders/encodeInteger.d.mts} +1 -1
  117. package/dist/codecs/x690/encoders/encodeInteger.mjs +4 -0
  118. package/dist/{node/codecs/x690/encoders/encodeOIDIRI.d.ts → codecs/x690/encoders/encodeOIDIRI.d.mts} +1 -1
  119. package/dist/codecs/x690/encoders/encodeOIDIRI.mjs +4 -0
  120. package/dist/{node/codecs/x690/encoders/encodeObjectIdentifier.d.ts → codecs/x690/encoders/encodeObjectIdentifier.d.mts} +1 -1
  121. package/dist/{node/codecs/x690/encoders/encodeObjectIdentifier.js → codecs/x690/encoders/encodeObjectIdentifier.mjs} +3 -6
  122. package/dist/{node/codecs/x690/encoders/encodeReal.d.ts → codecs/x690/encoders/encodeReal.d.mts} +1 -1
  123. package/dist/codecs/x690/encoders/encodeReal.mjs +4 -0
  124. package/dist/{node/codecs/x690/encoders/encodeRelativeOIDIRI.d.ts → codecs/x690/encoders/encodeRelativeOIDIRI.d.mts} +1 -1
  125. package/dist/codecs/x690/encoders/encodeRelativeOIDIRI.mjs +4 -0
  126. package/dist/{node/codecs/x690/encoders/encodeRelativeObjectIdentifier.d.ts → codecs/x690/encoders/encodeRelativeObjectIdentifier.d.mts} +1 -1
  127. package/dist/{node/codecs/x690/encoders/encodeRelativeObjectIdentifier.js → codecs/x690/encoders/encodeRelativeObjectIdentifier.mjs} +3 -6
  128. package/dist/codecs/x690/encoders/encodeSequence.d.mts +3 -0
  129. package/dist/codecs/x690/encoders/encodeSequence.mjs +4 -0
  130. package/dist/{node/codecs/x690/encoders/encodeTime.d.ts → codecs/x690/encoders/encodeTime.d.mts} +1 -1
  131. package/dist/codecs/x690/encoders/encodeTime.mjs +4 -0
  132. package/dist/{node/codecs/x690/encoders/encodeTimeOfDay.d.ts → codecs/x690/encoders/encodeTimeOfDay.d.mts} +1 -1
  133. package/dist/codecs/x690/encoders/encodeTimeOfDay.mjs +4 -0
  134. package/dist/{node/codecs/x690/encoders/encodeUTCTime.d.ts → codecs/x690/encoders/encodeUTCTime.d.mts} +1 -1
  135. package/dist/{node/codecs/x690/encoders/encodeUTCTime.js → codecs/x690/encoders/encodeUTCTime.mjs} +3 -9
  136. package/dist/{node/errors.d.ts → errors.d.mts} +1 -1
  137. package/dist/{node/errors.js → errors.mjs} +26 -23
  138. package/dist/{node/functional.d.ts → functional.d.mts} +2 -2
  139. package/dist/functional.mjs +766 -0
  140. package/dist/index.d.mts +16 -0
  141. package/dist/index.mjs +15 -0
  142. package/dist/interfaces/Byteable.d.mts +4 -0
  143. package/dist/interfaces/Byteable.mjs +1 -0
  144. package/dist/interfaces/CharacterValidationFunction.mjs +1 -0
  145. package/dist/interfaces/Debyteable.mjs +1 -0
  146. package/dist/{node/interfaces/Deelementable.d.ts → interfaces/Deelementable.d.mts} +1 -1
  147. package/dist/interfaces/Deelementable.mjs +1 -0
  148. package/dist/interfaces/Destringable.mjs +1 -0
  149. package/dist/interfaces/Elementable.d.mts +4 -0
  150. package/dist/interfaces/Elementable.mjs +1 -0
  151. package/dist/interfaces/Enbyteable.mjs +1 -0
  152. package/dist/{node/interfaces/Enelementable.d.ts → interfaces/Enelementable.d.mts} +1 -1
  153. package/dist/interfaces/Enelementable.mjs +1 -0
  154. package/dist/interfaces/Enstringable.mjs +1 -0
  155. package/dist/{node/interfaces/Identified.d.ts → interfaces/Identified.d.mts} +1 -1
  156. package/dist/interfaces/Identified.mjs +1 -0
  157. package/dist/interfaces/Long.mjs +1 -0
  158. package/dist/interfaces/Named.mjs +1 -0
  159. package/dist/interfaces/Stringable.d.mts +4 -0
  160. package/dist/interfaces/Stringable.mjs +1 -0
  161. package/dist/interfaces/index.d.mts +12 -0
  162. package/dist/interfaces/index.mjs +1 -0
  163. package/dist/{node/macros.d.ts → macros.d.mts} +5 -5
  164. package/dist/macros.mjs +14 -0
  165. package/dist/{node/types/CharacterString.d.ts → types/CharacterString.d.mts} +1 -1
  166. package/dist/{node/types/CharacterString.js → types/CharacterString.mjs} +3 -4
  167. package/dist/{node/types/EmbeddedPDV.d.ts → types/EmbeddedPDV.d.mts} +1 -1
  168. package/dist/{node/types/EmbeddedPDV.js → types/EmbeddedPDV.mjs} +3 -4
  169. package/dist/{node/types/External.d.ts → types/External.d.mts} +2 -2
  170. package/dist/{node/types/External.js → types/External.mjs} +7 -9
  171. package/dist/{node/types/ObjectIdentifier.js → types/ObjectIdentifier.mjs} +6 -11
  172. package/dist/{node/types/TypeIdentifier.d.ts → types/TypeIdentifier.d.mts} +2 -2
  173. package/dist/types/TypeIdentifier.mjs +8 -0
  174. package/dist/types/index.d.mts +18 -0
  175. package/dist/types/index.mjs +18 -0
  176. package/dist/{node/types/time/DATE-ENCODING.d.ts → types/time/DATE-ENCODING.d.mts} +1 -1
  177. package/dist/types/time/DATE-ENCODING.mjs +13 -0
  178. package/dist/{node/types/time/DURATION-EQUIVALENT.d.ts → types/time/DURATION-EQUIVALENT.d.mts} +1 -1
  179. package/dist/types/time/DURATION-EQUIVALENT.mjs +93 -0
  180. package/dist/{node/types/time/DURATION-INTERVAL-ENCODING.d.ts → types/time/DURATION-INTERVAL-ENCODING.d.mts} +1 -1
  181. package/dist/types/time/DURATION-INTERVAL-ENCODING.mjs +50 -0
  182. package/dist/{node/types/time/HOURS-DIFF-ENCODING.d.ts → types/time/HOURS-DIFF-ENCODING.d.mts} +1 -1
  183. package/dist/types/time/HOURS-DIFF-ENCODING.mjs +11 -0
  184. package/dist/{node/types/time/HOURS-ENCODING.d.ts → types/time/HOURS-ENCODING.d.mts} +1 -1
  185. package/dist/types/time/HOURS-ENCODING.mjs +8 -0
  186. package/dist/{node/types/time/HOURS-MINUTES-DIFF-ENCODING.d.ts → types/time/HOURS-MINUTES-DIFF-ENCODING.d.mts} +1 -1
  187. package/dist/types/time/HOURS-MINUTES-DIFF-ENCODING.mjs +14 -0
  188. package/dist/{node/types/time/HOURS-MINUTES-ENCODING.d.ts → types/time/HOURS-MINUTES-ENCODING.d.mts} +1 -1
  189. package/dist/types/time/HOURS-MINUTES-ENCODING.mjs +11 -0
  190. package/dist/{node/types/time/TIME-OF-DAY-DIFF-ENCODING.d.ts → types/time/TIME-OF-DAY-DIFF-ENCODING.d.mts} +1 -1
  191. package/dist/types/time/TIME-OF-DAY-DIFF-ENCODING.mjs +17 -0
  192. package/dist/{node/types/time/TIME-OF-DAY-ENCODING.d.ts → types/time/TIME-OF-DAY-ENCODING.d.mts} +1 -1
  193. package/dist/types/time/TIME-OF-DAY-ENCODING.mjs +14 -0
  194. package/dist/{node/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.d.ts → types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.d.mts} +1 -1
  195. package/dist/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.mjs +20 -0
  196. package/dist/{node/types/time/TIME-OF-DAY-FRACTION-ENCODING.d.ts → types/time/TIME-OF-DAY-FRACTION-ENCODING.d.mts} +1 -1
  197. package/dist/types/time/TIME-OF-DAY-FRACTION-ENCODING.mjs +17 -0
  198. package/dist/{node/types/time/YEAR-ENCODING.d.ts → types/time/YEAR-ENCODING.d.mts} +1 -1
  199. package/dist/types/time/YEAR-ENCODING.mjs +6 -0
  200. package/dist/{node/types/time/YEAR-MONTH-ENCODING.d.ts → types/time/YEAR-MONTH-ENCODING.d.mts} +1 -1
  201. package/dist/types/time/YEAR-MONTH-ENCODING.mjs +10 -0
  202. package/dist/utils/base128Length.mjs +3 -0
  203. package/dist/{node/utils/bigint.d.ts → utils/bigint.d.mts} +1 -1
  204. package/dist/{node/utils/bigint.js → utils/bigint.mjs} +21 -25
  205. package/dist/{node/utils/compareSetOfElementsCanonically.d.ts → utils/compareSetOfElementsCanonically.d.mts} +1 -1
  206. package/dist/{node/utils/compareSetOfElementsCanonically.js → utils/compareSetOfElementsCanonically.mjs} +1 -4
  207. package/dist/utils/convertBytesToText.mjs +14 -0
  208. package/dist/utils/convertTextToBytes.mjs +11 -0
  209. package/dist/utils/decodeIEEE754DoublePrecisionFloat.mjs +3 -0
  210. package/dist/utils/decodeIEEE754SinglePrecisionFloat.mjs +3 -0
  211. package/dist/utils/decodeSignedBigEndianInteger.mjs +13 -0
  212. package/dist/utils/decodeUnsignedBigEndianInteger.mjs +13 -0
  213. package/dist/utils/decodeX690RealNumber.mjs +108 -0
  214. package/dist/utils/dissectFloat.mjs +13 -0
  215. package/dist/utils/encodeIEEE754DoublePrecisionFloat.mjs +3 -0
  216. package/dist/utils/encodeIEEE754SinglePrecisionFloat.mjs +3 -0
  217. package/dist/utils/encodeSignedBigEndianInteger.mjs +36 -0
  218. package/dist/utils/encodeUnsignedBigEndianInteger.mjs +23 -0
  219. package/dist/utils/encodeX690Base10RealNumber.mjs +21 -0
  220. package/dist/utils/encodeX690BinaryRealNumber.mjs +43 -0
  221. package/dist/utils/getBitFromBase128.mjs +4 -0
  222. package/dist/utils/getBitFromBase256.mjs +3 -0
  223. package/dist/{node/utils/index.d.ts → utils/index.d.mts} +22 -22
  224. package/dist/utils/index.mjs +22 -0
  225. package/dist/{node/utils/isInCanonicalOrder.d.ts → utils/isInCanonicalOrder.d.mts} +1 -1
  226. package/dist/{node/utils/isInCanonicalOrder.js → utils/isInCanonicalOrder.mjs} +4 -7
  227. package/dist/{node/utils/isUniquelyTagged.d.ts → utils/isUniquelyTagged.d.mts} +1 -1
  228. package/dist/{node/utils/isUniquelyTagged.js → utils/isUniquelyTagged.mjs} +1 -4
  229. package/dist/{node/utils/packBits.d.ts → utils/packBits.d.mts} +1 -1
  230. package/dist/{node/utils/packBits.js → utils/packBits.mjs} +3 -6
  231. package/dist/{node/utils/setBitInBase128.js → utils/setBitInBase128.mjs} +1 -4
  232. package/dist/{node/utils/setBitInBase256.js → utils/setBitInBase256.mjs} +1 -4
  233. package/dist/{node/utils/sortCanonically.d.ts → utils/sortCanonically.d.mts} +1 -1
  234. package/dist/utils/sortCanonically.mjs +11 -0
  235. package/dist/utils/splitOctetsCanonically.mjs +5 -0
  236. package/dist/{node/utils/trimLeadingPaddingBytes.js → utils/trimLeadingPaddingBytes.mjs} +1 -4
  237. package/dist/{node/utils/unpackBits.d.ts → utils/unpackBits.d.mts} +1 -1
  238. package/dist/{node/utils/unpackBits.js → utils/unpackBits.mjs} +3 -6
  239. package/dist/{node/validators/datetimeComponentValidator.d.ts → validators/datetimeComponentValidator.d.mts} +1 -1
  240. package/dist/validators/datetimeComponentValidator.mjs +14 -0
  241. package/dist/{node/validators/index.d.ts → validators/index.d.mts} +6 -6
  242. package/dist/validators/index.mjs +6 -0
  243. package/dist/validators/isGeneralCharacter.mjs +3 -0
  244. package/dist/validators/isGraphicCharacter.mjs +3 -0
  245. package/dist/validators/isNumericCharacter.mjs +3 -0
  246. package/dist/validators/isObjectDescriptorCharacter.mjs +4 -0
  247. package/dist/{node/validators/isPrintableCharacter.js → validators/isPrintableCharacter.mjs} +1 -4
  248. package/dist/validators/isVisibleCharacter.mjs +4 -0
  249. package/dist/{node/validators/validateConstruction.d.ts → validators/validateConstruction.d.mts} +2 -2
  250. package/dist/validators/validateConstruction.mjs +37 -0
  251. package/dist/validators/validateDate.mjs +49 -0
  252. package/dist/validators/validateDateTime.mjs +6 -0
  253. package/dist/validators/validateTime.mjs +21 -0
  254. package/dist/{node/values.js → values.mjs} +36 -39
  255. package/dist/{node/x690.d.ts → x690.d.mts} +2 -2
  256. package/dist/x690.mjs +95 -0
  257. package/package.json +8 -7
  258. package/dist/node/ConstructedElementSpecification.js +0 -2
  259. package/dist/node/classes/ABSTRACT-SYNTAX.js +0 -2
  260. package/dist/node/classes/TYPE-IDENTIFIER.js +0 -2
  261. package/dist/node/classes/index.d.ts +0 -2
  262. package/dist/node/classes/index.js +0 -2
  263. package/dist/node/codecs/ber/decoders/decodeBitString.js +0 -55
  264. package/dist/node/codecs/ber/decoders/decodeBoolean.js +0 -43
  265. package/dist/node/codecs/ber/decoders/decodeReal.js +0 -147
  266. package/dist/node/codecs/ber/decoders/decodeSequence.d.ts +0 -3
  267. package/dist/node/codecs/ber/decoders/decodeSequence.js +0 -17
  268. package/dist/node/codecs/ber/decoders/decodeUTCTime.js +0 -84
  269. package/dist/node/codecs/ber/encoders/encodeGeneralString.js +0 -19
  270. package/dist/node/codecs/ber/encoders/encodeGraphicString.js +0 -19
  271. package/dist/node/codecs/ber/encoders/encodeNumericString.js +0 -19
  272. package/dist/node/codecs/ber/encoders/encodeObjectDescriptor.js +0 -19
  273. package/dist/node/codecs/ber/encoders/encodePrintableString.js +0 -20
  274. package/dist/node/codecs/ber/encoders/encodeVisibleString.js +0 -19
  275. package/dist/node/codecs/cer/decoders/decodeSequence.d.ts +0 -3
  276. package/dist/node/codecs/cer/decoders/decodeSequence.js +0 -20
  277. package/dist/node/codecs/coer/decoders/decodeBoolean.js +0 -46
  278. package/dist/node/codecs/der/decoders/decodeBitString.js +0 -59
  279. package/dist/node/codecs/der/decoders/decodeBoolean.js +0 -46
  280. package/dist/node/codecs/der/decoders/decodeGeneralizedTime.js +0 -81
  281. package/dist/node/codecs/der/decoders/decodeReal.js +0 -134
  282. package/dist/node/codecs/der/decoders/decodeSequence.d.ts +0 -3
  283. package/dist/node/codecs/der/decoders/decodeSequence.js +0 -20
  284. package/dist/node/codecs/der/decoders/decodeUTCTime.js +0 -63
  285. package/dist/node/codecs/oer/decoders/decodeBoolean.d.ts +0 -2
  286. package/dist/node/codecs/oer/decoders/decodeBoolean.js +0 -43
  287. package/dist/node/codecs/x690/decoders/decodeCharacterString.js +0 -18
  288. package/dist/node/codecs/x690/decoders/decodeDate.js +0 -16
  289. package/dist/node/codecs/x690/decoders/decodeDateTime.js +0 -19
  290. package/dist/node/codecs/x690/decoders/decodeEmbeddedPDV.js +0 -14
  291. package/dist/node/codecs/x690/decoders/decodeExternal.js +0 -78
  292. package/dist/node/codecs/x690/decoders/decodeGeneralString.js +0 -18
  293. package/dist/node/codecs/x690/decoders/decodeGraphicString.js +0 -18
  294. package/dist/node/codecs/x690/decoders/decodeInteger.js +0 -52
  295. package/dist/node/codecs/x690/decoders/decodeNumericString.js +0 -18
  296. package/dist/node/codecs/x690/decoders/decodeOIDIRI.js +0 -10
  297. package/dist/node/codecs/x690/decoders/decodeObjectDescriptor.js +0 -18
  298. package/dist/node/codecs/x690/decoders/decodeObjectIdentifier.js +0 -85
  299. package/dist/node/codecs/x690/decoders/decodePrintableString.js +0 -19
  300. package/dist/node/codecs/x690/decoders/decodeRelativeOIDIRI.js +0 -10
  301. package/dist/node/codecs/x690/decoders/decodeRelativeObjectIdentifier.js +0 -60
  302. package/dist/node/codecs/x690/decoders/decodeTime.js +0 -10
  303. package/dist/node/codecs/x690/decoders/decodeTimeOfDay.js +0 -20
  304. package/dist/node/codecs/x690/decoders/decodeVisibleString.js +0 -18
  305. package/dist/node/codecs/x690/encoders/encodeBitString.js +0 -19
  306. package/dist/node/codecs/x690/encoders/encodeBoolean.js +0 -6
  307. package/dist/node/codecs/x690/encoders/encodeCharacterString.js +0 -15
  308. package/dist/node/codecs/x690/encoders/encodeDate.js +0 -50
  309. package/dist/node/codecs/x690/encoders/encodeDateTime.js +0 -53
  310. package/dist/node/codecs/x690/encoders/encodeEmbeddedPDV.js +0 -15
  311. package/dist/node/codecs/x690/encoders/encodeExternal.js +0 -42
  312. package/dist/node/codecs/x690/encoders/encodeInteger.js +0 -7
  313. package/dist/node/codecs/x690/encoders/encodeOIDIRI.js +0 -10
  314. package/dist/node/codecs/x690/encoders/encodeReal.js +0 -10
  315. package/dist/node/codecs/x690/encoders/encodeRelativeOIDIRI.js +0 -10
  316. package/dist/node/codecs/x690/encoders/encodeSequence.d.ts +0 -3
  317. package/dist/node/codecs/x690/encoders/encodeSequence.js +0 -7
  318. package/dist/node/codecs/x690/encoders/encodeTime.js +0 -10
  319. package/dist/node/codecs/x690/encoders/encodeTimeOfDay.js +0 -10
  320. package/dist/node/codecs/x696/encoders/encodeBoolean.d.ts +0 -2
  321. package/dist/node/codecs/x696/encoders/encodeBoolean.js +0 -6
  322. package/dist/node/functional.js +0 -880
  323. package/dist/node/index.d.ts +0 -16
  324. package/dist/node/index.js +0 -42
  325. package/dist/node/interfaces/Byteable.d.ts +0 -4
  326. package/dist/node/interfaces/Byteable.js +0 -2
  327. package/dist/node/interfaces/CharacterValidationFunction.js +0 -2
  328. package/dist/node/interfaces/Debyteable.js +0 -2
  329. package/dist/node/interfaces/Deelementable.js +0 -2
  330. package/dist/node/interfaces/Destringable.js +0 -2
  331. package/dist/node/interfaces/Elementable.d.ts +0 -4
  332. package/dist/node/interfaces/Elementable.js +0 -2
  333. package/dist/node/interfaces/Enbyteable.js +0 -2
  334. package/dist/node/interfaces/Enelementable.js +0 -2
  335. package/dist/node/interfaces/Enstringable.js +0 -2
  336. package/dist/node/interfaces/Identified.js +0 -2
  337. package/dist/node/interfaces/Long.js +0 -2
  338. package/dist/node/interfaces/Named.js +0 -2
  339. package/dist/node/interfaces/Stringable.d.ts +0 -4
  340. package/dist/node/interfaces/Stringable.js +0 -2
  341. package/dist/node/interfaces/index.d.ts +0 -12
  342. package/dist/node/interfaces/index.js +0 -2
  343. package/dist/node/macros.js +0 -21
  344. package/dist/node/types/TypeIdentifier.js +0 -9
  345. package/dist/node/types/index.d.ts +0 -18
  346. package/dist/node/types/index.js +0 -42
  347. package/dist/node/types/time/DATE-ENCODING.js +0 -16
  348. package/dist/node/types/time/DURATION-EQUIVALENT.js +0 -124
  349. package/dist/node/types/time/DURATION-INTERVAL-ENCODING.js +0 -81
  350. package/dist/node/types/time/HOURS-DIFF-ENCODING.js +0 -15
  351. package/dist/node/types/time/HOURS-ENCODING.js +0 -13
  352. package/dist/node/types/time/HOURS-MINUTES-DIFF-ENCODING.js +0 -17
  353. package/dist/node/types/time/HOURS-MINUTES-ENCODING.js +0 -15
  354. package/dist/node/types/time/TIME-OF-DAY-DIFF-ENCODING.js +0 -19
  355. package/dist/node/types/time/TIME-OF-DAY-ENCODING.js +0 -17
  356. package/dist/node/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.js +0 -21
  357. package/dist/node/types/time/TIME-OF-DAY-FRACTION-ENCODING.js +0 -19
  358. package/dist/node/types/time/YEAR-ENCODING.js +0 -8
  359. package/dist/node/types/time/YEAR-MONTH-ENCODING.js +0 -14
  360. package/dist/node/utils/base128Length.js +0 -6
  361. package/dist/node/utils/convertBytesToText.js +0 -17
  362. package/dist/node/utils/convertTextToBytes.js +0 -14
  363. package/dist/node/utils/decodeIEEE754DoublePrecisionFloat.js +0 -6
  364. package/dist/node/utils/decodeIEEE754SinglePrecisionFloat.js +0 -6
  365. package/dist/node/utils/decodeSignedBigEndianInteger.js +0 -49
  366. package/dist/node/utils/decodeUnsignedBigEndianInteger.js +0 -49
  367. package/dist/node/utils/decodeX690RealNumber.js +0 -147
  368. package/dist/node/utils/dissectFloat.js +0 -16
  369. package/dist/node/utils/encodeIEEE754DoublePrecisionFloat.js +0 -6
  370. package/dist/node/utils/encodeIEEE754SinglePrecisionFloat.js +0 -6
  371. package/dist/node/utils/encodeSignedBigEndianInteger.js +0 -72
  372. package/dist/node/utils/encodeUnsignedBigEndianInteger.js +0 -59
  373. package/dist/node/utils/encodeX690Base10RealNumber.js +0 -27
  374. package/dist/node/utils/encodeX690BinaryRealNumber.js +0 -82
  375. package/dist/node/utils/getBitFromBase128.js +0 -7
  376. package/dist/node/utils/getBitFromBase256.js +0 -6
  377. package/dist/node/utils/index.js +0 -50
  378. package/dist/node/utils/sortCanonically.js +0 -14
  379. package/dist/node/utils/splitOctetsCanonically.js +0 -8
  380. package/dist/node/validators/datetimeComponentValidator.js +0 -50
  381. package/dist/node/validators/index.js +0 -18
  382. package/dist/node/validators/isGeneralCharacter.js +0 -6
  383. package/dist/node/validators/isGraphicCharacter.js +0 -6
  384. package/dist/node/validators/isNumericCharacter.js +0 -6
  385. package/dist/node/validators/isObjectDescriptorCharacter.js +0 -10
  386. package/dist/node/validators/isVisibleCharacter.js +0 -10
  387. package/dist/node/validators/validateConstruction.js +0 -73
  388. package/dist/node/validators/validateDate.js +0 -85
  389. package/dist/node/validators/validateDateTime.js +0 -12
  390. package/dist/node/validators/validateTime.js +0 -57
  391. package/dist/node/x690.js +0 -134
  392. /package/dist/{node/interfaces/CharacterValidationFunction.d.ts → interfaces/CharacterValidationFunction.d.mts} +0 -0
  393. /package/dist/{node/interfaces/Debyteable.d.ts → interfaces/Debyteable.d.mts} +0 -0
  394. /package/dist/{node/interfaces/Destringable.d.ts → interfaces/Destringable.d.mts} +0 -0
  395. /package/dist/{node/interfaces/Enbyteable.d.ts → interfaces/Enbyteable.d.mts} +0 -0
  396. /package/dist/{node/interfaces/Enstringable.d.ts → interfaces/Enstringable.d.mts} +0 -0
  397. /package/dist/{node/interfaces/Long.d.ts → interfaces/Long.d.mts} +0 -0
  398. /package/dist/{node/interfaces/Named.d.ts → interfaces/Named.d.mts} +0 -0
  399. /package/dist/{node/types/ObjectIdentifier.d.ts → types/ObjectIdentifier.d.mts} +0 -0
  400. /package/dist/{node/utils/base128Length.d.ts → utils/base128Length.d.mts} +0 -0
  401. /package/dist/{node/utils/convertBytesToText.d.ts → utils/convertBytesToText.d.mts} +0 -0
  402. /package/dist/{node/utils/convertTextToBytes.d.ts → utils/convertTextToBytes.d.mts} +0 -0
  403. /package/dist/{node/utils/decodeIEEE754DoublePrecisionFloat.d.ts → utils/decodeIEEE754DoublePrecisionFloat.d.mts} +0 -0
  404. /package/dist/{node/utils/decodeIEEE754SinglePrecisionFloat.d.ts → utils/decodeIEEE754SinglePrecisionFloat.d.mts} +0 -0
  405. /package/dist/{node/utils/decodeSignedBigEndianInteger.d.ts → utils/decodeSignedBigEndianInteger.d.mts} +0 -0
  406. /package/dist/{node/utils/decodeUnsignedBigEndianInteger.d.ts → utils/decodeUnsignedBigEndianInteger.d.mts} +0 -0
  407. /package/dist/{node/utils/decodeX690RealNumber.d.ts → utils/decodeX690RealNumber.d.mts} +0 -0
  408. /package/dist/{node/utils/dissectFloat.d.ts → utils/dissectFloat.d.mts} +0 -0
  409. /package/dist/{node/utils/encodeIEEE754DoublePrecisionFloat.d.ts → utils/encodeIEEE754DoublePrecisionFloat.d.mts} +0 -0
  410. /package/dist/{node/utils/encodeIEEE754SinglePrecisionFloat.d.ts → utils/encodeIEEE754SinglePrecisionFloat.d.mts} +0 -0
  411. /package/dist/{node/utils/encodeSignedBigEndianInteger.d.ts → utils/encodeSignedBigEndianInteger.d.mts} +0 -0
  412. /package/dist/{node/utils/encodeUnsignedBigEndianInteger.d.ts → utils/encodeUnsignedBigEndianInteger.d.mts} +0 -0
  413. /package/dist/{node/utils/encodeX690Base10RealNumber.d.ts → utils/encodeX690Base10RealNumber.d.mts} +0 -0
  414. /package/dist/{node/utils/encodeX690BinaryRealNumber.d.ts → utils/encodeX690BinaryRealNumber.d.mts} +0 -0
  415. /package/dist/{node/utils/getBitFromBase128.d.ts → utils/getBitFromBase128.d.mts} +0 -0
  416. /package/dist/{node/utils/getBitFromBase256.d.ts → utils/getBitFromBase256.d.mts} +0 -0
  417. /package/dist/{node/utils/setBitInBase128.d.ts → utils/setBitInBase128.d.mts} +0 -0
  418. /package/dist/{node/utils/setBitInBase256.d.ts → utils/setBitInBase256.d.mts} +0 -0
  419. /package/dist/{node/utils/splitOctetsCanonically.d.ts → utils/splitOctetsCanonically.d.mts} +0 -0
  420. /package/dist/{node/utils/trimLeadingPaddingBytes.d.ts → utils/trimLeadingPaddingBytes.d.mts} +0 -0
  421. /package/dist/{node/validators/isGeneralCharacter.d.ts → validators/isGeneralCharacter.d.mts} +0 -0
  422. /package/dist/{node/validators/isGraphicCharacter.d.ts → validators/isGraphicCharacter.d.mts} +0 -0
  423. /package/dist/{node/validators/isNumericCharacter.d.ts → validators/isNumericCharacter.d.mts} +0 -0
  424. /package/dist/{node/validators/isObjectDescriptorCharacter.d.ts → validators/isObjectDescriptorCharacter.d.mts} +0 -0
  425. /package/dist/{node/validators/isPrintableCharacter.d.ts → validators/isPrintableCharacter.d.mts} +0 -0
  426. /package/dist/{node/validators/isVisibleCharacter.d.ts → validators/isVisibleCharacter.d.mts} +0 -0
  427. /package/dist/{node/validators/validateDate.d.ts → validators/validateDate.d.mts} +0 -0
  428. /package/dist/{node/validators/validateDateTime.d.ts → validators/validateDateTime.d.mts} +0 -0
  429. /package/dist/{node/validators/validateTime.d.ts → validators/validateTime.d.mts} +0 -0
  430. /package/dist/{node/values.d.ts → values.d.mts} +0 -0
@@ -0,0 +1,22 @@
1
+ export { default as base128Length } from "./base128Length.mjs";
2
+ export { default as decodeIEEE754DoublePrecisionFloat } from "./decodeIEEE754DoublePrecisionFloat.mjs";
3
+ export { default as decodeIEEE754SinglePrecisionFloat } from "./decodeIEEE754SinglePrecisionFloat.mjs";
4
+ export { default as decodeSignedBigEndianInteger } from "./decodeSignedBigEndianInteger.mjs";
5
+ export { default as decodeUnsignedBigEndianInteger } from "./decodeUnsignedBigEndianInteger.mjs";
6
+ export { default as decodeX690RealNumber } from "./decodeX690RealNumber.mjs";
7
+ export { default as dissectFloat } from "./dissectFloat.mjs";
8
+ export { default as encodeIEEE754DoublePrecisionFloat } from "./encodeIEEE754DoublePrecisionFloat.mjs";
9
+ export { default as encodeIEEE754SinglePrecisionFloat } from "./encodeIEEE754SinglePrecisionFloat.mjs";
10
+ export { default as encodeSignedBigEndianInteger } from "./encodeSignedBigEndianInteger.mjs";
11
+ export { default as encodeUnsignedBigEndianInteger } from "./encodeUnsignedBigEndianInteger.mjs";
12
+ export { default as encodeX690Base10RealNumber } from "./encodeX690Base10RealNumber.mjs";
13
+ export { default as encodeX690BinaryRealNumber } from "./encodeX690BinaryRealNumber.mjs";
14
+ export { default as getBitFromBase128 } from "./getBitFromBase128.mjs";
15
+ export { default as getBitFromBase256 } from "./getBitFromBase256.mjs";
16
+ export { default as isInCanonicalOrder } from "./isInCanonicalOrder.mjs";
17
+ export { default as isUniquelyTagged } from "./isUniquelyTagged.mjs";
18
+ export { default as packBits } from "./packBits.mjs";
19
+ export { default as setBitInBase128 } from "./setBitInBase128.mjs";
20
+ export { default as setBitInBase256 } from "./setBitInBase256.mjs";
21
+ export { default as trimLeadingPaddingBytes } from "./trimLeadingPaddingBytes.mjs";
22
+ export { default as unpackBits } from "./unpackBits.mjs";
@@ -1,2 +1,2 @@
1
- import type ASN1Element from "../asn1";
1
+ import type ASN1Element from "../asn1.mjs";
2
2
  export default function isInCanonicalOrder(elements: ASN1Element[]): boolean;
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = isInCanonicalOrder;
4
- const values_1 = require("../values");
5
- function isInCanonicalOrder(elements) {
1
+ import { CANONICAL_TAG_CLASS_ORDERING } from "../values.mjs";
2
+ export default function isInCanonicalOrder(elements) {
6
3
  let previousTagClass = null;
7
4
  let previousTagNumber = null;
8
5
  return (elements.every((element) => {
9
6
  if (previousTagClass !== null
10
7
  && element.tagClass !== previousTagClass
11
- && values_1.CANONICAL_TAG_CLASS_ORDERING.indexOf(element.tagClass)
12
- <= values_1.CANONICAL_TAG_CLASS_ORDERING.indexOf(previousTagClass))
8
+ && CANONICAL_TAG_CLASS_ORDERING.indexOf(element.tagClass)
9
+ <= CANONICAL_TAG_CLASS_ORDERING.indexOf(previousTagClass))
13
10
  return false;
14
11
  if (element.tagClass !== previousTagClass)
15
12
  previousTagNumber = null;
@@ -1,2 +1,2 @@
1
- import type ASN1Element from "../asn1";
1
+ import type ASN1Element from "../asn1.mjs";
2
2
  export default function isUniquelyTagged(elements: ASN1Element[]): boolean;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = isUniquelyTagged;
4
- function isUniquelyTagged(elements) {
1
+ export default function isUniquelyTagged(elements) {
5
2
  const finds = new Set([]);
6
3
  for (let i = 0; i < elements.length; i++) {
7
4
  const key = ((elements[i].tagClass << 30)
@@ -1,2 +1,2 @@
1
- import { BIT_STRING } from "../macros";
1
+ import { BIT_STRING } from "../macros.mjs";
2
2
  export default function packBits(bits: BIT_STRING): Uint8Array;
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = packBits;
4
- const macros_1 = require("../macros");
5
- function packBits(bits) {
1
+ import { FALSE_BIT } from "../macros.mjs";
2
+ export default function packBits(bits) {
6
3
  const bytesNeeded = Math.ceil(bits.length / 8);
7
4
  const ret = new Uint8Array(bytesNeeded);
8
5
  let byte = -1;
@@ -11,7 +8,7 @@ function packBits(bits) {
11
8
  if (bitMod8 === 0) {
12
9
  byte++;
13
10
  }
14
- if (bits[bit] !== macros_1.FALSE_BIT) {
11
+ if (bits[bit] !== FALSE_BIT) {
15
12
  ret[byte] |= (0x01 << (7 - bitMod8));
16
13
  }
17
14
  }
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = setBit;
4
- function setBit(to, bitIndex, value) {
1
+ export default function setBit(to, bitIndex, value) {
5
2
  const byteIndex = to.length - (Math.floor(bitIndex / 7) + 1);
6
3
  if (value) {
7
4
  to[byteIndex] |= (0x01 << (bitIndex % 7));
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = setBitInBase256;
4
- function setBitInBase256(to, bitIndex, value) {
1
+ export default function setBitInBase256(to, bitIndex, value) {
5
2
  const byteIndex = (to.length - (Math.floor(bitIndex / 8) + 1));
6
3
  if (value) {
7
4
  to[byteIndex] |= (0x01 << (bitIndex % 8));
@@ -1,2 +1,2 @@
1
- import type ASN1Element from "../asn1";
1
+ import type ASN1Element from "../asn1.mjs";
2
2
  export default function sortCanonically(elements: ASN1Element[]): ASN1Element[];
@@ -0,0 +1,11 @@
1
+ import { Buffer } from "node:buffer";
2
+ export default function sortCanonically(elements) {
3
+ return elements.sort((a, b) => {
4
+ const aClassOrder = a.tagClass;
5
+ const bClassOrder = b.tagClass;
6
+ if (aClassOrder !== bClassOrder) {
7
+ return (aClassOrder - bClassOrder);
8
+ }
9
+ return Buffer.compare(a.toBytes(), b.toBytes());
10
+ });
11
+ }
@@ -0,0 +1,5 @@
1
+ export default function* splitOctetsCanonically(value) {
2
+ for (let i = 0; i < value.length; i += 1000) {
3
+ yield value.subarray(i, i + 1000);
4
+ }
5
+ }
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = trimLeadingPaddingBytes;
4
- function trimLeadingPaddingBytes(value) {
1
+ export default function trimLeadingPaddingBytes(value) {
5
2
  if (value.length <= 1) {
6
3
  return value;
7
4
  }
@@ -1,2 +1,2 @@
1
- import { BIT_STRING } from "../macros";
1
+ import { BIT_STRING } from "../macros.mjs";
2
2
  export default function unpackBits(bytes: Uint8Array): BIT_STRING;
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = unpackBits;
4
- const macros_1 = require("../macros");
5
- function unpackBits(bytes) {
1
+ import { TRUE_BIT } from "../macros.mjs";
2
+ export default function unpackBits(bytes) {
6
3
  const ret = new Uint8ClampedArray(bytes.length << 3);
7
4
  for (let byte = 0; byte < bytes.length; byte++) {
8
5
  for (let bit = 0; bit < 8; bit++) {
9
6
  if (bytes[byte] & (0x01 << (7 - bit))) {
10
- ret[(byte << 3) + bit] = macros_1.TRUE_BIT;
7
+ ret[(byte << 3) + bit] = TRUE_BIT;
11
8
  }
12
9
  }
13
10
  }
@@ -1,2 +1,2 @@
1
- import { INTEGER } from "../macros";
1
+ import { INTEGER } from "../macros.mjs";
2
2
  export default function datetimeComponentValidator(unitName: string, min: INTEGER, max: INTEGER): (dataType: string, value: INTEGER) => void;
@@ -0,0 +1,14 @@
1
+ import * as errors from "../errors.mjs";
2
+ export default function datetimeComponentValidator(unitName, min, max) {
3
+ return function (dataType, value) {
4
+ if (!Number.isInteger(value)) {
5
+ throw new errors.ASN1Error(`Non-integral ${unitName} supplied to ${dataType}.`);
6
+ }
7
+ if (value > max) {
8
+ throw new errors.ASN1Error(`Encountered ${unitName} greater than ${max} in ${dataType}.`);
9
+ }
10
+ if (value < min) {
11
+ throw new errors.ASN1Error(`Encountered ${unitName} less than ${min} in ${dataType}.`);
12
+ }
13
+ };
14
+ }
@@ -1,6 +1,6 @@
1
- export { default as isGeneralCharacter } from "./isGeneralCharacter";
2
- export { default as isGraphicCharacter } from "./isGraphicCharacter";
3
- export { default as isNumericCharacter } from "./isNumericCharacter";
4
- export { default as isObjectDescriptorCharacter } from "./isObjectDescriptorCharacter";
5
- export { default as isPrintableCharacter } from "./isPrintableCharacter";
6
- export { default as isVisibleCharacter } from "./isVisibleCharacter";
1
+ export { default as isGeneralCharacter } from "./isGeneralCharacter.mjs";
2
+ export { default as isGraphicCharacter } from "./isGraphicCharacter.mjs";
3
+ export { default as isNumericCharacter } from "./isNumericCharacter.mjs";
4
+ export { default as isObjectDescriptorCharacter } from "./isObjectDescriptorCharacter.mjs";
5
+ export { default as isPrintableCharacter } from "./isPrintableCharacter.mjs";
6
+ export { default as isVisibleCharacter } from "./isVisibleCharacter.mjs";
@@ -0,0 +1,6 @@
1
+ export { default as isGeneralCharacter } from "./isGeneralCharacter.mjs";
2
+ export { default as isGraphicCharacter } from "./isGraphicCharacter.mjs";
3
+ export { default as isNumericCharacter } from "./isNumericCharacter.mjs";
4
+ export { default as isObjectDescriptorCharacter } from "./isObjectDescriptorCharacter.mjs";
5
+ export { default as isPrintableCharacter } from "./isPrintableCharacter.mjs";
6
+ export { default as isVisibleCharacter } from "./isVisibleCharacter.mjs";
@@ -0,0 +1,3 @@
1
+ export default function isGeneralCharacter(characterCode) {
2
+ return (characterCode <= 0x7F);
3
+ }
@@ -0,0 +1,3 @@
1
+ export default function isGraphicCharacter(characterCode) {
2
+ return (characterCode >= 0x20 && characterCode <= 0x7E);
3
+ }
@@ -0,0 +1,3 @@
1
+ export default function isNumericString(characterCode) {
2
+ return ((characterCode >= 0x30 && characterCode <= 0x39) || characterCode === 0x20);
3
+ }
@@ -0,0 +1,4 @@
1
+ import isGraphicCharacter from "./isGraphicCharacter.mjs";
2
+ export default function isObjectDescriptorCharacter(characterCode) {
3
+ return isGraphicCharacter(characterCode);
4
+ }
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = isPrintableCharacter;
4
- function isPrintableCharacter(characterCode) {
1
+ export default function isPrintableCharacter(characterCode) {
5
2
  return ((characterCode >= 0x27 && characterCode <= 0x39 && characterCode !== 0x2A)
6
3
  || (characterCode >= 0x41 && characterCode <= 0x5A)
7
4
  || (characterCode >= 0x61 && characterCode <= 0x7A)
@@ -0,0 +1,4 @@
1
+ import isGraphicCharacter from "./isGraphicCharacter.mjs";
2
+ export default function isVisibleCharacter(characterCode) {
3
+ return isGraphicCharacter(characterCode);
4
+ }
@@ -1,3 +1,3 @@
1
- import type ASN1Element from "../asn1";
2
- import type ConstructedElementSpecification from "../ConstructedElementSpecification";
1
+ import type ASN1Element from "../asn1.mjs";
2
+ import type ConstructedElementSpecification from "../ConstructedElementSpecification.mjs";
3
3
  export default function validateConstruction(elements: ASN1Element[], specification: ConstructedElementSpecification[]): void;
@@ -0,0 +1,37 @@
1
+ import * as errors from "../errors.mjs";
2
+ export default function validateConstruction(elements, specification) {
3
+ let i = 0;
4
+ for (const spec of specification) {
5
+ if ((i >= elements.length)
6
+ || (spec.tagClass && spec.tagClass !== elements[i].tagClass)
7
+ || (spec.construction && spec.construction !== elements[i].construction)
8
+ || (spec.tagNumber && spec.tagNumber !== elements[i].tagNumber)) {
9
+ if (!spec.optional) {
10
+ throw new errors.ASN1ConstructionError(`Missing required element '${spec.name}'.`);
11
+ }
12
+ continue;
13
+ }
14
+ if (spec.choice && spec.choice.length > 0) {
15
+ let matchingChoiceFound = false;
16
+ for (let j = 0; j < spec.choice.length; j++) {
17
+ const choice = spec.choice[j];
18
+ if ((!(choice.tagClass) || (choice.tagClass === elements[i].tagClass))
19
+ && (!(choice.construction) || (choice.construction === elements[i].construction))
20
+ && (!(choice.tagNumber) || (choice.tagNumber === elements[i].tagNumber))) {
21
+ if (choice.callback) {
22
+ choice.callback(elements[i]);
23
+ }
24
+ matchingChoiceFound = true;
25
+ break;
26
+ }
27
+ }
28
+ if (!matchingChoiceFound && !spec.optional) {
29
+ throw new errors.ASN1ConstructionError(`Missing required CHOICE '${spec.name}'.`);
30
+ }
31
+ }
32
+ if (spec.callback) {
33
+ spec.callback(elements[i]);
34
+ }
35
+ i++;
36
+ }
37
+ }
@@ -0,0 +1,49 @@
1
+ import * as errors from "../errors.mjs";
2
+ export default function validateDate(dataType, year, month, date) {
3
+ if (!Number.isSafeInteger(year)) {
4
+ throw new errors.ASN1Error(`Invalid year in ${dataType}`);
5
+ }
6
+ if (!Number.isSafeInteger(month)) {
7
+ throw new errors.ASN1Error(`Invalid month in ${dataType}`);
8
+ }
9
+ if (!Number.isSafeInteger(date) || (date < 1)) {
10
+ throw new errors.ASN1Error(`Invalid day in ${dataType}`);
11
+ }
12
+ switch (month) {
13
+ case 0:
14
+ case 2:
15
+ case 4:
16
+ case 6:
17
+ case 7:
18
+ case 9:
19
+ case 11: {
20
+ if (date > 31) {
21
+ throw new errors.ASN1Error(`Day > 31 encountered in ${dataType} with 31-day month.`);
22
+ }
23
+ break;
24
+ }
25
+ case 3:
26
+ case 5:
27
+ case 8:
28
+ case 10: {
29
+ if (date > 30) {
30
+ throw new errors.ASN1Error(`Day > 31 encountered in ${dataType} with 30-day month.`);
31
+ }
32
+ break;
33
+ }
34
+ case 1: {
35
+ const isLeapYear = ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);
36
+ if (isLeapYear) {
37
+ if (date > 29) {
38
+ throw new errors.ASN1Error(`Day > 29 encountered in ${dataType} with month of February in leap year.`);
39
+ }
40
+ }
41
+ else if (date > 28) {
42
+ throw new errors.ASN1Error(`Day > 28 encountered in ${dataType} with month of February and non leap year.`);
43
+ }
44
+ break;
45
+ }
46
+ default:
47
+ throw new errors.ASN1Error(`Invalid month in ${dataType}`);
48
+ }
49
+ }
@@ -0,0 +1,6 @@
1
+ import validateDate from "./validateDate.mjs";
2
+ import validateTime from "./validateTime.mjs";
3
+ export default function validateDateTime(dataType, year, month, date, hours, minutes, seconds) {
4
+ validateDate(dataType, year, month, date);
5
+ validateTime(dataType, hours, minutes, seconds);
6
+ }
@@ -0,0 +1,21 @@
1
+ import * as errors from "../errors.mjs";
2
+ export default function validateTime(dataType, hours, minutes, seconds) {
3
+ if (!Number.isSafeInteger(hours)) {
4
+ throw new errors.ASN1Error(`Invalid hours in ${dataType}`);
5
+ }
6
+ if (!Number.isSafeInteger(minutes)) {
7
+ throw new errors.ASN1Error(`Invalid minutes in ${dataType}`);
8
+ }
9
+ if (!Number.isSafeInteger(seconds) || (seconds < 0)) {
10
+ throw new errors.ASN1Error(`Invalid seconds in ${dataType}`);
11
+ }
12
+ if (hours > 23) {
13
+ throw new errors.ASN1Error(`Hours > 23 encountered in ${dataType}.`);
14
+ }
15
+ if (minutes > 59) {
16
+ throw new errors.ASN1Error(`Minutes > 60 encountered in ${dataType}.`);
17
+ }
18
+ if (seconds > 59) {
19
+ throw new errors.ASN1Error(`Seconds > 60 encountered in ${dataType}.`);
20
+ }
21
+ }
@@ -1,48 +1,45 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.datetimeRegex = exports.numberRegex = exports.CANONICAL_TAG_CLASS_ORDERING = exports.distinguishedNR3Regex = exports.canonicalNR3Regex = exports.nr3Regex = exports.nr2Regex = exports.nr1Regex = exports.distinguishedGeneralizedTimeRegex = exports.generalizedTimeRegex = exports.distinguishedUTCTimeRegex = exports.utcTimeRegex = exports.printableStringCharacters = exports.ASN1UniversalType = exports.ASN1RealEncodingScale = exports.ASN1RealEncodingBase = exports.ASN1SpecialRealValue = exports.LengthEncodingPreference = exports.ASN1Construction = exports.ASN1TagClass = exports.MIN_SINT_32 = exports.MAX_SINT_32 = exports.MIN_UINT_32 = exports.MAX_UINT_32 = void 0;
4
- exports.MAX_UINT_32 = 0x00FFFFFFFF;
5
- exports.MIN_UINT_32 = 0x0000000000;
6
- exports.MAX_SINT_32 = 0x7FFFFFFF;
7
- exports.MIN_SINT_32 = -0x80000000;
8
- var ASN1TagClass;
1
+ export const MAX_UINT_32 = 0x00FFFFFFFF;
2
+ export const MIN_UINT_32 = 0x0000000000;
3
+ export const MAX_SINT_32 = 0x7FFFFFFF;
4
+ export const MIN_SINT_32 = -0x80000000;
5
+ export var ASN1TagClass;
9
6
  (function (ASN1TagClass) {
10
7
  ASN1TagClass[ASN1TagClass["universal"] = 0] = "universal";
11
8
  ASN1TagClass[ASN1TagClass["application"] = 1] = "application";
12
9
  ASN1TagClass[ASN1TagClass["context"] = 2] = "context";
13
10
  ASN1TagClass[ASN1TagClass["private"] = 3] = "private";
14
- })(ASN1TagClass || (exports.ASN1TagClass = ASN1TagClass = {}));
15
- var ASN1Construction;
11
+ })(ASN1TagClass || (ASN1TagClass = {}));
12
+ export var ASN1Construction;
16
13
  (function (ASN1Construction) {
17
14
  ASN1Construction[ASN1Construction["primitive"] = 0] = "primitive";
18
15
  ASN1Construction[ASN1Construction["constructed"] = 1] = "constructed";
19
- })(ASN1Construction || (exports.ASN1Construction = ASN1Construction = {}));
20
- var LengthEncodingPreference;
16
+ })(ASN1Construction || (ASN1Construction = {}));
17
+ export var LengthEncodingPreference;
21
18
  (function (LengthEncodingPreference) {
22
19
  LengthEncodingPreference[LengthEncodingPreference["definite"] = 0] = "definite";
23
20
  LengthEncodingPreference[LengthEncodingPreference["indefinite"] = 1] = "indefinite";
24
- })(LengthEncodingPreference || (exports.LengthEncodingPreference = LengthEncodingPreference = {}));
25
- var ASN1SpecialRealValue;
21
+ })(LengthEncodingPreference || (LengthEncodingPreference = {}));
22
+ export var ASN1SpecialRealValue;
26
23
  (function (ASN1SpecialRealValue) {
27
24
  ASN1SpecialRealValue[ASN1SpecialRealValue["plusInfinity"] = 64] = "plusInfinity";
28
25
  ASN1SpecialRealValue[ASN1SpecialRealValue["minusInfinity"] = 65] = "minusInfinity";
29
26
  ASN1SpecialRealValue[ASN1SpecialRealValue["notANumber"] = 66] = "notANumber";
30
27
  ASN1SpecialRealValue[ASN1SpecialRealValue["minusZero"] = 67] = "minusZero";
31
- })(ASN1SpecialRealValue || (exports.ASN1SpecialRealValue = ASN1SpecialRealValue = {}));
32
- var ASN1RealEncodingBase;
28
+ })(ASN1SpecialRealValue || (ASN1SpecialRealValue = {}));
29
+ export var ASN1RealEncodingBase;
33
30
  (function (ASN1RealEncodingBase) {
34
31
  ASN1RealEncodingBase[ASN1RealEncodingBase["base2"] = 0] = "base2";
35
32
  ASN1RealEncodingBase[ASN1RealEncodingBase["base8"] = 16] = "base8";
36
33
  ASN1RealEncodingBase[ASN1RealEncodingBase["base16"] = 32] = "base16";
37
- })(ASN1RealEncodingBase || (exports.ASN1RealEncodingBase = ASN1RealEncodingBase = {}));
38
- var ASN1RealEncodingScale;
34
+ })(ASN1RealEncodingBase || (ASN1RealEncodingBase = {}));
35
+ export var ASN1RealEncodingScale;
39
36
  (function (ASN1RealEncodingScale) {
40
37
  ASN1RealEncodingScale[ASN1RealEncodingScale["scale0"] = 0] = "scale0";
41
38
  ASN1RealEncodingScale[ASN1RealEncodingScale["scale1"] = 4] = "scale1";
42
39
  ASN1RealEncodingScale[ASN1RealEncodingScale["scale2"] = 8] = "scale2";
43
40
  ASN1RealEncodingScale[ASN1RealEncodingScale["scale3"] = 12] = "scale3";
44
- })(ASN1RealEncodingScale || (exports.ASN1RealEncodingScale = ASN1RealEncodingScale = {}));
45
- var ASN1UniversalType;
41
+ })(ASN1RealEncodingScale || (ASN1RealEncodingScale = {}));
42
+ export var ASN1UniversalType;
46
43
  (function (ASN1UniversalType) {
47
44
  ASN1UniversalType[ASN1UniversalType["endOfContent"] = 0] = "endOfContent";
48
45
  ASN1UniversalType[ASN1UniversalType["boolean"] = 1] = "boolean";
@@ -82,29 +79,29 @@ var ASN1UniversalType;
82
79
  ASN1UniversalType[ASN1UniversalType["duration"] = 34] = "duration";
83
80
  ASN1UniversalType[ASN1UniversalType["oidIRI"] = 35] = "oidIRI";
84
81
  ASN1UniversalType[ASN1UniversalType["roidIRI"] = 36] = "roidIRI";
85
- })(ASN1UniversalType || (exports.ASN1UniversalType = ASN1UniversalType = {}));
86
- exports.printableStringCharacters = "etaoinsrhdlucmfywgpbvkxqjzETAOINSRHDLUCMFYWGPBVKXQJZ0123456789 '()+,-./:=?";
87
- exports.utcTimeRegex = /^(\d{2})((?:1[0-2])|(?:0\d))((?:3[01])|(?:[0-2]\d))((?:2[0-3])|(?:[01]\d))([0-5]\d)([0-5]\d)?((?:(\+|-)((?:2[0-3])|(?:[01]\d))[0-5]\d)|Z)$/;
88
- exports.distinguishedUTCTimeRegex = /^(?<year>\d{2})(?<month>(?:1[0-2])|(?:0\d))(?<date>(?:3[01])|(?:[0-2]\d))(?<hour>(?:2[0-3])|(?:[01]\d))(?<minute>[0-5]\d)(?<second>[0-5]\d)?Z$/;
89
- exports.generalizedTimeRegex = /^(\d{4})((?:1[0-2])|(?:0\d))((?:3[01])|(?:[0-2]\d))((?:2[0-3])|(?:[01]\d))([0-5]\d)?([0-5]\d)?(?:(?:\.|,)(\d+))?((?:(?:\+|-)((?:2[0-3])|(?:[01]\d))[0-5]\d)|Z)?$/;
90
- exports.distinguishedGeneralizedTimeRegex = /^(?<year>\d{4})(?<month>(?:1[0-2])|(?:0\d))(?<date>(?:3[01])|(?:[0-2]\d))(?<hour>(?:2[0-3])|(?:[01]\d))(?<minute>[0-5]\d)(?<second>[0-5]\d)(?:(\.|,)(?<fraction>\d*[1-9]))?Z$/;
91
- exports.nr1Regex = /^ *(\+|-)?\d+$/u;
92
- exports.nr2Regex = /^ *(\+|-)?(?:\d+(\.|,)\d*)|(?:\d*(\.|,)\d+)$/u;
93
- exports.nr3Regex = /^ *(\+|-)?(?:\d+(\.|,)\d*)|(?:\d*(\.|,)\d+)(e|E)(\+|-)?\d+$/u;
94
- exports.canonicalNR3Regex = /^ *-?(?:[1-9]\d*)?[1-9]\.E(?:\+0)|(?:-?[1-9]\d*)$/u;
95
- exports.distinguishedNR3Regex = /^ *-?(?:[1-9]\d*)?[1-9]\.E(?:\+0)|(?:-?[1-9]\d*)$/u;
96
- exports.CANONICAL_TAG_CLASS_ORDERING = [
82
+ })(ASN1UniversalType || (ASN1UniversalType = {}));
83
+ export const printableStringCharacters = "etaoinsrhdlucmfywgpbvkxqjzETAOINSRHDLUCMFYWGPBVKXQJZ0123456789 '()+,-./:=?";
84
+ export const utcTimeRegex = /^(\d{2})((?:1[0-2])|(?:0\d))((?:3[01])|(?:[0-2]\d))((?:2[0-3])|(?:[01]\d))([0-5]\d)([0-5]\d)?((?:(\+|-)((?:2[0-3])|(?:[01]\d))[0-5]\d)|Z)$/;
85
+ export const distinguishedUTCTimeRegex = /^(?<year>\d{2})(?<month>(?:1[0-2])|(?:0\d))(?<date>(?:3[01])|(?:[0-2]\d))(?<hour>(?:2[0-3])|(?:[01]\d))(?<minute>[0-5]\d)(?<second>[0-5]\d)?Z$/;
86
+ export const generalizedTimeRegex = /^(\d{4})((?:1[0-2])|(?:0\d))((?:3[01])|(?:[0-2]\d))((?:2[0-3])|(?:[01]\d))([0-5]\d)?([0-5]\d)?(?:(?:\.|,)(\d+))?((?:(?:\+|-)((?:2[0-3])|(?:[01]\d))[0-5]\d)|Z)?$/;
87
+ export const distinguishedGeneralizedTimeRegex = /^(?<year>\d{4})(?<month>(?:1[0-2])|(?:0\d))(?<date>(?:3[01])|(?:[0-2]\d))(?<hour>(?:2[0-3])|(?:[01]\d))(?<minute>[0-5]\d)(?<second>[0-5]\d)(?:(\.|,)(?<fraction>\d*[1-9]))?Z$/;
88
+ export const nr1Regex = /^ *(\+|-)?\d+$/u;
89
+ export const nr2Regex = /^ *(\+|-)?(?:\d+(\.|,)\d*)|(?:\d*(\.|,)\d+)$/u;
90
+ export const nr3Regex = /^ *(\+|-)?(?:\d+(\.|,)\d*)|(?:\d*(\.|,)\d+)(e|E)(\+|-)?\d+$/u;
91
+ export const canonicalNR3Regex = /^ *-?(?:[1-9]\d*)?[1-9]\.E(?:\+0)|(?:-?[1-9]\d*)$/u;
92
+ export const distinguishedNR3Regex = /^ *-?(?:[1-9]\d*)?[1-9]\.E(?:\+0)|(?:-?[1-9]\d*)$/u;
93
+ export const CANONICAL_TAG_CLASS_ORDERING = [
97
94
  ASN1TagClass.universal,
98
95
  ASN1TagClass.application,
99
96
  ASN1TagClass.context,
100
97
  ASN1TagClass.private,
101
98
  ];
102
- exports.numberRegex = "(?:0|[1-9]\\d*)(?:\\.\\d+)?";
103
- exports.datetimeRegex = new RegExp("^(?:(" + exports.numberRegex + ")Y)?"
104
- + "(?:(" + exports.numberRegex + ")M)?"
105
- + "(?:(" + exports.numberRegex + ")D)?"
99
+ export const numberRegex = "(?:0|[1-9]\\d*)(?:\\.\\d+)?";
100
+ export const datetimeRegex = new RegExp("^(?:(" + numberRegex + ")Y)?"
101
+ + "(?:(" + numberRegex + ")M)?"
102
+ + "(?:(" + numberRegex + ")D)?"
106
103
  + "(?:T"
107
- + "(?:(" + exports.numberRegex + ")H)?"
108
- + "(?:(" + exports.numberRegex + ")M)?"
109
- + "(?:(" + exports.numberRegex + ")S)?"
104
+ + "(?:(" + numberRegex + ")H)?"
105
+ + "(?:(" + numberRegex + ")M)?"
106
+ + "(?:(" + numberRegex + ")S)?"
110
107
  + ")?$");
@@ -1,5 +1,5 @@
1
- import ASN1Element from "./asn1";
2
- import type { INTEGER, OBJECT_IDENTIFIER, ENUMERATED, RELATIVE_OID, TIME, DATE, TIME_OF_DAY, DATE_TIME, OID_IRI, RELATIVE_OID_IRI } from "./macros";
1
+ import ASN1Element from "./asn1.mjs";
2
+ import type { INTEGER, OBJECT_IDENTIFIER, ENUMERATED, RELATIVE_OID, TIME, DATE, TIME_OF_DAY, DATE_TIME, OID_IRI, RELATIVE_OID_IRI } from "./macros.mjs";
3
3
  export default abstract class X690Element extends ASN1Element {
4
4
  set integer(value: INTEGER);
5
5
  get integer(): INTEGER;
package/dist/x690.mjs ADDED
@@ -0,0 +1,95 @@
1
+ import ASN1Element from "./asn1.mjs";
2
+ import * as errors from "./errors.mjs";
3
+ import { ASN1Construction } from "./values.mjs";
4
+ import encodeInteger from "./codecs/x690/encoders/encodeInteger.mjs";
5
+ import decodeInteger from "./codecs/x690/decoders/decodeInteger.mjs";
6
+ import encodeObjectIdentifier from "./codecs/x690/encoders/encodeObjectIdentifier.mjs";
7
+ import decodeObjectIdentifier from "./codecs/x690/decoders/decodeObjectIdentifier.mjs";
8
+ import encodeRelativeObjectIdentifier from "./codecs/x690/encoders/encodeRelativeObjectIdentifier.mjs";
9
+ import decodeRelativeObjectIdentifier from "./codecs/x690/decoders/decodeRelativeObjectIdentifier.mjs";
10
+ import encodeTime from "./codecs/x690/encoders/encodeTime.mjs";
11
+ import decodeTime from "./codecs/x690/decoders/decodeTime.mjs";
12
+ import encodeDate from "./codecs/x690/encoders/encodeDate.mjs";
13
+ import decodeDate from "./codecs/x690/decoders/decodeDate.mjs";
14
+ import encodeTimeOfDay from "./codecs/x690/encoders/encodeTimeOfDay.mjs";
15
+ import decodeTimeOfDay from "./codecs/x690/decoders/decodeTimeOfDay.mjs";
16
+ import encodeDateTime from "./codecs/x690/encoders/encodeDateTime.mjs";
17
+ import decodeDateTime from "./codecs/x690/decoders/decodeDateTime.mjs";
18
+ import encodeOIDIRI from "./codecs/x690/encoders/encodeOIDIRI.mjs";
19
+ import decodeOIDIRI from "./codecs/x690/decoders/decodeOIDIRI.mjs";
20
+ import encodeRelativeOIDIRI from "./codecs/x690/encoders/encodeRelativeOIDIRI.mjs";
21
+ import decodeRelativeOIDIRI from "./codecs/x690/decoders/decodeRelativeOIDIRI.mjs";
22
+ export default class X690Element extends ASN1Element {
23
+ set integer(value) {
24
+ this.value = encodeInteger(value);
25
+ }
26
+ get integer() {
27
+ if (this.construction !== ASN1Construction.primitive) {
28
+ throw new errors.ASN1ConstructionError("INTEGER cannot be constructed.", this);
29
+ }
30
+ return decodeInteger(this.value);
31
+ }
32
+ set objectIdentifier(value) {
33
+ this.value = encodeObjectIdentifier(value);
34
+ }
35
+ get objectIdentifier() {
36
+ if (this.construction !== ASN1Construction.primitive) {
37
+ throw new errors.ASN1ConstructionError("OBJECT IDENTIFIER cannot be constructed.", this);
38
+ }
39
+ if (this.value.length === 0) {
40
+ throw new errors.ASN1TruncationError("Encoded value was too short to be an OBJECT IDENTIFIER!", this);
41
+ }
42
+ return decodeObjectIdentifier(this.value);
43
+ }
44
+ set enumerated(value) {
45
+ this.integer = value;
46
+ }
47
+ get enumerated() {
48
+ return Number(this.integer);
49
+ }
50
+ set relativeObjectIdentifier(value) {
51
+ this.value = encodeRelativeObjectIdentifier(value);
52
+ }
53
+ get relativeObjectIdentifier() {
54
+ if (this.construction !== ASN1Construction.primitive) {
55
+ throw new errors.ASN1ConstructionError("Relative OID cannot be constructed.", this);
56
+ }
57
+ return decodeRelativeObjectIdentifier(this.value);
58
+ }
59
+ set time(value) {
60
+ this.value = encodeTime(value);
61
+ }
62
+ get time() {
63
+ return decodeTime(this.value);
64
+ }
65
+ set date(value) {
66
+ this.value = encodeDate(value);
67
+ }
68
+ get date() {
69
+ return decodeDate(this.value);
70
+ }
71
+ set timeOfDay(value) {
72
+ this.value = encodeTimeOfDay(value);
73
+ }
74
+ get timeOfDay() {
75
+ return decodeTimeOfDay(this.value);
76
+ }
77
+ set dateTime(value) {
78
+ this.value = encodeDateTime(value);
79
+ }
80
+ get dateTime() {
81
+ return decodeDateTime(this.value);
82
+ }
83
+ set oidIRI(value) {
84
+ this.value = encodeOIDIRI(value);
85
+ }
86
+ get oidIRI() {
87
+ return decodeOIDIRI(this.value);
88
+ }
89
+ set relativeOIDIRI(value) {
90
+ this.value = encodeRelativeOIDIRI(value);
91
+ }
92
+ get relativeOIDIRI() {
93
+ return decodeRelativeOIDIRI(this.value);
94
+ }
95
+ }