Socket
Socket
Sign inDemoInstall

@peculiar/asn1-schema

Package Overview
Dependencies
Maintainers
6
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@peculiar/asn1-schema - npm Package Compare versions

Comparing version 2.0.3 to 2.0.4

56

build/cjs/converters.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const asn1 = require("asn1js");
const enums_1 = require("./enums");
exports.AsnAnyConverter = {

@@ -18,4 +19,4 @@ fromASN: (value) => value instanceof asn1.Null ? null : value.valueBeforeDecode,

exports.AsnIntegerConverter = {
fromASN: (value) => !value.valueBlock.valueDec && value.valueBlock.valueHex.byteLength > 0 ?
value.valueBlock.toString()
fromASN: (value) => value.valueBlock.valueHex.byteLength > 4
? value.valueBlock.toString()
: value.valueBlock.valueDec,

@@ -80,1 +81,52 @@ toASN: (value) => new asn1.Integer({ value: value }),

};
function defaultConverter(type) {
switch (type) {
case enums_1.AsnPropTypes.Any:
return exports.AsnAnyConverter;
case enums_1.AsnPropTypes.BitString:
return exports.AsnBitStringConverter;
case enums_1.AsnPropTypes.BmpString:
return exports.AsnBmpStringConverter;
case enums_1.AsnPropTypes.Boolean:
return exports.AsnBooleanConverter;
case enums_1.AsnPropTypes.CharacterString:
return exports.AsnCharacterStringConverter;
case enums_1.AsnPropTypes.Enumerated:
return exports.AsnEnumeratedConverter;
case enums_1.AsnPropTypes.GeneralString:
return exports.AsnGeneralStringConverter;
case enums_1.AsnPropTypes.GeneralizedTime:
return exports.AsnGeneralizedTimeConverter;
case enums_1.AsnPropTypes.GraphicString:
return exports.AsnGraphicStringConverter;
case enums_1.AsnPropTypes.IA5String:
return exports.AsnIA5StringConverter;
case enums_1.AsnPropTypes.Integer:
return exports.AsnIntegerConverter;
case enums_1.AsnPropTypes.Null:
return exports.AsnNullConverter;
case enums_1.AsnPropTypes.NumericString:
return exports.AsnNumericStringConverter;
case enums_1.AsnPropTypes.ObjectIdentifier:
return exports.AsnObjectIdentifierConverter;
case enums_1.AsnPropTypes.OctetString:
return exports.AsnOctetStringConverter;
case enums_1.AsnPropTypes.PrintableString:
return exports.AsnPrintableStringConverter;
case enums_1.AsnPropTypes.TeletexString:
return exports.AsnTeletexStringConverter;
case enums_1.AsnPropTypes.UTCTime:
return exports.AsnUTCTimeConverter;
case enums_1.AsnPropTypes.UniversalString:
return exports.AsnUniversalStringConverter;
case enums_1.AsnPropTypes.Utf8String:
return exports.AsnUtf8StringConverter;
case enums_1.AsnPropTypes.VideotexString:
return exports.AsnVideotexStringConverter;
case enums_1.AsnPropTypes.VisibleString:
return exports.AsnVisibleStringConverter;
default:
return null;
}
}
exports.defaultConverter = defaultConverter;

8

build/cjs/decorators.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const defaultConverters = require("./converters");
const enums_1 = require("./enums");
const converters = require("./converters");
const storage_1 = require("./storage");

@@ -28,6 +27,5 @@ exports.AsnType = (options) => (target) => {

if (typeof copyOptions.type === "number" && !copyOptions.converter) {
const converterName = `Asn${enums_1.AsnPropTypes[options.type]}Converter`;
const defaultConverter = defaultConverters[converterName];
const defaultConverter = converters.defaultConverter(options.type);
if (!defaultConverter) {
throw new Error(`Cannot get '${converterName}' for property '${propertyKey}' of ${target.constructor.name}`);
throw new Error(`Cannot get default converter for property '${propertyKey}' of ${target.constructor.name}`);
}

@@ -34,0 +32,0 @@ copyOptions.converter = defaultConverter;

@@ -5,2 +5,3 @@ "use strict";

const enums_1 = require("./enums");
const converters = require("./converters");
const errors_1 = require("./errors");

@@ -59,3 +60,12 @@ const helper_1 = require("./helper");

if (helper_1.isTypeOfArray(target)) {
return target.from(asn1Schema.valueBlock.value, (element) => this.fromASN(element, schema.itemType));
if (typeof schema.itemType === "number") {
const converter = converters.defaultConverter(schema.itemType);
if (!converter) {
throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);
}
return target.from(asn1Schema.valueBlock.value, (element) => converter.fromASN(element));
}
else {
return target.from(asn1Schema.valueBlock.value, (element) => this.fromASN(element, schema.itemType));
}
}

@@ -62,0 +72,0 @@ for (const key in schema.items) {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const asn1 = require("asn1js");
const converters = require("./converters");
const enums_1 = require("./enums");

@@ -23,3 +24,12 @@ const helper_1 = require("./helper");

if (schema.itemType) {
asn1Value = obj.map((o) => this.toAsnItem({ type: schema.itemType }, "[]", target, o));
if (typeof schema.itemType === "number") {
const converter = converters.defaultConverter(schema.itemType);
if (!converter) {
throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);
}
asn1Value = obj.map((o) => converter.toASN(o));
}
else {
asn1Value = obj.map((o) => this.toAsnItem({ type: schema.itemType }, "[]", target, o));
}
}

@@ -26,0 +36,0 @@ else {

import * as asn1 from "asn1js";
import { AsnPropTypes } from "./enums";
export const AsnAnyConverter = {

@@ -16,4 +17,4 @@ fromASN: (value) => value instanceof asn1.Null ? null : value.valueBeforeDecode,

export const AsnIntegerConverter = {
fromASN: (value) => !value.valueBlock.valueDec && value.valueBlock.valueHex.byteLength > 0 ?
value.valueBlock.toString()
fromASN: (value) => value.valueBlock.valueHex.byteLength > 4
? value.valueBlock.toString()
: value.valueBlock.valueDec,

@@ -78,1 +79,51 @@ toASN: (value) => new asn1.Integer({ value: value }),

};
export function defaultConverter(type) {
switch (type) {
case AsnPropTypes.Any:
return AsnAnyConverter;
case AsnPropTypes.BitString:
return AsnBitStringConverter;
case AsnPropTypes.BmpString:
return AsnBmpStringConverter;
case AsnPropTypes.Boolean:
return AsnBooleanConverter;
case AsnPropTypes.CharacterString:
return AsnCharacterStringConverter;
case AsnPropTypes.Enumerated:
return AsnEnumeratedConverter;
case AsnPropTypes.GeneralString:
return AsnGeneralStringConverter;
case AsnPropTypes.GeneralizedTime:
return AsnGeneralizedTimeConverter;
case AsnPropTypes.GraphicString:
return AsnGraphicStringConverter;
case AsnPropTypes.IA5String:
return AsnIA5StringConverter;
case AsnPropTypes.Integer:
return AsnIntegerConverter;
case AsnPropTypes.Null:
return AsnNullConverter;
case AsnPropTypes.NumericString:
return AsnNumericStringConverter;
case AsnPropTypes.ObjectIdentifier:
return AsnObjectIdentifierConverter;
case AsnPropTypes.OctetString:
return AsnOctetStringConverter;
case AsnPropTypes.PrintableString:
return AsnPrintableStringConverter;
case AsnPropTypes.TeletexString:
return AsnTeletexStringConverter;
case AsnPropTypes.UTCTime:
return AsnUTCTimeConverter;
case AsnPropTypes.UniversalString:
return AsnUniversalStringConverter;
case AsnPropTypes.Utf8String:
return AsnUtf8StringConverter;
case AsnPropTypes.VideotexString:
return AsnVideotexStringConverter;
case AsnPropTypes.VisibleString:
return AsnVisibleStringConverter;
default:
return null;
}
}

@@ -1,3 +0,2 @@

import * as defaultConverters from "./converters";
import { AsnPropTypes } from "./enums";
import * as converters from "./converters";
import { schemaStorage } from "./storage";

@@ -26,6 +25,5 @@ export const AsnType = (options) => (target) => {

if (typeof copyOptions.type === "number" && !copyOptions.converter) {
const converterName = `Asn${AsnPropTypes[options.type]}Converter`;
const defaultConverter = defaultConverters[converterName];
const defaultConverter = converters.defaultConverter(options.type);
if (!defaultConverter) {
throw new Error(`Cannot get '${converterName}' for property '${propertyKey}' of ${target.constructor.name}`);
throw new Error(`Cannot get default converter for property '${propertyKey}' of ${target.constructor.name}`);
}

@@ -32,0 +30,0 @@ copyOptions.converter = defaultConverter;

import * as asn1 from "asn1js";
import { AsnPropTypes, AsnTypeTypes } from "./enums";
import * as converters from "./converters";
import { AsnSchemaValidationError } from "./errors";

@@ -56,3 +57,12 @@ import { isConvertible, isTypeOfArray } from "./helper";

if (isTypeOfArray(target)) {
return target.from(asn1Schema.valueBlock.value, (element) => this.fromASN(element, schema.itemType));
if (typeof schema.itemType === "number") {
const converter = converters.defaultConverter(schema.itemType);
if (!converter) {
throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);
}
return target.from(asn1Schema.valueBlock.value, (element) => converter.fromASN(element));
}
else {
return target.from(asn1Schema.valueBlock.value, (element) => this.fromASN(element, schema.itemType));
}
}

@@ -59,0 +69,0 @@ for (const key in schema.items) {

import * as asn1 from "asn1js";
import * as converters from "./converters";
import { AsnPropTypes, AsnTypeTypes } from "./enums";

@@ -21,3 +22,12 @@ import { isConvertible, isArrayEqual } from "./helper";

if (schema.itemType) {
asn1Value = obj.map((o) => this.toAsnItem({ type: schema.itemType }, "[]", target, o));
if (typeof schema.itemType === "number") {
const converter = converters.defaultConverter(schema.itemType);
if (!converter) {
throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);
}
asn1Value = obj.map((o) => converter.toASN(o));
}
else {
asn1Value = obj.map((o) => this.toAsnItem({ type: schema.itemType }, "[]", target, o));
}
}

@@ -24,0 +34,0 @@ else {

import { AnyConverterType, IAsnConverter, IntegerConverterType } from "./types";
import { AsnPropTypes } from "./enums";
/**

@@ -98,1 +99,6 @@ * NOTE: Converter MUST have name Asn<Asn1PropType.name>Converter.

export declare const AsnNullConverter: IAsnConverter<null>;
/**
* Returns default converter for specified type
* @param type
*/
export declare function defaultConverter(type: AsnPropTypes): IAsnConverter | null;
{
"name": "@peculiar/asn1-schema",
"version": "2.0.3",
"version": "2.0.4",
"description": "Decorators for ASN.1 schemas building",

@@ -56,3 +56,3 @@ "files": [

],
"gitHead": "af5e4f57c4db0c331f53d3bf22cebb1acf31ba30"
"gitHead": "83feaaaec26bb73d64881d40c85c0595dd714f3a"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc