@decimalturn/toml-patch 0.4.1 → 0.5.0

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.4.1 - https://github.com/DecimalTurn/toml-patch - @license: MIT
1
+ //! @decimalturn/toml-patch v0.5.0 - https://github.com/DecimalTurn/toml-patch - @license: MIT
2
2
  interface Location {
3
3
  start: Position;
4
4
  end: Position;
@@ -212,7 +212,17 @@ declare class TomlFormat {
212
212
  * - 2: Two levels as sections, deeper nesting as inline
213
213
  */
214
214
  inlineTableStart?: number;
215
- constructor(newLine?: string, trailingNewline?: number, trailingComma?: boolean, bracketSpacing?: boolean, inlineTableStart?: number);
215
+ /**
216
+ * Whether to truncate time components in UTC date fields when they are zero.
217
+ * This setting affects only the stringification process.
218
+ *
219
+ * @example
220
+ * - true: Date('2024-01-15T00:00:00.000Z') serializes as 2024-01-15
221
+ * - false: Date('2024-01-15T00:00:00.000Z') serializes as 2024-01-15T00:00:00.000Z
222
+ *
223
+ */
224
+ truncateZeroTimeInDates?: boolean;
225
+ constructor(newLine?: string, trailingNewline?: number, trailingComma?: boolean, bracketSpacing?: boolean, inlineTableStart?: number, truncateZeroTimeInDates?: boolean);
216
226
  /**
217
227
  * Creates a new TomlFormat instance with default formatting preferences.
218
228
  *
@@ -222,6 +232,7 @@ declare class TomlFormat {
222
232
  * - trailingComma: false
223
233
  * - bracketSpacing: true
224
234
  * - inlineTableStart: 1
235
+ * - truncateZeroTimeInDates: false
225
236
  */
226
237
  static default(): TomlFormat;
227
238
  /**
@@ -1,4 +1,4 @@
1
- //! @decimalturn/toml-patch v0.4.1 - https://github.com/DecimalTurn/toml-patch - @license: MIT
1
+ //! @decimalturn/toml-patch v0.5.0 - https://github.com/DecimalTurn/toml-patch - @license: MIT
2
2
  var NodeType;
3
3
  (function (NodeType) {
4
4
  NodeType["Document"] = "Document";
@@ -2154,7 +2154,16 @@ function generateBoolean(value) {
2154
2154
  value
2155
2155
  };
2156
2156
  }
2157
- function generateDateTime(value) {
2157
+ function generateDateTime(value, format) {
2158
+ // Convert Date objects with zero time components to LocalDate
2159
+ // so they are serialized as date-only in TOML
2160
+ if (format.truncateZeroTimeInDates &&
2161
+ value.getUTCHours() === 0 &&
2162
+ value.getUTCMinutes() === 0 &&
2163
+ value.getUTCSeconds() === 0 &&
2164
+ value.getUTCMilliseconds() === 0) {
2165
+ value = new LocalDate(value.toISOString().split('T')[0]);
2166
+ }
2158
2167
  // Custom date classes have their own toISOString() implementations
2159
2168
  // that return the properly formatted strings for each TOML date/time type
2160
2169
  const raw = value.toISOString();
@@ -2194,6 +2203,7 @@ const DEFAULT_TRAILING_NEWLINE = 1;
2194
2203
  const DEFAULT_TRAILING_COMMA = false;
2195
2204
  const DEFAULT_BRACKET_SPACING = true;
2196
2205
  const DEFAULT_INLINE_TABLE_START = 1;
2206
+ const DEFAULT_TRUNCATE_ZERO_TIME_IN_DATES = false;
2197
2207
  // Detects if trailing commas are used in the existing TOML by examining the AST
2198
2208
  // Returns true if trailing commas are used, false if not or comma-separated structures found (ie. default to false)
2199
2209
  function detectTrailingComma(ast) {
@@ -2397,7 +2407,7 @@ function validateFormatObject(format) {
2397
2407
  if (!format || typeof format !== 'object') {
2398
2408
  return {};
2399
2409
  }
2400
- const supportedProperties = new Set(['newLine', 'trailingNewline', 'trailingComma', 'bracketSpacing', 'inlineTableStart']);
2410
+ const supportedProperties = new Set(['newLine', 'trailingNewline', 'trailingComma', 'bracketSpacing', 'inlineTableStart', 'truncateZeroTimeInDates']);
2401
2411
  const validatedFormat = {};
2402
2412
  const unsupportedProperties = [];
2403
2413
  const invalidTypeProperties = [];
@@ -2426,6 +2436,7 @@ function validateFormatObject(format) {
2426
2436
  break;
2427
2437
  case 'trailingComma':
2428
2438
  case 'bracketSpacing':
2439
+ case 'truncateZeroTimeInDates':
2429
2440
  if (typeof value === 'boolean') {
2430
2441
  validatedFormat[key] = value;
2431
2442
  }
@@ -2471,7 +2482,7 @@ function validateFormatObject(format) {
2471
2482
  * @returns A resolved TomlFormat instance
2472
2483
  */
2473
2484
  function resolveTomlFormat(format, fallbackFormat) {
2474
- var _a, _b, _c, _d;
2485
+ var _a, _b, _c, _d, _e;
2475
2486
  if (format) {
2476
2487
  // If format is provided, validate and merge it with fallback
2477
2488
  if (format instanceof TomlFormat) {
@@ -2481,7 +2492,7 @@ function resolveTomlFormat(format, fallbackFormat) {
2481
2492
  // Validate the format object and warn about unsupported properties
2482
2493
  const validatedFormat = validateFormatObject(format);
2483
2494
  // Create a new TomlFormat instance with validated properties
2484
- return new TomlFormat((_a = validatedFormat.newLine) !== null && _a !== void 0 ? _a : fallbackFormat.newLine, (_b = validatedFormat.trailingNewline) !== null && _b !== void 0 ? _b : fallbackFormat.trailingNewline, (_c = validatedFormat.trailingComma) !== null && _c !== void 0 ? _c : fallbackFormat.trailingComma, (_d = validatedFormat.bracketSpacing) !== null && _d !== void 0 ? _d : fallbackFormat.bracketSpacing, validatedFormat.inlineTableStart !== undefined ? validatedFormat.inlineTableStart : fallbackFormat.inlineTableStart);
2495
+ return new TomlFormat((_a = validatedFormat.newLine) !== null && _a !== void 0 ? _a : fallbackFormat.newLine, (_b = validatedFormat.trailingNewline) !== null && _b !== void 0 ? _b : fallbackFormat.trailingNewline, (_c = validatedFormat.trailingComma) !== null && _c !== void 0 ? _c : fallbackFormat.trailingComma, (_d = validatedFormat.bracketSpacing) !== null && _d !== void 0 ? _d : fallbackFormat.bracketSpacing, validatedFormat.inlineTableStart !== undefined ? validatedFormat.inlineTableStart : fallbackFormat.inlineTableStart, (_e = validatedFormat.truncateZeroTimeInDates) !== null && _e !== void 0 ? _e : fallbackFormat.truncateZeroTimeInDates);
2485
2496
  }
2486
2497
  }
2487
2498
  else {
@@ -2494,13 +2505,14 @@ class TomlFormat {
2494
2505
  //printWidth?: number;
2495
2506
  //tabWidth?: number;
2496
2507
  //useTabs?: boolean;
2497
- constructor(newLine, trailingNewline, trailingComma, bracketSpacing, inlineTableStart) {
2508
+ constructor(newLine, trailingNewline, trailingComma, bracketSpacing, inlineTableStart, truncateZeroTimeInDates) {
2498
2509
  // Use provided values or fall back to defaults
2499
2510
  this.newLine = newLine !== null && newLine !== void 0 ? newLine : DEFAULT_NEWLINE;
2500
2511
  this.trailingNewline = trailingNewline !== null && trailingNewline !== void 0 ? trailingNewline : DEFAULT_TRAILING_NEWLINE;
2501
2512
  this.trailingComma = trailingComma !== null && trailingComma !== void 0 ? trailingComma : DEFAULT_TRAILING_COMMA;
2502
2513
  this.bracketSpacing = bracketSpacing !== null && bracketSpacing !== void 0 ? bracketSpacing : DEFAULT_BRACKET_SPACING;
2503
2514
  this.inlineTableStart = inlineTableStart !== null && inlineTableStart !== void 0 ? inlineTableStart : DEFAULT_INLINE_TABLE_START;
2515
+ this.truncateZeroTimeInDates = truncateZeroTimeInDates !== null && truncateZeroTimeInDates !== void 0 ? truncateZeroTimeInDates : DEFAULT_TRUNCATE_ZERO_TIME_IN_DATES;
2504
2516
  }
2505
2517
  /**
2506
2518
  * Creates a new TomlFormat instance with default formatting preferences.
@@ -2511,9 +2523,10 @@ class TomlFormat {
2511
2523
  * - trailingComma: false
2512
2524
  * - bracketSpacing: true
2513
2525
  * - inlineTableStart: 1
2526
+ * - truncateZeroTimeInDates: false
2514
2527
  */
2515
2528
  static default() {
2516
- return new TomlFormat(DEFAULT_NEWLINE, DEFAULT_TRAILING_NEWLINE, DEFAULT_TRAILING_COMMA, DEFAULT_BRACKET_SPACING, DEFAULT_INLINE_TABLE_START);
2529
+ return new TomlFormat(DEFAULT_NEWLINE, DEFAULT_TRAILING_NEWLINE, DEFAULT_TRAILING_COMMA, DEFAULT_BRACKET_SPACING, DEFAULT_INLINE_TABLE_START, DEFAULT_TRUNCATE_ZERO_TIME_IN_DATES);
2517
2530
  }
2518
2531
  /**
2519
2532
  * Auto-detects formatting preferences from an existing TOML string.
@@ -2556,6 +2569,11 @@ class TomlFormat {
2556
2569
  // inlineTableStart uses default value since auto-detection would require
2557
2570
  // complex analysis of nested table formatting preferences
2558
2571
  format.inlineTableStart = DEFAULT_INLINE_TABLE_START;
2572
+ // truncateZeroTimeInDates uses default value as well
2573
+ // We could always implement detection logic if needed
2574
+ // That would imply checking if all dates have no time component in the TOML.
2575
+ // However, it's not because all dates have no time component that a new key-value can't be introduced where the time component corresponds to midnight.
2576
+ format.truncateZeroTimeInDates = DEFAULT_TRUNCATE_ZERO_TIME_IN_DATES;
2559
2577
  return format;
2560
2578
  }
2561
2579
  }
@@ -2809,7 +2827,7 @@ function walkValue(value, format) {
2809
2827
  return generateBoolean(value);
2810
2828
  }
2811
2829
  else if (isDate(value)) {
2812
- return generateDateTime(value);
2830
+ return generateDateTime(value, format);
2813
2831
  }
2814
2832
  else if (Array.isArray(value)) {
2815
2833
  return walkInlineArray(value, format);
@@ -1,3 +1,3 @@
1
- //! @decimalturn/toml-patch v0.4.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.DateTime}function s(e){return e.type===t.InlineArray}function c(e){return e.type===t.InlineItem}function u(e){return e.type===t.InlineTable}function f(e){return e.type===t.Comment}function m(e){return r(e)||l(e)||o(e)||u(e)||s(e)}function d(e){return function(e){return e.type===t.TableKey}(e)||function(e){return e.type===t.TableArrayKey}(e)||c(e)}!function(e){e.Document="Document",e.Table="Table",e.TableKey="TableKey",e.TableArray="TableArray",e.TableArrayKey="TableArrayKey",e.KeyValue="KeyValue",e.Key="Key",e.String="String",e.Integer="Integer",e.Float="Float",e.Boolean="Boolean",e.DateTime="DateTime",e.InlineArray="InlineArray",e.InlineItem="InlineItem",e.InlineTable="InlineTable",e.Comment="Comment"}(t||(t={}));class p{constructor(e){this.iterator=e,this.index=-1,this.value=void 0,this.done=!1,this.peeked=null}next(){var e;if(this.done)return y();const t=this.peeked||this.iterator.next();return this.index+=1,this.value=t.value,this.done=null!==(e=t.done)&&void 0!==e&&e,this.peeked=null,t}peek(){return this.done?y():(this.peeked||(this.peeked=this.iterator.next()),this.peeked)}[Symbol.iterator](){return this}}function y(){return{value:void 0,done:!0}}function h(e){return{lines:e.end.line-e.start.line+1,columns:e.end.column-e.start.column}}function g(e,t){const n=Array.isArray(e)?e:v(e),r=n.findIndex((e=>e>=t))+1;return{line:r,column:t-(n[r-2]+1||0)}}function v(e){const t=/\r\n|\n/g,n=[];let r;for(;null!=(r=t.exec(e));)n.push(r.index+r[0].length-1);return n.push(e.length+1),n}function w(e){return{line:e.line,column:e.column}}function S(e){return{start:w(e.start),end:w(e.end)}}class T extends Error{constructor(e,t,n){let r=`Error parsing TOML (${t.line}, ${t.column+1}):\n`;if(e){const n=function(e,t){const n=v(e),r=n[t.line-2]||0,l=n[t.line-1]||e.length;return e.substr(r,l-r)}(e,t),l=`${function(e,t=" "){return t.repeat(e)}(t.column)}^`;n&&(r+=`${n}\n${l}\n`)}r+=n,super(r),this.line=t.line,this.column=t.column}}!function(e){e.Bracket="Bracket",e.Curly="Curly",e.Equal="Equal",e.Comma="Comma",e.Dot="Dot",e.Comment="Comment",e.Literal="Literal"}(n||(n={}));const b=/\s/,$=/(\r\n|\n)/,k='"',I="'",E=/[\w,\d,\",\',\+,\-,\_]/;function*A(e){const t=new p(e[Symbol.iterator]());t.next();const r=function(e){const t=v(e);return(e,n)=>({start:g(t,e),end:g(t,n)})}(e);for(;!t.done;){if(b.test(t.value));else if("["===t.value||"]"===t.value)yield x(t,r,n.Bracket);else if("{"===t.value||"}"===t.value)yield x(t,r,n.Curly);else if("="===t.value)yield x(t,r,n.Equal);else if(","===t.value)yield x(t,r,n.Comma);else if("."===t.value)yield x(t,r,n.Dot);else if("#"===t.value)yield C(t,r);else{const n=D(e,t.index,I)||D(e,t.index,k);n?yield O(t,r,n,e):yield _(t,r,e)}t.next()}}function x(e,t,n){return{type:n,raw:e.value,loc:t(e.index,e.index+1)}}function C(e,t){const r=e.index;let l=e.value;for(;!e.peek().done&&!$.test(e.peek().value);)e.next(),l+=e.value;return{type:n.Comment,raw:l,loc:t(r,e.index+1)}}function O(e,t,r,l){const o=e.index;let i=r+r+r,a=i;for(e.next(),e.next(),e.next();!e.done&&(!D(l,e.index,r)||L(l,e.index,r));)a+=e.value,e.next();if(e.done)throw new T(l,g(l,e.index),`Expected close of multiline string with ${i}, reached end of file`);return a+=i,e.next(),e.next(),{type:n.Literal,raw:a,loc:t(o,e.index+1)}}function _(e,t,r){if(!E.test(e.value))throw new T(r,g(r,e.index),`Unsupported character "${e.value}". Expected ALPHANUMERIC, ", ', +, -, or _`);const l=e.index;let o=e.value,i=e.value===k,a=e.value===I;const s=e=>{if(e.peek().done)return!0;const t=e.peek().value;return!(i||a)&&(b.test(t)||","===t||"."===t||"]"===t||"}"===t||"="===t||"#"===t)};for(;!e.done&&!s(e)&&(e.next(),e.value===k&&(i=!i),e.value!==I||i||(a=!a),o+=e.value,!e.peek().done);){let t=e.peek().value;i&&"\\"===e.value&&(t===k?(o+=k,e.next()):"\\"===t&&(o+="\\",e.next()))}if(i||a)throw new T(r,g(r,l),`Expected close of string with ${i?k:I}`);return{type:n.Literal,raw:o,loc:t(l,e.index+1)}}function D(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 F(e){return e[e.length-1]}function U(){return Object.create(null)}function M(e){return"number"==typeof e&&e%1==0&&isFinite(e)&&!Object.is(e,-0)}function K(e){return"[object Date]"===Object.prototype.toString.call(e)}function j(e){return e&&"object"==typeof e&&!K(e)&&!Array.isArray(e)}function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function B(e,...t){return t.reduce(((e,t)=>t(e)),e)}function P(e){if(j(e)){return`{${Object.keys(e).sort().map((t=>`${JSON.stringify(t)}:${P(e[t])}`)).join(",")}}`}return Array.isArray(e)?`[${e.map(P).join(",")}]`:JSON.stringify(e)}function Z(e,t){const n=e.length,r=t.length;e.length=n+r;for(let l=0;l<r;l++)e[n+l]=t[l]}const W=/\r\n/g,z=/\n/g,V=/^(\r\n|\n)/,q=/(?<!\\)(?:\\\\)*(\\\s*[\n\r\n]\s*)/g;function H(e){return e.startsWith("'''")?B(J(e,3),G):e.startsWith(I)?J(e,1):e.startsWith('"""')?B(J(e,3),G,X,Q,R,Y):e.startsWith(k)?B(J(e,1),Y):e}function R(e){let t="",n=0;for(let r=0;r<e.length;r++){const l=e[r];t+='"'===l&&n%2==0?'\\"':l,"\\"===l?n++:n=0}return t}function Y(e){const t=e.replace(/\\U[a-fA-F0-9]{8}/g,(e=>{const t=parseInt(e.replace("\\U",""),16),n=String.fromCodePoint(t);return J(JSON.stringify(n),1)})),n=t.replace(/\t/g,"\\t");return JSON.parse(`"${n}"`)}function J(e,t){return e.slice(t,e.length-t)}function G(e){return e.replace(V,"")}function Q(e){return e.replace(W,"\\r\\n").replace(z,"\\n")}function X(e){return e.replace(q,((e,t)=>e.replace(t,"")))}class ee{static createDateWithOriginalFormat(e,t){if(ee.IS_DATE_ONLY.test(t)){if(0!==e.getUTCHours()||0!==e.getUTCMinutes()||0!==e.getUTCSeconds()||0!==e.getUTCMilliseconds()){if(e instanceof le)return e;let t=e.toISOString().replace("Z","");return t=t.replace(/\.000$/,""),new re(t,!1)}const t=e.toISOString().split("T")[0];return new te(t)}if(ee.IS_TIME_ONLY.test(t)){if(e instanceof ne)return e;{const n=t.match(/\.(\d+)\s*$/),r=e.toISOString();if(r&&r.includes("T")){let l=r.split("T")[1].split("Z")[0];if(n){const t=n[1].length,[r,o,i]=l.split(":"),[a]=i.split(".");l=`${r}:${o}:${a}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new ne(l,t)}{const r=String(e.getUTCHours()).padStart(2,"0"),l=String(e.getUTCMinutes()).padStart(2,"0"),o=String(e.getUTCSeconds()).padStart(2,"0"),i=e.getUTCMilliseconds();let a;if(n){const e=n[1].length;a=`${r}:${l}:${o}.${String(i).padStart(3,"0").slice(0,e)}`}else if(i>0){a=`${r}:${l}:${o}.${String(i).padStart(3,"0").replace(/0+$/,"")}`}else a=`${r}:${l}:${o}`;return new ne(a,t)}}}if(ee.IS_LOCAL_DATETIME_T.test(t)){const n=t.match(/\.(\d+)\s*$/);let r=e.toISOString().replace("Z","");if(n){const t=n[1].length,[l,o]=r.split("T"),[i,a,s]=o.split(":"),[c]=s.split(".");r=`${l}T${i}:${a}:${c}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new re(r,!1,t)}if(ee.IS_LOCAL_DATETIME_SPACE.test(t)){const n=t.match(/\.(\d+)\s*$/);let r=e.toISOString().replace("Z","").replace("T"," ");if(n){const t=n[1].length,[l,o]=r.split(" "),[i,a,s]=o.split(":"),[c]=s.split(".");r=`${l} ${i}:${a}:${c}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new re(r,!0,t)}if(ee.IS_OFFSET_DATETIME_T.test(t)||ee.IS_OFFSET_DATETIME_SPACE.test(t)){const n=t.match(/([+-]\d{2}:\d{2}|[Zz])$/),r=n?"z"===n[1]?"Z":n[1]:"Z",l=ee.IS_OFFSET_DATETIME_SPACE.test(t),o=t.match(/\.(\d+)(?:[Zz]|[+-]\d{2}:\d{2})\s*$/),i=e.getTime();let a=0;if("Z"!==r){const e="+"===r[0]?1:-1,[t,n]=r.slice(1).split(":");a=e*(60*parseInt(t)+parseInt(n))}const s=new Date(i+6e4*a),c=s.getUTCFullYear(),u=String(s.getUTCMonth()+1).padStart(2,"0"),f=String(s.getUTCDate()).padStart(2,"0"),m=String(s.getUTCHours()).padStart(2,"0"),d=String(s.getUTCMinutes()).padStart(2,"0"),p=String(s.getUTCSeconds()).padStart(2,"0"),y=s.getUTCMilliseconds(),h=l?" ":"T";let g=`${m}:${d}:${p}`;if(o){const e=o[1].length;g+=`.${String(y).padStart(3,"0").slice(0,e)}`}else if(y>0){g+=`.${String(y).padStart(3,"0").replace(/0+$/,"")}`}return new le(`${c}-${u}-${f}${h}${g}${r}`,l)}return e}}ee.IS_DATE_ONLY=/^\d{4}-\d{2}-\d{2}$/,ee.IS_TIME_ONLY=/^\d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_LOCAL_DATETIME_T=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_LOCAL_DATETIME_SPACE=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_OFFSET_DATETIME_T=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})$/,ee.IS_OFFSET_DATETIME_SPACE=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})$/,ee.IS_FULL_DATE=/(\d{4})-(\d{2})-(\d{2})/,ee.IS_FULL_TIME=/(\d{2}):(\d{2}):(\d{2})/;class te extends Date{constructor(e){super(e)}toISOString(){return`${this.getUTCFullYear()}-${String(this.getUTCMonth()+1).padStart(2,"0")}-${String(this.getUTCDate()).padStart(2,"0")}`}}class ne extends Date{constructor(e,t){super(`1970-01-01T${e}`),this.originalFormat=t}toISOString(){const e=String(this.getUTCHours()).padStart(2,"0"),t=String(this.getUTCMinutes()).padStart(2,"0"),n=String(this.getUTCSeconds()).padStart(2,"0"),r=this.getUTCMilliseconds();if(this.originalFormat&&this.originalFormat.includes(".")){const l=this.originalFormat.match(/\.(\d+)\s*$/),o=l?l[1].length:3;return`${e}:${t}:${n}.${String(r).padStart(3,"0").slice(0,o)}`}if(r>0){return`${e}:${t}:${n}.${String(r).padStart(3,"0").replace(/0+$/,"")}`}return`${e}:${t}:${n}`}}class re extends Date{constructor(e,t=!1,n){super(e.replace(" ","T")+"Z"),this.useSpaceSeparator=!1,this.useSpaceSeparator=t,this.originalFormat=n||e}toISOString(){const e=this.getUTCFullYear(),t=String(this.getUTCMonth()+1).padStart(2,"0"),n=String(this.getUTCDate()).padStart(2,"0"),r=String(this.getUTCHours()).padStart(2,"0"),l=String(this.getUTCMinutes()).padStart(2,"0"),o=String(this.getUTCSeconds()).padStart(2,"0"),i=this.getUTCMilliseconds(),a=`${e}-${t}-${n}`,s=this.useSpaceSeparator?" ":"T";if(this.originalFormat&&this.originalFormat.includes(".")){const e=this.originalFormat.match(/\.(\d+)\s*$/),t=e?e[1].length:3;return`${a}${s}${r}:${l}:${o}.${String(i).padStart(3,"0").slice(0,t)}`}if(i>0){return`${a}${s}${r}:${l}:${o}.${String(i).padStart(3,"0").replace(/0+$/,"")}`}return`${a}${s}${r}:${l}:${o}`}}class le extends Date{constructor(e,t=!1){super(e.replace(" ","T")),this.useSpaceSeparator=!1,this.useSpaceSeparator=t,this.originalFormat=e;const n=e.match(/([+-]\d{2}:\d{2}|[Zz])$/);n&&(this.originalOffset="z"===n[1]?"Z":n[1])}toISOString(){if(this.originalOffset){const e=this.getTime();let t=0;if("Z"!==this.originalOffset){const e="+"===this.originalOffset[0]?1:-1,[n,r]=this.originalOffset.slice(1).split(":");t=e*(60*parseInt(n)+parseInt(r))}const n=new Date(e+6e4*t),r=n.getUTCFullYear(),l=String(n.getUTCMonth()+1).padStart(2,"0"),o=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),s=String(n.getUTCSeconds()).padStart(2,"0"),c=n.getUTCMilliseconds(),u=`${r}-${l}-${o}`,f=this.useSpaceSeparator?" ":"T";if(this.originalFormat&&this.originalFormat.includes(".")){const e=this.originalFormat.match(/\.(\d+)(?:[Zz]|[+-]\d{2}:\d{2})\s*$/),t=e?e[1].length:3;return`${u}${f}${i}:${a}:${s}.${String(c).padStart(3,"0").slice(0,t)}${this.originalOffset}`}if(c>0){return`${u}${f}${i}:${a}:${s}.${String(c).padStart(3,"0").replace(/0+$/,"")}${this.originalOffset}`}return`${u}${f}${i}:${a}:${s}${this.originalOffset}`}const e=super.toISOString();return this.useSpaceSeparator?e.replace("T"," "):e}}const oe=ee,ie="true",ae=/e/i,se=/\_/g,ce=/inf/,ue=/nan/,fe=/^0x/,me=/^0o/,de=/^0b/;function*pe(e){const t=A(e),n=new p(t);for(;!n.next().done;)yield*ye(n,e)}function*ye(e,r){if(e.value.type===n.Comment)yield ge(e);else if(e.value.type===n.Bracket)yield function(e,r){const l=e.peek().done||e.peek().value.type!==n.Bracket?t.Table:t.TableArray,o=l===t.Table;if(o&&"["!==e.value.raw)throw new T(r,e.value.loc.start,`Expected table opening "[", found ${e.value.raw}`);if(!o&&("["!==e.value.raw||"["!==e.peek().value.raw))throw new T(r,e.value.loc.start,`Expected array of tables opening "[[", found ${e.value.raw+e.peek().value.raw}`);const i=o?{type:t.TableKey,loc:e.value.loc}:{type:t.TableArrayKey,loc:e.value.loc};e.next(),l===t.TableArray&&e.next();if(e.done)throw new T(r,i.loc.start,"Expected table key, reached end of file");i.item={type:t.Key,loc:S(e.value.loc),raw:e.value.raw,value:[H(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(H(e.value.raw))}if(e.next(),o&&(e.done||"]"!==e.value.raw))throw new T(r,e.done?i.item.loc.end:e.value.loc.start,`Expected table closing "]", found ${e.done?"end of file":e.value.raw}`);if(!o&&(e.done||e.peek().done||"]"!==e.value.raw||"]"!==e.peek().value.raw))throw new T(r,e.done||e.peek().done?i.item.loc.end:e.value.loc.start,`Expected array of tables closing "]]", found ${e.done||e.peek().done?"end of file":e.value.raw+e.peek().value.raw}`);o||e.next();i.loc.end=e.value.loc.end;let a=[];for(;!e.peek().done&&e.peek().value.type!==n.Bracket;)e.next(),Z(a,[...ye(e,r)]);return{type:o?t.Table:t.TableArray,loc:{start:w(i.loc.start),end:a.length?w(a[a.length-1].loc.end):w(i.loc.end)},key:i,items:a}}(e,r);else{if(e.value.type!==n.Literal)throw new T(r,e.value.loc.start,`Unexpected token "${e.value.type}". Expected Comment, Bracket, or String`);yield*function(e,r){const l={type:t.Key,loc:S(e.value.loc),raw:e.value.raw,value:[H(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(H(e.value.raw));if(e.next(),e.done||e.value.type!==n.Equal)throw new T(r,e.done?l.loc.end:e.value.loc.start,`Expected "=" for key-value, found ${e.done?"end of file":e.value.raw}`);const o=e.value.loc.start.column;if(e.next(),e.done)throw new T(r,l.loc.start,"Expected value for key-value, reached end of file");const[i,...a]=he(e,r);return[{type:t.KeyValue,key:l,value:i,loc:{start:w(l.loc.start),end:w(i.loc.end)},equals:o},...a]}(e,r)}}function*he(e,r){if(e.value.type===n.Literal)e.value.raw[0]===k||e.value.raw[0]===I?yield function(e){return{type:t.String,loc:e.value.loc,raw:e.value.raw,value:H(e.value.raw)}}(e):e.value.raw===ie||"false"===e.value.raw?yield function(e){return{type:t.Boolean,loc:e.value.loc,value:e.value.raw===ie}}(e):oe.IS_FULL_DATE.test(e.value.raw)||oe.IS_FULL_TIME.test(e.value.raw)?yield function(e,r){let l,o=e.value.loc,i=e.value.raw;if(!e.peek().done&&e.peek().value.type===n.Literal&&oe.IS_FULL_DATE.test(i)&&oe.IS_FULL_TIME.test(e.peek().value.raw)){const t=o.start;e.next(),o={start:t,end:e.value.loc.end},i+=` ${e.value.raw}`}if(!e.peek().done&&e.peek().value.type===n.Dot){const t=o.start;if(e.next(),e.peek().done||e.peek().value.type!==n.Literal)throw new T(r,e.value.loc.end,"Expected fractional value for DateTime");e.next(),o={start:t,end:e.value.loc.end},i+=`.${e.value.raw}`}if(oe.IS_FULL_DATE.test(i))l=oe.IS_DATE_ONLY.test(i)?new te(i):oe.IS_LOCAL_DATETIME_T.test(i)?new re(i,!1):oe.IS_LOCAL_DATETIME_SPACE.test(i)?new re(i,!0):oe.IS_OFFSET_DATETIME_T.test(i)?new le(i,!1):oe.IS_OFFSET_DATETIME_SPACE.test(i)?new le(i,!0):new Date(i.replace(" ","T"));else if(oe.IS_TIME_ONLY.test(i))l=new ne(i,i);else{const[e]=(new Date).toISOString().split("T");l=new Date(`${e}T${i}`)}return{type:t.DateTime,loc:o,raw:i,value:l}}(e,r):!e.peek().done&&e.peek().value.type===n.Dot||ce.test(e.value.raw)||ue.test(e.value.raw)||ae.test(e.value.raw)&&!fe.test(e.value.raw)?yield function(e,r){let l,o=e.value.loc,i=e.value.raw;if(ce.test(i))l="-inf"===i?-1/0:1/0;else if(ue.test(i))l=NaN;else if(e.peek().done||e.peek().value.type!==n.Dot)l=Number(i.replace(se,""));else{const t=o.start;if(e.next(),e.peek().done||e.peek().value.type!==n.Literal)throw new T(r,e.value.loc.end,"Expected fraction value for Float");e.next(),i+=`.${e.value.raw}`,o={start:t,end:e.value.loc.end},l=Number(i.replace(se,""))}return{type:t.Float,loc:o,raw:i,value:l}}(e,r):yield function(e){if("-0"===e.value.raw||"+0"===e.value.raw)return{type:t.Integer,loc:e.value.loc,raw:e.value.raw,value:0};let n=10;fe.test(e.value.raw)?n=16:me.test(e.value.raw)?n=8:de.test(e.value.raw)&&(n=2);const r=parseInt(e.value.raw.replace(se,"").replace(me,"").replace(de,""),n);return{type:t.Integer,loc:e.value.loc,raw:e.value.raw,value:r}}(e);else if(e.value.type===n.Curly)yield function(e,r){if("{"!==e.value.raw)throw new T(r,e.value.loc.start,`Expected "{" for inline table, found ${e.value.raw}`);const l={type:t.InlineTable,loc:S(e.value.loc),items:[]};e.next();for(;!e.done&&(e.value.type!==n.Curly||"}"!==e.value.raw);){if(e.value.type===n.Comma){const t=l.items[l.items.length-1];if(!t)throw new T(r,e.value.loc.start,'Found "," without previous value in inline table');t.comma=!0,t.loc.end=e.value.loc.start,e.next();continue}const[o]=ye(e,r);if(o.type!==t.KeyValue)throw new T(r,e.value.loc.start,`Only key-values are supported in inline tables, found ${o.type}`);const i={type:t.InlineItem,loc:S(o.loc),item:o,comma:!1};l.items.push(i),e.next()}if(e.done||e.value.type!==n.Curly||"}"!==e.value.raw)throw new T(r,e.done?l.loc.start:e.value.loc.start,`Expected "}", found ${e.done?"end of file":e.value.raw}`);return l.loc.end=e.value.loc.end,l}(e,r);else{if(e.value.type!==n.Bracket)throw new T(r,e.value.loc.start,`Unrecognized token type "${e.value.type}". Expected String, Curly, or Bracket`);{const[l,o]=function(e,r){if("["!==e.value.raw)throw new T(r,e.value.loc.start,`Expected "[" for inline array, found ${e.value.raw}`);const l={type:t.InlineArray,loc:S(e.value.loc),items:[]};let o=[];e.next();for(;!e.done&&(e.value.type!==n.Bracket||"]"!==e.value.raw);){if(e.value.type===n.Comma){const t=l.items[l.items.length-1];if(!t)throw new T(r,e.value.loc.start,'Found "," without previous value for inline array');t.comma=!0,t.loc.end=e.value.loc.start}else if(e.value.type===n.Comment)o.push(ge(e));else{const[n,...i]=he(e,r),a={type:t.InlineItem,loc:S(n.loc),item:n,comma:!1};l.items.push(a),Z(o,i)}e.next()}if(e.done||e.value.type!==n.Bracket||"]"!==e.value.raw)throw new T(r,e.done?l.loc.start:e.value.loc.start,`Expected "]", found ${e.done?"end of file":e.value.raw}`);return l.loc.end=e.value.loc.end,[l,o]}(e,r);yield l,yield*o}}}function ge(e){return{type:t.Comment,loc:e.value.loc,raw:e.value.raw}}function ve(e,n){var r;function l(e,t){for(const n of e)o(n,t)}function o(e,r){const i=n[e.type];switch(i&&"function"==typeof i&&i(e,r),i&&i.enter&&i.enter(e,r),e.type){case t.Document:l(e.items,e);break;case t.Table:o(e.key,e),l(e.items,e);break;case t.TableKey:o(e.item,e);break;case t.TableArray:o(e.key,e),l(e.items,e);break;case t.TableArrayKey:o(e.item,e);break;case t.KeyValue:o(e.key,e),o(e.value,e);break;case t.InlineArray:l(e.items,e);break;case t.InlineItem:o(e.item,e);break;case t.InlineTable:l(e.items,e);break;case t.Key:case t.String:case t.Integer:case t.Float:case t.Boolean:case t.DateTime:case t.Comment:break;default:throw new Error(`Unrecognized node type "${e.type}"`)}i&&i.exit&&i.exit(e,r)}null!=(r=e)&&"function"==typeof r[Symbol.iterator]?l(e,null):o(e,null)}const we=ee,Se=new WeakMap,Te=e=>(Se.has(e)||Se.set(e,new WeakMap),Se.get(e)),be=new WeakMap,$e=e=>(be.has(e)||be.set(e,new WeakMap),be.get(e));function ke(e,t,n,r){if(a(n)&&a(r)){const e=n.raw,t=r.value,l=we.createDateWithOriginalFormat(t,e);r.value=l,r.raw=l.toISOString();0!==r.raw.length-e.length&&(r.loc.end.column=r.loc.start.column+r.raw.length)}if(m(t)){const e=t.items.indexOf(n);if(e<0)throw new Error("Could not find existing item in parent node for replace");t.items.splice(e,1,r)}else if(i(t)&&u(t.value)&&!u(n)){const e=t.value.items.indexOf(n);if(e<0)throw new Error("Could not find existing item in parent node for replace");t.value.items.splice(e,1,r)}else if(d(t))t.item=r;else{if(!i(t))throw new Error(`Unsupported parent type "${t.type}" for replace`);t.key===n?t.key=r:t.value=r}_e(r,{lines:n.loc.start.line-r.loc.start.line,columns:n.loc.start.column-r.loc.start.column});const l=h(n.loc),o=h(r.loc);De({lines:o.lines-l.lines,columns:o.columns-l.columns},$e(e),r,n)}function Ie(e,t,n,a,d){if(!m(t))throw new Error(`Unsupported parent type "${t.type}" for insert`);let p,y;a=null!=a&&"number"==typeof a?a:t.items.length,s(t)||u(t)?({shift:p,offset:y}=function(e,t,n){if(!c(t))throw new Error(`Incompatible child type "${t.type}"`);const r=null!=n?e.items[n-1]:F(e.items),l=null==n||n===e.items.length;e.items.splice(n,0,t);const o=!!r,i=!l;o&&(r.comma=!0);i&&(t.comma=!0);const a=s(e)&&function(e){if(!e.items.length)return!1;return h(e.loc).lines>e.items.length}(e),u=l&&!0===t.comma;return Ee(e,t,n,{useNewLine:a,hasCommaHandling:!0,isLastElement:l,hasSeparatingCommaBefore:o,hasSeparatingCommaAfter:i,hasTrailingComma:u})}(t,n,a)):d&&r(t)?({shift:p,offset:y}=function(e,t,n){const r=Ee(e,t,n,{useNewLine:!1,hasCommaHandling:!1});return e.items.splice(n,0,t),r}(t,n,a)):({shift:p,offset:y}=function(e,t,n){if(a=t,!(i(a)||l(a)||o(a)||f(a)))throw new Error(`Incompatible child type "${t.type}"`);var a;const s=e.items[n-1],c=r(e)&&!e.items.length;e.items.splice(n,0,t);const u=s?{line:s.loc.end.line,column:f(s)?e.loc.start.column:s.loc.start.column}:w(e.loc.start),m=l(t)||o(t);let d=0;c||(d=m?2:1);u.line+=d;const p={lines:u.line-t.loc.start.line,columns:u.column-t.loc.start.column},y=h(t.loc),g={lines:y.lines+(d-1),columns:y.columns};return{shift:p,offset:g}}(t,n,a)),_e(n,p);const g=t.items[a-1],v=g&&$e(e).get(g);v&&(y.lines+=v.lines,y.columns+=v.columns,$e(e).delete(g));$e(e).set(n,y)}function Ee(e,t,n,r={}){const{useNewLine:l=!1,skipCommaSpace:o=2,skipBracketSpace:i=1,hasCommaHandling:a=!1,isLastElement:s=!1,hasSeparatingCommaBefore:c=!1,hasSeparatingCommaAfter:u=!1,hasTrailingComma:m=!1}=r,d=n>0?e.items[n-1]:void 0,p=d?{line:d.loc.end.line,column:l?f(d)?e.loc.start.column:d.loc.start.column:d.loc.end.column}:w(e.loc.start);let y=0;if(l)y=1;else{const e=c||!a&&!!d;e&&a?p.column+=o:(e||a&&!d)&&(p.column+=i)}p.line+=y;const g={lines:p.line-t.loc.start.line,columns:p.column-t.loc.start.column},v=h(t.loc);if(!a){return{shift:g,offset:{lines:v.lines+(y-1),columns:v.columns}}}let S=0;c&&m&&!u&&s&&(S=-1);return{shift:g,offset:{lines:v.lines+(y-1),columns:v.columns+(c||u?o:0)+(m?1+S:0)}}}function Ae(e,t,n){if(!m(t))throw new Error(`Unsupported parent type "${t.type}" for remove`);let r=t.items.indexOf(n);if(r<0){if(r=t.items.findIndex((e=>d(e)&&e.item===n)),r<0)throw new Error("Could not find node in parent for removal");n=t.items[r]}const l=t.items[r-1];let o=t.items[r+1];t.items.splice(r,1);let i=h(n.loc);o&&f(o)&&o.loc.start.line===n.loc.end.line&&(i=h({start:n.loc.start,end:o.loc.end}),o=t.items[r+1],t.items.splice(r,1));const a=l&&c(l)||o&&c(o),s=l&&l.loc.end.line===n.loc.start.line,u=o&&o.loc.start.line===n.loc.end.line,p=a&&(s||u),y={lines:-(i.lines-(p?1:0)),columns:-i.columns};if(void 0===l&&void 0===o&&(y.lines=0,y.columns=0),a&&s&&(y.columns-=2),a&&!l&&o&&(y.columns-=2),a&&l&&!o){const e=n.comma;l.comma=!!e}const g=l||t,v=l?$e(e):Te(e),w=$e(e),S=v.get(g);S&&(y.lines+=S.lines,y.columns+=S.columns);const T=w.get(n);T&&(y.lines+=T.lines,y.columns+=T.columns),v.set(g,y)}function xe(e,t,n=!0){if(!n)return;if(!t.items.length)return;De({lines:0,columns:1},Te(e),t);const r=F(t.items);De({lines:0,columns:1},$e(e),r)}function Ce(e,t,n=!1){if(!n)return;if(!t.items.length)return;const r=F(t.items);r.comma=!0,De({lines:0,columns:1},$e(e),r)}function Oe(e){const n=Te(e),r=$e(e),l={lines:0,columns:{}};function o(e){const t=l.lines;e.loc.start.line+=t;const r=l.columns[e.loc.start.line]||0;e.loc.start.column+=r;const o=n.get(e);o&&(l.lines+=o.lines,l.columns[e.loc.start.line]=(l.columns[e.loc.start.line]||0)+o.columns)}function i(e){const t=l.lines;e.loc.end.line+=t;const n=l.columns[e.loc.end.line]||0;e.loc.end.column+=n;const o=r.get(e);o&&(l.lines+=o.lines,l.columns[e.loc.end.line]=(l.columns[e.loc.end.line]||0)+o.columns)}const a={enter:o,exit:i};ve(e,{[t.Document]:a,[t.Table]:a,[t.TableArray]:a,[t.InlineTable]:a,[t.InlineArray]:a,[t.InlineItem]:a,[t.TableKey]:a,[t.TableArrayKey]:a,[t.KeyValue]:{enter(e){const t=e.loc.start.line+l.lines,n=r.get(e.key);e.equals+=(l.columns[t]||0)+(n?n.columns:0),o(e)},exit:i},[t.Key]:a,[t.String]:a,[t.Integer]:a,[t.Float]:a,[t.Boolean]:a,[t.DateTime]:a,[t.Comment]:a}),Se.delete(e),be.delete(e)}function _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 ve(e,{[t.Table]:s,[t.TableKey]:s,[t.TableArray]:s,[t.TableArrayKey]:s,[t.KeyValue](e){s(e),e.equals+=a},[t.Key]:s,[t.String]:s,[t.Integer]:s,[t.Float]:s,[t.Boolean]:s,[t.DateTime]:s,[t.InlineArray]:s,[t.InlineItem]:s,[t.InlineTable]:s,[t.Comment]:s}),e}function De(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 Fe(e){const n=function(e){const n=je(e);return{type:t.TableKey,loc:{start:{line:1,column:0},end:{line:1,column:n.length+2}},item:{type:t.Key,loc:{start:{line:1,column:1},end:{line:1,column:n.length+1}},value:e,raw:n}}}(e);return{type:t.Table,loc:S(n.loc),key:n,items:[]}}function Ue(e){const n=function(e){const n=je(e);return{type:t.TableArrayKey,loc:{start:{line:1,column:0},end:{line:1,column:n.length+4}},item:{type:t.Key,loc:{start:{line:1,column:2},end:{line:1,column:n.length+2}},value:e,raw:n}}}(e);return{type:t.TableArray,loc:S(n.loc),key:n,items:[]}}function Me(e,n){const r=function(e){const n=je(e);return{type:t.Key,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e),{column:l}=r.loc.end,o=l+1;return _e(n,{lines:0,columns:l+3-n.loc.start.column},{first_line_only:!0}),{type:t.KeyValue,loc:{start:w(r.loc.start),end:w(n.loc.end)},key:r,equals:o,value:n}}const Ke=/^[\w-]+$/;function je(e){return e.map((e=>Ke.test(e)?e:JSON.stringify(e))).join(".")}function Ne(e){return{type:t.InlineItem,loc:S(e.loc),item:e,comma:!1}}const Be=!1,Pe=!0;function Ze(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=Ze(n,t);if(null!==e)return e;if(n.item){const e=Ze(n.item,t);if(null!==e)return e}}for(const n of["value","key","item"])if(e[n]){const r=Ze(e[n],t);if(null!==r)return r}return null}function We(e){if(!e||"object"!=typeof e)return null;if("InlineArray"===e.type&&e.items&&Array.isArray(e.items))return ze(e.items);if("InlineTable"===e.type&&e.items&&Array.isArray(e.items))return ze(e.items);if("KeyValue"===e.type&&e.value)return We(e.value);if(e.items&&Array.isArray(e.items))for(const t of e.items){const e=We(t);if(null!==e)return e}return null}function ze(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 Ve(e){if(!s(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function qe(e){if(!u(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function He(e){const t=e.indexOf("\n");return t>0&&"\r"===e.substring(t-1,t)?"\r\n":"\n"}function Re(e,t){var n,r,l,o;if(e){if(e instanceof Ye)return e;{const i=function(e){if(!e||"object"!=typeof e)return{};const t=new Set(["newLine","trailingNewline","trailingComma","bracketSpacing","inlineTableStart"]),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":"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 Ye(null!==(n=i.newLine)&&void 0!==n?n:t.newLine,null!==(r=i.trailingNewline)&&void 0!==r?r:t.trailingNewline,null!==(l=i.trailingComma)&&void 0!==l?l:t.trailingComma,null!==(o=i.bracketSpacing)&&void 0!==o?o:t.bracketSpacing,void 0!==i.inlineTableStart?i.inlineTableStart:t.inlineTableStart)}}return t}class Ye{constructor(e,t,n,r,l){this.newLine=null!=e?e:"\n",this.trailingNewline=null!=t?t:1,this.trailingComma=null!=n?n:Be,this.bracketSpacing=null!=r?r:Pe,this.inlineTableStart=null!=l?l:1}static default(){return new Ye("\n",1,Be,Pe,1)}static autoDetectFormat(e){const t=Ye.default();t.newLine=He(e),t.trailingNewline=function(e,t){let n=0,r=e.length;for(;r>=t.length&&e.substring(r-t.length,r)===t;)n++,r-=t.length;return n}(e,t.newLine);try{const n=pe(e),r=Array.from(n);t.trailingComma=function(e){const t=Array.from(e);for(const e of t){const t=We(e);if(null!==t)return t}return Be}(r),t.bracketSpacing=function(e,t){const n=Array.from(t);for(const t of n){const n=Ze(t,e);if(null!==n)return n}return Pe}(e,r)}catch(e){t.trailingComma=Be,t.bracketSpacing=Pe}return t.inlineTableStart=1,t}}function Je(e,t){if(0===t.inlineTableStart)return e;return e.items.filter((e=>{if(!i(e))return!1;const n=u(e.value),r=s(e.value)&&e.value.items.length&&u(e.value.items[0].item);if(n||r){const n=Xe(e.key.value);return void 0===t.inlineTableStart||n<t.inlineTableStart}return!1})).forEach((t=>{Ae(e,e,t),u(t.value)?Ie(e,e,Ge(t)):function(e){const t=Le();for(const n of e.value.items){const r=Ue(e.key.value);Ie(t,t,r);for(const e of n.item.items)Ie(t,r,e.item)}return Oe(t),t.items}(t).forEach((t=>{Ie(e,e,t)}))})),Oe(e),e}function Ge(e){const t=Fe(e.key.value);for(const n of e.value.items)Ie(t,t,n.item);return Oe(t),t}function Qe(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 Xe(e){return Math.max(0,e.length-1)}function et(e,t,n){var r;for(let l=e.items.length-1;l>=0;l--){const o=e.items[l];if(i(o)&&u(o.value)){const l=[...e.key.item.value,...o.key.value];if(Xe(l)<(null!==(r=n.inlineTableStart)&&void 0!==r?r:1)){const r=Fe(l);for(const e of o.value.items)Ie(r,r,e.item);Ae(e,e,o),Qe(e),t.push(r),et(r,t,n)}}}}function tt(e,t=Ye.default()){e=function(e){const t=[],n=[];for(const r in e)j(e[r])||Array.isArray(e[r])?n.push(r):t.push(r);const r={};for(let n=0;n<t.length;n++){const l=t[n];r[l]=e[l]}for(let t=0;t<n.length;t++){const l=n[t];r[l]=e[l]}return r}(e=lt(e));const n=Le();for(const r of nt(e,t))Ie(n,n,r);Oe(n);const r=B(n,(e=>Je(e,t)),(e=>function(e,t){if(void 0===t.inlineTableStart||0===t.inlineTableStart)return e;const n=[];for(const r of e.items)if(i(r)&&u(r.value)){if(Xe(r.key.value)<t.inlineTableStart){const l=Ge(r);Ae(e,e,r),Ie(e,e,l),et(l,n,t)}}else"Table"===r.type&&et(r,n,t);for(const t of n)Ie(e,e,t);return Oe(e),e}(e,t)),(e=>function(e){return e}(e)));return function(e){let t=0,n=0;for(const r of e.items)0===n&&r.loc.start.line>1?t=1-r.loc.start.line:r.loc.start.line+t>n+2&&(t+=n+2-(r.loc.start.line+t)),_e(r,{lines:t,columns:0}),n=r.loc.end.line;return e}(r)}function*nt(e,t){for(const n of Object.keys(e))yield Me([n],rt(e[n],t))}function rt(e,n){if(null==e)throw new Error('"null" and "undefined" values are not supported');return function(e){return"string"==typeof e}(e)?function(e){const n=JSON.stringify(e);return{type:t.String,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):M(e)?function(e){const n=e.toString();return{type:t.Integer,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):function(e){return"number"==typeof e&&(!M(e)||!isFinite(e)||Object.is(e,-0))}(e)?function(e){let n;return n=e===1/0?"inf":e===-1/0?"-inf":Number.isNaN(e)?"nan":Object.is(e,-0)?"-0.0":e.toString(),{type:t.Float,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):function(e){return"boolean"==typeof e}(e)?function(e){return{type:t.Boolean,loc:{start:{line:1,column:0},end:{line:1,column:e?4:5}},value:e}}(e):K(e)?function(e){const n=e.toISOString();return{type:t.DateTime,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):Array.isArray(e)?function(e,n){const r={type:t.InlineArray,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]};for(const t of e){Ie(r,r,Ne(rt(t,n)))}return xe(r,r,n.bracketSpacing),Ce(r,r,n.trailingComma),Oe(r),r}(e,n):function(e,n){if(e=lt(e),!j(e))return rt(e,n);const r={type:t.InlineTable,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]},l=[...nt(e,n)];for(const e of l){Ie(r,r,Ne(e))}return xe(r,r,n.bracketSpacing),Ce(r,r,n.trailingComma),Oe(r),r}(e,n)}function lt(e){return e?K(e)?e:"function"==typeof e.toJSON?e.toJSON():e:e}const ot=/(\r\n|\n)/g;function it(e,n){const r=[];return ve(e,{[t.TableKey](e){const{start:t,end:n}=e.loc;at(r,{start:t,end:{line:t.line,column:t.column+1}},"["),at(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.TableArrayKey](e){const{start:t,end:n}=e.loc;at(r,{start:t,end:{line:t.line,column:t.column+2}},"[["),at(r,{start:{line:n.line,column:n.column-2},end:n},"]]")},[t.KeyValue](e){const{start:{line:t}}=e.loc;at(r,{start:{line:t,column:e.equals},end:{line:t,column:e.equals+1}},"=")},[t.Key](e){at(r,e.loc,e.raw)},[t.String](e){at(r,e.loc,e.raw)},[t.Integer](e){at(r,e.loc,e.raw)},[t.Float](e){at(r,e.loc,e.raw)},[t.Boolean](e){at(r,e.loc,e.value.toString())},[t.DateTime](e){at(r,e.loc,e.raw)},[t.InlineArray](e){const{start:t,end:n}=e.loc;at(r,{start:t,end:{line:t.line,column:t.column+1}},"["),at(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.InlineTable](e){const{start:t,end:n}=e.loc;at(r,{start:t,end:{line:t.line,column:t.column+1}},"{"),at(r,{start:{line:n.line,column:n.column-1},end:n},"}")},[t.InlineItem](e){if(!e.comma)return;const t=e.loc.end;at(r,{start:t,end:{line:t.line,column:t.column+1}},",")},[t.Comment](e){at(r,e.loc,e.raw)}}),r.join(n.newLine)+n.newLine.repeat(n.trailingNewline)}function at(e,t,n){const r=n.split(ot).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=st(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 st(e,t){if(!e[t-1])for(let n=0;n<t;n++)e[n]||(e[n]="");return e[t-1]}function ct(e,n=""){const r=U(),l=new Set,o=new Set,i=new Set;let a=r,s=0;return ve(e,{[t.Table](e){const t=e.key.item.value;try{ft(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const s=pt(t);l.add(s),i.add(s),a=mt(r,t)},[t.TableArray](e){const t=e.key.item.value;try{ft(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const s=pt(t);o.add(s),i.add(s),a=function(e,t){const n=dt(e,t.slice(0,-1)),r=F(t);n[r]||(n[r]=[]);const l=U();return n[F(t)].push(l),l}(r,t)},[t.KeyValue]:{enter(e){if(s>0)return;const t=e.key.value;try{ft(a,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const r=ut(e.value);(t.length>1?mt(a,t.slice(0,-1)):a)[F(t)]=r,i.add(pt(t))}},[t.InlineTable]:{enter(){s++},exit(){s--}}}),r}function ut(e){switch(e.type){case t.InlineTable:const n=U();return e.items.forEach((({item:e})=>{const t=e.key.value,r=ut(e.value);(t.length>1?mt(n,t.slice(0,-1)):n)[F(t)]=r})),n;case t.InlineArray:return e.items.map((e=>ut(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 ft(e,n,r,l){let o=[],i=0;for(const t of n){if(o.push(t),!N(e,t))return;if("object"!=typeof(a=e[t])&&!K(a))throw new Error(`Invalid key, a value has already been defined for ${o.join(".")}`);const r=pt(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?F(e[t]):e[t]}var a;const s=pt(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 mt(e,t){const n=dt(e,t.slice(0,-1)),r=F(t);return n[r]||(n[r]=U()),n[r]}function dt(e,t){return t.reduce(((e,t)=>(e[t]||(e[t]=U()),Array.isArray(e[t])?F(e[t]):e[t])),e)}function pt(e){return e.join(".")}var yt,ht,gt,vt;function wt(e){return e.type===yt.Remove}function St(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(P),o=t.map(P);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:yt.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 Z(r,St(e[a],t[a],n.concat(a))),void(l[a]=i);r.push({type:yt.Add,path:n.concat(a)}),l.splice(a,0,i)}));for(let e=o.length;e<l.length;e++)r.push({type:yt.Remove,path:n.concat(e)});return r}(e,t,n):j(e)&&j(t)?function(e,t,n=[]){let r=[];const l=Object.keys(e),o=l.map((t=>P(e[t]))),i=Object.keys(t),a=i.map((e=>P(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))Z(r,St(e[l],t[l],u));else if(s(o[c],a)){const e=i[a.indexOf(o[c])];r.push({type:yt.Rename,path:n,from:l,to:e})}else r.push({type:yt.Remove,path:u})})),i.forEach(((e,t)=>{l.includes(e)||s(a[t],o)||r.push({type:yt.Add,path:n.concat(e)})})),r}(e,t,n):[{type:yt.Edit,path:n}];var r,l}function Tt(e,t){if(!t.length)return c(e)&&i(e.item)?e.item:e;if(i(e))return Tt(e.value,t);const n={};let r;if(m(e)&&e.items.some(((e,a)=>{try{let s=[];if(i(e))s=e.key.value;else if(l(e))s=e.key.item.value;else if(o(e)){s=e.key.item.value;const t=P(s);n[t]||(n[t]=0);const r=n[t]++;s=s.concat(r)}else c(e)&&i(e.item)?s=e.item.key.value:c(e)&&(s=[a]);return!(!s.length||!function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(s,t.slice(0,s.length)))&&(r=Tt(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 bt(e,t){try{return Tt(e,t)}catch(e){}}function $t(e,t){let n,r=t;for(;r.length&&!n;)r=r.slice(0,-1),n=bt(e,r);if(!n)throw new Error(`Count not find parent node for path ${t.join(".")}`);return n}function kt(e,n,a){const f=[...e],m=ct(f),p={type:t.Document,loc:{start:{line:1,column:0},end:{line:1,column:0}},items:f},y=tt(n,Re(Object.assign(Object.assign({},a),{inlineTableStart:void 0}),a)),h=function(e){for(let t=0;t<e.length;t++){const n=e[t];if(wt(n)){let r=t+1;for(;r<e.length;){const l=e[r];if(wt(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}(St(m,n));if(0===h.length)return{tomlString:it(f,a),document:p};const g=function(e,t,n,a){return n.forEach((n=>{if(function(e){return e.type===yt.Add}(n)){const f=Tt(t,n.path),m=n.path.slice(0,-1);let d,p=F(n.path),y=o(f);if(M(p)&&!m.some(M)){const t=bt(e,m.concat(0));t&&o(t)&&(y=!0)}if(l(f))d=e;else if(y){d=e;const t=e,n=bt(t,m.concat(p-1)),r=bt(t,m.concat(p));p=r?t.items.indexOf(r):n?t.items.indexOf(n)+1:t.items.length}else d=$t(e,n.path),i(d)&&(d=d.value);if(o(d)||s(d)||r(d)){if(s(d)){const e=Ve(d);c(f)&&(f.comma=e)}if(void 0!==a.inlineTableStart&&a.inlineTableStart>0&&r(d)&&l(f)){const t=It(f,e,a);Ie(e,d,f,p);for(const n of t)Ie(e,e,n,void 0)}else Ie(e,d,f,p)}else if(u(d)){const t=qe(d);if(i(f)){const n=Ne(f);n.comma=t,Ie(e,d,n)}else Ie(e,d,f)}else if(void 0!==a.inlineTableStart&&a.inlineTableStart>0&&i(f)&&u(f.value)&&l(d)){Xe([...d.key.item.value,...f.key.value])<a.inlineTableStart?function(e,t,n,r){const l=t.key.item.value,o=[...l,...e.key.value],a=Fe(o);if(u(e.value))for(const t of e.value.items)c(t)&&i(t.item)&&Ie(n,a,t.item,void 0);Ie(n,n,a,void 0),Qe(t);const s=It(a,n,r);for(const e of s)Ie(n,n,e,void 0)}(f,d,e,a):Ie(e,d,f)}else 0===a.inlineTableStart&&i(f)&&u(f.value)&&r(d)?Ie(e,d,f,void 0,!0):Ie(e,d,f)}else if(function(e){return e.type===yt.Edit}(n)){let r,l=Tt(e,n.path),o=Tt(t,n.path);if(i(l)&&i(o)){if(s(l.value)&&s(o.value)){const e=Ve(l.value),t=o.value;if(t.items.length>0){t.items[t.items.length-1].comma=e}}if(u(l.value)&&u(o.value)){const e=qe(l.value),t=o.value;if(t.items.length>0){t.items[t.items.length-1].comma=e}}r=l,l=l.value,o=o.value}else if(i(l)&&c(o)&&i(o.item))r=l,l=l.value,o=o.item.value;else if(c(l)&&i(o))r=l,l=l.item;else if(r=$t(e,n.path),i(r)){const t=n.path.slice(0,-1),l=Tt(e,t);i(l)&&s(l.value)&&(r=l.value)}ke(e,r,l,o)}else if(wt(n)){let t=$t(e,n.path);i(t)&&(t=t.value);const r=Tt(e,n.path);Ae(e,t,r)}else if(function(e){return e.type===yt.Move}(n)){let t=Tt(e,n.path);d(t)&&(t=t.item),i(t)&&(t=t.value);const r=t.items[n.from];Ae(e,t,r),Ie(e,t,r,n.to)}else if(function(e){return e.type===yt.Rename}(n)){let r=Tt(e,n.path.concat(n.from)),l=Tt(t,n.path.concat(n.to));d(r)&&(r=r.item),d(l)&&(l=l.item),ke(e,r,r.key,l.key)}})),Oe(e),e}(p,y,h,a);return{tomlString:it(g.items,a),document:g}}function It(e,t,n){const r=[],l=(e,r)=>{var o;for(let a=e.items.length-1;a>=0;a--){const s=e.items[a];if(i(s)&&u(s.value)){const u=[...e.key.item.value,...s.key.value];if(Xe(u)<(null!==(o=n.inlineTableStart)&&void 0!==o?o:1)&&0!==n.inlineTableStart){const n=Fe(u);for(const e of s.value.items)c(e)&&i(e.item)&&Ie(t,n,e.item,void 0);e.items.splice(a,1),Qe(e),r.push(n),l(n,r)}}}};return l(e,r),r}function Et(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 At(e,t,n,r,l){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!l:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?l.call(e,n):l?l.value=n:t.set(e,n),n}function xt(e,t){return e.line!==t.line?e.line-t.line:e.column-t.column}!function(e){e.Add="Add",e.Edit="Edit",e.Remove="Remove",e.Move="Move",e.Rename="Rename"}(yt||(yt={})),"function"==typeof SuppressedError&&SuppressedError;function Ct(e){if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(Ct);if(e&&"object"==typeof e){const t={};for(const[n,r]of Object.entries(e))t[n]=Ct(r);return t}return e}ht=new WeakMap,gt=new WeakMap,vt=new WeakMap,e.TomlDocument=class{constructor(e){ht.set(this,void 0),gt.set(this,void 0),vt.set(this,void 0),At(this,gt,e,"f"),At(this,ht,Array.from(pe(e)),"f"),At(this,vt,Ye.autoDetectFormat(e),"f")}get toTomlString(){return Et(this,gt,"f")}get toJsObject(){return Ct(ct(Et(this,ht,"f")))}get ast(){return Et(this,ht,"f")}patch(e,t){const n=Re(t,Et(this,vt,"f")),{tomlString:r,document:l}=kt(Et(this,ht,"f"),e,n);At(this,ht,l.items,"f"),At(this,gt,r,"f")}update(e){if(e===this.toTomlString)return;const t=this.toTomlString.split(Et(this,vt,"f").newLine),n=He(e),r=e.split(n);let l=0;for(;l<t.length&&l<r.length&&t[l]===r[l];)l++;let o=0;if(l<t.length&&l<r.length){const e=t[l],n=r[l];for(let t=0;t<Math.max(e.length,n.length);t++)if(e[t]!==n[t]){o=t;break}}let i=l+1;const{truncatedAst:a,lastEndPosition:s}=function(e,t,n){const r={line:t,column:n},l=[];let o=null;for(const t of e){const e=xt(t.loc.end,r)<0,n=xt(t.loc.start,r)<0;if(!e){if(n&&!e)break;break}l.push(t),o=t.loc.end}return{truncatedAst:l,lastEndPosition:o}}(Et(this,ht,"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(Et(this,vt,"f").newLine);At(this,ht,Array.from(function*(e,t){for(const t of e)yield t;for(const e of pe(t))yield e}(a,m)),"f"),At(this,gt,e,"f"),At(this,vt,Ye.autoDetectFormat(e),"f")}overwrite(e){e!==this.toTomlString&&(At(this,ht,Array.from(pe(e)),"f"),At(this,gt,e,"f"),At(this,vt,Ye.autoDetectFormat(e),"f"))}},e.TomlFormat=Ye,e.parse=function(e){return ct(pe(e),e)},e.patch=function(e,t,n){return kt(pe(e),t,Re(n,Ye.autoDetectFormat(e))).tomlString},e.stringify=function(e,t){const n=Re(t,Ye.default());return it(tt(e,n).items,n)}}));
1
+ //! @decimalturn/toml-patch v0.5.0 - 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.DateTime}function s(e){return e.type===t.InlineArray}function c(e){return e.type===t.InlineItem}function u(e){return e.type===t.InlineTable}function f(e){return e.type===t.Comment}function m(e){return r(e)||l(e)||o(e)||u(e)||s(e)}function d(e){return function(e){return e.type===t.TableKey}(e)||function(e){return e.type===t.TableArrayKey}(e)||c(e)}!function(e){e.Document="Document",e.Table="Table",e.TableKey="TableKey",e.TableArray="TableArray",e.TableArrayKey="TableArrayKey",e.KeyValue="KeyValue",e.Key="Key",e.String="String",e.Integer="Integer",e.Float="Float",e.Boolean="Boolean",e.DateTime="DateTime",e.InlineArray="InlineArray",e.InlineItem="InlineItem",e.InlineTable="InlineTable",e.Comment="Comment"}(t||(t={}));class p{constructor(e){this.iterator=e,this.index=-1,this.value=void 0,this.done=!1,this.peeked=null}next(){var e;if(this.done)return y();const t=this.peeked||this.iterator.next();return this.index+=1,this.value=t.value,this.done=null!==(e=t.done)&&void 0!==e&&e,this.peeked=null,t}peek(){return this.done?y():(this.peeked||(this.peeked=this.iterator.next()),this.peeked)}[Symbol.iterator](){return this}}function y(){return{value:void 0,done:!0}}function h(e){return{lines:e.end.line-e.start.line+1,columns:e.end.column-e.start.column}}function g(e,t){const n=Array.isArray(e)?e:v(e),r=n.findIndex((e=>e>=t))+1;return{line:r,column:t-(n[r-2]+1||0)}}function v(e){const t=/\r\n|\n/g,n=[];let r;for(;null!=(r=t.exec(e));)n.push(r.index+r[0].length-1);return n.push(e.length+1),n}function w(e){return{line:e.line,column:e.column}}function S(e){return{start:w(e.start),end:w(e.end)}}class T extends Error{constructor(e,t,n){let r=`Error parsing TOML (${t.line}, ${t.column+1}):\n`;if(e){const n=function(e,t){const n=v(e),r=n[t.line-2]||0,l=n[t.line-1]||e.length;return e.substr(r,l-r)}(e,t),l=`${function(e,t=" "){return t.repeat(e)}(t.column)}^`;n&&(r+=`${n}\n${l}\n`)}r+=n,super(r),this.line=t.line,this.column=t.column}}!function(e){e.Bracket="Bracket",e.Curly="Curly",e.Equal="Equal",e.Comma="Comma",e.Dot="Dot",e.Comment="Comment",e.Literal="Literal"}(n||(n={}));const b=/\s/,$=/(\r\n|\n)/,k='"',I="'",E=/[\w,\d,\",\',\+,\-,\_]/;function*A(e){const t=new p(e[Symbol.iterator]());t.next();const r=function(e){const t=v(e);return(e,n)=>({start:g(t,e),end:g(t,n)})}(e);for(;!t.done;){if(b.test(t.value));else if("["===t.value||"]"===t.value)yield C(t,r,n.Bracket);else if("{"===t.value||"}"===t.value)yield C(t,r,n.Curly);else if("="===t.value)yield C(t,r,n.Equal);else if(","===t.value)yield C(t,r,n.Comma);else if("."===t.value)yield C(t,r,n.Dot);else if("#"===t.value)yield x(t,r);else{const n=_(e,t.index,I)||_(e,t.index,k);n?yield O(t,r,n,e):yield D(t,r,e)}t.next()}}function C(e,t,n){return{type:n,raw:e.value,loc:t(e.index,e.index+1)}}function x(e,t){const r=e.index;let l=e.value;for(;!e.peek().done&&!$.test(e.peek().value);)e.next(),l+=e.value;return{type:n.Comment,raw:l,loc:t(r,e.index+1)}}function O(e,t,r,l){const o=e.index;let i=r+r+r,a=i;for(e.next(),e.next(),e.next();!e.done&&(!_(l,e.index,r)||L(l,e.index,r));)a+=e.value,e.next();if(e.done)throw new T(l,g(l,e.index),`Expected close of multiline string with ${i}, reached end of file`);return a+=i,e.next(),e.next(),{type:n.Literal,raw:a,loc:t(o,e.index+1)}}function D(e,t,r){if(!E.test(e.value))throw new T(r,g(r,e.index),`Unsupported character "${e.value}". Expected ALPHANUMERIC, ", ', +, -, or _`);const l=e.index;let o=e.value,i=e.value===k,a=e.value===I;const s=e=>{if(e.peek().done)return!0;const t=e.peek().value;return!(i||a)&&(b.test(t)||","===t||"."===t||"]"===t||"}"===t||"="===t||"#"===t)};for(;!e.done&&!s(e)&&(e.next(),e.value===k&&(i=!i),e.value!==I||i||(a=!a),o+=e.value,!e.peek().done);){let t=e.peek().value;i&&"\\"===e.value&&(t===k?(o+=k,e.next()):"\\"===t&&(o+="\\",e.next()))}if(i||a)throw new T(r,g(r,l),`Expected close of string with ${i?k:I}`);return{type:n.Literal,raw:o,loc:t(l,e.index+1)}}function _(e,t,n){if(!n)return!1;if(!(e[t]===n&&e[t+1]===n&&e[t+2]===n))return!1;const r=e.slice(0,t).match(/\\+$/);if(!r)return n;return!(r[0].length%2!=0)&&n}function L(e,t,n){return!!n&&(e[t]===n&&e[t+1]===n&&e[t+2]===n&&e[t+3]===n)}function U(e){return e[e.length-1]}function F(){return Object.create(null)}function M(e){return"number"==typeof e&&e%1==0&&isFinite(e)&&!Object.is(e,-0)}function K(e){return"[object Date]"===Object.prototype.toString.call(e)}function j(e){return e&&"object"==typeof e&&!K(e)&&!Array.isArray(e)}function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function B(e,...t){return t.reduce(((e,t)=>t(e)),e)}function Z(e){if(j(e)){return`{${Object.keys(e).sort().map((t=>`${JSON.stringify(t)}:${Z(e[t])}`)).join(",")}}`}return Array.isArray(e)?`[${e.map(Z).join(",")}]`:JSON.stringify(e)}function P(e,t){const n=e.length,r=t.length;e.length=n+r;for(let l=0;l<r;l++)e[n+l]=t[l]}const W=/\r\n/g,z=/\n/g,V=/^(\r\n|\n)/,H=/(?<!\\)(?:\\\\)*(\\\s*[\n\r\n]\s*)/g;function q(e){return e.startsWith("'''")?B(J(e,3),G):e.startsWith(I)?J(e,1):e.startsWith('"""')?B(J(e,3),G,X,Q,R,Y):e.startsWith(k)?B(J(e,1),Y):e}function R(e){let t="",n=0;for(let r=0;r<e.length;r++){const l=e[r];t+='"'===l&&n%2==0?'\\"':l,"\\"===l?n++:n=0}return t}function Y(e){const t=e.replace(/\\U[a-fA-F0-9]{8}/g,(e=>{const t=parseInt(e.replace("\\U",""),16),n=String.fromCodePoint(t);return J(JSON.stringify(n),1)})),n=t.replace(/\t/g,"\\t");return JSON.parse(`"${n}"`)}function J(e,t){return e.slice(t,e.length-t)}function G(e){return e.replace(V,"")}function Q(e){return e.replace(W,"\\r\\n").replace(z,"\\n")}function X(e){return e.replace(H,((e,t)=>e.replace(t,"")))}class ee{static createDateWithOriginalFormat(e,t){if(ee.IS_DATE_ONLY.test(t)){if(0!==e.getUTCHours()||0!==e.getUTCMinutes()||0!==e.getUTCSeconds()||0!==e.getUTCMilliseconds()){if(e instanceof le)return e;let t=e.toISOString().replace("Z","");return t=t.replace(/\.000$/,""),new re(t,!1)}const t=e.toISOString().split("T")[0];return new te(t)}if(ee.IS_TIME_ONLY.test(t)){if(e instanceof ne)return e;{const n=t.match(/\.(\d+)\s*$/),r=e.toISOString();if(r&&r.includes("T")){let l=r.split("T")[1].split("Z")[0];if(n){const t=n[1].length,[r,o,i]=l.split(":"),[a]=i.split(".");l=`${r}:${o}:${a}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new ne(l,t)}{const r=String(e.getUTCHours()).padStart(2,"0"),l=String(e.getUTCMinutes()).padStart(2,"0"),o=String(e.getUTCSeconds()).padStart(2,"0"),i=e.getUTCMilliseconds();let a;if(n){const e=n[1].length;a=`${r}:${l}:${o}.${String(i).padStart(3,"0").slice(0,e)}`}else if(i>0){a=`${r}:${l}:${o}.${String(i).padStart(3,"0").replace(/0+$/,"")}`}else a=`${r}:${l}:${o}`;return new ne(a,t)}}}if(ee.IS_LOCAL_DATETIME_T.test(t)){const n=t.match(/\.(\d+)\s*$/);let r=e.toISOString().replace("Z","");if(n){const t=n[1].length,[l,o]=r.split("T"),[i,a,s]=o.split(":"),[c]=s.split(".");r=`${l}T${i}:${a}:${c}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new re(r,!1,t)}if(ee.IS_LOCAL_DATETIME_SPACE.test(t)){const n=t.match(/\.(\d+)\s*$/);let r=e.toISOString().replace("Z","").replace("T"," ");if(n){const t=n[1].length,[l,o]=r.split(" "),[i,a,s]=o.split(":"),[c]=s.split(".");r=`${l} ${i}:${a}:${c}.${String(e.getUTCMilliseconds()).padStart(3,"0").slice(0,t)}`}return new re(r,!0,t)}if(ee.IS_OFFSET_DATETIME_T.test(t)||ee.IS_OFFSET_DATETIME_SPACE.test(t)){const n=t.match(/([+-]\d{2}:\d{2}|[Zz])$/),r=n?"z"===n[1]?"Z":n[1]:"Z",l=ee.IS_OFFSET_DATETIME_SPACE.test(t),o=t.match(/\.(\d+)(?:[Zz]|[+-]\d{2}:\d{2})\s*$/),i=e.getTime();let a=0;if("Z"!==r){const e="+"===r[0]?1:-1,[t,n]=r.slice(1).split(":");a=e*(60*parseInt(t)+parseInt(n))}const s=new Date(i+6e4*a),c=s.getUTCFullYear(),u=String(s.getUTCMonth()+1).padStart(2,"0"),f=String(s.getUTCDate()).padStart(2,"0"),m=String(s.getUTCHours()).padStart(2,"0"),d=String(s.getUTCMinutes()).padStart(2,"0"),p=String(s.getUTCSeconds()).padStart(2,"0"),y=s.getUTCMilliseconds(),h=l?" ":"T";let g=`${m}:${d}:${p}`;if(o){const e=o[1].length;g+=`.${String(y).padStart(3,"0").slice(0,e)}`}else if(y>0){g+=`.${String(y).padStart(3,"0").replace(/0+$/,"")}`}return new le(`${c}-${u}-${f}${h}${g}${r}`,l)}return e}}ee.IS_DATE_ONLY=/^\d{4}-\d{2}-\d{2}$/,ee.IS_TIME_ONLY=/^\d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_LOCAL_DATETIME_T=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_LOCAL_DATETIME_SPACE=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?$/,ee.IS_OFFSET_DATETIME_T=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})$/,ee.IS_OFFSET_DATETIME_SPACE=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})$/,ee.IS_FULL_DATE=/(\d{4})-(\d{2})-(\d{2})/,ee.IS_FULL_TIME=/(\d{2}):(\d{2}):(\d{2})/;class te extends Date{constructor(e){super(e)}toISOString(){return`${this.getUTCFullYear()}-${String(this.getUTCMonth()+1).padStart(2,"0")}-${String(this.getUTCDate()).padStart(2,"0")}`}}class ne extends Date{constructor(e,t){super(`1970-01-01T${e}`),this.originalFormat=t}toISOString(){const e=String(this.getUTCHours()).padStart(2,"0"),t=String(this.getUTCMinutes()).padStart(2,"0"),n=String(this.getUTCSeconds()).padStart(2,"0"),r=this.getUTCMilliseconds();if(this.originalFormat&&this.originalFormat.includes(".")){const l=this.originalFormat.match(/\.(\d+)\s*$/),o=l?l[1].length:3;return`${e}:${t}:${n}.${String(r).padStart(3,"0").slice(0,o)}`}if(r>0){return`${e}:${t}:${n}.${String(r).padStart(3,"0").replace(/0+$/,"")}`}return`${e}:${t}:${n}`}}class re extends Date{constructor(e,t=!1,n){super(e.replace(" ","T")+"Z"),this.useSpaceSeparator=!1,this.useSpaceSeparator=t,this.originalFormat=n||e}toISOString(){const e=this.getUTCFullYear(),t=String(this.getUTCMonth()+1).padStart(2,"0"),n=String(this.getUTCDate()).padStart(2,"0"),r=String(this.getUTCHours()).padStart(2,"0"),l=String(this.getUTCMinutes()).padStart(2,"0"),o=String(this.getUTCSeconds()).padStart(2,"0"),i=this.getUTCMilliseconds(),a=`${e}-${t}-${n}`,s=this.useSpaceSeparator?" ":"T";if(this.originalFormat&&this.originalFormat.includes(".")){const e=this.originalFormat.match(/\.(\d+)\s*$/),t=e?e[1].length:3;return`${a}${s}${r}:${l}:${o}.${String(i).padStart(3,"0").slice(0,t)}`}if(i>0){return`${a}${s}${r}:${l}:${o}.${String(i).padStart(3,"0").replace(/0+$/,"")}`}return`${a}${s}${r}:${l}:${o}`}}class le extends Date{constructor(e,t=!1){super(e.replace(" ","T")),this.useSpaceSeparator=!1,this.useSpaceSeparator=t,this.originalFormat=e;const n=e.match(/([+-]\d{2}:\d{2}|[Zz])$/);n&&(this.originalOffset="z"===n[1]?"Z":n[1])}toISOString(){if(this.originalOffset){const e=this.getTime();let t=0;if("Z"!==this.originalOffset){const e="+"===this.originalOffset[0]?1:-1,[n,r]=this.originalOffset.slice(1).split(":");t=e*(60*parseInt(n)+parseInt(r))}const n=new Date(e+6e4*t),r=n.getUTCFullYear(),l=String(n.getUTCMonth()+1).padStart(2,"0"),o=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),s=String(n.getUTCSeconds()).padStart(2,"0"),c=n.getUTCMilliseconds(),u=`${r}-${l}-${o}`,f=this.useSpaceSeparator?" ":"T";if(this.originalFormat&&this.originalFormat.includes(".")){const e=this.originalFormat.match(/\.(\d+)(?:[Zz]|[+-]\d{2}:\d{2})\s*$/),t=e?e[1].length:3;return`${u}${f}${i}:${a}:${s}.${String(c).padStart(3,"0").slice(0,t)}${this.originalOffset}`}if(c>0){return`${u}${f}${i}:${a}:${s}.${String(c).padStart(3,"0").replace(/0+$/,"")}${this.originalOffset}`}return`${u}${f}${i}:${a}:${s}${this.originalOffset}`}const e=super.toISOString();return this.useSpaceSeparator?e.replace("T"," "):e}}const oe=ee,ie="true",ae=/e/i,se=/\_/g,ce=/inf/,ue=/nan/,fe=/^0x/,me=/^0o/,de=/^0b/;function*pe(e){const t=A(e),n=new p(t);for(;!n.next().done;)yield*ye(n,e)}function*ye(e,r){if(e.value.type===n.Comment)yield ge(e);else if(e.value.type===n.Bracket)yield function(e,r){const l=e.peek().done||e.peek().value.type!==n.Bracket?t.Table:t.TableArray,o=l===t.Table;if(o&&"["!==e.value.raw)throw new T(r,e.value.loc.start,`Expected table opening "[", found ${e.value.raw}`);if(!o&&("["!==e.value.raw||"["!==e.peek().value.raw))throw new T(r,e.value.loc.start,`Expected array of tables opening "[[", found ${e.value.raw+e.peek().value.raw}`);const i=o?{type:t.TableKey,loc:e.value.loc}:{type:t.TableArrayKey,loc:e.value.loc};e.next(),l===t.TableArray&&e.next();if(e.done)throw new T(r,i.loc.start,"Expected table key, reached end of file");i.item={type:t.Key,loc:S(e.value.loc),raw:e.value.raw,value:[q(e.value.raw)]};for(;!e.peek().done&&e.peek().value.type===n.Dot;){e.next();const t=e.value;e.next();const n=" ".repeat(t.loc.start.column-i.item.loc.end.column),r=" ".repeat(e.value.loc.start.column-t.loc.end.column);i.item.loc.end=e.value.loc.end,i.item.raw+=`${n}.${r}${e.value.raw}`,i.item.value.push(q(e.value.raw))}if(e.next(),o&&(e.done||"]"!==e.value.raw))throw new T(r,e.done?i.item.loc.end:e.value.loc.start,`Expected table closing "]", found ${e.done?"end of file":e.value.raw}`);if(!o&&(e.done||e.peek().done||"]"!==e.value.raw||"]"!==e.peek().value.raw))throw new T(r,e.done||e.peek().done?i.item.loc.end:e.value.loc.start,`Expected array of tables closing "]]", found ${e.done||e.peek().done?"end of file":e.value.raw+e.peek().value.raw}`);o||e.next();i.loc.end=e.value.loc.end;let a=[];for(;!e.peek().done&&e.peek().value.type!==n.Bracket;)e.next(),P(a,[...ye(e,r)]);return{type:o?t.Table:t.TableArray,loc:{start:w(i.loc.start),end:a.length?w(a[a.length-1].loc.end):w(i.loc.end)},key:i,items:a}}(e,r);else{if(e.value.type!==n.Literal)throw new T(r,e.value.loc.start,`Unexpected token "${e.value.type}". Expected Comment, Bracket, or String`);yield*function(e,r){const l={type:t.Key,loc:S(e.value.loc),raw:e.value.raw,value:[q(e.value.raw)]};for(;!e.peek().done&&e.peek().value.type===n.Dot;)e.next(),e.next(),l.loc.end=e.value.loc.end,l.raw+=`.${e.value.raw}`,l.value.push(q(e.value.raw));if(e.next(),e.done||e.value.type!==n.Equal)throw new T(r,e.done?l.loc.end:e.value.loc.start,`Expected "=" for key-value, found ${e.done?"end of file":e.value.raw}`);const o=e.value.loc.start.column;if(e.next(),e.done)throw new T(r,l.loc.start,"Expected value for key-value, reached end of file");const[i,...a]=he(e,r);return[{type:t.KeyValue,key:l,value:i,loc:{start:w(l.loc.start),end:w(i.loc.end)},equals:o},...a]}(e,r)}}function*he(e,r){if(e.value.type===n.Literal)e.value.raw[0]===k||e.value.raw[0]===I?yield function(e){return{type:t.String,loc:e.value.loc,raw:e.value.raw,value:q(e.value.raw)}}(e):e.value.raw===ie||"false"===e.value.raw?yield function(e){return{type:t.Boolean,loc:e.value.loc,value:e.value.raw===ie}}(e):oe.IS_FULL_DATE.test(e.value.raw)||oe.IS_FULL_TIME.test(e.value.raw)?yield function(e,r){let l,o=e.value.loc,i=e.value.raw;if(!e.peek().done&&e.peek().value.type===n.Literal&&oe.IS_FULL_DATE.test(i)&&oe.IS_FULL_TIME.test(e.peek().value.raw)){const t=o.start;e.next(),o={start:t,end:e.value.loc.end},i+=` ${e.value.raw}`}if(!e.peek().done&&e.peek().value.type===n.Dot){const t=o.start;if(e.next(),e.peek().done||e.peek().value.type!==n.Literal)throw new T(r,e.value.loc.end,"Expected fractional value for DateTime");e.next(),o={start:t,end:e.value.loc.end},i+=`.${e.value.raw}`}if(oe.IS_FULL_DATE.test(i))l=oe.IS_DATE_ONLY.test(i)?new te(i):oe.IS_LOCAL_DATETIME_T.test(i)?new re(i,!1):oe.IS_LOCAL_DATETIME_SPACE.test(i)?new re(i,!0):oe.IS_OFFSET_DATETIME_T.test(i)?new le(i,!1):oe.IS_OFFSET_DATETIME_SPACE.test(i)?new le(i,!0):new Date(i.replace(" ","T"));else if(oe.IS_TIME_ONLY.test(i))l=new ne(i,i);else{const[e]=(new Date).toISOString().split("T");l=new Date(`${e}T${i}`)}return{type:t.DateTime,loc:o,raw:i,value:l}}(e,r):!e.peek().done&&e.peek().value.type===n.Dot||ce.test(e.value.raw)||ue.test(e.value.raw)||ae.test(e.value.raw)&&!fe.test(e.value.raw)?yield function(e,r){let l,o=e.value.loc,i=e.value.raw;if(ce.test(i))l="-inf"===i?-1/0:1/0;else if(ue.test(i))l=NaN;else if(e.peek().done||e.peek().value.type!==n.Dot)l=Number(i.replace(se,""));else{const t=o.start;if(e.next(),e.peek().done||e.peek().value.type!==n.Literal)throw new T(r,e.value.loc.end,"Expected fraction value for Float");e.next(),i+=`.${e.value.raw}`,o={start:t,end:e.value.loc.end},l=Number(i.replace(se,""))}return{type:t.Float,loc:o,raw:i,value:l}}(e,r):yield function(e){if("-0"===e.value.raw||"+0"===e.value.raw)return{type:t.Integer,loc:e.value.loc,raw:e.value.raw,value:0};let n=10;fe.test(e.value.raw)?n=16:me.test(e.value.raw)?n=8:de.test(e.value.raw)&&(n=2);const r=parseInt(e.value.raw.replace(se,"").replace(me,"").replace(de,""),n);return{type:t.Integer,loc:e.value.loc,raw:e.value.raw,value:r}}(e);else if(e.value.type===n.Curly)yield function(e,r){if("{"!==e.value.raw)throw new T(r,e.value.loc.start,`Expected "{" for inline table, found ${e.value.raw}`);const l={type:t.InlineTable,loc:S(e.value.loc),items:[]};e.next();for(;!e.done&&(e.value.type!==n.Curly||"}"!==e.value.raw);){if(e.value.type===n.Comma){const t=l.items[l.items.length-1];if(!t)throw new T(r,e.value.loc.start,'Found "," without previous value in inline table');t.comma=!0,t.loc.end=e.value.loc.start,e.next();continue}const[o]=ye(e,r);if(o.type!==t.KeyValue)throw new T(r,e.value.loc.start,`Only key-values are supported in inline tables, found ${o.type}`);const i={type:t.InlineItem,loc:S(o.loc),item:o,comma:!1};l.items.push(i),e.next()}if(e.done||e.value.type!==n.Curly||"}"!==e.value.raw)throw new T(r,e.done?l.loc.start:e.value.loc.start,`Expected "}", found ${e.done?"end of file":e.value.raw}`);return l.loc.end=e.value.loc.end,l}(e,r);else{if(e.value.type!==n.Bracket)throw new T(r,e.value.loc.start,`Unrecognized token type "${e.value.type}". Expected String, Curly, or Bracket`);{const[l,o]=function(e,r){if("["!==e.value.raw)throw new T(r,e.value.loc.start,`Expected "[" for inline array, found ${e.value.raw}`);const l={type:t.InlineArray,loc:S(e.value.loc),items:[]};let o=[];e.next();for(;!e.done&&(e.value.type!==n.Bracket||"]"!==e.value.raw);){if(e.value.type===n.Comma){const t=l.items[l.items.length-1];if(!t)throw new T(r,e.value.loc.start,'Found "," without previous value for inline array');t.comma=!0,t.loc.end=e.value.loc.start}else if(e.value.type===n.Comment)o.push(ge(e));else{const[n,...i]=he(e,r),a={type:t.InlineItem,loc:S(n.loc),item:n,comma:!1};l.items.push(a),P(o,i)}e.next()}if(e.done||e.value.type!==n.Bracket||"]"!==e.value.raw)throw new T(r,e.done?l.loc.start:e.value.loc.start,`Expected "]", found ${e.done?"end of file":e.value.raw}`);return l.loc.end=e.value.loc.end,[l,o]}(e,r);yield l,yield*o}}}function ge(e){return{type:t.Comment,loc:e.value.loc,raw:e.value.raw}}function ve(e,n){var r;function l(e,t){for(const n of e)o(n,t)}function o(e,r){const i=n[e.type];switch(i&&"function"==typeof i&&i(e,r),i&&i.enter&&i.enter(e,r),e.type){case t.Document:l(e.items,e);break;case t.Table:o(e.key,e),l(e.items,e);break;case t.TableKey:o(e.item,e);break;case t.TableArray:o(e.key,e),l(e.items,e);break;case t.TableArrayKey:o(e.item,e);break;case t.KeyValue:o(e.key,e),o(e.value,e);break;case t.InlineArray:l(e.items,e);break;case t.InlineItem:o(e.item,e);break;case t.InlineTable:l(e.items,e);break;case t.Key:case t.String:case t.Integer:case t.Float:case t.Boolean:case t.DateTime:case t.Comment:break;default:throw new Error(`Unrecognized node type "${e.type}"`)}i&&i.exit&&i.exit(e,r)}null!=(r=e)&&"function"==typeof r[Symbol.iterator]?l(e,null):o(e,null)}const we=ee,Se=new WeakMap,Te=e=>(Se.has(e)||Se.set(e,new WeakMap),Se.get(e)),be=new WeakMap,$e=e=>(be.has(e)||be.set(e,new WeakMap),be.get(e));function ke(e,t,n,r){if(a(n)&&a(r)){const e=n.raw,t=r.value,l=we.createDateWithOriginalFormat(t,e);r.value=l,r.raw=l.toISOString();0!==r.raw.length-e.length&&(r.loc.end.column=r.loc.start.column+r.raw.length)}if(m(t)){const e=t.items.indexOf(n);if(e<0)throw new Error("Could not find existing item in parent node for replace");t.items.splice(e,1,r)}else if(i(t)&&u(t.value)&&!u(n)){const e=t.value.items.indexOf(n);if(e<0)throw new Error("Could not find existing item in parent node for replace");t.value.items.splice(e,1,r)}else if(d(t))t.item=r;else{if(!i(t))throw new Error(`Unsupported parent type "${t.type}" for replace`);t.key===n?t.key=r:t.value=r}De(r,{lines:n.loc.start.line-r.loc.start.line,columns:n.loc.start.column-r.loc.start.column});const l=h(n.loc),o=h(r.loc);_e({lines:o.lines-l.lines,columns:o.columns-l.columns},$e(e),r,n)}function Ie(e,t,n,a,d){if(!m(t))throw new Error(`Unsupported parent type "${t.type}" for insert`);let p,y;a=null!=a&&"number"==typeof a?a:t.items.length,s(t)||u(t)?({shift:p,offset:y}=function(e,t,n){if(!c(t))throw new Error(`Incompatible child type "${t.type}"`);const r=null!=n?e.items[n-1]:U(e.items),l=null==n||n===e.items.length;e.items.splice(n,0,t);const o=!!r,i=!l;o&&(r.comma=!0);i&&(t.comma=!0);const a=s(e)&&function(e){if(!e.items.length)return!1;return h(e.loc).lines>e.items.length}(e),u=l&&!0===t.comma;return Ee(e,t,n,{useNewLine:a,hasCommaHandling:!0,isLastElement:l,hasSeparatingCommaBefore:o,hasSeparatingCommaAfter:i,hasTrailingComma:u})}(t,n,a)):d&&r(t)?({shift:p,offset:y}=function(e,t,n){const r=Ee(e,t,n,{useNewLine:!1,hasCommaHandling:!1});return e.items.splice(n,0,t),r}(t,n,a)):({shift:p,offset:y}=function(e,t,n){if(a=t,!(i(a)||l(a)||o(a)||f(a)))throw new Error(`Incompatible child type "${t.type}"`);var a;const s=e.items[n-1],c=r(e)&&!e.items.length;e.items.splice(n,0,t);const u=s?{line:s.loc.end.line,column:f(s)?e.loc.start.column:s.loc.start.column}:w(e.loc.start),m=l(t)||o(t);let d=0;c||(d=m?2:1);u.line+=d;const p={lines:u.line-t.loc.start.line,columns:u.column-t.loc.start.column},y=h(t.loc),g={lines:y.lines+(d-1),columns:y.columns};return{shift:p,offset:g}}(t,n,a)),De(n,p);const g=t.items[a-1],v=g&&$e(e).get(g);v&&(y.lines+=v.lines,y.columns+=v.columns,$e(e).delete(g));$e(e).set(n,y)}function Ee(e,t,n,r={}){const{useNewLine:l=!1,skipCommaSpace:o=2,skipBracketSpace:i=1,hasCommaHandling:a=!1,isLastElement:s=!1,hasSeparatingCommaBefore:c=!1,hasSeparatingCommaAfter:u=!1,hasTrailingComma:m=!1}=r,d=n>0?e.items[n-1]:void 0,p=d?{line:d.loc.end.line,column:l?f(d)?e.loc.start.column:d.loc.start.column:d.loc.end.column}:w(e.loc.start);let y=0;if(l)y=1;else{const e=c||!a&&!!d;e&&a?p.column+=o:(e||a&&!d)&&(p.column+=i)}p.line+=y;const g={lines:p.line-t.loc.start.line,columns:p.column-t.loc.start.column},v=h(t.loc);if(!a){return{shift:g,offset:{lines:v.lines+(y-1),columns:v.columns}}}let S=0;c&&m&&!u&&s&&(S=-1);return{shift:g,offset:{lines:v.lines+(y-1),columns:v.columns+(c||u?o:0)+(m?1+S:0)}}}function Ae(e,t,n){if(!m(t))throw new Error(`Unsupported parent type "${t.type}" for remove`);let r=t.items.indexOf(n);if(r<0){if(r=t.items.findIndex((e=>d(e)&&e.item===n)),r<0)throw new Error("Could not find node in parent for removal");n=t.items[r]}const l=t.items[r-1];let o=t.items[r+1];t.items.splice(r,1);let i=h(n.loc);o&&f(o)&&o.loc.start.line===n.loc.end.line&&(i=h({start:n.loc.start,end:o.loc.end}),o=t.items[r+1],t.items.splice(r,1));const a=l&&c(l)||o&&c(o),s=l&&l.loc.end.line===n.loc.start.line,u=o&&o.loc.start.line===n.loc.end.line,p=a&&(s||u),y={lines:-(i.lines-(p?1:0)),columns:-i.columns};if(void 0===l&&void 0===o&&(y.lines=0,y.columns=0),a&&s&&(y.columns-=2),a&&!l&&o&&(y.columns-=2),a&&l&&!o){const e=n.comma;l.comma=!!e}const g=l||t,v=l?$e(e):Te(e),w=$e(e),S=v.get(g);S&&(y.lines+=S.lines,y.columns+=S.columns);const T=w.get(n);T&&(y.lines+=T.lines,y.columns+=T.columns),v.set(g,y)}function Ce(e,t,n=!0){if(!n)return;if(!t.items.length)return;_e({lines:0,columns:1},Te(e),t);const r=U(t.items);_e({lines:0,columns:1},$e(e),r)}function xe(e,t,n=!1){if(!n)return;if(!t.items.length)return;const r=U(t.items);r.comma=!0,_e({lines:0,columns:1},$e(e),r)}function Oe(e){const n=Te(e),r=$e(e),l={lines:0,columns:{}};function o(e){const t=l.lines;e.loc.start.line+=t;const r=l.columns[e.loc.start.line]||0;e.loc.start.column+=r;const o=n.get(e);o&&(l.lines+=o.lines,l.columns[e.loc.start.line]=(l.columns[e.loc.start.line]||0)+o.columns)}function i(e){const t=l.lines;e.loc.end.line+=t;const n=l.columns[e.loc.end.line]||0;e.loc.end.column+=n;const o=r.get(e);o&&(l.lines+=o.lines,l.columns[e.loc.end.line]=(l.columns[e.loc.end.line]||0)+o.columns)}const a={enter:o,exit:i};ve(e,{[t.Document]:a,[t.Table]:a,[t.TableArray]:a,[t.InlineTable]:a,[t.InlineArray]:a,[t.InlineItem]:a,[t.TableKey]:a,[t.TableArrayKey]:a,[t.KeyValue]:{enter(e){const t=e.loc.start.line+l.lines,n=r.get(e.key);e.equals+=(l.columns[t]||0)+(n?n.columns:0),o(e)},exit:i},[t.Key]:a,[t.String]:a,[t.Integer]:a,[t.Float]:a,[t.Boolean]:a,[t.DateTime]:a,[t.Comment]:a}),Se.delete(e),be.delete(e)}function De(e,n,r={}){const{first_line_only:l=!1}=r,o=e.loc.start.line,{lines:i,columns:a}=n,s=e=>{l&&e.loc.start.line!==o||(e.loc.start.column+=a,e.loc.end.column+=a),e.loc.start.line+=i,e.loc.end.line+=i};return ve(e,{[t.Table]:s,[t.TableKey]:s,[t.TableArray]:s,[t.TableArrayKey]:s,[t.KeyValue](e){s(e),e.equals+=a},[t.Key]:s,[t.String]:s,[t.Integer]:s,[t.Float]:s,[t.Boolean]:s,[t.DateTime]:s,[t.InlineArray]:s,[t.InlineItem]:s,[t.InlineTable]:s,[t.Comment]:s}),e}function _e(e,t,n,r){const l=t.get(r||n);l&&(e.lines+=l.lines,e.columns+=l.columns),t.set(n,e)}function Le(){return{type:t.Document,loc:{start:{line:1,column:0},end:{line:1,column:0}},items:[]}}function Ue(e){const n=function(e){const n=je(e);return{type:t.TableKey,loc:{start:{line:1,column:0},end:{line:1,column:n.length+2}},item:{type:t.Key,loc:{start:{line:1,column:1},end:{line:1,column:n.length+1}},value:e,raw:n}}}(e);return{type:t.Table,loc:S(n.loc),key:n,items:[]}}function Fe(e){const n=function(e){const n=je(e);return{type:t.TableArrayKey,loc:{start:{line:1,column:0},end:{line:1,column:n.length+4}},item:{type:t.Key,loc:{start:{line:1,column:2},end:{line:1,column:n.length+2}},value:e,raw:n}}}(e);return{type:t.TableArray,loc:S(n.loc),key:n,items:[]}}function Me(e,n){const r=function(e){const n=je(e);return{type:t.Key,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e),{column:l}=r.loc.end,o=l+1;return De(n,{lines:0,columns:l+3-n.loc.start.column},{first_line_only:!0}),{type:t.KeyValue,loc:{start:w(r.loc.start),end:w(n.loc.end)},key:r,equals:o,value:n}}const Ke=/^[\w-]+$/;function je(e){return e.map((e=>Ke.test(e)?e:JSON.stringify(e))).join(".")}function Ne(e){return{type:t.InlineItem,loc:S(e.loc),item:e,comma:!1}}const Be=!1,Ze=!0,Pe=!1;function We(e,t){if(!e||"object"!=typeof e)return null;if(("InlineArray"===e.type||"InlineTable"===e.type)&&e.loc){const n=function(e,t){var n;if(!e||!e.start||!e.end)return null;const r=t.split(/\r?\n/),l=e.start.line-1,o=e.end.line-1,i=e.start.column,a=e.end.column;let s="";if(l===o)s=(null===(n=r[l])||void 0===n?void 0:n.substring(i,a+1))||"";else{r[l]&&(s+=r[l].substring(i));for(let e=l+1;e<o;e++)s+="\n"+(r[e]||"");r[o]&&(s+="\n"+r[o].substring(0,a+1))}const c=s.match(/^\[(\s*)/),u=s.match(/^\{(\s*)/);if(c)return c[1].length>0;if(u)return u[1].length>0;return null}(e.loc,t);if(null!==n)return n}if(e.items&&Array.isArray(e.items))for(const n of e.items){const e=We(n,t);if(null!==e)return e;if(n.item){const e=We(n.item,t);if(null!==e)return e}}for(const n of["value","key","item"])if(e[n]){const r=We(e[n],t);if(null!==r)return r}return null}function ze(e){if(!e||"object"!=typeof e)return null;if("InlineArray"===e.type&&e.items&&Array.isArray(e.items))return Ve(e.items);if("InlineTable"===e.type&&e.items&&Array.isArray(e.items))return Ve(e.items);if("KeyValue"===e.type&&e.value)return ze(e.value);if(e.items&&Array.isArray(e.items))for(const t of e.items){const e=ze(t);if(null!==e)return e}return null}function Ve(e){if(0===e.length)return null;const t=e[e.length-1];return!(!t||"object"!=typeof t||!("comma"in t))&&!0===t.comma}function He(e){if(!s(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function qe(e){if(!u(e))return!1;if(0===e.items.length)return!1;return!0===e.items[e.items.length-1].comma}function Re(e){const t=e.indexOf("\n");return t>0&&"\r"===e.substring(t-1,t)?"\r\n":"\n"}function Ye(e,t){var n,r,l,o,i;if(e){if(e instanceof Je)return e;{const a=function(e){if(!e||"object"!=typeof e)return{};const t=new Set(["newLine","trailingNewline","trailingComma","bracketSpacing","inlineTableStart","truncateZeroTimeInDates"]),n={},r=[],l=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(t.has(o)){const t=e[o];switch(o){case"newLine":"string"==typeof t?n.newLine=t:l.push(`${o} (expected string, got ${typeof t})`);break;case"trailingNewline":"boolean"==typeof t||"number"==typeof t?n.trailingNewline=t:l.push(`${o} (expected boolean or number, got ${typeof t})`);break;case"trailingComma":case"bracketSpacing":case"truncateZeroTimeInDates":"boolean"==typeof t?n[o]=t:l.push(`${o} (expected boolean, got ${typeof t})`);break;case"inlineTableStart":"number"==typeof t&&Number.isInteger(t)&&t>=0||null==t?n.inlineTableStart=t:l.push(`${o} (expected non-negative integer or undefined, got ${typeof t})`)}}else r.push(o);if(r.length>0&&console.warn(`toml-patch: Ignoring unsupported format properties: ${r.join(", ")}. Supported properties are: ${Array.from(t).join(", ")}`),l.length>0)throw new TypeError(`Invalid types for format properties: ${l.join(", ")}`);return n}(e);return new Je(null!==(n=a.newLine)&&void 0!==n?n:t.newLine,null!==(r=a.trailingNewline)&&void 0!==r?r:t.trailingNewline,null!==(l=a.trailingComma)&&void 0!==l?l:t.trailingComma,null!==(o=a.bracketSpacing)&&void 0!==o?o:t.bracketSpacing,void 0!==a.inlineTableStart?a.inlineTableStart:t.inlineTableStart,null!==(i=a.truncateZeroTimeInDates)&&void 0!==i?i:t.truncateZeroTimeInDates)}}return t}class Je{constructor(e,t,n,r,l,o){this.newLine=null!=e?e:"\n",this.trailingNewline=null!=t?t:1,this.trailingComma=null!=n?n:Be,this.bracketSpacing=null!=r?r:Ze,this.inlineTableStart=null!=l?l:1,this.truncateZeroTimeInDates=null!=o?o:Pe}static default(){return new Je("\n",1,Be,Ze,1,Pe)}static autoDetectFormat(e){const t=Je.default();t.newLine=Re(e),t.trailingNewline=function(e,t){let n=0,r=e.length;for(;r>=t.length&&e.substring(r-t.length,r)===t;)n++,r-=t.length;return n}(e,t.newLine);try{const n=pe(e),r=Array.from(n);t.trailingComma=function(e){const t=Array.from(e);for(const e of t){const t=ze(e);if(null!==t)return t}return Be}(r),t.bracketSpacing=function(e,t){const n=Array.from(t);for(const t of n){const n=We(t,e);if(null!==n)return n}return Ze}(e,r)}catch(e){t.trailingComma=Be,t.bracketSpacing=Ze}return t.inlineTableStart=1,t.truncateZeroTimeInDates=Pe,t}}function Ge(e,t){if(0===t.inlineTableStart)return e;return e.items.filter((e=>{if(!i(e))return!1;const n=u(e.value),r=s(e.value)&&e.value.items.length&&u(e.value.items[0].item);if(n||r){const n=et(e.key.value);return void 0===t.inlineTableStart||n<t.inlineTableStart}return!1})).forEach((t=>{Ae(e,e,t),u(t.value)?Ie(e,e,Qe(t)):function(e){const t=Le();for(const n of e.value.items){const r=Fe(e.key.value);Ie(t,t,r);for(const e of n.item.items)Ie(t,r,e.item)}return Oe(t),t.items}(t).forEach((t=>{Ie(e,e,t)}))})),Oe(e),e}function Qe(e){const t=Ue(e.key.value);for(const n of e.value.items)Ie(t,t,n.item);return Oe(t),t}function Xe(e){if(e.items.length>0){const t=e.items[e.items.length-1];e.loc.end.line=t.loc.end.line,e.loc.end.column=t.loc.end.column}else e.loc.end.line=e.key.loc.end.line,e.loc.end.column=e.key.loc.end.column}function et(e){return Math.max(0,e.length-1)}function tt(e,t,n){var r;for(let l=e.items.length-1;l>=0;l--){const o=e.items[l];if(i(o)&&u(o.value)){const l=[...e.key.item.value,...o.key.value];if(et(l)<(null!==(r=n.inlineTableStart)&&void 0!==r?r:1)){const r=Ue(l);for(const e of o.value.items)Ie(r,r,e.item);Ae(e,e,o),Xe(e),t.push(r),tt(r,t,n)}}}}function nt(e,t=Je.default()){e=function(e){const t=[],n=[];for(const r in e)j(e[r])||Array.isArray(e[r])?n.push(r):t.push(r);const r={};for(let n=0;n<t.length;n++){const l=t[n];r[l]=e[l]}for(let t=0;t<n.length;t++){const l=n[t];r[l]=e[l]}return r}(e=ot(e));const n=Le();for(const r of rt(e,t))Ie(n,n,r);Oe(n);const r=B(n,(e=>Ge(e,t)),(e=>function(e,t){if(void 0===t.inlineTableStart||0===t.inlineTableStart)return e;const n=[];for(const r of e.items)if(i(r)&&u(r.value)){if(et(r.key.value)<t.inlineTableStart){const l=Qe(r);Ae(e,e,r),Ie(e,e,l),tt(l,n,t)}}else"Table"===r.type&&tt(r,n,t);for(const t of n)Ie(e,e,t);return Oe(e),e}(e,t)),(e=>function(e){return e}(e)));return function(e){let t=0,n=0;for(const r of e.items)0===n&&r.loc.start.line>1?t=1-r.loc.start.line:r.loc.start.line+t>n+2&&(t+=n+2-(r.loc.start.line+t)),De(r,{lines:t,columns:0}),n=r.loc.end.line;return e}(r)}function*rt(e,t){for(const n of Object.keys(e))yield Me([n],lt(e[n],t))}function lt(e,n){if(null==e)throw new Error('"null" and "undefined" values are not supported');return function(e){return"string"==typeof e}(e)?function(e){const n=JSON.stringify(e);return{type:t.String,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):M(e)?function(e){const n=e.toString();return{type:t.Integer,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):function(e){return"number"==typeof e&&(!M(e)||!isFinite(e)||Object.is(e,-0))}(e)?function(e){let n;return n=e===1/0?"inf":e===-1/0?"-inf":Number.isNaN(e)?"nan":Object.is(e,-0)?"-0.0":e.toString(),{type:t.Float,loc:{start:{line:1,column:0},end:{line:1,column:n.length}},raw:n,value:e}}(e):function(e){return"boolean"==typeof e}(e)?function(e){return{type:t.Boolean,loc:{start:{line:1,column:0},end:{line:1,column:e?4:5}},value:e}}(e):K(e)?function(e,n){n.truncateZeroTimeInDates&&0===e.getUTCHours()&&0===e.getUTCMinutes()&&0===e.getUTCSeconds()&&0===e.getUTCMilliseconds()&&(e=new te(e.toISOString().split("T")[0]));const r=e.toISOString();return{type:t.DateTime,loc:{start:{line:1,column:0},end:{line:1,column:r.length}},raw:r,value:e}}(e,n):Array.isArray(e)?function(e,n){const r={type:t.InlineArray,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]};for(const t of e){Ie(r,r,Ne(lt(t,n)))}return Ce(r,r,n.bracketSpacing),xe(r,r,n.trailingComma),Oe(r),r}(e,n):function(e,n){if(e=ot(e),!j(e))return lt(e,n);const r={type:t.InlineTable,loc:{start:{line:1,column:0},end:{line:1,column:2}},items:[]},l=[...rt(e,n)];for(const e of l){Ie(r,r,Ne(e))}return Ce(r,r,n.bracketSpacing),xe(r,r,n.trailingComma),Oe(r),r}(e,n)}function ot(e){return e?K(e)?e:"function"==typeof e.toJSON?e.toJSON():e:e}const it=/(\r\n|\n)/g;function at(e,n){const r=[];return ve(e,{[t.TableKey](e){const{start:t,end:n}=e.loc;st(r,{start:t,end:{line:t.line,column:t.column+1}},"["),st(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.TableArrayKey](e){const{start:t,end:n}=e.loc;st(r,{start:t,end:{line:t.line,column:t.column+2}},"[["),st(r,{start:{line:n.line,column:n.column-2},end:n},"]]")},[t.KeyValue](e){const{start:{line:t}}=e.loc;st(r,{start:{line:t,column:e.equals},end:{line:t,column:e.equals+1}},"=")},[t.Key](e){st(r,e.loc,e.raw)},[t.String](e){st(r,e.loc,e.raw)},[t.Integer](e){st(r,e.loc,e.raw)},[t.Float](e){st(r,e.loc,e.raw)},[t.Boolean](e){st(r,e.loc,e.value.toString())},[t.DateTime](e){st(r,e.loc,e.raw)},[t.InlineArray](e){const{start:t,end:n}=e.loc;st(r,{start:t,end:{line:t.line,column:t.column+1}},"["),st(r,{start:{line:n.line,column:n.column-1},end:n},"]")},[t.InlineTable](e){const{start:t,end:n}=e.loc;st(r,{start:t,end:{line:t.line,column:t.column+1}},"{"),st(r,{start:{line:n.line,column:n.column-1},end:n},"}")},[t.InlineItem](e){if(!e.comma)return;const t=e.loc.end;st(r,{start:t,end:{line:t.line,column:t.column+1}},",")},[t.Comment](e){st(r,e.loc,e.raw)}}),r.join(n.newLine)+n.newLine.repeat(n.trailingNewline)}function st(e,t,n){const r=n.split(it).filter((e=>"\n"!==e&&"\r\n"!==e)),l=t.end.line-t.start.line+1;if(r.length!==l)throw new Error(`Mismatch between location and raw string, expected ${l} lines for "${n}"`);for(let l=t.start.line;l<=t.end.line;l++){const o=ct(e,l);if(void 0===o)throw new Error(`Line ${l} is uninitialized when writing "${n}" at ${t.start.line}:${t.start.column} to ${t.end.line}:${t.end.column}`);const i=l===t.start.line,a=l===t.end.line,s=i?o.substr(0,t.start.column).padEnd(t.start.column," "):"",c=a?o.substr(t.end.column):"";e[l-1]=s+r[l-t.start.line]+c}}function ct(e,t){if(!e[t-1])for(let n=0;n<t;n++)e[n]||(e[n]="");return e[t-1]}function ut(e,n=""){const r=F(),l=new Set,o=new Set,i=new Set;let a=r,s=0;return ve(e,{[t.Table](e){const t=e.key.item.value;try{mt(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const s=yt(t);l.add(s),i.add(s),a=dt(r,t)},[t.TableArray](e){const t=e.key.item.value;try{mt(r,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const s=yt(t);o.add(s),i.add(s),a=function(e,t){const n=pt(e,t.slice(0,-1)),r=U(t);n[r]||(n[r]=[]);const l=F();return n[U(t)].push(l),l}(r,t)},[t.KeyValue]:{enter(e){if(s>0)return;const t=e.key.value;try{mt(a,t,e.type,{tables:l,table_arrays:o,defined:i})}catch(t){const r=t;throw new T(n,e.key.loc.start,r.message)}const r=ft(e.value);(t.length>1?dt(a,t.slice(0,-1)):a)[U(t)]=r,i.add(yt(t))}},[t.InlineTable]:{enter(){s++},exit(){s--}}}),r}function ft(e){switch(e.type){case t.InlineTable:const n=F();return e.items.forEach((({item:e})=>{const t=e.key.value,r=ft(e.value);(t.length>1?dt(n,t.slice(0,-1)):n)[U(t)]=r})),n;case t.InlineArray:return e.items.map((e=>ft(e.item)));case t.String:case t.Integer:case t.Float:case t.Boolean:case t.DateTime:return e.value;default:throw new Error(`Unrecognized value type "${e.type}"`)}}function mt(e,n,r,l){let o=[],i=0;for(const t of n){if(o.push(t),!N(e,t))return;if("object"!=typeof(a=e[t])&&!K(a))throw new Error(`Invalid key, a value has already been defined for ${o.join(".")}`);const r=yt(o);if(Array.isArray(e[t])&&!l.table_arrays.has(r))throw new Error(`Invalid key, cannot add to a static array at ${r}`);const s=i++<n.length-1;e=Array.isArray(e[t])&&s?U(e[t]):e[t]}var a;const s=yt(n);if(e&&r===t.Table&&l.defined.has(s))throw new Error(`Invalid key, a table has already been defined named ${s}`);if(e&&r===t.TableArray&&!l.table_arrays.has(s))throw new Error(`Invalid key, cannot add an array of tables to a table at ${s}`)}function dt(e,t){const n=pt(e,t.slice(0,-1)),r=U(t);return n[r]||(n[r]=F()),n[r]}function pt(e,t){return t.reduce(((e,t)=>(e[t]||(e[t]=F()),Array.isArray(e[t])?U(e[t]):e[t])),e)}function yt(e){return e.join(".")}var ht,gt,vt,wt;function St(e){return e.type===ht.Remove}function Tt(e,t,n=[]){return e===t||(l=t,K(r=e)&&K(l)&&r.toISOString()===l.toISOString())?[]:Array.isArray(e)&&Array.isArray(t)?function(e,t,n=[]){let r=[];const l=e.map(Z),o=t.map(Z);o.forEach(((i,a)=>{const s=a>=l.length;if(!s&&l[a]===i)return;const c=l.indexOf(i,a+1);if(!s&&c>-1){r.push({type:ht.Move,path:n,from:c,to:a});const e=l.splice(c,1);return void l.splice(a,0,...e)}const u=!o.includes(l[a]);if(!s&&u)return P(r,Tt(e[a],t[a],n.concat(a))),void(l[a]=i);r.push({type:ht.Add,path:n.concat(a)}),l.splice(a,0,i)}));for(let e=o.length;e<l.length;e++)r.push({type:ht.Remove,path:n.concat(e)});return r}(e,t,n):j(e)&&j(t)?function(e,t,n=[]){let r=[];const l=Object.keys(e),o=l.map((t=>Z(e[t]))),i=Object.keys(t),a=i.map((e=>Z(t[e]))),s=(e,t)=>{if(t.indexOf(e)<0)return!1;const n=l[o.indexOf(e)];return!i.includes(n)};return l.forEach(((l,c)=>{const u=n.concat(l);if(i.includes(l))P(r,Tt(e[l],t[l],u));else if(s(o[c],a)){const e=i[a.indexOf(o[c])];r.push({type:ht.Rename,path:n,from:l,to:e})}else r.push({type:ht.Remove,path:u})})),i.forEach(((e,t)=>{l.includes(e)||s(a[t],o)||r.push({type:ht.Add,path:n.concat(e)})})),r}(e,t,n):[{type:ht.Edit,path:n}];var r,l}function bt(e,t){if(!t.length)return c(e)&&i(e.item)?e.item:e;if(i(e))return bt(e.value,t);const n={};let r;if(m(e)&&e.items.some(((e,a)=>{try{let s=[];if(i(e))s=e.key.value;else if(l(e))s=e.key.item.value;else if(o(e)){s=e.key.item.value;const t=Z(s);n[t]||(n[t]=0);const r=n[t]++;s=s.concat(r)}else c(e)&&i(e.item)?s=e.item.key.value:c(e)&&(s=[a]);return!(!s.length||!function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(s,t.slice(0,s.length)))&&(r=bt(e,t.slice(s.length)),!0)}catch(e){return!1}})),!r)throw new Error(`Could not find node at path ${t.join(".")}`);return r}function $t(e,t){try{return bt(e,t)}catch(e){}}function kt(e,t){let n,r=t;for(;r.length&&!n;)r=r.slice(0,-1),n=$t(e,r);if(!n)throw new Error(`Count not find parent node for path ${t.join(".")}`);return n}function It(e,n,a){const f=[...e],m=ut(f),p={type:t.Document,loc:{start:{line:1,column:0},end:{line:1,column:0}},items:f},y=nt(n,Ye(Object.assign(Object.assign({},a),{inlineTableStart:void 0}),a)),h=function(e){for(let t=0;t<e.length;t++){const n=e[t];if(St(n)){let r=t+1;for(;r<e.length;){const l=e[r];if(St(l)&&l.path[0]===n.path[0]&&l.path[1]>n.path[1]){e.splice(r,1),e.splice(t,0,l),t=0;break}r++}}}return e}(Tt(m,n));if(0===h.length)return{tomlString:at(f,a),document:p};const g=function(e,t,n,a){return n.forEach((n=>{if(function(e){return e.type===ht.Add}(n)){const f=bt(t,n.path),m=n.path.slice(0,-1);let d,p=U(n.path),y=o(f);if(M(p)&&!m.some(M)){const t=$t(e,m.concat(0));t&&o(t)&&(y=!0)}if(l(f))d=e;else if(y){d=e;const t=e,n=$t(t,m.concat(p-1)),r=$t(t,m.concat(p));p=r?t.items.indexOf(r):n?t.items.indexOf(n)+1:t.items.length}else d=kt(e,n.path),i(d)&&(d=d.value);if(o(d)||s(d)||r(d)){if(s(d)){const e=He(d);c(f)&&(f.comma=e)}if(void 0!==a.inlineTableStart&&a.inlineTableStart>0&&r(d)&&l(f)){const t=Et(f,e,a);Ie(e,d,f,p);for(const n of t)Ie(e,e,n,void 0)}else Ie(e,d,f,p)}else if(u(d)){const t=qe(d);if(i(f)){const n=Ne(f);n.comma=t,Ie(e,d,n)}else Ie(e,d,f)}else if(void 0!==a.inlineTableStart&&a.inlineTableStart>0&&i(f)&&u(f.value)&&l(d)){et([...d.key.item.value,...f.key.value])<a.inlineTableStart?function(e,t,n,r){const l=t.key.item.value,o=[...l,...e.key.value],a=Ue(o);if(u(e.value))for(const t of e.value.items)c(t)&&i(t.item)&&Ie(n,a,t.item,void 0);Ie(n,n,a,void 0),Xe(t);const s=Et(a,n,r);for(const e of s)Ie(n,n,e,void 0)}(f,d,e,a):Ie(e,d,f)}else 0===a.inlineTableStart&&i(f)&&u(f.value)&&r(d)?Ie(e,d,f,void 0,!0):Ie(e,d,f)}else if(function(e){return e.type===ht.Edit}(n)){let r,l=bt(e,n.path),o=bt(t,n.path);if(i(l)&&i(o)){if(s(l.value)&&s(o.value)){const e=He(l.value),t=o.value;if(t.items.length>0){t.items[t.items.length-1].comma=e}}if(u(l.value)&&u(o.value)){const e=qe(l.value),t=o.value;if(t.items.length>0){t.items[t.items.length-1].comma=e}}r=l,l=l.value,o=o.value}else if(i(l)&&c(o)&&i(o.item))r=l,l=l.value,o=o.item.value;else if(c(l)&&i(o))r=l,l=l.item;else if(r=kt(e,n.path),i(r)){const t=n.path.slice(0,-1),l=bt(e,t);i(l)&&s(l.value)&&(r=l.value)}ke(e,r,l,o)}else if(St(n)){let t=kt(e,n.path);i(t)&&(t=t.value);const r=bt(e,n.path);Ae(e,t,r)}else if(function(e){return e.type===ht.Move}(n)){let t=bt(e,n.path);d(t)&&(t=t.item),i(t)&&(t=t.value);const r=t.items[n.from];Ae(e,t,r),Ie(e,t,r,n.to)}else if(function(e){return e.type===ht.Rename}(n)){let r=bt(e,n.path.concat(n.from)),l=bt(t,n.path.concat(n.to));d(r)&&(r=r.item),d(l)&&(l=l.item),ke(e,r,r.key,l.key)}})),Oe(e),e}(p,y,h,a);return{tomlString:at(g.items,a),document:g}}function Et(e,t,n){const r=[],l=(e,r)=>{var o;for(let a=e.items.length-1;a>=0;a--){const s=e.items[a];if(i(s)&&u(s.value)){const u=[...e.key.item.value,...s.key.value];if(et(u)<(null!==(o=n.inlineTableStart)&&void 0!==o?o:1)&&0!==n.inlineTableStart){const n=Ue(u);for(const e of s.value.items)c(e)&&i(e.item)&&Ie(t,n,e.item,void 0);e.items.splice(a,1),Xe(e),r.push(n),l(n,r)}}}};return l(e,r),r}function At(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function Ct(e,t,n,r,l){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!l)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!l:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?l.call(e,n):l?l.value=n:t.set(e,n),n}function xt(e,t){return e.line!==t.line?e.line-t.line:e.column-t.column}!function(e){e.Add="Add",e.Edit="Edit",e.Remove="Remove",e.Move="Move",e.Rename="Rename"}(ht||(ht={})),"function"==typeof SuppressedError&&SuppressedError;function Ot(e){if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(Ot);if(e&&"object"==typeof e){const t={};for(const[n,r]of Object.entries(e))t[n]=Ot(r);return t}return e}gt=new WeakMap,vt=new WeakMap,wt=new WeakMap,e.TomlDocument=class{constructor(e){gt.set(this,void 0),vt.set(this,void 0),wt.set(this,void 0),Ct(this,vt,e,"f"),Ct(this,gt,Array.from(pe(e)),"f"),Ct(this,wt,Je.autoDetectFormat(e),"f")}get toTomlString(){return At(this,vt,"f")}get toJsObject(){return Ot(ut(At(this,gt,"f")))}get ast(){return At(this,gt,"f")}patch(e,t){const n=Ye(t,At(this,wt,"f")),{tomlString:r,document:l}=It(At(this,gt,"f"),e,n);Ct(this,gt,l.items,"f"),Ct(this,vt,r,"f")}update(e){if(e===this.toTomlString)return;const t=this.toTomlString.split(At(this,wt,"f").newLine),n=Re(e),r=e.split(n);let l=0;for(;l<t.length&&l<r.length&&t[l]===r[l];)l++;let o=0;if(l<t.length&&l<r.length){const e=t[l],n=r[l];for(let t=0;t<Math.max(e.length,n.length);t++)if(e[t]!==n[t]){o=t;break}}let i=l+1;const{truncatedAst:a,lastEndPosition:s}=function(e,t,n){const r={line:t,column:n},l=[];let o=null;for(const t of e){const e=xt(t.loc.end,r)<0,n=xt(t.loc.start,r)<0;if(!e){if(n&&!e)break;break}l.push(t),o=t.loc.end}return{truncatedAst:l,lastEndPosition:o}}(At(this,gt,"f"),i,o),c=s?s.line:1,u=s?s.column+1:0,f=r.slice(c-1);f.length>0&&u>0&&(f[0]=f[0].substring(u));const m=f.join(At(this,wt,"f").newLine);Ct(this,gt,Array.from(function*(e,t){for(const t of e)yield t;for(const e of pe(t))yield e}(a,m)),"f"),Ct(this,vt,e,"f"),Ct(this,wt,Je.autoDetectFormat(e),"f")}overwrite(e){e!==this.toTomlString&&(Ct(this,gt,Array.from(pe(e)),"f"),Ct(this,vt,e,"f"),Ct(this,wt,Je.autoDetectFormat(e),"f"))}},e.TomlFormat=Je,e.parse=function(e){return ut(pe(e),e)},e.patch=function(e,t,n){return It(pe(e),t,Ye(n,Je.autoDetectFormat(e))).tomlString},e.stringify=function(e,t){const n=Ye(t,Je.default());return at(nt(e,n).items,n)}}));
3
3
  //# sourceMappingURL=toml-patch.umd.min.js.map