schema-markdown 1.2.7 → 1.2.9

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/parser.js CHANGED
@@ -572,6 +572,7 @@ function parseAttr(attrsString) {
572
572
  /**
573
573
  * Schema Markdown parser error
574
574
  *
575
+ * @extends {Error}
575
576
  * @property {string[]} errors - The list of error strings
576
577
  */
577
578
  export class SchemaMarkdownParserError extends Error {
package/lib/schema.js CHANGED
@@ -98,12 +98,14 @@ function getReferencedTypesHelper(types, type, referencedTypes) {
98
98
  /**
99
99
  * Schema Markdown type model validation error
100
100
  *
101
+ * @extends {Error}
101
102
  * @property {?string} memberFqn - The fully qualified member name
102
103
  */
103
104
  export class ValidationError extends Error {
104
105
  /**
105
106
  * Schema Markdown type model validation error constructor
106
107
  *
108
+ * @param {string} message - The validation error message
107
109
  * @param {string} [memberFqn=null] - The fully-qualified member name
108
110
  */
109
111
  constructor(message, memberFqn = null) {
@@ -134,7 +136,7 @@ export function validateType(types, typeName, value, memberFqn = null) {
134
136
 
135
137
 
136
138
  // Regular expressions used by validateTypeHelper
137
- const rDate = /^\d{4}-\d{2}-\d{2}$/;
139
+ const rDate = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/;
138
140
  const rDatetime = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?(?:Z|[+-]\d{2}:\d{2})$/;
139
141
 
140
142
 
@@ -198,9 +200,12 @@ function validateTypeHelper(types, type, value, memberFqn) {
198
200
  // Convert string?
199
201
  if (typeof value === 'string') {
200
202
  // Valid date format?
201
- if (rDate.test(value)) {
202
- const localDate = new Date(value);
203
- valueNew = new Date(localDate.getUTCFullYear(), localDate.getUTCMonth(), localDate.getUTCDate());
203
+ const mDate = value.match(rDate);
204
+ if (mDate !== null) {
205
+ const year = Number.parseInt(mDate.groups.year, 10);
206
+ const month = Number.parseInt(mDate.groups.month, 10);
207
+ const day = Number.parseInt(mDate.groups.day, 10);
208
+ valueNew = new Date(year, month - 1, day);
204
209
  } else if (rDatetime.test(value)) {
205
210
  valueNew = new Date(value);
206
211
  } else {
@@ -214,7 +219,7 @@ function validateTypeHelper(types, type, value, memberFqn) {
214
219
 
215
220
  // For date type, clear hours, minutes, seconds, and milliseconds
216
221
  if (builtin === 'date') {
217
- valueNew = new Date(valueNew.getFullYear(), valueNew.getMonth(), valueNew.getUTCDate());
222
+ valueNew = new Date(valueNew.getFullYear(), valueNew.getMonth(), valueNew.getDate());
218
223
  }
219
224
  }
220
225
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "schema-markdown",
4
- "version": "1.2.7",
4
+ "version": "1.2.9",
5
5
  "description": "A schema definition and validation library",
6
6
  "keywords": [
7
7
  "schema",
@@ -24,9 +24,8 @@
24
24
  "test": "node --test test/"
25
25
  },
26
26
  "devDependencies": {
27
- "c8": "~7.13",
28
- "eslint": "~8.40",
29
- "jsdoc": "~4.0",
30
- "jsdom": "~22.0"
27
+ "c8": "~8.0",
28
+ "eslint": "~8.52",
29
+ "jsdoc": "~4.0"
31
30
  }
32
31
  }