@vess-id/mdl 0.0.8 → 0.0.10

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.
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Verifier } from './mdoc/Verifier';
2
- export { parse } from './mdoc/parser';
2
+ export { parse, parseIssuerSigned } from './mdoc/parser';
3
3
  export { DataItem } from './cbor/DataItem';
4
4
  export { DiagnosticInformation as DianosticInformation } from './mdoc/model/types';
5
5
  export { MDoc } from './mdoc/model/MDoc';
package/lib/index.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setCborEncodeDecodeOptions = exports.getCborEncodeDecodeOptions = exports.VerificationAssessmentId = exports.MDLParseError = exports.MDLError = exports.DeviceResponse = exports.DeviceSignedDocument = exports.IssuerSignedDocument = exports.Document = exports.MDoc = exports.DataItem = exports.parse = exports.Verifier = void 0;
3
+ exports.setCborEncodeDecodeOptions = exports.getCborEncodeDecodeOptions = exports.VerificationAssessmentId = exports.MDLParseError = exports.MDLError = exports.DeviceResponse = exports.DeviceSignedDocument = exports.IssuerSignedDocument = exports.Document = exports.MDoc = exports.DataItem = exports.parseIssuerSigned = exports.parse = exports.Verifier = void 0;
4
4
  var Verifier_1 = require("./mdoc/Verifier");
5
5
  Object.defineProperty(exports, "Verifier", { enumerable: true, get: function () { return Verifier_1.Verifier; } });
6
6
  var parser_1 = require("./mdoc/parser");
7
7
  Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parser_1.parse; } });
8
+ Object.defineProperty(exports, "parseIssuerSigned", { enumerable: true, get: function () { return parser_1.parseIssuerSigned; } });
8
9
  var DataItem_1 = require("./cbor/DataItem");
9
10
  Object.defineProperty(exports, "DataItem", { enumerable: true, get: function () { return DataItem_1.DataItem; } });
10
11
  var MDoc_1 = require("./mdoc/model/MDoc");
@@ -25,4 +26,4 @@ Object.defineProperty(exports, "VerificationAssessmentId", { enumerable: true, g
25
26
  var cbor_1 = require("./cbor");
26
27
  Object.defineProperty(exports, "getCborEncodeDecodeOptions", { enumerable: true, get: function () { return cbor_1.getCborEncodeDecodeOptions; } });
27
28
  Object.defineProperty(exports, "setCborEncodeDecodeOptions", { enumerable: true, get: function () { return cbor_1.setCborEncodeDecodeOptions; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQTJDO0FBQWxDLG9HQUFBLFFBQVEsT0FBQTtBQUNqQix3Q0FBc0M7QUFBN0IsK0ZBQUEsS0FBSyxPQUFBO0FBQ2QsNENBQTJDO0FBQWxDLG9HQUFBLFFBQVEsT0FBQTtBQUVqQiwwQ0FBeUM7QUFBaEMsNEZBQUEsSUFBSSxPQUFBO0FBQ2Isa0RBQWlEO0FBQXhDLG9HQUFBLFFBQVEsT0FBQTtBQUNqQiwwRUFBeUU7QUFBaEUsNEhBQUEsb0JBQW9CLE9BQUE7QUFDN0IsMEVBQXlFO0FBQWhFLDRIQUFBLG9CQUFvQixPQUFBO0FBQzdCLDhEQUE2RDtBQUFwRCxnSEFBQSxjQUFjLE9BQUE7QUFDdkIsd0NBQXdEO0FBQS9DLGtHQUFBLFFBQVEsT0FBQTtBQUFFLHVHQUFBLGFBQWEsT0FBQTtBQUNoQyxzREFBZ0U7QUFBdkQseUhBQUEsd0JBQXdCLE9BQUE7QUFDakMsK0JBQWdGO0FBQXZFLGtIQUFBLDBCQUEwQixPQUFBO0FBQUUsa0hBQUEsMEJBQTBCLE9BQUEifQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQTJDO0FBQWxDLG9HQUFBLFFBQVEsT0FBQTtBQUNqQix3Q0FBeUQ7QUFBaEQsK0ZBQUEsS0FBSyxPQUFBO0FBQUUsMkdBQUEsaUJBQWlCLE9BQUE7QUFDakMsNENBQTJDO0FBQWxDLG9HQUFBLFFBQVEsT0FBQTtBQUVqQiwwQ0FBeUM7QUFBaEMsNEZBQUEsSUFBSSxPQUFBO0FBQ2Isa0RBQWlEO0FBQXhDLG9HQUFBLFFBQVEsT0FBQTtBQUNqQiwwRUFBeUU7QUFBaEUsNEhBQUEsb0JBQW9CLE9BQUE7QUFDN0IsMEVBQXlFO0FBQWhFLDRIQUFBLG9CQUFvQixPQUFBO0FBQzdCLDhEQUE2RDtBQUFwRCxnSEFBQSxjQUFjLE9BQUE7QUFDdkIsd0NBQXdEO0FBQS9DLGtHQUFBLFFBQVEsT0FBQTtBQUFFLHVHQUFBLGFBQWEsT0FBQTtBQUNoQyxzREFBZ0U7QUFBdkQseUhBQUEsd0JBQXdCLE9BQUE7QUFDakMsK0JBQWdGO0FBQXZFLGtIQUFBLDBCQUEwQixPQUFBO0FBQUUsa0hBQUEsMEJBQTBCLE9BQUEifQ==
@@ -1,4 +1,5 @@
1
1
  import { MDoc } from './model/MDoc';
2
+ import { IssuerSignedDocument } from './model/IssuerSignedDocument';
2
3
  /**
3
4
  * Parse an mdoc
4
5
  *
@@ -6,3 +7,24 @@ import { MDoc } from './model/MDoc';
6
7
  * @returns {Promise<MDoc>} - The parsed device response
7
8
  */
8
9
  export declare const parse: (encoded: Buffer | Uint8Array) => MDoc;
10
+ /**
11
+ * Parse IssuerSigned CBOR and create IssuerSignedDocument.
12
+ * Used for OID4VCI issued credentials that only contain IssuerSigned structure.
13
+ *
14
+ * OID4VCI 1.0 Section A.2.4:
15
+ * The credential claim contains a base64url-encoded CBOR-encoded IssuerSigned structure.
16
+ *
17
+ * @param issuerSignedCbor - CBOR-encoded IssuerSigned structure
18
+ * @param docType - Document type (e.g., 'org.iso.18013.5.1.mDL')
19
+ * @returns IssuerSignedDocument
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // Parse OID4VCI issued credential
24
+ * const issuerSignedDoc = parseIssuerSigned(credentialBytes, 'org.iso.18013.5.1.mDL');
25
+ *
26
+ * // Create MDoc for OID4VP presentation
27
+ * const mdoc = new MDoc([issuerSignedDoc]);
28
+ * ```
29
+ */
30
+ export declare const parseIssuerSigned: (issuerSignedCbor: Uint8Array, docType: string) => IssuerSignedDocument;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parse = void 0;
6
+ exports.parseIssuerSigned = exports.parse = void 0;
7
7
  const compare_versions_1 = require("compare-versions");
8
8
  const cose_kit_1 = require("cose-kit");
9
9
  const cbor_1 = require("../cbor");
@@ -64,25 +64,95 @@ const parse = (encoded) => {
64
64
  catch (err) {
65
65
  throw new errors_1.MDLParseError(`Unable to decode device response: ${err.message}`);
66
66
  }
67
- const { version, documents, status } = Object.fromEntries(deviceResponse);
67
+ // Handle both Map and Object responses from cbor-x
68
+ const isResponseMap = deviceResponse instanceof Map;
69
+ const responseData = isResponseMap
70
+ ? Object.fromEntries(deviceResponse)
71
+ : deviceResponse;
72
+ const { version, documents, status } = responseData;
68
73
  const parsedDocuments = documents.map((doc) => {
69
- const issuerAuth = parseIssuerAuthElement(doc.get('issuerSigned').get('issuerAuth'), doc.get('docType'));
70
- const issuerSigned = doc.has('issuerSigned') ? {
71
- ...doc.get('issuerSigned'),
72
- nameSpaces: mapIssuerNameSpaces(doc.get('issuerSigned').get('nameSpaces')),
74
+ // Helper functions to handle both Map and Object
75
+ const isDocMap = doc instanceof Map;
76
+ const getDocKey = (key) => isDocMap ? doc.get(key) : doc[key];
77
+ const hasDocKey = (key) => isDocMap ? doc.has(key) : key in doc;
78
+ const issuerSignedData = getDocKey('issuerSigned');
79
+ const getIssuerSignedKey = (key) => issuerSignedData instanceof Map ? issuerSignedData.get(key) : issuerSignedData[key];
80
+ const issuerAuth = parseIssuerAuthElement(getIssuerSignedKey('issuerAuth'), getDocKey('docType'));
81
+ const issuerSigned = hasDocKey('issuerSigned') ? {
82
+ ...issuerSignedData,
83
+ nameSpaces: mapIssuerNameSpaces(getIssuerSignedKey('nameSpaces')),
73
84
  issuerAuth,
74
85
  } : undefined;
75
- const deviceSigned = doc.has('deviceSigned') ? {
76
- ...doc.get('deviceSigned'),
77
- nameSpaces: mapDeviceNameSpaces(doc.get('deviceSigned').get('nameSpaces').data),
78
- deviceAuth: parseDeviceAuthElement(doc.get('deviceSigned').get('deviceAuth')),
79
- } : undefined;
86
+ const deviceSigned = hasDocKey('deviceSigned') ? (() => {
87
+ const deviceSignedData = getDocKey('deviceSigned');
88
+ const getDeviceSignedKey = (key) => deviceSignedData instanceof Map ? deviceSignedData.get(key) : deviceSignedData[key];
89
+ const nameSpacesData = getDeviceSignedKey('nameSpaces');
90
+ const nameSpacesDataValue = nameSpacesData instanceof Map ? nameSpacesData.get('data') : nameSpacesData.data;
91
+ return {
92
+ ...deviceSignedData,
93
+ nameSpaces: mapDeviceNameSpaces(nameSpacesDataValue),
94
+ deviceAuth: parseDeviceAuthElement(getDeviceSignedKey('deviceAuth')),
95
+ };
96
+ })() : undefined;
80
97
  if (deviceSigned) {
81
- return new DeviceSignedDocument_1.DeviceSignedDocument(doc.get('docType'), issuerSigned, deviceSigned);
98
+ return new DeviceSignedDocument_1.DeviceSignedDocument(getDocKey('docType'), issuerSigned, deviceSigned);
82
99
  }
83
- return new IssuerSignedDocument_1.IssuerSignedDocument(doc.get('docType'), issuerSigned);
100
+ return new IssuerSignedDocument_1.IssuerSignedDocument(getDocKey('docType'), issuerSigned);
84
101
  });
85
102
  return new MDoc_1.MDoc(parsedDocuments, version, status);
86
103
  };
87
104
  exports.parse = parse;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21kb2MvcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQUFtRDtBQUNuRCx1Q0FBdUM7QUFDdkMsa0NBQXFDO0FBQ3JDLHVDQUFvQztBQUlwQyxvRUFBNEM7QUFDNUMseURBQXNEO0FBQ3RELHFDQUF5QztBQUN6Qyx1RUFBb0U7QUFDcEUsdUVBQW9FO0FBRXBFLE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsYUFBNEIsRUFDNUIsZUFBdUIsRUFDWCxFQUFFO0lBQ2QsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBVSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7SUFDcEQsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUN0QyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQztJQUU1QyxJQUFJLE9BQU8sS0FBSyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksc0JBQWEsQ0FBQyxrQ0FBa0MsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFBLGtDQUFlLEVBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sSUFBSSxzQkFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxhQUE0QixFQUFjLEVBQUU7SUFDMUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pFLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLGdCQUFLLENBQUMsR0FB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
105
+ /**
106
+ * Parse IssuerSigned CBOR and create IssuerSignedDocument.
107
+ * Used for OID4VCI issued credentials that only contain IssuerSigned structure.
108
+ *
109
+ * OID4VCI 1.0 Section A.2.4:
110
+ * The credential claim contains a base64url-encoded CBOR-encoded IssuerSigned structure.
111
+ *
112
+ * @param issuerSignedCbor - CBOR-encoded IssuerSigned structure
113
+ * @param docType - Document type (e.g., 'org.iso.18013.5.1.mDL')
114
+ * @returns IssuerSignedDocument
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * // Parse OID4VCI issued credential
119
+ * const issuerSignedDoc = parseIssuerSigned(credentialBytes, 'org.iso.18013.5.1.mDL');
120
+ *
121
+ * // Create MDoc for OID4VP presentation
122
+ * const mdoc = new MDoc([issuerSignedDoc]);
123
+ * ```
124
+ */
125
+ const parseIssuerSigned = (issuerSignedCbor, docType) => {
126
+ // Decode CBOR
127
+ const decoded = (0, cbor_1.cborDecode)(issuerSignedCbor);
128
+ // Validate IssuerSigned structure
129
+ if (!decoded || typeof decoded !== 'object') {
130
+ throw new errors_1.MDLParseError('Invalid IssuerSigned CBOR');
131
+ }
132
+ // Check for Map or Object structure (cbor-x may decode to either)
133
+ const isMap = decoded instanceof Map;
134
+ const isObject = !isMap && typeof decoded === 'object' && decoded !== null;
135
+ if (!isMap && !isObject) {
136
+ throw new errors_1.MDLParseError('IssuerSigned must be a CBOR Map or Object');
137
+ }
138
+ // Helper functions to access properties regardless of Map or Object
139
+ const hasKey = (key) => isMap ? decoded.has(key) : key in decoded;
140
+ const getKey = (key) => isMap ? decoded.get(key) : decoded[key];
141
+ if (!hasKey('nameSpaces') || !hasKey('issuerAuth')) {
142
+ throw new errors_1.MDLParseError('Invalid IssuerSigned structure: missing nameSpaces or issuerAuth');
143
+ }
144
+ // Parse issuerAuth
145
+ const rawIssuerAuth = getKey('issuerAuth');
146
+ const issuerAuth = parseIssuerAuthElement(rawIssuerAuth, docType);
147
+ // Parse nameSpaces
148
+ const rawNameSpaces = getKey('nameSpaces');
149
+ const nameSpaces = mapIssuerNameSpaces(rawNameSpaces);
150
+ // Create IssuerSigned object
151
+ const issuerSigned = {
152
+ nameSpaces,
153
+ issuerAuth,
154
+ };
155
+ return new IssuerSignedDocument_1.IssuerSignedDocument(docType, issuerSigned);
156
+ };
157
+ exports.parseIssuerSigned = parseIssuerSigned;
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21kb2MvcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQUFtRDtBQUNuRCx1Q0FBdUM7QUFDdkMsa0NBQXFDO0FBQ3JDLHVDQUFvQztBQUlwQyxvRUFBNEM7QUFDNUMseURBQXNEO0FBQ3RELHFDQUF5QztBQUN6Qyx1RUFBb0U7QUFDcEUsdUVBQW9FO0FBRXBFLE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsYUFBNEIsRUFDNUIsZUFBdUIsRUFDWCxFQUFFO0lBQ2QsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBVSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7SUFDcEQsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUN0QyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQztJQUU1QyxJQUFJLE9BQU8sS0FBSyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksc0JBQWEsQ0FBQyxrQ0FBa0MsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFBLGtDQUFlLEVBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sSUFBSSxzQkFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxhQUE0QixFQUFjLEVBQUU7SUFDMUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pFLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLGdCQUFLLENBQUMsR0FBRyxlQUFlLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFDRCxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksZUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLENBQ3ZCLE9BQTJCLEVBQ1AsRUFBRTtJQUN0QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksbUNBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBd0IsRUFBb0IsRUFBRTtJQUN6RSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDM0UsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsT0FBTztZQUNMLEdBQUcsSUFBSTtZQUNQLENBQUMsU0FBUyxDQUFDLEVBQUUsZUFBZTtTQUM3QixDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFNBQXdDLEVBQUUsRUFBRTtJQUN2RSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDbEUsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSSxNQUFNLEtBQUssR0FBRyxDQUNuQixPQUE0QixFQUN0QixFQUFFO0lBQ1IsSUFBSSxjQUFjLENBQUM7SUFDbkIsSUFBSSxDQUFDO1FBQ0gsY0FBYyxHQUFHLElBQUEsaUJBQVUsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxzQkFBYSxDQUFDLHFDQUFxQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELE1BQU0sYUFBYSxHQUFHLGNBQWMsWUFBWSxHQUFHLENBQUM7SUFDcEQsTUFBTSxZQUFZLEdBQUcsYUFBYTtRQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7UUFDcEMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUVuQixNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUM7SUFFcEQsTUFBTSxlQUFlLEdBQTJCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQXdCLEVBQUU7UUFDL0YsaURBQWlEO1FBQ2pELE1BQU0sUUFBUSxHQUFHLEdBQUcsWUFBWSxHQUFHLENBQUM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFFeEUsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3pDLGdCQUFnQixZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0RixNQUFNLFVBQVUsR0FBRyxzQkFBc0IsQ0FDdkMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FDckIsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsR0FBRyxnQkFBZ0I7WUFDbkIsVUFBVSxFQUFFLG1CQUFtQixDQUM3QixrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FDakM7WUFDRCxVQUFVO1NBQ1gsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtZQUNyRCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDekMsZ0JBQWdCLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RGLE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hELE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUU3RyxPQUFPO2dCQUNMLEdBQUcsZ0JBQWdCO2dCQUNuQixVQUFVLEVBQUUsbUJBQW1CLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3BELFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNyRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWpCLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLDJDQUFvQixDQUM3QixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQ3BCLFlBQVksRUFDWixZQUFZLENBQ2IsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksMkNBQW9CLENBQzdCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxXQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUM7QUFyRVcsUUFBQSxLQUFLLFNBcUVoQjtBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixnQkFBNEIsRUFDNUIsT0FBZSxFQUNPLEVBQUU7SUFDeEIsY0FBYztJQUNkLE1BQU0sT0FBTyxHQUFHLElBQUEsaUJBQVUsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTdDLGtDQUFrQztJQUNsQyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxzQkFBYSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGtFQUFrRTtJQUNsRSxNQUFNLEtBQUssR0FBRyxPQUFPLFlBQVksR0FBRyxDQUFDO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDO0lBRTNFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksc0JBQWEsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQztJQUMxRSxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBRSxPQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFakYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxzQkFBYSxDQUNyQixrRUFBa0UsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sVUFBVSxHQUFHLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVsRSxtQkFBbUI7SUFDbkIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXRELDZCQUE2QjtJQUM3QixNQUFNLFlBQVksR0FBRztRQUNuQixVQUFVO1FBQ1YsVUFBVTtLQUNYLENBQUM7SUFFRixPQUFPLElBQUksMkNBQW9CLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQztBQTdDVyxRQUFBLGlCQUFpQixxQkE2QzVCIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vess-id/mdl",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "description": "Parse and and validate MDOC CBOR encoded binaries according to ISO 18013-5.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",