Skip to main content
Create new
Introduction
Reactivity
Props
Logic
Events
Bindings
Lifecycle
Stores
Motion
Transitions
Animations
Easing
SVG
Actions
Classes
Component composition
Context API
Special elements
Module context
Debugging
7GUIs
Miscellaneous
App.svelte
<script>
import { flip } from 'svelte/animate';
import { fade } from 'svelte/transition';
function updater({ getKey, add, remove, update, isEqual }) {
var activeData = new Map();
return (newData) => {
let newDataKeys = new Set(newData.map(getKey));
for(let key of activeData.keys()) {
if(!newDataKeys.has(key)) {
remove(key);
activeData.delete(key);
}
}

for(let data of newData) {
let key = getKey(data);
newDataKeys.add(key);

let existingItem = activeData.get(key);
if(existingItem) {
// Some check for if we need to push an update to the API,
// if necessary.
if(update && !isEqual(existingItem, data)) {
update(data);
activeData.set(key, data);
}
} else {
activeData.set(key, data);
add(key, data);
}
}
};

}

import 'svelte/internal/disclose-version';
import 'svelte/internal/flags/legacy';
import * as $ from 'svelte/internal/client';
import { flip } from 'svelte/animate';
import { fade } from 'svelte/transition';

var root_1 = $.template(`<li> </li>`);
var root_2 = $.template(`<div> </div>`);
var root = $.template(`<p>This is a very contrived, simple example of detecting changes in state and translating them to <em>add</em> and <em>remove</em> commands for an API.</p> <label>Type to filter items <input type="text"></label> <div> </div> <div style="display:flex;margin-top:1rem"><div style="width:50%"><p>API State</p> <ul></ul></div> <div><p>Commands sent to API</p> <!></div></div>`, 1);

export default function App($$anchor, $$props) {
$.push($$props, false);

const activeItems = $.mutable_state();

function updater({ getKey, add, remove, update, isEqual }) {
var activeData = new Map();

return (newData) => {
let newDataKeys = new Set(newData.map(getKey));

for (let key of activeData.keys()) {
if (!newDataKeys.has(key)) {
remove(key);
activeData.delete(key);
}
}

for (let data of newData) {
let key = getKey(data);

newDataKeys.add(key);

let existingItem = activeData.get(key);

if (existingItem) {
result = svelte.compile(source, {
generate: ,
});
/* Add a <style> tag to see the CSS output */
		
			
				
  • Root {
    • css: null
    • js: []
    • start: 1492
    • end: 2135
    • type: "Root"
    • fragment: Fragment {...}
      • type: "Fragment"
      • nodes: [...] (8)
        • Text {...}
          • type: "Text"
          • start: 1490
          • end: 1492
          • raw: "\n\n"
          • data: "\n\n"
          }
        • RegularElement {...}
          • type: "RegularElement"
          • start: 1492
          • end: 1652
          • name: "p"
          • attributes: []
          • fragment: Fragment {...}
            • type: "Fragment"
            • nodes: [...] (5)
              • Text {...}
                • type: "Text"
                • start: 1495
                • end: 1592
                • raw: "This is a very contrived, simple example of detecting changes in state and translating them to "
                • data: "This is a very contrived, simple example of detecting changes in state and translating them to "
                }
              • RegularElement {...}
                • type: "RegularElement"
                • start: 1592
                • end: 1604
                • name: "em"
                • attributes: []
                • fragment: Fragment {...}
                  • type: "Fragment"
                  • nodes: [...] (1)
                    • Text {...}
                      • type: "Text"
                      • start: 1596
                      • end: 1599
                      • raw: "add"
                      • data: "add"
                      }
                    ]
                  }
                }
              • Text {...}
                • type: "Text"
                • start: 1604
                • end: 1609
                • raw: " and "
                • data: " and "
                }
              • RegularElement {...}
                • type: "RegularElement"
                • start: 1609
                • end: 1624
                • name: "em"
                • attributes: []
                • fragment: Fragment {...}
                  • type: "Fragment"
                  • nodes: [...] (1)
                    • Text {...}
                      • type: "Text"
                      • start: 1613
                      • end: 1619
                      • raw: "remove"
                      • data: "remove"
                      }
                    ]
                  }
                }
              • Text {...}
                • type: "Text"
                • start: 1624
                • end: 1648
                • raw: " commands for an API."
                • data: " commands for an API."
                }
              ]
            }
          }
        • Text {...}
          • type: "Text"
          • start: 1652
          • end: 1654
          • raw: " "
          • data: " "
          }
        • RegularElement {...}
          • type: "RegularElement"
          • start: 1654
          • end: 1736
          • name: "label"
          • attributes: []
          • fragment: Fragment {...}
            • type: "Fragment"
            • nodes: [...] (3)
              • Text {...}
                • type: "Text"
                • start: 1661
                • end: 1685
                • raw: "Type to filter items "
                • data: "Type to filter items "
                }
              • RegularElement {...}
                • type: "RegularElement"
                • start: 1685
                • end: 1727
                • name: "input"
                • attributes: [...] (2)
                  • Attribute {...}
                    • type: "Attribute"
                    • start: 1692
                    • end: 1703
                    • name: "type"
                    • value: [...] (1)
                      • Text {...}
                        • start: 1698
                        • end: 1702
                        • type: "Text"
                        • raw: "text"
                        • data: "text"
                        }
                      ]
                    }
                  • BindDirective {...}
                    • start: 1704
                    • end: 1724
                    • type: "BindDirective"
                    • name: "value"
                    • expression: Identifier {...}
                      • type: "Identifier"
                      • start: 1716
                      • end: 1723
                      • loc: {...}
                        • start: {...}
                          • line: 74
                          • column: 32
                          }
                        • end: {...}
                          • line: 74
                          • column: 39
                          }
                        }
                      • name: "filters"
                      }
                    • modifiers: []
                    }
                  ]
                • fragment: Fragment {...}
                  • type: "Fragment"
                  • nodes: []
                  }
                }
              • Text {...}
                • type: "Text"
                • start: 1727
                • end: 1728
                • raw: "\n"
                • data: "\n"
                }
              ]
            }
          }
        • Text {...}
          • type: "Text"
          • start: 1736
          • end: 1738
          • raw: " "
          • data: " "
          }
        • RegularElement {...}
          • type: "RegularElement"
          • start: 1738
          • end: 1779
          • name: "div"
          • attributes: []
          • fragment: Fragment {...}
            • type: "Fragment"
            • nodes: [...] (3)
              • Text {...}
                • type: "Text"
                • start: 1743
                • end: 1759
                • raw: "Active Items: "
                • data: "Active Items: "
                }
              • ExpressionTag {...}
                • type: "ExpressionTag"
                • start: 1759
                • end: 1772
                • expression: Identifier {...}
                  • type: "Identifier"
                  • start: 1760
                  • end: 1771
                  • loc: {...}
                    • start: {...}
                      • line: 78
                      • column: 16
                      }
                    • end: {...}
                      • line: 78
                      • column: 27
                      }
                    }
                  • name: "activeItems"
                  }
                }
              • Text {...}
                • type: "Text"
                • start: 1772
                • end: 1773
                • raw: "\n"
                • data: "\n"
                }
              ]
            }
          }
        • Text {...}
          • type: "Text"
          • start: 1779
          • end: 1781
          • raw: " "
          • data: " "
          }
        • RegularElement {...}
          • type: "RegularElement"
          • start: 1781
          • end: 2135
          • name: "div"
          • attributes: [...] (1)
            • Attribute {...}
              • type: "Attribute"
              • start: 1786
              • end: 1822
              • name: "style"
              • value: [...] (1)
                • Text {...}
                  • start: 1793
                  • end: 1821
                  • type: "Text"
                  • raw: "display:flex;margin-top:1rem"
                  • data: "display:flex;margin-top:1rem"
                  }
                ]
              }
            ]
          • fragment: Fragment {...}
            • type: "Fragment"
            • nodes: [...] (5)
              • Text {...}
                • type: "Text"
                • start: 1823
                • end: 1825
                • raw: "\n\t"
                • data: "\n\t"
                }
              • RegularElement {...}
                • type: "RegularElement"
                • start: 1825
                • end: 2029
                • name: "div"
                • attributes: [...] (1)
                  • Attribute {...}
                    • type: "Attribute"
                    • start: 1830
                    • end: 1847
                    • name: "style"
                    • value: [...] (1)
                      • Text {...}
                        • start: 1837
                        • end: 1846
                        • type: "Text"
                        • raw: "width:50%"
                        • data: "width:50%"
                        }
                      ]
                    }
                  ]
                • fragment: Fragment {...}
                  • type: "Fragment"
                  • nodes: [...] (5)
                    • Text {...}
                      • type: "Text"
                      • start: 1848
                      • end: 1851
                      • raw: "\n\t\t"
                      • data: "\n\t\t"
                      }
                    • RegularElement {...}
                      • type: "RegularElement"
                      • start: 1851
                      • end: 1867
                      • name: "p"
                      • attributes: []
                      • fragment: Fragment {...}
                        • type: "Fragment"
                        • nodes: [...] (1)
                          • Text {...}
                            • type: "Text"
                            • start: 1854
                            • end: 1863
                            • raw: "API State"
                            • data: "API State"
                            }
                          ]
                        }
                      }
                    • Text {...}
                      • type: "Text"
                      • start: 1867
                      • end: 1870
                      • raw: " "
                      • data: " "
                      }
                    • RegularElement {...}
                      • type: "RegularElement"
                      • start: 1870
                      • end: 2021
                      • name: "ul"
                      • attributes: []
                      • fragment: Fragment {...}
                        • type: "Fragment"
                        • nodes: [...] (3)
                          • Text {...}
                            • type: "Text"
                            • start: 1874
                            • end: 1878
                            • raw: "\n\t\t\t"
                            • data: "\n\t\t\t"
                            }
                          • EachBlock {...}
                            • type: "EachBlock"
                            • start: 1878
                            • end: 2013
                            • expression: CallExpression {...}
                              • type: "CallExpression"
                              • start: 1885
                              • end: 1910
                              • loc: {...}
                                • start: {...}
                                  • line: 85
                                  • column: 10
                                  }
                                • end: {...}
                                  • line: 85
                                  • column: 35
                                  }
                                }
                              • callee: MemberExpression {...}
                                • type: "MemberExpression"
                                • start: 1885
                                • end: 1908
                                • loc: {...}
                                  • start: {...}
                                    • line: 85
                                    • column: 10
                                    }
                                  • end: {...}
                                    • line: 85
                                    • column: 33
                                    }
                                  }
                                • object: CallExpression {...}
                                  • type: "CallExpression"
                                  • start: 1885
                                  • end: 1903
                                  • loc: {...}
                                    • start: {...}
                                      • line: 85
                                      • column: 10
                                      }
                                    • end: {...}
                                      • line: 85
                                      • column: 28
                                      }
                                    }
                                  • callee: MemberExpression {...}
                                    • type: "MemberExpression"
                                    • start: 1885
                                    • end: 1895
                                    • loc: {...}
                                      • start: {...}
                                        • line: 85
                                        • column: 10
                                        }
                                      • end: {...}
                                        • line: 85
                                        • column: 20
                                        }
                                      }
                                    • object: Identifier {...}
                                      • type: "Identifier"
                                      • start: 1885
                                      • end: 1890
                                      • loc: {...}
                                        • start: {...}
                                          • line: 85
                                          • column: 10
                                          }
                                        • end: {...}
                                          • line: 85
                                          • column: 15
                                          }
                                        }
                                      • name: "Array"
                                      }
                                    • property: Identifier {...}
                                      • type: "Identifier"
                                      • start: 1891
                                      • end: 1895
                                      • loc: {...}
                                        • start: {...}
                                          • line: 85
                                          • column: 16
                                          }
                                        • end: {...}
                                          • line: 85
                                          • column: 20
                                          }
                                        }
                                      • name: "from"
                                      }
                                    • computed: false
                                    • optional: false
                                    }
                                  • arguments: [...] (1)
                                    • Identifier {...}
                                      • type: "Identifier"
                                      • start: 1896
                                      • end: 1902
                                      • loc: {...}
                                        • start: {...}
                                          • line: 85
                                          • column: 21
                                          }
                                        • end: {...}
                                          • line: 85
                                          • column: 27
                                          }
                                        }
                                      • name: "values"
                                      }
                                    ]
                                  • optional: false
                                  }
                                • property: Identifier {...}
                                  • type: "Identifier"
                                  • start: 1904
                                  • end: 1908
                                  • loc: {...}
                                    • start: {...}
                                      • line: 85
                                      • column: 29
                                      }
                                    • end: {...}
                                      • line: 85
                                      • column: 33
                                      }
                                    }
                                  • name: "sort"
                                  }
                                • computed: false
                                • optional: false
                                }
                              • arguments: []
                              • optional: false
                              }
                            • body: Fragment {...}
                              • type: "Fragment"
                              • nodes: [...] (3)
                                • Text {...}
                                  • type: "Text"
                                  • start: 1920
                                  • end: 1925
                                  • raw: "\n\t\t\t\t"
                                  • data: "\n\t\t\t\t"
                                  }
                                • RegularElement {...}
                                  • type: "RegularElement"
                                  • start: 1925
                                  • end: 2002
                                  • name: "li"
                                  • attributes: [...] (2)
                                    • AnimateDirective {...}
                                      • start: 1929
                                      • end: 1959
                                      • type: "AnimateDirective"
                                      • name: "flip"
                                      • expression: ObjectExpression {...}
                                        • type: "ObjectExpression"
                                        • start: 1943
                                        • end: 1958
                                        • loc: {...}
                                          • start: {...}
                                            • line: 86
                                            • column: 22
                                            }
                                          • end: {...}
                                            • line: 86
                                            • column: 37
                                            }
                                          }
                                        • properties: [...] (1)
                                          • Property {...}
                                            • type: "Property"
                                            • start: 1944
                                            • end: 1957
                                            • loc: {...}
                                              • start: {...}
                                                • line: 86
                                                • column: 23
                                                }
                                              • end: {...}
                                                • line: 86
                                                • column: 36
                                                }
                                              }
                                            • method: false
                                            • shorthand: false
                                            • computed: false
                                            • key: Identifier {...}
                                              • type: "Identifier"
                                              • start: 1944
                                              • end: 1952
                                              • loc: {...}
                                                • start: {...}
                                                  • line: 86
                                                  • column: 23
                                                  }
                                                • end: {...}
                                                  • line: 86
                                                  • column: 31
                                                  }
                                                }
                                              • name: "duration"
                                              }
                                            • value: Literal {...}
                                              • type: "Literal"
                                              • start: 1954
                                              • end: 1957
                                              • loc: {...}
                                                • start: {...}
                                                  • line: 86
                                                  • column: 33
                                                  }
                                                • end: {...}
                                                  • line: 86
                                                  • column: 36
                                                  }
                                                }
                                              • value: 300
                                              • raw: "300"
                                              }
                                            • kind: "init"
                                            }
                                          ]
                                        }
                                      • modifiers: []
                                      }
                                    • TransitionDirective {...}
                                      • start: 1960
                                      • end: 1993
                                      • type: "TransitionDirective"
                                      • name: "fade"
                                      • expression: ObjectExpression {...}
                                        • type: "ObjectExpression"
                                        • start: 1977
                                        • end: 1992
                                        • loc: {...}
                                          • start: {...}
                                            • line: 86
                                            • column: 56
                                            }
                                          • end: {...}
                                            • line: 86
                                            • column: 71
                                            }
                                          }
                                        • properties: [...] (1)
                                          • Property {...}
                                            • type: "Property"
                                            • start: 1978
                                            • end: 1991
                                            • loc: {...}
                                              • start: {...}
                                                • line: 86
                                                • column: 57
                                                }
                                              • end: {...}
                                                • line: 86
                                                • column: 70
                                                }
                                              }
                                            • method: false
                                            • shorthand: false
                                            • computed: false
                                            • key: Identifier {...}
                                              • type: "Identifier"
                                              • start: 1978
                                              • end: 1986
                                              • loc: {...}
                                                • start: {...}
                                                  • line: 86
                                                  • column: 57
                                                  }
                                                • end: {...}
                                                  • line: 86
                                                  • column: 65
                                                  }
                                                }
                                              • name: "duration"
                                              }
                                            • value: Literal {...}
                                              • type: "Literal"
                                              • start: 1988
                                              • end: 1991
                                              • loc: {...}
                                                • start: {...}
                                                  • line: 86
                                                  • column: 67
                                                  }
                                                • end: {...}
                                                  • line: 86
                                                  • column: 70
                                                  }
                                                }
                                              • value: 300
                                              • raw: "300"
                                              }
                                            • kind: "init"
                                            }
                                          ]
                                        }
                                      • modifiers: []
                                      • intro: true
                                      • outro: true
                                      }
                                    ]
                                  • fragment: Fragment {...}
                                    • type: "Fragment"
                                    • nodes: [...] (1)
                                      • ExpressionTag {...}
                                        • type: "ExpressionTag"
                                        • start: 1994
                                        • end: 1997
                                        • expression: Identifier {...}
                                          • type: "Identifier"
                                          • start: 1995
                                          • end: 1996
                                          • loc: {...}
                                            • start: {...}
                                              • line: 86
                                              • column: 74
                                              }
                                            • end: {...}
                                              • line: 86
                                              • column: 75
                                              }
                                            }
                                          • name: "s"
                                          }
                                        }
                                      ]
                                    }
                                  }
                                • Text {...}
                                  • type: "Text"
                                  • start: 2002
                                  • end: 2006
                                  • raw: "\n\t\t\t"
                                  • data: "\n\t\t\t"
                                  }
                                ]
                              }
                            • context: Identifier {...}
                              • type: "Identifier"
                              • name: "s"
                              • start: 1914
                              • loc: {...}
                                • start: {...}
                                  • line: 85
                                  • column: 39
                                  • character: 1914
                                  }
                                • end: {...}
                                  • line: 85
                                  • column: 40
                                  • character: 1915
                                  }
                                }
                              • end: 1915
                              • typeAnnotation: undefined
                              }
                            • index: undefined
                            • key: Identifier {...}
                              • type: "Identifier"
                              • start: 1917
                              • end: 1918
                              • loc: {...}
                                • start: {...}
                                  • line: 85
                                  • column: 42
                                  }
                                • end: {...}
                                  • line: 85
                                  • column: 43
                                  }
                                }
                              • name: "s"
                              }
                            }
                          • Text {...}
                            • type: "Text"
                            • start: 2013
                            • end: 2016
                            • raw: "\n\t\t"
                            • data: "\n\t\t"
                            }
                          ]
                        }
                      }
                    • Text {...}
                      • type: "Text"
                      • start: 2021
                      • end: 2023
                      • raw: "\n\t"
                      • data: "\n\t"
                      }
                    ]
                  }
                }
              • Text {...}
                • type: "Text"
                • start: 2029
                • end: 2032
                • raw: " "
                • data: " "
                }
              • RegularElement {...}
                • type: "RegularElement"
                • start: 2032
                • end: 2128
                • name: "div"
                • attributes: []
                • fragment: Fragment {...}
                  • type: "Fragment"
                  • nodes: [...] (5)
                    • Text {...}
                      • type: "Text"
                      • start: 2037
                      • end: 2040
                      • raw: "\n\t\t"
                      • data: "\n\t\t"
                      }
                    • RegularElement {...}
                      • type: "RegularElement"
                      • start: 2040
                      • end: 2067
                      • name: "p"
                      • attributes: []
                      • fragment: Fragment {...}
                        • type: "Fragment"
                        • nodes: [...] (1)
                          • Text {...}
                            • type: "Text"
                            • start: 2043
                            • end: 2063
                            • raw: "Commands sent to API"
                            • data: "Commands sent to API"
                            }
                          ]
                        }
                      }
                    • Text {...}
                      • type: "Text"
                      • start: 2067
                      • end: 2071
                      • raw: " "
                      • data: " "
                      }
                    • EachBlock {...}
                      • type: "EachBlock"
                      • start: 2071
                      • end: 2120
                      • expression: Identifier {...}
                        • type: "Identifier"
                        • start: 2078
                        • end: 2086
                        • loc: {...}
                          • start: {...}
                            • line: 94
                            • column: 9
                            }
                          • end: {...}
                            • line: 94
                            • column: 17
                            }
                          }
                        • name: "commands"
                        }
                      • body: Fragment {...}
                        • type: "Fragment"
                        • nodes: [...] (3)
                          • Text {...}
                            • type: "Text"
                            • start: 2092
                            • end: 2096
                            • raw: "\n\t\t\t"
                            • data: "\n\t\t\t"
                            }
                          • RegularElement {...}
                            • type: "RegularElement"
                            • start: 2096
                            • end: 2110
                            • name: "div"
                            • attributes: []
                            • fragment: Fragment {...}
                              • type: "Fragment"
                              • nodes: [...] (1)
                                • ExpressionTag {...}
                                  • type: "ExpressionTag"
                                  • start: 2101
                                  • end: 2104
                                  • expression: Identifier {...}
                                    • type: "Identifier"
                                    • start: 2102
                                    • end: 2103
                                    • loc: {...}
                                      • start: {...}
                                        • line: 95
                                        • column: 9
                                        }
                                      • end: {...}
                                        • line: 95
                                        • column: 10
                                        }
                                      }
                                    • name: "c"
                                    }
                                  }
                                ]
                              }
                            }
                          • Text {...}
                            • type: "Text"
                            • start: 2110
                            • end: 2113
                            • raw: "\n\t\t"
                            • data: "\n\t\t"
                            }
                          ]
                        }
                      • context: Identifier {...}
                        • type: "Identifier"
                        • name: "c"
                        • start: 2090
                        • loc: {...}
                          • start: {...}
                            • line: 94
                            • column: 21
                            • character: 2090
                            }
                          • end: {...}
                            • line: 94
                            • column: 22
                            • character: 2091
                            }
                          }
                        • end: 2091
                        • typeAnnotation: undefined
                        }
                      • index: undefined
                      • key: undefined
                      }
                    • Text {...}
                      • type: "Text"
                      • start: 2120
                      • end: 2122
                      • raw: "\n\t"
                      • data: "\n\t"
                      }
                    ]
                  }
                }
              • Text {...}
                • type: "Text"
                • start: 2128
                • end: 2129
                • raw: "\n"
                • data: "\n"
                }
              ]
            }
          }
        ]
      }
    • options: null
    • instance: Script {...}
      • type: "Script"
      • start: 0
      • end: 1490
      • context: "default"
      • content: Program {...}
        • type: "Program"
        • start: 8
        • end: 1481
        • loc: {...}
          • start: {...}
            • line: 1
            • column: 0
            }
          • end: {...}
            • line: 65
            • column: 0
            }
          }
        • body: [...] (11)
          • ImportDeclaration {...}
            • type: "ImportDeclaration"
            • start: 9
            • end: 47
            • loc: {...}
              • start: {...}
                • line: 2
                • column: 0
                }
              • end: {...}
                • line: 2
                • column: 38
                }
              }
            • specifiers: [...] (1)
              • ImportSpecifier {...}
                • type: "ImportSpecifier"
                • start: 18
                • end: 22
                • loc: {...}
                  • start: {...}
                    • line: 2
                    • column: 9
                    }
                  • end: {...}
                    • line: 2
                    • column: 13
                    }
                  }
                • imported: Identifier {...}
                  • type: "Identifier"
                  • start: 18
                  • end: 22
                  • loc: {...}
                    • start: {...}
                      • line: 2
                      • column: 9
                      }
                    • end: {...}
                      • line: 2
                      • column: 13
                      }
                    }
                  • name: "flip"
                  }
                • local: Identifier {...}
                  • type: "Identifier"
                  • start: 18
                  • end: 22
                  • loc: {...}
                    • start: {...}
                      • line: 2
                      • column: 9
                      }
                    • end: {...}
                      • line: 2
                      • column: 13
                      }
                    }
                  • name: "flip"
                  }
                }
              ]
            • source: Literal {...}
              • type: "Literal"
              • start: 30
              • end: 46
              • loc: {...}
                • start: {...}
                  • line: 2
                  • column: 21
                  }
                • end: {...}
                  • line: 2
                  • column: 37
                  }
                }
              • value: "svelte/animate"
              • raw: "'svelte/animate'"
              }
            }
          • ImportDeclaration {...}
            • type: "ImportDeclaration"
            • start: 48
            • end: 89
            • loc: {...}
              • start: {...}
                • line: 3
                • column: 0
                }
              • end: {...}
                • line: 3
                • column: 41
                }
              }
            • specifiers: [...] (1)
              • ImportSpecifier {...}
                • type: "ImportSpecifier"
                • start: 57
                • end: 61
                • loc: {...}
                  • start: {...}
                    • line: 3
                    • column: 9
                    }
                  • end: {...}
                    • line: 3
                    • column: 13
                    }
                  }
                • imported: Identifier {...}
                  • type: "Identifier"
                  • start: 57
                  • end: 61
                  • loc: {...}
                    • start: {...}
                      • line: 3
                      • column: 9
                      }
                    • end: {...}
                      • line: 3
                      • column: 13
                      }
                    }
                  • name: "fade"
                  }
                • local: Identifier {...}
                  • type: "Identifier"
                  • start: 57
                  • end: 61
                  • loc: {...}
                    • start: {...}
                      • line: 3
                      • column: 9
                      }
                    • end: {...}
                      • line: 3
                      • column: 13
                      }
                    }
                  • name: "fade"
                  }
                }
              ]
            • source: Literal {...}
              • type: "Literal"
              • start: 69
              • end: 88
              • loc: {...}
                • start: {...}
                  • line: 3
                  • column: 21
                  }
                • end: {...}
                  • line: 3
                  • column: 40
                  }
                }
              • value: "svelte/transition"
              • raw: "'svelte/transition'"
              }
            }
          • FunctionDeclaration {...}
            • type: "FunctionDeclaration"
            • start: 92
            • end: 873
            • loc: {...}
              • start: {...}
                • line: 5
                • column: 0
                }
              • end: {...}
                • line: 35
                • column: 1
                }
              }
            • id: Identifier {...}
              • type: "Identifier"
              • start: 101
              • end: 108
              • loc: {...}
                • start: {...}
                  • line: 5
                  • column: 9
                  }
                • end: {...}
                  • line: 5
                  • column: 16
                  }
                }
              • name: "updater"
              }
            • expression: false
            • generator: false
            • async: false
            • params: [...] (1)
              • ObjectPattern {...}
                • type: "ObjectPattern"
                • start: 109
                • end: 149
                • loc: {...}
                  • start: {...}
                    • line: 5
                    • column: 17
                    }
                  • end: {...}
                    • line: 5
                    • column: 57
                    }
                  }
                • properties: [...] (5)
                  • Property {...}
                    • type: "Property"
                    • start: 111
                    • end: 117
                    • loc: {...}
                      • start: {...}
                        • line: 5
                        • column: 19
                        }
                      • end: {...}
                        • line: 5
                        • column: 25
                        }
                      }
                    • method: false
                    • shorthand: true
                    • computed: false
                    • key: Identifier {...}
                      • type: "Identifier"
                      • start: 111
                      • end: 117
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 19
                          }
                        • end: {...}
                          • line: 5
                          • column: 25
                          }
                        }
                      • name: "getKey"
                      }
                    • kind: "init"
                    • value: Identifier {...}
                      • type: "Identifier"
                      • start: 111
                      • end: 117
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 19
                          }
                        • end: {...}
                          • line: 5
                          • column: 25
                          }
                        }
                      • name: "getKey"
                      }
                    }
                  • Property {...}
                    • type: "Property"
                    • start: 119
                    • end: 122
                    • loc: {...}
                      • start: {...}
                        • line: 5
                        • column: 27
                        }
                      • end: {...}
                        • line: 5
                        • column: 30
                        }
                      }
                    • method: false
                    • shorthand: true
                    • computed: false
                    • key: Identifier {...}
                      • type: "Identifier"
                      • start: 119
                      • end: 122
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 27
                          }
                        • end: {...}
                          • line: 5
                          • column: 30
                          }
                        }
                      • name: "add"
                      }
                    • kind: "init"
                    • value: Identifier {...}
                      • type: "Identifier"
                      • start: 119
                      • end: 122
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 27
                          }
                        • end: {...}
                          • line: 5
                          • column: 30
                          }
                        }
                      • name: "add"
                      }
                    }
                  • Property {...}
                    • type: "Property"
                    • start: 124
                    • end: 130
                    • loc: {...}
                      • start: {...}
                        • line: 5
                        • column: 32
                        }
                      • end: {...}
                        • line: 5
                        • column: 38
                        }
                      }
                    • method: false
                    • shorthand: true
                    • computed: false
                    • key: Identifier {...}
                      • type: "Identifier"
                      • start: 124
                      • end: 130
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 32
                          }
                        • end: {...}
                          • line: 5
                          • column: 38
                          }
                        }
                      • name: "remove"
                      }
                    • kind: "init"
                    • value: Identifier {...}
                      • type: "Identifier"
                      • start: 124
                      • end: 130
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 32
                          }
                        • end: {...}
                          • line: 5
                          • column: 38
                          }
                        }
                      • name: "remove"
                      }
                    }
                  • Property {...}
                    • type: "Property"
                    • start: 132
                    • end: 138
                    • loc: {...}
                      • start: {...}
                        • line: 5
                        • column: 40
                        }
                      • end: {...}
                        • line: 5
                        • column: 46
                        }
                      }
                    • method: false
                    • shorthand: true
                    • computed: false
                    • key: Identifier {...}
                      • type: "Identifier"
                      • start: 132
                      • end: 138
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 40
                          }
                        • end: {...}
                          • line: 5
                          • column: 46
                          }
                        }
                      • name: "update"
                      }
                    • kind: "init"
                    • value: Identifier {...}
                      • type: "Identifier"
                      • start: 132
                      • end: 138
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 40
                          }
                        • end: {...}
                          • line: 5
                          • column: 46
                          }
                        }
                      • name: "update"
                      }
                    }
                  • Property {...}
                    • type: "Property"
                    • start: 140
                    • end: 147
                    • loc: {...}
                      • start: {...}
                        • line: 5
                        • column: 48
                        }
                      • end: {...}
                        • line: 5
                        • column: 55
                        }
                      }
                    • method: false
                    • shorthand: true
                    • computed: false
                    • key: Identifier {...}
                      • type: "Identifier"
                      • start: 140
                      • end: 147
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 48
                          }
                        • end: {...}
                          • line: 5
                          • column: 55
                          }
                        }
                      • name: "isEqual"
                      }
                    • kind: "init"
                    • value: Identifier {...}
                      • type: "Identifier"
                      • start: 140
                      • end: 147
                      • loc: {...}
                        • start: {...}
                          • line: 5
                          • column: 48
                          }
                        • end: {...}
                          • line: 5
                          • column: 55
                          }
                        }
                      • name: "isEqual"
                      }
                    }
                  ]
                }
              ]
            • body: BlockStatement {...}
              • type: "BlockStatement"
              • start: 151
              • end: 873
              • loc: {...}
                • start: {...}
                  • line: 5
                  • column: 59
                  }
                • end: {...}
                  • line: 35
                  • column: 1
                  }
                }
              • body: [...] (2)
                • VariableDeclaration {...}
                  • type: "VariableDeclaration"
                  • start: 155
                  • end: 182
                  • loc: {...}
                    • start: {...}
                      • line: 6
                      • column: 2
                      }
                    • end: {...}
                      • line: 6
                      • column: 29
                      }
                    }
                  • declarations: [...] (1)
                    • VariableDeclarator {...}
                      • type: "VariableDeclarator"
                      • start: 159
                      • end: 181
                      • loc: {...}
                        • start: {...}
                          • line: 6
                          • column: 6
                          }
                        • end: {...}
                          • line: 6
                          • column: 28
                          }
                        }
                      • id: Identifier {...}
                        • type: "Identifier"
                        • start: 159
                        • end: 169
                        • loc: {...}
                          • start: {...}
                            • line: 6
                            • column: 6
                            }
                          • end: {...}
                            • line: 6
                            • column: 16
                            }
                          }
                        • name: "activeData"
                        }
                      • init: NewExpression {...}
                        • type: "NewExpression"
                        • start: 172
                        • end: 181
                        • loc: {...}
                          • start: {...}
                            • line: 6
                            • column: 19
                            }
                          • end: {...}
                            • line: 6
                            • column: 28
                            }
                          }
                        • callee: Identifier {...}
                          • type: "Identifier"
                          • start: 176
                          • end: 179
                          • loc: {...}
                            • start: {...}
                              • line: 6
                              • column: 23
                              }
                            • end: {...}
                              • line: 6
                              • column: 26
                              }
                            }
                          • name: "Map"
                          }
                        • arguments: []
                        }
                      }
                    ]
                  • kind: "var"
                  }
                • ReturnStatement {...}
                  • type: "ReturnStatement"
                  • start: 185
                  • end: 870
                  • loc: {...}
                    • start: {...}
                      • line: 7
                      • column: 2
                      }
                    • end: {...}
                      • line: 33
                      • column: 4
                      }
                    }
                  • argument: ArrowFunctionExpression {...}
                    • type: "ArrowFunctionExpression"
                    • start: 192
                    • end: 869
                    • loc: {...}
                      • start: {...}
                        • line: 7
                        • column: 9
                        }
                      • end: {...}
                        • line: 33
                        • column: 3
                        }
                      }
                    • id: null
                    • expression: false
                    • generator: false
                    • async: false
                    • params: [...] (1)
                      • Identifier {...}
                        • type: "Identifier"
                        • start: 193
                        • end: 200
                        • loc: {...}
                          • start: {...}
                            • line: 7
                            • column: 10
                            }
                          • end: {...}
                            • line: 7
                            • column: 17
                            }
                          }
                        • name: "newData"
                        }
                      ]
                    • body: BlockStatement {...}
                      • type: "BlockStatement"
                      • start: 205
                      • end: 869
                      • loc: {...}
                        • start: {...}
                          • line: 7
                          • column: 22
                          }
                        • end: {...}
                          • line: 33
                          • column: 3
                          }
                        }
                      • body: [...] (3)
                        • VariableDeclaration {...}
                          • type: "VariableDeclaration"
                          • start: 211
                          • end: 258
                          • loc: {...}
                            • start: {...}
                              • line: 8
                              • column: 4
                              }
                            • end: {...}
                              • line: 8
                              • column: 51
                              }
                            }
                          • declarations: [...] (1)
                            • VariableDeclarator {...}
                              • type: "VariableDeclarator"
                              • start: 215
                              • end: 257
                              • loc: {...}
                                • start: {...}
                                  • line: 8
                                  • column: 8
                                  }
                                • end: {...}
                                  • line: 8
                                  • column: 50
                                  }
                                }
                              • id: Identifier {...}
                                • type: "Identifier"
                                • start: 215
                                • end: 226
                                • loc: {...}
                                  • start: {...}
                                    • line: 8
                                    • column: 8
                                    }
                                  • end: {...}
                                    • line: 8
                                    • column: 19
                                    }
                                  }
                                • name: "newDataKeys"
                                }
                              • init: NewExpression {...}
                                • type: "NewExpression"
                                • start: 229
                                • end: 257
                                • loc: {...}
                                  • start: {...}
                                    • line: 8
                                    • column: 22
                                    }
                                  • end: {...}
                                    • line: 8
                                    • column: 50
                                    }
                                  }
                                • callee: Identifier {...}
                                  • type: "Identifier"
                                  • start: 233
                                  • end: 236
                                  • loc: {...}
                                    • start: {...}
                                      • line: 8
                                      • column: 26
                                      }
                                    • end: {...}
                                      • line: 8
                                      • column: 29
                                      }
                                    }
                                  • name: "Set"
                                  }
                                • arguments: [...] (1)
                                  • CallExpression {...}
                                    • type: "CallExpression"
                                    • start: 237
                                    • end: 256
                                    • loc: {...}
                                      • start: {...}
                                        • line: 8
                                        • column: 30
                                        }
                                      • end: {...}
                                        • line: 8
                                        • column: 49
                                        }
                                      }
                                    • callee: MemberExpression {...}
                                      • type: "MemberExpression"
                                      • start: 237
                                      • end: 248
                                      • loc: {...}
                                        • start: {...}
                                          • line: 8
                                          • column: 30
                                          }
                                        • end: {...}
                                          • line: 8
                                          • column: 41
                                          }
                                        }
                                      • object: Identifier {...}
                                        • type: "Identifier"
                                        • start: 237
                                        • end: 244
                                        • loc: {...}
                                          • start: {...}
                                            • line: 8
                                            • column: 30
                                            }
                                          • end: {...}
                                            • line: 8
                                            • column: 37
                                            }
                                          }
                                        • name: "newData"
                                        }
                                      • property: Identifier {...}
                                        • type: "Identifier"
                                        • start: 245
                                        • end: 248
                                        • loc: {...}
                                          • start: {...}
                                            • line: 8
                                            • column: 38
                                            }
                                          • end: {...}
                                            • line: 8
                                            • column: 41
                                            }
                                          }
                                        • name: "map"
                                        }
                                      • computed: false
                                      • optional: false
                                      }
                                    • arguments: [...] (1)
                                      • Identifier {...}
                                        • type: "Identifier"
                                        • start: 249
                                        • end: 255
                                        • loc: {...}
                                          • start: {...}
                                            • line: 8
                                            • column: 42
                                            }
                                          • end: {...}
                                            • line: 8
                                            • column: 48
                                            }
                                          }
                                        • name: "getKey"
                                        }
                                      ]
                                    • optional: false
                                    }
                                  ]
                                }
                              }
                            ]
                          • kind: "let"
                          }
                        • ForOfStatement {...}
                          • type: "ForOfStatement"
                          • start: 263
                          • end: 399
                          • loc: {...}
                            • start: {...}
                              • line: 9
                              • column: 4
                              }
                            • end: {...}
                              • line: 14
                              • column: 5
                              }
                            }
                          • await: false
                          • left: VariableDeclaration {...}
                            • type: "VariableDeclaration"
                            • start: 267
                            • end: 274
                            • loc: {...}
                              • start: {...}
                                • line: 9
                                • column: 8
                                }
                              • end: {...}
                                • line: 9
                                • column: 15
                                }
                              }
                            • declarations: [...] (1)
                              • VariableDeclarator {...}
                                • type: "VariableDeclarator"
                                • start: 271
                                • end: 274
                                • loc: {...}
                                  • start: {...}
                                    • line: 9
                                    • column: 12
                                    }
                                  • end: {...}
                                    • line: 9
                                    • column: 15
                                    }
                                  }
                                • id: Identifier {...}
                                  • type: "Identifier"
                                  • start: 271
                                  • end: 274
                                  • loc: {...}
                                    • start: {...}
                                      • line: 9
                                      • column: 12
                                      }
                                    • end: {...}
                                      • line: 9
                                      • column: 15
                                      }
                                    }
                                  • name: "key"
                                  }
                                • init: null
                                }
                              ]
                            • kind: "let"
                            }
                          • right: CallExpression {...}
                            • type: "CallExpression"
                            • start: 278
                            • end: 295
                            • loc: {...}
                              • start: {...}
                                • line: 9
                                • column: 19
                                }
                              • end: {...}
                                • line: 9
                                • column: 36
                                }
                              }
                            • callee: MemberExpression {...}
                              • type: "MemberExpression"
                              • start: 278
                              • end: 293
                              • loc: {...}
                                • start: {...}
                                  • line: 9
                                  • column: 19
                                  }
                                • end: {...}
                                  • line: 9
                                  • column: 34
                                  }
                                }
                              • object: Identifier {...}
                                • type: "Identifier"
                                • start: 278
                                • end: 288
                                • loc: {...}
                                  • start: {...}
                                    • line: 9
                                    • column: 19
                                    }
                                  • end: {...}
                                    • line: 9
                                    • column: 29
                                    }
                                  }
                                • name: "activeData"
                                }
                              • property: Identifier {...}
                                • type: "Identifier"
                                • start: 289
                                • end: 293
                                • loc: {...}
                                  • start: {...}
                                    • line: 9
                                    • column: 30
                                    }
                                  • end: {...}
                                    • line: 9
                                    • column: 34
                                    }
                                  }
                                • name: "keys"
                                }
                              • computed: false
                              • optional: false
                              }
                            • arguments: []
                            • optional: false
                            }
                          • body: BlockStatement {...}
                            • type: "BlockStatement"
                            • start: 297
                            • end: 399
                            • loc: {...}
                              • start: {...}
                                • line: 9
                                • column: 38
                                }
                              • end: {...}
                                • line: 14
                                • column: 5
                                }
                              }
                            • body: [...] (1)
                              • IfStatement {...}
                                • type: "IfStatement"
                                • start: 305
                                • end: 393
                                • loc: {...}
                                  • start: {...}
                                    • line: 10
                                    • column: 6
                                    }
                                  • end: {...}
                                    • line: 13
                                    • column: 7
                                    }
                                  }
                                • test: UnaryExpression {...}
                                  • type: "UnaryExpression"
                                  • start: 308
                                  • end: 329
                                  • loc: {...}
                                    • start: {...}
                                      • line: 10
                                      • column: 9
                                      }
                                    • end: {...}
                                      • line: 10
                                      • column: 30
                                      }
                                    }
                                  • operator: "!"
                                  • prefix: true
                                  • argument: CallExpression {...}
                                    • type: "CallExpression"
                                    • start: 309
                                    • end: 329
                                    • loc: {...}
                                      • start: {...}
                                        • line: 10
                                        • column: 10
                                        }
                                      • end: {...}
                                        • line: 10
                                        • column: 30
                                        }
                                      }
                                    • callee: MemberExpression {...}
                                      • type: "MemberExpression"
                                      • start: 309
                                      • end: 324
                                      • loc: {...}
                                        • start: {...}
                                          • line: 10
                                          • column: 10
                                          }
                                        • end: {...}
                                          • line: 10
                                          • column: 25
                                          }
                                        }
                                      • object: Identifier {...}
                                        • type: "Identifier"
                                        • start: 309
                                        • end: 320
                                        • loc: {...}
                                          • start: {...}
                                            • line: 10
                                            • column: 10
                                            }
                                          • end: {...}
                                            • line: 10
                                            • column: 21
                                            }
                                          }
                                        • name: "newDataKeys"
                                        }
                                      • property: Identifier {...}
                                        • type: "Identifier"
                                        • start: 321
                                        • end: 324
                                        • loc: {...}
                                          • start: {...}
                                            • line: 10
                                            • column: 22
                                            }
                                          • end: {...}
                                            • line: 10
                                            • column: 25
                                            }
                                          }
                                        • name: "has"
                                        }
                                      • computed: false
                                      • optional: false
                                      }
                                    • arguments: [...] (1)
                                      • Identifier {...}
                                        • type: "Identifier"
                                        • start: 325
                                        • end: 328
                                        • loc: {...}
                                          • start: {...}
                                            • line: 10
                                            • column: 26
                                            }
                                          • end: {...}
                                            • line: 10
                                            • column: 29
                                            }
                                          }
                                        • name: "key"
                                        }
                                      ]
                                    • optional: false
                                    }
                                  }
                                • consequent: BlockStatement {...}
                                  • type: "BlockStatement"
                                  • start: 331
                                  • end: 393
                                  • loc: {...}
                                    • start: {...}
                                      • line: 10
                                      • column: 32
                                      }
                                    • end: {...}
                                      • line: 13
                                      • column: 7
                                      }
                                    }
                                  • body: [...] (2)
                                    • ExpressionStatement {...}
                                      • type: "ExpressionStatement"
                                      • start: 341
                                      • end: 353
                                      • loc: {...}
                                        • start: {...}
                                          • line: 11
                                          • column: 8
                                          }
                                        • end: {...}
                                          • line: 11
                                          • column: 20
                                          }
                                        }
                                      • expression: CallExpression {...}
                                        • type: "CallExpression"
                                        • start: 341
                                        • end: 352
                                        • loc: {...}
                                          • start: {...}
                                            • line: 11
                                            • column: 8
                                            }
                                          • end: {...}
                                            • line: 11
                                            • column: 19
                                            }
                                          }
                                        • callee: Identifier {...}
                                          • type: "Identifier"
                                          • start: 341
                                          • end: 347
                                          • loc: {...}
                                            • start: {...}
                                              • line: 11
                                              • column: 8
                                              }
                                            • end: {...}
                                              • line: 11
                                              • column: 14
                                              }
                                            }
                                          • name: "remove"
                                          }
                                        • arguments: [...] (1)
                                          • Identifier {...}
                                            • type: "Identifier"
                                            • start: 348
                                            • end: 351
                                            • loc: {...}
                                              • start: {...}
                                                • line: 11
                                                • column: 15
                                                }
                                              • end: {...}
                                                • line: 11
                                                • column: 18
                                                }
                                              }
                                            • name: "key"
                                            }
                                          ]
                                        • optional: false
                                        }
                                      }
                                    • ExpressionStatement {...}
                                      • type: "ExpressionStatement"
                                      • start: 362
                                      • end: 385
                                      • loc: {...}
                                        • start: {...}
                                          • line: 12
                                          • column: 8
                                          }
                                        • end: {...}
                                          • line: 12
                                          • column: 31
                                          }
                                        }
                                      • expression: CallExpression {...}
                                        • type: "CallExpression"
                                        • start: 362
                                        • end: 384
                                        • loc: {...}
                                          • start: {...}
                                            • line: 12
                                            • column: 8
                                            }
                                          • end: {...}
                                            • line: 12
                                            • column: 30
                                            }
                                          }
                                        • callee: MemberExpression {...}
                                          • type: "MemberExpression"
                                          • start: 362
                                          • end: 379
                                          • loc: {...}
                                            • start: {...}
                                              • line: 12
                                              • column: 8
                                              }
                                            • end: {...}
                                              • line: 12
                                              • column: 25
                                              }
                                            }
                                          • object: Identifier {...}
                                            • type: "Identifier"
                                            • start: 362
                                            • end: 372
                                            • loc: {...}
                                              • start: {...}
                                                • line: 12
                                                • column: 8
                                                }
                                              • end: {...}
                                                • line: 12
                                                • column: 18
                                                }
                                              }
                                            • name: "activeData"
                                            }
                                          • property: Identifier {...}
                                            • type: "Identifier"
                                            • start: 373
                                            • end: 379
                                            • loc: {...}
                                              • start: {...}
                                                • line: 12
                                                • column: 19
                                                }
                                              • end: {...}
                                                • line: 12
                                                • column: 25
                                                }
                                              }
                                            • name: "delete"
                                            }
                                          • computed: false
                                          • optional: false
                                          }
                                        • arguments: [...] (1)
                                          • Identifier {...}
                                            • type: "Identifier"
                                            • start: 380
                                            • end: 383
                                            • loc: {...}
                                              • start: {...}
                                                • line: 12
                                                • column: 26
                                                }
                                              • end: {...}
                                                • line: 12
                                                • column: 29
                                                }
                                              }
                                            • name: "key"
                                            }
                                          ]
                                        • optional: false
                                        }
                                      }
                                    ]
                                  }
                                • alternate: null
                                }
                              ]
                            }
                          }
                        • ForOfStatement {...}
                          • type: "ForOfStatement"
                          • start: 405
                          • end: 865
                          • loc: {...}
                            • start: {...}
                              • line: 16
                              • column: 4
                              }
                            • end: {...}
                              • line: 32
                              • column: 5
                              }
                            }
                          • await: false
                          • left: VariableDeclaration {...}
                            • type: "VariableDeclaration"
                            • start: 409
                            • end: 417
                            • loc: {...}
                              • start: {...}
                                • line: 16
                                • column: 8
                                }
                              • end: {...}
                                • line: 16
                                • column: 16
                                }
                              }
                            • declarations: [...] (1)
                              • VariableDeclarator {...}
                                • type: "VariableDeclarator"
                                • start: 413
                                • end: 417
                                • loc: {...}
                                  • start: {...}
                                    • line: 16
                                    • column: 12
                                    }
                                  • end: {...}
                                    • line: 16
                                    • column: 16
                                    }
                                  }
                                • id: Identifier {...}
                                  • type: "Identifier"
                                  • start: 413
                                  • end: 417
                                  • loc: {...}
                                    • start: {...}
                                      • line: 16
                                      • column: 12
                                      }
                                    • end: {...}
                                      • line: 16
                                      • column: 16
                                      }
                                    }
                                  • name: "data"
                                  }
                                • init: null
                                }
                              ]
                            • kind: "let"
                            }
                          • right: Identifier {...}
                            • type: "Identifier"
                            • start: 421
                            • end: 428
                            • loc: {...}
                              • start: {...}
                                • line: 16
                                • column: 20
                                }
                              • end: {...}
                                • line: 16
                                • column: 27
                                }
                              }
                            • name: "newData"
                            }
                          • body: BlockStatement {...}
                            • type: "BlockStatement"
                            • start: 430
                            • end: 865
                            • loc: {...}
                              • start: {...}
                                • line: 16
                                • column: 29
                                }
                              • end: {...}
                                • line: 32
                                • column: 5
                                }
                              }
                            • body: [...] (4)
                              • VariableDeclaration {...}
                                • type: "VariableDeclaration"
                                • start: 438
                                • end: 461
                                • loc: {...}
                                  • start: {...}
                                    • line: 17
                                    • column: 6
                                    }
                                  • end: {...}
                                    • line: 17
                                    • column: 29
                                    }
                                  }
                                • declarations: [...] (1)
                                  • VariableDeclarator {...}
                                    • type: "VariableDeclarator"
                                    • start: 442
                                    • end: 460
                                    • loc: {...}
                                      • start: {...}
                                        • line: 17
                                        • column: 10
                                        }
                                      • end: {...}
                                        • line: 17
                                        • column: 28
                                        }
                                      }
                                    • id: Identifier {...}
                                      • type: "Identifier"
                                      • start: 442
                                      • end: 445
                                      • loc: {...}
                                        • start: {...}
                                          • line: 17
                                          • column: 10
                                          }
                                        • end: {...}
                                          • line: 17
                                          • column: 13
                                          }
                                        }
                                      • name: "key"
                                      }
                                    • init: CallExpression {...}
                                      • type: "CallExpression"
                                      • start: 448
                                      • end: 460
                                      • loc: {...}
                                        • start: {...}
                                          • line: 17
                                          • column: 16
                                          }
                                        • end: {...}
                                          • line: 17
                                          • column: 28
                                          }
                                        }
                                      • callee: Identifier {...}
                                        • type: "Identifier"
                                        • start: 448
                                        • end: 454
                                        • loc: {...}
                                          • start: {...}
                                            • line: 17
                                            • column: 16
                                            }
                                          • end: {...}
                                            • line: 17
                                            • column: 22
                                            }
                                          }
                                        • name: "getKey"
                                        }
                                      • arguments: [...] (1)
                                        • Identifier {...}
                                          • type: "Identifier"
                                          • start: 455
                                          • end: 459
                                          • loc: {...}
                                            • start: {...}
                                              • line: 17
                                              • column: 23
                                              }
                                            • end: {...}
                                              • line: 17
                                              • column: 27
                                              }
                                            }
                                          • name: "data"
                                          }
                                        ]
                                      • optional: false
                                      }
                                    }
                                  ]
                                • kind: "let"
                                }
                              • ExpressionStatement {...}
                                • type: "ExpressionStatement"
                                • start: 468
                                • end: 489
                                • loc: {...}
                                  • start: {...}
                                    • line: 18
                                    • column: 6
                                    }
                                  • end: {...}
                                    • line: 18
                                    • column: 27
                                    }
                                  }
                                • expression: CallExpression {...}
                                  • type: "CallExpression"
                                  • start: 468
                                  • end: 488
                                  • loc: {...}
                                    • start: {...}
                                      • line: 18
                                      • column: 6
                                      }
                                    • end: {...}
                                      • line: 18
                                      • column: 26
                                      }
                                    }
                                  • callee: MemberExpression {...}
                                    • type: "MemberExpression"
                                    • start: 468
                                    • end: 483
                                    • loc: {...}
                                      • start: {...}
                                        • line: 18
                                        • column: 6
                                        }
                                      • end: {...}
                                        • line: 18
                                        • column: 21
                                        }
                                      }
                                    • object: Identifier {...}
                                      • type: "Identifier"
                                      • start: 468
                                      • end: 479
                                      • loc: {...}
                                        • start: {...}
                                          • line: 18
                                          • column: 6
                                          }
                                        • end: {...}
                                          • line: 18
                                          • column: 17
                                          }
                                        }
                                      • name: "newDataKeys"
                                      }
                                    • property: Identifier {...}
                                      • type: "Identifier"
                                      • start: 480
                                      • end: 483
                                      • loc: {...}
                                        • start: {...}
                                          • line: 18
                                          • column: 18
                                          }
                                        • end: {...}
                                          • line: 18
                                          • column: 21
                                          }
                                        }
                                      • name: "add"
                                      }
                                    • computed: false
                                    • optional: false
                                    }
                                  • arguments: [...] (1)
                                    • Identifier {...}
                                      • type: "Identifier"
                                      • start: 484
                                      • end: 487
                                      • loc: {...}
                                        • start: {...}
                                          • line: 18
                                          • column: 22
                                          }
                                        • end: {...}
                                          • line: 18
                                          • column: 25
                                          }
                                        }
                                      • name: "key"
                                      }
                                    ]
                                  • optional: false
                                  }
                                }
                              • VariableDeclaration {...}
                                • type: "VariableDeclaration"
                                • start: 497
                                • end: 536
                                • loc: {...}
                                  • start: {...}
                                    • line: 20
                                    • column: 6
                                    }
                                  • end: {...}
                                    • line: 20
                                    • column: 45
                                    }
                                  }
                                • declarations: [...] (1)
                                  • VariableDeclarator {...}
                                    • type: "VariableDeclarator"
                                    • start: 501
                                    • end: 535
                                    • loc: {...}
                                      • start: {...}
                                        • line: 20
                                        • column: 10
                                        }
                                      • end: {...}
                                        • line: 20
                                        • column: 44
                                        }
                                      }
                                    • id: Identifier {...}
                                      • type: "Identifier"
                                      • start: 501
                                      • end: 513
                                      • loc: {...}
                                        • start: {...}
                                          • line: 20
                                          • column: 10
                                          }
                                        • end: {...}
                                          • line: 20
                                          • column: 22
                                          }
                                        }
                                      • name: "existingItem"
                                      }
                                    • init: CallExpression {...}
                                      • type: "CallExpression"
                                      • start: 516
                                      • end: 535
                                      • loc: {...}
                                        • start: {...}
                                          • line: 20
                                          • column: 25
                                          }
                                        • end: {...}
                                          • line: 20
                                          • column: 44
                                          }
                                        }
                                      • callee: MemberExpression {...}
                                        • type: "MemberExpression"
                                        • start: 516
                                        • end: 530
                                        • loc: {...}
                                          • start: {...}
                                            • line: 20
                                            • column: 25
                                            }
                                          • end: {...}
                                            • line: 20
                                            • column: 39
                                            }
                                          }
                                        • object: Identifier {...}
                                          • type: "Identifier"
                                          • start: 516
                                          • end: 526
                                          • loc: {...}
                                            • start: {...}
                                              • line: 20
                                              • column: 25
                                              }
                                            • end: {...}
                                              • line: 20
                                              • column: 35
                                              }
                                            }
                                          • name: "activeData"
                                          }
                                        • property: Identifier {...}
                                          • type: "Identifier"
                                          • start: 527
                                          • end: 530
                                          • loc: {...}
                                            • start: {...}
                                              • line: 20
                                              • column: 36
                                              }
                                            • end: {...}
                                              • line: 20
                                              • column: 39
                                              }
                                            }
                                          • name: "get"
                                          }
                                        • computed: false
                                        • optional: false
                                        }
                                      • arguments: [...] (1)
                                        • Identifier {...}
                                          • type: "Identifier"
                                          • start: 531
                                          • end: 534
                                          • loc: {...}
                                            • start: {...}
                                              • line: 20
                                              • column: 40
                                              }
                                            • end: {...}
                                              • line: 20
                                              • column: 43
                                              }
                                            }
                                          • name: "key"
                                          }
                                        ]
                                      • optional: false
                                      }
                                    }
                                  ]
                                • kind: "let"
                                }
                              • IfStatement {...}
                                • type: "IfStatement"
                                • start: 543
                                • end: 859
                                • loc: {...}
                                  • start: {...}
                                    • line: 21
                                    • column: 6
                                    }
                                  • end: {...}
                                    • line: 31
                                    • column: 7
                                    }
                                  }
                                • test: Identifier {...}
                                  • type: "Identifier"
                                  • start: 546
                                  • end: 558
                                  • loc: {...}
                                    • start: {...}
                                      • line: 21
                                      • column: 9
                                      }
                                    • end: {...}
                                      • line: 21
                                      • column: 21
                                      }
                                    }
                                  • name: "existingItem"
                                  }
                                • consequent: BlockStatement {...}
                                  • type: "BlockStatement"
                                  • start: 560
                                  • end: 785
                                  • loc: {...}
                                    • start: {...}
                                      • line: 21
                                      • column: 23
                                      }
                                    • end: {...}
                                      • line: 28
                                      • column: 7
                                      }
                                    }
                                  • body: [...] (1)
                                    • IfStatement {...}
                                      • type: "IfStatement"
                                      • start: 662
                                      • end: 777
                                      • loc: {...}
                                        • start: {...}
                                          • line: 24
                                          • column: 8
                                          }
                                        • end: {...}
                                          • line: 27
                                          • column: 9
                                          }
                                        }
                                      • test: LogicalExpression {...}
                                        • type: "LogicalExpression"
                                        • start: 665
                                        • end: 703
                                        • loc: {...}
                                          • start: {...}
                                            • line: 24
                                            • column: 11
                                            }
                                          • end: {...}
                                            • line: 24
                                            • column: 49
                                            }
                                          }
                                        • left: Identifier {...}
                                          • type: "Identifier"
                                          • start: 665
                                          • end: 671
                                          • loc: {...}
                                            • start: {...}
                                              • line: 24
                                              • column: 11
                                              }
                                            • end: {...}
                                              • line: 24
                                              • column: 17
                                              }
                                            }
                                          • name: "update"
                                          }
                                        • operator: "&&"
                                        • right: UnaryExpression {...}
                                          • type: "UnaryExpression"
                                          • start: 675
                                          • end: 703
                                          • loc: {...}
                                            • start: {...}
                                              • line: 24
                                              • column: 21
                                              }
                                            • end: {...}
                                              • line: 24
                                              • column: 49
                                              }
                                            }
                                          • operator: "!"
                                          • prefix: true
                                          • argument: CallExpression {...}
                                            • type: "CallExpression"
                                            • start: 676
                                            • end: 703
                                            • loc: {...}
                                              • start: {...}
                                                • line: 24
                                                • column: 22
                                                }
                                              • end: {...}
                                                • line: 24
                                                • column: 49
                                                }
                                              }
                                            • callee: Identifier {...}
                                              • type: "Identifier"
                                              • start: 676
                                              • end: 683
                                              • loc: {...}
                                                • start: {...}
                                                  • line: 24
                                                  • column: 22
                                                  }
                                                • end: {...}
                                                  • line: 24
                                                  • column: 29
                                                  }
                                                }
                                              • name: "isEqual"
                                              }
                                            • arguments: [...] (2)
                                              • Identifier {...}
                                                • type: "Identifier"
                                                • start: 684
                                                • end: 696
                                                • loc: {...}
                                                  • start: {...}
                                                    • line: 24
                                                    • column: 30
                                                    }
                                                  • end: {...}
                                                    • line: 24
                                                    • column: 42
                                                    }
                                                  }
                                                • name: "existingItem"
                                                }
                                              • Identifier {...}
                                                • type: "Identifier"
                                                • start: 698
                                                • end: 702
                                                • loc: {...}
                                                  • start: {...}
                                                    • line: 24
                                                    • column: 44
                                                    }
                                                  • end: {...}
                                                    • line: 24
                                                    • column: 48
                                                    }
                                                  }
                                                • name: "data"
                                                }
                                              ]
                                            • optional: false
                                            }
                                          }
                                        }
                                      • consequent: BlockStatement {...}
                                        • type: "BlockStatement"
                                        • start: 705
                                        • end: 777
                                        • loc: {...}
                                          • start: {...}
                                            • line: 24
                                            • column: 51
                                            }
                                          • end: {...}
                                            • line: 27
                                            • column: 9
                                            }
                                          }
                                        • body: [...] (2)
                                          • ExpressionStatement {...}
                                            • type: "ExpressionStatement"
                                            • start: 717
                                            • end: 730
                                            • loc: {...}
                                              • start: {...}
                                                • line: 25
                                                • column: 10
                                                }
                                              • end: {...}
                                                • line: 25
                                                • column: 23
                                                }
                                              }
                                            • expression: CallExpression {...}
                                              • type: "CallExpression"
                                              • start: 717
                                              • end: 729
                                              • loc: {...}
                                                • start: {...}
                                                  • line: 25
                                                  • column: 10
                                                  }
                                                • end: {...}
                                                  • line: 25
                                                  • column: 22
                                                  }
                                                }
                                              • callee: Identifier {...}
                                                • type: "Identifier"
                                                • start: 717
                                                • end: 723
                                                • loc: {...}
                                                  • start: {...}
                                                    • line: 25
                                                    • column: 10
                                                    }
                                                  • end: {...}
                                                    • line: 25
                                                    • column: 16
                                                    }
                                                  }
                                                • name: "update"
                                                }
                                              • arguments: [...] (1)
                                                • Identifier {...}
                                                  • type: "Identifier"
                                                  • start: 724
                                                  • end: 728
                                                  • loc: {...}
                                                    • start: {...}
                                                      • line: 25
                                                      • column: 17
                                                      }
                                                    • end: {...}
                                                      • line: 25
                                                      • column: 21
                                                      }
                                                    }
                                                  • name: "data"
                                                  }
                                                ]
                                              • optional: false
                                              }
                                            }
                                          • ExpressionStatement {...}
                                            • type: "ExpressionStatement"
                                            • start: 741
                                            • end: 767
                                            • loc: {...}
                                              • start: {...}
                                                • line: 26
                                                • column: 10
                                                }
                                              • end: {...}
                                                • line: 26
                                                • column: 36
                                                }
                                              }
                                            • expression: CallExpression {...}
                                              • type: "CallExpression"
                                              • start: 741
                                              • end: 766
                                              • loc: {...}
                                                • start: {...}
                                                  • line: 26
                                                  • column: 10
                                                  }
                                                • end: {...}
                                                  • line: 26
                                                  • column: 35
                                                  }
                                                }
                                              • callee: MemberExpression {...}
                                                • type: "MemberExpression"
                                                • start: 741
                                                • end: 755
                                                • loc: {...}
                                                  • start: {...}
                                                    • line: 26
                                                    • column: 10
                                                    }
                                                  • end: {...}
                                                    • line: 26
                                                    • column: 24
                                                    }
                                                  }
                                                • object: Identifier {...}
                                                  • type: "Identifier"
                                                  • start: 741
                                                  • end: 751
                                                  • loc: {...}
                                                    • start: {...}
                                                      • line: 26
                                                      • column: 10
                                                      }
                                                    • end: {...}
                                                      • line: 26
                                                      • column: 20
                                                      }
                                                    }
                                                  • name: "activeData"
                                                  }
                                                • property: Identifier {...}
                                                  • type: "Identifier"
                                                  • start: 752
                                                  • end: 755
                                                  • loc: {...}
                                                    • start: {...}
                                                      • line: 26
                                                      • column: 21
                                                      }
                                                    • end: {...}
                                                      • line: 26
                                                      • column: 24
                                                      }
                                                    }
                                                  • name: "set"
                                                  }
                                                • computed: false
                                                • optional: false
                                                }
                                              • arguments: [...] (2)
                                                • Identifier {...}
                                                  • type: "Identifier"
                                                  • start: 756
                                                  • end: 759
                                                  • loc: {...}
                                                    • start: {...}
                                                      • line: 26
                                                      • column: 25
                                                      }
                                                    • end: {...}
                                                      • line: 26
                                                      • column: 28
                                                      }
                                                    }
                                                  • name: "key"
                                                  }
                                                • Identifier {...}
                                                  • type: "Identifier"
                                                  • start: 761
                                                  • end: 765
                                                  • loc: {...}
                                                    • start: {...}
                                                      • line: 26
                                                      • column: 30
                                                      }
                                                    • end: {...}
                                                      • line: 26
                                                      • column: 34
                                                      }
                                                    }
                                                  • name: "data"
                                                  }
                                                ]
                                              • optional: false
                                              }
                                            }
                                          ]
                                        }
                                      • alternate: null
                                      • leadingComments: [...] (2)
                                        • Line {...}
                                          • type: "Line"
                                          • value: " Some check for if we need to push an update to the API,"
                                          • start: 570
                                          • end: 628
                                          }
                                        • Line {...}
                                          • type: "Line"
                                          • value: " if necessary."
                                          • start: 637
                                          • end: 653
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                • alternate: BlockStatement {...}
                                  • type: "BlockStatement"
                                  • start: 791
                                  • end: 859
                                  • loc: {...}
                                    • start: {...}
                                      • line: 28
                                      • column: 13
                                      }
                                    • end: {...}
                                      • line: 31
                                      • column: 7
                                      }
                                    }
                                  • body: [...] (2)
                                    • ExpressionStatement {...}
                                      • type: "ExpressionStatement"
                                      • start: 801
                                      • end: 827
                                      • loc: {...}
                                        • start: {...}
                                          • line: 29
                                          • column: 8
                                          }
                                        • end: {...}
                                          • line: 29
                                          • column: 34
                                          }
                                        }
                                      • expression: CallExpression {...}
                                        • type: "CallExpression"
                                        • start: 801
                                        • end: 826
                                        • loc: {...}
                                          • start: {...}
                                            • line: 29
                                            • column: 8
                                            }
                                          • end: {...}
                                            • line: 29
                                            • column: 33
                                            }
                                          }
                                        • callee: MemberExpression {...}
                                          • type: "MemberExpression"
                                          • start: 801
                                          • end: 815
                                          • loc: {...}
                                            • start: {...}
                                              • line: 29
                                              • column: 8
                                              }
                                            • end: {...}
                                              • line: 29
                                              • column: 22
                                              }
                                            }
                                          • object: Identifier {...}
                                            • type: "Identifier"
                                            • start: 801
                                            • end: 811
                                            • loc: {...}
                                              • start: {...}
                                                • line: 29
                                                • column: 8
                                                }
                                              • end: {...}
                                                • line: 29
                                                • column: 18
                                                }
                                              }
                                            • name: "activeData"
                                            }
                                          • property: Identifier {...}
                                            • type: "Identifier"
                                            • start: 812
                                            • end: 815
                                            • loc: {...}
                                              • start: {...}
                                                • line: 29
                                                • column: 19
                                                }
                                              • end: {...}
                                                • line: 29
                                                • column: 22
                                                }
                                              }
                                            • name: "set"
                                            }
                                          • computed: false
                                          • optional: false
                                          }
                                        • arguments: [...] (2)
                                          • Identifier {...}
                                            • type: "Identifier"
                                            • start: 816
                                            • end: 819
                                            • loc: {...}
                                              • start: {...}
                                                • line: 29
                                                • column: 23
                                                }
                                              • end: {...}
                                                • line: 29
                                                • column: 26
                                                }
                                              }
                                            • name: "key"
                                            }
                                          • Identifier {...}
                                            • type: "Identifier"
                                            • start: 821
                                            • end: 825
                                            • loc: {...}
                                              • start: {...}
                                                • line: 29
                                                • column: 28
                                                }
                                              • end: {...}
                                                • line: 29
                                                • column: 32
                                                }
                                              }
                                            • name: "data"
                                            }
                                          ]
                                        • optional: false
                                        }
                                      }
                                    • ExpressionStatement {...}
                                      • type: "ExpressionStatement"
                                      • start: 836
                                      • end: 851
                                      • loc: {...}
                                        • start: {...}
                                          • line: 30
                                          • column: 8
                                          }
                                        • end: {...}
                                          • line: 30
                                          • column: 23
                                          }
                                        }
                                      • expression: CallExpression {...}
                                        • type: "CallExpression"
                                        • start: 836
                                        • end: 850
                                        • loc: {...}
                                          • start: {...}
                                            • line: 30
                                            • column: 8
                                            }
                                          • end: {...}
                                            • line: 30
                                            • column: 22
                                            }
                                          }
                                        • callee: Identifier {...}
                                          • type: "Identifier"
                                          • start: 836
                                          • end: 839
                                          • loc: {...}
                                            • start: {...}
                                              • line: 30
                                              • column: 8
                                              }
                                            • end: {...}
                                              • line: 30
                                              • column: 11
                                              }
                                            }
                                          • name: "add"
                                          }
                                        • arguments: [...] (2)
                                          • Identifier {...}
                                            • type: "Identifier"
                                            • start: 840
                                            • end: 843
                                            • loc: {...}
                                              • start: {...}
                                                • line: 30
                                                • column: 12
                                                }
                                              • end: {...}
                                                • line: 30
                                                • column: 15
                                                }
                                              }
                                            • name: "key"
                                            }
                                          • Identifier {...}
                                            • type: "Identifier"
                                            • start: 845
                                            • end: 849
                                            • loc: {...}
                                              • start: {...}
                                                • line: 30
                                                • column: 17
                                                }
                                              • end: {...}
                                                • line: 30
                                                • column: 21
                                                }
                                              }
                                            • name: "data"
                                            }
                                          ]
                                        • optional: false
                                        }
                                      }
                                    ]
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              }
            }
          • VariableDeclaration {...}
            • type: "VariableDeclaration"
            • start: 875
            • end: 893
            • loc: {...}
              • start: {...}
                • line: 37
                • column: 0
                }
              • end: {...}
                • line: 37
                • column: 18
                }
              }
            • declarations: [...] (1)
              • VariableDeclarator {...}
                • type: "VariableDeclarator"
                • start: 879
                • end: 892
                • loc: {...}
                  • start: {...}
                    • line: 37
                    • column: 4
                    }
                  • end: {...}
                    • line: 37
                    • column: 17
                    }
                  }
                • id: Identifier {...}
                  • type: "Identifier"
                  • start: 879
                  • end: 887
                  • loc: {...}
                    • start: {...}
                      • line: 37
                      • column: 4
                      }
                    • end: {...}
                      • line: 37
                      • column: 12
                      }
                    }
                  • name: "commands"
                  }
                • init: ArrayExpression {...}
                  • type: "ArrayExpression"
                  • start: 890
                  • end: 892
                  • loc: {...}
                    • start: {...}
                      • line: 37
                      • column: 15
                      }
                    • end: {...}
                      • line: 37
                      • column: 17
                      }
                    }
                  • elements: []
                  }
                }
              ]
            • kind: "let"
            }
          • FunctionDeclaration {...}
            • type: "FunctionDeclaration"
            • start: 894
            • end: 1000
            • loc: {...}
              • start: {...}
                • line: 38
                • column: 0
                }
              • end: {...}
                • line: 41
                • column: 1
                }
              }
            • id: Identifier {...}
              • type: "Identifier"
              • start: 903
              • end: 913
              • loc: {...}
                • start: {...}
                  • line: 38
                  • column: 9
                  }
                • end: {...}
                  • line: 38
                  • column: 19
                  }
                }
              • name: "logCommand"
              }
            • expression: false
            • generator: false
            • async: false
            • params: [...] (2)
              • Identifier {...}
                • type: "Identifier"
                • start: 914
                • end: 918
                • loc: {...}
                  • start: {...}
                    • line: 38
                    • column: 20
                    }
                  • end: {...}
                    • line: 38
                    • column: 24
                    }
                  }
                • name: "type"
                }
              • Identifier {...}
                • type: "Identifier"
                • start: 920
                • end: 923
                • loc: {...}
                  • start: {...}
                    • line: 38
                    • column: 26
                    }
                  • end: {...}
                    • line: 38
                    • column: 29
                    }
                  }
                • name: "key"
                }
              ]
            • body: BlockStatement {...}
              • type: "BlockStatement"
              • start: 925
              • end: 1000
              • loc: {...}
                • start: {...}
                  • line: 38
                  • column: 31
                  }
                • end: {...}
                  • line: 41
                  • column: 1
                  }
                }
              • body: [...] (2)
                • ExpressionStatement {...}
                  • type: "ExpressionStatement"
                  • start: 928
                  • end: 963
                  • loc: {...}
                    • start: {...}
                      • line: 39
                      • column: 1
                      }
                    • end: {...}
                      • line: 39
                      • column: 36
                      }
                    }
                  • expression: CallExpression {...}
                    • type: "CallExpression"
                    • start: 928
                    • end: 962
                    • loc: {...}
                      • start: {...}
                        • line: 39
                        • column: 1
                        }
                      • end: {...}
                        • line: 39
                        • column: 35
                        }
                      }
                    • callee: MemberExpression {...}
                      • type: "MemberExpression"
                      • start: 928
                      • end: 944
                      • loc: {...}
                        • start: {...}
                          • line: 39
                          • column: 1
                          }
                        • end: {...}
                          • line: 39
                          • column: 17
                          }
                        }
                      • object: Identifier {...}
                        • type: "Identifier"
                        • start: 928
                        • end: 936
                        • loc: {...}
                          • start: {...}
                            • line: 39
                            • column: 1
                            }
                          • end: {...}
                            • line: 39
                            • column: 9
                            }
                          }
                        • name: "commands"
                        }
                      • property: Identifier {...}
                        • type: "Identifier"
                        • start: 937
                        • end: 944
                        • loc: {...}
                          • start: {...}
                            • line: 39
                            • column: 10
                            }
                          • end: {...}
                            • line: 39
                            • column: 17
                            }
                          }
                        • name: "unshift"
                        }
                      • computed: false
                      • optional: false
                      }
                    • arguments: [...] (1)
                      • TemplateLiteral {...}
                        • type: "TemplateLiteral"
                        • start: 945
                        • end: 961
                        • loc: {...}
                          • start: {...}
                            • line: 39
                            • column: 18
                            }
                          • end: {...}
                            • line: 39
                            • column: 34
                            }
                          }
                        • expressions: [...] (2)
                          • Identifier {...}
                            • type: "Identifier"
                            • start: 948
                            • end: 952
                            • loc: {...}
                              • start: {...}
                                • line: 39
                                • column: 21
                                }
                              • end: {...}
                                • line: 39
                                • column: 25
                                }
                              }
                            • name: "type"
                            }
                          • Identifier {...}
                            • type: "Identifier"
                            • start: 956
                            • end: 959
                            • loc: {...}
                              • start: {...}
                                • line: 39
                                • column: 29
                                }
                              • end: {...}
                                • line: 39
                                • column: 32
                                }
                              }
                            • name: "key"
                            }
                          ]
                        • quasis: [...] (3)
                          • TemplateElement {...}
                            • type: "TemplateElement"
                            • start: 946
                            • end: 946
                            • loc: {...}
                              • start: {...}
                                • line: 39
                                • column: 19
                                }
                              • end: {...}
                                • line: 39
                                • column: 19
                                }
                              }
                            • value: {...}
                              • raw: ""
                              • cooked: ""
                              }
                            • tail: false
                            }
                          • TemplateElement {...}
                            • type: "TemplateElement"
                            • start: 953
                            • end: 954
                            • loc: {...}
                              • start: {...}
                                • line: 39
                                • column: 26
                                }
                              • end: {...}
                                • line: 39
                                • column: 27
                                }
                              }
                            • value: {...}
                              • raw: " "
                              • cooked: " "
                              }
                            • tail: false
                            }
                          • TemplateElement {...}
                            • type: "TemplateElement"
                            • start: 960
                            • end: 960
                            • loc: {...}
                              • start: {...}
                                • line: 39
                                • column: 33
                                }
                              • end: {...}
                                • line: 39
                                • column: 33
                                }
                              }
                            • value: {...}
                              • raw: ""
                              • cooked: ""
                              }
                            • tail: true
                            }
                          ]
                        }
                      ]
                    • optional: false
                    }
                  }
                • ExpressionStatement {...}
                  • type: "ExpressionStatement"
                  • start: 965
                  • end: 998
                  • loc: {...}
                    • start: {...}
                      • line: 40
                      • column: 1
                      }
                    • end: {...}
                      • line: 40
                      • column: 34
                      }
                    }
                  • expression: AssignmentExpression {...}
                    • type: "AssignmentExpression"
                    • start: 965
                    • end: 997
                    • loc: {...}
                      • start: {...}
                        • line: 40
                        • column: 1
                        }
                      • end: {...}
                        • line: 40
                        • column: 33
                        }
                      }
                    • operator: "="
                    • left: Identifier {...}
                      • type: "Identifier"
                      • start: 965
                      • end: 973
                      • loc: {...}
                        • start: {...}
                          • line: 40
                          • column: 1
                          }
                        • end: {...}
                          • line: 40
                          • column: 9
                          }
                        }
                      • name: "commands"
                      }
                    • right: CallExpression {...}
                      • type: "CallExpression"
                      • start: 976
                      • end: 997
                      • loc: {...}
                        • start: {...}
                          • line: 40
                          • column: 12
                          }
                        • end: {...}
                          • line: 40
                          • column: 33
                          }
                        }
                      • callee: MemberExpression {...}
                        • type: "MemberExpression"
                        • start: 976
                        • end: 990
                        • loc: {...}
                          • start: {...}
                            • line: 40
                            • column: 12
                            }
                          • end: {...}
                            • line: 40
                            • column: 26
                            }
                          }
                        • object: Identifier {...}
                          • type: "Identifier"
                          • start: 976
                          • end: 984
                          • loc: {...}
                            • start: {...}
                              • line: 40
                              • column: 12
                              }
                            • end: {...}
                              • line: 40
                              • column: 20
                              }
                            }
                          • name: "commands"
                          }
                        • property: Identifier {...}
                          • type: "Identifier"
                          • start: 985
                          • end: 990
                          • loc: {...}
                            • start: {...}
                              • line: 40
                              • column: 21
                              }
                            • end: {...}
                              • line: 40
                              • column: 26
                              }
                            }
                          • name: "slice"
                          }
                        • computed: false
                        • optional: false
                        }
                      • arguments: [...] (2)
                        • Literal {...}
                          • type: "Literal"
                          • start: 991
                          • end: 992
                          • loc: {...}
                            • start: {...}
                              • line: 40
                              • column: 27
                              }
                            • end: {...}
                              • line: 40
                              • column: 28
                              }
                            }
                          • value: 0
                          • raw: "0"
                          }
                        • Literal {...}
                          • type: "Literal"
                          • start: 994
                          • end: 996
                          • loc: {...}
                            • start: {...}
                              • line: 40
                              • column: 30
                              }
                            • end: {...}
                              • line: 40
                              • column: 32
                              }
                            }
                          • value: 10
                          • raw: "10"
                          }
                        ]
                      • optional: false
                      }
                    }
                  }
                ]
              }
            }
          • VariableDeclaration {...}
            • type: "VariableDeclaration"
            • start: 1003
            • end: 1026
            • loc: {...}
              • start: {...}
                • line: 43
                • column: 0
                }
              • end: {...}
                • line: 43
                • column: 23
                }
              }
            • declarations: [...] (1)
              • VariableDeclarator {...}
                • type: "VariableDeclarator"
                • start: 1007
                • end: 1025
                • loc: {...}
                  • start: {...}
                    • line: 43
                    • column: 4
                    }
                  • end: {...}
                    • line: 43
                    • column: 22
                    }
                  }
                • id: Identifier {...}
                  • type: "Identifier"
                  • start: 1007
                  • end: 1013
                  • loc: {...}
                    • start: {...}
                      • line: 43
                      • column: 4
                      }
                    • end: {...}
                      • line: 43
                      • column: 10
                      }
                    }
                  • name: "values"
                  }
                • init: NewExpression {...}
                  • type: "NewExpression"
                  • start: 1016
                  • end: 1025
                  • loc: {...}
                    • start: {...}
                      • line: 43
                      • column: 13
                      }
                    • end: {...}
                      • line: 43
                      • column: 22
                      }
                    }
                  • callee: Identifier {...}
                    • type: "Identifier"
                    • start: 1020
                    • end: 1023
                    • loc: {...}
                      • start: {...}
                        • line: 43
                        • column: 17
                        }
                      • end: {...}
                        • line: 43
                        • column: 20
                        }
                      }
                    • name: "Set"
                    }
                  • arguments: []
                  }
                }
              ]
            • kind: "let"
            }
          • VariableDeclaration {...}
            • type: "VariableDeclaration"
            • start: 1028
            • end: 1271
            • loc: {...}
              • start: {...}
                • line: 44
                • column: 0
                }
              • end: {...}
                • line: 56
                • column: 3
                }
              }
            • declarations: [...] (1)
              • VariableDeclarator {...}
                • type: "VariableDeclarator"
                • start: 1032
                • end: 1270
                • loc: {...}
                  • start: {...}
                    • line: 44
                    • column: 4
                    }
                  • end: {...}
                    • line: 56
                    • column: 2
                    }
                  }
                • id: Identifier {...}
                  • type: "Identifier"
                  • start: 1032
                  • end: 1043
                  • loc: {...}
                    • start: {...}
                      • line: 44
                      • column: 4
                      }
                    • end: {...}
                      • line: 44
                      • column: 15
                      }
                    }
                  • name: "updateItems"
                  }
                • init: CallExpression {...}
                  • type: "CallExpression"
                  • start: 1046
                  • end: 1270
                  • loc: {...}
                    • start: {...}
                      • line: 44
                      • column: 18
                      }
                    • end: {...}
                      • line: 56
                      • column: 2
                      }
                    }
                  • callee: Identifier {...}
                    • type: "Identifier"
                    • start: 1046
                    • end: 1053
                    • loc: {...}
                      • start: {...}
                        • line: 44
                        • column: 18
                        }
                      • end: {...}
                        • line: 44
                        • column: 25
                        }
                      }
                    • name: "updater"
                    }
                  • arguments: [...] (1)
                    • ObjectExpression {...}
                      • type: "ObjectExpression"
                      • start: 1054
                      • end: 1269
                      • loc: {...}
                        • start: {...}
                          • line: 44
                          • column: 26
                          }
                        • end: {...}
                          • line: 56
                          • column: 1
                          }
                        }
                      • properties: [...] (3)
                        • Property {...}
                          • type: "Property"
                          • start: 1058
                          • end: 1080
                          • loc: {...}
                            • start: {...}
                              • line: 45
                              • column: 2
                              }
                            • end: {...}
                              • line: 45
                              • column: 24
                              }
                            }
                          • method: false
                          • shorthand: false
                          • computed: false
                          • key: Identifier {...}
                            • type: "Identifier"
                            • start: 1058
                            • end: 1064
                            • loc: {...}
                              • start: {...}
                                • line: 45
                                • column: 2
                                }
                              • end: {...}
                                • line: 45
                                • column: 8
                                }
                              }
                            • name: "getKey"
                            }
                          • value: ArrowFunctionExpression {...}
                            • type: "ArrowFunctionExpression"
                            • start: 1066
                            • end: 1080
                            • loc: {...}
                              • start: {...}
                                • line: 45
                                • column: 10
                                }
                              • end: {...}
                                • line: 45
                                • column: 24
                                }
                              }
                            • id: null
                            • expression: true
                            • generator: false
                            • async: false
                            • params: [...] (1)
                              • Identifier {...}
                                • type: "Identifier"
                                • start: 1067
                                • end: 1071
                                • loc: {...}
                                  • start: {...}
                                    • line: 45
                                    • column: 11
                                    }
                                  • end: {...}
                                    • line: 45
                                    • column: 15
                                    }
                                  }
                                • name: "item"
                                }
                              ]
                            • body: Identifier {...}
                              • type: "Identifier"
                              • start: 1076
                              • end: 1080
                              • loc: {...}
                                • start: {...}
                                  • line: 45
                                  • column: 20
                                  }
                                • end: {...}
                                  • line: 45
                                  • column: 24
                                  }
                                }
                              • name: "item"
                              }
                            }
                          • kind: "init"
                          }
                        • Property {...}
                          • type: "Property"
                          • start: 1084
                          • end: 1172
                          • loc: {...}
                            • start: {...}
                              • line: 46
                              • column: 2
                              }
                            • end: {...}
                              • line: 50
                              • column: 2
                              }
                            }
                          • method: false
                          • shorthand: false
                          • computed: false
                          • key: Identifier {...}
                            • type: "Identifier"
                            • start: 1084
                            • end: 1087
                            • loc: {...}
                              • start: {...}
                                • line: 46
                                • column: 2
                                }
                              • end: {...}
                                • line: 46
                                • column: 5
                                }
                              }
                            • name: "add"
                            }
                          • value: ArrowFunctionExpression {...}
                            • type: "ArrowFunctionExpression"
                            • start: 1089
                            • end: 1172
                            • loc: {...}
                              • start: {...}
                                • line: 46
                                • column: 7
                                }
                              • end: {...}
                                • line: 50
                                • column: 2
                                }
                              }
                            • id: null
                            • expression: false
                            • generator: false
                            • async: false
                            • params: [...] (2)
                              • Identifier {...}
                                • type: "Identifier"
                                • start: 1090
                                • end: 1093
                                • loc: {...}
                                  • start: {...}
                                    • line: 46
                                    • column: 8
                                    }
                                  • end: {...}
                                    • line: 46
                                    • column: 11
                                    }
                                  }
                                • name: "key"
                                }
                              • Identifier {...}
                                • type: "Identifier"
                                • start: 1095
                                • end: 1099
                                • loc: {...}
                                  • start: {...}
                                    • line: 46
                                    • column: 13
                                    }
                                  • end: {...}
                                    • line: 46
                                    • column: 17
                                    }
                                  }
                                • name: "data"
                                }
                              ]
                            • body: BlockStatement {...}
                              • type: "BlockStatement"
                              • start: 1104
                              • end: 1172
                              • loc: {...}
                                • start: {...}
                                  • line: 46
                                  • column: 22
                                  }
                                • end: {...}
                                  • line: 50
                                  • column: 2
                                  }
                                }
                              • body: [...] (3)
                                • ExpressionStatement {...}
                                  • type: "ExpressionStatement"
                                  • start: 1108
                                  • end: 1131
                                  • loc: {...}
                                    • start: {...}
                                      • line: 47
                                      • column: 2
                                      }
                                    • end: {...}
                                      • line: 47
                                      • column: 25
                                      }
                                    }
                                  • expression: CallExpression {...}
                                    • type: "CallExpression"
                                    • start: 1108
                                    • end: 1130
                                    • loc: {...}
                                      • start: {...}
                                        • line: 47
                                        • column: 2
                                        }
                                      • end: {...}
                                        • line: 47
                                        • column: 24
                                        }
                                      }
                                    • callee: Identifier {...}
                                      • type: "Identifier"
                                      • start: 1108
                                      • end: 1118
                                      • loc: {...}
                                        • start: {...}
                                          • line: 47
                                          • column: 2
                                          }
                                        • end: {...}
                                          • line: 47
                                          • column: 12
                                          }
                                        }
                                      • name: "logCommand"
                                      }
                                    • arguments: [...] (2)
                                      • Literal {...}
                                        • type: "Literal"
                                        • start: 1119
                                        • end: 1124
                                        • loc: {...}
                                          • start: {...}
                                            • line: 47
                                            • column: 13
                                            }
                                          • end: {...}
                                            • line: 47
                                            • column: 18
                                            }
                                          }
                                        • value: "add"
                                        • raw: "'add'"
                                        }
                                      • Identifier {...}
                                        • type: "Identifier"
                                        • start: 1126
                                        • end: 1129
                                        • loc: {...}
                                          • start: {...}
                                            • line: 47
                                            • column: 20
                                            }
                                          • end: {...}
                                            • line: 47
                                            • column: 23
                                            }
                                          }
                                        • name: "key"
                                        }
                                      ]
                                    • optional: false
                                    }
                                  }
                                • ExpressionStatement {...}
                                  • type: "ExpressionStatement"
                                  • start: 1134
                                  • end: 1150
                                  • loc: {...}
                                    • start: {...}
                                      • line: 48
                                      • column: 2
                                      }
                                    • end: {...}
                                      • line: 48
                                      • column: 18
                                      }
                                    }
                                  • expression: CallExpression {...}
                                    • type: "CallExpression"
                                    • start: 1134
                                    • end: 1149
                                    • loc: {...}
                                      • start: {...}
                                        • line: 48
                                        • column: 2
                                        }
                                      • end: {...}
                                        • line: 48
                                        • column: 17
                                        }
                                      }
                                    • callee: MemberExpression {...}
                                      • type: "MemberExpression"
                                      • start: 1134
                                      • end: 1144
                                      • loc: {...}
                                        • start: {...}
                                          • line: 48
                                          • column: 2
                                          }
                                        • end: {...}
                                          • line: 48
                                          • column: 12
                                          }
                                        }
                                      • object: Identifier {...}
                                        • type: "Identifier"
                                        • start: 1134
                                        • end: 1140
                                        • loc: {...}
                                          • start: {...}
                                            • line: 48
                                            • column: 2
                                            }
                                          • end: {...}
                                            • line: 48
                                            • column: 8
                                            }
                                          }
                                        • name: "values"
                                        }
                                      • property: Identifier {...}
                                        • type: "Identifier"
                                        • start: 1141
                                        • end: 1144
                                        • loc: {...}
                                          • start: {...}
                                            • line: 48
                                            • column: 9
                                            }
                                          • end: {...}
                                            • line: 48
                                            • column: 12
                                            }
                                          }
                                        • name: "add"
                                        }
                                      • computed: false
                                      • optional: false
                                      }
                                    • arguments: [...] (1)
                                      • Identifier {...}
                                        • type: "Identifier"
                                        • start: 1145
                                        • end: 1148
                                        • loc: {...}
                                          • start: {...}
                                            • line: 48
                                            • column: 13
                                            }
                                          • end: {...}
                                            • line: 48
                                            • column: 16
                                            }
                                          }
                                        • name: "key"
                                        }
                                      ]
                                    • optional: false
                                    }
                                  }
                                • ExpressionStatement {...}
                                  • type: "ExpressionStatement"
                                  • start: 1153
                                  • end: 1169
                                  • loc: {...}
                                    • start: {...}
                                      • line: 49
                                      • column: 2
                                      }
                                    • end: {...}
                                      • line: 49
                                      • column: 18
                                      }
                                    }
                                  • expression: AssignmentExpression {...}
                                    • type: "AssignmentExpression"
                                    • start: 1153
                                    • end: 1168
                                    • loc: {...}
                                      • start: {...}
                                        • line: 49
                                        • column: 2
                                        }
                                      • end: {...}
                                        • line: 49
                                        • column: 17
                                        }
                                      }
                                    • operator: "="
                                    • left: Identifier {...}
                                      • type: "Identifier"
                                      • start: 1153
                                      • end: 1159
                                      • loc: {...}
                                        • start: {...}
                                          • line: 49
                                          • column: 2
                                          }
                                        • end: {...}
                                          • line: 49
                                          • column: 8
                                          }
                                        }
                                      • name: "values"
                                      }
                                    • right: Identifier {...}
                                      • type: "Identifier"
                                      • start: 1162
                                      • end: 1168
                                      • loc: {...}
                                        • start: {...}
                                          • line: 49
                                          • column: 11
                                          }
                                        • end: {...}
                                          • line: 49
                                          • column: 17
                                          }
                                        }
                                      • name: "values"
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          • kind: "init"
                          }
                        • Property {...}
                          • type: "Property"
                          • start: 1176
                          • end: 1267
                          • loc: {...}
                            • start: {...}
                              • line: 51
                              • column: 2
                              }
                            • end: {...}
                              • line: 55
                              • column: 2
                              }
                            }
                          • method: false
                          • shorthand: false
                          • computed: false
                          • key: Identifier {...}
                            • type: "Identifier"
                            • start: 1176
                            • end: 1182
                            • loc: {...}
                              • start: {...}
                                • line: 51
                                • column: 2
                                }
                              • end: {...}
                                • line: 51
                                • column: 8
                                }
                              }
                            • name: "remove"
                            }
                          • value: ArrowFunctionExpression {...}
                            • type: "ArrowFunctionExpression"
                            • start: 1184
                            • end: 1267
                            • loc: {...}
                              • start: {...}
                                • line: 51
                                • column: 10
                                }
                              • end: {...}
                                • line: 55
                                • column: 2
                                }
                              }
                            • id: null
                            • expression: false
                            • generator: false
                            • async: false
                            • params: [...] (1)
                              • Identifier {...}
                                • type: "Identifier"
                                • start: 1185
                                • end: 1188
                                • loc: {...}
                                  • start: {...}
                                    • line: 51
                                    • column: 11
                                    }
                                  • end: {...}
                                    • line: 51
                                    • column: 14
                                    }
                                  }
                                • name: "key"
                                }
                              ]
                            • body: BlockStatement {...}
                              • type: "BlockStatement"
                              • start: 1193
                              • end: 1267
                              • loc: {...}
                                • start: {...}
                                  • line: 51
                                  • column: 19
                                  }
                                • end: {...}
                                  • line: 55
                                  • column: 2
                                  }
                                }
                              • body: [...] (3)
                                • ExpressionStatement {...}
                                  • type: "ExpressionStatement"
                                  • start: 1197
                                  • end: 1223
                                  • loc: {...}
                                    • start: {...}
                                      • line: 52
                                      • column: 2
                                      }
                                    • end: {...}
                                      • line: 52
                                      • column: 28
                                      }
                                    }
                                  • expression: CallExpression {...}
                                    • type: "CallExpression"
                                    • start: 1197
                                    • end: 1222
                                    • loc: {...}
                                      • start: {...}
                                        • line: 52
                                        • column: 2
                                        }
                                      • end: {...}
                                        • line: 52
                                        • column: 27
                                        }
                                      }
                                    • callee: Identifier {...}
                                      • type: "Identifier"
                                      • start: 1197
                                      • end: 1207
                                      • loc: {...}
                                        • start: {...}
                                          • line: 52
                                          • column: 2
                                          }
                                        • end: {...}
                                          • line: 52
                                          • column: 12
                                          }
                                        }
                                      • name: "logCommand"
                                      }
                                    • arguments: [...] (2)
                                      • Literal {...}
                                        • type: "Literal"
                                        • start: 1208
                                        • end: 1216
                                        • loc: {...}
                                          • start: {...}
                                            • line: 52
                                            • column: 13
                                            }
                                          • end: {...}
                                            • line: 52
                                            • column: 21
                                            }
                                          }
                                        • value: "remove"
                                        • raw: "'remove'"
                                        }
                                      • Identifier {...}
                                        • type: "Identifier"
                                        • start: 1218
                                        • end: 1221
                                        • loc: {...}
                                          • start: {...}
                                            • line: 52
                                            • column: 23
                                            }
                                          • end: {...}
                                            • line: 52
                                            • column: 26
                                            }
                                          }
                                        • name: "key"
                                        }
                                      ]
                                    • optional: false
                                    }
                                  }
                                • ExpressionStatement {...}
                                  • type: "ExpressionStatement"
                                  • start: 1226
                                  • end: 1245
                                  • loc: {...}
                                    • start: {...}
                                      • line: 53
                                      • column: 2
                                      }
                                    • end: {...}
                                      • line: 53
                                      • column: 21
                                      }
                                    }
                                  • expression: CallExpression {...}
                                    • type: "CallExpression"
                                    • start: 1226
                                    • end: 1244
                                    • loc: {...}
                                      • start: {...}
                                        • line: 53
                                        • column: 2
                                        }
                                      • end: {...}
                                        • line: 53
                                        • column: 20
                                        }
                                      }
                                    • callee: MemberExpression {...}
                                      • type: "MemberExpression"
                                      • start: 1226
                                      • end: 1239
                                      • loc: {...}
                                        • start: {...}
                                          • line: 53
                                          • column: 2
                                          }
                                        • end: {...}
                                          • line: 53
                                          • column: 15
                                          }
                                        }
                                      • object: Identifier {...}
                                        • type: "Identifier"
                                        • start: 1226
                                        • end: 1232
                                        • loc: {...}
                                          • start: {...}
                                            • line: 53
                                            • column: 2
                                            }
                                          • end: {...}
                                            • line: 53
                                            • column: 8
                                            }
                                          }
                                        • name: "values"
                                        }
                                      • property: Identifier {...}
                                        • type: "Identifier"
                                        • start: 1233
                                        • end: 1239
                                        • loc: {...}
                                          • start: {...}
                                            • line: 53
                                            • column: 9
                                            }
                                          • end: {...}
                                            • line: 53
                                            • column: 15
                                            }
                                          }
                                        • name: "delete"
                                        }
                                      • computed: false
                                      • optional: false
                                      }
                                    • arguments: [...] (1)
                                      • Identifier {...}
                                        • type: "Identifier"
                                        • start: 1240
                                        • end: 1243
                                        • loc: {...}
                                          • start: {...}
                                            • line: 53
                                            • column: 16
                                            }
                                          • end: {...}
                                            • line: 53
                                            • column: 19
                                            }
                                          }
                                        • name: "key"
                                        }
                                      ]
                                    • optional: false
                                    }
                                  }
                                • ExpressionStatement {...}
                                  • type: "ExpressionStatement"
                                  • start: 1248
                                  • end: 1264
                                  • loc: {...}
                                    • start: {...}
                                      • line: 54
                                      • column: 2
                                      }
                                    • end: {...}
                                      • line: 54
                                      • column: 18
                                      }
                                    }
                                  • expression: AssignmentExpression {...}
                                    • type: "AssignmentExpression"
                                    • start: 1248
                                    • end: 1263
                                    • loc: {...}
                                      • start: {...}
                                        • line: 54
                                        • column: 2
                                        }
                                      • end: {...}
                                        • line: 54
                                        • column: 17
                                        }
                                      }
                                    • operator: "="
                                    • left: Identifier {...}
                                      • type: "Identifier"
                                      • start: 1248
                                      • end: 1254
                                      • loc: {...}
                                        • start: {...}
                                          • line: 54
                                          • column: 2
                                          }
                                        • end: {...}
                                          • line: 54
                                          • column: 8
                                          }
                                        }
                                      • name: "values"
                                      }
                                    • right: Identifier {...}
                                      • type: "Identifier"
                                      • start: 1257
                                      • end: 1263
                                      • loc: {...}
                                        • start: {...}
                                          • line: 54
                                          • column: 11
                                          }
                                        • end: {...}
                                          • line: 54
                                          • column: 17
                                          }
                                        }
                                      • name: "values"
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          • kind: "init"
                          }
                        ]
                      }
                    ]
                  • optional: false
                  }
                }
              ]
            • kind: "let"
            }
          • FunctionDeclaration {...}
            • type: "FunctionDeclaration"
            • start: 1273
            • end: 1384
            • loc: {...}
              • start: {...}
                • line: 58
                • column: 0
                }
              • end: {...}
                • line: 60
                • column: 1
                }
              }
            • id: Identifier {...}
              • type: "Identifier"
              • start: 1282
              • end: 1295
              • loc: {...}
                • start: {...}
                  • line: 58
                  • column: 9
                  }
                • end: {...}
                  • line: 58
                  • column: 22
                  }
                }
              • name: "filteredItems"
              }
            • expression: false
            • generator: false
            • async: false
            • params: [...] (1)
              • Identifier {...}
                • type: "Identifier"
                • start: 1296
                • end: 1297
                • loc: {...}
                  • start: {...}
                    • line: 58
                    • column: 23
                    }
                  • end: {...}
                    • line: 58
                    • column: 24
                    }
                  }
                • name: "f"
                }
              ]
            • body: BlockStatement {...}
              • type: "BlockStatement"
              • start: 1299
              • end: 1384
              • loc: {...}
                • start: {...}
                  • line: 58
                  • column: 26
                  }
                • end: {...}
                  • line: 60
                  • column: 1
                  }
                }
              • body: [...] (1)
                • ReturnStatement {...}
                  • type: "ReturnStatement"
                  • start: 1302
                  • end: 1382
                  • loc: {...}
                    • start: {...}
                      • line: 59
                      • column: 1
                      }
                    • end: {...}
                      • line: 59
                      • column: 81
                      }
                    }
                  • argument: CallExpression {...}
                    • type: "CallExpression"
                    • start: 1309
                    • end: 1381
                    • loc: {...}
                      • start: {...}
                        • line: 59
                        • column: 8
                        }
                      • end: {...}
                        • line: 59
                        • column: 80
                        }
                      }
                    • callee: MemberExpression {...}
                      • type: "MemberExpression"
                      • start: 1309
                      • end: 1351
                      • loc: {...}
                        • start: {...}
                          • line: 59
                          • column: 8
                          }
                        • end: {...}
                          • line: 59
                          • column: 50
                          }
                        }
                      • object: ArrayExpression {...}
                        • type: "ArrayExpression"
                        • start: 1309
                        • end: 1344
                        • loc: {...}
                          • start: {...}
                            • line: 59
                            • column: 8
                            }
                          • end: {...}
                            • line: 59
                            • column: 43
                            }
                          }
                        • elements: [...] (7)
                          • Literal {...}
                            • type: "Literal"
                            • start: 1310
                            • end: 1313
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 9
                                }
                              • end: {...}
                                • line: 59
                                • column: 12
                                }
                              }
                            • value: "a"
                            • raw: "'a'"
                            }
                          • Literal {...}
                            • type: "Literal"
                            • start: 1315
                            • end: 1318
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 14
                                }
                              • end: {...}
                                • line: 59
                                • column: 17
                                }
                              }
                            • value: "b"
                            • raw: "'b'"
                            }
                          • Literal {...}
                            • type: "Literal"
                            • start: 1320
                            • end: 1323
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 19
                                }
                              • end: {...}
                                • line: 59
                                • column: 22
                                }
                              }
                            • value: "c"
                            • raw: "'c'"
                            }
                          • Literal {...}
                            • type: "Literal"
                            • start: 1325
                            • end: 1328
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 24
                                }
                              • end: {...}
                                • line: 59
                                • column: 27
                                }
                              }
                            • value: "d"
                            • raw: "'d'"
                            }
                          • Literal {...}
                            • type: "Literal"
                            • start: 1330
                            • end: 1333
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 29
                                }
                              • end: {...}
                                • line: 59
                                • column: 32
                                }
                              }
                            • value: "e"
                            • raw: "'e'"
                            }
                          • Literal {...}
                            • type: "Literal"
                            • start: 1335
                            • end: 1338
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 34
                                }
                              • end: {...}
                                • line: 59
                                • column: 37
                                }
                              }
                            • value: "f"
                            • raw: "'f'"
                            }
                          • Literal {...}
                            • type: "Literal"
                            • start: 1340
                            • end: 1343
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 39
                                }
                              • end: {...}
                                • line: 59
                                • column: 42
                                }
                              }
                            • value: "g"
                            • raw: "'g'"
                            }
                          ]
                        }
                      • property: Identifier {...}
                        • type: "Identifier"
                        • start: 1345
                        • end: 1351
                        • loc: {...}
                          • start: {...}
                            • line: 59
                            • column: 44
                            }
                          • end: {...}
                            • line: 59
                            • column: 50
                            }
                          }
                        • name: "filter"
                        }
                      • computed: false
                      • optional: false
                      }
                    • arguments: [...] (1)
                      • ArrowFunctionExpression {...}
                        • type: "ArrowFunctionExpression"
                        • start: 1352
                        • end: 1380
                        • loc: {...}
                          • start: {...}
                            • line: 59
                            • column: 51
                            }
                          • end: {...}
                            • line: 59
                            • column: 79
                            }
                          }
                        • id: null
                        • expression: true
                        • generator: false
                        • async: false
                        • params: [...] (1)
                          • Identifier {...}
                            • type: "Identifier"
                            • start: 1353
                            • end: 1358
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 52
                                }
                              • end: {...}
                                • line: 59
                                • column: 57
                                }
                              }
                            • name: "value"
                            }
                          ]
                        • body: CallExpression {...}
                          • type: "CallExpression"
                          • start: 1363
                          • end: 1380
                          • loc: {...}
                            • start: {...}
                              • line: 59
                              • column: 62
                              }
                            • end: {...}
                              • line: 59
                              • column: 79
                              }
                            }
                          • callee: MemberExpression {...}
                            • type: "MemberExpression"
                            • start: 1363
                            • end: 1373
                            • loc: {...}
                              • start: {...}
                                • line: 59
                                • column: 62
                                }
                              • end: {...}
                                • line: 59
                                • column: 72
                                }
                              }
                            • object: Identifier {...}
                              • type: "Identifier"
                              • start: 1363
                              • end: 1364
                              • loc: {...}
                                • start: {...}
                                  • line: 59
                                  • column: 62
                                  }
                                • end: {...}
                                  • line: 59
                                  • column: 63
                                  }
                                }
                              • name: "f"
                              }
                            • property: Identifier {...}
                              • type: "Identifier"
                              • start: 1365
                              • end: 1373
                              • loc: {...}
                                • start: {...}
                                  • line: 59
                                  • column: 64
                                  }
                                • end: {...}
                                  • line: 59
                                  • column: 72
                                  }
                                }
                              • name: "includes"
                              }
                            • computed: false
                            • optional: false
                            }
                          • arguments: [...] (1)
                            • Identifier {...}
                              • type: "Identifier"
                              • start: 1374
                              • end: 1379
                              • loc: {...}
                                • start: {...}
                                  • line: 59
                                  • column: 73
                                  }
                                • end: {...}
                                  • line: 59
                                  • column: 78
                                  }
                                }
                              • name: "value"
                              }
                            ]
                          • optional: false
                          }
                        }
                      ]
                    • optional: false
                    }
                  }
                ]
              }
            }
          • VariableDeclaration {...}
            • type: "VariableDeclaration"
            • start: 1386
            • end: 1410
            • loc: {...}
              • start: {...}
                • line: 62
                • column: 0
                }
              • end: {...}
                • line: 62
                • column: 24
                }
              }
            • declarations: [...] (1)
              • VariableDeclarator {...}
                • type: "VariableDeclarator"
                • start: 1390
                • end: 1409
                • loc: {...}
                  • start: {...}
                    • line: 62
                    • column: 4
                    }
                  • end: {...}
                    • line: 62
                    • column: 23
                    }
                  }
                • id: Identifier {...}
                  • type: "Identifier"
                  • start: 1390
                  • end: 1397
                  • loc: {...}
                    • start: {...}
                      • line: 62
                      • column: 4
                      }
                    • end: {...}
                      • line: 62
                      • column: 11
                      }
                    }
                  • name: "filters"
                  }
                • init: Literal {...}
                  • type: "Literal"
                  • start: 1400
                  • end: 1409
                  • loc: {...}
                    • start: {...}
                      • line: 62
                      • column: 14
                      }
                    • end: {...}
                      • line: 62
                      • column: 23
                      }
                    }
                  • value: "abcdefg"
                  • raw: "'abcdefg'"
                  }
                }
              ]
            • kind: "let"
            }
          • LabeledStatement {...}
            • type: "LabeledStatement"
            • start: 1411
            • end: 1451
            • loc: {...}
              • start: {...}
                • line: 63
                • column: 0
                }
              • end: {...}
                • line: 63
                • column: 40
                }
              }
            • body: ExpressionStatement {...}
              • type: "ExpressionStatement"
              • start: 1414
              • end: 1451
              • loc: {...}
                • start: {...}
                  • line: 63
                  • column: 3
                  }
                • end: {...}
                  • line: 63
                  • column: 40
                  }
                }
              • expression: AssignmentExpression {...}
                • type: "AssignmentExpression"
                • start: 1414
                • end: 1450
                • loc: {...}
                  • start: {...}
                    • line: 63
                    • column: 3
                    }
                  • end: {...}
                    • line: 63
                    • column: 39
                    }
                  }
                • operator: "="
                • left: Identifier {...}
                  • type: "Identifier"
                  • start: 1414
                  • end: 1425
                  • loc: {...}
                    • start: {...}
                      • line: 63
                      • column: 3
                      }
                    • end: {...}
                      • line: 63
                      • column: 14
                      }
                    }
                  • name: "activeItems"
                  }
                • right: CallExpression {...}
                  • type: "CallExpression"
                  • start: 1428
                  • end: 1450
                  • loc: {...}
                    • start: {...}
                      • line: 63
                      • column: 17
                      }
                    • end: {...}
                      • line: 63
                      • column: 39
                      }
                    }
                  • callee: Identifier {...}
                    • type: "Identifier"
                    • start: 1428
                    • end: 1441
                    • loc: {...}
                      • start: {...}
                        • line: 63
                        • column: 17
                        }
                      • end: {...}
                        • line: 63
                        • column: 30
                        }
                      }
                    • name: "filteredItems"
                    }
                  • arguments: [...] (1)
                    • Identifier {...}
                      • type: "Identifier"
                      • start: 1442
                      • end: 1449
                      • loc: {...}
                        • start: {...}
                          • line: 63
                          • column: 31
                          }
                        • end: {...}
                          • line: 63
                          • column: 38
                          }
                        }
                      • name: "filters"
                      }
                    ]
                  • optional: false
                  }
                }
              }
            • label: Identifier {...}
              • type: "Identifier"
              • start: 1411
              • end: 1412
              • loc: {...}
                • start: {...}
                  • line: 63
                  • column: 0
                  }
                • end: {...}
                  • line: 63
                  • column: 1
                  }
                }
              • name: "$"
              }
            }
          • LabeledStatement {...}
            • type: "LabeledStatement"
            • start: 1452
            • end: 1480
            • loc: {...}
              • start: {...}
                • line: 64
                • column: 0
                }
              • end: {...}
                • line: 64
                • column: 28
                }
              }
            • body: ExpressionStatement {...}
              • type: "ExpressionStatement"
              • start: 1455
              • end: 1480
              • loc: {...}
                • start: {...}
                  • line: 64
                  • column: 3
                  }
                • end: {...}
                  • line: 64
                  • column: 28
                  }
                }
              • expression: CallExpression {...}
                • type: "CallExpression"
                • start: 1455
                • end: 1479
                • loc: {...}
                  • start: {...}
                    • line: 64
                    • column: 3
                    }
                  • end: {...}
                    • line: 64
                    • column: 27
                    }
                  }
                • callee: Identifier {...}
                  • type: "Identifier"
                  • start: 1455
                  • end: 1466
                  • loc: {...}
                    • start: {...}
                      • line: 64
                      • column: 3
                      }
                    • end: {...}
                      • line: 64
                      • column: 14
                      }
                    }
                  • name: "updateItems"
                  }
                • arguments: [...] (1)
                  • Identifier {...}
                    • type: "Identifier"
                    • start: 1467
                    • end: 1478
                    • loc: {...}
                      • start: {...}
                        • line: 64
                        • column: 15
                        }
                      • end: {...}
                        • line: 64
                        • column: 26
                        }
                      }
                    • name: "activeItems"
                    }
                  ]
                • optional: false
                }
              }
            • label: Identifier {...}
              • type: "Identifier"
              • start: 1452
              • end: 1453
              • loc: {...}
                • start: {...}
                  • line: 64
                  • column: 0
                  }
                • end: {...}
                  • line: 64
                  • column: 1
                  }
                }
              • name: "$"
              }
            }
          ]
        • sourceType: "module"
        }
      • attributes: []
      }
    }
The AST is not public API and may change at any point in time
Imperative API Translator • Playground • Svelte