asn1-ts 8.0.4 → 9.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 (429) 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} +8 -7
  5. package/dist/{node/asn1.js → asn1.mjs} +90 -130
  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} +139 -176
  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} +143 -180
  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} +136 -173
  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/codecs/x690/encoders/encodeObjectIdentifier.d.mts +3 -0
  121. package/dist/{node/codecs/x690/encoders/encodeObjectIdentifier.js → codecs/x690/encoders/encodeObjectIdentifier.mjs} +2 -4
  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} +2 -4
  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.d.ts → types/ObjectIdentifier.d.mts} +1 -0
  172. package/dist/{node/types/ObjectIdentifier.js → types/ObjectIdentifier.mjs} +6 -11
  173. package/dist/{node/types/TypeIdentifier.d.ts → types/TypeIdentifier.d.mts} +2 -2
  174. package/dist/types/TypeIdentifier.mjs +8 -0
  175. package/dist/types/index.d.mts +18 -0
  176. package/dist/types/index.mjs +18 -0
  177. package/dist/{node/types/time/DATE-ENCODING.d.ts → types/time/DATE-ENCODING.d.mts} +1 -1
  178. package/dist/types/time/DATE-ENCODING.mjs +13 -0
  179. package/dist/{node/types/time/DURATION-EQUIVALENT.d.ts → types/time/DURATION-EQUIVALENT.d.mts} +1 -1
  180. package/dist/types/time/DURATION-EQUIVALENT.mjs +93 -0
  181. package/dist/{node/types/time/DURATION-INTERVAL-ENCODING.d.ts → types/time/DURATION-INTERVAL-ENCODING.d.mts} +1 -1
  182. package/dist/types/time/DURATION-INTERVAL-ENCODING.mjs +50 -0
  183. package/dist/{node/types/time/HOURS-DIFF-ENCODING.d.ts → types/time/HOURS-DIFF-ENCODING.d.mts} +1 -1
  184. package/dist/types/time/HOURS-DIFF-ENCODING.mjs +11 -0
  185. package/dist/{node/types/time/HOURS-ENCODING.d.ts → types/time/HOURS-ENCODING.d.mts} +1 -1
  186. package/dist/types/time/HOURS-ENCODING.mjs +8 -0
  187. package/dist/{node/types/time/HOURS-MINUTES-DIFF-ENCODING.d.ts → types/time/HOURS-MINUTES-DIFF-ENCODING.d.mts} +1 -1
  188. package/dist/types/time/HOURS-MINUTES-DIFF-ENCODING.mjs +14 -0
  189. package/dist/{node/types/time/HOURS-MINUTES-ENCODING.d.ts → types/time/HOURS-MINUTES-ENCODING.d.mts} +1 -1
  190. package/dist/types/time/HOURS-MINUTES-ENCODING.mjs +11 -0
  191. package/dist/{node/types/time/TIME-OF-DAY-DIFF-ENCODING.d.ts → types/time/TIME-OF-DAY-DIFF-ENCODING.d.mts} +1 -1
  192. package/dist/types/time/TIME-OF-DAY-DIFF-ENCODING.mjs +17 -0
  193. package/dist/{node/types/time/TIME-OF-DAY-ENCODING.d.ts → types/time/TIME-OF-DAY-ENCODING.d.mts} +1 -1
  194. package/dist/types/time/TIME-OF-DAY-ENCODING.mjs +14 -0
  195. 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
  196. package/dist/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.mjs +20 -0
  197. package/dist/{node/types/time/TIME-OF-DAY-FRACTION-ENCODING.d.ts → types/time/TIME-OF-DAY-FRACTION-ENCODING.d.mts} +1 -1
  198. package/dist/types/time/TIME-OF-DAY-FRACTION-ENCODING.mjs +17 -0
  199. package/dist/{node/types/time/YEAR-ENCODING.d.ts → types/time/YEAR-ENCODING.d.mts} +1 -1
  200. package/dist/types/time/YEAR-ENCODING.mjs +6 -0
  201. package/dist/{node/types/time/YEAR-MONTH-ENCODING.d.ts → types/time/YEAR-MONTH-ENCODING.d.mts} +1 -1
  202. package/dist/types/time/YEAR-MONTH-ENCODING.mjs +10 -0
  203. package/dist/utils/base128Length.mjs +3 -0
  204. package/dist/{node/utils/bigint.d.ts → utils/bigint.d.mts} +2 -1
  205. package/dist/{node/utils/bigint.js → utils/bigint.mjs} +7 -10
  206. package/dist/{node/utils/compareSetOfElementsCanonically.d.ts → utils/compareSetOfElementsCanonically.d.mts} +1 -1
  207. package/dist/{node/utils/compareSetOfElementsCanonically.js → utils/compareSetOfElementsCanonically.mjs} +1 -4
  208. package/dist/{node/utils/convertBytesToText.js → utils/convertBytesToText.mjs} +4 -6
  209. package/dist/utils/convertTextToBytes.mjs +11 -0
  210. package/dist/utils/decodeIEEE754DoublePrecisionFloat.mjs +3 -0
  211. package/dist/utils/decodeIEEE754SinglePrecisionFloat.mjs +3 -0
  212. package/dist/utils/decodeSignedBigEndianInteger.mjs +13 -0
  213. package/dist/utils/decodeUnsignedBigEndianInteger.mjs +13 -0
  214. package/dist/utils/decodeX690RealNumber.mjs +108 -0
  215. package/dist/utils/dissectFloat.mjs +13 -0
  216. package/dist/utils/encodeIEEE754DoublePrecisionFloat.mjs +3 -0
  217. package/dist/utils/encodeIEEE754SinglePrecisionFloat.mjs +3 -0
  218. package/dist/utils/encodeSignedBigEndianInteger.mjs +36 -0
  219. package/dist/utils/encodeUnsignedBigEndianInteger.mjs +23 -0
  220. package/dist/utils/encodeX690Base10RealNumber.mjs +21 -0
  221. package/dist/utils/encodeX690BinaryRealNumber.mjs +43 -0
  222. package/dist/utils/getBitFromBase128.mjs +4 -0
  223. package/dist/utils/getBitFromBase256.mjs +3 -0
  224. package/dist/{node/utils/index.d.ts → utils/index.d.mts} +22 -22
  225. package/dist/utils/index.mjs +22 -0
  226. package/dist/{node/utils/isInCanonicalOrder.d.ts → utils/isInCanonicalOrder.d.mts} +1 -1
  227. package/dist/{node/utils/isInCanonicalOrder.js → utils/isInCanonicalOrder.mjs} +4 -7
  228. package/dist/{node/utils/isUniquelyTagged.d.ts → utils/isUniquelyTagged.d.mts} +1 -1
  229. package/dist/{node/utils/isUniquelyTagged.js → utils/isUniquelyTagged.mjs} +1 -4
  230. package/dist/{node/utils/packBits.d.ts → utils/packBits.d.mts} +1 -1
  231. package/dist/{node/utils/packBits.js → utils/packBits.mjs} +3 -6
  232. package/dist/{node/utils/setBitInBase128.js → utils/setBitInBase128.mjs} +1 -4
  233. package/dist/{node/utils/setBitInBase256.js → utils/setBitInBase256.mjs} +1 -4
  234. package/dist/{node/utils/sortCanonically.d.ts → utils/sortCanonically.d.mts} +1 -1
  235. package/dist/{node/utils/sortCanonically.js → utils/sortCanonically.mjs} +2 -4
  236. package/dist/utils/splitOctetsCanonically.mjs +5 -0
  237. package/dist/{node/utils/trimLeadingPaddingBytes.js → utils/trimLeadingPaddingBytes.mjs} +1 -4
  238. package/dist/{node/utils/unpackBits.d.ts → utils/unpackBits.d.mts} +1 -1
  239. package/dist/{node/utils/unpackBits.js → utils/unpackBits.mjs} +3 -6
  240. package/dist/{node/validators/datetimeComponentValidator.d.ts → validators/datetimeComponentValidator.d.mts} +1 -1
  241. package/dist/validators/datetimeComponentValidator.mjs +14 -0
  242. package/dist/{node/validators/index.d.ts → validators/index.d.mts} +6 -6
  243. package/dist/validators/index.mjs +6 -0
  244. package/dist/validators/isGeneralCharacter.mjs +3 -0
  245. package/dist/validators/isGraphicCharacter.mjs +3 -0
  246. package/dist/validators/isNumericCharacter.mjs +3 -0
  247. package/dist/validators/isObjectDescriptorCharacter.mjs +4 -0
  248. package/dist/{node/validators/isPrintableCharacter.js → validators/isPrintableCharacter.mjs} +1 -4
  249. package/dist/validators/isVisibleCharacter.mjs +4 -0
  250. package/dist/{node/validators/validateConstruction.d.ts → validators/validateConstruction.d.mts} +2 -2
  251. package/dist/validators/validateConstruction.mjs +37 -0
  252. package/dist/validators/validateDate.mjs +49 -0
  253. package/dist/validators/validateDateTime.mjs +6 -0
  254. package/dist/validators/validateTime.mjs +21 -0
  255. package/dist/{node/values.js → values.mjs} +36 -39
  256. package/dist/{node/x690.d.ts → x690.d.mts} +2 -2
  257. package/dist/x690.mjs +95 -0
  258. package/package.json +8 -7
  259. package/dist/node/ConstructedElementSpecification.js +0 -2
  260. package/dist/node/classes/ABSTRACT-SYNTAX.js +0 -2
  261. package/dist/node/classes/TYPE-IDENTIFIER.js +0 -2
  262. package/dist/node/classes/index.d.ts +0 -2
  263. package/dist/node/classes/index.js +0 -2
  264. package/dist/node/codecs/ber/decoders/decodeBitString.js +0 -55
  265. package/dist/node/codecs/ber/decoders/decodeBoolean.js +0 -43
  266. package/dist/node/codecs/ber/decoders/decodeReal.js +0 -147
  267. package/dist/node/codecs/ber/decoders/decodeSequence.d.ts +0 -3
  268. package/dist/node/codecs/ber/decoders/decodeSequence.js +0 -17
  269. package/dist/node/codecs/ber/decoders/decodeUTCTime.js +0 -84
  270. package/dist/node/codecs/ber/encoders/encodeGeneralString.js +0 -19
  271. package/dist/node/codecs/ber/encoders/encodeGraphicString.js +0 -19
  272. package/dist/node/codecs/ber/encoders/encodeNumericString.js +0 -19
  273. package/dist/node/codecs/ber/encoders/encodeObjectDescriptor.js +0 -19
  274. package/dist/node/codecs/ber/encoders/encodePrintableString.js +0 -20
  275. package/dist/node/codecs/ber/encoders/encodeVisibleString.js +0 -19
  276. package/dist/node/codecs/cer/decoders/decodeSequence.d.ts +0 -3
  277. package/dist/node/codecs/cer/decoders/decodeSequence.js +0 -20
  278. package/dist/node/codecs/coer/decoders/decodeBoolean.js +0 -46
  279. package/dist/node/codecs/der/decoders/decodeBitString.js +0 -59
  280. package/dist/node/codecs/der/decoders/decodeBoolean.js +0 -46
  281. package/dist/node/codecs/der/decoders/decodeGeneralizedTime.js +0 -81
  282. package/dist/node/codecs/der/decoders/decodeReal.js +0 -134
  283. package/dist/node/codecs/der/decoders/decodeSequence.d.ts +0 -3
  284. package/dist/node/codecs/der/decoders/decodeSequence.js +0 -20
  285. package/dist/node/codecs/der/decoders/decodeUTCTime.js +0 -63
  286. package/dist/node/codecs/oer/decoders/decodeBoolean.d.ts +0 -2
  287. package/dist/node/codecs/oer/decoders/decodeBoolean.js +0 -43
  288. package/dist/node/codecs/x690/decoders/decodeCharacterString.js +0 -18
  289. package/dist/node/codecs/x690/decoders/decodeDate.js +0 -16
  290. package/dist/node/codecs/x690/decoders/decodeDateTime.js +0 -19
  291. package/dist/node/codecs/x690/decoders/decodeEmbeddedPDV.js +0 -14
  292. package/dist/node/codecs/x690/decoders/decodeExternal.js +0 -78
  293. package/dist/node/codecs/x690/decoders/decodeGeneralString.js +0 -18
  294. package/dist/node/codecs/x690/decoders/decodeGraphicString.js +0 -18
  295. package/dist/node/codecs/x690/decoders/decodeInteger.js +0 -51
  296. package/dist/node/codecs/x690/decoders/decodeNumericString.js +0 -18
  297. package/dist/node/codecs/x690/decoders/decodeOIDIRI.js +0 -10
  298. package/dist/node/codecs/x690/decoders/decodeObjectDescriptor.js +0 -18
  299. package/dist/node/codecs/x690/decoders/decodeObjectIdentifier.js +0 -85
  300. package/dist/node/codecs/x690/decoders/decodePrintableString.js +0 -19
  301. package/dist/node/codecs/x690/decoders/decodeRelativeOIDIRI.js +0 -10
  302. package/dist/node/codecs/x690/decoders/decodeRelativeObjectIdentifier.js +0 -60
  303. package/dist/node/codecs/x690/decoders/decodeTime.js +0 -10
  304. package/dist/node/codecs/x690/decoders/decodeTimeOfDay.js +0 -20
  305. package/dist/node/codecs/x690/decoders/decodeVisibleString.js +0 -18
  306. package/dist/node/codecs/x690/encoders/encodeBitString.js +0 -19
  307. package/dist/node/codecs/x690/encoders/encodeBoolean.js +0 -6
  308. package/dist/node/codecs/x690/encoders/encodeCharacterString.js +0 -15
  309. package/dist/node/codecs/x690/encoders/encodeDate.js +0 -50
  310. package/dist/node/codecs/x690/encoders/encodeDateTime.js +0 -53
  311. package/dist/node/codecs/x690/encoders/encodeEmbeddedPDV.js +0 -15
  312. package/dist/node/codecs/x690/encoders/encodeExternal.js +0 -42
  313. package/dist/node/codecs/x690/encoders/encodeInteger.js +0 -7
  314. package/dist/node/codecs/x690/encoders/encodeOIDIRI.js +0 -10
  315. package/dist/node/codecs/x690/encoders/encodeObjectIdentifier.d.ts +0 -2
  316. package/dist/node/codecs/x690/encoders/encodeReal.js +0 -10
  317. package/dist/node/codecs/x690/encoders/encodeRelativeOIDIRI.js +0 -10
  318. package/dist/node/codecs/x690/encoders/encodeSequence.d.ts +0 -3
  319. package/dist/node/codecs/x690/encoders/encodeSequence.js +0 -6
  320. package/dist/node/codecs/x690/encoders/encodeTime.js +0 -10
  321. package/dist/node/codecs/x690/encoders/encodeTimeOfDay.js +0 -10
  322. package/dist/node/codecs/x696/encoders/encodeBoolean.d.ts +0 -2
  323. package/dist/node/codecs/x696/encoders/encodeBoolean.js +0 -6
  324. package/dist/node/functional.js +0 -880
  325. package/dist/node/index.d.ts +0 -16
  326. package/dist/node/index.js +0 -42
  327. package/dist/node/interfaces/Byteable.d.ts +0 -4
  328. package/dist/node/interfaces/Byteable.js +0 -2
  329. package/dist/node/interfaces/CharacterValidationFunction.js +0 -2
  330. package/dist/node/interfaces/Debyteable.js +0 -2
  331. package/dist/node/interfaces/Deelementable.js +0 -2
  332. package/dist/node/interfaces/Destringable.js +0 -2
  333. package/dist/node/interfaces/Elementable.d.ts +0 -4
  334. package/dist/node/interfaces/Elementable.js +0 -2
  335. package/dist/node/interfaces/Enbyteable.js +0 -2
  336. package/dist/node/interfaces/Enelementable.js +0 -2
  337. package/dist/node/interfaces/Enstringable.js +0 -2
  338. package/dist/node/interfaces/Identified.js +0 -2
  339. package/dist/node/interfaces/Long.js +0 -2
  340. package/dist/node/interfaces/Named.js +0 -2
  341. package/dist/node/interfaces/Stringable.d.ts +0 -4
  342. package/dist/node/interfaces/Stringable.js +0 -2
  343. package/dist/node/interfaces/index.d.ts +0 -12
  344. package/dist/node/interfaces/index.js +0 -2
  345. package/dist/node/macros.js +0 -21
  346. package/dist/node/types/TypeIdentifier.js +0 -9
  347. package/dist/node/types/index.d.ts +0 -18
  348. package/dist/node/types/index.js +0 -42
  349. package/dist/node/types/time/DATE-ENCODING.js +0 -16
  350. package/dist/node/types/time/DURATION-EQUIVALENT.js +0 -124
  351. package/dist/node/types/time/DURATION-INTERVAL-ENCODING.js +0 -81
  352. package/dist/node/types/time/HOURS-DIFF-ENCODING.js +0 -15
  353. package/dist/node/types/time/HOURS-ENCODING.js +0 -13
  354. package/dist/node/types/time/HOURS-MINUTES-DIFF-ENCODING.js +0 -17
  355. package/dist/node/types/time/HOURS-MINUTES-ENCODING.js +0 -15
  356. package/dist/node/types/time/TIME-OF-DAY-DIFF-ENCODING.js +0 -19
  357. package/dist/node/types/time/TIME-OF-DAY-ENCODING.js +0 -17
  358. package/dist/node/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.js +0 -21
  359. package/dist/node/types/time/TIME-OF-DAY-FRACTION-ENCODING.js +0 -19
  360. package/dist/node/types/time/YEAR-ENCODING.js +0 -8
  361. package/dist/node/types/time/YEAR-MONTH-ENCODING.js +0 -14
  362. package/dist/node/utils/base128Length.js +0 -6
  363. package/dist/node/utils/convertTextToBytes.js +0 -13
  364. package/dist/node/utils/decodeIEEE754DoublePrecisionFloat.js +0 -6
  365. package/dist/node/utils/decodeIEEE754SinglePrecisionFloat.js +0 -6
  366. package/dist/node/utils/decodeSignedBigEndianInteger.js +0 -48
  367. package/dist/node/utils/decodeUnsignedBigEndianInteger.js +0 -48
  368. package/dist/node/utils/decodeX690RealNumber.js +0 -147
  369. package/dist/node/utils/dissectFloat.js +0 -16
  370. package/dist/node/utils/encodeIEEE754DoublePrecisionFloat.js +0 -6
  371. package/dist/node/utils/encodeIEEE754SinglePrecisionFloat.js +0 -6
  372. package/dist/node/utils/encodeSignedBigEndianInteger.js +0 -72
  373. package/dist/node/utils/encodeUnsignedBigEndianInteger.js +0 -58
  374. package/dist/node/utils/encodeX690Base10RealNumber.js +0 -27
  375. package/dist/node/utils/encodeX690BinaryRealNumber.js +0 -82
  376. package/dist/node/utils/getBitFromBase128.js +0 -7
  377. package/dist/node/utils/getBitFromBase256.js +0 -6
  378. package/dist/node/utils/index.js +0 -50
  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/utils/base128Length.d.ts → utils/base128Length.d.mts} +0 -0
  400. /package/dist/{node/utils/convertBytesToText.d.ts → utils/convertBytesToText.d.mts} +0 -0
  401. /package/dist/{node/utils/convertTextToBytes.d.ts → utils/convertTextToBytes.d.mts} +0 -0
  402. /package/dist/{node/utils/decodeIEEE754DoublePrecisionFloat.d.ts → utils/decodeIEEE754DoublePrecisionFloat.d.mts} +0 -0
  403. /package/dist/{node/utils/decodeIEEE754SinglePrecisionFloat.d.ts → utils/decodeIEEE754SinglePrecisionFloat.d.mts} +0 -0
  404. /package/dist/{node/utils/decodeSignedBigEndianInteger.d.ts → utils/decodeSignedBigEndianInteger.d.mts} +0 -0
  405. /package/dist/{node/utils/decodeUnsignedBigEndianInteger.d.ts → utils/decodeUnsignedBigEndianInteger.d.mts} +0 -0
  406. /package/dist/{node/utils/decodeX690RealNumber.d.ts → utils/decodeX690RealNumber.d.mts} +0 -0
  407. /package/dist/{node/utils/dissectFloat.d.ts → utils/dissectFloat.d.mts} +0 -0
  408. /package/dist/{node/utils/encodeIEEE754DoublePrecisionFloat.d.ts → utils/encodeIEEE754DoublePrecisionFloat.d.mts} +0 -0
  409. /package/dist/{node/utils/encodeIEEE754SinglePrecisionFloat.d.ts → utils/encodeIEEE754SinglePrecisionFloat.d.mts} +0 -0
  410. /package/dist/{node/utils/encodeSignedBigEndianInteger.d.ts → utils/encodeSignedBigEndianInteger.d.mts} +0 -0
  411. /package/dist/{node/utils/encodeUnsignedBigEndianInteger.d.ts → utils/encodeUnsignedBigEndianInteger.d.mts} +0 -0
  412. /package/dist/{node/utils/encodeX690Base10RealNumber.d.ts → utils/encodeX690Base10RealNumber.d.mts} +0 -0
  413. /package/dist/{node/utils/encodeX690BinaryRealNumber.d.ts → utils/encodeX690BinaryRealNumber.d.mts} +0 -0
  414. /package/dist/{node/utils/getBitFromBase128.d.ts → utils/getBitFromBase128.d.mts} +0 -0
  415. /package/dist/{node/utils/getBitFromBase256.d.ts → utils/getBitFromBase256.d.mts} +0 -0
  416. /package/dist/{node/utils/setBitInBase128.d.ts → utils/setBitInBase128.d.mts} +0 -0
  417. /package/dist/{node/utils/setBitInBase256.d.ts → utils/setBitInBase256.d.mts} +0 -0
  418. /package/dist/{node/utils/splitOctetsCanonically.d.ts → utils/splitOctetsCanonically.d.mts} +0 -0
  419. /package/dist/{node/utils/trimLeadingPaddingBytes.d.ts → utils/trimLeadingPaddingBytes.d.mts} +0 -0
  420. /package/dist/{node/validators/isGeneralCharacter.d.ts → validators/isGeneralCharacter.d.mts} +0 -0
  421. /package/dist/{node/validators/isGraphicCharacter.d.ts → validators/isGraphicCharacter.d.mts} +0 -0
  422. /package/dist/{node/validators/isNumericCharacter.d.ts → validators/isNumericCharacter.d.mts} +0 -0
  423. /package/dist/{node/validators/isObjectDescriptorCharacter.d.ts → validators/isObjectDescriptorCharacter.d.mts} +0 -0
  424. /package/dist/{node/validators/isPrintableCharacter.d.ts → validators/isPrintableCharacter.d.mts} +0 -0
  425. /package/dist/{node/validators/isVisibleCharacter.d.ts → validators/isVisibleCharacter.d.mts} +0 -0
  426. /package/dist/{node/validators/validateDate.d.ts → validators/validateDate.d.mts} +0 -0
  427. /package/dist/{node/validators/validateDateTime.d.ts → validators/validateDateTime.d.mts} +0 -0
  428. /package/dist/{node/validators/validateTime.d.ts → validators/validateTime.d.mts} +0 -0
  429. /package/dist/{node/values.d.ts → values.d.mts} +0 -0
@@ -1,880 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._decodeEnumerated = exports._decodeEmbeddedPDV = exports._decodeDuration = exports._decodeDateTime = exports._decodeDate = exports._decodeUnrestrictedCharacterString = exports._decodeBoolean = exports._decodeBitString = exports._encodeAny = exports._encodeObjectDescriptor = exports._encodeUTCTime = exports._encodeGeneralizedTime = exports._encodeVisibleString = exports._encodeVideotexString = exports._encodeUTF8String = exports._encodeUniversalString = exports._encodeT61String = exports._encodeTeletexString = exports._encodePrintableString = exports._encodeNumericString = exports._encodeISO646String = exports._encodeIA5String = exports._encodeGraphicString = exports._encodeGeneralString = exports._encodeBMPString = exports._encodeTimeOfDay = exports._encodeTime = exports._encodeSet = exports._encodeSequence = exports._encodeRelativeOID = exports._encodeRelativeIRI = exports._encodeReal = exports._encodeOctetString = exports._encodeObjectIdentifier = exports._encodeNull = exports._encodeIRI = exports._encodeInteger = exports._encodeInstanceOf = exports._encodeExternal = exports._encodeEnumerated = exports._encodeEmbeddedPDV = exports._encodeDuration = exports._encodeDateTime = exports._encodeDate = exports._encodeUnrestrictedCharacterString = exports._encodeBoolean = exports._encodeBitString = exports.DER = exports.CER = exports.BER = void 0;
4
- exports._decodeBigInt = exports._encodeBigInt = exports.ComponentSpec = exports._decodeAny = exports._decodeObjectDescriptor = exports._decodeUTCTime = exports._decodeGeneralizedTime = exports._decodeVisibleString = exports._decodeVideotexString = exports._decodeUTF8String = exports._decodeUniversalString = exports._decodeT61String = exports._decodeTeletexString = exports._decodePrintableString = exports._decodeNumericString = exports._decodeISO646String = exports._decodeIA5String = exports._decodeGraphicString = exports._decodeGeneralString = exports._decodeBMPString = exports._decodeTimeOfDay = exports._decodeTime = exports._decodeSet = exports._decodeSequence = exports._decodeRelativeOID = exports._decodeRelativeIRI = exports._decodeReal = exports._decodeOctetString = exports._decodeObjectIdentifier = exports._decodeNull = exports._decodeIRI = exports._decodeInteger = exports._decodeInstanceOf = exports._decodeExternal = void 0;
5
- exports.hasTag = hasTag;
6
- exports.hasAnyTag = hasAnyTag;
7
- exports.hasTagClass = hasTagClass;
8
- exports.hasTagNumberIn = hasTagNumberIn;
9
- exports.and = and;
10
- exports.or = or;
11
- exports.not = not;
12
- exports.tagClassName = tagClassName;
13
- exports.deepEq = deepEq;
14
- exports.isDefault = isDefault;
15
- exports.present = present;
16
- exports._encode_explicit = _encode_explicit;
17
- exports._decode_explicit = _decode_explicit;
18
- exports._encode_implicit = _encode_implicit;
19
- exports._decode_implicit = _decode_implicit;
20
- exports._tagClass = _tagClass;
21
- exports._construction = _construction;
22
- exports._tagNumber = _tagNumber;
23
- exports._parse_set = _parse_set;
24
- exports._parse_component_type_list = _parse_component_type_list;
25
- exports._get_possible_initial_components = _get_possible_initial_components;
26
- exports._parse_sequence_with_trailing_rctl = _parse_sequence_with_trailing_rctl;
27
- exports._parse_sequence_without_trailing_rctl = _parse_sequence_without_trailing_rctl;
28
- exports._parse_sequence = _parse_sequence;
29
- exports._encode_choice = _encode_choice;
30
- exports._decode_inextensible_choice = _decode_inextensible_choice;
31
- exports._decode_extensible_choice = _decode_extensible_choice;
32
- exports._decodeSequenceOf = _decodeSequenceOf;
33
- exports._encodeSequenceOf = _encodeSequenceOf;
34
- exports._decodeSetOf = _decodeSetOf;
35
- exports._encodeSetOf = _encodeSetOf;
36
- const index_1 = require("./index");
37
- function hasTag(tagClass, tagNumber) {
38
- return function (index, elements) {
39
- const el = elements[index];
40
- return ((el.tagClass === tagClass) && (el.tagNumber === tagNumber));
41
- };
42
- }
43
- function hasAnyTag() {
44
- return true;
45
- }
46
- function hasTagClass(tagClass) {
47
- return function (index, elements) {
48
- return (elements[index].tagClass === tagClass);
49
- };
50
- }
51
- function hasTagNumberIn(tagNumbers) {
52
- return function (index, elements) {
53
- return tagNumbers.some((tn) => tn === elements[index].tagNumber);
54
- };
55
- }
56
- function and(...fns) {
57
- return function (index, elements) {
58
- return fns.every((fn) => fn(index, elements));
59
- };
60
- }
61
- function or(...fns) {
62
- return function (index, elements) {
63
- return fns.some((fn) => fn(index, elements));
64
- };
65
- }
66
- function not(fn) {
67
- return function (index, elements) {
68
- return !fn(index, elements);
69
- };
70
- }
71
- function tagClassName(tagClass) {
72
- switch (tagClass) {
73
- case (index_1.ASN1TagClass.universal): return "UNIVERSAL";
74
- case (index_1.ASN1TagClass.context): return "CONTEXT";
75
- case (index_1.ASN1TagClass.application): return "APPLICATION";
76
- case (index_1.ASN1TagClass.private): return "PRIVATE";
77
- default: {
78
- throw new Error(`Unrecognized ASN.1 Tag Class ${tagClass}.`);
79
- }
80
- }
81
- }
82
- function deepEq(value1, value2) {
83
- try {
84
- if (value1 === value2) {
85
- return true;
86
- }
87
- if (((typeof value1 === "bigint") || (typeof value1 === "number"))
88
- && ((typeof value2 === "bigint") || (typeof value2 === "number"))) {
89
- return (BigInt(value1) === BigInt(value2));
90
- }
91
- return (JSON.stringify(value1) === JSON.stringify(value2));
92
- }
93
- catch {
94
- return false;
95
- }
96
- }
97
- function isDefault(defaultValue) {
98
- return function (actualValue) {
99
- return deepEq(defaultValue, actualValue);
100
- };
101
- }
102
- function present(value) {
103
- return (value !== undefined);
104
- }
105
- function _encode_explicit(class_, tag, encoderGetter, outer) {
106
- return function (value, elGetter) {
107
- const ret = outer(value, outer);
108
- ret.sequence = [encoderGetter()(value, elGetter)];
109
- ret.construction = index_1.ASN1Construction.constructed;
110
- if (class_) {
111
- ret.tagClass = class_;
112
- }
113
- if (typeof tag !== "undefined") {
114
- ret.tagNumber = tag;
115
- }
116
- return ret;
117
- };
118
- }
119
- function _decode_explicit(decoderGetter) {
120
- return (el) => decoderGetter()(el.inner);
121
- }
122
- function _encode_implicit(class_, tag, encoderGetter, outer) {
123
- return function (value, elGetter) {
124
- const ret = encoderGetter()(value, elGetter);
125
- if (class_) {
126
- ret.tagClass = class_;
127
- }
128
- if (typeof tag !== "undefined") {
129
- ret.tagNumber = tag;
130
- }
131
- return ret;
132
- };
133
- }
134
- function _decode_implicit(decoderGetter) {
135
- return (el) => decoderGetter()(el);
136
- }
137
- function _tagClass(class_, encoderGetter) {
138
- const el = encoderGetter()();
139
- el.tagClass = class_;
140
- return el;
141
- }
142
- function _construction(con, encoderGetter) {
143
- const el = encoderGetter()();
144
- el.construction = con;
145
- return el;
146
- }
147
- function _tagNumber(tag, encoderGetter) {
148
- const el = encoderGetter()();
149
- el.tagNumber = tag;
150
- return el;
151
- }
152
- const BER = () => new index_1.BERElement();
153
- exports.BER = BER;
154
- const CER = () => new index_1.CERElement();
155
- exports.CER = CER;
156
- const DER = () => new index_1.DERElement();
157
- exports.DER = DER;
158
- const _encodeBitString = (value, elGetter) => {
159
- const el = elGetter(value, elGetter);
160
- el.bitString = value;
161
- el.tagClass = index_1.ASN1TagClass.universal;
162
- el.tagNumber = index_1.ASN1UniversalType.bitString;
163
- return el;
164
- };
165
- exports._encodeBitString = _encodeBitString;
166
- const _encodeBoolean = (value, elGetter) => {
167
- const el = elGetter(value, elGetter);
168
- el.boolean = value;
169
- el.tagClass = index_1.ASN1TagClass.universal;
170
- el.tagNumber = index_1.ASN1UniversalType.boolean;
171
- return el;
172
- };
173
- exports._encodeBoolean = _encodeBoolean;
174
- const _encodeUnrestrictedCharacterString = (value, elGetter) => {
175
- const el = elGetter(value, elGetter);
176
- el.characterString = value;
177
- el.tagClass = index_1.ASN1TagClass.universal;
178
- el.tagNumber = index_1.ASN1UniversalType.characterString;
179
- return el;
180
- };
181
- exports._encodeUnrestrictedCharacterString = _encodeUnrestrictedCharacterString;
182
- const _encodeDate = (value, elGetter) => {
183
- const el = elGetter(value, elGetter);
184
- el.date = value;
185
- el.tagClass = index_1.ASN1TagClass.universal;
186
- el.tagNumber = index_1.ASN1UniversalType.date;
187
- return el;
188
- };
189
- exports._encodeDate = _encodeDate;
190
- const _encodeDateTime = (value, elGetter) => {
191
- const el = elGetter(value, elGetter);
192
- el.dateTime = value;
193
- el.tagClass = index_1.ASN1TagClass.universal;
194
- el.tagNumber = index_1.ASN1UniversalType.dateTime;
195
- return el;
196
- };
197
- exports._encodeDateTime = _encodeDateTime;
198
- const _encodeDuration = (value, elGetter) => {
199
- const el = elGetter(value, elGetter);
200
- el.duration = value;
201
- el.tagClass = index_1.ASN1TagClass.universal;
202
- el.tagNumber = index_1.ASN1UniversalType.duration;
203
- return el;
204
- };
205
- exports._encodeDuration = _encodeDuration;
206
- const _encodeEmbeddedPDV = (value, elGetter) => {
207
- const el = elGetter(value, elGetter);
208
- el.embeddedPDV = value;
209
- el.tagClass = index_1.ASN1TagClass.universal;
210
- el.tagNumber = index_1.ASN1UniversalType.embeddedPDV;
211
- return el;
212
- };
213
- exports._encodeEmbeddedPDV = _encodeEmbeddedPDV;
214
- const _encodeEnumerated = (value, elGetter) => {
215
- const el = elGetter(value, elGetter);
216
- el.enumerated = value;
217
- el.tagClass = index_1.ASN1TagClass.universal;
218
- el.tagNumber = index_1.ASN1UniversalType.enumerated;
219
- return el;
220
- };
221
- exports._encodeEnumerated = _encodeEnumerated;
222
- const _encodeExternal = (value, elGetter) => {
223
- const el = elGetter(value, elGetter);
224
- el.external = value;
225
- el.tagClass = index_1.ASN1TagClass.universal;
226
- el.tagNumber = index_1.ASN1UniversalType.external;
227
- return el;
228
- };
229
- exports._encodeExternal = _encodeExternal;
230
- const _encodeInstanceOf = (value, elGetter) => {
231
- const el = elGetter(value, elGetter);
232
- el.external = value;
233
- el.tagClass = index_1.ASN1TagClass.universal;
234
- el.tagNumber = index_1.ASN1UniversalType.external;
235
- return el;
236
- };
237
- exports._encodeInstanceOf = _encodeInstanceOf;
238
- const _encodeInteger = (value, elGetter) => {
239
- const el = elGetter(value, elGetter);
240
- el.integer = value;
241
- el.tagClass = index_1.ASN1TagClass.universal;
242
- el.tagNumber = index_1.ASN1UniversalType.integer;
243
- return el;
244
- };
245
- exports._encodeInteger = _encodeInteger;
246
- const _encodeIRI = (value, elGetter) => {
247
- const el = elGetter(value, elGetter);
248
- el.oidIRI = value;
249
- el.tagClass = index_1.ASN1TagClass.universal;
250
- el.tagNumber = index_1.ASN1UniversalType.oidIRI;
251
- return el;
252
- };
253
- exports._encodeIRI = _encodeIRI;
254
- const _encodeNull = (value, elGetter) => {
255
- const el = elGetter(value, elGetter);
256
- el.value = new Uint8Array(0);
257
- el.tagClass = index_1.ASN1TagClass.universal;
258
- el.tagNumber = index_1.ASN1UniversalType.nill;
259
- return el;
260
- };
261
- exports._encodeNull = _encodeNull;
262
- const _encodeObjectIdentifier = (value, elGetter) => {
263
- const el = elGetter(value, elGetter);
264
- el.objectIdentifier = value;
265
- el.tagClass = index_1.ASN1TagClass.universal;
266
- el.tagNumber = index_1.ASN1UniversalType.objectIdentifier;
267
- return el;
268
- };
269
- exports._encodeObjectIdentifier = _encodeObjectIdentifier;
270
- const _encodeOctetString = (value, elGetter) => {
271
- const el = elGetter(value, elGetter);
272
- el.octetString = value;
273
- el.tagClass = index_1.ASN1TagClass.universal;
274
- el.tagNumber = index_1.ASN1UniversalType.octetString;
275
- return el;
276
- };
277
- exports._encodeOctetString = _encodeOctetString;
278
- const _encodeReal = (value, elGetter) => {
279
- const el = elGetter(value, elGetter);
280
- el.real = value;
281
- el.tagClass = index_1.ASN1TagClass.universal;
282
- el.tagNumber = index_1.ASN1UniversalType.realNumber;
283
- return el;
284
- };
285
- exports._encodeReal = _encodeReal;
286
- const _encodeRelativeIRI = (value, elGetter) => {
287
- const el = elGetter(value, elGetter);
288
- el.relativeOIDIRI = value;
289
- el.tagClass = index_1.ASN1TagClass.universal;
290
- el.tagNumber = index_1.ASN1UniversalType.roidIRI;
291
- return el;
292
- };
293
- exports._encodeRelativeIRI = _encodeRelativeIRI;
294
- const _encodeRelativeOID = (value, elGetter) => {
295
- const el = elGetter(value, elGetter);
296
- el.relativeObjectIdentifier = value;
297
- el.tagClass = index_1.ASN1TagClass.universal;
298
- el.tagNumber = index_1.ASN1UniversalType.relativeOID;
299
- return el;
300
- };
301
- exports._encodeRelativeOID = _encodeRelativeOID;
302
- const _encodeSequence = (value, elGetter) => {
303
- const el = elGetter(value, elGetter);
304
- el.sequence = value;
305
- el.tagClass = index_1.ASN1TagClass.universal;
306
- el.tagNumber = index_1.ASN1UniversalType.sequence;
307
- return el;
308
- };
309
- exports._encodeSequence = _encodeSequence;
310
- const _encodeSet = (value, elGetter) => {
311
- const el = elGetter(value, elGetter);
312
- el.set = value;
313
- el.tagClass = index_1.ASN1TagClass.universal;
314
- el.tagNumber = index_1.ASN1UniversalType.set;
315
- return el;
316
- };
317
- exports._encodeSet = _encodeSet;
318
- const _encodeTime = (value, elGetter) => {
319
- const el = elGetter(value, elGetter);
320
- el.time = value;
321
- el.tagClass = index_1.ASN1TagClass.universal;
322
- el.tagNumber = index_1.ASN1UniversalType.time;
323
- return el;
324
- };
325
- exports._encodeTime = _encodeTime;
326
- const _encodeTimeOfDay = (value, elGetter) => {
327
- const el = elGetter(value, elGetter);
328
- el.timeOfDay = value;
329
- el.tagClass = index_1.ASN1TagClass.universal;
330
- el.tagNumber = index_1.ASN1UniversalType.timeOfDay;
331
- return el;
332
- };
333
- exports._encodeTimeOfDay = _encodeTimeOfDay;
334
- const _encodeBMPString = (value, elGetter) => {
335
- const el = elGetter(value, elGetter);
336
- el.bmpString = value;
337
- el.tagClass = index_1.ASN1TagClass.universal;
338
- el.tagNumber = index_1.ASN1UniversalType.bmpString;
339
- return el;
340
- };
341
- exports._encodeBMPString = _encodeBMPString;
342
- const _encodeGeneralString = (value, elGetter) => {
343
- const el = elGetter(value, elGetter);
344
- el.generalString = value;
345
- el.tagClass = index_1.ASN1TagClass.universal;
346
- el.tagNumber = index_1.ASN1UniversalType.generalString;
347
- return el;
348
- };
349
- exports._encodeGeneralString = _encodeGeneralString;
350
- const _encodeGraphicString = (value, elGetter) => {
351
- const el = elGetter(value, elGetter);
352
- el.graphicString = value;
353
- el.tagClass = index_1.ASN1TagClass.universal;
354
- el.tagNumber = index_1.ASN1UniversalType.graphicString;
355
- return el;
356
- };
357
- exports._encodeGraphicString = _encodeGraphicString;
358
- const _encodeIA5String = (value, elGetter) => {
359
- const el = elGetter(value, elGetter);
360
- el.ia5String = value;
361
- el.tagClass = index_1.ASN1TagClass.universal;
362
- el.tagNumber = index_1.ASN1UniversalType.ia5String;
363
- return el;
364
- };
365
- exports._encodeIA5String = _encodeIA5String;
366
- const _encodeISO646String = (value, elGetter) => {
367
- const el = elGetter(value, elGetter);
368
- el.ia5String = value;
369
- el.tagClass = index_1.ASN1TagClass.universal;
370
- el.tagNumber = index_1.ASN1UniversalType.ia5String;
371
- return el;
372
- };
373
- exports._encodeISO646String = _encodeISO646String;
374
- const _encodeNumericString = (value, elGetter) => {
375
- const el = elGetter(value, elGetter);
376
- el.numericString = value;
377
- el.tagClass = index_1.ASN1TagClass.universal;
378
- el.tagNumber = index_1.ASN1UniversalType.numericString;
379
- return el;
380
- };
381
- exports._encodeNumericString = _encodeNumericString;
382
- const _encodePrintableString = (value, elGetter) => {
383
- const el = elGetter(value, elGetter);
384
- el.printableString = value;
385
- el.tagClass = index_1.ASN1TagClass.universal;
386
- el.tagNumber = index_1.ASN1UniversalType.printableString;
387
- return el;
388
- };
389
- exports._encodePrintableString = _encodePrintableString;
390
- const _encodeTeletexString = (value, elGetter) => {
391
- const el = elGetter(value, elGetter);
392
- el.teletexString = value;
393
- el.tagClass = index_1.ASN1TagClass.universal;
394
- el.tagNumber = index_1.ASN1UniversalType.teletexString;
395
- return el;
396
- };
397
- exports._encodeTeletexString = _encodeTeletexString;
398
- const _encodeT61String = (value, elGetter) => {
399
- const el = elGetter(value, elGetter);
400
- el.teletexString = value;
401
- el.tagClass = index_1.ASN1TagClass.universal;
402
- el.tagNumber = index_1.ASN1UniversalType.teletexString;
403
- return el;
404
- };
405
- exports._encodeT61String = _encodeT61String;
406
- const _encodeUniversalString = (value, elGetter) => {
407
- const el = elGetter(value, elGetter);
408
- el.universalString = value;
409
- el.tagClass = index_1.ASN1TagClass.universal;
410
- el.tagNumber = index_1.ASN1UniversalType.universalString;
411
- return el;
412
- };
413
- exports._encodeUniversalString = _encodeUniversalString;
414
- const _encodeUTF8String = (value, elGetter) => {
415
- const el = elGetter(value, elGetter);
416
- el.utf8String = value;
417
- el.tagClass = index_1.ASN1TagClass.universal;
418
- el.tagNumber = index_1.ASN1UniversalType.utf8String;
419
- return el;
420
- };
421
- exports._encodeUTF8String = _encodeUTF8String;
422
- const _encodeVideotexString = (value, elGetter) => {
423
- const el = elGetter(value, elGetter);
424
- el.videotexString = value;
425
- el.tagClass = index_1.ASN1TagClass.universal;
426
- el.tagNumber = index_1.ASN1UniversalType.videotexString;
427
- return el;
428
- };
429
- exports._encodeVideotexString = _encodeVideotexString;
430
- const _encodeVisibleString = (value, elGetter) => {
431
- const el = elGetter(value, elGetter);
432
- el.visibleString = value;
433
- el.tagClass = index_1.ASN1TagClass.universal;
434
- el.tagNumber = index_1.ASN1UniversalType.visibleString;
435
- return el;
436
- };
437
- exports._encodeVisibleString = _encodeVisibleString;
438
- const _encodeGeneralizedTime = (value, elGetter) => {
439
- const el = elGetter(value, elGetter);
440
- el.generalizedTime = value;
441
- el.tagClass = index_1.ASN1TagClass.universal;
442
- el.tagNumber = index_1.ASN1UniversalType.generalizedTime;
443
- return el;
444
- };
445
- exports._encodeGeneralizedTime = _encodeGeneralizedTime;
446
- const _encodeUTCTime = (value, elGetter) => {
447
- const el = elGetter(value, elGetter);
448
- el.utcTime = value;
449
- el.tagClass = index_1.ASN1TagClass.universal;
450
- el.tagNumber = index_1.ASN1UniversalType.utcTime;
451
- return el;
452
- };
453
- exports._encodeUTCTime = _encodeUTCTime;
454
- const _encodeObjectDescriptor = (value, elGetter) => {
455
- const el = elGetter(value, elGetter);
456
- el.objectDescriptor = value;
457
- el.tagClass = index_1.ASN1TagClass.universal;
458
- el.tagNumber = index_1.ASN1UniversalType.objectDescriptor;
459
- return el;
460
- };
461
- exports._encodeObjectDescriptor = _encodeObjectDescriptor;
462
- const _encodeAny = (value) => {
463
- return value;
464
- };
465
- exports._encodeAny = _encodeAny;
466
- const _decodeBitString = (el) => {
467
- return el.bitString;
468
- };
469
- exports._decodeBitString = _decodeBitString;
470
- const _decodeBoolean = (el) => {
471
- return el.boolean;
472
- };
473
- exports._decodeBoolean = _decodeBoolean;
474
- const _decodeUnrestrictedCharacterString = (el) => {
475
- return el.characterString;
476
- };
477
- exports._decodeUnrestrictedCharacterString = _decodeUnrestrictedCharacterString;
478
- const _decodeDate = (el) => {
479
- return el.date;
480
- };
481
- exports._decodeDate = _decodeDate;
482
- const _decodeDateTime = (el) => {
483
- return el.dateTime;
484
- };
485
- exports._decodeDateTime = _decodeDateTime;
486
- const _decodeDuration = (el) => {
487
- return el.duration;
488
- };
489
- exports._decodeDuration = _decodeDuration;
490
- const _decodeEmbeddedPDV = (el) => {
491
- return el.embeddedPDV;
492
- };
493
- exports._decodeEmbeddedPDV = _decodeEmbeddedPDV;
494
- const _decodeEnumerated = (el) => {
495
- return el.enumerated;
496
- };
497
- exports._decodeEnumerated = _decodeEnumerated;
498
- const _decodeExternal = (el) => {
499
- return el.external;
500
- };
501
- exports._decodeExternal = _decodeExternal;
502
- const _decodeInstanceOf = (el) => {
503
- return el.external;
504
- };
505
- exports._decodeInstanceOf = _decodeInstanceOf;
506
- const _decodeInteger = (el) => {
507
- return el.integer;
508
- };
509
- exports._decodeInteger = _decodeInteger;
510
- const _decodeIRI = (el) => {
511
- return el.oidIRI;
512
- };
513
- exports._decodeIRI = _decodeIRI;
514
- const _decodeNull = () => {
515
- return null;
516
- };
517
- exports._decodeNull = _decodeNull;
518
- const _decodeObjectIdentifier = (el) => {
519
- return el.objectIdentifier;
520
- };
521
- exports._decodeObjectIdentifier = _decodeObjectIdentifier;
522
- const _decodeOctetString = (el) => {
523
- return el.octetString;
524
- };
525
- exports._decodeOctetString = _decodeOctetString;
526
- const _decodeReal = (el) => {
527
- return el.real;
528
- };
529
- exports._decodeReal = _decodeReal;
530
- const _decodeRelativeIRI = (el) => {
531
- return el.relativeOIDIRI;
532
- };
533
- exports._decodeRelativeIRI = _decodeRelativeIRI;
534
- const _decodeRelativeOID = (el) => {
535
- return el.relativeObjectIdentifier;
536
- };
537
- exports._decodeRelativeOID = _decodeRelativeOID;
538
- const _decodeSequence = (el) => {
539
- return el.sequence;
540
- };
541
- exports._decodeSequence = _decodeSequence;
542
- const _decodeSet = (el) => {
543
- return el.set;
544
- };
545
- exports._decodeSet = _decodeSet;
546
- const _decodeTime = (el) => {
547
- return el.time;
548
- };
549
- exports._decodeTime = _decodeTime;
550
- const _decodeTimeOfDay = (el) => {
551
- return el.timeOfDay;
552
- };
553
- exports._decodeTimeOfDay = _decodeTimeOfDay;
554
- const _decodeBMPString = (el) => {
555
- return el.bmpString;
556
- };
557
- exports._decodeBMPString = _decodeBMPString;
558
- const _decodeGeneralString = (el) => {
559
- return el.generalString;
560
- };
561
- exports._decodeGeneralString = _decodeGeneralString;
562
- const _decodeGraphicString = (el) => {
563
- return el.graphicString;
564
- };
565
- exports._decodeGraphicString = _decodeGraphicString;
566
- const _decodeIA5String = (el) => {
567
- return el.ia5String;
568
- };
569
- exports._decodeIA5String = _decodeIA5String;
570
- const _decodeISO646String = (el) => {
571
- return el.ia5String;
572
- };
573
- exports._decodeISO646String = _decodeISO646String;
574
- const _decodeNumericString = (el) => {
575
- return el.numericString;
576
- };
577
- exports._decodeNumericString = _decodeNumericString;
578
- const _decodePrintableString = (el) => {
579
- return el.printableString;
580
- };
581
- exports._decodePrintableString = _decodePrintableString;
582
- const _decodeTeletexString = (el) => {
583
- return el.teletexString;
584
- };
585
- exports._decodeTeletexString = _decodeTeletexString;
586
- const _decodeT61String = (el) => {
587
- return el.teletexString;
588
- };
589
- exports._decodeT61String = _decodeT61String;
590
- const _decodeUniversalString = (el) => {
591
- return el.universalString;
592
- };
593
- exports._decodeUniversalString = _decodeUniversalString;
594
- const _decodeUTF8String = (el) => {
595
- return el.utf8String;
596
- };
597
- exports._decodeUTF8String = _decodeUTF8String;
598
- const _decodeVideotexString = (el) => {
599
- return el.videotexString;
600
- };
601
- exports._decodeVideotexString = _decodeVideotexString;
602
- const _decodeVisibleString = (el) => {
603
- return el.visibleString;
604
- };
605
- exports._decodeVisibleString = _decodeVisibleString;
606
- const _decodeGeneralizedTime = (el) => {
607
- return el.generalizedTime;
608
- };
609
- exports._decodeGeneralizedTime = _decodeGeneralizedTime;
610
- const _decodeUTCTime = (el) => {
611
- return el.utcTime;
612
- };
613
- exports._decodeUTCTime = _decodeUTCTime;
614
- const _decodeObjectDescriptor = (el) => {
615
- return el.objectDescriptor;
616
- };
617
- exports._decodeObjectDescriptor = _decodeObjectDescriptor;
618
- const _decodeAny = (el) => {
619
- return el;
620
- };
621
- exports._decodeAny = _decodeAny;
622
- class ComponentSpec {
623
- constructor(name, optional, selector, groupIndex, versionNumber) {
624
- this.name = name;
625
- this.optional = optional;
626
- this.selector = selector;
627
- this.groupIndex = groupIndex;
628
- this.versionNumber = versionNumber;
629
- }
630
- }
631
- exports.ComponentSpec = ComponentSpec;
632
- function _parse_set(set, decodingCallbacks, rootComponentTypeList1, extensionAdditionsList, rootComponentTypeList2, unrecognizedExtensionHandler = () => { }, maximumElements) {
633
- const rootComponents = rootComponentTypeList1.concat(rootComponentTypeList2);
634
- const components = rootComponents.concat(extensionAdditionsList);
635
- const elements = set.set;
636
- {
637
- const calculatedMaximumElements = (maximumElements === undefined)
638
- ? (components.length + 100)
639
- : maximumElements;
640
- if (elements.length > calculatedMaximumElements) {
641
- throw new Error(`SET '${set.name}' contained ${elements.length} elements, which exceeds the `
642
- + `limit of ${calculatedMaximumElements} permitted elements. This may be a result `
643
- + "of a Denial-of-Service (DoS) attack.");
644
- }
645
- }
646
- {
647
- const encounteredTags = new Set([]);
648
- for (const e of elements) {
649
- const tag = `${e.tagClass} ${e.tagNumber}`;
650
- if (encounteredTags.has(tag)) {
651
- throw new Error(`Duplicate tag '${tagClassName(e.tagClass)} ${e.tagNumber}' in SET '${set.name}'.`);
652
- }
653
- encounteredTags.add(tag);
654
- }
655
- }
656
- const encounteredComponents = new Set([]);
657
- const encounteredExtensionGroups = new Set([]);
658
- for (let i = 0; i < elements.length; i++) {
659
- const e = elements[i];
660
- const spec = components
661
- .find((cs) => cs.selector(i, elements));
662
- if (!spec) {
663
- unrecognizedExtensionHandler(e);
664
- continue;
665
- }
666
- if (encounteredComponents.has(spec.name)) {
667
- throw new Error(`SET '${set.name}' contained more than one '${spec.name}' component.`);
668
- }
669
- encounteredComponents.add(spec.name);
670
- if (spec.groupIndex !== undefined) {
671
- encounteredExtensionGroups.add(spec.groupIndex);
672
- }
673
- e.name = spec.name;
674
- if (spec.name in decodingCallbacks) {
675
- decodingCallbacks[spec.name](e, spec.name);
676
- }
677
- else {
678
- unrecognizedExtensionHandler(e);
679
- }
680
- }
681
- const missingRequiredComponents = rootComponents
682
- .filter((c) => (!c.optional && !encounteredComponents.has(c.name)))
683
- .map((c) => c.name);
684
- Array.from(encounteredExtensionGroups).forEach((exg) => {
685
- for (const c of extensionAdditionsList) {
686
- if (!((c.groupIndex === exg)
687
- && !c.optional
688
- && !encounteredComponents.has(c.name))) {
689
- continue;
690
- }
691
- missingRequiredComponents.push(c.name);
692
- }
693
- });
694
- if (missingRequiredComponents.length > 0) {
695
- throw new Error(`SET '${set.name}' missing these required components: ${missingRequiredComponents.join(", ")}.`);
696
- }
697
- }
698
- function _parse_component_type_list(componentTypeList, decodingCallbacks, elements, isExtensionAdditionsList) {
699
- let e = 0;
700
- let s = 0;
701
- let currentGroup = undefined;
702
- while (s < componentTypeList.length) {
703
- const element = elements[e];
704
- const spec = componentTypeList[s];
705
- if (!element) {
706
- if (spec.optional) {
707
- s++;
708
- continue;
709
- }
710
- else if (isExtensionAdditionsList) {
711
- if ((spec.groupIndex !== undefined) && (spec.groupIndex <= (currentGroup || Infinity))) {
712
- throw new index_1.ASN1ConstructionError(`Missing required extension '${spec.name}' in SEQUENCE.`);
713
- }
714
- else {
715
- s++;
716
- continue;
717
- }
718
- }
719
- else {
720
- throw new index_1.ASN1ConstructionError(`Missing required component '${spec.name}' in SEQUENCE.`);
721
- }
722
- }
723
- if (spec.selector(e, elements)) {
724
- element.name = spec.name;
725
- if (spec.name in decodingCallbacks) {
726
- decodingCallbacks[spec.name](element, spec.name);
727
- }
728
- if (spec.groupIndex !== undefined) {
729
- currentGroup = spec.groupIndex;
730
- }
731
- e++;
732
- }
733
- else if (!spec.optional) {
734
- throw new Error(`Component '${spec.name}' missing from SEQUENCE.`);
735
- }
736
- s++;
737
- }
738
- return e;
739
- }
740
- function _get_possible_initial_components(componentTypeList) {
741
- let i = 0;
742
- while (i < componentTypeList.length) {
743
- if (!(componentTypeList[i++].optional)) {
744
- break;
745
- }
746
- }
747
- return componentTypeList.slice(0, i);
748
- }
749
- function _parse_sequence_with_trailing_rctl(seq, decodingCallbacks, rootComponentTypeList1, extensionAdditionsList, rootComponentTypeList2, unrecognizedExtensionHandler = () => { }) {
750
- const elements = seq.sequence;
751
- const startOfExtensions = _parse_component_type_list(rootComponentTypeList1, decodingCallbacks, elements, false);
752
- const possibleInitialRCTL2Components = _get_possible_initial_components(rootComponentTypeList2);
753
- const rctl2EntirelyOptional = rootComponentTypeList2.every((ct) => ct.optional);
754
- const extensionsOnwards = elements.slice(startOfExtensions);
755
- let numberOfExtensionElements = extensionsOnwards
756
- .findIndex((e, i) => possibleInitialRCTL2Components
757
- .some((pirctl2c) => pirctl2c.selector(i, extensionsOnwards)));
758
- if (numberOfExtensionElements === -1) {
759
- if (!rctl2EntirelyOptional) {
760
- throw new Error(`Trailing root component type list for SEQUENCE '${seq.name}' not found.`);
761
- }
762
- numberOfExtensionElements = elements.length - startOfExtensions;
763
- }
764
- const startOfRCTL2 = (startOfExtensions + numberOfExtensionElements);
765
- const numberOfExtensionsRead = _parse_component_type_list(extensionAdditionsList, decodingCallbacks, elements.slice(startOfExtensions, startOfRCTL2), true);
766
- const endOfRecognizedExtensions = (startOfExtensions + numberOfExtensionsRead);
767
- elements
768
- .slice(endOfRecognizedExtensions, startOfRCTL2)
769
- .forEach((x) => unrecognizedExtensionHandler(x));
770
- const numberOfRCTL2ElementsRead = _parse_component_type_list(rootComponentTypeList2, decodingCallbacks, elements.slice(startOfRCTL2), false);
771
- if (startOfRCTL2 + numberOfRCTL2ElementsRead !== elements.length) {
772
- throw new Error(`SEQUENCE '${seq.name}' had excess elements at the end.`);
773
- }
774
- }
775
- function _parse_sequence_without_trailing_rctl(seq, decodingCallbacks, rootComponentTypeList1, extensionAdditionsList, unrecognizedExtensionHandler = () => { }) {
776
- const elements = seq.sequence;
777
- const startOfExtensions = _parse_component_type_list(rootComponentTypeList1, decodingCallbacks, elements, false);
778
- const numberOfExtensionsRead = _parse_component_type_list(extensionAdditionsList, decodingCallbacks, elements.slice(startOfExtensions), true);
779
- const endOfRecognizedExtensions = (startOfExtensions + numberOfExtensionsRead);
780
- elements
781
- .slice(endOfRecognizedExtensions)
782
- .forEach((x) => unrecognizedExtensionHandler(x));
783
- }
784
- function _parse_sequence(seq, decodingCallbacks, rootComponentTypeList1, extensionAdditionsList, rootComponentTypeList2, unrecognizedExtensionHandler = () => { }) {
785
- if (rootComponentTypeList2.length > 0) {
786
- _parse_sequence_with_trailing_rctl(seq, decodingCallbacks, rootComponentTypeList1, extensionAdditionsList, rootComponentTypeList2, unrecognizedExtensionHandler);
787
- }
788
- else {
789
- _parse_sequence_without_trailing_rctl(seq, decodingCallbacks, rootComponentTypeList1, extensionAdditionsList, unrecognizedExtensionHandler);
790
- }
791
- }
792
- function _encode_choice(choices, elGetter) {
793
- return function (value) {
794
- if (value instanceof index_1.ASN1Element) {
795
- return value;
796
- }
797
- const key = Object.keys(value)[0];
798
- if (!key) {
799
- throw new Error("Empty choice value object.");
800
- }
801
- const encoder = choices[key];
802
- if (!encoder) {
803
- throw new Error(`Unrecognized alternative '${String(key)}'.`);
804
- }
805
- return encoder(value[key], elGetter);
806
- };
807
- }
808
- function _decode_inextensible_choice(choices) {
809
- return function (el) {
810
- const result = choices[`${tagClassName(el.tagClass)} ${el.tagNumber}`];
811
- if (!result) {
812
- if (choices["*"]) {
813
- const ret = {};
814
- ret[choices["*"][0]] = choices["*"][1](el);
815
- return ret;
816
- }
817
- else {
818
- throw new Error(`Unrecognized CHOICE tag '${tagClassName(el.tagClass)} ${el.tagNumber}'.`);
819
- }
820
- }
821
- const [name, decoder] = result;
822
- const ret = {};
823
- ret[name] = decoder(el);
824
- return ret;
825
- };
826
- }
827
- function _decode_extensible_choice(choices) {
828
- return function (el) {
829
- const result = choices[`${tagClassName(el.tagClass)} ${el.tagNumber}`];
830
- if (!result) {
831
- return el;
832
- }
833
- const [name, decoder] = result;
834
- const ret = {};
835
- ret[name] = decoder(el);
836
- return ret;
837
- };
838
- }
839
- function _decodeSequenceOf(decoderGetter) {
840
- return function (el) {
841
- return el.sequence.map(decoderGetter());
842
- };
843
- }
844
- function _encodeSequenceOf(encoderGetter, outerElGetter) {
845
- return function (value) {
846
- const el = outerElGetter(value, outerElGetter);
847
- const encoder = encoderGetter();
848
- el.sequence = value.map((v) => encoder(v, outerElGetter));
849
- el.tagClass = index_1.ASN1TagClass.universal;
850
- el.tagNumber = index_1.ASN1UniversalType.sequence;
851
- return el;
852
- };
853
- }
854
- function _decodeSetOf(decoderGetter) {
855
- return function (el) {
856
- return el.setOf.map(decoderGetter());
857
- };
858
- }
859
- function _encodeSetOf(encoderGetter, outerElGetter) {
860
- return function (value) {
861
- const el = outerElGetter(value, outerElGetter);
862
- const encoder = encoderGetter();
863
- el.setOf = value.map((v) => encoder(v, outerElGetter));
864
- el.tagClass = index_1.ASN1TagClass.universal;
865
- el.tagNumber = index_1.ASN1UniversalType.set;
866
- return el;
867
- };
868
- }
869
- const _encodeBigInt = (value, elGetter) => {
870
- const el = elGetter(value, elGetter);
871
- el.octetString = value;
872
- el.tagClass = index_1.ASN1TagClass.universal;
873
- el.tagNumber = index_1.ASN1UniversalType.integer;
874
- return el;
875
- };
876
- exports._encodeBigInt = _encodeBigInt;
877
- const _decodeBigInt = (el) => {
878
- return el.octetString;
879
- };
880
- exports._decodeBigInt = _decodeBigInt;