@peculiar/asn1-schema
Advanced tools
Comparing version 2.0.3 to 2.0.4
"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; |
"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" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
81534
1954