asn1-ts 11.0.1 → 11.0.3

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 (55) hide show
  1. package/dist/asn1.d.mts +2 -3
  2. package/dist/codecs/ber/encoders/encodeGeneralString.d.mts +2 -2
  3. package/dist/codecs/ber/encoders/encodeGeneralString.mjs +1 -2
  4. package/dist/codecs/ber/encoders/encodeGraphicString.d.mts +2 -2
  5. package/dist/codecs/ber/encoders/encodeGraphicString.mjs +1 -2
  6. package/dist/codecs/ber/encoders/encodeNumericString.d.mts +2 -2
  7. package/dist/codecs/ber/encoders/encodeNumericString.mjs +1 -2
  8. package/dist/codecs/ber/encoders/encodeObjectDescriptor.d.mts +2 -2
  9. package/dist/codecs/ber/encoders/encodeObjectDescriptor.mjs +1 -2
  10. package/dist/codecs/ber/encoders/encodePrintableString.d.mts +2 -2
  11. package/dist/codecs/ber/encoders/encodePrintableString.mjs +1 -2
  12. package/dist/codecs/ber/encoders/encodeVisibleString.d.mts +2 -2
  13. package/dist/codecs/ber/encoders/encodeVisibleString.mjs +1 -2
  14. package/dist/codecs/ber.d.mts +5 -5
  15. package/dist/codecs/ber.mjs +2 -1
  16. package/dist/codecs/cer.d.mts +7 -7
  17. package/dist/codecs/cer.mjs +2 -1
  18. package/dist/codecs/der.d.mts +5 -5
  19. package/dist/codecs/der.mjs +2 -1
  20. package/dist/codecs/x690/encoders/encodeBitString.d.mts +2 -2
  21. package/dist/codecs/x690/encoders/encodeBoolean.d.mts +2 -2
  22. package/dist/codecs/x690/encoders/encodeCharacterString.d.mts +2 -1
  23. package/dist/codecs/x690/encoders/encodeCharacterString.mjs +3 -1
  24. package/dist/codecs/x690/encoders/encodeDate.d.mts +2 -2
  25. package/dist/codecs/x690/encoders/encodeDateTime.d.mts +2 -2
  26. package/dist/codecs/x690/encoders/encodeDuration.d.mts +2 -2
  27. package/dist/codecs/x690/encoders/encodeEmbeddedPDV.d.mts +2 -2
  28. package/dist/codecs/x690/encoders/encodeEmbeddedPDV.mjs +3 -1
  29. package/dist/codecs/x690/encoders/encodeExternal.d.mts +2 -2
  30. package/dist/codecs/x690/encoders/encodeExternal.mjs +8 -4
  31. package/dist/codecs/x690/encoders/encodeGeneralizedTime.d.mts +2 -2
  32. package/dist/codecs/x690/encoders/encodeInteger.d.mts +2 -2
  33. package/dist/codecs/x690/encoders/encodeOIDIRI.d.mts +2 -2
  34. package/dist/codecs/x690/encoders/encodeObjectIdentifier.d.mts +2 -3
  35. package/dist/codecs/x690/encoders/encodeObjectIdentifier.mjs +0 -1
  36. package/dist/codecs/x690/encoders/encodeReal.d.mts +2 -2
  37. package/dist/codecs/x690/encoders/encodeRelativeOIDIRI.d.mts +2 -2
  38. package/dist/codecs/x690/encoders/encodeRelativeObjectIdentifier.d.mts +2 -2
  39. package/dist/codecs/x690/encoders/encodeSequence.d.mts +2 -2
  40. package/dist/codecs/x690/encoders/encodeTime.d.mts +2 -2
  41. package/dist/codecs/x690/encoders/encodeTimeOfDay.d.mts +2 -2
  42. package/dist/codecs/x690/encoders/encodeUTCTime.d.mts +2 -2
  43. package/dist/macros.d.mts +2 -0
  44. package/dist/types/ObjectIdentifier.d.mts +2 -2
  45. package/dist/utils/bigint.d.mts +2 -2
  46. package/dist/utils/convertTextToBytes.d.mts +2 -1
  47. package/dist/utils/encodeIEEE754DoublePrecisionFloat.d.mts +2 -1
  48. package/dist/utils/encodeIEEE754SinglePrecisionFloat.d.mts +2 -1
  49. package/dist/utils/encodeSignedBigEndianInteger.d.mts +2 -1
  50. package/dist/utils/encodeUnsignedBigEndianInteger.d.mts +2 -1
  51. package/dist/utils/encodeX690Base10RealNumber.d.mts +2 -1
  52. package/dist/utils/encodeX690BinaryRealNumber.d.mts +2 -1
  53. package/dist/utils/packBits.d.mts +2 -2
  54. package/dist/utils/trimLeadingPaddingBytes.d.mts +1 -1
  55. package/package.json +2 -2
package/dist/asn1.d.mts CHANGED
@@ -4,8 +4,7 @@ import type Named from "./interfaces/Named.mjs";
4
4
  import type Long from "./interfaces/Long.mjs";
5
5
  import type CharacterString from "./types/CharacterString.mjs";
6
6
  import type Elementable from "./interfaces/Elementable.mjs";
7
- import type { BOOLEAN, INTEGER, BIT_STRING, OCTET_STRING, OBJECT_IDENTIFIER, ObjectDescriptor, EXTERNAL, REAL, ENUMERATED, EMBEDDED_PDV, UTF8String, RELATIVE_OID, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, TIME, DATE, TIME_OF_DAY, DATE_TIME, DURATION, OID_IRI, RELATIVE_OID_IRI } from "./macros.mjs";
8
- import { Buffer } from "node:buffer";
7
+ import type { SingleThreadBuffer, BOOLEAN, INTEGER, BIT_STRING, OCTET_STRING, OBJECT_IDENTIFIER, ObjectDescriptor, EXTERNAL, REAL, ENUMERATED, EMBEDDED_PDV, UTF8String, RELATIVE_OID, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, TIME, DATE, TIME_OF_DAY, DATE_TIME, DURATION, OID_IRI, RELATIVE_OID_IRI } from "./macros.mjs";
9
8
  export default abstract class ASN1Element implements Byteable, Elementable, Named, Long {
10
9
  recursionCount: number;
11
10
  protected static readonly nestingRecursionLimit: number;
@@ -24,7 +23,7 @@ export default abstract class ASN1Element implements Byteable, Elementable, Name
24
23
  abstract lengthLength(valueLength?: number): number;
25
24
  abstract valueLength(): number;
26
25
  abstract tlvLength(): number;
27
- toBytes(): Buffer;
26
+ toBytes(): SingleThreadBuffer;
28
27
  get length(): number;
29
28
  abstract fromBytes(bytes: Uint8Array): number;
30
29
  abstract set boolean(value: BOOLEAN);
@@ -1,2 +1,2 @@
1
- import type { GeneralString } from "../../../macros.mjs";
2
- export default function encodeGeneralString(value: GeneralString): Uint8Array;
1
+ import type { GeneralString, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeGeneralString(value: GeneralString): SingleThreadUint8Array;
@@ -1,5 +1,4 @@
1
1
  import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
2
2
  export default function encodeGeneralString(value) {
3
- const bytes = convertTextToBytes(value);
4
- return bytes;
3
+ return convertTextToBytes(value);
5
4
  }
@@ -1,2 +1,2 @@
1
- import type { GraphicString } from "../../../macros.mjs";
2
- export default function encodeGraphicString(value: GraphicString): Uint8Array;
1
+ import type { GraphicString, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeGraphicString(value: GraphicString): SingleThreadUint8Array;
@@ -1,5 +1,4 @@
1
1
  import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
2
2
  export default function encodeGraphicString(value) {
3
- const bytes = convertTextToBytes(value);
4
- return bytes;
3
+ return convertTextToBytes(value);
5
4
  }
@@ -1,2 +1,2 @@
1
- import type { NumericString } from "../../../macros.mjs";
2
- export default function encodeNumericString(value: NumericString): Uint8Array;
1
+ import type { NumericString, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeNumericString(value: NumericString): SingleThreadUint8Array;
@@ -1,5 +1,4 @@
1
1
  import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
2
2
  export default function encodeNumericString(value) {
3
- const bytes = convertTextToBytes(value);
4
- return bytes;
3
+ return convertTextToBytes(value);
5
4
  }
@@ -1,2 +1,2 @@
1
- import type { ObjectDescriptor } from "../../../macros.mjs";
2
- export default function encodeObjectDescriptor(value: ObjectDescriptor): Uint8Array;
1
+ import type { ObjectDescriptor, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeObjectDescriptor(value: ObjectDescriptor): SingleThreadUint8Array;
@@ -1,5 +1,4 @@
1
1
  import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
2
2
  export default function encodeObjectDescriptor(value) {
3
- const bytes = convertTextToBytes(value);
4
- return bytes;
3
+ return convertTextToBytes(value);
5
4
  }
@@ -1,2 +1,2 @@
1
- import type { PrintableString } from "../../../macros.mjs";
2
- export default function encodeNumericString(value: PrintableString): Uint8Array;
1
+ import type { PrintableString, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeNumericString(value: PrintableString): SingleThreadUint8Array;
@@ -1,5 +1,4 @@
1
1
  import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
2
2
  export default function encodeNumericString(value) {
3
- const bytes = convertTextToBytes(value);
4
- return bytes;
3
+ return convertTextToBytes(value);
5
4
  }
@@ -1,2 +1,2 @@
1
- import type { VisibleString } from "../../../macros.mjs";
2
- export default function encodeVisibleString(value: VisibleString): Uint8Array;
1
+ import type { SingleThreadUint8Array, VisibleString } from "../../../macros.mjs";
2
+ export default function encodeVisibleString(value: VisibleString): SingleThreadUint8Array;
@@ -1,5 +1,4 @@
1
1
  import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
2
2
  export default function encodeVisibleString(value) {
3
- const bytes = convertTextToBytes(value);
4
- return bytes;
3
+ return convertTextToBytes(value);
5
4
  }
@@ -2,13 +2,13 @@ import ASN1Element from "../asn1.mjs";
2
2
  import { ASN1Construction, ASN1TagClass, LengthEncodingPreference } from "../values.mjs";
3
3
  import X690Element from "../x690.mjs";
4
4
  import CharacterString from "../types/CharacterString.mjs";
5
- import type { BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION } from "../macros.mjs";
5
+ import type { BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION, SingleThreadUint8Array } from "../macros.mjs";
6
6
  export default class BERElement extends X690Element {
7
7
  static lengthEncodingPreference: LengthEncodingPreference;
8
8
  private _value;
9
9
  private _currentValueLength;
10
- get value(): Uint8Array;
11
- set value(v: Uint8Array);
10
+ get value(): SingleThreadUint8Array;
11
+ set value(v: SingleThreadUint8Array);
12
12
  construct(els: ASN1Element[]): void;
13
13
  set boolean(value: BOOLEAN);
14
14
  get boolean(): BOOLEAN;
@@ -73,8 +73,8 @@ export default class BERElement extends X690Element {
73
73
  lengthLength(valueLength?: number): number;
74
74
  valueLength(): number;
75
75
  tlvLength(): number;
76
- tagAndLengthBytes(): Uint8Array;
76
+ tagAndLengthBytes(): SingleThreadUint8Array;
77
77
  toBuffers(): Uint8Array[];
78
- deconstruct(dataType: string): Uint8Array;
78
+ deconstruct(dataType: string): SingleThreadUint8Array;
79
79
  get components(): ASN1Element[];
80
80
  }
@@ -372,7 +372,8 @@ class BERElement extends X690Element {
372
372
  }
373
373
  });
374
374
  }
375
- else if ((value instanceof ObjectIdentifier) || (value.constructor?.name === "ObjectIdentifier")) {
375
+ else if ((value instanceof ObjectIdentifier)
376
+ || ((typeof value["fromParts"] === "function") && (typeof value["toBytes"] === "function"))) {
376
377
  this.tagNumber = ASN1UniversalType.objectIdentifier;
377
378
  this.objectIdentifier = value;
378
379
  }
@@ -2,15 +2,15 @@ import ASN1Element from "../asn1.mjs";
2
2
  import { ASN1Construction, ASN1TagClass } from "../values.mjs";
3
3
  import X690Element from "../x690.mjs";
4
4
  import CharacterString from "../types/CharacterString.mjs";
5
- import type { BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION } from "../macros.mjs";
5
+ import type { SingleThreadUint8Array, BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION } from "../macros.mjs";
6
6
  export default class CERElement extends X690Element {
7
7
  private _value;
8
8
  private _currentValueLength;
9
- get value(): Uint8Array;
10
- set value(v: Uint8Array);
9
+ get value(): SingleThreadUint8Array;
10
+ set value(v: SingleThreadUint8Array);
11
11
  construct(els: ASN1Element[]): void;
12
- get unfragmentedValue(): Uint8Array;
13
- set unfragmentedValue(value: Uint8Array);
12
+ get unfragmentedValue(): SingleThreadUint8Array;
13
+ set unfragmentedValue(value: SingleThreadUint8Array);
14
14
  set boolean(value: BOOLEAN);
15
15
  get boolean(): BOOLEAN;
16
16
  set bitString(value: BIT_STRING);
@@ -71,9 +71,9 @@ export default class CERElement extends X690Element {
71
71
  set inner(value: ASN1Element);
72
72
  constructor(tagClass?: ASN1TagClass, construction?: ASN1Construction, tagNumber?: number, value?: any);
73
73
  fromBytes(bytes: Uint8Array): number;
74
- tagAndLengthBytes(): Uint8Array;
74
+ tagAndLengthBytes(): SingleThreadUint8Array;
75
75
  toBuffers(): Uint8Array[];
76
- deconstruct(dataType: string): Uint8Array;
76
+ deconstruct(dataType: string): SingleThreadUint8Array;
77
77
  get components(): ASN1Element[];
78
78
  lengthLength(valueLength?: number): number;
79
79
  valueLength(): number;
@@ -385,7 +385,8 @@ export default class CERElement extends X690Element {
385
385
  }
386
386
  });
387
387
  }
388
- else if ((value instanceof ObjectIdentifier) || (value.constructor?.name === "ObjectIdentifier")) {
388
+ else if ((value instanceof ObjectIdentifier)
389
+ || ((typeof value["fromParts"] === "function") && (typeof value["toBytes"] === "function"))) {
389
390
  this.tagNumber = ASN1UniversalType.objectIdentifier;
390
391
  this.objectIdentifier = value;
391
392
  }
@@ -2,12 +2,12 @@ import ASN1Element from "../asn1.mjs";
2
2
  import { ASN1Construction, ASN1TagClass } from "../values.mjs";
3
3
  import CharacterString from "../types/CharacterString.mjs";
4
4
  import X690Element from "../x690.mjs";
5
- import type { BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION } from "../macros.mjs";
5
+ import type { SingleThreadUint8Array, BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION } from "../macros.mjs";
6
6
  export default class DERElement extends X690Element {
7
7
  private _value;
8
8
  private _currentValueLength;
9
- get value(): Uint8Array;
10
- set value(v: Uint8Array);
9
+ get value(): SingleThreadUint8Array;
10
+ set value(v: SingleThreadUint8Array);
11
11
  construct(els: ASN1Element[]): void;
12
12
  set boolean(value: BOOLEAN);
13
13
  get boolean(): BOOLEAN;
@@ -69,9 +69,9 @@ export default class DERElement extends X690Element {
69
69
  set inner(value: ASN1Element);
70
70
  constructor(tagClass?: ASN1TagClass, construction?: ASN1Construction, tagNumber?: number, value?: any);
71
71
  fromBytes(bytes: Uint8Array): number;
72
- tagAndLengthBytes(): Uint8Array;
72
+ tagAndLengthBytes(): SingleThreadUint8Array;
73
73
  toBuffers(): Uint8Array[];
74
- deconstruct(): Uint8Array;
74
+ deconstruct(): SingleThreadUint8Array;
75
75
  get components(): ASN1Element[];
76
76
  lengthLength(valueLength?: number): number;
77
77
  valueLength(): number;
@@ -386,7 +386,8 @@ export default class DERElement extends X690Element {
386
386
  }
387
387
  });
388
388
  }
389
- else if ((value instanceof ObjectIdentifier) || (value.constructor?.name === "ObjectIdentifier")) {
389
+ else if ((value instanceof ObjectIdentifier)
390
+ || ((typeof value["fromParts"] === "function") && (typeof value["toBytes"] === "function"))) {
390
391
  this.tagNumber = ASN1UniversalType.objectIdentifier;
391
392
  this.objectIdentifier = value;
392
393
  }
@@ -1,2 +1,2 @@
1
- import type { BIT_STRING } from "../../../macros.mjs";
2
- export default function encodeBitString(value: BIT_STRING): Uint8Array;
1
+ import type { BIT_STRING, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeBitString(value: BIT_STRING): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { BOOLEAN } from "../../../macros.mjs";
2
- export default function encodeBoolean(value: BOOLEAN): Uint8Array;
1
+ import type { BOOLEAN, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeBoolean(value: BOOLEAN): SingleThreadUint8Array;
@@ -1,2 +1,3 @@
1
1
  import CharacterString from "../../../types/CharacterString.mjs";
2
- export default function encodeCharacterString(value: CharacterString): Uint8Array;
2
+ import type { SingleThreadUint8Array } from "../../../macros.mjs";
3
+ export default function encodeCharacterString(value: CharacterString): SingleThreadUint8Array;
@@ -3,8 +3,10 @@ import DERElement from "../../../codecs/der.mjs";
3
3
  import { ASN1TagClass, ASN1UniversalType, ASN1Construction } from "../../../values.mjs";
4
4
  import encodeSequence from "./encodeSequence.mjs";
5
5
  export default function encodeCharacterString(value) {
6
+ const encoding = new DERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.octetString);
7
+ encoding.octetString = value.stringValue;
6
8
  return encodeSequence([
7
9
  value.identification,
8
- new DERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.octetString, value.stringValue),
10
+ encoding,
9
11
  ]);
10
12
  }
@@ -1,2 +1,2 @@
1
- import type { DATE } from "../../../macros.mjs";
2
- export default function encodeDate(date: DATE): Uint8Array;
1
+ import type { DATE, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeDate(date: DATE): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { DATE_TIME } from "../../../macros.mjs";
2
- export default function encodeDateTime(value: DATE_TIME): Uint8Array;
1
+ import type { DATE_TIME, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeDateTime(value: DATE_TIME): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { DURATION } from "../../../macros.mjs";
2
- export default function encodeDuration(value: DURATION): Uint8Array;
1
+ import type { DURATION, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeDuration(value: DURATION): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { EMBEDDED_PDV } from "../../../macros.mjs";
2
- export default function encodeEmbeddedPDV(value: EMBEDDED_PDV): Uint8Array;
1
+ import type { EMBEDDED_PDV, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeEmbeddedPDV(value: EMBEDDED_PDV): SingleThreadUint8Array;
@@ -2,8 +2,10 @@ import DERElement from "../../../codecs/der.mjs";
2
2
  import { ASN1TagClass, ASN1UniversalType, ASN1Construction } from "../../../values.mjs";
3
3
  import encodeSequence from "./encodeSequence.mjs";
4
4
  export default function encodeEmbeddedPDV(value) {
5
+ const encoding = new DERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.octetString);
6
+ encoding.octetString = value.dataValue;
5
7
  return encodeSequence([
6
8
  value.identification,
7
- new DERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.octetString, value.dataValue),
9
+ encoding,
8
10
  ]);
9
11
  }
@@ -1,2 +1,2 @@
1
- import type { EXTERNAL } from "../../../macros.mjs";
2
- export default function encodeExternal(value: EXTERNAL): Uint8Array;
1
+ import type { EXTERNAL, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeExternal(value: EXTERNAL): SingleThreadUint8Array;
@@ -4,11 +4,13 @@ import ASN1Element from "../../../asn1.mjs";
4
4
  export default function encodeExternal(value) {
5
5
  let directReferenceElement = undefined;
6
6
  if (value.directReference) {
7
- directReferenceElement = new DERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.objectIdentifier, value.directReference);
7
+ directReferenceElement = new DERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.objectIdentifier);
8
+ directReferenceElement.objectIdentifier = value.directReference;
8
9
  }
9
10
  let indirectReferenceElement = undefined;
10
11
  if (value.indirectReference) {
11
- indirectReferenceElement = new DERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.integer, value.indirectReference);
12
+ indirectReferenceElement = new DERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.integer);
13
+ indirectReferenceElement.integer = value.indirectReference;
12
14
  }
13
15
  let dataValueDescriptorElement = undefined;
14
16
  if (value.dataValueDescriptor) {
@@ -17,10 +19,12 @@ export default function encodeExternal(value) {
17
19
  }
18
20
  let encodingElement = undefined;
19
21
  if (value.encoding instanceof ASN1Element) {
20
- encodingElement = new DERElement(ASN1TagClass.context, ASN1Construction.constructed, 0, value.encoding);
22
+ encodingElement = new DERElement(ASN1TagClass.context, ASN1Construction.constructed, 0);
23
+ encodingElement.inner = value.encoding;
21
24
  }
22
25
  else if (value.encoding instanceof Uint8Array) {
23
- encodingElement = new DERElement(ASN1TagClass.context, ASN1Construction.primitive, 1, value.encoding);
26
+ encodingElement = new DERElement(ASN1TagClass.context, ASN1Construction.primitive, 1);
27
+ encodingElement.octetString = value.encoding;
24
28
  }
25
29
  else {
26
30
  encodingElement = new DERElement(ASN1TagClass.context, ASN1Construction.primitive, 2);
@@ -1,2 +1,2 @@
1
- import type { GeneralizedTime } from "../../../macros.mjs";
2
- export default function encodeGeneralizedTime(value: GeneralizedTime): Uint8Array;
1
+ import type { GeneralizedTime, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeGeneralizedTime(value: GeneralizedTime): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { INTEGER } from "../../../macros.mjs";
2
- export default function encodeInteger(value: INTEGER): Uint8Array;
1
+ import type { INTEGER, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeInteger(value: INTEGER): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { OID_IRI } from "../../../macros.mjs";
2
- export default function encodeOIDIRI(value: OID_IRI): Uint8Array;
1
+ import type { OID_IRI, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeOIDIRI(value: OID_IRI): SingleThreadUint8Array;
@@ -1,3 +1,2 @@
1
- import type { OBJECT_IDENTIFIER } from "../../../macros.mjs";
2
- import { Buffer } from "node:buffer";
3
- export default function encodeObjectIdentifier(value: OBJECT_IDENTIFIER): Buffer;
1
+ import type { OBJECT_IDENTIFIER, SingleThreadBuffer } from "../../../macros.mjs";
2
+ export default function encodeObjectIdentifier(value: OBJECT_IDENTIFIER): SingleThreadBuffer;
@@ -1,4 +1,3 @@
1
- import { Buffer } from "node:buffer";
2
1
  export default function encodeObjectIdentifier(value) {
3
2
  return value.toBytes();
4
3
  }
@@ -1,2 +1,2 @@
1
- import type { REAL } from "../../../macros.mjs";
2
- export default function encodeReal(value: REAL): Uint8Array;
1
+ import type { REAL, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeReal(value: REAL): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { RELATIVE_OID_IRI } from "../../../macros.mjs";
2
- export default function encodeRelativeOIDIRI(value: RELATIVE_OID_IRI): Uint8Array;
1
+ import type { RELATIVE_OID_IRI, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeRelativeOIDIRI(value: RELATIVE_OID_IRI): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { RELATIVE_OID } from "../../../macros.mjs";
2
- export default function encodeRelativeObjectIdentifier(value: RELATIVE_OID): Uint8Array;
1
+ import type { RELATIVE_OID, SingleThreadUint8Array } from "../../../macros.mjs";
2
+ export default function encodeRelativeObjectIdentifier(value: RELATIVE_OID): SingleThreadUint8Array;
@@ -1,3 +1,3 @@
1
1
  import ASN1Element from "../../../asn1.mjs";
2
- import type { SEQUENCE } from "../../../macros.mjs";
3
- export default function encodeSequence(value: SEQUENCE<ASN1Element>): Uint8Array;
2
+ import type { SEQUENCE, SingleThreadUint8Array } from "../../../macros.mjs";
3
+ export default function encodeSequence(value: SEQUENCE<ASN1Element>): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { TIME } from "../../../macros.mjs";
2
- export default function encodeTime(value: TIME): Uint8Array;
1
+ import type { SingleThreadUint8Array, TIME } from "../../../macros.mjs";
2
+ export default function encodeTime(value: TIME): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { TIME_OF_DAY } from "../../../macros.mjs";
2
- export default function encodeTimeOfDay(time: TIME_OF_DAY): Uint8Array;
1
+ import type { SingleThreadUint8Array, TIME_OF_DAY } from "../../../macros.mjs";
2
+ export default function encodeTimeOfDay(time: TIME_OF_DAY): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { UTCTime } from "../../../macros.mjs";
2
- export default function encodeUTCTime(value: UTCTime): Uint8Array;
1
+ import type { SingleThreadUint8Array, UTCTime } from "../../../macros.mjs";
2
+ export default function encodeUTCTime(value: UTCTime): SingleThreadUint8Array;
package/dist/macros.d.mts CHANGED
@@ -2,6 +2,8 @@ import type ObjectIdentifier from "./types/ObjectIdentifier.mjs";
2
2
  import type EmbeddedPDV from "./types/EmbeddedPDV.mjs";
3
3
  import type External from "./types/External.mjs";
4
4
  import type DURATION_EQUIVALENT from "./types/time/DURATION-EQUIVALENT.mjs";
5
+ export type SingleThreadUint8Array = ReturnType<Uint8Array['slice']>;
6
+ export type SingleThreadBuffer = ReturnType<Buffer["filter"]>;
5
7
  export type COMPONENTS_OF<T> = T;
6
8
  export type OPTIONAL<T> = T | undefined;
7
9
  export type BOOLEAN = boolean;
@@ -1,4 +1,4 @@
1
- import { Buffer } from "node:buffer";
1
+ import type { SingleThreadBuffer } from "../macros.mjs";
2
2
  export default class ObjectIdentifier {
3
3
  protected encoding: Uint8Array;
4
4
  static fromParts(nodes: number[], prefix?: ObjectIdentifier | number): ObjectIdentifier;
@@ -7,7 +7,7 @@ export default class ObjectIdentifier {
7
7
  get asn1Notation(): string;
8
8
  toString(): string;
9
9
  toJSON(): string;
10
- toBytes(): Buffer;
10
+ toBytes(): SingleThreadBuffer;
11
11
  static fromString(str: string): ObjectIdentifier;
12
12
  static fromBytes(bytes: Uint8Array): ObjectIdentifier;
13
13
  static fromBytesUnsafe(bytes: Uint8Array): ObjectIdentifier;
@@ -1,4 +1,4 @@
1
- import type { INTEGER } from "../macros.mjs";
1
+ import type { INTEGER, SingleThreadBuffer } from "../macros.mjs";
2
2
  import { Buffer } from "node:buffer";
3
3
  export declare function bufferToInteger(input: Buffer | Uint8Array): INTEGER;
4
- export declare function integerToBuffer(int: INTEGER): Buffer;
4
+ export declare function integerToBuffer(int: INTEGER): SingleThreadBuffer;
@@ -1 +1,2 @@
1
- export default function convertTextToBytes(text: string, codec?: string): Uint8Array;
1
+ import type { SingleThreadUint8Array } from "../macros.mjs";
2
+ export default function convertTextToBytes(text: string, codec?: string): SingleThreadUint8Array;
@@ -1 +1,2 @@
1
- export default function encodeIEEE754DoublePrecisionFloat(value: number): Uint8Array;
1
+ import type { SingleThreadUint8Array } from "../macros.mjs";
2
+ export default function encodeIEEE754DoublePrecisionFloat(value: number): SingleThreadUint8Array;
@@ -1 +1,2 @@
1
- export default function encodeIEEE754SinglePrecisionFloat(value: number): Uint8Array;
1
+ import type { SingleThreadUint8Array } from "../macros.mjs";
2
+ export default function encodeIEEE754SinglePrecisionFloat(value: number): SingleThreadUint8Array;
@@ -1 +1,2 @@
1
- export default function encodeBigEndianSignedInteger(value: number): Uint8Array;
1
+ import type { SingleThreadUint8Array } from "../macros.mjs";
2
+ export default function encodeBigEndianSignedInteger(value: number): SingleThreadUint8Array;
@@ -1 +1,2 @@
1
- export default function encodeUnsignedBigEndianInteger(value: number): Uint8Array;
1
+ import type { SingleThreadUint8Array } from "../macros.mjs";
2
+ export default function encodeUnsignedBigEndianInteger(value: number): SingleThreadUint8Array;
@@ -1 +1,2 @@
1
- export default function encodeX690Base10RealNumber(value: number): Uint8Array;
1
+ import type { SingleThreadUint8Array } from "../macros.mjs";
2
+ export default function encodeX690Base10RealNumber(value: number): SingleThreadUint8Array;
@@ -1 +1,2 @@
1
- export default function encodeX690BinaryRealNumber(value: number): Uint8Array;
1
+ import type { SingleThreadUint8Array } from "../macros.mjs";
2
+ export default function encodeX690BinaryRealNumber(value: number): SingleThreadUint8Array;
@@ -1,2 +1,2 @@
1
- import type { BIT_STRING } from "../macros.mjs";
2
- export default function packBits(bits: BIT_STRING): Uint8Array;
1
+ import type { BIT_STRING, SingleThreadUint8Array } from "../macros.mjs";
2
+ export default function packBits(bits: BIT_STRING): SingleThreadUint8Array;
@@ -1 +1 @@
1
- export default function trimLeadingPaddingBytes(value: Uint8Array): Uint8Array;
1
+ export default function trimLeadingPaddingBytes(value: Uint8Array): ReturnType<Uint8Array["subarray"]>;
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "description": "ASN.1 encoding and decoding, including BER, CER, and DER.",
14
14
  "devDependencies": {
15
15
  "@types/node": "^22.10.5",
16
- "typescript": "^5.7.2"
16
+ "typescript": "^5.9"
17
17
  },
18
18
  "directories": {
19
19
  "doc": "documentation",
@@ -48,7 +48,7 @@
48
48
  "test": "node --test"
49
49
  },
50
50
  "types": "./dist/index.d.mts",
51
- "version": "11.0.1",
51
+ "version": "11.0.3",
52
52
  "exports": {
53
53
  "./functional": "./dist/functional.mjs"
54
54
  }