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 +3 -1
- package/dist/extract.js +2 -2
- package/dist/index.cjs +4 -5
- package/dist/util.js +1 -4
- package/package.json +4 -4
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
|
-
//
|
|
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.
|
|
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.
|
|
26
|
-
"esbuild": "^0.25.
|
|
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.
|
|
30
|
+
"vitest": "^3.1.2"
|
|
31
31
|
},
|
|
32
32
|
"main": "./dist/index.cjs",
|
|
33
33
|
"module": "./dist/index.js",
|