@decimalturn/toml-patch 0.5.0 → 0.5.1
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/toml-patch.d.ts
CHANGED
package/dist/toml-patch.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//! @decimalturn/toml-patch v0.5.
|
|
1
|
+
//! @decimalturn/toml-patch v0.5.1 - https://github.com/DecimalTurn/toml-patch - @license: MIT
|
|
2
2
|
var NodeType;
|
|
3
3
|
(function (NodeType) {
|
|
4
4
|
NodeType["Document"] = "Document";
|
|
@@ -49,6 +49,9 @@ function isTableArrayKey(node) {
|
|
|
49
49
|
function isKeyValue(node) {
|
|
50
50
|
return node.type === NodeType.KeyValue;
|
|
51
51
|
}
|
|
52
|
+
function isString$1(node) {
|
|
53
|
+
return node.type === NodeType.String;
|
|
54
|
+
}
|
|
52
55
|
function isDateTime(node) {
|
|
53
56
|
return node.type === NodeType.DateTime;
|
|
54
57
|
}
|
|
@@ -501,6 +504,14 @@ function merge(target, values) {
|
|
|
501
504
|
target[original_length + i] = values[i];
|
|
502
505
|
}
|
|
503
506
|
}
|
|
507
|
+
/**
|
|
508
|
+
* Checks if a string is a multiline string (starts with """ or ''')
|
|
509
|
+
* @param raw The raw string value including quotes
|
|
510
|
+
* @returns true if the string is multiline, false otherwise
|
|
511
|
+
*/
|
|
512
|
+
function isMultilineString(raw) {
|
|
513
|
+
return raw.startsWith('"""') || raw.startsWith("'''");
|
|
514
|
+
}
|
|
504
515
|
|
|
505
516
|
const TRIPLE_DOUBLE_QUOTE = `"""`;
|
|
506
517
|
const TRIPLE_SINGLE_QUOTE = `'''`;
|
|
@@ -808,7 +819,8 @@ class LocalDate extends Date {
|
|
|
808
819
|
class LocalTime extends Date {
|
|
809
820
|
constructor(value, originalFormat) {
|
|
810
821
|
// For local time, use a fixed date (1970-01-01) and the provided time
|
|
811
|
-
|
|
822
|
+
// Add 'Z' to ensure it's parsed as UTC regardless of system timezone
|
|
823
|
+
super(`1970-01-01T${value}Z`);
|
|
812
824
|
this.originalFormat = originalFormat;
|
|
813
825
|
}
|
|
814
826
|
toISOString() {
|
|
@@ -1503,9 +1515,50 @@ const getExitOffsets = (root) => {
|
|
|
1503
1515
|
}
|
|
1504
1516
|
return exit_offsets.get(root);
|
|
1505
1517
|
};
|
|
1518
|
+
/**
|
|
1519
|
+
* Updates location information for a replacement string to match the existing string's position.
|
|
1520
|
+
* The actual formatting and escaping is done by generateString().
|
|
1521
|
+
*
|
|
1522
|
+
* @param existing - The existing string node with the original format and location
|
|
1523
|
+
* @param replacement - The replacement string node (already fully formatted by generateString)
|
|
1524
|
+
* @returns The replacement string node with updated location information
|
|
1525
|
+
*/
|
|
1526
|
+
function fixStringLocation(existing, replacement) {
|
|
1527
|
+
if (!isMultilineString(replacement.raw)) {
|
|
1528
|
+
return replacement;
|
|
1529
|
+
}
|
|
1530
|
+
// Detect newline character to count lines correctly
|
|
1531
|
+
const newlineChar = replacement.raw.includes('\r\n') ? '\r\n' : '\n';
|
|
1532
|
+
const lineCount = (replacement.raw.match(new RegExp(newlineChar === '\r\n' ? '\\r\\n' : '\\n', 'g')) || []).length;
|
|
1533
|
+
// Update location to match existing position and account for multiple lines
|
|
1534
|
+
if (lineCount > 0) {
|
|
1535
|
+
return Object.assign(Object.assign({}, replacement), { loc: {
|
|
1536
|
+
start: existing.loc.start,
|
|
1537
|
+
end: {
|
|
1538
|
+
line: existing.loc.start.line + lineCount,
|
|
1539
|
+
column: 3 // length of delimiter
|
|
1540
|
+
}
|
|
1541
|
+
} });
|
|
1542
|
+
}
|
|
1543
|
+
else {
|
|
1544
|
+
return Object.assign(Object.assign({}, replacement), { loc: {
|
|
1545
|
+
start: existing.loc.start,
|
|
1546
|
+
end: {
|
|
1547
|
+
line: existing.loc.start.line,
|
|
1548
|
+
column: existing.loc.start.column + replacement.raw.length
|
|
1549
|
+
}
|
|
1550
|
+
} });
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1506
1553
|
//TODO: Add getOffsets function to get all offsets contained in the tree
|
|
1507
1554
|
function replace(root, parent, existing, replacement) {
|
|
1508
|
-
// Special handling for
|
|
1555
|
+
// Special handling for String nodes to preserve multiline format by editing replacement values
|
|
1556
|
+
if (isString$1(existing) && isString$1(replacement)) {
|
|
1557
|
+
// Regenerate the replacement with proper escaping based on existing format
|
|
1558
|
+
const escapedReplacement = generateString(replacement.value, existing.raw);
|
|
1559
|
+
replacement = fixStringLocation(existing, escapedReplacement);
|
|
1560
|
+
}
|
|
1561
|
+
// Special handling for DateTime nodes to preserve original format by editing replacement values
|
|
1509
1562
|
if (isDateTime(existing) && isDateTime(replacement)) {
|
|
1510
1563
|
// Analyze the original raw format and create a properly formatted replacement
|
|
1511
1564
|
const originalRaw = existing.raw;
|
|
@@ -2105,8 +2158,58 @@ function generateKey(value) {
|
|
|
2105
2158
|
value
|
|
2106
2159
|
};
|
|
2107
2160
|
}
|
|
2108
|
-
|
|
2109
|
-
|
|
2161
|
+
/**
|
|
2162
|
+
* Generates a new String node, preserving multiline format if existingRaw is provided.
|
|
2163
|
+
*
|
|
2164
|
+
* @param value - The string value.
|
|
2165
|
+
* @param existingRaw - The existing raw string to determine multiline format (optional).
|
|
2166
|
+
* @returns A new String node.
|
|
2167
|
+
*/
|
|
2168
|
+
function generateString(value, existingRaw) {
|
|
2169
|
+
let raw;
|
|
2170
|
+
if (existingRaw && isMultilineString(existingRaw)) {
|
|
2171
|
+
// Preserve multiline format
|
|
2172
|
+
let isLiteral = existingRaw.startsWith("'''");
|
|
2173
|
+
// Literal strings cannot contain ''' - convert to basic string if needed
|
|
2174
|
+
if (isLiteral && value.includes("'''")) {
|
|
2175
|
+
isLiteral = false;
|
|
2176
|
+
}
|
|
2177
|
+
const delimiter = isLiteral ? "'''" : '"""';
|
|
2178
|
+
// Detect newline character from existing raw
|
|
2179
|
+
const newlineChar = existingRaw.includes('\r\n') ? '\r\n' : '\n';
|
|
2180
|
+
const hasLeadingNewline = existingRaw.startsWith(`${delimiter}${newlineChar}`) ||
|
|
2181
|
+
((existingRaw.startsWith("'''\n") || existingRaw.startsWith("'''\r\n")) && !isLiteral);
|
|
2182
|
+
let escaped;
|
|
2183
|
+
if (isLiteral) {
|
|
2184
|
+
// Literal strings: no escaping needed (we already checked for ''' above)
|
|
2185
|
+
escaped = value;
|
|
2186
|
+
}
|
|
2187
|
+
else {
|
|
2188
|
+
// Basic multiline strings: escape backslashes, control characters, and triple quotes
|
|
2189
|
+
escaped = value
|
|
2190
|
+
.replace(/\\/g, '\\\\') // Escape backslashes first
|
|
2191
|
+
.replace(/\x08/g, '\\b') // Backspace (U+0008)
|
|
2192
|
+
.replace(/\f/g, '\\f') // Form feed (U+000C)
|
|
2193
|
+
.replace(/\t/g, '\\t') // Tab (U+0009)
|
|
2194
|
+
.replace(/[\x00-\x07\x0B\x0E-\x1F\x7F]/g, (char) => {
|
|
2195
|
+
// Escape other control characters
|
|
2196
|
+
const code = char.charCodeAt(0);
|
|
2197
|
+
return '\\u' + code.toString(16).padStart(4, '0').toUpperCase();
|
|
2198
|
+
})
|
|
2199
|
+
// Escape triple quotes safely: two literal quotes + escaped quote
|
|
2200
|
+
.replace(/"""/g, '""\\\"');
|
|
2201
|
+
}
|
|
2202
|
+
// Format with or without leading newline based on original
|
|
2203
|
+
if (hasLeadingNewline) {
|
|
2204
|
+
raw = `${delimiter}${newlineChar}${escaped}${delimiter}`;
|
|
2205
|
+
}
|
|
2206
|
+
else {
|
|
2207
|
+
raw = `${delimiter}${escaped}${delimiter}`;
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
else {
|
|
2211
|
+
raw = JSON.stringify(value);
|
|
2212
|
+
}
|
|
2110
2213
|
return {
|
|
2111
2214
|
type: NodeType.String,
|
|
2112
2215
|
loc: { start: zero(), end: { line: 1, column: raw.length } },
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
//! @decimalturn/toml-patch v0.5.
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TOML={})}(this,(function(e){"use strict";var t,n;function r(e){return e.type===t.Document}function l(e){return e.type===t.Table}function o(e){return e.type===t.TableArray}function i(e){return e.type===t.KeyValue}function a(e){return e.type===t.DateTime}function s(e){return e.type===t.InlineArray}function c(e){return e.type===t.InlineItem}function u(e){return e.type===t.InlineTable}function f(e){return e.type===t.Comment}function m(e){return r(e)||l(e)||o(e)||u(e)||s(e)}function d(e){return function(e){return e.type===t.TableKey}(e)||function(e){return e.type===t.TableArrayKey}(e)||c(e)}!function(e){e.Document="Document",e.Table="Table",e.TableKey="TableKey",e.TableArray="TableArray",e.TableArrayKey="TableArrayKey",e.KeyValue="KeyValue",e.Key="Key",e.String="String",e.Integer="Integer",e.Float="Float",e.Boolean="Boolean",e.DateTime="DateTime",e.InlineArray="InlineArray",e.InlineItem="InlineItem",e.InlineTable="InlineTable",e.Comment="Comment"}(t||(t={}));class p{constructor(e){this.iterator=e,this.index=-1,this.value=void 0,this.done=!1,this.peeked=null}next(){var e;if(this.done)return y();const t=this.peeked||this.iterator.next();return this.index+=1,this.value=t.value,this.done=null!==(e=t.done)&&void 0!==e&&e,this.peeked=null,t}peek(){return this.done?y():(this.peeked||(this.peeked=this.iterator.next()),this.peeked)}[Symbol.iterator](){return this}}function y(){return{value:void 0,done:!0}}function h(e){return{lines:e.end.line-e.start.line+1,columns:e.end.column-e.start.column}}function g(e,t){const n=Array.isArray(e)?e:v(e),r=n.findIndex((e=>e>=t))+1;return{line:r,column:t-(n[r-2]+1||0)}}function v(e){const t=/\r\n|\n/g,n=[];let r;for(;null!=(r=t.exec(e));)n.push(r.index+r[0].length-1);return n.push(e.length+1),n}function w(e){return{line:e.line,column:e.column}}function S(e){return{start:w(e.start),end:w(e.end)}}class T extends Error{constructor(e,t,n){let r=`Error parsing TOML (${t.line}, ${t.column+1}):\n`;if(e){const n=function(e,t){const n=v(e),r=n[t.line-2]||0,l=n[t.line-1]||e.length;return e.substr(r,l-r)}(e,t),l=`${function(e,t=" "){return t.repeat(e)}(t.column)}^`;n&&(r+=`${n}\n${l}\n`)}r+=n,super(r),this.line=t.line,this.column=t.column}}!function(e){e.Bracket="Bracket",e.Curly="Curly",e.Equal="Equal",e.Comma="Comma",e.Dot="Dot",e.Comment="Comment",e.Literal="Literal"}(n||(n={}));const b=/\s/,$=/(\r\n|\n)/,k='"',I="'",E=/[\w,\d,\",\',\+,\-,\_]/;function*A(e){const t=new p(e[Symbol.iterator]());t.next();const r=function(e){const t=v(e);return(e,n)=>({start:g(t,e),end:g(t,n)})}(e);for(;!t.done;){if(b.test(t.value));else if("["===t.value||"]"===t.value)yield C(t,r,n.Bracket);else if("{"===t.value||"}"===t.value)yield C(t,r,n.Curly);else if("="===t.value)yield C(t,r,n.Equal);else if(","===t.value)yield C(t,r,n.Comma);else if("."===t.value)yield C(t,r,n.Dot);else if("#"===t.value)yield x(t,r);else{const n=_(e,t.index,I)||_(e,t.index,k);n?yield O(t,r,n,e):yield D(t,r,e)}t.next()}}function C(e,t,n){return{type:n,raw:e.value,loc:t(e.index,e.index+1)}}function x(e,t){const r=e.index;let l=e.value;for(;!e.peek().done&&!$.test(e.peek().value);)e.next(),l+=e.value;return{type:n.Comment,raw:l,loc:t(r,e.index+1)}}function O(e,t,r,l){const o=e.index;let i=r+r+r,a=i;for(e.next(),e.next(),e.next();!e.done&&(!_(l,e.index,r)||L(l,e.index,r));)a+=e.value,e.next();if(e.done)throw new T(l,g(l,e.index),`Expected close of multiline string with ${i}, reached end of file`);return a+=i,e.next(),e.next(),{type:n.Literal,raw:a,loc:t(o,e.index+1)}}function D(e,t,r){if(!E.test(e.value))throw new T(r,g(r,e.index),`Unsupported character "${e.value}". Expected ALPHANUMERIC, ", ', +, -, or _`);const l=e.index;let o=e.value,i=e.value===k,a=e.value===I;const s=e=>{if(e.peek().done)return!0;const t=e.peek().value;return!(i||a)&&(b.test(t)||","===t||"."===t||"]"===t||"}"===t||"="===t||"#"===t)};for(;!e.done&&!s(e)&&(e.next(),e.value===k&&(i=!i),e.value!==I||i||(a=!a),o+=e.value,!e.peek().done);){let t=e.peek().value;i&&"\\"===e.value&&(t===k?(o+=k,e.next()):"\\"===t&&(o+="\\",e.next()))}if(i||a)throw new T(r,g(r,l),`Expected close of string with ${i?k:I}`);return{type:n.Literal,raw:o,loc:t(l,e.index+1)}}function _(e,t,n){if(!n)return!1;if(!(e[t]===n&&e[t+1]===n&&e[t+2]===n))return!1;const r=e.slice(0,t).match(/\\+$/);if(!r)return n;return!(r[0].length%2!=0)&&n}function L(e,t,n){return!!n&&(e[t]===n&&e[t+1]===n&&e[t+2]===n&&e[t+3]===n)}function U(e){return e[e.length-1]}function F(){return Object.create(null)}function M(e){return"number"==typeof e&&e%1==0&&isFinite(e)&&!Object.is(e,-0)}function K(e){return"[object Date]"===Object.prototype.toString.call(e)}function j(e){return e&&"object"==typeof e&&!K(e)&&!Array.isArray(e)}function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function B(e,...t){return t.reduce(((e,t)=>t(e)),e)}function Z(e){if(j(e)){return`{${Object.keys(e).sort().map((t=>`${JSON.stringify(t)}:${Z(e[t])}`)).join(",")}}`}return Array.isArray(e)?`[${e.map(Z).join(",")}]`:JSON.stringify(e)}function P(e,t){const n=e.length,r=t.length;e.length=n+r;for(let l=0;l<r;l++)e[n+l]=t[l]}const W=/\r\n/g,z=/\n/g,V=/^(\r\n|\n)/,H=/(?<!\\)(?:\\\\)*(\\\s*[\n\r\n]\s*)/g;function q(e){return e.startsWith("'''")?B(J(e,3),G):e.startsWith(I)?J(e,1):e.startsWith('"""')?B(J(e,3),G,X,Q,R,Y):e.startsWith(k)?B(J(e,1),Y):e}function R(e){let t="",n=0;for(let r=0;r<e.length;r++){const l=e[r];t+='"'===l&&n%2==0?'\\"':l,"\\"===l?n++:n=0}return t}function Y(e){const t=e.replace(/\\U[a-fA-F0-9]{8}/g,(e=>{const t=parseInt(e.replace("\\U",""),16),n=String.fromCodePoint(t);return J(JSON.stringify(n),1)})),n=t.replace(/\t/g,"\\t");return JSON.parse(`"${n}"`)}function J(e,t){return e.slice(t,e.length-t)}function G(e){return e.replace(V,"")}function Q(e){return e.replace(W,"\\r\\n").replace(z,"\\n")}function X(e){return e.replace(H,((e,t)=>e.replace(t,"")))}class ee{static createDateWithOriginalFormat(e,t){if(ee.IS_DATE_ONLY.test(t)){if(0!==e.getUTCHours()||0!==e.getUTCMinutes()||0!==e.getUTCSeconds()||0!==e.getUTCMilliseconds()){if(e instanceof le)return e;let t=e.toISOString().replace("Z","");return t=t.replace(/\.000$/,""),new re(t,!1)}const t=e.toISOString().split("T")[0];return new te(t)}if(ee.IS_TIME_ONLY.test(t)){if(e instanceof ne)return e;{const n=t.match(/\.(\d+)\s*$/),r=e.toISOString();if(r&&r.includes("T")){let l=r.split("T")[1].split("Z")[0];if(n){const t=n[1].length,[r,o,i]=l.split(":"),[a]=i.split(".");l=`${r}:${o}:${a}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new ne(l,t)}{const r=String(e.getUTCHours()).padStart(2,"0"),l=String(e.getUTCMinutes()).padStart(2,"0"),o=String(e.getUTCSeconds()).padStart(2,"0"),i=e.getUTCMilliseconds();let a;if(n){const e=n[1].length;a=`${r}:${l}:${o}.${String(i).padStart(3,"0").slice(0,e)}`}else if(i>0){a=`${r}:${l}:${o}.${String(i).padStart(3,"0").replace(/0+$/,"")}`}else a=`${r}:${l}:${o}`;return new ne(a,t)}}}if(ee.IS_LOCAL_DATETIME_T.test(t)){const n=t.match(/\.(\d+)\s*$/);let r=e.toISOString().replace("Z","");if(n){const t=n[1].length,[l,o]=r.split("T"),[i,a,s]=o.split(":"),[c]=s.split(".");r=`${l}T${i}:${a}:${c}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new re(r,!1,t)}if(ee.IS_LOCAL_DATETIME_SPACE.test(t)){const n=t.match(/\.(\d+)\s*$/);let r=e.toISOString().replace("Z","").replace("T"," ");if(n){const t=n[1].length,[l,o]=r.split(" "),[i,a,s]=o.split(":"),[c]=s.split(".");r=`${l} ${i}:${a}:${c}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new re(r,!0,t)}if(ee.IS_OFFSET_DATETIME_T.test(t)||ee.IS_OFFSET_DATETIME_SPACE.test(t)){const n=t.match(/([+-]\d{2}:\d{2}|[Zz])$/),r=n?"z"===n[1]?"Z":n[1]:"Z",l=ee.IS_OFFSET_DATETIME_SPACE.test(t),o=t.match(/\.(\d+)(?:[Zz]|[+-]\d{2}:\d{2})\s*$/),i=e.getTime();let a=0;if("Z"!==r){const e="+"===r[0]?1:-1,[t,n]=r.slice(1).split(":");a=e*(60*parseInt(t)+parseInt(n))}const s=new Date(i+6e4*a),c=s.getUTCFullYear(),u=String(s.getUTCMonth()+1).padStart(2,"0"),f=String(s.getUTCDate()).padStart(2,"0"),m=String(s.getUTCHours()).padStart(2,"0"),d=String(s.getUTCMinutes()).padStart(2,"0"),p=String(s.getUTCSeconds()).padStart(2,"0"),y=s.getUTCMilliseconds(),h=l?" ":"T";let g=`${m}:${d}:${p}`;if(o){const e=o[1].length;g+=`.${String(y).padStart(3,"0").slice(0,e)}`}else if(y>0){g+=`.${String(y).padStart(3,"0").replace(/0+$/,"")}`}return new le(`${c}-${u}-${f}${h}${g}${r}`,l)}return e}}ee.IS_DATE_ONLY=/^\d{4}-\d{2}-\d{2}$/,ee.IS_TIME_ONLY=/^\d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_LOCAL_DATETIME_T=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_LOCAL_DATETIME_SPACE=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_OFFSET_DATETIME_T=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})$/,ee.IS_OFFSET_DATETIME_SPACE=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})$/,ee.IS_FULL_DATE=/(\d{4})-(\d{2})-(\d{2})/,ee.IS_FULL_TIME=/(\d{2}):(\d{2}):(\d{2})/;class te extends Date{constructor(e){super(e)}toISOString(){return`${this.getUTCFullYear()}-${String(this.getUTCMonth()+1).padStart(2,"0")}-${String(this.getUTCDate()).padStart(2,"0")}`}}class ne extends Date{constructor(e,t){super(`1970-01-01T${e}`),this.originalFormat=t}toISOString(){const e=String(this.getUTCHours()).padStart(2,"0"),t=String(this.getUTCMinutes()).padStart(2,"0"),n=String(this.getUTCSeconds()).padStart(2,"0"),r=this.getUTCMilliseconds();if(this.originalFormat&&this.originalFormat.includes(".")){const l=this.originalFormat.match(/\.(\d+)\s*$/),o=l?l[1].length:3;return`${e}:${t}:${n}.${String(r).padStart(3,"0").slice(0,o)}`}if(r>0){return`${e}:${t}:${n}.${String(r).padStart(3,"0").replace(/0+$/,"")}`}return`${e}:${t}:${n}`}}class re extends Date{constructor(e,t=!1,n){super(e.replace(" ","T")+"Z"),this.useSpaceSeparator=!1,this.useSpaceSeparator=t,this.originalFormat=n||e}toISOString(){const e=this.getUTCFullYear(),t=String(this.getUTCMonth()+1).padStart(2,"0"),n=String(this.getUTCDate()).padStart(2,"0"),r=String(this.getUTCHours()).padStart(2,"0"),l=String(this.getUTCMinutes()).padStart(2,"0"),o=String(this.getUTCSeconds()).padStart(2,"0"),i=this.getUTCMilliseconds(),a=`${e}-${t}-${n}`,s=this.useSpaceSeparator?" ":"T";if(this.originalFormat&&this.originalFormat.includes(".")){const e=this.originalFormat.match(/\.(\d+)\s*$/),t=e?e[1].length:3;return`${a}${s}${r}:${l}:${o}.${String(i).padStart(3,"0").slice(0,t)}`}if(i>0){return`${a}${s}${r}:${l}:${o}.${String(i).padStart(3,"0").replace(/0+$/,"")}`}return`${a}${s}${r}:${l}:${o}`}}class le extends Date{constructor(e,t=!1){super(e.replace(" ","T")),this.useSpaceSeparator=!1,this.useSpaceSeparator=t,this.originalFormat=e;const n=e.match(/([+-]\d{2}:\d{2}|[Zz])$/);n&&(this.originalOffset="z"===n[1]?"Z":n[1])}toISOString(){if(this.originalOffset){const e=this.getTime();let t=0;if("Z"!==this.originalOffset){const e="+"===this.originalOffset[0]?1:-1,[n,r]=this.originalOffset.slice(1).split(":");t=e*(60*parseInt(n)+parseInt(r))}const n=new Date(e+6e4*t),r=n.getUTCFullYear(),l=String(n.getUTCMonth()+1).padStart(2,"0"),o=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),s=String(n.getUTCSeconds()).padStart(2,"0"),c=n.getUTCMilliseconds(),u=`${r}-${l}-${o}`,f=this.useSpaceSeparator?" ":"T";if(this.originalFormat&&this.originalFormat.includes(".")){const e=this.originalFormat.match(/\.(\d+)(?:[Zz]|[+-]\d{2}:\d{2})\s*$/),t=e?e[1].length:3;return`${u}${f}${i}:${a}:${s}.${String(c).padStart(3,"0").slice(0,t)}${this.originalOffset}`}if(c>0){return`${u}${f}${i}:${a}:${s}.${String(c).padStart(3,"0").replace(/0+$/,"")}${this.originalOffset}`}return`${u}${f}${i}:${a}:${s}${this.originalOffset}`}const e=super.toISOString();return this.useSpaceSeparator?e.replace("T"," "):e}}const oe=ee,ie="true",ae=/e/i,se=/\_/g,ce=/inf/,ue=/nan/,fe=/^0x/,me=/^0o/,de=/^0b/;function*pe(e){const t=A(e),n=new p(t);for(;!n.next().done;)yield*ye(n,e)}function*ye(e,r){if(e.value.type===n.Comment)yield ge(e);else if(e.value.type===n.Bracket)yield function(e,r){const l=e.peek().done||e.peek().value.type!==n.Bracket?t.Table:t.TableArray,o=l===t.Table;if(o&&"["!==e.value.raw)throw new T(r,e.value.loc.start,`Expected table opening "[", found ${e.value.raw}`);if(!o&&("["!==e.value.raw||"["!==e.peek().value.raw))throw new T(r,e.value.loc.start,`Expected array of tables opening "[[", found ${e.value.raw+e.peek().value.raw}`);const i=o?{type:t.TableKey,loc:e.value.loc}:{type:t.TableArrayKey,loc:e.value.loc};e.next(),l===t.TableArray&&e.next();if(e.done)throw new T(r,i.loc.start,"Expected table key, reached end of file");i.item={type:t.Key,loc:S(e.value.loc),raw:e.value.raw,value:[q(e.value.raw)]};for(;!e.peek().done&&e.peek().value.type===n.Dot;){e.next();const t=e.value;e.next();const n=" ".repeat(t.loc.start.column-i.item.loc.end.column),r=" ".repeat(e.value.loc.start.column-t.loc.end.column);i.item.loc.end=e.value.loc.end,i.item.raw+=`${n}.${r}${e.value.raw}`,i.item.value.push(q(e.value.raw))}if(e.next(),o&&(e.done||"]"!==e.value.raw))throw new T(r,e.done?i.item.loc.end:e.value.loc.start,`Expected table closing "]", found ${e.done?"end of file":e.value.raw}`);if(!o&&(e.done||e.peek().done||"]"!==e.value.raw||"]"!==e.peek().value.raw))throw new T(r,e.done||e.peek().done?i.item.loc.end:e.value.loc.start,`Expected array of tables closing "]]", found ${e.done||e.peek().done?"end of file":e.value.raw+e.peek().value.raw}`);o||e.next();i.loc.end=e.value.loc.end;let a=[];for(;!e.peek().done&&e.peek().value.type!==n.Bracket;)e.next(),P(a,[...ye(e,r)]);return{type:o?t.Table:t.TableArray,loc:{start:w(i.loc.start),end:a.length?w(a[a.length-1].loc.end):w(i.loc.end)},key:i,items:a}}(e,r);else{if(e.value.type!==n.Literal)throw new T(r,e.value.loc.start,`Unexpected token "${e.value.type}". Expected Comment, Bracket, or String`);yield*function(e,r){const l={type:t.Key,loc:S(e.value.loc),raw:e.value.raw,value:[q(e.value.raw)]};for(;!e.peek().done&&e.peek().value.type===n.Dot;)e.next(),e.next(),l.loc.end=e.value.loc.end,l.raw+=`.${e.value.raw}`,l.value.push(q(e.value.raw));if(e.next(),e.done||e.value.type!==n.Equal)throw new T(r,e.done?l.loc.end:e.value.loc.start,`Expected "=" for key-value, found ${e.done?"end of file":e.value.raw}`);const o=e.value.loc.start.column;if(e.next(),e.done)throw new T(r,l.loc.start,"Expected value for key-value, reached end of file");const[i,...a]=he(e,r);return[{type:t.KeyValue,key:l,value:i,loc:{start:w(l.loc.start),end:w(i.loc.end)},equals:o},...a]}(e,r)}}function*he(e,r){if(e.value.type===n.Literal)e.value.raw[0]===k||e.value.raw[0]===I?yield function(e){return{type:t.String,loc:e.value.loc,raw:e.value.raw,value:q(e.value.raw)}}(e):e.value.raw===ie||"false"===e.value.raw?yield function(e){return{type:t.Boolean,loc:e.value.loc,value:e.value.raw===ie}}(e):oe.IS_FULL_DATE.test(e.value.raw)||oe.IS_FULL_TIME.test(e.value.raw)?yield function(e,r){let l,o=e.value.loc,i=e.value.raw;if(!e.peek().done&&e.peek().value.type===n.Literal&&oe.IS_FULL_DATE.test(i)&&oe.IS_FULL_TIME.test(e.peek().value.raw)){const t=o.start;e.next(),o={start:t,end:e.value.loc.end},i+=` ${e.value.raw}`}if(!e.peek().done&&e.peek().value.type===n.Dot){const t=o.start;if(e.next(),e.peek().done||e.peek().value.type!==n.Literal)throw new T(r,e.value.loc.end,"Expected fractional value for DateTime");e.next(),o={start:t,end:e.value.loc.end},i+=`.${e.value.raw}`}if(oe.IS_FULL_DATE.test(i))l=oe.IS_DATE_ONLY.test(i)?new te(i):oe.IS_LOCAL_DATETIME_T.test(i)?new re(i,!1):oe.IS_LOCAL_DATETIME_SPACE.test(i)?new re(i,!0):oe.IS_OFFSET_DATETIME_T.test(i)?new le(i,!1):oe.IS_OFFSET_DATETIME_SPACE.test(i)?new le(i,!0):new Date(i.replace(" ","T"));else if(oe.IS_TIME_ONLY.test(i))l=new ne(i,i);else{const[e]=(new Date).toISOString().split("T");l=new Date(`${e}T${i}`)}return{type:t.DateTime,loc:o,raw:i,value:l}}(e,r):!e.peek().done&&e.peek().value.type===n.Dot||ce.test(e.value.raw)||ue.test(e.value.raw)||ae.test(e.value.raw)&&!fe.test(e.value.raw)?yield function(e,r){let l,o=e.value.loc,i=e.value.raw;if(ce.test(i))l="-inf"===i?-1/0:1/0;else if(ue.test(i))l=NaN;else if(e.peek().done||e.peek().value.type!==n.Dot)l=Number(i.replace(se,""));else{const t=o.start;if(e.next(),e.peek().done||e.peek().value.type!==n.Literal)throw new T(r,e.value.loc.end,"Expected fraction value for Float");e.next(),i+=`.${e.value.raw}`,o={start:t,end:e.value.loc.end},l=Number(i.replace(se,""))}return{type:t.Float,loc:o,raw:i,value:l}}(e,r):yield function(e){if("-0"===e.value.raw||"+0"===e.value.raw)return{type:t.Integer,loc:e.value.loc,raw:e.value.raw,value:0};let n=10;fe.test(e.value.raw)?n=16:me.test(e.value.raw)?n=8:de.test(e.value.raw)&&(n=2);const r=parseInt(e.value.raw.replace(se,"").replace(me,"").replace(de,""),n);return{type:t.Integer,loc:e.value.loc,raw:e.value.raw,value:r}}(e);else if(e.value.type===n.Curly)yield function(e,r){if("{"!==e.value.raw)throw new T(r,e.value.loc.start,`Expected "{" for inline table, found ${e.value.raw}`);const l={type:t.InlineTable,loc:S(e.value.loc),items:[]};e.next();for(;!e.done&&(e.value.type!==n.Curly||"}"!==e.value.raw);){if(e.value.type===n.Comma){const t=l.items[l.items.length-1];if(!t)throw new T(r,e.value.loc.start,'Found "," without previous value in inline table');t.comma=!0,t.loc.end=e.value.loc.start,e.next();continue}const[o]=ye(e,r);if(o.type!==t.KeyValue)throw new T(r,e.value.loc.start,`Only key-values are supported in inline tables, found ${o.type}`);const i={type:t.InlineItem,loc:S(o.loc),item:o,comma:!1};l.items.push(i),e.next()}if(e.done||e.value.type!==n.Curly||"}"!==e.value.raw)throw new T(r,e.done?l.loc.start:e.value.loc.start,`Expected "}", found ${e.done?"end of file":e.value.raw}`);return l.loc.end=e.value.loc.end,l}(e,r);else{if(e.value.type!==n.Bracket)throw new T(r,e.value.loc.start,`Unrecognized token type "${e.value.type}". Expected String, Curly, or Bracket`);{const[l,o]=function(e,r){if("["!==e.value.raw)throw new T(r,e.value.loc.start,`Expected "[" for inline array, found ${e.value.raw}`);const l={type:t.InlineArray,loc:S(e.value.loc),items:[]};let o=[];e.next();for(;!e.done&&(e.value.type!==n.Bracket||"]"!==e.value.raw);){if(e.value.type===n.Comma){const t=l.items[l.items.length-1];if(!t)throw new T(r,e.value.loc.start,'Found "," without previous value for inline array');t.comma=!0,t.loc.end=e.value.loc.start}else if(e.value.type===n.Comment)o.push(ge(e));else{const[n,...i]=he(e,r),a={type:t.InlineItem,loc:S(n.loc),item:n,comma:!1};l.items.push(a),P(o,i)}e.next()}if(e.done||e.value.type!==n.Bracket||"]"!==e.value.raw)throw new T(r,e.done?l.loc.start:e.value.loc.start,`Expected "]", found ${e.done?"end of file":e.value.raw}`);return l.loc.end=e.value.loc.end,[l,o]}(e,r);yield l,yield*o}}}function ge(e){return{type:t.Comment,loc:e.value.loc,raw:e.value.raw}}function ve(e,n){var r;function l(e,t){for(const n of e)o(n,t)}function o(e,r){const i=n[e.type];switch(i&&"function"==typeof i&&i(e,r),i&&i.enter&&i.enter(e,r),e.type){case t.Document:l(e.items,e);break;case t.Table:o(e.key,e),l(e.items,e);break;case t.TableKey:o(e.item,e);break;case t.TableArray:o(e.key,e),l(e.items,e);break;case t.TableArrayKey:o(e.item,e);break;case t.KeyValue:o(e.key,e),o(e.value,e);break;case t.InlineArray:l(e.items,e);break;case t.InlineItem:o(e.item,e);break;case t.InlineTable:l(e.items,e);break;case t.Key:case t.String:case t.Integer:case t.Float:case t.Boolean:case t.DateTime:case t.Comment:break;default:throw new Error(`Unrecognized node type "${e.type}"`)}i&&i.exit&&i.exit(e,r)}null!=(r=e)&&"function"==typeof r[Symbol.iterator]?l(e,null):o(e,null)}const we=ee,Se=new WeakMap,Te=e=>(Se.has(e)||Se.set(e,new WeakMap),Se.get(e)),be=new WeakMap,$e=e=>(be.has(e)||be.set(e,new WeakMap),be.get(e));function ke(e,t,n,r){if(a(n)&&a(r)){const e=n.raw,t=r.value,l=we.createDateWithOriginalFormat(t,e);r.value=l,r.raw=l.toISOString();0!==r.raw.length-e.length&&(r.loc.end.column=r.loc.start.column+r.raw.length)}if(m(t)){const e=t.items.indexOf(n);if(e<0)throw new Error("Could not find existing item in parent node for replace");t.items.splice(e,1,r)}else if(i(t)&&u(t.value)&&!u(n)){const e=t.value.items.indexOf(n);if(e<0)throw new Error("Could not find existing item in parent node for replace");t.value.items.splice(e,1,r)}else if(d(t))t.item=r;else{if(!i(t))throw new Error(`Unsupported parent type "${t.type}" for replace`);t.key===n?t.key=r:t.value=r}De(r,{lines:n.loc.start.line-r.loc.start.line,columns:n.loc.start.column-r.loc.start.column});const l=h(n.loc),o=h(r.loc);_e({lines:o.lines-l.lines,columns:o.columns-l.columns},$e(e),r,n)}function Ie(e,t,n,a,d){if(!m(t))throw new Error(`Unsupported parent type "${t.type}" for insert`);let p,y;a=null!=a&&"number"==typeof a?a:t.items.length,s(t)||u(t)?({shift:p,offset:y}=function(e,t,n){if(!c(t))throw new Error(`Incompatible child type "${t.type}"`);const r=null!=n?e.items[n-1]:U(e.items),l=null==n||n===e.items.length;e.items.splice(n,0,t);const o=!!r,i=!l;o&&(r.comma=!0);i&&(t.comma=!0);const a=s(e)&&function(e){if(!e.items.length)return!1;return h(e.loc).lines>e.items.length}(e),u=l&&!0===t.comma;return Ee(e,t,n,{useNewLine:a,hasCommaHandling:!0,isLastElement:l,hasSeparatingCommaBefore:o,hasSeparatingCommaAfter:i,hasTrailingComma:u})}(t,n,a)):d&&r(t)?({shift:p,offset:y}=function(e,t,n){const r=Ee(e,t,n,{useNewLine:!1,hasCommaHandling:!1});return e.items.splice(n,0,t),r}(t,n,a)):({shift:p,offset:y}=function(e,t,n){if(a=t,!(i(a)||l(a)||o(a)||f(a)))throw new Error(`Incompatible child type "${t.type}"`);var a;const s=e.items[n-1],c=r(e)&&!e.items.length;e.items.splice(n,0,t);const u=s?{line:s.loc.end.line,column:f(s)?e.loc.start.column:s.loc.start.column}:w(e.loc.start),m=l(t)||o(t);let d=0;c||(d=m?2:1);u.line+=d;const p={lines:u.line-t.loc.start.line,columns:u.column-t.loc.start.column},y=h(t.loc),g={lines:y.lines+(d-1),columns:y.columns};return{shift:p,offset:g}}(t,n,a)),De(n,p);const g=t.items[a-1],v=g&&$e(e).get(g);v&&(y.lines+=v.lines,y.columns+=v.columns,$e(e).delete(g));$e(e).set(n,y)}function Ee(e,t,n,r={}){const{useNewLine:l=!1,skipCommaSpace:o=2,skipBracketSpace:i=1,hasCommaHandling:a=!1,isLastElement:s=!1,hasSeparatingCommaBefore:c=!1,hasSeparatingCommaAfter:u=!1,hasTrailingComma:m=!1}=r,d=n>0?e.items[n-1]:void 0,p=d?{line:d.loc.end.line,column:l?f(d)?e.loc.start.column:d.loc.start.column:d.loc.end.column}:w(e.loc.start);let y=0;if(l)y=1;else{const e=c||!a&&!!d;e&&a?p.column+=o:(e||a&&!d)&&(p.column+=i)}p.line+=y;const g={lines:p.line-t.loc.start.line,columns:p.column-t.loc.start.column},v=h(t.loc);if(!a){return{shift:g,offset:{lines:v.lines+(y-1),columns:v.columns}}}let S=0;c&&m&&!u&&s&&(S=-1);return{shift:g,offset:{lines:v.lines+(y-1),columns:v.columns+(c||u?o:0)+(m?1+S:0)}}}function Ae(e,t,n){if(!m(t))throw new Error(`Unsupported parent type "${t.type}" for remove`);let r=t.items.indexOf(n);if(r<0){if(r=t.items.findIndex((e=>d(e)&&e.item===n)),r<0)throw new Error("Could not find node in parent for removal");n=t.items[r]}const l=t.items[r-1];let o=t.items[r+1];t.items.splice(r,1);let i=h(n.loc);o&&f(o)&&o.loc.start.line===n.loc.end.line&&(i=h({start:n.loc.start,end:o.loc.end}),o=t.items[r+1],t.items.splice(r,1));const a=l&&c(l)||o&&c(o),s=l&&l.loc.end.line===n.loc.start.line,u=o&&o.loc.start.line===n.loc.end.line,p=a&&(s||u),y={lines:-(i.lines-(p?1:0)),columns:-i.columns};if(void 0===l&&void 0===o&&(y.lines=0,y.columns=0),a&&s&&(y.columns-=2),a&&!l&&o&&(y.columns-=2),a&&l&&!o){const e=n.comma;l.comma=!!e}const g=l||t,v=l?$e(e):Te(e),w=$e(e),S=v.get(g);S&&(y.lines+=S.lines,y.columns+=S.columns);const T=w.get(n);T&&(y.lines+=T.lines,y.columns+=T.columns),v.set(g,y)}function Ce(e,t,n=!0){if(!n)return;if(!t.items.length)return;_e({lines:0,columns:1},Te(e),t);const r=U(t.items);_e({lines:0,columns:1},$e(e),r)}function xe(e,t,n=!1){if(!n)return;if(!t.items.length)return;const r=U(t.items);r.comma=!0,_e({lines:0,columns:1},$e(e),r)}function Oe(e){const n=Te(e),r=$e(e),l={lines:0,columns:{}};function o(e){const t=l.lines;e.loc.start.line+=t;const r=l.columns[e.loc.start.line]||0;e.loc.start.column+=r;const o=n.get(e);o&&(l.lines+=o.lines,l.columns[e.loc.start.line]=(l.columns[e.loc.start.line]||0)+o.columns)}function i(e){const t=l.lines;e.loc.end.line+=t;const n=l.columns[e.loc.end.line]||0;e.loc.end.column+=n;const o=r.get(e);o&&(l.lines+=o.lines,l.columns[e.loc.end.line]=(l.columns[e.loc.end.line]||0)+o.columns)}const a={enter:o,exit:i};ve(e,{[t.Document]:a,[t.Table]:a,[t.TableArray]:a,[t.InlineTable]:a,[t.InlineArray]:a,[t.InlineItem]:a,[t.TableKey]:a,[t.TableArrayKey]:a,[t.KeyValue]:{enter(e){const t=e.loc.start.line+l.lines,n=r.get(e.key);e.equals+=(l.columns[t]||0)+(n?n.columns:0),o(e)},exit:i},[t.Key]:a,[t.String]:a,[t.Integer]:a,[t.Float]:a,[t.Boolean]:a,[t.DateTime]:a,[t.Comment]:a}),Se.delete(e),be.delete(e)}function De(e,n,r={}){const{first_line_only:l=!1}=r,o=e.loc.start.line,{lines:i,columns:a}=n,s=e=>{l&&e.loc.start.line!==o||(e.loc.start.column+=a,e.loc.end.column+=a),e.loc.start.line+=i,e.loc.end.line+=i};return ve(e,{[t.Table]:s,[t.TableKey]:s,[t.TableArray]:s,[t.TableArrayKey]:s,[t.KeyValue](e){s(e),e.equals+=a},[t.Key]:s,[t.String]:s,[t.Integer]:s,[t.Float]:s,[t.Boolean]:s,[t.DateTime]:s,[t.InlineArray]:s,[t.InlineItem]:s,[t.InlineTable]:s,[t.Comment]:s}),e}function _e(e,t,n,r){const l=t.get(r||n);l&&(e.lines+=l.lines,e.columns+=l.columns),t.set(n,e)}function Le(){return{type:t.Document,loc:{start:{line:1,column:0},end:{line:1,column:0}},items:[]}}function Ue(e){const n=function(e){const n=je(e);return{type:t.TableKey,loc:{start:{line:1,column:0},end:{line:1,column:n.length+2}},item:{type:t.Key,loc:{start:{line:1,column:1},end:{line:1,column:n.length+1}},value:e,raw:n}}}(e);return{type:t.Table,loc:S(n.loc),key:n,items:[]}}function Fe(e){const n=function(e){const n=je(e);return{type:t.TableArrayKey,loc:{start:{line:1,column:0},end:{line:1,column:n.length+4}},item:{type:t.Key,loc:{start:{line:1,column:2},end:{line:1,column:n.length+2}},value:e,raw:n}}}(e);return{type:t.TableArray,loc:S(n.loc),key:n,items:[]}}function Me(e,n){const r=function(e){const n=je(e);return{type:t.Key,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e),{column:l}=r.loc.end,o=l+1;return De(n,{lines:0,columns:l+3-n.loc.start.column},{first_line_only:!0}),{type:t.KeyValue,loc:{start:w(r.loc.start),end:w(n.loc.end)},key:r,equals:o,value:n}}const Ke=/^[\w-]+$/;function je(e){return e.map((e=>Ke.test(e)?e:JSON.stringify(e))).join(".")}function Ne(e){return{type:t.InlineItem,loc:S(e.loc),item:e,comma:!1}}const Be=!1,Ze=!0,Pe=!1;function We(e,t){if(!e||"object"!=typeof e)return null;if(("InlineArray"===e.type||"InlineTable"===e.type)&&e.loc){const n=function(e,t){var n;if(!e||!e.start||!e.end)return null;const r=t.split(/\r?\n/),l=e.start.line-1,o=e.end.line-1,i=e.start.column,a=e.end.column;let s="";if(l===o)s=(null===(n=r[l])||void 0===n?void 0:n.substring(i,a+1))||"";else{r[l]&&(s+=r[l].substring(i));for(let e=l+1;e<o;e++)s+="\n"+(r[e]||"");r[o]&&(s+="\n"+r[o].substring(0,a+1))}const c=s.match(/^\[(\s*)/),u=s.match(/^\{(\s*)/);if(c)return c[1].length>0;if(u)return u[1].length>0;return null}(e.loc,t);if(null!==n)return n}if(e.items&&Array.isArray(e.items))for(const n of e.items){const e=We(n,t);if(null!==e)return e;if(n.item){const e=We(n.item,t);if(null!==e)return e}}for(const n of["value","key","item"])if(e[n]){const r=We(e[n],t);if(null!==r)return r}return null}function ze(e){if(!e||"object"!=typeof e)return null;if("InlineArray"===e.type&&e.items&&Array.isArray(e.items))return Ve(e.items);if("InlineTable"===e.type&&e.items&&Array.isArray(e.items))return Ve(e.items);if("KeyValue"===e.type&&e.value)return ze(e.value);if(e.items&&Array.isArray(e.items))for(const t of e.items){const e=ze(t);if(null!==e)return e}return null}function Ve(e){if(0===e.length)return null;const t=e[e.length-1];return!(!t||"object"!=typeof t||!("comma"in t))&&!0===t.comma}function He(e){if(!s(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function qe(e){if(!u(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function Re(e){const t=e.indexOf("\n");return t>0&&"\r"===e.substring(t-1,t)?"\r\n":"\n"}function Ye(e,t){var n,r,l,o,i;if(e){if(e instanceof Je)return e;{const a=function(e){if(!e||"object"!=typeof e)return{};const t=new Set(["newLine","trailingNewline","trailingComma","bracketSpacing","inlineTableStart","truncateZeroTimeInDates"]),n={},r=[],l=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(t.has(o)){const t=e[o];switch(o){case"newLine":"string"==typeof t?n.newLine=t:l.push(`${o} (expected string, got ${typeof t})`);break;case"trailingNewline":"boolean"==typeof t||"number"==typeof t?n.trailingNewline=t:l.push(`${o} (expected boolean or number, got ${typeof t})`);break;case"trailingComma":case"bracketSpacing":case"truncateZeroTimeInDates":"boolean"==typeof t?n[o]=t:l.push(`${o} (expected boolean, got ${typeof t})`);break;case"inlineTableStart":"number"==typeof t&&Number.isInteger(t)&&t>=0||null==t?n.inlineTableStart=t:l.push(`${o} (expected non-negative integer or undefined, got ${typeof t})`)}}else r.push(o);if(r.length>0&&console.warn(`toml-patch: Ignoring unsupported format properties: ${r.join(", ")}. Supported properties are: ${Array.from(t).join(", ")}`),l.length>0)throw new TypeError(`Invalid types for format properties: ${l.join(", ")}`);return n}(e);return new Je(null!==(n=a.newLine)&&void 0!==n?n:t.newLine,null!==(r=a.trailingNewline)&&void 0!==r?r:t.trailingNewline,null!==(l=a.trailingComma)&&void 0!==l?l:t.trailingComma,null!==(o=a.bracketSpacing)&&void 0!==o?o:t.bracketSpacing,void 0!==a.inlineTableStart?a.inlineTableStart:t.inlineTableStart,null!==(i=a.truncateZeroTimeInDates)&&void 0!==i?i:t.truncateZeroTimeInDates)}}return t}class Je{constructor(e,t,n,r,l,o){this.newLine=null!=e?e:"\n",this.trailingNewline=null!=t?t:1,this.trailingComma=null!=n?n:Be,this.bracketSpacing=null!=r?r:Ze,this.inlineTableStart=null!=l?l:1,this.truncateZeroTimeInDates=null!=o?o:Pe}static default(){return new Je("\n",1,Be,Ze,1,Pe)}static autoDetectFormat(e){const t=Je.default();t.newLine=Re(e),t.trailingNewline=function(e,t){let n=0,r=e.length;for(;r>=t.length&&e.substring(r-t.length,r)===t;)n++,r-=t.length;return n}(e,t.newLine);try{const n=pe(e),r=Array.from(n);t.trailingComma=function(e){const t=Array.from(e);for(const e of t){const t=ze(e);if(null!==t)return t}return Be}(r),t.bracketSpacing=function(e,t){const n=Array.from(t);for(const t of n){const n=We(t,e);if(null!==n)return n}return Ze}(e,r)}catch(e){t.trailingComma=Be,t.bracketSpacing=Ze}return t.inlineTableStart=1,t.truncateZeroTimeInDates=Pe,t}}function Ge(e,t){if(0===t.inlineTableStart)return e;return e.items.filter((e=>{if(!i(e))return!1;const n=u(e.value),r=s(e.value)&&e.value.items.length&&u(e.value.items[0].item);if(n||r){const n=et(e.key.value);return void 0===t.inlineTableStart||n<t.inlineTableStart}return!1})).forEach((t=>{Ae(e,e,t),u(t.value)?Ie(e,e,Qe(t)):function(e){const t=Le();for(const n of e.value.items){const r=Fe(e.key.value);Ie(t,t,r);for(const e of n.item.items)Ie(t,r,e.item)}return Oe(t),t.items}(t).forEach((t=>{Ie(e,e,t)}))})),Oe(e),e}function Qe(e){const t=Ue(e.key.value);for(const n of e.value.items)Ie(t,t,n.item);return Oe(t),t}function Xe(e){if(e.items.length>0){const t=e.items[e.items.length-1];e.loc.end.line=t.loc.end.line,e.loc.end.column=t.loc.end.column}else e.loc.end.line=e.key.loc.end.line,e.loc.end.column=e.key.loc.end.column}function et(e){return Math.max(0,e.length-1)}function tt(e,t,n){var r;for(let l=e.items.length-1;l>=0;l--){const o=e.items[l];if(i(o)&&u(o.value)){const l=[...e.key.item.value,...o.key.value];if(et(l)<(null!==(r=n.inlineTableStart)&&void 0!==r?r:1)){const r=Ue(l);for(const e of o.value.items)Ie(r,r,e.item);Ae(e,e,o),Xe(e),t.push(r),tt(r,t,n)}}}}function nt(e,t=Je.default()){e=function(e){const t=[],n=[];for(const r in e)j(e[r])||Array.isArray(e[r])?n.push(r):t.push(r);const r={};for(let n=0;n<t.length;n++){const l=t[n];r[l]=e[l]}for(let t=0;t<n.length;t++){const l=n[t];r[l]=e[l]}return r}(e=ot(e));const n=Le();for(const r of rt(e,t))Ie(n,n,r);Oe(n);const r=B(n,(e=>Ge(e,t)),(e=>function(e,t){if(void 0===t.inlineTableStart||0===t.inlineTableStart)return e;const n=[];for(const r of e.items)if(i(r)&&u(r.value)){if(et(r.key.value)<t.inlineTableStart){const l=Qe(r);Ae(e,e,r),Ie(e,e,l),tt(l,n,t)}}else"Table"===r.type&&tt(r,n,t);for(const t of n)Ie(e,e,t);return Oe(e),e}(e,t)),(e=>function(e){return e}(e)));return function(e){let t=0,n=0;for(const r of e.items)0===n&&r.loc.start.line>1?t=1-r.loc.start.line:r.loc.start.line+t>n+2&&(t+=n+2-(r.loc.start.line+t)),De(r,{lines:t,columns:0}),n=r.loc.end.line;return e}(r)}function*rt(e,t){for(const n of Object.keys(e))yield Me([n],lt(e[n],t))}function lt(e,n){if(null==e)throw new Error('"null" and "undefined" values are not supported');return function(e){return"string"==typeof e}(e)?function(e){const n=JSON.stringify(e);return{type:t.String,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):M(e)?function(e){const n=e.toString();return{type:t.Integer,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):function(e){return"number"==typeof e&&(!M(e)||!isFinite(e)||Object.is(e,-0))}(e)?function(e){let n;return n=e===1/0?"inf":e===-1/0?"-inf":Number.isNaN(e)?"nan":Object.is(e,-0)?"-0.0":e.toString(),{type:t.Float,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):function(e){return"boolean"==typeof e}(e)?function(e){return{type:t.Boolean,loc:{start:{line:1,column:0},end:{line:1,column:e?4:5}},value:e}}(e):K(e)?function(e,n){n.truncateZeroTimeInDates&&0===e.getUTCHours()&&0===e.getUTCMinutes()&&0===e.getUTCSeconds()&&0===e.getUTCMilliseconds()&&(e=new te(e.toISOString().split("T")[0]));const r=e.toISOString();return{type:t.DateTime,loc:{start:{line:1,column:0},end:{line:1,column:r.length}},raw:r,value:e}}(e,n):Array.isArray(e)?function(e,n){const r={type:t.InlineArray,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]};for(const t of e){Ie(r,r,Ne(lt(t,n)))}return Ce(r,r,n.bracketSpacing),xe(r,r,n.trailingComma),Oe(r),r}(e,n):function(e,n){if(e=ot(e),!j(e))return lt(e,n);const r={type:t.InlineTable,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]},l=[...rt(e,n)];for(const e of l){Ie(r,r,Ne(e))}return Ce(r,r,n.bracketSpacing),xe(r,r,n.trailingComma),Oe(r),r}(e,n)}function ot(e){return e?K(e)?e:"function"==typeof e.toJSON?e.toJSON():e:e}const it=/(\r\n|\n)/g;function at(e,n){const r=[];return ve(e,{[t.TableKey](e){const{start:t,end:n}=e.loc;st(r,{start:t,end:{line:t.line,column:t.column+1}},"["),st(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.TableArrayKey](e){const{start:t,end:n}=e.loc;st(r,{start:t,end:{line:t.line,column:t.column+2}},"[["),st(r,{start:{line:n.line,column:n.column-2},end:n},"]]")},[t.KeyValue](e){const{start:{line:t}}=e.loc;st(r,{start:{line:t,column:e.equals},end:{line:t,column:e.equals+1}},"=")},[t.Key](e){st(r,e.loc,e.raw)},[t.String](e){st(r,e.loc,e.raw)},[t.Integer](e){st(r,e.loc,e.raw)},[t.Float](e){st(r,e.loc,e.raw)},[t.Boolean](e){st(r,e.loc,e.value.toString())},[t.DateTime](e){st(r,e.loc,e.raw)},[t.InlineArray](e){const{start:t,end:n}=e.loc;st(r,{start:t,end:{line:t.line,column:t.column+1}},"["),st(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.InlineTable](e){const{start:t,end:n}=e.loc;st(r,{start:t,end:{line:t.line,column:t.column+1}},"{"),st(r,{start:{line:n.line,column:n.column-1},end:n},"}")},[t.InlineItem](e){if(!e.comma)return;const t=e.loc.end;st(r,{start:t,end:{line:t.line,column:t.column+1}},",")},[t.Comment](e){st(r,e.loc,e.raw)}}),r.join(n.newLine)+n.newLine.repeat(n.trailingNewline)}function st(e,t,n){const r=n.split(it).filter((e=>"\n"!==e&&"\r\n"!==e)),l=t.end.line-t.start.line+1;if(r.length!==l)throw new Error(`Mismatch between location and raw string, expected ${l} lines for "${n}"`);for(let l=t.start.line;l<=t.end.line;l++){const o=ct(e,l);if(void 0===o)throw new Error(`Line ${l} is uninitialized when writing "${n}" at ${t.start.line}:${t.start.column} to ${t.end.line}:${t.end.column}`);const i=l===t.start.line,a=l===t.end.line,s=i?o.substr(0,t.start.column).padEnd(t.start.column," "):"",c=a?o.substr(t.end.column):"";e[l-1]=s+r[l-t.start.line]+c}}function ct(e,t){if(!e[t-1])for(let n=0;n<t;n++)e[n]||(e[n]="");return e[t-1]}function ut(e,n=""){const r=F(),l=new Set,o=new Set,i=new Set;let a=r,s=0;return ve(e,{[t.Table](e){const t=e.key.item.value;try{mt(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const s=yt(t);l.add(s),i.add(s),a=dt(r,t)},[t.TableArray](e){const t=e.key.item.value;try{mt(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const s=yt(t);o.add(s),i.add(s),a=function(e,t){const n=pt(e,t.slice(0,-1)),r=U(t);n[r]||(n[r]=[]);const l=F();return n[U(t)].push(l),l}(r,t)},[t.KeyValue]:{enter(e){if(s>0)return;const t=e.key.value;try{mt(a,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const r=ft(e.value);(t.length>1?dt(a,t.slice(0,-1)):a)[U(t)]=r,i.add(yt(t))}},[t.InlineTable]:{enter(){s++},exit(){s--}}}),r}function ft(e){switch(e.type){case t.InlineTable:const n=F();return e.items.forEach((({item:e})=>{const t=e.key.value,r=ft(e.value);(t.length>1?dt(n,t.slice(0,-1)):n)[U(t)]=r})),n;case t.InlineArray:return e.items.map((e=>ft(e.item)));case t.String:case t.Integer:case t.Float:case t.Boolean:case t.DateTime:return e.value;default:throw new Error(`Unrecognized value type "${e.type}"`)}}function mt(e,n,r,l){let o=[],i=0;for(const t of n){if(o.push(t),!N(e,t))return;if("object"!=typeof(a=e[t])&&!K(a))throw new Error(`Invalid key, a value has already been defined for ${o.join(".")}`);const r=yt(o);if(Array.isArray(e[t])&&!l.table_arrays.has(r))throw new Error(`Invalid key, cannot add to a static array at ${r}`);const s=i++<n.length-1;e=Array.isArray(e[t])&&s?U(e[t]):e[t]}var a;const s=yt(n);if(e&&r===t.Table&&l.defined.has(s))throw new Error(`Invalid key, a table has already been defined named ${s}`);if(e&&r===t.TableArray&&!l.table_arrays.has(s))throw new Error(`Invalid key, cannot add an array of tables to a table at ${s}`)}function dt(e,t){const n=pt(e,t.slice(0,-1)),r=U(t);return n[r]||(n[r]=F()),n[r]}function pt(e,t){return t.reduce(((e,t)=>(e[t]||(e[t]=F()),Array.isArray(e[t])?U(e[t]):e[t])),e)}function yt(e){return e.join(".")}var ht,gt,vt,wt;function St(e){return e.type===ht.Remove}function Tt(e,t,n=[]){return e===t||(l=t,K(r=e)&&K(l)&&r.toISOString()===l.toISOString())?[]:Array.isArray(e)&&Array.isArray(t)?function(e,t,n=[]){let r=[];const l=e.map(Z),o=t.map(Z);o.forEach(((i,a)=>{const s=a>=l.length;if(!s&&l[a]===i)return;const c=l.indexOf(i,a+1);if(!s&&c>-1){r.push({type:ht.Move,path:n,from:c,to:a});const e=l.splice(c,1);return void l.splice(a,0,...e)}const u=!o.includes(l[a]);if(!s&&u)return P(r,Tt(e[a],t[a],n.concat(a))),void(l[a]=i);r.push({type:ht.Add,path:n.concat(a)}),l.splice(a,0,i)}));for(let e=o.length;e<l.length;e++)r.push({type:ht.Remove,path:n.concat(e)});return r}(e,t,n):j(e)&&j(t)?function(e,t,n=[]){let r=[];const l=Object.keys(e),o=l.map((t=>Z(e[t]))),i=Object.keys(t),a=i.map((e=>Z(t[e]))),s=(e,t)=>{if(t.indexOf(e)<0)return!1;const n=l[o.indexOf(e)];return!i.includes(n)};return l.forEach(((l,c)=>{const u=n.concat(l);if(i.includes(l))P(r,Tt(e[l],t[l],u));else if(s(o[c],a)){const e=i[a.indexOf(o[c])];r.push({type:ht.Rename,path:n,from:l,to:e})}else r.push({type:ht.Remove,path:u})})),i.forEach(((e,t)=>{l.includes(e)||s(a[t],o)||r.push({type:ht.Add,path:n.concat(e)})})),r}(e,t,n):[{type:ht.Edit,path:n}];var r,l}function bt(e,t){if(!t.length)return c(e)&&i(e.item)?e.item:e;if(i(e))return bt(e.value,t);const n={};let r;if(m(e)&&e.items.some(((e,a)=>{try{let s=[];if(i(e))s=e.key.value;else if(l(e))s=e.key.item.value;else if(o(e)){s=e.key.item.value;const t=Z(s);n[t]||(n[t]=0);const r=n[t]++;s=s.concat(r)}else c(e)&&i(e.item)?s=e.item.key.value:c(e)&&(s=[a]);return!(!s.length||!function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(s,t.slice(0,s.length)))&&(r=bt(e,t.slice(s.length)),!0)}catch(e){return!1}})),!r)throw new Error(`Could not find node at path ${t.join(".")}`);return r}function $t(e,t){try{return bt(e,t)}catch(e){}}function kt(e,t){let n,r=t;for(;r.length&&!n;)r=r.slice(0,-1),n=$t(e,r);if(!n)throw new Error(`Count not find parent node for path ${t.join(".")}`);return n}function It(e,n,a){const f=[...e],m=ut(f),p={type:t.Document,loc:{start:{line:1,column:0},end:{line:1,column:0}},items:f},y=nt(n,Ye(Object.assign(Object.assign({},a),{inlineTableStart:void 0}),a)),h=function(e){for(let t=0;t<e.length;t++){const n=e[t];if(St(n)){let r=t+1;for(;r<e.length;){const l=e[r];if(St(l)&&l.path[0]===n.path[0]&&l.path[1]>n.path[1]){e.splice(r,1),e.splice(t,0,l),t=0;break}r++}}}return e}(Tt(m,n));if(0===h.length)return{tomlString:at(f,a),document:p};const g=function(e,t,n,a){return n.forEach((n=>{if(function(e){return e.type===ht.Add}(n)){const f=bt(t,n.path),m=n.path.slice(0,-1);let d,p=U(n.path),y=o(f);if(M(p)&&!m.some(M)){const t=$t(e,m.concat(0));t&&o(t)&&(y=!0)}if(l(f))d=e;else if(y){d=e;const t=e,n=$t(t,m.concat(p-1)),r=$t(t,m.concat(p));p=r?t.items.indexOf(r):n?t.items.indexOf(n)+1:t.items.length}else d=kt(e,n.path),i(d)&&(d=d.value);if(o(d)||s(d)||r(d)){if(s(d)){const e=He(d);c(f)&&(f.comma=e)}if(void 0!==a.inlineTableStart&&a.inlineTableStart>0&&r(d)&&l(f)){const t=Et(f,e,a);Ie(e,d,f,p);for(const n of t)Ie(e,e,n,void 0)}else Ie(e,d,f,p)}else if(u(d)){const t=qe(d);if(i(f)){const n=Ne(f);n.comma=t,Ie(e,d,n)}else Ie(e,d,f)}else if(void 0!==a.inlineTableStart&&a.inlineTableStart>0&&i(f)&&u(f.value)&&l(d)){et([...d.key.item.value,...f.key.value])<a.inlineTableStart?function(e,t,n,r){const l=t.key.item.value,o=[...l,...e.key.value],a=Ue(o);if(u(e.value))for(const t of e.value.items)c(t)&&i(t.item)&&Ie(n,a,t.item,void 0);Ie(n,n,a,void 0),Xe(t);const s=Et(a,n,r);for(const e of s)Ie(n,n,e,void 0)}(f,d,e,a):Ie(e,d,f)}else 0===a.inlineTableStart&&i(f)&&u(f.value)&&r(d)?Ie(e,d,f,void 0,!0):Ie(e,d,f)}else if(function(e){return e.type===ht.Edit}(n)){let r,l=bt(e,n.path),o=bt(t,n.path);if(i(l)&&i(o)){if(s(l.value)&&s(o.value)){const e=He(l.value),t=o.value;if(t.items.length>0){t.items[t.items.length-1].comma=e}}if(u(l.value)&&u(o.value)){const e=qe(l.value),t=o.value;if(t.items.length>0){t.items[t.items.length-1].comma=e}}r=l,l=l.value,o=o.value}else if(i(l)&&c(o)&&i(o.item))r=l,l=l.value,o=o.item.value;else if(c(l)&&i(o))r=l,l=l.item;else if(r=kt(e,n.path),i(r)){const t=n.path.slice(0,-1),l=bt(e,t);i(l)&&s(l.value)&&(r=l.value)}ke(e,r,l,o)}else if(St(n)){let t=kt(e,n.path);i(t)&&(t=t.value);const r=bt(e,n.path);Ae(e,t,r)}else if(function(e){return e.type===ht.Move}(n)){let t=bt(e,n.path);d(t)&&(t=t.item),i(t)&&(t=t.value);const r=t.items[n.from];Ae(e,t,r),Ie(e,t,r,n.to)}else if(function(e){return e.type===ht.Rename}(n)){let r=bt(e,n.path.concat(n.from)),l=bt(t,n.path.concat(n.to));d(r)&&(r=r.item),d(l)&&(l=l.item),ke(e,r,r.key,l.key)}})),Oe(e),e}(p,y,h,a);return{tomlString:at(g.items,a),document:g}}function Et(e,t,n){const r=[],l=(e,r)=>{var o;for(let a=e.items.length-1;a>=0;a--){const s=e.items[a];if(i(s)&&u(s.value)){const u=[...e.key.item.value,...s.key.value];if(et(u)<(null!==(o=n.inlineTableStart)&&void 0!==o?o:1)&&0!==n.inlineTableStart){const n=Ue(u);for(const e of s.value.items)c(e)&&i(e.item)&&Ie(t,n,e.item,void 0);e.items.splice(a,1),Xe(e),r.push(n),l(n,r)}}}};return l(e,r),r}function At(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function Ct(e,t,n,r,l){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!l:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?l.call(e,n):l?l.value=n:t.set(e,n),n}function xt(e,t){return e.line!==t.line?e.line-t.line:e.column-t.column}!function(e){e.Add="Add",e.Edit="Edit",e.Remove="Remove",e.Move="Move",e.Rename="Rename"}(ht||(ht={})),"function"==typeof SuppressedError&&SuppressedError;function Ot(e){if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(Ot);if(e&&"object"==typeof e){const t={};for(const[n,r]of Object.entries(e))t[n]=Ot(r);return t}return e}gt=new WeakMap,vt=new WeakMap,wt=new WeakMap,e.TomlDocument=class{constructor(e){gt.set(this,void 0),vt.set(this,void 0),wt.set(this,void 0),Ct(this,vt,e,"f"),Ct(this,gt,Array.from(pe(e)),"f"),Ct(this,wt,Je.autoDetectFormat(e),"f")}get toTomlString(){return At(this,vt,"f")}get toJsObject(){return Ot(ut(At(this,gt,"f")))}get ast(){return At(this,gt,"f")}patch(e,t){const n=Ye(t,At(this,wt,"f")),{tomlString:r,document:l}=It(At(this,gt,"f"),e,n);Ct(this,gt,l.items,"f"),Ct(this,vt,r,"f")}update(e){if(e===this.toTomlString)return;const t=this.toTomlString.split(At(this,wt,"f").newLine),n=Re(e),r=e.split(n);let l=0;for(;l<t.length&&l<r.length&&t[l]===r[l];)l++;let o=0;if(l<t.length&&l<r.length){const e=t[l],n=r[l];for(let t=0;t<Math.max(e.length,n.length);t++)if(e[t]!==n[t]){o=t;break}}let i=l+1;const{truncatedAst:a,lastEndPosition:s}=function(e,t,n){const r={line:t,column:n},l=[];let o=null;for(const t of e){const e=xt(t.loc.end,r)<0,n=xt(t.loc.start,r)<0;if(!e){if(n&&!e)break;break}l.push(t),o=t.loc.end}return{truncatedAst:l,lastEndPosition:o}}(At(this,gt,"f"),i,o),c=s?s.line:1,u=s?s.column+1:0,f=r.slice(c-1);f.length>0&&u>0&&(f[0]=f[0].substring(u));const m=f.join(At(this,wt,"f").newLine);Ct(this,gt,Array.from(function*(e,t){for(const t of e)yield t;for(const e of pe(t))yield e}(a,m)),"f"),Ct(this,vt,e,"f"),Ct(this,wt,Je.autoDetectFormat(e),"f")}overwrite(e){e!==this.toTomlString&&(Ct(this,gt,Array.from(pe(e)),"f"),Ct(this,vt,e,"f"),Ct(this,wt,Je.autoDetectFormat(e),"f"))}},e.TomlFormat=Je,e.parse=function(e){return ut(pe(e),e)},e.patch=function(e,t,n){return It(pe(e),t,Ye(n,Je.autoDetectFormat(e))).tomlString},e.stringify=function(e,t){const n=Ye(t,Je.default());return at(nt(e,n).items,n)}}));
|
|
1
|
+
//! @decimalturn/toml-patch v0.5.1 - https://github.com/DecimalTurn/toml-patch - @license: MIT
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TOML={})}(this,(function(e){"use strict";var t,n;function r(e){return e.type===t.Document}function l(e){return e.type===t.Table}function o(e){return e.type===t.TableArray}function i(e){return e.type===t.KeyValue}function a(e){return e.type===t.String}function s(e){return e.type===t.DateTime}function c(e){return e.type===t.InlineArray}function u(e){return e.type===t.InlineItem}function f(e){return e.type===t.InlineTable}function m(e){return e.type===t.Comment}function d(e){return r(e)||l(e)||o(e)||f(e)||c(e)}function p(e){return function(e){return e.type===t.TableKey}(e)||function(e){return e.type===t.TableArrayKey}(e)||u(e)}!function(e){e.Document="Document",e.Table="Table",e.TableKey="TableKey",e.TableArray="TableArray",e.TableArrayKey="TableArrayKey",e.KeyValue="KeyValue",e.Key="Key",e.String="String",e.Integer="Integer",e.Float="Float",e.Boolean="Boolean",e.DateTime="DateTime",e.InlineArray="InlineArray",e.InlineItem="InlineItem",e.InlineTable="InlineTable",e.Comment="Comment"}(t||(t={}));class h{constructor(e){this.iterator=e,this.index=-1,this.value=void 0,this.done=!1,this.peeked=null}next(){var e;if(this.done)return y();const t=this.peeked||this.iterator.next();return this.index+=1,this.value=t.value,this.done=null!==(e=t.done)&&void 0!==e&&e,this.peeked=null,t}peek(){return this.done?y():(this.peeked||(this.peeked=this.iterator.next()),this.peeked)}[Symbol.iterator](){return this}}function y(){return{value:void 0,done:!0}}function g(e){return{lines:e.end.line-e.start.line+1,columns:e.end.column-e.start.column}}function v(e,t){const n=Array.isArray(e)?e:w(e),r=n.findIndex((e=>e>=t))+1;return{line:r,column:t-(n[r-2]+1||0)}}function w(e){const t=/\r\n|\n/g,n=[];let r;for(;null!=(r=t.exec(e));)n.push(r.index+r[0].length-1);return n.push(e.length+1),n}function S(e){return{line:e.line,column:e.column}}function T(e){return{start:S(e.start),end:S(e.end)}}class b extends Error{constructor(e,t,n){let r=`Error parsing TOML (${t.line}, ${t.column+1}):\n`;if(e){const n=function(e,t){const n=w(e),r=n[t.line-2]||0,l=n[t.line-1]||e.length;return e.substr(r,l-r)}(e,t),l=`${function(e,t=" "){return t.repeat(e)}(t.column)}^`;n&&(r+=`${n}\n${l}\n`)}r+=n,super(r),this.line=t.line,this.column=t.column}}!function(e){e.Bracket="Bracket",e.Curly="Curly",e.Equal="Equal",e.Comma="Comma",e.Dot="Dot",e.Comment="Comment",e.Literal="Literal"}(n||(n={}));const $=/\s/,k=/(\r\n|\n)/,I='"',E="'",x=/[\w,\d,\",\',\+,\-,\_]/;function*A(e){const t=new h(e[Symbol.iterator]());t.next();const r=function(e){const t=w(e);return(e,n)=>({start:v(t,e),end:v(t,n)})}(e);for(;!t.done;){if($.test(t.value));else if("["===t.value||"]"===t.value)yield C(t,r,n.Bracket);else if("{"===t.value||"}"===t.value)yield C(t,r,n.Curly);else if("="===t.value)yield C(t,r,n.Equal);else if(","===t.value)yield C(t,r,n.Comma);else if("."===t.value)yield C(t,r,n.Dot);else if("#"===t.value)yield O(t,r);else{const n=F(e,t.index,E)||F(e,t.index,I);n?yield D(t,r,n,e):yield _(t,r,e)}t.next()}}function C(e,t,n){return{type:n,raw:e.value,loc:t(e.index,e.index+1)}}function O(e,t){const r=e.index;let l=e.value;for(;!e.peek().done&&!k.test(e.peek().value);)e.next(),l+=e.value;return{type:n.Comment,raw:l,loc:t(r,e.index+1)}}function D(e,t,r,l){const o=e.index;let i=r+r+r,a=i;for(e.next(),e.next(),e.next();!e.done&&(!F(l,e.index,r)||L(l,e.index,r));)a+=e.value,e.next();if(e.done)throw new b(l,v(l,e.index),`Expected close of multiline string with ${i}, reached end of file`);return a+=i,e.next(),e.next(),{type:n.Literal,raw:a,loc:t(o,e.index+1)}}function _(e,t,r){if(!x.test(e.value))throw new b(r,v(r,e.index),`Unsupported character "${e.value}". Expected ALPHANUMERIC, ", ', +, -, or _`);const l=e.index;let o=e.value,i=e.value===I,a=e.value===E;const s=e=>{if(e.peek().done)return!0;const t=e.peek().value;return!(i||a)&&($.test(t)||","===t||"."===t||"]"===t||"}"===t||"="===t||"#"===t)};for(;!e.done&&!s(e)&&(e.next(),e.value===I&&(i=!i),e.value!==E||i||(a=!a),o+=e.value,!e.peek().done);){let t=e.peek().value;i&&"\\"===e.value&&(t===I?(o+=I,e.next()):"\\"===t&&(o+="\\",e.next()))}if(i||a)throw new b(r,v(r,l),`Expected close of string with ${i?I:E}`);return{type:n.Literal,raw:o,loc:t(l,e.index+1)}}function F(e,t,n){if(!n)return!1;if(!(e[t]===n&&e[t+1]===n&&e[t+2]===n))return!1;const r=e.slice(0,t).match(/\\+$/);if(!r)return n;return!(r[0].length%2!=0)&&n}function L(e,t,n){return!!n&&(e[t]===n&&e[t+1]===n&&e[t+2]===n&&e[t+3]===n)}function U(e){return e[e.length-1]}function M(){return Object.create(null)}function j(e){return"number"==typeof e&&e%1==0&&isFinite(e)&&!Object.is(e,-0)}function K(e){return"[object Date]"===Object.prototype.toString.call(e)}function N(e){return e&&"object"==typeof e&&!K(e)&&!Array.isArray(e)}function B(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Z(e,...t){return t.reduce(((e,t)=>t(e)),e)}function W(e){if(N(e)){return`{${Object.keys(e).sort().map((t=>`${JSON.stringify(t)}:${W(e[t])}`)).join(",")}}`}return Array.isArray(e)?`[${e.map(W).join(",")}]`:JSON.stringify(e)}function P(e,t){const n=e.length,r=t.length;e.length=n+r;for(let l=0;l<r;l++)e[n+l]=t[l]}function z(e){return e.startsWith('"""')||e.startsWith("'''")}const V=/\r\n/g,H=/\n/g,R=/^(\r\n|\n)/,q=/(?<!\\)(?:\\\\)*(\\\s*[\n\r\n]\s*)/g;function Y(e){return e.startsWith("'''")?Z(Q(e,3),X):e.startsWith(E)?Q(e,1):e.startsWith('"""')?Z(Q(e,3),X,te,ee,J,G):e.startsWith(I)?Z(Q(e,1),G):e}function J(e){let t="",n=0;for(let r=0;r<e.length;r++){const l=e[r];t+='"'===l&&n%2==0?'\\"':l,"\\"===l?n++:n=0}return t}function G(e){const t=e.replace(/\\U[a-fA-F0-9]{8}/g,(e=>{const t=parseInt(e.replace("\\U",""),16),n=String.fromCodePoint(t);return Q(JSON.stringify(n),1)})),n=t.replace(/\t/g,"\\t");return JSON.parse(`"${n}"`)}function Q(e,t){return e.slice(t,e.length-t)}function X(e){return e.replace(R,"")}function ee(e){return e.replace(V,"\\r\\n").replace(H,"\\n")}function te(e){return e.replace(q,((e,t)=>e.replace(t,"")))}class ne{static createDateWithOriginalFormat(e,t){if(ne.IS_DATE_ONLY.test(t)){if(0!==e.getUTCHours()||0!==e.getUTCMinutes()||0!==e.getUTCSeconds()||0!==e.getUTCMilliseconds()){if(e instanceof ie)return e;let t=e.toISOString().replace("Z","");return t=t.replace(/\.000$/,""),new oe(t,!1)}const t=e.toISOString().split("T")[0];return new re(t)}if(ne.IS_TIME_ONLY.test(t)){if(e instanceof le)return e;{const n=t.match(/\.(\d+)\s*$/),r=e.toISOString();if(r&&r.includes("T")){let l=r.split("T")[1].split("Z")[0];if(n){const t=n[1].length,[r,o,i]=l.split(":"),[a]=i.split(".");l=`${r}:${o}:${a}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new le(l,t)}{const r=String(e.getUTCHours()).padStart(2,"0"),l=String(e.getUTCMinutes()).padStart(2,"0"),o=String(e.getUTCSeconds()).padStart(2,"0"),i=e.getUTCMilliseconds();let a;if(n){const e=n[1].length;a=`${r}:${l}:${o}.${String(i).padStart(3,"0").slice(0,e)}`}else if(i>0){a=`${r}:${l}:${o}.${String(i).padStart(3,"0").replace(/0+$/,"")}`}else a=`${r}:${l}:${o}`;return new le(a,t)}}}if(ne.IS_LOCAL_DATETIME_T.test(t)){const n=t.match(/\.(\d+)\s*$/);let r=e.toISOString().replace("Z","");if(n){const t=n[1].length,[l,o]=r.split("T"),[i,a,s]=o.split(":"),[c]=s.split(".");r=`${l}T${i}:${a}:${c}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new oe(r,!1,t)}if(ne.IS_LOCAL_DATETIME_SPACE.test(t)){const n=t.match(/\.(\d+)\s*$/);let r=e.toISOString().replace("Z","").replace("T"," ");if(n){const t=n[1].length,[l,o]=r.split(" "),[i,a,s]=o.split(":"),[c]=s.split(".");r=`${l} ${i}:${a}:${c}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new oe(r,!0,t)}if(ne.IS_OFFSET_DATETIME_T.test(t)||ne.IS_OFFSET_DATETIME_SPACE.test(t)){const n=t.match(/([+-]\d{2}:\d{2}|[Zz])$/),r=n?"z"===n[1]?"Z":n[1]:"Z",l=ne.IS_OFFSET_DATETIME_SPACE.test(t),o=t.match(/\.(\d+)(?:[Zz]|[+-]\d{2}:\d{2})\s*$/),i=e.getTime();let a=0;if("Z"!==r){const e="+"===r[0]?1:-1,[t,n]=r.slice(1).split(":");a=e*(60*parseInt(t)+parseInt(n))}const s=new Date(i+6e4*a),c=s.getUTCFullYear(),u=String(s.getUTCMonth()+1).padStart(2,"0"),f=String(s.getUTCDate()).padStart(2,"0"),m=String(s.getUTCHours()).padStart(2,"0"),d=String(s.getUTCMinutes()).padStart(2,"0"),p=String(s.getUTCSeconds()).padStart(2,"0"),h=s.getUTCMilliseconds(),y=l?" ":"T";let g=`${m}:${d}:${p}`;if(o){const e=o[1].length;g+=`.${String(h).padStart(3,"0").slice(0,e)}`}else if(h>0){g+=`.${String(h).padStart(3,"0").replace(/0+$/,"")}`}return new ie(`${c}-${u}-${f}${y}${g}${r}`,l)}return e}}ne.IS_DATE_ONLY=/^\d{4}-\d{2}-\d{2}$/,ne.IS_TIME_ONLY=/^\d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ne.IS_LOCAL_DATETIME_T=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ne.IS_LOCAL_DATETIME_SPACE=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ne.IS_OFFSET_DATETIME_T=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})$/,ne.IS_OFFSET_DATETIME_SPACE=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})$/,ne.IS_FULL_DATE=/(\d{4})-(\d{2})-(\d{2})/,ne.IS_FULL_TIME=/(\d{2}):(\d{2}):(\d{2})/;class re extends Date{constructor(e){super(e)}toISOString(){return`${this.getUTCFullYear()}-${String(this.getUTCMonth()+1).padStart(2,"0")}-${String(this.getUTCDate()).padStart(2,"0")}`}}class le extends Date{constructor(e,t){super(`1970-01-01T${e}Z`),this.originalFormat=t}toISOString(){const e=String(this.getUTCHours()).padStart(2,"0"),t=String(this.getUTCMinutes()).padStart(2,"0"),n=String(this.getUTCSeconds()).padStart(2,"0"),r=this.getUTCMilliseconds();if(this.originalFormat&&this.originalFormat.includes(".")){const l=this.originalFormat.match(/\.(\d+)\s*$/),o=l?l[1].length:3;return`${e}:${t}:${n}.${String(r).padStart(3,"0").slice(0,o)}`}if(r>0){return`${e}:${t}:${n}.${String(r).padStart(3,"0").replace(/0+$/,"")}`}return`${e}:${t}:${n}`}}class oe extends Date{constructor(e,t=!1,n){super(e.replace(" ","T")+"Z"),this.useSpaceSeparator=!1,this.useSpaceSeparator=t,this.originalFormat=n||e}toISOString(){const e=this.getUTCFullYear(),t=String(this.getUTCMonth()+1).padStart(2,"0"),n=String(this.getUTCDate()).padStart(2,"0"),r=String(this.getUTCHours()).padStart(2,"0"),l=String(this.getUTCMinutes()).padStart(2,"0"),o=String(this.getUTCSeconds()).padStart(2,"0"),i=this.getUTCMilliseconds(),a=`${e}-${t}-${n}`,s=this.useSpaceSeparator?" ":"T";if(this.originalFormat&&this.originalFormat.includes(".")){const e=this.originalFormat.match(/\.(\d+)\s*$/),t=e?e[1].length:3;return`${a}${s}${r}:${l}:${o}.${String(i).padStart(3,"0").slice(0,t)}`}if(i>0){return`${a}${s}${r}:${l}:${o}.${String(i).padStart(3,"0").replace(/0+$/,"")}`}return`${a}${s}${r}:${l}:${o}`}}class ie extends Date{constructor(e,t=!1){super(e.replace(" ","T")),this.useSpaceSeparator=!1,this.useSpaceSeparator=t,this.originalFormat=e;const n=e.match(/([+-]\d{2}:\d{2}|[Zz])$/);n&&(this.originalOffset="z"===n[1]?"Z":n[1])}toISOString(){if(this.originalOffset){const e=this.getTime();let t=0;if("Z"!==this.originalOffset){const e="+"===this.originalOffset[0]?1:-1,[n,r]=this.originalOffset.slice(1).split(":");t=e*(60*parseInt(n)+parseInt(r))}const n=new Date(e+6e4*t),r=n.getUTCFullYear(),l=String(n.getUTCMonth()+1).padStart(2,"0"),o=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),s=String(n.getUTCSeconds()).padStart(2,"0"),c=n.getUTCMilliseconds(),u=`${r}-${l}-${o}`,f=this.useSpaceSeparator?" ":"T";if(this.originalFormat&&this.originalFormat.includes(".")){const e=this.originalFormat.match(/\.(\d+)(?:[Zz]|[+-]\d{2}:\d{2})\s*$/),t=e?e[1].length:3;return`${u}${f}${i}:${a}:${s}.${String(c).padStart(3,"0").slice(0,t)}${this.originalOffset}`}if(c>0){return`${u}${f}${i}:${a}:${s}.${String(c).padStart(3,"0").replace(/0+$/,"")}${this.originalOffset}`}return`${u}${f}${i}:${a}:${s}${this.originalOffset}`}const e=super.toISOString();return this.useSpaceSeparator?e.replace("T"," "):e}}const ae=ne,se="true",ce=/e/i,ue=/\_/g,fe=/inf/,me=/nan/,de=/^0x/,pe=/^0o/,he=/^0b/;function*ye(e){const t=A(e),n=new h(t);for(;!n.next().done;)yield*ge(n,e)}function*ge(e,r){if(e.value.type===n.Comment)yield we(e);else if(e.value.type===n.Bracket)yield function(e,r){const l=e.peek().done||e.peek().value.type!==n.Bracket?t.Table:t.TableArray,o=l===t.Table;if(o&&"["!==e.value.raw)throw new b(r,e.value.loc.start,`Expected table opening "[", found ${e.value.raw}`);if(!o&&("["!==e.value.raw||"["!==e.peek().value.raw))throw new b(r,e.value.loc.start,`Expected array of tables opening "[[", found ${e.value.raw+e.peek().value.raw}`);const i=o?{type:t.TableKey,loc:e.value.loc}:{type:t.TableArrayKey,loc:e.value.loc};e.next(),l===t.TableArray&&e.next();if(e.done)throw new b(r,i.loc.start,"Expected table key, reached end of file");i.item={type:t.Key,loc:T(e.value.loc),raw:e.value.raw,value:[Y(e.value.raw)]};for(;!e.peek().done&&e.peek().value.type===n.Dot;){e.next();const t=e.value;e.next();const n=" ".repeat(t.loc.start.column-i.item.loc.end.column),r=" ".repeat(e.value.loc.start.column-t.loc.end.column);i.item.loc.end=e.value.loc.end,i.item.raw+=`${n}.${r}${e.value.raw}`,i.item.value.push(Y(e.value.raw))}if(e.next(),o&&(e.done||"]"!==e.value.raw))throw new b(r,e.done?i.item.loc.end:e.value.loc.start,`Expected table closing "]", found ${e.done?"end of file":e.value.raw}`);if(!o&&(e.done||e.peek().done||"]"!==e.value.raw||"]"!==e.peek().value.raw))throw new b(r,e.done||e.peek().done?i.item.loc.end:e.value.loc.start,`Expected array of tables closing "]]", found ${e.done||e.peek().done?"end of file":e.value.raw+e.peek().value.raw}`);o||e.next();i.loc.end=e.value.loc.end;let a=[];for(;!e.peek().done&&e.peek().value.type!==n.Bracket;)e.next(),P(a,[...ge(e,r)]);return{type:o?t.Table:t.TableArray,loc:{start:S(i.loc.start),end:a.length?S(a[a.length-1].loc.end):S(i.loc.end)},key:i,items:a}}(e,r);else{if(e.value.type!==n.Literal)throw new b(r,e.value.loc.start,`Unexpected token "${e.value.type}". Expected Comment, Bracket, or String`);yield*function(e,r){const l={type:t.Key,loc:T(e.value.loc),raw:e.value.raw,value:[Y(e.value.raw)]};for(;!e.peek().done&&e.peek().value.type===n.Dot;)e.next(),e.next(),l.loc.end=e.value.loc.end,l.raw+=`.${e.value.raw}`,l.value.push(Y(e.value.raw));if(e.next(),e.done||e.value.type!==n.Equal)throw new b(r,e.done?l.loc.end:e.value.loc.start,`Expected "=" for key-value, found ${e.done?"end of file":e.value.raw}`);const o=e.value.loc.start.column;if(e.next(),e.done)throw new b(r,l.loc.start,"Expected value for key-value, reached end of file");const[i,...a]=ve(e,r);return[{type:t.KeyValue,key:l,value:i,loc:{start:S(l.loc.start),end:S(i.loc.end)},equals:o},...a]}(e,r)}}function*ve(e,r){if(e.value.type===n.Literal)e.value.raw[0]===I||e.value.raw[0]===E?yield function(e){return{type:t.String,loc:e.value.loc,raw:e.value.raw,value:Y(e.value.raw)}}(e):e.value.raw===se||"false"===e.value.raw?yield function(e){return{type:t.Boolean,loc:e.value.loc,value:e.value.raw===se}}(e):ae.IS_FULL_DATE.test(e.value.raw)||ae.IS_FULL_TIME.test(e.value.raw)?yield function(e,r){let l,o=e.value.loc,i=e.value.raw;if(!e.peek().done&&e.peek().value.type===n.Literal&&ae.IS_FULL_DATE.test(i)&&ae.IS_FULL_TIME.test(e.peek().value.raw)){const t=o.start;e.next(),o={start:t,end:e.value.loc.end},i+=` ${e.value.raw}`}if(!e.peek().done&&e.peek().value.type===n.Dot){const t=o.start;if(e.next(),e.peek().done||e.peek().value.type!==n.Literal)throw new b(r,e.value.loc.end,"Expected fractional value for DateTime");e.next(),o={start:t,end:e.value.loc.end},i+=`.${e.value.raw}`}if(ae.IS_FULL_DATE.test(i))l=ae.IS_DATE_ONLY.test(i)?new re(i):ae.IS_LOCAL_DATETIME_T.test(i)?new oe(i,!1):ae.IS_LOCAL_DATETIME_SPACE.test(i)?new oe(i,!0):ae.IS_OFFSET_DATETIME_T.test(i)?new ie(i,!1):ae.IS_OFFSET_DATETIME_SPACE.test(i)?new ie(i,!0):new Date(i.replace(" ","T"));else if(ae.IS_TIME_ONLY.test(i))l=new le(i,i);else{const[e]=(new Date).toISOString().split("T");l=new Date(`${e}T${i}`)}return{type:t.DateTime,loc:o,raw:i,value:l}}(e,r):!e.peek().done&&e.peek().value.type===n.Dot||fe.test(e.value.raw)||me.test(e.value.raw)||ce.test(e.value.raw)&&!de.test(e.value.raw)?yield function(e,r){let l,o=e.value.loc,i=e.value.raw;if(fe.test(i))l="-inf"===i?-1/0:1/0;else if(me.test(i))l=NaN;else if(e.peek().done||e.peek().value.type!==n.Dot)l=Number(i.replace(ue,""));else{const t=o.start;if(e.next(),e.peek().done||e.peek().value.type!==n.Literal)throw new b(r,e.value.loc.end,"Expected fraction value for Float");e.next(),i+=`.${e.value.raw}`,o={start:t,end:e.value.loc.end},l=Number(i.replace(ue,""))}return{type:t.Float,loc:o,raw:i,value:l}}(e,r):yield function(e){if("-0"===e.value.raw||"+0"===e.value.raw)return{type:t.Integer,loc:e.value.loc,raw:e.value.raw,value:0};let n=10;de.test(e.value.raw)?n=16:pe.test(e.value.raw)?n=8:he.test(e.value.raw)&&(n=2);const r=parseInt(e.value.raw.replace(ue,"").replace(pe,"").replace(he,""),n);return{type:t.Integer,loc:e.value.loc,raw:e.value.raw,value:r}}(e);else if(e.value.type===n.Curly)yield function(e,r){if("{"!==e.value.raw)throw new b(r,e.value.loc.start,`Expected "{" for inline table, found ${e.value.raw}`);const l={type:t.InlineTable,loc:T(e.value.loc),items:[]};e.next();for(;!e.done&&(e.value.type!==n.Curly||"}"!==e.value.raw);){if(e.value.type===n.Comma){const t=l.items[l.items.length-1];if(!t)throw new b(r,e.value.loc.start,'Found "," without previous value in inline table');t.comma=!0,t.loc.end=e.value.loc.start,e.next();continue}const[o]=ge(e,r);if(o.type!==t.KeyValue)throw new b(r,e.value.loc.start,`Only key-values are supported in inline tables, found ${o.type}`);const i={type:t.InlineItem,loc:T(o.loc),item:o,comma:!1};l.items.push(i),e.next()}if(e.done||e.value.type!==n.Curly||"}"!==e.value.raw)throw new b(r,e.done?l.loc.start:e.value.loc.start,`Expected "}", found ${e.done?"end of file":e.value.raw}`);return l.loc.end=e.value.loc.end,l}(e,r);else{if(e.value.type!==n.Bracket)throw new b(r,e.value.loc.start,`Unrecognized token type "${e.value.type}". Expected String, Curly, or Bracket`);{const[l,o]=function(e,r){if("["!==e.value.raw)throw new b(r,e.value.loc.start,`Expected "[" for inline array, found ${e.value.raw}`);const l={type:t.InlineArray,loc:T(e.value.loc),items:[]};let o=[];e.next();for(;!e.done&&(e.value.type!==n.Bracket||"]"!==e.value.raw);){if(e.value.type===n.Comma){const t=l.items[l.items.length-1];if(!t)throw new b(r,e.value.loc.start,'Found "," without previous value for inline array');t.comma=!0,t.loc.end=e.value.loc.start}else if(e.value.type===n.Comment)o.push(we(e));else{const[n,...i]=ve(e,r),a={type:t.InlineItem,loc:T(n.loc),item:n,comma:!1};l.items.push(a),P(o,i)}e.next()}if(e.done||e.value.type!==n.Bracket||"]"!==e.value.raw)throw new b(r,e.done?l.loc.start:e.value.loc.start,`Expected "]", found ${e.done?"end of file":e.value.raw}`);return l.loc.end=e.value.loc.end,[l,o]}(e,r);yield l,yield*o}}}function we(e){return{type:t.Comment,loc:e.value.loc,raw:e.value.raw}}function Se(e,n){var r;function l(e,t){for(const n of e)o(n,t)}function o(e,r){const i=n[e.type];switch(i&&"function"==typeof i&&i(e,r),i&&i.enter&&i.enter(e,r),e.type){case t.Document:l(e.items,e);break;case t.Table:o(e.key,e),l(e.items,e);break;case t.TableKey:o(e.item,e);break;case t.TableArray:o(e.key,e),l(e.items,e);break;case t.TableArrayKey:o(e.item,e);break;case t.KeyValue:o(e.key,e),o(e.value,e);break;case t.InlineArray:l(e.items,e);break;case t.InlineItem:o(e.item,e);break;case t.InlineTable:l(e.items,e);break;case t.Key:case t.String:case t.Integer:case t.Float:case t.Boolean:case t.DateTime:case t.Comment:break;default:throw new Error(`Unrecognized node type "${e.type}"`)}i&&i.exit&&i.exit(e,r)}null!=(r=e)&&"function"==typeof r[Symbol.iterator]?l(e,null):o(e,null)}const Te=ne,be=new WeakMap,$e=e=>(be.has(e)||be.set(e,new WeakMap),be.get(e)),ke=new WeakMap,Ie=e=>(ke.has(e)||ke.set(e,new WeakMap),ke.get(e));function Ee(e,t,n,r){if(a(n)&&a(r)){r=function(e,t){if(!z(t.raw))return t;const n=t.raw.includes("\r\n")?"\r\n":"\n",r=(t.raw.match(new RegExp("\r\n"===n?"\\r\\n":"\\n","g"))||[]).length;return r>0?Object.assign(Object.assign({},t),{loc:{start:e.loc.start,end:{line:e.loc.start.line+r,column:3}}}):Object.assign(Object.assign({},t),{loc:{start:e.loc.start,end:{line:e.loc.start.line,column:e.loc.start.column+t.raw.length}}})}(n,Ze(r.value,n.raw))}if(s(n)&&s(r)){const e=n.raw,t=r.value,l=Te.createDateWithOriginalFormat(t,e);r.value=l,r.raw=l.toISOString();0!==r.raw.length-e.length&&(r.loc.end.column=r.loc.start.column+r.raw.length)}if(d(t)){const e=t.items.indexOf(n);if(e<0)throw new Error("Could not find existing item in parent node for replace");t.items.splice(e,1,r)}else if(i(t)&&f(t.value)&&!f(n)){const e=t.value.items.indexOf(n);if(e<0)throw new Error("Could not find existing item in parent node for replace");t.value.items.splice(e,1,r)}else if(p(t))t.item=r;else{if(!i(t))throw new Error(`Unsupported parent type "${t.type}" for replace`);t.key===n?t.key=r:t.value=r}Fe(r,{lines:n.loc.start.line-r.loc.start.line,columns:n.loc.start.column-r.loc.start.column});const l=g(n.loc),o=g(r.loc);Le({lines:o.lines-l.lines,columns:o.columns-l.columns},Ie(e),r,n)}function xe(e,t,n,a,s){if(!d(t))throw new Error(`Unsupported parent type "${t.type}" for insert`);let p,h;a=null!=a&&"number"==typeof a?a:t.items.length,c(t)||f(t)?({shift:p,offset:h}=function(e,t,n){if(!u(t))throw new Error(`Incompatible child type "${t.type}"`);const r=null!=n?e.items[n-1]:U(e.items),l=null==n||n===e.items.length;e.items.splice(n,0,t);const o=!!r,i=!l;o&&(r.comma=!0);i&&(t.comma=!0);const a=c(e)&&function(e){if(!e.items.length)return!1;return g(e.loc).lines>e.items.length}(e),s=l&&!0===t.comma;return Ae(e,t,n,{useNewLine:a,hasCommaHandling:!0,isLastElement:l,hasSeparatingCommaBefore:o,hasSeparatingCommaAfter:i,hasTrailingComma:s})}(t,n,a)):s&&r(t)?({shift:p,offset:h}=function(e,t,n){const r=Ae(e,t,n,{useNewLine:!1,hasCommaHandling:!1});return e.items.splice(n,0,t),r}(t,n,a)):({shift:p,offset:h}=function(e,t,n){if(a=t,!(i(a)||l(a)||o(a)||m(a)))throw new Error(`Incompatible child type "${t.type}"`);var a;const s=e.items[n-1],c=r(e)&&!e.items.length;e.items.splice(n,0,t);const u=s?{line:s.loc.end.line,column:m(s)?e.loc.start.column:s.loc.start.column}:S(e.loc.start),f=l(t)||o(t);let d=0;c||(d=f?2:1);u.line+=d;const p={lines:u.line-t.loc.start.line,columns:u.column-t.loc.start.column},h=g(t.loc),y={lines:h.lines+(d-1),columns:h.columns};return{shift:p,offset:y}}(t,n,a)),Fe(n,p);const y=t.items[a-1],v=y&&Ie(e).get(y);v&&(h.lines+=v.lines,h.columns+=v.columns,Ie(e).delete(y));Ie(e).set(n,h)}function Ae(e,t,n,r={}){const{useNewLine:l=!1,skipCommaSpace:o=2,skipBracketSpace:i=1,hasCommaHandling:a=!1,isLastElement:s=!1,hasSeparatingCommaBefore:c=!1,hasSeparatingCommaAfter:u=!1,hasTrailingComma:f=!1}=r,d=n>0?e.items[n-1]:void 0,p=d?{line:d.loc.end.line,column:l?m(d)?e.loc.start.column:d.loc.start.column:d.loc.end.column}:S(e.loc.start);let h=0;if(l)h=1;else{const e=c||!a&&!!d;e&&a?p.column+=o:(e||a&&!d)&&(p.column+=i)}p.line+=h;const y={lines:p.line-t.loc.start.line,columns:p.column-t.loc.start.column},v=g(t.loc);if(!a){return{shift:y,offset:{lines:v.lines+(h-1),columns:v.columns}}}let w=0;c&&f&&!u&&s&&(w=-1);return{shift:y,offset:{lines:v.lines+(h-1),columns:v.columns+(c||u?o:0)+(f?1+w:0)}}}function Ce(e,t,n){if(!d(t))throw new Error(`Unsupported parent type "${t.type}" for remove`);let r=t.items.indexOf(n);if(r<0){if(r=t.items.findIndex((e=>p(e)&&e.item===n)),r<0)throw new Error("Could not find node in parent for removal");n=t.items[r]}const l=t.items[r-1];let o=t.items[r+1];t.items.splice(r,1);let i=g(n.loc);o&&m(o)&&o.loc.start.line===n.loc.end.line&&(i=g({start:n.loc.start,end:o.loc.end}),o=t.items[r+1],t.items.splice(r,1));const a=l&&u(l)||o&&u(o),s=l&&l.loc.end.line===n.loc.start.line,c=o&&o.loc.start.line===n.loc.end.line,f=a&&(s||c),h={lines:-(i.lines-(f?1:0)),columns:-i.columns};if(void 0===l&&void 0===o&&(h.lines=0,h.columns=0),a&&s&&(h.columns-=2),a&&!l&&o&&(h.columns-=2),a&&l&&!o){const e=n.comma;l.comma=!!e}const y=l||t,v=l?Ie(e):$e(e),w=Ie(e),S=v.get(y);S&&(h.lines+=S.lines,h.columns+=S.columns);const T=w.get(n);T&&(h.lines+=T.lines,h.columns+=T.columns),v.set(y,h)}function Oe(e,t,n=!0){if(!n)return;if(!t.items.length)return;Le({lines:0,columns:1},$e(e),t);const r=U(t.items);Le({lines:0,columns:1},Ie(e),r)}function De(e,t,n=!1){if(!n)return;if(!t.items.length)return;const r=U(t.items);r.comma=!0,Le({lines:0,columns:1},Ie(e),r)}function _e(e){const n=$e(e),r=Ie(e),l={lines:0,columns:{}};function o(e){const t=l.lines;e.loc.start.line+=t;const r=l.columns[e.loc.start.line]||0;e.loc.start.column+=r;const o=n.get(e);o&&(l.lines+=o.lines,l.columns[e.loc.start.line]=(l.columns[e.loc.start.line]||0)+o.columns)}function i(e){const t=l.lines;e.loc.end.line+=t;const n=l.columns[e.loc.end.line]||0;e.loc.end.column+=n;const o=r.get(e);o&&(l.lines+=o.lines,l.columns[e.loc.end.line]=(l.columns[e.loc.end.line]||0)+o.columns)}const a={enter:o,exit:i};Se(e,{[t.Document]:a,[t.Table]:a,[t.TableArray]:a,[t.InlineTable]:a,[t.InlineArray]:a,[t.InlineItem]:a,[t.TableKey]:a,[t.TableArrayKey]:a,[t.KeyValue]:{enter(e){const t=e.loc.start.line+l.lines,n=r.get(e.key);e.equals+=(l.columns[t]||0)+(n?n.columns:0),o(e)},exit:i},[t.Key]:a,[t.String]:a,[t.Integer]:a,[t.Float]:a,[t.Boolean]:a,[t.DateTime]:a,[t.Comment]:a}),be.delete(e),ke.delete(e)}function Fe(e,n,r={}){const{first_line_only:l=!1}=r,o=e.loc.start.line,{lines:i,columns:a}=n,s=e=>{l&&e.loc.start.line!==o||(e.loc.start.column+=a,e.loc.end.column+=a),e.loc.start.line+=i,e.loc.end.line+=i};return Se(e,{[t.Table]:s,[t.TableKey]:s,[t.TableArray]:s,[t.TableArrayKey]:s,[t.KeyValue](e){s(e),e.equals+=a},[t.Key]:s,[t.String]:s,[t.Integer]:s,[t.Float]:s,[t.Boolean]:s,[t.DateTime]:s,[t.InlineArray]:s,[t.InlineItem]:s,[t.InlineTable]:s,[t.Comment]:s}),e}function Le(e,t,n,r){const l=t.get(r||n);l&&(e.lines+=l.lines,e.columns+=l.columns),t.set(n,e)}function Ue(){return{type:t.Document,loc:{start:{line:1,column:0},end:{line:1,column:0}},items:[]}}function Me(e){const n=function(e){const n=Be(e);return{type:t.TableKey,loc:{start:{line:1,column:0},end:{line:1,column:n.length+2}},item:{type:t.Key,loc:{start:{line:1,column:1},end:{line:1,column:n.length+1}},value:e,raw:n}}}(e);return{type:t.Table,loc:T(n.loc),key:n,items:[]}}function je(e){const n=function(e){const n=Be(e);return{type:t.TableArrayKey,loc:{start:{line:1,column:0},end:{line:1,column:n.length+4}},item:{type:t.Key,loc:{start:{line:1,column:2},end:{line:1,column:n.length+2}},value:e,raw:n}}}(e);return{type:t.TableArray,loc:T(n.loc),key:n,items:[]}}function Ke(e,n){const r=function(e){const n=Be(e);return{type:t.Key,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e),{column:l}=r.loc.end,o=l+1;return Fe(n,{lines:0,columns:l+3-n.loc.start.column},{first_line_only:!0}),{type:t.KeyValue,loc:{start:S(r.loc.start),end:S(n.loc.end)},key:r,equals:o,value:n}}const Ne=/^[\w-]+$/;function Be(e){return e.map((e=>Ne.test(e)?e:JSON.stringify(e))).join(".")}function Ze(e,n){let r;if(n&&z(n)){let t=n.startsWith("'''");t&&e.includes("'''")&&(t=!1);const l=t?"'''":'"""',o=n.includes("\r\n")?"\r\n":"\n",i=n.startsWith(`${l}${o}`)||(n.startsWith("'''\n")||n.startsWith("'''\r\n"))&&!t;let a;a=t?e:e.replace(/\\/g,"\\\\").replace(/\x08/g,"\\b").replace(/\f/g,"\\f").replace(/\t/g,"\\t").replace(/[\x00-\x07\x0B\x0E-\x1F\x7F]/g,(e=>"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase())).replace(/"""/g,'""\\"'),r=i?`${l}${o}${a}${l}`:`${l}${a}${l}`}else r=JSON.stringify(e);return{type:t.String,loc:{start:{line:1,column:0},end:{line:1,column:r.length}},raw:r,value:e}}function We(e){return{type:t.InlineItem,loc:T(e.loc),item:e,comma:!1}}const Pe=!1,ze=!0,Ve=!1;function He(e,t){if(!e||"object"!=typeof e)return null;if(("InlineArray"===e.type||"InlineTable"===e.type)&&e.loc){const n=function(e,t){var n;if(!e||!e.start||!e.end)return null;const r=t.split(/\r?\n/),l=e.start.line-1,o=e.end.line-1,i=e.start.column,a=e.end.column;let s="";if(l===o)s=(null===(n=r[l])||void 0===n?void 0:n.substring(i,a+1))||"";else{r[l]&&(s+=r[l].substring(i));for(let e=l+1;e<o;e++)s+="\n"+(r[e]||"");r[o]&&(s+="\n"+r[o].substring(0,a+1))}const c=s.match(/^\[(\s*)/),u=s.match(/^\{(\s*)/);if(c)return c[1].length>0;if(u)return u[1].length>0;return null}(e.loc,t);if(null!==n)return n}if(e.items&&Array.isArray(e.items))for(const n of e.items){const e=He(n,t);if(null!==e)return e;if(n.item){const e=He(n.item,t);if(null!==e)return e}}for(const n of["value","key","item"])if(e[n]){const r=He(e[n],t);if(null!==r)return r}return null}function Re(e){if(!e||"object"!=typeof e)return null;if("InlineArray"===e.type&&e.items&&Array.isArray(e.items))return qe(e.items);if("InlineTable"===e.type&&e.items&&Array.isArray(e.items))return qe(e.items);if("KeyValue"===e.type&&e.value)return Re(e.value);if(e.items&&Array.isArray(e.items))for(const t of e.items){const e=Re(t);if(null!==e)return e}return null}function qe(e){if(0===e.length)return null;const t=e[e.length-1];return!(!t||"object"!=typeof t||!("comma"in t))&&!0===t.comma}function Ye(e){if(!c(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function Je(e){if(!f(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function Ge(e){const t=e.indexOf("\n");return t>0&&"\r"===e.substring(t-1,t)?"\r\n":"\n"}function Qe(e,t){var n,r,l,o,i;if(e){if(e instanceof Xe)return e;{const a=function(e){if(!e||"object"!=typeof e)return{};const t=new Set(["newLine","trailingNewline","trailingComma","bracketSpacing","inlineTableStart","truncateZeroTimeInDates"]),n={},r=[],l=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(t.has(o)){const t=e[o];switch(o){case"newLine":"string"==typeof t?n.newLine=t:l.push(`${o} (expected string, got ${typeof t})`);break;case"trailingNewline":"boolean"==typeof t||"number"==typeof t?n.trailingNewline=t:l.push(`${o} (expected boolean or number, got ${typeof t})`);break;case"trailingComma":case"bracketSpacing":case"truncateZeroTimeInDates":"boolean"==typeof t?n[o]=t:l.push(`${o} (expected boolean, got ${typeof t})`);break;case"inlineTableStart":"number"==typeof t&&Number.isInteger(t)&&t>=0||null==t?n.inlineTableStart=t:l.push(`${o} (expected non-negative integer or undefined, got ${typeof t})`)}}else r.push(o);if(r.length>0&&console.warn(`toml-patch: Ignoring unsupported format properties: ${r.join(", ")}. Supported properties are: ${Array.from(t).join(", ")}`),l.length>0)throw new TypeError(`Invalid types for format properties: ${l.join(", ")}`);return n}(e);return new Xe(null!==(n=a.newLine)&&void 0!==n?n:t.newLine,null!==(r=a.trailingNewline)&&void 0!==r?r:t.trailingNewline,null!==(l=a.trailingComma)&&void 0!==l?l:t.trailingComma,null!==(o=a.bracketSpacing)&&void 0!==o?o:t.bracketSpacing,void 0!==a.inlineTableStart?a.inlineTableStart:t.inlineTableStart,null!==(i=a.truncateZeroTimeInDates)&&void 0!==i?i:t.truncateZeroTimeInDates)}}return t}class Xe{constructor(e,t,n,r,l,o){this.newLine=null!=e?e:"\n",this.trailingNewline=null!=t?t:1,this.trailingComma=null!=n?n:Pe,this.bracketSpacing=null!=r?r:ze,this.inlineTableStart=null!=l?l:1,this.truncateZeroTimeInDates=null!=o?o:Ve}static default(){return new Xe("\n",1,Pe,ze,1,Ve)}static autoDetectFormat(e){const t=Xe.default();t.newLine=Ge(e),t.trailingNewline=function(e,t){let n=0,r=e.length;for(;r>=t.length&&e.substring(r-t.length,r)===t;)n++,r-=t.length;return n}(e,t.newLine);try{const n=ye(e),r=Array.from(n);t.trailingComma=function(e){const t=Array.from(e);for(const e of t){const t=Re(e);if(null!==t)return t}return Pe}(r),t.bracketSpacing=function(e,t){const n=Array.from(t);for(const t of n){const n=He(t,e);if(null!==n)return n}return ze}(e,r)}catch(e){t.trailingComma=Pe,t.bracketSpacing=ze}return t.inlineTableStart=1,t.truncateZeroTimeInDates=Ve,t}}function et(e,t){if(0===t.inlineTableStart)return e;return e.items.filter((e=>{if(!i(e))return!1;const n=f(e.value),r=c(e.value)&&e.value.items.length&&f(e.value.items[0].item);if(n||r){const n=rt(e.key.value);return void 0===t.inlineTableStart||n<t.inlineTableStart}return!1})).forEach((t=>{Ce(e,e,t),f(t.value)?xe(e,e,tt(t)):function(e){const t=Ue();for(const n of e.value.items){const r=je(e.key.value);xe(t,t,r);for(const e of n.item.items)xe(t,r,e.item)}return _e(t),t.items}(t).forEach((t=>{xe(e,e,t)}))})),_e(e),e}function tt(e){const t=Me(e.key.value);for(const n of e.value.items)xe(t,t,n.item);return _e(t),t}function nt(e){if(e.items.length>0){const t=e.items[e.items.length-1];e.loc.end.line=t.loc.end.line,e.loc.end.column=t.loc.end.column}else e.loc.end.line=e.key.loc.end.line,e.loc.end.column=e.key.loc.end.column}function rt(e){return Math.max(0,e.length-1)}function lt(e,t,n){var r;for(let l=e.items.length-1;l>=0;l--){const o=e.items[l];if(i(o)&&f(o.value)){const l=[...e.key.item.value,...o.key.value];if(rt(l)<(null!==(r=n.inlineTableStart)&&void 0!==r?r:1)){const r=Me(l);for(const e of o.value.items)xe(r,r,e.item);Ce(e,e,o),nt(e),t.push(r),lt(r,t,n)}}}}function ot(e,t=Xe.default()){e=function(e){const t=[],n=[];for(const r in e)N(e[r])||Array.isArray(e[r])?n.push(r):t.push(r);const r={};for(let n=0;n<t.length;n++){const l=t[n];r[l]=e[l]}for(let t=0;t<n.length;t++){const l=n[t];r[l]=e[l]}return r}(e=st(e));const n=Ue();for(const r of it(e,t))xe(n,n,r);_e(n);const r=Z(n,(e=>et(e,t)),(e=>function(e,t){if(void 0===t.inlineTableStart||0===t.inlineTableStart)return e;const n=[];for(const r of e.items)if(i(r)&&f(r.value)){if(rt(r.key.value)<t.inlineTableStart){const l=tt(r);Ce(e,e,r),xe(e,e,l),lt(l,n,t)}}else"Table"===r.type&<(r,n,t);for(const t of n)xe(e,e,t);return _e(e),e}(e,t)),(e=>function(e){return e}(e)));return function(e){let t=0,n=0;for(const r of e.items)0===n&&r.loc.start.line>1?t=1-r.loc.start.line:r.loc.start.line+t>n+2&&(t+=n+2-(r.loc.start.line+t)),Fe(r,{lines:t,columns:0}),n=r.loc.end.line;return e}(r)}function*it(e,t){for(const n of Object.keys(e))yield Ke([n],at(e[n],t))}function at(e,n){if(null==e)throw new Error('"null" and "undefined" values are not supported');return function(e){return"string"==typeof e}(e)?Ze(e):j(e)?function(e){const n=e.toString();return{type:t.Integer,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):function(e){return"number"==typeof e&&(!j(e)||!isFinite(e)||Object.is(e,-0))}(e)?function(e){let n;return n=e===1/0?"inf":e===-1/0?"-inf":Number.isNaN(e)?"nan":Object.is(e,-0)?"-0.0":e.toString(),{type:t.Float,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):function(e){return"boolean"==typeof e}(e)?function(e){return{type:t.Boolean,loc:{start:{line:1,column:0},end:{line:1,column:e?4:5}},value:e}}(e):K(e)?function(e,n){n.truncateZeroTimeInDates&&0===e.getUTCHours()&&0===e.getUTCMinutes()&&0===e.getUTCSeconds()&&0===e.getUTCMilliseconds()&&(e=new re(e.toISOString().split("T")[0]));const r=e.toISOString();return{type:t.DateTime,loc:{start:{line:1,column:0},end:{line:1,column:r.length}},raw:r,value:e}}(e,n):Array.isArray(e)?function(e,n){const r={type:t.InlineArray,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]};for(const t of e){xe(r,r,We(at(t,n)))}return Oe(r,r,n.bracketSpacing),De(r,r,n.trailingComma),_e(r),r}(e,n):function(e,n){if(e=st(e),!N(e))return at(e,n);const r={type:t.InlineTable,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]},l=[...it(e,n)];for(const e of l){xe(r,r,We(e))}return Oe(r,r,n.bracketSpacing),De(r,r,n.trailingComma),_e(r),r}(e,n)}function st(e){return e?K(e)?e:"function"==typeof e.toJSON?e.toJSON():e:e}const ct=/(\r\n|\n)/g;function ut(e,n){const r=[];return Se(e,{[t.TableKey](e){const{start:t,end:n}=e.loc;ft(r,{start:t,end:{line:t.line,column:t.column+1}},"["),ft(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.TableArrayKey](e){const{start:t,end:n}=e.loc;ft(r,{start:t,end:{line:t.line,column:t.column+2}},"[["),ft(r,{start:{line:n.line,column:n.column-2},end:n},"]]")},[t.KeyValue](e){const{start:{line:t}}=e.loc;ft(r,{start:{line:t,column:e.equals},end:{line:t,column:e.equals+1}},"=")},[t.Key](e){ft(r,e.loc,e.raw)},[t.String](e){ft(r,e.loc,e.raw)},[t.Integer](e){ft(r,e.loc,e.raw)},[t.Float](e){ft(r,e.loc,e.raw)},[t.Boolean](e){ft(r,e.loc,e.value.toString())},[t.DateTime](e){ft(r,e.loc,e.raw)},[t.InlineArray](e){const{start:t,end:n}=e.loc;ft(r,{start:t,end:{line:t.line,column:t.column+1}},"["),ft(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.InlineTable](e){const{start:t,end:n}=e.loc;ft(r,{start:t,end:{line:t.line,column:t.column+1}},"{"),ft(r,{start:{line:n.line,column:n.column-1},end:n},"}")},[t.InlineItem](e){if(!e.comma)return;const t=e.loc.end;ft(r,{start:t,end:{line:t.line,column:t.column+1}},",")},[t.Comment](e){ft(r,e.loc,e.raw)}}),r.join(n.newLine)+n.newLine.repeat(n.trailingNewline)}function ft(e,t,n){const r=n.split(ct).filter((e=>"\n"!==e&&"\r\n"!==e)),l=t.end.line-t.start.line+1;if(r.length!==l)throw new Error(`Mismatch between location and raw string, expected ${l} lines for "${n}"`);for(let l=t.start.line;l<=t.end.line;l++){const o=mt(e,l);if(void 0===o)throw new Error(`Line ${l} is uninitialized when writing "${n}" at ${t.start.line}:${t.start.column} to ${t.end.line}:${t.end.column}`);const i=l===t.start.line,a=l===t.end.line,s=i?o.substr(0,t.start.column).padEnd(t.start.column," "):"",c=a?o.substr(t.end.column):"";e[l-1]=s+r[l-t.start.line]+c}}function mt(e,t){if(!e[t-1])for(let n=0;n<t;n++)e[n]||(e[n]="");return e[t-1]}function dt(e,n=""){const r=M(),l=new Set,o=new Set,i=new Set;let a=r,s=0;return Se(e,{[t.Table](e){const t=e.key.item.value;try{ht(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new b(n,e.key.loc.start,r.message)}const s=vt(t);l.add(s),i.add(s),a=yt(r,t)},[t.TableArray](e){const t=e.key.item.value;try{ht(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new b(n,e.key.loc.start,r.message)}const s=vt(t);o.add(s),i.add(s),a=function(e,t){const n=gt(e,t.slice(0,-1)),r=U(t);n[r]||(n[r]=[]);const l=M();return n[U(t)].push(l),l}(r,t)},[t.KeyValue]:{enter(e){if(s>0)return;const t=e.key.value;try{ht(a,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new b(n,e.key.loc.start,r.message)}const r=pt(e.value);(t.length>1?yt(a,t.slice(0,-1)):a)[U(t)]=r,i.add(vt(t))}},[t.InlineTable]:{enter(){s++},exit(){s--}}}),r}function pt(e){switch(e.type){case t.InlineTable:const n=M();return e.items.forEach((({item:e})=>{const t=e.key.value,r=pt(e.value);(t.length>1?yt(n,t.slice(0,-1)):n)[U(t)]=r})),n;case t.InlineArray:return e.items.map((e=>pt(e.item)));case t.String:case t.Integer:case t.Float:case t.Boolean:case t.DateTime:return e.value;default:throw new Error(`Unrecognized value type "${e.type}"`)}}function ht(e,n,r,l){let o=[],i=0;for(const t of n){if(o.push(t),!B(e,t))return;if("object"!=typeof(a=e[t])&&!K(a))throw new Error(`Invalid key, a value has already been defined for ${o.join(".")}`);const r=vt(o);if(Array.isArray(e[t])&&!l.table_arrays.has(r))throw new Error(`Invalid key, cannot add to a static array at ${r}`);const s=i++<n.length-1;e=Array.isArray(e[t])&&s?U(e[t]):e[t]}var a;const s=vt(n);if(e&&r===t.Table&&l.defined.has(s))throw new Error(`Invalid key, a table has already been defined named ${s}`);if(e&&r===t.TableArray&&!l.table_arrays.has(s))throw new Error(`Invalid key, cannot add an array of tables to a table at ${s}`)}function yt(e,t){const n=gt(e,t.slice(0,-1)),r=U(t);return n[r]||(n[r]=M()),n[r]}function gt(e,t){return t.reduce(((e,t)=>(e[t]||(e[t]=M()),Array.isArray(e[t])?U(e[t]):e[t])),e)}function vt(e){return e.join(".")}var wt,St,Tt,bt;function $t(e){return e.type===wt.Remove}function kt(e,t,n=[]){return e===t||(l=t,K(r=e)&&K(l)&&r.toISOString()===l.toISOString())?[]:Array.isArray(e)&&Array.isArray(t)?function(e,t,n=[]){let r=[];const l=e.map(W),o=t.map(W);o.forEach(((i,a)=>{const s=a>=l.length;if(!s&&l[a]===i)return;const c=l.indexOf(i,a+1);if(!s&&c>-1){r.push({type:wt.Move,path:n,from:c,to:a});const e=l.splice(c,1);return void l.splice(a,0,...e)}const u=!o.includes(l[a]);if(!s&&u)return P(r,kt(e[a],t[a],n.concat(a))),void(l[a]=i);r.push({type:wt.Add,path:n.concat(a)}),l.splice(a,0,i)}));for(let e=o.length;e<l.length;e++)r.push({type:wt.Remove,path:n.concat(e)});return r}(e,t,n):N(e)&&N(t)?function(e,t,n=[]){let r=[];const l=Object.keys(e),o=l.map((t=>W(e[t]))),i=Object.keys(t),a=i.map((e=>W(t[e]))),s=(e,t)=>{if(t.indexOf(e)<0)return!1;const n=l[o.indexOf(e)];return!i.includes(n)};return l.forEach(((l,c)=>{const u=n.concat(l);if(i.includes(l))P(r,kt(e[l],t[l],u));else if(s(o[c],a)){const e=i[a.indexOf(o[c])];r.push({type:wt.Rename,path:n,from:l,to:e})}else r.push({type:wt.Remove,path:u})})),i.forEach(((e,t)=>{l.includes(e)||s(a[t],o)||r.push({type:wt.Add,path:n.concat(e)})})),r}(e,t,n):[{type:wt.Edit,path:n}];var r,l}function It(e,t){if(!t.length)return u(e)&&i(e.item)?e.item:e;if(i(e))return It(e.value,t);const n={};let r;if(d(e)&&e.items.some(((e,a)=>{try{let s=[];if(i(e))s=e.key.value;else if(l(e))s=e.key.item.value;else if(o(e)){s=e.key.item.value;const t=W(s);n[t]||(n[t]=0);const r=n[t]++;s=s.concat(r)}else u(e)&&i(e.item)?s=e.item.key.value:u(e)&&(s=[a]);return!(!s.length||!function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(s,t.slice(0,s.length)))&&(r=It(e,t.slice(s.length)),!0)}catch(e){return!1}})),!r)throw new Error(`Could not find node at path ${t.join(".")}`);return r}function Et(e,t){try{return It(e,t)}catch(e){}}function xt(e,t){let n,r=t;for(;r.length&&!n;)r=r.slice(0,-1),n=Et(e,r);if(!n)throw new Error(`Count not find parent node for path ${t.join(".")}`);return n}function At(e,n,a){const s=[...e],m=dt(s),d={type:t.Document,loc:{start:{line:1,column:0},end:{line:1,column:0}},items:s},h=ot(n,Qe(Object.assign(Object.assign({},a),{inlineTableStart:void 0}),a)),y=function(e){for(let t=0;t<e.length;t++){const n=e[t];if($t(n)){let r=t+1;for(;r<e.length;){const l=e[r];if($t(l)&&l.path[0]===n.path[0]&&l.path[1]>n.path[1]){e.splice(r,1),e.splice(t,0,l),t=0;break}r++}}}return e}(kt(m,n));if(0===y.length)return{tomlString:ut(s,a),document:d};const g=function(e,t,n,a){return n.forEach((n=>{if(function(e){return e.type===wt.Add}(n)){const s=It(t,n.path),m=n.path.slice(0,-1);let d,p=U(n.path),h=o(s);if(j(p)&&!m.some(j)){const t=Et(e,m.concat(0));t&&o(t)&&(h=!0)}if(l(s))d=e;else if(h){d=e;const t=e,n=Et(t,m.concat(p-1)),r=Et(t,m.concat(p));p=r?t.items.indexOf(r):n?t.items.indexOf(n)+1:t.items.length}else d=xt(e,n.path),i(d)&&(d=d.value);if(o(d)||c(d)||r(d)){if(c(d)){const e=Ye(d);u(s)&&(s.comma=e)}if(void 0!==a.inlineTableStart&&a.inlineTableStart>0&&r(d)&&l(s)){const t=Ct(s,e,a);xe(e,d,s,p);for(const n of t)xe(e,e,n,void 0)}else xe(e,d,s,p)}else if(f(d)){const t=Je(d);if(i(s)){const n=We(s);n.comma=t,xe(e,d,n)}else xe(e,d,s)}else if(void 0!==a.inlineTableStart&&a.inlineTableStart>0&&i(s)&&f(s.value)&&l(d)){rt([...d.key.item.value,...s.key.value])<a.inlineTableStart?function(e,t,n,r){const l=t.key.item.value,o=[...l,...e.key.value],a=Me(o);if(f(e.value))for(const t of e.value.items)u(t)&&i(t.item)&&xe(n,a,t.item,void 0);xe(n,n,a,void 0),nt(t);const s=Ct(a,n,r);for(const e of s)xe(n,n,e,void 0)}(s,d,e,a):xe(e,d,s)}else 0===a.inlineTableStart&&i(s)&&f(s.value)&&r(d)?xe(e,d,s,void 0,!0):xe(e,d,s)}else if(function(e){return e.type===wt.Edit}(n)){let r,l=It(e,n.path),o=It(t,n.path);if(i(l)&&i(o)){if(c(l.value)&&c(o.value)){const e=Ye(l.value),t=o.value;if(t.items.length>0){t.items[t.items.length-1].comma=e}}if(f(l.value)&&f(o.value)){const e=Je(l.value),t=o.value;if(t.items.length>0){t.items[t.items.length-1].comma=e}}r=l,l=l.value,o=o.value}else if(i(l)&&u(o)&&i(o.item))r=l,l=l.value,o=o.item.value;else if(u(l)&&i(o))r=l,l=l.item;else if(r=xt(e,n.path),i(r)){const t=n.path.slice(0,-1),l=It(e,t);i(l)&&c(l.value)&&(r=l.value)}Ee(e,r,l,o)}else if($t(n)){let t=xt(e,n.path);i(t)&&(t=t.value);const r=It(e,n.path);Ce(e,t,r)}else if(function(e){return e.type===wt.Move}(n)){let t=It(e,n.path);p(t)&&(t=t.item),i(t)&&(t=t.value);const r=t.items[n.from];Ce(e,t,r),xe(e,t,r,n.to)}else if(function(e){return e.type===wt.Rename}(n)){let r=It(e,n.path.concat(n.from)),l=It(t,n.path.concat(n.to));p(r)&&(r=r.item),p(l)&&(l=l.item),Ee(e,r,r.key,l.key)}})),_e(e),e}(d,h,y,a);return{tomlString:ut(g.items,a),document:g}}function Ct(e,t,n){const r=[],l=(e,r)=>{var o;for(let a=e.items.length-1;a>=0;a--){const s=e.items[a];if(i(s)&&f(s.value)){const c=[...e.key.item.value,...s.key.value];if(rt(c)<(null!==(o=n.inlineTableStart)&&void 0!==o?o:1)&&0!==n.inlineTableStart){const n=Me(c);for(const e of s.value.items)u(e)&&i(e.item)&&xe(t,n,e.item,void 0);e.items.splice(a,1),nt(e),r.push(n),l(n,r)}}}};return l(e,r),r}function Ot(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function Dt(e,t,n,r,l){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!l:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?l.call(e,n):l?l.value=n:t.set(e,n),n}function _t(e,t){return e.line!==t.line?e.line-t.line:e.column-t.column}!function(e){e.Add="Add",e.Edit="Edit",e.Remove="Remove",e.Move="Move",e.Rename="Rename"}(wt||(wt={})),"function"==typeof SuppressedError&&SuppressedError;function Ft(e){if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(Ft);if(e&&"object"==typeof e){const t={};for(const[n,r]of Object.entries(e))t[n]=Ft(r);return t}return e}St=new WeakMap,Tt=new WeakMap,bt=new WeakMap,e.TomlDocument=class{constructor(e){St.set(this,void 0),Tt.set(this,void 0),bt.set(this,void 0),Dt(this,Tt,e,"f"),Dt(this,St,Array.from(ye(e)),"f"),Dt(this,bt,Xe.autoDetectFormat(e),"f")}get toTomlString(){return Ot(this,Tt,"f")}get toJsObject(){return Ft(dt(Ot(this,St,"f")))}get ast(){return Ot(this,St,"f")}patch(e,t){const n=Qe(t,Ot(this,bt,"f")),{tomlString:r,document:l}=At(Ot(this,St,"f"),e,n);Dt(this,St,l.items,"f"),Dt(this,Tt,r,"f")}update(e){if(e===this.toTomlString)return;const t=this.toTomlString.split(Ot(this,bt,"f").newLine),n=Ge(e),r=e.split(n);let l=0;for(;l<t.length&&l<r.length&&t[l]===r[l];)l++;let o=0;if(l<t.length&&l<r.length){const e=t[l],n=r[l];for(let t=0;t<Math.max(e.length,n.length);t++)if(e[t]!==n[t]){o=t;break}}let i=l+1;const{truncatedAst:a,lastEndPosition:s}=function(e,t,n){const r={line:t,column:n},l=[];let o=null;for(const t of e){const e=_t(t.loc.end,r)<0,n=_t(t.loc.start,r)<0;if(!e){if(n&&!e)break;break}l.push(t),o=t.loc.end}return{truncatedAst:l,lastEndPosition:o}}(Ot(this,St,"f"),i,o),c=s?s.line:1,u=s?s.column+1:0,f=r.slice(c-1);f.length>0&&u>0&&(f[0]=f[0].substring(u));const m=f.join(Ot(this,bt,"f").newLine);Dt(this,St,Array.from(function*(e,t){for(const t of e)yield t;for(const e of ye(t))yield e}(a,m)),"f"),Dt(this,Tt,e,"f"),Dt(this,bt,Xe.autoDetectFormat(e),"f")}overwrite(e){e!==this.toTomlString&&(Dt(this,St,Array.from(ye(e)),"f"),Dt(this,Tt,e,"f"),Dt(this,bt,Xe.autoDetectFormat(e),"f"))}},e.TomlFormat=Xe,e.parse=function(e){return dt(ye(e),e)},e.patch=function(e,t,n){return At(ye(e),t,Qe(n,Xe.autoDetectFormat(e))).tomlString},e.stringify=function(e,t){const n=Qe(t,Xe.default());return ut(ot(e,n).items,n)}}));
|
|
3
3
|
//# sourceMappingURL=toml-patch.umd.min.js.map
|