smol-toml 1.3.3 → 1.3.4

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/dist/date.js CHANGED
@@ -42,7 +42,9 @@ export class TomlDate extends Date {
42
42
  date = `0000-01-01T${date}`;
43
43
  }
44
44
  hasTime = !!match[2];
45
- // Do not allow rollover hours
45
+ // Make sure to use T instead of a space. Breaks in case of extreme values otherwise.
46
+ hasTime && date[10] === ' ' && (date = date.replace(' ', 'T'));
47
+ // Do not allow rollover hours.
46
48
  if (match[2] && +match[2] > 23) {
47
49
  date = '';
48
50
  }
package/dist/extract.js CHANGED
@@ -62,8 +62,8 @@ export function extractValue(str, ptr, end, depth = -1) {
62
62
  let [value, endPtr] = c === '['
63
63
  ? parseArray(str, ptr, depth)
64
64
  : parseInlineTable(str, ptr, depth);
65
- let newPtr = skipUntil(str, endPtr, ',', end);
66
- if (end === '}') {
65
+ let newPtr = end ? skipUntil(str, endPtr, ',', end) : endPtr;
66
+ if (endPtr - newPtr && end === '}') {
67
67
  let nextNewLine = indexOfNewline(str, endPtr, newPtr);
68
68
  if (nextNewLine > -1) {
69
69
  throw new TomlError('newlines are not allowed in inline tables', {
package/dist/index.cjs CHANGED
@@ -108,9 +108,7 @@ function skipUntil(str, ptr, sep, end, banNewLines = false) {
108
108
  i = indexOfNewline(str, i);
109
109
  } else if (c === sep) {
110
110
  return i + 1;
111
- } else if (c === end) {
112
- return i;
113
- } else if (banNewLines && (c === "\n" || c === "\r" && str[i + 1] === "\n")) {
111
+ } else if (c === end || banNewLines && (c === "\n" || c === "\r" && str[i + 1] === "\n")) {
114
112
  return i;
115
113
  }
116
114
  }
@@ -156,6 +154,7 @@ var TomlDate = class _TomlDate extends Date {
156
154
  date = `0000-01-01T${date}`;
157
155
  }
158
156
  hasTime = !!match[2];
157
+ hasTime && date[10] === " " && (date = date.replace(" ", "T"));
159
158
  if (match[2] && +match[2] > 23) {
160
159
  date = "";
161
160
  } else {
@@ -392,8 +391,8 @@ function extractValue(str, ptr, end, depth = -1) {
392
391
  let c = str[ptr];
393
392
  if (c === "[" || c === "{") {
394
393
  let [value, endPtr2] = c === "[" ? parseArray(str, ptr, depth) : parseInlineTable(str, ptr, depth);
395
- let newPtr = skipUntil(str, endPtr2, ",", end);
396
- if (end === "}") {
394
+ let newPtr = end ? skipUntil(str, endPtr2, ",", end) : endPtr2;
395
+ if (endPtr2 - newPtr && end === "}") {
397
396
  let nextNewLine = indexOfNewline(str, endPtr2, newPtr);
398
397
  if (nextNewLine > -1) {
399
398
  throw new TomlError("newlines are not allowed in inline tables", {
package/dist/util.js CHANGED
@@ -69,10 +69,7 @@ export function skipUntil(str, ptr, sep, end, banNewLines = false) {
69
69
  else if (c === sep) {
70
70
  return i + 1;
71
71
  }
72
- else if (c === end) {
73
- return i;
74
- }
75
- else if (banNewLines && (c === '\n' || c === '\r' && str[i + 1] === '\n')) {
72
+ else if (c === end || (banNewLines && (c === '\n' || (c === '\r' && str[i + 1] === '\n')))) {
76
73
  return i;
77
74
  }
78
75
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "smol-toml",
3
3
  "license": "BSD-3-Clause",
4
- "version": "1.3.3",
4
+ "version": "1.3.4",
5
5
  "description": "A small, fast, and correct TOML parser/serializer",
6
6
  "author": "Cynthia <cyyynthia@borkenware.com>",
7
7
  "repository": "github:squirrelchat/smol-toml",
@@ -22,12 +22,12 @@
22
22
  "@tsconfig/node-lts": "^22.0.1",
23
23
  "@tsconfig/strictest": "^2.0.5",
24
24
  "@types/node": "^22.14.1",
25
- "@vitest/ui": "^3.1.1",
26
- "esbuild": "^0.25.2",
25
+ "@vitest/ui": "^3.1.2",
26
+ "esbuild": "^0.25.3",
27
27
  "fast-toml": "^0.5.4",
28
28
  "pin-github-action": "^3.1.2",
29
29
  "typescript": "^5.8.3",
30
- "vitest": "^3.1.1"
30
+ "vitest": "^3.1.2"
31
31
  },
32
32
  "main": "./dist/index.cjs",
33
33
  "module": "./dist/index.js",