@decimalturn/toml-patch 0.5.1 → 0.5.2

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.
@@ -1,4 +1,4 @@
1
- //! @decimalturn/toml-patch v0.5.1 - https://github.com/DecimalTurn/toml-patch - @license: MIT
1
+ //! @decimalturn/toml-patch v0.5.2 - https://github.com/DecimalTurn/toml-patch - @license: MIT
2
2
  interface Location {
3
3
  start: Position;
4
4
  end: Position;
@@ -1,4 +1,4 @@
1
- //! @decimalturn/toml-patch v0.5.1 - https://github.com/DecimalTurn/toml-patch - @license: MIT
1
+ //! @decimalturn/toml-patch v0.5.2 - https://github.com/DecimalTurn/toml-patch - @license: MIT
2
2
  var NodeType;
3
3
  (function (NodeType) {
4
4
  NodeType["Document"] = "Document";
@@ -948,7 +948,7 @@ class OffsetDateTime extends Date {
948
948
  }
949
949
 
950
950
  // Create a shorter alias for convenience
951
- const dateFormatHelper$1 = DateFormatHelper;
951
+ const dateFormatHelper = DateFormatHelper;
952
952
  const TRUE = 'true';
953
953
  const FALSE = 'false';
954
954
  const HAS_E = /e/i;
@@ -1004,7 +1004,7 @@ function* walkValue$1(cursor, input) {
1004
1004
  else if (cursor.value.raw === TRUE || cursor.value.raw === FALSE) {
1005
1005
  yield boolean(cursor);
1006
1006
  }
1007
- else if (dateFormatHelper$1.IS_FULL_DATE.test(cursor.value.raw) || dateFormatHelper$1.IS_FULL_TIME.test(cursor.value.raw)) {
1007
+ else if (dateFormatHelper.IS_FULL_DATE.test(cursor.value.raw) || dateFormatHelper.IS_FULL_TIME.test(cursor.value.raw)) {
1008
1008
  yield datetime(cursor, input);
1009
1009
  }
1010
1010
  else if ((!cursor.peek().done && cursor.peek().value.type === TokenType.Dot) ||
@@ -1217,8 +1217,8 @@ function datetime(cursor, input) {
1217
1217
  // check if raw is full date and following is full time
1218
1218
  if (!cursor.peek().done &&
1219
1219
  cursor.peek().value.type === TokenType.Literal &&
1220
- dateFormatHelper$1.IS_FULL_DATE.test(raw) &&
1221
- dateFormatHelper$1.IS_FULL_TIME.test(cursor.peek().value.raw)) {
1220
+ dateFormatHelper.IS_FULL_DATE.test(raw) &&
1221
+ dateFormatHelper.IS_FULL_TIME.test(cursor.peek().value.raw)) {
1222
1222
  const start = loc.start;
1223
1223
  cursor.next();
1224
1224
  loc = { start, end: cursor.value.loc.end };
@@ -1234,9 +1234,9 @@ function datetime(cursor, input) {
1234
1234
  loc = { start, end: cursor.value.loc.end };
1235
1235
  raw += `.${cursor.value.raw}`;
1236
1236
  }
1237
- if (!dateFormatHelper$1.IS_FULL_DATE.test(raw)) {
1237
+ if (!dateFormatHelper.IS_FULL_DATE.test(raw)) {
1238
1238
  // Local time only (e.g., "07:32:00" or "07:32:00.999")
1239
- if (dateFormatHelper$1.IS_TIME_ONLY.test(raw)) {
1239
+ if (dateFormatHelper.IS_TIME_ONLY.test(raw)) {
1240
1240
  value = new LocalTime(raw, raw);
1241
1241
  }
1242
1242
  else {
@@ -1245,23 +1245,23 @@ function datetime(cursor, input) {
1245
1245
  value = new Date(`${local_date}T${raw}`);
1246
1246
  }
1247
1247
  }
1248
- else if (dateFormatHelper$1.IS_DATE_ONLY.test(raw)) {
1248
+ else if (dateFormatHelper.IS_DATE_ONLY.test(raw)) {
1249
1249
  // Local date only (e.g., "1979-05-27")
1250
1250
  value = new LocalDate(raw);
1251
1251
  }
1252
- else if (dateFormatHelper$1.IS_LOCAL_DATETIME_T.test(raw)) {
1252
+ else if (dateFormatHelper.IS_LOCAL_DATETIME_T.test(raw)) {
1253
1253
  // Local datetime with T separator (e.g., "1979-05-27T07:32:00")
1254
1254
  value = new LocalDateTime(raw, false);
1255
1255
  }
1256
- else if (dateFormatHelper$1.IS_LOCAL_DATETIME_SPACE.test(raw)) {
1256
+ else if (dateFormatHelper.IS_LOCAL_DATETIME_SPACE.test(raw)) {
1257
1257
  // Local datetime with space separator (e.g., "1979-05-27 07:32:00")
1258
1258
  value = new LocalDateTime(raw, true);
1259
1259
  }
1260
- else if (dateFormatHelper$1.IS_OFFSET_DATETIME_T.test(raw)) {
1260
+ else if (dateFormatHelper.IS_OFFSET_DATETIME_T.test(raw)) {
1261
1261
  // Offset datetime with T separator (e.g., "1979-05-27T07:32:00Z" or "1979-05-27T07:32:00-07:00")
1262
1262
  value = new OffsetDateTime(raw, false);
1263
1263
  }
1264
- else if (dateFormatHelper$1.IS_OFFSET_DATETIME_SPACE.test(raw)) {
1264
+ else if (dateFormatHelper.IS_OFFSET_DATETIME_SPACE.test(raw)) {
1265
1265
  // Offset datetime with space separator (e.g., "1979-05-27 07:32:00Z")
1266
1266
  value = new OffsetDateTime(raw, true);
1267
1267
  }
@@ -1499,8 +1499,6 @@ function traverse(ast, visitor) {
1499
1499
  }
1500
1500
  }
1501
1501
 
1502
- // Create a shorter alias for convenience
1503
- const dateFormatHelper = DateFormatHelper;
1504
1502
  const enter_offsets = new WeakMap();
1505
1503
  const getEnterOffsets = (root) => {
1506
1504
  if (!enter_offsets.has(root)) {
@@ -1515,65 +1513,8 @@ const getExitOffsets = (root) => {
1515
1513
  }
1516
1514
  return exit_offsets.get(root);
1517
1515
  };
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
- }
1553
1516
  //TODO: Add getOffsets function to get all offsets contained in the tree
1554
1517
  function replace(root, parent, existing, replacement) {
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
1562
- if (isDateTime(existing) && isDateTime(replacement)) {
1563
- // Analyze the original raw format and create a properly formatted replacement
1564
- const originalRaw = existing.raw;
1565
- const newValue = replacement.value;
1566
- // Create a new date with the original format preserved
1567
- const formattedDate = dateFormatHelper.createDateWithOriginalFormat(newValue, originalRaw);
1568
- // Update the replacement with the properly formatted date
1569
- replacement.value = formattedDate;
1570
- replacement.raw = formattedDate.toISOString();
1571
- // Adjust the location information to match the new raw length
1572
- const lengthDiff = replacement.raw.length - originalRaw.length;
1573
- if (lengthDiff !== 0) {
1574
- replacement.loc.end.column = replacement.loc.start.column + replacement.raw.length;
1575
- }
1576
- }
1577
1518
  // First, replace existing node
1578
1519
  // (by index for items, item, or key/value)
1579
1520
  if (hasItems(parent)) {
@@ -2210,13 +2151,37 @@ function generateString(value, existingRaw) {
2210
2151
  else {
2211
2152
  raw = JSON.stringify(value);
2212
2153
  }
2154
+ // Calculate proper end location for multiline strings
2155
+ let endLocation;
2156
+ if (raw.includes('\r\n') || (raw.includes('\n') && !raw.includes('\r\n'))) {
2157
+ const newlineChar = raw.includes('\r\n') ? '\r\n' : '\n';
2158
+ const lineCount = (raw.match(new RegExp(newlineChar === '\r\n' ? '\\r\\n' : '\\n', 'g')) || []).length;
2159
+ if (lineCount > 0) {
2160
+ endLocation = {
2161
+ line: 1 + lineCount,
2162
+ column: 3 // length of delimiter (""" or ''')
2163
+ };
2164
+ }
2165
+ else {
2166
+ endLocation = { line: 1, column: raw.length };
2167
+ }
2168
+ }
2169
+ else {
2170
+ endLocation = { line: 1, column: raw.length };
2171
+ }
2213
2172
  return {
2214
2173
  type: NodeType.String,
2215
- loc: { start: zero(), end: { line: 1, column: raw.length } },
2174
+ loc: { start: zero(), end: endLocation },
2216
2175
  raw,
2217
2176
  value
2218
2177
  };
2219
2178
  }
2179
+ /**
2180
+ * Generates a new Integer node.
2181
+ *
2182
+ * @param value - The integer value.
2183
+ * @returns A new Integer node.
2184
+ */
2220
2185
  function generateInteger(value) {
2221
2186
  const raw = value.toString();
2222
2187
  return {
@@ -3583,6 +3548,54 @@ function reorder(changes) {
3583
3548
  }
3584
3549
  return changes;
3585
3550
  }
3551
+ /**
3552
+ * Preserves formatting from the existing node when applying it to the replacement node.
3553
+ * This includes multiline string formats, trailing commas, DateTime formats, etc.
3554
+ *
3555
+ * @param existing - The existing node with formatting to preserve
3556
+ * @param replacement - The replacement node to apply formatting to
3557
+ */
3558
+ function preserveFormatting(existing, replacement) {
3559
+ // Preserve multiline string format
3560
+ if (isString$1(existing) && isString$1(replacement) && isMultilineString(existing.raw)) {
3561
+ // Generate new string node with preserved multiline format
3562
+ const newString = generateString(replacement.value, existing.raw);
3563
+ replacement.raw = newString.raw;
3564
+ replacement.loc = newString.loc;
3565
+ }
3566
+ // Preserve DateTime format
3567
+ if (isDateTime(existing) && isDateTime(replacement)) {
3568
+ // Analyze the original raw format and create a properly formatted replacement
3569
+ const originalRaw = existing.raw;
3570
+ const newValue = replacement.value;
3571
+ // Create a new date with the original format preserved
3572
+ const formattedDate = DateFormatHelper.createDateWithOriginalFormat(newValue, originalRaw);
3573
+ // Update the replacement with the properly formatted date
3574
+ replacement.value = formattedDate;
3575
+ replacement.raw = formattedDate.toISOString();
3576
+ // Adjust the location information to match the new raw length
3577
+ const lengthDiff = replacement.raw.length - originalRaw.length;
3578
+ if (lengthDiff !== 0) {
3579
+ replacement.loc.end.column = replacement.loc.start.column + replacement.raw.length;
3580
+ }
3581
+ }
3582
+ // Preserve array trailing comma format
3583
+ if (isInlineArray(existing) && isInlineArray(replacement)) {
3584
+ const originalHadTrailingCommas = arrayHadTrailingCommas(existing);
3585
+ if (replacement.items.length > 0) {
3586
+ const lastItem = replacement.items[replacement.items.length - 1];
3587
+ lastItem.comma = originalHadTrailingCommas;
3588
+ }
3589
+ }
3590
+ // Preserve inline table trailing comma format
3591
+ if (isInlineTable(existing) && isInlineTable(replacement)) {
3592
+ const originalHadTrailingCommas = tableHadTrailingCommas(existing);
3593
+ if (replacement.items.length > 0) {
3594
+ const lastItem = replacement.items[replacement.items.length - 1];
3595
+ lastItem.comma = originalHadTrailingCommas;
3596
+ }
3597
+ }
3598
+ }
3586
3599
  /**
3587
3600
  * Applies a list of changes to the original TOML document AST while preserving formatting and structure.
3588
3601
  *
@@ -3725,26 +3738,8 @@ function applyChanges(original, updated, changes, format) {
3725
3738
  let parent;
3726
3739
  if (isKeyValue(existing) && isKeyValue(replacement)) {
3727
3740
  // Edit for key-value means value changes
3728
- // Special handling for arrays: preserve original trailing comma format
3729
- if (isInlineArray(existing.value) && isInlineArray(replacement.value)) {
3730
- const originalHadTrailingCommas = arrayHadTrailingCommas(existing.value);
3731
- const newArray = replacement.value;
3732
- // Apply or remove trailing comma based on original format
3733
- if (newArray.items.length > 0) {
3734
- const lastItem = newArray.items[newArray.items.length - 1];
3735
- lastItem.comma = originalHadTrailingCommas;
3736
- }
3737
- }
3738
- // Special handling for inline tables: preserve original trailing comma format
3739
- if (isInlineTable(existing.value) && isInlineTable(replacement.value)) {
3740
- const originalHadTrailingCommas = tableHadTrailingCommas(existing.value);
3741
- const newTable = replacement.value;
3742
- // Apply or remove trailing comma based on original format
3743
- if (newTable.items.length > 0) {
3744
- const lastItem = newTable.items[newTable.items.length - 1];
3745
- lastItem.comma = originalHadTrailingCommas;
3746
- }
3747
- }
3741
+ // Preserve formatting from existing value in replacement value
3742
+ preserveFormatting(existing.value, replacement.value);
3748
3743
  parent = existing;
3749
3744
  existing = existing.value;
3750
3745
  replacement = replacement.value;
@@ -1,3 +1,3 @@
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&&lt(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)}}));
1
+ //! @decimalturn/toml-patch v0.5.2 - 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 $ 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 b=/\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(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 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 $(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 $(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)&&(b.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 $(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 K(e){return"number"==typeof e&&e%1==0&&isFinite(e)&&!Object.is(e,-0)}function j(e){return"[object Date]"===Object.prototype.toString.call(e)}function N(e){return e&&"object"==typeof e&&!j(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 $(r,e.value.loc.start,`Expected table opening "[", found ${e.value.raw}`);if(!o&&("["!==e.value.raw||"["!==e.peek().value.raw))throw new $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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 $(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=new WeakMap,$e=e=>(Te.has(e)||Te.set(e,new WeakMap),Te.get(e)),be=new WeakMap,ke=e=>(be.has(e)||be.set(e,new WeakMap),be.get(e));function Ie(e,t,n,r){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}_e(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);Fe({lines:o.lines-l.lines,columns:o.columns-l.columns},ke(e),r,n)}function Ee(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 xe(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=xe(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)),_e(n,p);const y=t.items[a-1],v=y&&ke(e).get(y);v&&(h.lines+=v.lines,h.columns+=v.columns,ke(e).delete(y));ke(e).set(n,h)}function xe(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 Ae(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?ke(e):$e(e),w=ke(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 Ce(e,t,n=!0){if(!n)return;if(!t.items.length)return;Fe({lines:0,columns:1},$e(e),t);const r=U(t.items);Fe({lines:0,columns:1},ke(e),r)}function Oe(e,t,n=!1){if(!n)return;if(!t.items.length)return;const r=U(t.items);r.comma=!0,Fe({lines:0,columns:1},ke(e),r)}function De(e){const n=$e(e),r=ke(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}),Te.delete(e),be.delete(e)}function _e(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 Fe(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=Ne(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 Me(e){const n=function(e){const n=Ne(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=Ne(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 _e(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 je=/^[\w-]+$/;function Ne(e){return e.map((e=>je.test(e)?e:JSON.stringify(e))).join(".")}function Be(e,n){let r,l;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);if(r.includes("\r\n")||r.includes("\n")&&!r.includes("\r\n")){const e=r.includes("\r\n")?"\r\n":"\n",t=(r.match(new RegExp("\r\n"===e?"\\r\\n":"\\n","g"))||[]).length;l=t>0?{line:1+t,column:3}:{line:1,column:r.length}}else l={line:1,column:r.length};return{type:t.String,loc:{start:{line:1,column:0},end:l},raw:r,value:e}}function Ze(e){return{type:t.InlineItem,loc:T(e.loc),item:e,comma:!1}}const We=!1,Pe=!0,ze=!1;function Ve(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=Ve(n,t);if(null!==e)return e;if(n.item){const e=Ve(n.item,t);if(null!==e)return e}}for(const n of["value","key","item"])if(e[n]){const r=Ve(e[n],t);if(null!==r)return r}return null}function He(e){if(!e||"object"!=typeof e)return null;if("InlineArray"===e.type&&e.items&&Array.isArray(e.items))return Re(e.items);if("InlineTable"===e.type&&e.items&&Array.isArray(e.items))return Re(e.items);if("KeyValue"===e.type&&e.value)return He(e.value);if(e.items&&Array.isArray(e.items))for(const t of e.items){const e=He(t);if(null!==e)return e}return null}function Re(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 qe(e){if(!c(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function Ye(e){if(!f(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function Je(e){const t=e.indexOf("\n");return t>0&&"\r"===e.substring(t-1,t)?"\r\n":"\n"}function Ge(e,t){var n,r,l,o,i;if(e){if(e instanceof Qe)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 Qe(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 Qe{constructor(e,t,n,r,l,o){this.newLine=null!=e?e:"\n",this.trailingNewline=null!=t?t:1,this.trailingComma=null!=n?n:We,this.bracketSpacing=null!=r?r:Pe,this.inlineTableStart=null!=l?l:1,this.truncateZeroTimeInDates=null!=o?o:ze}static default(){return new Qe("\n",1,We,Pe,1,ze)}static autoDetectFormat(e){const t=Qe.default();t.newLine=Je(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=He(e);if(null!==t)return t}return We}(r),t.bracketSpacing=function(e,t){const n=Array.from(t);for(const t of n){const n=Ve(t,e);if(null!==n)return n}return Pe}(e,r)}catch(e){t.trailingComma=We,t.bracketSpacing=Pe}return t.inlineTableStart=1,t.truncateZeroTimeInDates=ze,t}}function Xe(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=nt(e.key.value);return void 0===t.inlineTableStart||n<t.inlineTableStart}return!1})).forEach((t=>{Ae(e,e,t),f(t.value)?Ee(e,e,et(t)):function(e){const t=Le();for(const n of e.value.items){const r=Me(e.key.value);Ee(t,t,r);for(const e of n.item.items)Ee(t,r,e.item)}return De(t),t.items}(t).forEach((t=>{Ee(e,e,t)}))})),De(e),e}function et(e){const t=Ue(e.key.value);for(const n of e.value.items)Ee(t,t,n.item);return De(t),t}function tt(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 nt(e){return Math.max(0,e.length-1)}function rt(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(nt(l)<(null!==(r=n.inlineTableStart)&&void 0!==r?r:1)){const r=Ue(l);for(const e of o.value.items)Ee(r,r,e.item);Ae(e,e,o),tt(e),t.push(r),rt(r,t,n)}}}}function lt(e,t=Qe.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=at(e));const n=Le();for(const r of ot(e,t))Ee(n,n,r);De(n);const r=Z(n,(e=>Xe(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(nt(r.key.value)<t.inlineTableStart){const l=et(r);Ae(e,e,r),Ee(e,e,l),rt(l,n,t)}}else"Table"===r.type&&rt(r,n,t);for(const t of n)Ee(e,e,t);return De(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)),_e(r,{lines:t,columns:0}),n=r.loc.end.line;return e}(r)}function*ot(e,t){for(const n of Object.keys(e))yield Ke([n],it(e[n],t))}function it(e,n){if(null==e)throw new Error('"null" and "undefined" values are not supported');return function(e){return"string"==typeof e}(e)?Be(e):K(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&&(!K(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):j(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){Ee(r,r,Ze(it(t,n)))}return Ce(r,r,n.bracketSpacing),Oe(r,r,n.trailingComma),De(r),r}(e,n):function(e,n){if(e=at(e),!N(e))return it(e,n);const r={type:t.InlineTable,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]},l=[...ot(e,n)];for(const e of l){Ee(r,r,Ze(e))}return Ce(r,r,n.bracketSpacing),Oe(r,r,n.trailingComma),De(r),r}(e,n)}function at(e){return e?j(e)?e:"function"==typeof e.toJSON?e.toJSON():e:e}const st=/(\r\n|\n)/g;function ct(e,n){const r=[];return Se(e,{[t.TableKey](e){const{start:t,end:n}=e.loc;ut(r,{start:t,end:{line:t.line,column:t.column+1}},"["),ut(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.TableArrayKey](e){const{start:t,end:n}=e.loc;ut(r,{start:t,end:{line:t.line,column:t.column+2}},"[["),ut(r,{start:{line:n.line,column:n.column-2},end:n},"]]")},[t.KeyValue](e){const{start:{line:t}}=e.loc;ut(r,{start:{line:t,column:e.equals},end:{line:t,column:e.equals+1}},"=")},[t.Key](e){ut(r,e.loc,e.raw)},[t.String](e){ut(r,e.loc,e.raw)},[t.Integer](e){ut(r,e.loc,e.raw)},[t.Float](e){ut(r,e.loc,e.raw)},[t.Boolean](e){ut(r,e.loc,e.value.toString())},[t.DateTime](e){ut(r,e.loc,e.raw)},[t.InlineArray](e){const{start:t,end:n}=e.loc;ut(r,{start:t,end:{line:t.line,column:t.column+1}},"["),ut(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.InlineTable](e){const{start:t,end:n}=e.loc;ut(r,{start:t,end:{line:t.line,column:t.column+1}},"{"),ut(r,{start:{line:n.line,column:n.column-1},end:n},"}")},[t.InlineItem](e){if(!e.comma)return;const t=e.loc.end;ut(r,{start:t,end:{line:t.line,column:t.column+1}},",")},[t.Comment](e){ut(r,e.loc,e.raw)}}),r.join(n.newLine)+n.newLine.repeat(n.trailingNewline)}function ut(e,t,n){const r=n.split(st).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=ft(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 ft(e,t){if(!e[t-1])for(let n=0;n<t;n++)e[n]||(e[n]="");return e[t-1]}function mt(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{pt(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new $(n,e.key.loc.start,r.message)}const s=gt(t);l.add(s),i.add(s),a=ht(r,t)},[t.TableArray](e){const t=e.key.item.value;try{pt(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new $(n,e.key.loc.start,r.message)}const s=gt(t);o.add(s),i.add(s),a=function(e,t){const n=yt(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{pt(a,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new $(n,e.key.loc.start,r.message)}const r=dt(e.value);(t.length>1?ht(a,t.slice(0,-1)):a)[U(t)]=r,i.add(gt(t))}},[t.InlineTable]:{enter(){s++},exit(){s--}}}),r}function dt(e){switch(e.type){case t.InlineTable:const n=M();return e.items.forEach((({item:e})=>{const t=e.key.value,r=dt(e.value);(t.length>1?ht(n,t.slice(0,-1)):n)[U(t)]=r})),n;case t.InlineArray:return e.items.map((e=>dt(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 pt(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])&&!j(a))throw new Error(`Invalid key, a value has already been defined for ${o.join(".")}`);const r=gt(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=gt(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 ht(e,t){const n=yt(e,t.slice(0,-1)),r=U(t);return n[r]||(n[r]=M()),n[r]}function yt(e,t){return t.reduce(((e,t)=>(e[t]||(e[t]=M()),Array.isArray(e[t])?U(e[t]):e[t])),e)}function gt(e){return e.join(".")}var vt,wt,St,Tt;function $t(e){return e.type===vt.Remove}function bt(e,t,n=[]){return e===t||(l=t,j(r=e)&&j(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:vt.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,bt(e[a],t[a],n.concat(a))),void(l[a]=i);r.push({type:vt.Add,path:n.concat(a)}),l.splice(a,0,i)}));for(let e=o.length;e<l.length;e++)r.push({type:vt.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,bt(e[l],t[l],u));else if(s(o[c],a)){const e=i[a.indexOf(o[c])];r.push({type:vt.Rename,path:n,from:l,to:e})}else r.push({type:vt.Remove,path:u})})),i.forEach(((e,t)=>{l.includes(e)||s(a[t],o)||r.push({type:vt.Add,path:n.concat(e)})})),r}(e,t,n):[{type:vt.Edit,path:n}];var r,l}function kt(e,t){if(!t.length)return u(e)&&i(e.item)?e.item:e;if(i(e))return kt(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=kt(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 It(e,t){try{return kt(e,t)}catch(e){}}function Et(e,t){let n,r=t;for(;r.length&&!n;)r=r.slice(0,-1),n=It(e,r);if(!n)throw new Error(`Count not find parent node for path ${t.join(".")}`);return n}function xt(e,n,m){const d=[...e],h=mt(d),y={type:t.Document,loc:{start:{line:1,column:0},end:{line:1,column:0}},items:d},g=lt(n,Ge(Object.assign(Object.assign({},m),{inlineTableStart:void 0}),m)),v=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}(bt(h,n));if(0===v.length)return{tomlString:ct(d,m),document:y};const w=function(e,t,n,m){return n.forEach((n=>{if(function(e){return e.type===vt.Add}(n)){const a=kt(t,n.path),s=n.path.slice(0,-1);let d,p=U(n.path),h=o(a);if(K(p)&&!s.some(K)){const t=It(e,s.concat(0));t&&o(t)&&(h=!0)}if(l(a))d=e;else if(h){d=e;const t=e,n=It(t,s.concat(p-1)),r=It(t,s.concat(p));p=r?t.items.indexOf(r):n?t.items.indexOf(n)+1:t.items.length}else d=Et(e,n.path),i(d)&&(d=d.value);if(o(d)||c(d)||r(d)){if(c(d)){const e=qe(d);u(a)&&(a.comma=e)}if(void 0!==m.inlineTableStart&&m.inlineTableStart>0&&r(d)&&l(a)){const t=At(a,e,m);Ee(e,d,a,p);for(const n of t)Ee(e,e,n,void 0)}else Ee(e,d,a,p)}else if(f(d)){const t=Ye(d);if(i(a)){const n=Ze(a);n.comma=t,Ee(e,d,n)}else Ee(e,d,a)}else if(void 0!==m.inlineTableStart&&m.inlineTableStart>0&&i(a)&&f(a.value)&&l(d)){nt([...d.key.item.value,...a.key.value])<m.inlineTableStart?function(e,t,n,r){const l=t.key.item.value,o=[...l,...e.key.value],a=Ue(o);if(f(e.value))for(const t of e.value.items)u(t)&&i(t.item)&&Ee(n,a,t.item,void 0);Ee(n,n,a,void 0),tt(t);const s=At(a,n,r);for(const e of s)Ee(n,n,e,void 0)}(a,d,e,m):Ee(e,d,a)}else 0===m.inlineTableStart&&i(a)&&f(a.value)&&r(d)?Ee(e,d,a,void 0,!0):Ee(e,d,a)}else if(function(e){return e.type===vt.Edit}(n)){let r,l=kt(e,n.path),o=kt(t,n.path);if(i(l)&&i(o))!function(e,t){if(a(e)&&a(t)&&z(e.raw)){const n=Be(t.value,e.raw);t.raw=n.raw,t.loc=n.loc}if(s(e)&&s(t)){const n=e.raw,r=t.value,l=ne.createDateWithOriginalFormat(r,n);t.value=l,t.raw=l.toISOString();0!==t.raw.length-n.length&&(t.loc.end.column=t.loc.start.column+t.raw.length)}if(c(e)&&c(t)){const n=qe(e);if(t.items.length>0){t.items[t.items.length-1].comma=n}}if(f(e)&&f(t)){const n=Ye(e);if(t.items.length>0){t.items[t.items.length-1].comma=n}}}(l.value,o.value),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=Et(e,n.path),i(r)){const t=n.path.slice(0,-1),l=kt(e,t);i(l)&&c(l.value)&&(r=l.value)}Ie(e,r,l,o)}else if($t(n)){let t=Et(e,n.path);i(t)&&(t=t.value);const r=kt(e,n.path);Ae(e,t,r)}else if(function(e){return e.type===vt.Move}(n)){let t=kt(e,n.path);p(t)&&(t=t.item),i(t)&&(t=t.value);const r=t.items[n.from];Ae(e,t,r),Ee(e,t,r,n.to)}else if(function(e){return e.type===vt.Rename}(n)){let r=kt(e,n.path.concat(n.from)),l=kt(t,n.path.concat(n.to));p(r)&&(r=r.item),p(l)&&(l=l.item),Ie(e,r,r.key,l.key)}})),De(e),e}(y,g,v,m);return{tomlString:ct(w.items,m),document:w}}function At(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(nt(c)<(null!==(o=n.inlineTableStart)&&void 0!==o?o:1)&&0!==n.inlineTableStart){const n=Ue(c);for(const e of s.value.items)u(e)&&i(e.item)&&Ee(t,n,e.item,void 0);e.items.splice(a,1),tt(e),r.push(n),l(n,r)}}}};return l(e,r),r}function Ct(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 Ot(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 Dt(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"}(vt||(vt={})),"function"==typeof SuppressedError&&SuppressedError;function _t(e){if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(_t);if(e&&"object"==typeof e){const t={};for(const[n,r]of Object.entries(e))t[n]=_t(r);return t}return e}wt=new WeakMap,St=new WeakMap,Tt=new WeakMap,e.TomlDocument=class{constructor(e){wt.set(this,void 0),St.set(this,void 0),Tt.set(this,void 0),Ot(this,St,e,"f"),Ot(this,wt,Array.from(ye(e)),"f"),Ot(this,Tt,Qe.autoDetectFormat(e),"f")}get toTomlString(){return Ct(this,St,"f")}get toJsObject(){return _t(mt(Ct(this,wt,"f")))}get ast(){return Ct(this,wt,"f")}patch(e,t){const n=Ge(t,Ct(this,Tt,"f")),{tomlString:r,document:l}=xt(Ct(this,wt,"f"),e,n);Ot(this,wt,l.items,"f"),Ot(this,St,r,"f")}update(e){if(e===this.toTomlString)return;const t=this.toTomlString.split(Ct(this,Tt,"f").newLine),n=Je(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=Dt(t.loc.end,r)<0,n=Dt(t.loc.start,r)<0;if(!e){if(n&&!e)break;break}l.push(t),o=t.loc.end}return{truncatedAst:l,lastEndPosition:o}}(Ct(this,wt,"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(Ct(this,Tt,"f").newLine);Ot(this,wt,Array.from(function*(e,t){for(const t of e)yield t;for(const e of ye(t))yield e}(a,m)),"f"),Ot(this,St,e,"f"),Ot(this,Tt,Qe.autoDetectFormat(e),"f")}overwrite(e){e!==this.toTomlString&&(Ot(this,wt,Array.from(ye(e)),"f"),Ot(this,St,e,"f"),Ot(this,Tt,Qe.autoDetectFormat(e),"f"))}},e.TomlFormat=Qe,e.parse=function(e){return mt(ye(e),e)},e.patch=function(e,t,n){return xt(ye(e),t,Ge(n,Qe.autoDetectFormat(e))).tomlString},e.stringify=function(e,t){const n=Ge(t,Qe.default());return ct(lt(e,n).items,n)}}));
3
3
  //# sourceMappingURL=toml-patch.umd.min.js.map