From 8e1d2b3cc9eed6beca4b7f5abdabc8fae00967e6 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Sun, 30 Oct 2022 19:24:55 +0100 Subject: [PATCH 01/89] init --- .gitignore | 3 + .vscode/settings.json | 17 ++ demo_/index.ts | 41 +++ package.json | 19 ++ src/compiler.ts | 44 +++ src/components/ListView.ts | 56 ++++ src/components/index.ts | 5 + src/directives/vShow.ts | 49 ++++ src/dom/index.ts | 367 ++++++++++++++++++++++++ src/index.ts | 61 ++++ src/nativescript/elements.ts | 226 +++++++++++++++ src/nativescript/index.ts | 24 ++ src/registry/index.ts | 101 +++++++ src/renderer/index.ts | 9 + src/renderer/modules/attrs.ts | 37 +++ src/renderer/modules/class.ts | 10 + src/renderer/modules/events.ts | 86 ++++++ src/renderer/modules/style.ts | 42 +++ src/renderer/nodeOps.ts | 76 +++++ src/renderer/patchProp.ts | 41 +++ src/runtimeHelpers.ts | 15 + src/withCompiler.ts | 7 + tsconfig.json | 16 ++ yarn.lock | 498 +++++++++++++++++++++++++++++++++ 24 files changed, 1850 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 demo_/index.ts create mode 100644 package.json create mode 100644 src/compiler.ts create mode 100644 src/components/ListView.ts create mode 100644 src/components/index.ts create mode 100644 src/directives/vShow.ts create mode 100644 src/dom/index.ts create mode 100644 src/index.ts create mode 100644 src/nativescript/elements.ts create mode 100644 src/nativescript/index.ts create mode 100644 src/registry/index.ts create mode 100644 src/renderer/index.ts create mode 100644 src/renderer/modules/attrs.ts create mode 100644 src/renderer/modules/class.ts create mode 100644 src/renderer/modules/events.ts create mode 100644 src/renderer/modules/style.ts create mode 100644 src/renderer/nodeOps.ts create mode 100644 src/renderer/patchProp.ts create mode 100644 src/runtimeHelpers.ts create mode 100644 src/withCompiler.ts create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..3b626f48 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +**/dist + +yarn-error.log \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..f988fc5c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,17 @@ +{ + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/Thumbs.db": true, + "**/*.js": { + "when": "$(basename).ts" + }, + "**/*.map": true, + "**/.idea": false, + "**/.tscache": true, + "**/node_modules": true + } +} \ No newline at end of file diff --git a/demo_/index.ts b/demo_/index.ts new file mode 100644 index 00000000..8129a071 --- /dev/null +++ b/demo_/index.ts @@ -0,0 +1,41 @@ +import { + createApp, + defineComponent, + registerUnknownViewResolver, +} from "../src/withCompiler"; + +registerUnknownViewResolver((name) => { + return class { + constructor() { + console.log("creating", name); + } + }; +}); + +const TestComponent = defineComponent({ + data() { + return { + show: false, + }; + }, + created() { + setInterval(() => { + this.show = !this.show; + }, 1000); + }, + template: `
+ vshow + vshow +
`, +}); + +const app = createApp({ + components: { + TestComponent, + Foo: { + props: ["name"], + template: "
{{ name }}
", + }, + }, + template: `
Hello App!
`, +}).start(); diff --git a/package.json b/package.json new file mode 100644 index 00000000..fbc76831 --- /dev/null +++ b/package.json @@ -0,0 +1,19 @@ +{ + "name": "ns-vue-next-v2", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "scripts": { + "build": "esbuild --bundle --define:__VUE_OPTIONS_API__=true --define:__VUE_PROD_DEVTOOLS__=true --sourcemap --format=esm --outdir=dist --out-extension:.js=.mjs ./src/test.ts", + "build:compiler": "esbuild --bundle --define:__VUE_OPTIONS_API__=true --define:__VUE_PROD_DEVTOOLS__=true --sourcemap --format=cjs --outdir=dist --out-extension:.js=.cjs ./src/compiler.ts" + }, + "devDependencies": { + "@nativescript/core": "^8.3.5", + "@vue/compiler-dom": "^3.2.41", + "@vue/runtime-dom": "^3.2.41", + "esbuild": "^0.15.12", + "tsx": "^3.11.0", + "typescript": "^4.8.4", + "vue": "^3.2.41" + } +} diff --git a/src/compiler.ts b/src/compiler.ts new file mode 100644 index 00000000..69c16c0f --- /dev/null +++ b/src/compiler.ts @@ -0,0 +1,44 @@ +import { compile, CompilerError, CompilerOptions } from "@vue/compiler-dom"; +import { RenderFunction, warn } from "@vue/runtime-dom"; +import * as runtime from "./index"; + +const NOOP = () => {}; +const compileCache: Record = Object.create(null); + +export function compileToFunction( + template: string, + options?: CompilerOptions +): RenderFunction { + if (typeof template !== "string") { + warn("invalid template option: ", template); + return NOOP; + } + + const key = template; + const cached = compileCache[key]; + + if (cached) { + return cached; + } + + const { code } = compile(template, { + isNativeTag: (tag) => true, + hoistStatic: true, + prefixIdentifiers: true, + onWarn(warn: CompilerError) { + console.warn("warn", warn); + }, + onError(err: CompilerError) { + console.log("err", err); + }, + ...options, + }); + + const render = new Function("Vue", code)(runtime) as RenderFunction; + + return (compileCache[key] = render); +} + +export { + compileToFunction as compile +} \ No newline at end of file diff --git a/src/components/ListView.ts b/src/components/ListView.ts new file mode 100644 index 00000000..81e02f68 --- /dev/null +++ b/src/components/ListView.ts @@ -0,0 +1,56 @@ +import { defineComponent, h, warn } from "@vue/runtime-core"; + +import { ItemEventData, ListView as NSCListView } from "@nativescript/core"; + +import { registerElement } from "../registry"; +import { NSVElement, NSVRoot, NSVViewFlags } from "../dom"; +import { render } from ".."; +import { ELEMENT_REF } from "../runtimeHelpers"; + +registerElement("NSCListView", () => NSCListView, { + viewFlags: NSVViewFlags.NO_CHILDREN, +}); + +declare global { + interface ListItem { + item: T; + index: number; + even: boolean; + odd: boolean; + } +} + +export const ListView = defineComponent({ + props: ["items"], + + setup(props, ctx) { + console.log(props, ctx); + console.log(ctx.slots); + console.log(); + + return () => { + return h("NSCListView", { + items: props.items, + [`on${NSCListView.itemLoadingEvent}`](event: ItemEventData) { + const el = event.view?.[ELEMENT_REF] as NSVElement; + const container = (el?.parentNode as NSVRoot) ?? new NSVRoot(); + + const slot = ctx.slots.default({ + item: props.items[event.index], + index: event.index, + even: event.index % 2 === 0, + odd: event.index % 2 !== 0, + }); + + if (slot.length > 1) { + warn( + `ListView template must contain a single root element. Found: ${slot.length}. Only the first one will be used.` + ); + } + render(slot[0], container as any); + event.view = container.el.nativeView; + }, + }); + }; + }, +}); diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100644 index 00000000..fe15487c --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1,5 @@ +import { ListView } from "./ListView"; + +export const BUILT_IN_COMPONENTS = { + ListView, +}; diff --git a/src/directives/vShow.ts b/src/directives/vShow.ts new file mode 100644 index 00000000..54d6d10b --- /dev/null +++ b/src/directives/vShow.ts @@ -0,0 +1,49 @@ +import { ObjectDirective } from "@vue/runtime-core"; +import { NSVElement } from "../dom"; + +interface VShowElement extends NSVElement { + // _vod = vue original display + _vod: string; +} + +export const vShow: ObjectDirective = { + beforeMount(el, { value }, { transition }) { + el._vod = + el.getAttribute("visibility") === "none" + ? "" + : (el.getAttribute("visibility") as string); + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el) { + setDisplay(el, true); + }, +}; + +function setDisplay(el: VShowElement, value: unknown): void { + el.setAttribute("visibility", value ? el._vod : "collapsed"); +} diff --git a/src/dom/index.ts b/src/dom/index.ts new file mode 100644 index 00000000..1b5a02ae --- /dev/null +++ b/src/dom/index.ts @@ -0,0 +1,367 @@ +import { + getViewClass, + getViewMeta, + normalizeElementName, + NSVViewMeta, +} from "../registry"; +import { ELEMENT_REF } from "../runtimeHelpers"; +// import set from 'set-value' +// import unset from 'unset-value' + +const __TEST__ = false; + +export const enum NSVNodeTypes { + TEXT = "text", + ELEMENT = "element", + COMMENT = "comment", + ROOT = "root", +} + +// View Flags indicate the kind of view the element is +// this avoids extra checks during runtime to determine +// the method to use for adding/removing child nodes +export const enum NSVViewFlags { + NONE = 0, + SKIP_ADD_TO_DOM = 1 << 0, + CONTENT_VIEW = 1 << 1, + LAYOUT_VIEW = 1 << 2, + NO_CHILDREN = 1 << 3, +} + +let nodeId = 0; + +export abstract class NSVNode { + protected constructor(nodeType: NSVNodeTypes) { + this.nodeType = nodeType; + this.nodeId = nodeId++; + } + + nodeId: number; + nodeType: NSVNodeTypes; + + private _text?: string | undefined; + public get text(): string | undefined { + return this._text; + } + public set text(value: string | undefined) { + this._text = value; + } + + parentNode: NSVElement | null = null; + childNodes: NSVNode[] = []; + + get nextSibling(): NSVNode | null { + if (!this.parentNode) { + return null; + } + + const selfIndex = this.parentNode.childNodes.findIndex( + (n) => n.nodeId === this.nodeId + ); + + if (selfIndex > -1 && selfIndex < this.parentNode.childNodes.length - 1) { + return this.parentNode.childNodes[selfIndex + 1]; + } + + return null; + } + + get prevSibling(): NSVNode | null { + if (!this.parentNode) { + return null; + } + + const selfIndex = this.parentNode.childNodes.findIndex( + (n) => n.nodeId === this.nodeId + ); + + if (selfIndex > 0) { + return this.parentNode.childNodes[selfIndex - 1]; + } + + return null; + } + + get firstChild() { + return this.childNodes.length ? this.childNodes[0] : null; + } + + get lastChild() { + return this.childNodes.length + ? this.childNodes[this.childNodes.length - 1] + : null; + } +} + +export class NSVElement extends NSVNode { + private readonly _tagName: string; + private readonly _nativeView: any; + private _meta: NSVViewMeta | undefined; + + constructor(tagName: string) { + super(NSVNodeTypes.ELEMENT); + + this._tagName = normalizeElementName(tagName); + const viewClass = getViewClass(tagName); + this._nativeView = new viewClass(); + this._nativeView[ELEMENT_REF] = this; + } + + get tagName(): string { + return this._tagName; + } + + get nativeView() { + return this._nativeView; + } + + get style(): any | string { + return this.nativeView.style; + } + + set style(inlineStyle: any | string) { + this.nativeView.style = inlineStyle; + } + + get text(): string | undefined { + return this.nativeView.text; + } + + set text(t: string | undefined) { + this.nativeView.text = t; + } + + get meta() { + if (this._meta) { + return this._meta; + } + + return (this._meta = getViewMeta(this.tagName)); + } + + addEventListener( + event: string, + handler: any, + options: AddEventListenerOptions = {} + ) { + const { capture, once } = options; + if (capture) { + // debug("Bubble propagation is not supported"); + } + if (once) { + const oldHandler = handler; + const self = this; + handler = (...args: any) => { + oldHandler.call(null, ...args); + self.removeEventListener(event, handler); + }; + } + // this.nativeView.addEventListener(event, handler); + + // temporary, @loaded becomes `onLoaded` -> `Loaded` + this.nativeView.addEventListener(event.toLowerCase(), handler); + } + + removeEventListener(event: string, handler?: any) { + this.nativeView.removeEventListener(event, handler); + } + + dispatchEvent(event: string) { + this.nativeView.notify({ eventName: event, object: this.nativeView }); + } + + getAttribute(name: string): unknown { + return this.nativeView[name]; + } + + setAttribute(name: string, value: unknown) { + this.nativeView[name] = value + // set(this.nativeView, name, value); + } + + removeAttribute(name: string) { + // potential issue: unsetValue is an empty object + // not all properties/attributes may know/check for this + // set(this.nativeView, name, unsetValue); + // originally we deleted the property, but in case of built-in properties + // this would break them. For example, deleting the padding property + // will prevent us from changing the padding once we deleted it + // that's not the expected behaviour. + // unset(this.nativeView, name) + } + + insertBefore(el: NSVNode, anchor?: NSVNode | null) { + if (!anchor) { + return this.appendChild(el); + } + + const refIndex = this.childNodes.findIndex( + (node) => node.nodeId === anchor.nodeId + ); + + if (refIndex === -1) { + return this.appendChild(el); + } + + if (el.parentNode) { + el.parentNode.removeChild(el); + } + + this.childNodes.splice(refIndex, 0, el); + el.parentNode = this; + + // find index to use for the native view, since non-visual nodes + // (comment/text don't exist in the native view hierarchy) + // todo: potentially refactor based on my benchmark: + // https://www.measurethat.net/Benchmarks/Show/7450/0/filter-findindex + const trueIndex = this.childNodes + .filter((node) => node.nodeType === NSVNodeTypes.ELEMENT) + .findIndex((node) => node.nodeId === el.nodeId); + + this.addChild(el, trueIndex); + } + + appendChild(el: NSVNode) { + this.childNodes.push(el); + el.parentNode = this; + + this.addChild(el); + } + + removeChild(el: NSVNode) { + const index = this.childNodes.findIndex( + (node) => node.nodeId === el.nodeId + ); + + if (index > -1) { + this.childNodes.splice(index, 1); + el.parentNode = null; + if (el.nodeType === NSVNodeTypes.ELEMENT) { + removeChild(el as NSVElement, this); + } else if (el.nodeType === NSVNodeTypes.TEXT) { + this.updateText(); + } + } + } + + // abstracted from appendChild, and insertBefore to avoid code duplication + private addChild(el: NSVNode, atIndex?: number): void { + if (el.nodeType === NSVNodeTypes.ELEMENT) { + addChild(el as NSVElement, this, atIndex); + } else if (el.nodeType === NSVNodeTypes.TEXT) { + this.updateText(); + } + } + + updateText() { + this.setAttribute( + "text", + this.childNodes + .filter((node) => node.nodeType === NSVNodeTypes.TEXT) + .reduce((text: string, currentNode) => { + return text + currentNode.text; + }, "") + ); + } +} + +export class NSVComment extends NSVNode { + constructor(text: string) { + super(NSVNodeTypes.COMMENT); + + this.text = text; + } +} + +export class NSVText extends NSVNode { + constructor(text: string) { + super(NSVNodeTypes.TEXT); + + this.text = text; + } +} + +export class NSVRoot extends NSVNode { + el?: NSVElement; + + constructor() { + super(NSVNodeTypes.ROOT); + } + + appendChild(el: NSVNode) { + // console.log(`NSVRoot->appendChild(${el.nodeType})`) + if (el instanceof NSVElement) { + el.parentNode = this as any; + this.el = el; + } + // no-op + } +} + +function addChild(child: NSVElement, parent: NSVElement, atIndex?: number) { + if (__TEST__) return; + // debug( + // `...addChild( ${child.tagName}(${child.nodeId}), ${parent.tagName}(${ + // parent.nodeId + // }), ${atIndex} )` + // ) + if (child.meta.viewFlags & NSVViewFlags.SKIP_ADD_TO_DOM) { + // debug('SKIP_ADD_TO_DOM') + return; + } + + const parentView = parent.nativeView; + const childView = child.nativeView; + + if (parent.meta.viewFlags & NSVViewFlags.NO_CHILDREN) { + // debug('NO_CHILDREN') + return; + } + if (parent.meta.nodeOps) { + return parent.meta.nodeOps.insert(child, parent, atIndex); + } + + if (parent.meta.viewFlags & NSVViewFlags.LAYOUT_VIEW) { + if (atIndex) { + parentView.insertChild(childView, atIndex); + } else { + parentView.addChild(childView); + } + } else if (parent.meta.viewFlags & NSVViewFlags.CONTENT_VIEW) { + parentView.content = childView; + } else { + parentView._addChildFromBuilder(childView.constructor.name, childView); + } +} + +function removeChild(child: NSVElement, parent: NSVElement) { + if (__TEST__) return; + // debug( + // `...removeChild( ${child.tagName}(${child.nodeId}), ${parent.tagName}(${ + // parent.nodeId + // }) )` + // ) + + if (child.meta.viewFlags & NSVViewFlags.SKIP_ADD_TO_DOM) { + // debug('SKIP_ADD_TO_DOM') + return; + } + if (parent.meta.viewFlags & NSVViewFlags.NO_CHILDREN) { + // debug('NO_CHILDREN') + return; + } + if (parent.meta.nodeOps) { + return parent.meta.nodeOps.remove(child, parent); + } + + const parentView = parent.nativeView; + const childView = child.nativeView; + + if (parent.meta.viewFlags & NSVViewFlags.LAYOUT_VIEW) { + parentView.removeChild(childView); + } else if (parent.meta.viewFlags & NSVViewFlags.CONTENT_VIEW) { + parentView.content = null; + } else { + parentView._removeView(childView); + } +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..dd897a76 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,61 @@ +import { resolveComponent as resolveComponentCore } from "@vue/runtime-core"; +import type { CreateAppFunction } from "@vue/runtime-core"; + +import { BUILT_IN_COMPONENTS } from "./components"; + +import { NSVElement, NSVRoot } from "./dom"; +import { init, startApp } from "./nativescript"; +import { renderer } from "./renderer"; + +declare module "@vue/runtime-core" { + interface App { + start(): ComponentPublicInstance | undefined; + mount( + rootContainer?: NSVRoot | string, + isHydrate?: boolean, + isSVG?: boolean + ): ComponentPublicInstance; + } +} + +init(); + +export * from "./dom"; +export * from "./registry"; +export * from "./renderer"; + +export * from "@vue/runtime-dom"; +export { vShow } from "./directives/vShow"; + +export const render = renderer.render; +export const createApp = ((...args) => { + const app = renderer.createApp(...args); + const { mount } = app; + + app.mount = (...args) => { + if (!args.length) { + return mount(new NSVRoot(), false, false); + } + return mount(...args); + }; + + app.start = () => { + const componentInstance = app.mount(); + startApp(componentInstance); + + return componentInstance; + }; + + return app; +}) as CreateAppFunction; + +export function resolveComponent(name: string, maybeSelReference: boolean) { + console.log("RESOLVE COMPONENT", name); + + if (BUILT_IN_COMPONENTS[name]) { + return BUILT_IN_COMPONENTS[name]; + } + + const component = resolveComponentCore(name, maybeSelReference); + return component; +} diff --git a/src/nativescript/elements.ts b/src/nativescript/elements.ts new file mode 100644 index 00000000..8ae3004f --- /dev/null +++ b/src/nativescript/elements.ts @@ -0,0 +1,226 @@ +import { Frame as NSCFrame, Page as NSCPage } from "@nativescript/core"; + +import { warn } from "@vue/runtime-core"; + +import { NSVElement, NSVViewFlags } from "../dom"; +import { registerElement } from "../registry"; + +export function registerCoreElements() { + // layouts + registerElement( + "AbsoluteLayout", + () => require("@nativescript/core").AbsoluteLayout, + { viewFlags: NSVViewFlags.LAYOUT_VIEW } + ); + registerElement( + "DockLayout", + () => require("@nativescript/core").DockLayout, + { + viewFlags: NSVViewFlags.LAYOUT_VIEW, + } + ); + registerElement( + "FlexboxLayout", + () => require("@nativescript/core").FlexboxLayout, + { viewFlags: NSVViewFlags.LAYOUT_VIEW } + ); + registerElement( + "GridLayout", + () => require("@nativescript/core").GridLayout, + { + viewFlags: NSVViewFlags.LAYOUT_VIEW, + } + ); + registerElement( + "StackLayout", + () => require("@nativescript/core").StackLayout, + { viewFlags: NSVViewFlags.LAYOUT_VIEW } + ); + registerElement( + "WrapLayout", + () => require("@nativescript/core").WrapLayout, + { + viewFlags: NSVViewFlags.LAYOUT_VIEW, + } + ); + + // ContentViews + registerElement( + "ContentView", + () => require("@nativescript/core").ContentView, + { viewFlags: NSVViewFlags.CONTENT_VIEW } + ); + registerElement( + "ScrollView", + () => require("@nativescript/core").ScrollView, + { + viewFlags: NSVViewFlags.CONTENT_VIEW, + } + ); + + // ActionBar + registerElement( + "InternalActionBar", + () => require("@nativescript/core").ActionBar, + { + viewFlags: NSVViewFlags.SKIP_ADD_TO_DOM, + } + ); + registerElement("ActionItem", () => require("@nativescript/core").ActionItem); + registerElement( + "NavigationButton", + () => require("@nativescript/core").NavigationButton + ); + + // navigation + registerElement("Frame", () => require("@nativescript/core").Frame, { + // todo: move into Frame.ts when we end up creating a component for Frame + nodeOps: { + insert(child: NSVElement, parent: NSVElement, atIndex?: number): void { + const frame = parent.nativeView as NSCFrame; + if (child.nativeView instanceof NSCPage) { + frame.navigate({ + create() { + return child.nativeView; + }, + }); + } else { + if (__DEV__) { + warn( + ` must only contain elements - ` + + `got <${child.nativeView.constructor.name}> instead.` + ); + } + } + }, + remove(child: NSVElement, parent: NSVElement): void { + // ignore? warn? throw? navigate back? + }, + }, + }); + registerElement("Page", () => require("@nativescript/core").Page, { + viewFlags: NSVViewFlags.CONTENT_VIEW, + }); + + // html + registerElement("HtmlView", () => require("@nativescript/core").HtmlView); + registerElement("WebView", () => require("@nativescript/core").WebView); + + // components + registerElement( + "ActivityIndicator", + () => require("@nativescript/core").ActivityIndicator + ); + registerElement("Button", () => require("@nativescript/core").Button); + registerElement( + "DatePicker", + () => require("@nativescript/core").DatePicker, + { + model: { + prop: "date", + event: "dateChange", + }, + } + ); + registerElement( + "FormattedString", + () => require("@nativescript/core").FormattedString, + { + nodeOps: { + insert(child, parent, atIndex) { + if (atIndex) { + parent.nativeView.spans.splice(atIndex, 0, child.nativeView); + return; + } + parent.nativeView.spans.push(child.nativeView); + }, + remove(child, parent) { + const index = parent.nativeView.spans.indexOf(child.nativeView); + + if (index > -1) { + parent.nativeView.spans.splice(index, 1); + } + }, + }, + } + ); + registerElement("Image", () => require("@nativescript/core").Image); + registerElement("Label", () => require("@nativescript/core").Label); + registerElement( + "ListPicker", + () => require("@nativescript/core").ListPicker, + { + model: { + prop: "selectedIndex", + event: "selectedIndexChange", + }, + } + ); + registerElement( + "InternalListView", + () => require("@nativescript/core").ListView, + { + viewFlags: NSVViewFlags.NO_CHILDREN, + } + ); + registerElement( + "Placeholder", + () => require("@nativescript/core").Placeholder + ); + registerElement("Progress", () => require("@nativescript/core").Progress); + registerElement("SearchBar", () => require("@nativescript/core").SearchBar, { + model: { + prop: "text", + event: "textChange", + }, + }); + registerElement( + "SegmentedBar", + () => require("@nativescript/core").SegmentedBar, + { + model: { + prop: "selectedIndex", + event: "selectedIndexChange", + }, + } + ); + registerElement( + "SegmentedBarItem", + () => require("@nativescript/core").SegmentedBarItem + ); + registerElement("Slider", () => require("@nativescript/core").Slider, { + model: { + prop: "value", + event: "valueChange", + }, + }); + registerElement("Span", () => require("@nativescript/core").Span); + registerElement("Switch", () => require("@nativescript/core").Switch, { + model: { + prop: "checked", + event: "checkedChange", + }, + }); + registerElement("TextField", () => require("@nativescript/core").TextField, { + model: { + prop: "text", + event: "textChange", + }, + }); + registerElement("TextView", () => require("@nativescript/core").TextView, { + model: { + prop: "text", + event: "textChange", + }, + }); + registerElement( + "TimePicker", + () => require("@nativescript/core").TimePicker, + { + model: { + prop: "time", + event: "timeChange", + }, + } + ); +} diff --git a/src/nativescript/index.ts b/src/nativescript/index.ts new file mode 100644 index 00000000..951dd4bc --- /dev/null +++ b/src/nativescript/index.ts @@ -0,0 +1,24 @@ +import { Application } from "@nativescript/core"; +import { ComponentPublicInstance } from "@vue/runtime-core"; +import { NSVRoot } from "../dom"; +import { registerCoreElements } from "./elements"; + +// export all ns stuff in a single file to allow easy mocking for testing... + +export function init() { + registerCoreElements(); +} + +export function startApp(rootComponent: ComponentPublicInstance) { + console.log("starting app..."); + Application.run({ + create() { + return rootComponent.$el.nativeView + }, + }); +} + +export { isAndroid, isIOS } from "@nativescript/core"; + +// export const isAndroid = false; +// export const isIOS = false; diff --git a/src/registry/index.ts b/src/registry/index.ts new file mode 100644 index 00000000..9adf957a --- /dev/null +++ b/src/registry/index.ts @@ -0,0 +1,101 @@ +import { NSVElement, NSVViewFlags } from "../dom"; + +export type NSVElementResolver = () => any; + +export type NSVModelDescriptor = { + prop: string; + event: string; +}; + +export interface NSVViewMeta { + viewFlags: NSVViewFlags; + nodeOps?: { + insert(child: NSVElement, parent: NSVElement, atIndex?: number): void; + remove(child: NSVElement, parent: NSVElement): void; + }; + model?: NSVModelDescriptor; + overwriteExisting?: boolean; +} + +export interface NSVElementDescriptor { + meta: NSVViewMeta; + resolver?: NSVElementResolver; +} + +export let defaultViewMeta: NSVViewMeta = { + viewFlags: 0 // NSVViewFlags.NONE, // tsx can't resolve NSVViewFlags here? +}; + +let elementMap: Record = {}; + +export function getViewMeta(elementName: string): NSVViewMeta { + // console.log(`->getViewMeta(${elementName})`) + + const normalizedName = normalizeElementName(elementName); + + const entry = elementMap[normalizedName]; + + if (!entry) { + throw new Error(`No known component for element ${elementName}.`); + } + + return entry.meta; +} + +let unknownViewResolver; + +export function registerUnknownViewResolver(resolver: (name: string) => any) { + unknownViewResolver = resolver; +} + +export function getViewClass(elementName: string): any { + // console.log(`->getViewClass(${elementName})`) + const normalizedName = normalizeElementName(elementName); + const entry = elementMap[normalizedName]; + + if (!entry) { + const resolved = unknownViewResolver?.(elementName); + + if (resolved) { + return resolved; + } + + throw new Error(`No known component for element ${elementName}.`); + } + + try { + return entry.resolver!(); + } catch (e) { + throw new Error(`Could not load view for: ${elementName}. ${e}`); + } +} + +export function normalizeElementName(elementName: string): string { + return elementName.replace(/-/g, "").toLowerCase(); +} + +export function registerElement( + elementName: string, + resolver?: NSVElementResolver, + meta?: Partial +) { + const normalizedName = normalizeElementName(elementName); + const mergedMeta = Object.assign({}, defaultViewMeta, meta); + + if (elementMap[normalizedName] && !mergedMeta.overwriteExisting) { + throw new Error( + `Element for ${elementName} already registered.\n` + + `If this is intentional set 'overwriteExisting: true' in 'meta'` + ); + } + + elementMap[normalizedName] = { + meta: mergedMeta, + resolver, + }; + // console.log(`->registerElement(${elementName})`) +} + +export function isKnownView(elementName: string) { + return elementMap.hasOwnProperty(normalizeElementName(elementName)); +} diff --git a/src/renderer/index.ts b/src/renderer/index.ts new file mode 100644 index 00000000..ce9add5f --- /dev/null +++ b/src/renderer/index.ts @@ -0,0 +1,9 @@ +import { createRenderer } from "@vue/runtime-core"; + +import { patchProp } from "./patchProp"; +import { nodeOps } from "./nodeOps"; + +export const renderer = createRenderer({ + patchProp, + ...nodeOps, +}); diff --git a/src/renderer/modules/attrs.ts b/src/renderer/modules/attrs.ts new file mode 100644 index 00000000..cdd20b67 --- /dev/null +++ b/src/renderer/modules/attrs.ts @@ -0,0 +1,37 @@ +import { NSVElement } from "../../dom"; +import { isBoolean, isAndroidKey, isIOSKey } from "../../runtimeHelpers"; +import { isAndroid, isIOS } from "../../nativescript"; + +export function patchAttr( + el: NSVElement, + key: string, + prevValue: any, + nextValue: any +) { + if (isAndroidKey(key)) { + if (!isAndroid) { + // if we encounter an android key, and we are not on android we can safely ignore it + return; + } + key = key.substring(8); + } else if (isIOSKey(key)) { + if (!isIOS) { + // if we encounter an ios key, and we are not on ios we can safely ignore it + return; + } + key = key.substring(4); + } + + // detect expandable attrs for boolean values + // see https://vuejs.org/v2/guide/components-props.html#Passing-a-Boolean + if (isBoolean(el.getAttribute(key)) && nextValue === "") { + nextValue = true; + } + + if (nextValue === null) { + // if the nextValue is null, we are removing the attribute + el.removeAttribute(key); + } else { + el.setAttribute(key, nextValue); + } +} diff --git a/src/renderer/modules/class.ts b/src/renderer/modules/class.ts new file mode 100644 index 00000000..1fba6095 --- /dev/null +++ b/src/renderer/modules/class.ts @@ -0,0 +1,10 @@ +import { NSVElement } from "../../dom"; + +// compiler should normalize class + :class bindings on the same element +// into a single binding ['staticClass', dynamic] +export function patchClass(el: NSVElement, value: string | null) { + if (value == null) { + value = ""; + } + el.setAttribute("class", value); +} diff --git a/src/renderer/modules/events.ts b/src/renderer/modules/events.ts new file mode 100644 index 00000000..5a7cea1e --- /dev/null +++ b/src/renderer/modules/events.ts @@ -0,0 +1,86 @@ +// import { hyphenate } from '@vue/shared' +import { NSVElement } from "../../dom"; +import { + callWithAsyncErrorHandling, + ComponentInternalInstance, +} from "@vue/runtime-core"; + +interface Invoker extends EventListener { + value: EventValue; +} + +type EventValue = Function | Function[]; + +export function addEventListener( + el: NSVElement, + event: string, + handler: EventListener, + options: EventListenerOptions = {} +) { + el.addEventListener(event, handler, options); +} + +export function removeEventListener( + el: NSVElement, + event: string, + handler: EventListener, + options: EventListenerOptions = {} +) { + el.removeEventListener(event, handler); +} + +export function patchEvent( + el: NSVElement & { _vei?: Record }, + rawName: string, + prevValue: EventValue | null, + nextValue: EventValue | null, + instance: ComponentInternalInstance | null = null +) { + // vei = vue event invokers + const invokers = el._vei || (el._vei = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + // patch + existingInvoker.value = nextValue; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + // add + const invoker = (invokers[rawName] = createInvoker(nextValue, instance)); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + // remove + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = undefined; + } + } +} + +const optionsModifierRE = /(?:Once|Capture)$/; + +function parseName(name: string): [string, EventListenerOptions | undefined] { + let options: EventListenerOptions | undefined; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while ((m = name.match(optionsModifierRE))) { + name = name.slice(0, name.length - m[0].length); + (options as any)[m[0].toLowerCase()] = true; + options; + } + } + // return event name by removing on prefix. eg. onitemTap -> itemTap + return [name.slice(2), options]; + // return [hyphenate(name.slice(2)), options] +} + +function createInvoker( + initialValue: EventValue, + instance: ComponentInternalInstance | null +) { + const invoker: Invoker = (e: Event) => { + callWithAsyncErrorHandling(invoker.value, instance, 5, [e]); + }; + invoker.value = initialValue; + return invoker; +} diff --git a/src/renderer/modules/style.ts b/src/renderer/modules/style.ts new file mode 100644 index 00000000..f3657392 --- /dev/null +++ b/src/renderer/modules/style.ts @@ -0,0 +1,42 @@ +import { NSVElement } from "../../dom"; + +type Style = string | null; + +function isRule(node: any): boolean { + return node.type === "rule"; +} + +function isDeclaration(node: any): boolean { + return node.type === "declaration"; +} + +function createDeclaration(decl: any): any { + return { property: decl.property.toLowerCase(), value: decl.value }; +} + +function declarationsFromAstNodes(astRules: any[]): any[] { + return astRules.filter(isRule).map((rule) => { + return rule.declarations.filter(isDeclaration).map(createDeclaration); + }); +} + +export function patchStyle(el: NSVElement, prev: Style, next: Style) { + if (prev) { + // todo: check if we can substitute cssTreeParse with parseInlineCSS from compiler/transforms/transformStyle (by extracting it to shared) + // reset previous styles + const localStyle = `local { ${prev} }`; + // const ast: any = cssTreeParse(localStyle, undefined) + // const [declarations] = declarationsFromAstNodes(ast.stylesheet.rules) + + // declarations.forEach((d: any) => { + // ;(el.nativeView.style as any)[d.property] = unsetValue + // }) + } + + if (!next) { + el.removeAttribute("style"); + } else { + // set new styles + el.style = next; + } +} diff --git a/src/renderer/nodeOps.ts b/src/renderer/nodeOps.ts new file mode 100644 index 00000000..bc2d9100 --- /dev/null +++ b/src/renderer/nodeOps.ts @@ -0,0 +1,76 @@ +import { VNodeProps } from "@vue/runtime-core"; + +import { NSVComment, NSVElement, NSVNode, NSVText } from "../dom"; + +export function insert( + el: NSVNode, + parent: NSVElement, + anchor?: NSVNode | null | undefined +): void { + // console.log("insert", el, parent, anchor); + if (anchor !== null) { + parent.insertBefore(el, anchor); + } else { + parent.appendChild(el); + } +} + +export function remove(el: NSVNode): void { + // console.log("remove", el); + if (el.parentNode != null) { + el.parentNode.removeChild(el); + } +} + +export function createElement( + type: string, + isSVG?: boolean | undefined, + isCustomizedBuiltIn?: string | undefined, + vnodeProps?: (VNodeProps & { [key: string]: any }) | null | undefined +): NSVElement { + // console.log("createElement"); + return new NSVElement(type); +} + +export function createText(text: string): NSVNode { + // console.log("createText"); + return new NSVText(text); +} + +export function createComment(text: string): NSVNode { + // console.log("createComment"); + return new NSVComment(text); +} + +export function setText(node: NSVNode, text: string): void { + // console.log("set text", node, text); + node.text = text; +} + +export function setElementText(node: NSVElement, text: string): void { + // console.log("set element text", node, text); + node.text = text; +} + +export function parentNode(node: NSVNode): NSVElement | null { + // console.log("parentNode?", node); + return node.parentNode; +} + +export function nextSibling(node: NSVNode): NSVNode | null { + return node.nextSibling; +} + +export const nodeOps = { + insert, + remove, + createElement, + createText, + createComment, + setText, + setElementText, + parentNode, + nextSibling, + // querySelector, + // setScopeId, +}; diff --git a/src/renderer/patchProp.ts b/src/renderer/patchProp.ts new file mode 100644 index 00000000..b914fdf4 --- /dev/null +++ b/src/renderer/patchProp.ts @@ -0,0 +1,41 @@ +import { NSVElement } from "../dom"; +import { patchAttr } from "./modules/attrs"; +import { patchClass } from "./modules/class"; +import { patchEvent } from "./modules/events"; +import { patchStyle } from "./modules/style"; + +import { isOn } from "../runtimeHelpers"; + +export function patchProp( + el: NSVElement, + key: string, + prevValue: any, + nextValue: any, + isSVG = false, + prevChildren: any, + parentComponent: any, + parentSuspense: any, + unmountChildren: any +) { + switch (key) { + // special + case "class": + // console.log('->patchProp+Class') + patchClass(el, nextValue); + break; + case "style": + // console.log('->patchProp+Style') + patchStyle(el, prevValue, nextValue); + break; + case "modelValue": + case "onUpdate:modelValue": + // handled by v-model directive + break; + default: + if (isOn(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } else { + patchAttr(el, key, prevValue, nextValue); + } + } +} diff --git a/src/runtimeHelpers.ts b/src/runtimeHelpers.ts new file mode 100644 index 00000000..bc6f3180 --- /dev/null +++ b/src/runtimeHelpers.ts @@ -0,0 +1,15 @@ +const __DEV__ = true; + + +export const ELEMENT_REF = Symbol(__DEV__ ? `elementRef` : ``); + +const onRE = /^on.+/; +export const isOn = (key: string) => onRE.test(key); + +export const isAndroidKey = (key: string) => key.startsWith("android:"); + +export const isIOSKey = (key: string) => key.startsWith("ios:"); + +export const isBoolean = (value: unknown): boolean => { + return typeof value === "boolean" || value instanceof Boolean; +}; diff --git a/src/withCompiler.ts b/src/withCompiler.ts new file mode 100644 index 00000000..5811b460 --- /dev/null +++ b/src/withCompiler.ts @@ -0,0 +1,7 @@ +import { registerRuntimeCompiler } from "./"; +import { compileToFunction } from "./compiler"; + +registerRuntimeCompiler(compileToFunction); + +export { compileToFunction as compile } +export * from "./index"; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..8e94c26a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "target": "ESNext", + "moduleResolution": "node", + "outDir": "dist", + "strict": false, + "sourceMap": true, + "declaration": true, + "skipLibCheck": true, + "paths": { + "@vue/compiler-dom": ["./node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js"] + } + }, + "include": ["src"] +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..f09f1b8f --- /dev/null +++ b/yarn.lock @@ -0,0 +1,498 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/parser@^7.16.4": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.0.tgz#b26133c888da4d79b0d3edcf42677bcadc783046" + integrity sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg== + +"@esbuild-kit/cjs-loader@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.0.tgz#643c4b2855a18f31cd983794536d4ff64d3b410d" + integrity sha512-DBBCiHPgL2B/elUpvCDhNHXnlZQ9sfO2uyt1OJyAXKT41beQEFY4OxZ6gwS+ZesRCbZ6JV8M7GEyOPkjv8kdIw== + dependencies: + "@esbuild-kit/core-utils" "^3.0.0" + get-tsconfig "^4.2.0" + +"@esbuild-kit/core-utils@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@esbuild-kit/core-utils/-/core-utils-3.0.0.tgz#e0f8463a32b4a9c9b456a7f9c31a5e038c8d2c19" + integrity sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ== + dependencies: + esbuild "~0.15.10" + source-map-support "^0.5.21" + +"@esbuild-kit/esm-loader@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@esbuild-kit/esm-loader/-/esm-loader-2.5.0.tgz#af208eb9e0449038e7f35957ec51b7e70135e116" + integrity sha512-ySs0qOsiwj+hsgZM9/MniGdvfa9/WzqfFuIia8/5gSUPeIQIX2/tG91QakxPFOR35VFiwTB7wCiHtiS6dc6SkA== + dependencies: + "@esbuild-kit/core-utils" "^3.0.0" + get-tsconfig "^4.2.0" + +"@esbuild/android-arm@0.15.12": + version "0.15.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.12.tgz#e548b10a5e55b9e10537a049ebf0bc72c453b769" + integrity sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA== + +"@esbuild/linux-loong64@0.15.12": + version "0.15.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz#475b33a2631a3d8ca8aa95ee127f9a61d95bf9c1" + integrity sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw== + +"@nativescript/core@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@nativescript/core/-/core-8.3.5.tgz#3f8aeee18e64a7c0343df05aec2c18a88952c35f" + integrity sha512-YUcrg0LB3Q9wqGgNhs6O0TsUX+l134JibbqVG+lgAXRaqrF0ysEiYnCqdUWEOUBuot/soKd0a/wzKnEWsMZx3Q== + dependencies: + "@nativescript/hook" "~2.0.0" + acorn "^8.7.0" + css-tree "^1.1.2" + reduce-css-calc "^2.1.7" + tslib "^2.0.0" + +"@nativescript/hook@~2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@nativescript/hook/-/hook-2.0.0.tgz#dbc17777d08c657efc77e263dc1ba1896d9c77b5" + integrity sha512-v3Hj3Zpd69sQJfFpDNXonV0EjO1a2OL4l48wlo1Ycsqk4r7RY822d/irFTjt0LllRG0OcdEGgfG6wKb0YgPyHw== + dependencies: + glob "^7.1.0" + mkdirp "^1.0.4" + +"@vue/compiler-core@3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.41.tgz#fb5b25f23817400f44377d878a0cdead808453ef" + integrity sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.41" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@vue/compiler-dom@3.2.41", "@vue/compiler-dom@^3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz#dc63dcd3ce8ca8a8721f14009d498a7a54380299" + integrity sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw== + dependencies: + "@vue/compiler-core" "3.2.41" + "@vue/shared" "3.2.41" + +"@vue/compiler-sfc@3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz#238fb8c48318408c856748f4116aff8cc1dc2a73" + integrity sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.41" + "@vue/compiler-dom" "3.2.41" + "@vue/compiler-ssr" "3.2.41" + "@vue/reactivity-transform" "3.2.41" + "@vue/shared" "3.2.41" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz#344f564d68584b33367731c04ffc949784611fcb" + integrity sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ== + dependencies: + "@vue/compiler-dom" "3.2.41" + "@vue/shared" "3.2.41" + +"@vue/reactivity-transform@3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz#9ff938877600c97f646e09ac1959b5150fb11a0c" + integrity sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.41" + "@vue/shared" "3.2.41" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.41.tgz#0ad3bdf76d76822da1502dc9f394dafd02642963" + integrity sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g== + dependencies: + "@vue/shared" "3.2.41" + +"@vue/runtime-core@3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.41.tgz#775bfc00b3fadbaddab77138f23322aee3517a76" + integrity sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ== + dependencies: + "@vue/reactivity" "3.2.41" + "@vue/shared" "3.2.41" + +"@vue/runtime-dom@3.2.41", "@vue/runtime-dom@^3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz#cdf86be7410f7b15c29632a96ce879e5b4c9ab92" + integrity sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA== + dependencies: + "@vue/runtime-core" "3.2.41" + "@vue/shared" "3.2.41" + csstype "^2.6.8" + +"@vue/server-renderer@3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.41.tgz#ca64552c05878f94e8d191ac439141c06c0fb2ad" + integrity sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig== + dependencies: + "@vue/compiler-ssr" "3.2.41" + "@vue/shared" "3.2.41" + +"@vue/shared@3.2.41": + version "3.2.41" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.41.tgz#fbc95422df654ea64e8428eced96ba6ad555d2bb" + integrity sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw== + +acorn@^8.7.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-unit-converter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" + integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== + +csstype@^2.6.8: + version "2.6.21" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== + +esbuild-android-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz#5e8151d5f0a748c71a7fbea8cee844ccf008e6fc" + integrity sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q== + +esbuild-android-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz#5ee72a6baa444bc96ffcb472a3ba4aba2cc80666" + integrity sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA== + +esbuild-darwin-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz#70047007e093fa1b3ba7ef86f9b3fa63db51fe25" + integrity sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q== + +esbuild-darwin-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz#41c951f23d9a70539bcca552bae6e5196696ae04" + integrity sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw== + +esbuild-freebsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz#a761b5afd12bbedb7d56c612e9cfa4d2711f33f0" + integrity sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw== + +esbuild-freebsd-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz#6b0839d4d58deabc6cbd96276eb8cbf94f7f335e" + integrity sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g== + +esbuild-linux-32@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz#bd50bfe22514d434d97d5150977496e2631345b4" + integrity sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA== + +esbuild-linux-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz#074bb2b194bf658245f8490f29c01ffcdfa8c931" + integrity sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA== + +esbuild-linux-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz#3bf789c4396dc032875a122988efd6f3733f28f5" + integrity sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ== + +esbuild-linux-arm@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz#b91b5a8d470053f6c2c9c8a5e67ec10a71fe4a67" + integrity sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A== + +esbuild-linux-mips64le@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz#2fb54099ada3c950a7536dfcba46172c61e580e2" + integrity sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A== + +esbuild-linux-ppc64le@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz#9e3b8c09825fb27886249dfb3142a750df29a1b7" + integrity sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg== + +esbuild-linux-riscv64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz#923d0f5b6e12ee0d1fe116b08e4ae4478fe40693" + integrity sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA== + +esbuild-linux-s390x@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz#3b1620220482b96266a0c6d9d471d451a1eab86f" + integrity sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww== + +esbuild-netbsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz#276730f80da646859b1af5a740e7802d8cd73e42" + integrity sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w== + +esbuild-openbsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz#bd0eea1dd2ca0722ed489d88c26714034429f8ae" + integrity sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw== + +esbuild-sunos-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz#5e56bf9eef3b2d92360d6d29dcde7722acbecc9e" + integrity sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg== + +esbuild-windows-32@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz#a4f1a301c1a2fa7701fcd4b91ef9d2620cf293d0" + integrity sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw== + +esbuild-windows-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz#bc2b467541744d653be4fe64eaa9b0dbbf8e07f6" + integrity sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA== + +esbuild-windows-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz#9a7266404334a86be800957eaee9aef94c3df328" + integrity sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA== + +esbuild@^0.15.12, esbuild@~0.15.10: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.12.tgz#6c8e22d6d3b7430d165c33848298d3fc9a1f251c" + integrity sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng== + optionalDependencies: + "@esbuild/android-arm" "0.15.12" + "@esbuild/linux-loong64" "0.15.12" + esbuild-android-64 "0.15.12" + esbuild-android-arm64 "0.15.12" + esbuild-darwin-64 "0.15.12" + esbuild-darwin-arm64 "0.15.12" + esbuild-freebsd-64 "0.15.12" + esbuild-freebsd-arm64 "0.15.12" + esbuild-linux-32 "0.15.12" + esbuild-linux-64 "0.15.12" + esbuild-linux-arm "0.15.12" + esbuild-linux-arm64 "0.15.12" + esbuild-linux-mips64le "0.15.12" + esbuild-linux-ppc64le "0.15.12" + esbuild-linux-riscv64 "0.15.12" + esbuild-linux-s390x "0.15.12" + esbuild-netbsd-64 "0.15.12" + esbuild-openbsd-64 "0.15.12" + esbuild-sunos-64 "0.15.12" + esbuild-windows-32 "0.15.12" + esbuild-windows-64 "0.15.12" + esbuild-windows-arm64 "0.15.12" + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +get-tsconfig@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.2.0.tgz#ff368dd7104dab47bf923404eb93838245c66543" + integrity sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg== + +glob@^7.1.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss@^8.1.10: + version "8.4.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" + integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +reduce-css-calc@^2.1.7: + version "2.1.8" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" + integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg== + dependencies: + css-unit-converter "^1.1.1" + postcss-value-parser "^3.3.0" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@^0.5.21: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +tslib@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tsx@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.11.0.tgz#866dd2de4b4b26d92d3e132b9795db2f65db44d3" + integrity sha512-q+q4xxu41+AafVwvAGqtNJ1ekPFd33ZhTMXvgIpHMqv/W89efwDRE9IyjhEAZm5iTHsshKaf1BYWSk789BrNCA== + dependencies: + "@esbuild-kit/cjs-loader" "^2.4.0" + "@esbuild-kit/core-utils" "^3.0.0" + "@esbuild-kit/esm-loader" "^2.5.0" + optionalDependencies: + fsevents "~2.3.2" + +typescript@^4.8.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== + +vue@^3.2.41: + version "3.2.41" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.41.tgz#ed452b8a0f7f2b962f055c8955139c28b1c06806" + integrity sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ== + dependencies: + "@vue/compiler-dom" "3.2.41" + "@vue/compiler-sfc" "3.2.41" + "@vue/runtime-dom" "3.2.41" + "@vue/server-renderer" "3.2.41" + "@vue/shared" "3.2.41" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== From bbc6be92ba0c956f703f9de5397c424a9c677c24 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Sun, 30 Oct 2022 19:25:30 +0100 Subject: [PATCH 02/89] chore: add demo --- demo/.editorconfig | 19 + demo/.gitignore | 28 + demo/.vscode/extensions.json | 3 + demo/App_Resources/Android/app.gradle | 25 + .../Android/before-plugins.gradle | 15 + .../Android/src/main/AndroidManifest.xml | 42 + .../src/main/res/drawable-hdpi/background.png | Bin 0 -> 3661 bytes .../src/main/res/drawable-hdpi/logo.png | Bin 0 -> 5165 bytes .../src/main/res/drawable-ldpi/background.png | Bin 0 -> 1609 bytes .../src/main/res/drawable-ldpi/logo.png | Bin 0 -> 2511 bytes .../src/main/res/drawable-mdpi/background.png | Bin 0 -> 2218 bytes .../src/main/res/drawable-mdpi/logo.png | Bin 0 -> 3432 bytes .../main/res/drawable-nodpi/splash_screen.xml | 8 + .../main/res/drawable-xhdpi/background.png | Bin 0 -> 5473 bytes .../src/main/res/drawable-xhdpi/logo.png | Bin 0 -> 6904 bytes .../main/res/drawable-xxhdpi/background.png | Bin 0 -> 9949 bytes .../src/main/res/drawable-xxhdpi/logo.png | Bin 0 -> 10319 bytes .../main/res/drawable-xxxhdpi/background.png | Bin 0 -> 15701 bytes .../src/main/res/drawable-xxxhdpi/logo.png | Bin 0 -> 13941 bytes .../res/drawable/ic_launcher_foreground.xml | 15 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3092 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1956 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4484 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7184 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10378 bytes .../src/main/res/values-v21/colors.xml | 5 + .../src/main/res/values-v21/styles.xml | 34 + .../src/main/res/values-v29/styles.xml | 18 + .../Android/src/main/res/values/colors.xml | 14 + .../res/values/ic_launcher_background.xml | 4 + .../Android/src/main/res/values/styles.xml | 42 + .../AppIcon.appiconset/Contents.json | 122 + .../AppIcon.appiconset/icon-1024.png | Bin 0 -> 17868 bytes .../AppIcon.appiconset/icon-20.png | Bin 0 -> 745 bytes .../AppIcon.appiconset/icon-20@2x.png | Bin 0 -> 995 bytes .../AppIcon.appiconset/icon-20@3x.png | Bin 0 -> 1258 bytes .../AppIcon.appiconset/icon-29.png | Bin 0 -> 851 bytes .../AppIcon.appiconset/icon-29@2x.png | Bin 0 -> 1232 bytes .../AppIcon.appiconset/icon-29@3x.png | Bin 0 -> 1668 bytes .../AppIcon.appiconset/icon-40.png | Bin 0 -> 995 bytes .../AppIcon.appiconset/icon-40@2x.png | Bin 0 -> 1504 bytes .../AppIcon.appiconset/icon-40@3x.png | Bin 0 -> 2121 bytes .../AppIcon.appiconset/icon-60@2x.png | Bin 0 -> 2121 bytes .../AppIcon.appiconset/icon-60@3x.png | Bin 0 -> 3018 bytes .../AppIcon.appiconset/icon-76.png | Bin 0 -> 1482 bytes .../AppIcon.appiconset/icon-76@2x.png | Bin 0 -> 2633 bytes .../AppIcon.appiconset/icon-83.5@2x.png | Bin 0 -> 2831 bytes .../iOS/Assets.xcassets/Contents.json | 6 + .../Contents.json | 23 + .../LaunchScreen-AspectFill.png | Bin 0 -> 4920 bytes .../LaunchScreen-AspectFill@2x.png | Bin 0 -> 14165 bytes .../LaunchScreen-AspectFill@3x.png | Bin 0 -> 27892 bytes .../Contents.json | 23 + .../LaunchScreen-Center.png | Bin 0 -> 6808 bytes .../LaunchScreen-Center@2x.png | Bin 0 -> 13502 bytes .../LaunchScreen-Center@3x.png | Bin 0 -> 20794 bytes demo/App_Resources/iOS/Info.plist | 47 + .../App_Resources/iOS/LaunchScreen.storyboard | 53 + demo/App_Resources/iOS/build.xcconfig | 6 + demo/app/app.css | 7 + demo/app/app.ts | 7 + demo/app/components/Bench.vue | 74 + demo/app/components/Home.vue | 53 + demo/nativescript.config.ts | 11 + demo/package-lock.json | 8334 +++++++++++++++++ demo/package.json | 18 + demo/tsconfig.json | 26 + demo/types/references.d.ts | 1 + demo/types/shims.vue.d.ts | 5 + demo/webpack.config.js | 61 + 71 files changed, 9154 insertions(+) create mode 100644 demo/.editorconfig create mode 100644 demo/.gitignore create mode 100644 demo/.vscode/extensions.json create mode 100644 demo/App_Resources/Android/app.gradle create mode 100644 demo/App_Resources/Android/before-plugins.gradle create mode 100644 demo/App_Resources/Android/src/main/AndroidManifest.xml create mode 100644 demo/App_Resources/Android/src/main/res/drawable-hdpi/background.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-hdpi/logo.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-ldpi/background.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-ldpi/logo.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-mdpi/background.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-mdpi/logo.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml create mode 100644 demo/App_Resources/Android/src/main/res/drawable-xhdpi/background.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png create mode 100644 demo/App_Resources/Android/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 demo/App_Resources/Android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 demo/App_Resources/Android/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 demo/App_Resources/Android/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 demo/App_Resources/Android/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 demo/App_Resources/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 demo/App_Resources/Android/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 demo/App_Resources/Android/src/main/res/values-v21/colors.xml create mode 100644 demo/App_Resources/Android/src/main/res/values-v21/styles.xml create mode 100644 demo/App_Resources/Android/src/main/res/values-v29/styles.xml create mode 100644 demo/App_Resources/Android/src/main/res/values/colors.xml create mode 100644 demo/App_Resources/Android/src/main/res/values/ic_launcher_background.xml create mode 100644 demo/App_Resources/Android/src/main/res/values/styles.xml create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/Contents.json create mode 100644 demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json create mode 100644 demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@3x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json create mode 100644 demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png create mode 100644 demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@3x.png create mode 100644 demo/App_Resources/iOS/Info.plist create mode 100644 demo/App_Resources/iOS/LaunchScreen.storyboard create mode 100644 demo/App_Resources/iOS/build.xcconfig create mode 100644 demo/app/app.css create mode 100644 demo/app/app.ts create mode 100644 demo/app/components/Bench.vue create mode 100644 demo/app/components/Home.vue create mode 100644 demo/nativescript.config.ts create mode 100644 demo/package-lock.json create mode 100644 demo/package.json create mode 100644 demo/tsconfig.json create mode 100644 demo/types/references.d.ts create mode 100644 demo/types/shims.vue.d.ts create mode 100644 demo/webpack.config.js diff --git a/demo/.editorconfig b/demo/.editorconfig new file mode 100644 index 00000000..84ba4fa6 --- /dev/null +++ b/demo/.editorconfig @@ -0,0 +1,19 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +[*.json] +indent_style = space +indent_size = 2 + +[*.js] +indent_style = space +indent_size = 2 + +[*.ts] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/demo/.gitignore b/demo/.gitignore new file mode 100644 index 00000000..1cb1231c --- /dev/null +++ b/demo/.gitignore @@ -0,0 +1,28 @@ +# NativeScript +hooks/ +node_modules/ +platforms/ + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# General +.DS_Store +.AppleDouble +.LSOverride +.idea +.cloud +.project +tmp/ +typings/ + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json diff --git a/demo/.vscode/extensions.json b/demo/.vscode/extensions.json new file mode 100644 index 00000000..2a163b84 --- /dev/null +++ b/demo/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["nativescript.nativescript"] +} diff --git a/demo/App_Resources/Android/app.gradle b/demo/App_Resources/Android/app.gradle new file mode 100644 index 00000000..5b26299f --- /dev/null +++ b/demo/App_Resources/Android/app.gradle @@ -0,0 +1,25 @@ +// You can add your native dependencies here +dependencies { +// implementation 'androidx.multidex:multidex:2.0.1' +} + +android { + // compileSdkVersion 32 + // buildToolsVersion "32.0.0" + // ndkVersion "" + + defaultConfig { + minSdkVersion 17 + // targetSdkVersion 32 + + // Version Information + versionCode 1 + versionName "1.0.0" + + generatedDensities = [] + } + + aaptOptions { + additionalParameters "--no-version-vectors" + } +} diff --git a/demo/App_Resources/Android/before-plugins.gradle b/demo/App_Resources/Android/before-plugins.gradle new file mode 100644 index 00000000..9faffb81 --- /dev/null +++ b/demo/App_Resources/Android/before-plugins.gradle @@ -0,0 +1,15 @@ +// this configurations is loaded before building plugins, as well as before building +// the app - this is where you can apply global settings and overrides + +project.ext { + // androidXAppCompat = "1.4.1" + // androidXExifInterface = "1.3.3" + // androidXFragment = "1.4.1" + // androidXMaterial = "1.5.0" + // androidXMultidex = "2.0.1" + // androidXTransition = "1.4.1" + // androidXViewPager = "1.0.0" + + // useKotlin = true + // kotlinVersion = "1.6.0" +} diff --git a/demo/App_Resources/Android/src/main/AndroidManifest.xml b/demo/App_Resources/Android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..66017732 --- /dev/null +++ b/demo/App_Resources/Android/src/main/AndroidManifest.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/App_Resources/Android/src/main/res/drawable-hdpi/background.png b/demo/App_Resources/Android/src/main/res/drawable-hdpi/background.png new file mode 100644 index 0000000000000000000000000000000000000000..bbefbf42a4b53283de502b924cf2ed3c9ff03aec GIT binary patch literal 3661 zcmeAS@N?(olHy`uVBq!ia0y~yV3J{AV6Na`0*bKrExXLXz-X80>>Lp0ZfI$2P@c=c zpfNEyA>q>r&vUwINeKxj&T4CN6_p2dbo2xz>_2(n*nz_bjvqLwFndN!%me8+VoV{2 z9z1{l{8R(uzS!ghmW$I%9n%s|J!Xy3TzT}Q!!Le;a1ln`^n?T*#!ar56yNX(SaTkl z$DAbI%3{fUQ@SB%UkS%=hK{)`iSY~@PkVDUq#4*Ttn}B@VA{B!;U?e7PD=-~$($ZC zS^69WZ9Ao-q@<@jKO}SXq`+AF-VGW0- zAGF-RV3UTi?P8b2rA-qX8<#poq-9kW)WxN3YAUV^bgT3ItnpqvFBk;M!Q!8{<$=zH~-00RThR!tU_%@`!w30gOb*9F7*5RKVvr1GR7lohNbzB9=vm1y z!BCXJXjF1E5JpqNXm%Ja6GjWh(b{3OiX3exj5d}=8-=4SW7>2N&aht&;`p4bYqbs7 Pt6}hT^>bP0l+XkK#s4G) literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-hdpi/logo.png b/demo/App_Resources/Android/src/main/res/drawable-hdpi/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e788deb314f1c7493977876f02dd0f261830b30c GIT binary patch literal 5165 zcmV+|6w>R7P)8 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYQw#tAQw#x3)%p+s01}l+L_t(|ob8=^yj|0^$G_tw;@OtC z>QN!_XsITskH__>l&VXRwx4?3dQ{b`g1%iu=}TPNTfLOq8}#FOm68fo4Wd`5*Ciyv zMO%buL#TKqA}9IXKgK$_`>Z|ZT6^uY_g?3muJ7lwKgn5Z%sI#2YpuEF9CM5@jRHs- z0;~iK1-bw$QofG}SO#!{B&|~RZ&p!J(O!ZhEJ+6dR|D_stU7&S4lv%#o-JFE zii(Q%(3L(Q=~Un*23BVUK3#oC(r#rdQc+RS9(s+iBpnT0Qj#vM;tgOYGkdCRMJg&P zTFZ(KD;b$g$5#OdI)4JTuZ-~(6@!Z|SmCZPnZeOn0c-}GRkjip6&0OjVfD-ii(QX(bHj_QmPj1VHoiBvX!W)sAwG~X-nYAvK46)FPhm#Wh+rpQPCQ@ zfKQjLL>n0)sp_yQDh3H%z(>kfqRp&dwgMFu6|G??ux=mgcoq2Hn!gR$h2{dI-vnmW z{5=HN5?HHg?O@G5l&wgRG}O$x%hsc!wG6oHDrrWOF?>%;+C@^xTmCyu)_Gq<$AcvO zt;sqMZ2zw~IFU3&(g~6tk+e|K#gaZ;wq6x|N7AN}E=-=QnUYSFG_-8J@)$~UzE=x@ z{mtx|$oU@v+W?!3fL+T`r~Sxno(BN`2&{+CKn$1mg12CS8%bo=}0T5R%S`)br0pbt(hJN8j6* zty`;+w1cF33*1*TByC%^-pwFs>&SO{plsdpXm$wrM4o_|y)9`x@IUm;235-(VB;3m z)eIj6&IZ0&q7H?TG!i&5aOyrYo03uV&p!v1jZRH3{ zl9o&QWPUCEXM`nb=ZGE`<&+z(`fE4PgX33_T<6Ogzm=j4xG*qD7p1<#GD#mVNtf93 z_DEW`&S2hZ%xoHPdb``{AO>6^=>uge(r(P`abN^~{jLP|1dc0Jsn&7~a8wKG`K}s# ziS;8+!fjYr0A~Ojo7v2ARm!I$s{&?ru6(|Ka3|X903(14fG?JxbW#gpc3V62(VN*#X%PY`(>{*bSpI=_dc4U!JNqD^$H!!ol)l0E}G z46NO$cH7KkN%xuA{8m>iX;u7!g5*(mwE3(Uif#@CtI z>{z=sY#up&Q=qe2ftful>8FH8XItO~?I_9j9t-S?>plVx)Sr(pX8aDAW@d|X>NyqI zAa(d9GdnjqzZD+*KN?sSm}O>%C+F5CoPKGxnO&M{=V;uOCC#_ZY>C_jXb;?dXFFg+ zU@q`DaH*L^7ic7X7Z^_5$$X>K{rShX8{Gp+?xFa`76ZZPp5|8hMGMta*yt|l{gTd* z^hyJ5zb$E!0`@dX>lXM9Jxof~aZ5yQ!y1_%M`SXmk&?EHlzTy8XXGwP-;^}3f$#CC zq@8oxk6oM0g@~l=CX!AKd`4%KF-c#R^h^W#zbW5XB|4yxG%HZ_inxxA!zDKvD$%?oFNqR1$Y>2zsZgfv$W_JPK?sU6tWMABP+h^pX zqT7KV0P8eRWOd*)V1}giTA@P|{8!}oxSVpa^Vg>LoRoLSHvvBeKGc9t+u*;+X^Ol| zh%e!flaD~6nAx*t_OF4@<01Lvf&B$=De;kAE$_oepZBQX;*O-Tz<<#GJwu1!qrogY z?hyRhn4b5WHcGP{)?Z^MB&{jw3t5E|--@f6Xt(84uYxQELPPbRNZPb76-!zTzX5h^ zqWBo#=8T84ojeMJ^5>6McBYJdBge0){X^19`0uiRLA{0mlYlQr&c~*G8w2-BIxM*+ zeImIgHvmUAQG6$0ilku$%A7`LHaPw&^*(wrcE&r=KGRHxwGhafx*2e(^1XnM1?v1P za=5jie5+XioE$j5I&hWx7K?Q#9uAVG8@LBJ6F8UNf#$VrPw!BurNE5j6MH!SS|c+9 zc)qC8iNj=UlojlhB&`GN5IFS&Zu_WZBL3jkRRi3Ck3`PLf1?l=Dm+zt9EgRMZGpc~ z=S#Xo(q|<7Lqs-@{+ zWvH+XtA}n$7f2c>X-j$7(dTN)w!(%bNw3On(mi`a43l)Eq@@x0SaO4g9Y>3FSm(-z z=Xn=tt(r2wSI($I(r)_ynQsYG%Khz9agubk4EZ0BvM8S z-#cyTu(~B(D=E`xsNNlx)O%SnR%SvX+sFuOA4v~2sI%0D4l9w_KO(atKw51I&5^GF zhQghmi^zAP!#X)4yH84PsHE2ea(@Wa`E)=o(<~rqB}q#H<+4_0H7GcL&u8dzV5H2!DY;mOb!yh{lay^mhjnd6{auotij@0GL_S1ahgHPpG6XmT*k01; zJU@{dPLed!%r1`!nAt`0kx8(}?m^Oaz%4Y9GN#p-*)8(8y7UTRO9Q0kZ}7G8)uqjW z4+DqMfv~EAT#wt5(t3@-V}EdyR$%%YMi8#YO)!G4A9GfU!{(vog#ZUBKZ_0Rv)lp@nAME zThc`Q#j`u^uE#A3?*h^CFDsQZV zoEJIX3e>@L$9XA+V&C(FeQC7W4y&1R9|CSvhT-1KmbRhYwqj=Y6CN3kz&EIE2uTxg z_k&Ci?Sz@YqDJfPAiu`LhtiA#ko#rTt$Gsf=<@D`q7?CE>V=uTYi8G***JXU6?+&D zs`-CR|GGtp0ZQKYi21OE?vIA)bPnfT@KmhFcevel^L=0+JeI03lC}n7SzMRmj+4`I z2hEvgwm`lB&}YZSR$^vv%3T@KM&)t1zf@>CxR|irB^Hx+HF3YMEEe?qN1o8|$bigU zW;P?M5;J>7(iylqA=b72x0_XbOXfxp&>N~7mC9O$#I(W00y%jhf>#(}b?6%0cMtPTT z@b4IWN}fk7pZkgo4rcb2q_^-en_4!IG(2)mk+eGD&h+knwhzD#WOrDxmv?&VUx>19 z`U{m4oI21jv!`f2Ml!TFHtJWjhT!(NJp=N=(UO@h!e0Ps zc2T}>-*9Dwvm}`yUI?7pOF3>k2{CW-^fLVPfJ_%~LQdU33w&ZDma;fW@u2??5MLO1 zv_Knm_h(rh)-c?jmAP^=0J#`9m=|Su;MmI17AxYOjfziC!FMPG4bakv~aamGBRI5nbV5(@Rh^R((iyI z>0pimg2Vj`Lczm3DIAuwH}KPf^~aXF$H>D$c9is~CC| zH@*c}Ew>W3Wvva|FX?be8%kOwSz){#2<273%goxjy4Wl~k?&Qxhdj(~e_#smrHK4* zl96*S5?78;_KcN)3nYz|N5rhtY(A{0(OmVO?s@#8(O*ZNd#WgH@pR8A|M?u9(xEwL zMdX%9nl8_^bh@P5bLtIxx+iTkl1J)esWJ_Fx~Iwwk&kTh*u8<@^4N^>OC-&f^q}JL zYf>P_Qa)O`v;iF(CHPFpUj%uib62JLRG{9Fr+a9W64I#^p6;P&f-DwG+AKq-8ycwN z=w?S)(T1DgOOircP=(0!gzqny*$rfP0tdK?uqX2{+%feW+-tbUDRUlhe?hgPp%gVV zliH?^#4+-hIb!pON9osc3GvN6hv8F`9f&U=JxE{*nT&=fQ2cic@tbX_nBmu$H<+eIb&LgeVh{3)U&(7!~I|&uB1;W9xy9O zPb!I!mvmL&d~`~flo>ARYVSQoqCQ+zdY)!+luB;2|x;@R8bs_)g7AW|r$*8M&`8vs||U`9fF7 zyz)je+OL(Jf{#MeY+`25B{IYC%}PFwFLFGGCu4l9nQNTXwO#s=lN3=A3* zlM@m?o$x%To0gQ2aN?}CCRb5;P)A2kP{RI`2aX*$eBk(jlM1tE#Kb(1ej~;da_GVH z_s>r?Fz$;@PGGq>z0@%+@zi717|oSOPdfbK7YG+&)J;!F&|%!mg>L(-_=Xn>3+ hhS7{bzmnl3_w8oZYK8hZ5nzeN;OXk;vd$@?2>{eFH1Plc literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-ldpi/logo.png b/demo/App_Resources/Android/src/main/res/drawable-ldpi/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e4cac1adb9d183933b367930c6a241c211bd9874 GIT binary patch literal 2511 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 R39K?1JYD@<);T3K0RUrsV7dSR literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-mdpi/logo.png b/demo/App_Resources/Android/src/main/res/drawable-mdpi/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ce3c3a4b4fe24e68242245b6ad1beabb16f31410 GIT binary patch literal 3432 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 KMNUMnLSTZ1B6j%z literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml b/demo/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml new file mode 100644 index 00000000..ada77f92 --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/demo/App_Resources/Android/src/main/res/drawable-xhdpi/background.png b/demo/App_Resources/Android/src/main/res/drawable-xhdpi/background.png new file mode 100644 index 0000000000000000000000000000000000000000..3541570c1cee0feb7ae07c98e84563d237c4582e GIT binary patch literal 5473 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-z_NgY2`CbG{DlDn1EXE0vvWY0yP>7AL3u6% zgT}<u>a(NV+Rf&IDX)y!t5C_F%P8Qh%tp6 zdhq=H^HU9s`(l$5ST0U4bxcb<^_VqAbLG*K4!`&X!bKQ$(-RVO7&p0IQhdWFV9j}G z9&?g-D~l!bP3eZ5eI*>f89L^&B*rsrJnhZZkY-@Vu+m>ogK6V_hMRmRJ1rf|CUbho zWa)DhwC$9Rl9HbC{E*DilLE&coJ%;7a5CXc!hwKu6HYtWGH}IntX|jAcyJ}di*249 z8#nCb;n7xOn0vidAUKBY$^Ybp8>i>TM1`=KwoN=aqp?vyKJnOdy#g7-uCLRVgf$$R ze$aCNf=wF6wu@a7mo`moY+ULTk(O0iP#2fBsj0Xw(6KHs$uq4^?$BLDhrdb=R!dcc zWn@ldvM@ZJ6Vmv5rspkSfN~aiL>4nJpY(Kb45^s&_L?K_0R@Hw z4hOV93A8t_%u6{1-oD!M6| literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png b/demo/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..88267df0231a5e016a67e4cd783f5a64cc5b1570 GIT binary patch literal 6904 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 literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png b/demo/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png new file mode 100644 index 0000000000000000000000000000000000000000..abb0fc704741cbf206833a86b43ce14b5ff991a1 GIT binary patch literal 9949 zcmeAS@N?(olHy`uVBq!ia0y~yV6k9eVEe$q1Qg*6E7M?LV6@A0b`A)0H?%Z1D9>eJ z(3qHuY}__L&sc}#CV2{r@grv(hTevR{HB{Fm2q=aFg$3r=^40WKIv6 zEPalGww=;ZQqohNACftGQsCHwa|tIBP9~g5I1q4d!f6Lv2CjIH)$2MM53Xc*vCWfX zOwuvWaG&TyzCmwsQS0H29^>zA^u!cj^ z4_fYDut~$%cCkz1(x!=xjZ2*((y}TG>f+KiH5JzdI@Sdyd8XCL9lERN@K?#fYN?8_ zjLeBl7KX=jLK=V1^t=TM&;pOhVg`m~5+KZ2S9-FSfkA=6)5S5QV$PfEhKvUk7!GVO zTz|q@hVO@=L%)mT{l1;w*cliCKJDiNYTqF#3RHi51(0d!#>&8O!cdEW!J#jZk%6J8 z2N;DDl0z668e|p&=)78&qol`;+0Mgm%5&!@I literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png b/demo/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..55800c9ab9ea2cad920ce68dccb14fe60418232b GIT binary patch literal 10319 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 S`Af#N0iXtE`n9^S$Nvw3wEU(3 literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png b/demo/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png new file mode 100644 index 0000000000000000000000000000000000000000..108977520c8929349df397242f1ef0d7b8c80374 GIT binary patch literal 15701 zcmeHNUr1A76hE6&x1npG6u4_?h)qn>R?#YD(}`XLojR;!2yVPLQx22oTGjdYff= zBiURqxxni-w<(Wjii+9^*(;iOU@_x%oR#)zrTTCej`v&=8mrJ?JvKTA2 zGo@F*4ox&WLqkDrV0=ccDZ6K|_}qgom#^Z4t@D!IaoRTH?s7Ef9Sv=)&9O7Io~!%5 zTX)2lm%%XM4hd|Gm|Tfl>{|+`%wBV{3t+ulI7APx%zFTGfHmk%7f0f&`gAS_IIi?j zxROyQgPsGkO)q+u%!wrWq&m@>N>A`^|6y94$2`Ktum%^10qz6*7O)>+PefioIz&l; zvIwOi%44($=#0=Ap)*2fgw6<^5jrDuM(B*t8KE=!3uhFawx;IMJp=9^fpgX48VQ{T zNrV~1^qybZx-2N7i?~cdE2+2B3YXo2-dN3GXywMDwBjR(7;YH+Ucia%f_6jfmJ|de z3xODa;XY}NH@2hWV<3p6lN&QaP)(dFC6^g+!M#Xlo&C+ryyW@PeH)+ c{{K$zMZQm&p4$6&ztDFLY*n3Ms)D$G0x>!>?f?J) literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png b/demo/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0703f90f437fb831ea98b3ee99c783e1934992e2 GIT binary patch literal 13941 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 literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/drawable/ic_launcher_foreground.xml b/demo/App_Resources/Android/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 00000000..fd826a31 --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/demo/App_Resources/Android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/demo/App_Resources/Android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..7353dbd1 --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/demo/App_Resources/Android/src/main/res/mipmap-hdpi/ic_launcher.png b/demo/App_Resources/Android/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..69948d224f4d018068dfed3c884394cc3d178524 GIT binary patch literal 3092 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 Q{bLAFSJqbgq5up2AGbo6Bme*a literal 0 HcmV?d00001 diff --git a/demo/App_Resources/Android/src/main/res/values-v21/colors.xml b/demo/App_Resources/Android/src/main/res/values-v21/colors.xml new file mode 100644 index 00000000..da5ca2fe --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/values-v21/colors.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/demo/App_Resources/Android/src/main/res/values-v21/styles.xml b/demo/App_Resources/Android/src/main/res/values-v21/styles.xml new file mode 100644 index 00000000..04d8a065 --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/values-v21/styles.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + diff --git a/demo/App_Resources/Android/src/main/res/values-v29/styles.xml b/demo/App_Resources/Android/src/main/res/values-v29/styles.xml new file mode 100644 index 00000000..9a2a79d5 --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/values-v29/styles.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/demo/App_Resources/Android/src/main/res/values/colors.xml b/demo/App_Resources/Android/src/main/res/values/colors.xml new file mode 100644 index 00000000..78c4a519 --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/values/colors.xml @@ -0,0 +1,14 @@ + + + + #F5F5F5 + + + #757575 + + + #65ADF1 + + + + diff --git a/demo/App_Resources/Android/src/main/res/values/ic_launcher_background.xml b/demo/App_Resources/Android/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 00000000..c5d5899f --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/demo/App_Resources/Android/src/main/res/values/styles.xml b/demo/App_Resources/Android/src/main/res/values/styles.xml new file mode 100644 index 00000000..4f91b610 --- /dev/null +++ b/demo/App_Resources/Android/src/main/res/values/styles.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..1a8b0e64 --- /dev/null +++ b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "icon-20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "icon-20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "icon-29.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "icon-29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "icon-29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "icon-40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "icon-40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icon-60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icon-60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "icon-20.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "icon-20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "icon-29.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "icon-29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "icon-40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "icon-40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icon-76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icon-76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "icon-83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "icon-1024.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..b46c8bb2f70abf9fa2d5f91cb6987dfda64ba1fe GIT binary patch literal 17868 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 SSurqkh|+ZxxolZu-~R*5H2Tf} literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20.png new file mode 100644 index 0000000000000000000000000000000000000000..d73288a7f480c3fcee88b28d2de9f88fb4564ff1 GIT binary patch literal 745 zcmV8 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYH(dY#H(dc4fJR*a00B`+L_t(Ijm?w2P69y?$N#%`;qJhL z5I+)4G%B^#MH}rbtat)m!PbZI0qE>#jTMa=s7z=iBpNh^BjmVGyt`cs0dFry3{*_D zJM;g|?9A>G&N)^!x-z*|u>Z|F{m``Iq|@?Pryp7#ONr&=X6Ufnd)o=vhDxum^rALR z-TjL09$iXsQ!SP9fAxgQ11oj{2EYkez3E0`CC2eN5>B+R=l5aMXnBjG8E`zia+w0a zb9eIeI>{8I;UMI#-c)*dqUjn1&}e&aW;EBddy^pK88GJ{v$d|$+Ic~uh#BflckHvI zECbeZ#5hvs+k-8+YUBaf0eg7yf1Sp$qUA^i3_udccUDnOD++-5*d-ze{&`_lBfq~X zFNzBAZdsyYZkeKXQP5Qips3NEl9Y^+)R(k8_A!e0%2M(rnRYxFv%_sU*>DEDl&#N~ bT*`g`2AY0HSk3hD00000NkvXXu0mjf%;QJU literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d24cdc75a820965d03d4550d5fa343e051a378 GIT binary patch literal 995 zcmV<9104K`P)8 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYZn^*fZn^>1-mw<|00K)%L_t(oh3%F-Z__{+#~+{H>NrV( z24x5&qV7NkRMgNgv~*?(3mX~wDflRCY!&$cr2}GM2^}CMQp6I8wlsw@kQ70j_}xB+ zNL8Hr&Z*O?68M>{yZ>`P-`)S7I|gG6R}tt+s4+MO$KZ<$j^6!S^FAM0ot_5(0tb(m zB#vcB;#$iXDsRoP_X~o+5tRVIP%2kX_g=hJRoy#nS-vAYeJGR0d-+a1_~{J4Ws!Ma zo~5v9OI_bLN2vhN_-cLlVp390V_@QD+oA|)U{w!TjO~VY*l{LdAOCVAf&;_DP~92) z(Y$aeHKMq>Z+NeE2F`Toh{x&siL?0}KgYWVW_@oWqn#V9TfQl!CB*vWuNzvs zOEj8p(^iBCHf-GbVUM>A}0*I<^fmI~aV}aW-px+Z|6^QN+@M zING8bUX@@p+r^u;KI!ZQgIy0u1+BcC$Y*?o_NeP@H?%-8#^4gn9}HHq+{Sv64=T$n zg379#l6;9D_sshKxY2l)*;r31+2HGdxW^*TEav#Yu9So-tMZu9wmxZH)i=Av953>b zYPBQ~)AAXve8y;FE~BJ}fay_E#1%yh*IhUm0LsP0?YWQ}{Zhajg36klnu#*Vv`?S3 zgr2R*h_;*O2j_0ElMGQfW3*vhlWBv~`j!epaO6&sV;d Rs09E3002ovPDHLkV1h0F!n^8 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYrWgPKrWgT!b;*qY00UAePZLob$KNbnrlo}l z2q++%#7Hj|#F%1YG(=-S&(gnu1AmPt&RWhIOX2~%NE0Qt9F!no6$OH9T07HDXL;Ug z1M@n+S7t^@=5w2+zxj0LedjI1V2sgugZ#P$`U&DE}P{i?X)+Q(M|DPCN+vz}^(iWA;=2v@t?R$7m{*`z7h{QYSdd z>2DVc@bf98SN9asAyLLJ=5nf5{d{8m2eJ5RD5SIbN>1BH+RKkp)z+1ZpTNquM`ok= zVMVsEAPI|KdC82lxo^c-RS z^8Bh@p|o-Ak<3VjozdBWO6wREipCH8`el#deoaSHb7D3R3T2^)b#QxvO79+P3L#sM zZUj0SjRzjT3wmNsQ~}zGhIfxO^YaiwKxtJ+(+d*mD956wv0zv*F7@qDO{R&zEoXW` zg8V&XDy?XEc}JO?$yV+%LVh+r6yylS=GWx;HSR}5uGBR@VI zinMu62iBlA&2!91lz11*8Honk8wjDy>xq=8k+nyo0iFZR1E6n@mO9SMn^)vm6psZ% zgivlBsL70RD7`$>T*m=rpwbM31TW||gakGoBZl(Jj`3h$@G=Z|mS{_l*xta8_Jf*J zb=cL74|e-*c0;G=wAeWI80`Vv+l;Mv8(`kqq0vN7>6Oqv0l z=KYF1`#E3QY^vq@TD{Ru^O0RSbkhF`=kiN{EA14nv{Sg!PT@*Bg)8k8uC!D90fMq7 UzqfVJMgRZ+07*qoM6N<$g89ozYybcN literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png new file mode 100644 index 0000000000000000000000000000000000000000..72a164103c514a7c5abac63b1bcdf86103e6de04 GIT binary patch literal 851 zcmV-Z1FZasP)8 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYH(dY#H(dc4fJR*a00Fy6L_t(YiS3oWPr^_T!0(mHD^MiC zuR$HabRcm8O(2*MXH9f9I{Ck$i-QijlVC9MgGm`kgaHO)M3ho^Q2HD|Qs{vY!eGKp z*SqVl*ZX*naL!>0B1{81<4&C`4sw(=Lu1@7!lK(|^_Enl-sG}G<{fxu2$us~+*Q;0 z1^@^IPIuk@<^HgnwDwYL5&{v0?gyP#2=cX0)o4Qjz~FFxtClqbO^S0!Wm%<$co8ns zdp4!Ycs!{#Tlo5L4k|-jBlWFVYF*xIW9{Xr^N`Lr?y_tmZp-w`R3u&f`bo>Z>%-%R zai0s#uI^tELw?%U4Gw2X^~=&jbNoPVD$5d?diRk49E2Qe3!OQuG9FJ>_1**%nYy(^ z{oIH`V*$x*5pCo+>XM~SK?)`P>Y=BHv49j-=pS4F*j%^wSv*eRC@KrTrGCscUf=W~ z@i^Cp&4_PF+%xT!dB)NBG0vT^LW4deHB`pn5`e=k=c*SuhDPGLBq9*282~`Ek&_+S zMSI+m9f?M`Zb=9$lng-k^>BNGdYlM^47!iMYld3q(j4*1$ZH=JgX!Ew2?`y?olySU d{Wjya1TXuEP)8 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYZn^*fZn^>1-mw<|00THlL_t(&f$f>ePuoBg#%FA2!442Y z38V$e(v1rZRiR=L7o@7~sf$zzsaJ0OkGQo+aA`Tx6NeU3iC&0$X%Q*}3M6a^kk#>c zdI*&w7<>o%H@eGmnW`Vp15*(Qe$!@ zs~4Q)^^JW^)6W~DNKm>J5*e>OI@31}%9YQe0K*Mpq)8N@g}YmjTP))bU$dJBTJ@KH zFMR*BArxSGN{K`5^Gd$@n~r8_azqI#tPh!Wo{qs>EO$XG0HCPinWe0%+3Z5MkF>e( zIi2}xR=KGRTH7lVhmsleX(eyFYu-B4QYVOUGPB%Mvxq;p)TLiV#!#2pcU&%Y&+#Q* zSWl9dpNjLzKm}tk8_T70x>Es(IQiZ!sQBYI`?h1j;WClTp!py6ZAZoVsuoYE%U7_S zIb4eHLcFk^vS~YWxX8sA%<-`utK4FloRFP2$YnfV!ZSOl0opxu*&^=bg}$a z80_^u>h=R=05xyG>C_Zu{xUic4vrkz(9fRq`v)Eecv_MIBid+o=4be~i8f9T} zG(hZJbqr>gvl*K0Fa{dJ8f}Rwazg=Oyw5*1L6%ZYPgr^}AQOjjG}{RfOicvF`~1|t znJIVMLsGPh?5Apm@A(D{rtPN9s$I0p+a6-tD6qa6I-2R>AOJ51<(o|gw%b%!*2%VG z30{F!uFu1?rSh2C&gg~37##4ZYC*-&c2|c>5$*{~&!crbBJ(mj)#!uk-mp|(XU*%@>o%H>Io$^8d_P#?9+e{{?M00008 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYrWgPKrWgT!b;*qY00itwL_t(|ob8<5Z`)KDhhN)q>%>W$ zWb2Z&VM3@~H#WwQwq|szK!QTKL4_4TCAdeE;GcmDBrewpG|HqQAr%-CteyIyN~~ia zti6~z^3jzxP187O;yC8wfK(+*a(qtQW5jtb8~fz-6Z_}$9$OVm(}e#$BI^Pi0k;6a zEg-lB0B!-nEdX!}2yOv@TR?CN0NetCTL9n|5ZnR)w}9Xl0JsGNw*bH`AY3gOrDDQz zQcq=!+-{}nqgY@2p$>^=aNRJcZWpTl=vT#_pzH8Km#Y=OV+$;#GREbZTsl{M{D_sc z^2IlNiYyS1Up8QNrTEm3LY>lBOzjC$SqAzmBDZT^x>;8N0Br0SSLQUE7P_Bo8(&<{ zCbtaAai}a96}UW;%jD}SK>U%=Z`|9Z`J%=(OwMaYlM1 zwPM*R3BjzJTF)AjbDBdmu!0ovmQ(DLlCcGpl$-UNvHgMlD$8!k zoS4p)m?kBag;o{*WZRgW&(n-XSqYVe?PfhS0K9g>jWg8UKT9_skSAppqml+tSx9a* z?`H>(w7>Lh8_sAyE)`ZtlM<(r29R4=PU#JnnD#Py#?u{Wz9@#05_8NdHggr4dkvul zt!Q3b%wujWOTvfey=r^&rN=_aoR}d@%4>^xtw@*;mMxe7kJihdO=Y*NwDf*e96#q3 zF_vK0GRD;flBC?yDxd$5eY8%Z(ApYwJYD{7u@EO(-g@qk>#bAn?|-XaQ?KRD<5Evh z8ak?2{fg~;<;xp8(V*+?)9z@{!l7BS5DmIM9`>!I^lumPwT~W}GT5&q(#Gx8QqwJ` zmI{%8)Ekm5jqg>&3j?0Mh>Ua6?ZxsHAqvpnEq^lN3#gX&6#(8D@I-Ku(uA*WX_hX! zfGU1E;_L6WtN@79(Wi)`r#%EaqNH@U;U(pCPB(Bb^U*UNuR?e@p|{sb040C;!66ZX?SXr-?N*ml-!F5INF8^-GkL9aMI zh?SJK!hV&dH!Qz-5-Ta~gS`a+7&@lB@C;T`+Jqx42mlviElWxQ9AN?eO-hAPQaZ%~ z00h0_2QRBkG&slt033CI5@V zsKDdRaxz`6eX=xi$}LM&Rc`DUv&+?QgZtcKPeAGo%Pr|gTVvtBj^pMFOyCv(xCI2a z0KhFExCH=i0l_T*a0>`-0f1XTa0>w30)krr;1&?v0syyw;1&S51;pPu9E*~AA%;Kz O00008 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYH(dY#H(dc4fJR*a00K)%L_t(oh3%F-Z__{+#~+{H>NrV( z24x5&qV7NkRMgNgv~*?(3mX~wDflRCY!&$cr2}GM2^}CMQp6I8wlsw@kQ70j_}xB+ zNL8Hr&Z*O?68M>{yZ>`P-`)S7I|gG6R}tt+s4+MO$KZ<$j^6!S^FAM0ot_5(0tb(m zB#vcB;#$iXDsRoP_X~o+5tRVIP%2kX_g=hJRoy#nS-vAYeJGR0d-+a1_~{J4Ws!Ma zo~5v9OI_bLN2vhN_-cLlVp390V_@QD+oA|)U{w!TjO~VY*l{LdAOCVAf&;_DP~92) z(Y$aeHKMq>Z+NeE2F`Toh{x&siL?0}KgYWVW_@oWqn#V9TfQl!CB*vWuNzvs zOEj8p(^iBCHf-GbVUM>A}0*I<^fmI~aV}aW-px+Z|6^QN+@M zING8bUX@@p+r^u;KI!ZQgIy0u1+BcC$Y*?o_NeP@H?%-8#^4gn9}HHq+{Sv64=T$n zg379#l6;9D_sshKxY2l)*;r31+2HGdxW^*TEav#Yu9So-tMZu9wmxZH)i=Av953>b zYPBQ~)AAXve8y;FE~BJ}fay_E#1%yh*IhUm0LsP0?YWQ}{Zhajg36klnu#*Vv`?S3 zgr2R*h_;*O2j_0ElMGQfW3*vhlWBv~`j!epaO6&sV;d Rs09E3002ovPDHLkV1i*Fz*GPL literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..88824fa7ca87f8cd64217bd0bccb6eaa8e197759 GIT binary patch literal 1504 zcmV<61t0o}P)8 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYZn^*fZn^>1-mw<|00c-$L_t(|ob8*bO4|j> zp)>`O*s&YO!wCsYoAJDMY%qR~kv%g{;{Imd@suNkpzjGB_5gw=7LGcxaMX!~qfRUw zbzR2(0wA~&#GIs+%VHja_e#BuiGWtL#uG%`?Kb~XJ(xXUcaqfnbLjVBAi>Y?)+zfZ-)!t zeoF6kdSUhMOua7!M*T0kK0x7O#ThE=absGaU$S7mc<=p7fWoDU+eg(VXmq0dUI&iP z`v4pSF%LH)z`z8w@K{`_U47_(fB^_@rInvwz3(Ax{36h$<+Z#%|HkJ4VB+V>x{xi~wttFh{H4 zY=TB7H1G-$3{dzTEol#=#b$-lc-gQ=#x)D1OdY^_0EHJ@STo7xNzJIbnpXODHXY~|sh5rA z^%u)*znHN~E>CK@$vnF;2p3BBSs{oUlxZ#YNl$gg4N$I472V6vvgZ?gYf0};RKRNwnfu0cq-6Fsif#>0Et&ko3 zW4+3bHdg^gopL%r13+Nm7SJmN9;0kVP0|9aSh1;lBj9%$K^G568D}%}0BcpR#?EKQC*U2u)bPC_4z5NIeqf34oN0PrF!w z`Af)09)4&Oj`ao_VBw$f*q0Xf?g}oz!WZTcI?*S01QlT63nPRCp37#`gyj9m3LT&@ zb$Q52vw}}&5-v}xa0s;|f?ZmwBIo5)(wcO(yA81R6fX+E#{oX*gX|R|mHpjf@6IOb zWqcqlPCl-!6v2fIhg`-X^9Cc#hsPh5po_gajvPsea0000 ziJ7ittaqB2kPza^_LY69>-+2ef6x8ndEWP&=e*}V=RMDPpHxSCn`1Bp3;=**n2V^( zM>YCy@N*wA75Xe00Juy8t*jiKZL|$_wW4kSfJ%-p2>$5B3~BiLfMD;SnkpN1&} zaT)Ajc6N8Z@9gPh%0DT@4mk0J|fpUPhSwiDu}f3_wJkJ#j93#G0pdc zMO-AfGzcK5&eeqeaB^8l#7KZq!s8>A3^C*xLlUpQi{Re}$i)zEFM!f-3nTh#nF7@g znkw9s4q!}(nQCZ$K3CwPOwd{WkQ5ry9f8bSV90baMY^Ylz+R9E4uGAGL)rc2CIHNf zzqX!CqE`cpR180*v0YG5O$jLGB#T_ZL+5_`f}i?J@$NY2xs)7cA&Dd+=iR-a86u;d zwpmc&Ok@<$4LhDTspy)Nqr58RQu+ zVe^rIGvE_Fg@mWXo1wIo)v*cM2I-@oWXN#QBSXUC-K*PM6T>CNYXgs__^SfB?-`e| zc@Mm%%T(#;D+%dU5UEQ7nvccsdZ%9pU_)4W|EplBbjbCFtHVrlNHZus&{O03=LOFA z^d*@eVrM{aw+`dH$@OR14t1FqTSRGrS<5*POWryw=MA~6bWTrrZ4G6UU7uCk#_*ZF zDV&PXo3yK6LYn5`N0dwR0eOVPFjZ~8hJRe%AY#K|E|#yk;gujzCD5KYHosh3iXr31 zcfN5pUhdxsle55X9PWPDq~Ldlhb0HoTXjxPQcn1=lSl0wXd>X-7FJlp>1JmQew9Sw7L+)M4nXfIO9C0<_)?)J@e zN8d~vaM2Jq>bk`x$_lq#tg;i2;nNj@mKT3*C6X5-h8`-lfLE8J)ZsUdcSvh`N}GC) z#)s&^DYKVZfR?F;Op%I#C-3>sY6#$FMlCzuP&xx1+7j?S=?iH9D;;dRJsZRVvNa6e z`usC_0?pIOXo}lB|C8QJ3;^IyRE11HBlwueF~BUdI?Gka+8>2f!XtX~!r3FmTBi`B zi4?PPigbp0DwMc;`fy2BDKSU;Xzkt$17qe@ttMpzuxCB;2;H5KgJG#dPvw?z$>-|F zLYojqHK}CHygHM3vk#`f@z^$NdHBoYUP?P?sdKvdR4Q^~%gM{?T-tXdc5=?W!bI(S z7Ur`%{p1 z;+KZ&y(i-lHhVCSM7Iq*)~aM~)Ve}=LLy13>Zi4X*$^o6SRI@y>r#!;AmAyjEDqi! zv`nCK;x7#Lds{H=8bQ~NsP_KM7f<)=WzQdsyXbSy2P>dK?o%{c5yyk~QGD zwR;8n9Ie}hpH@ooeei85toR?5_lB{qW$t1#c+1_r0zF2|Tuxu9e-9OzkmBkt(oyObCMiO!ckwL6ZgOe~^+GH`zU299wPy5&WC7>n1?`Mj8<9^BQ z_=9NNeVh4Qn?K`+^4}qu-_oO#dQOFLLg)L|yN}IzWDiN3@QgW3!LU?5v{&-F(~~fR z`_F@s6YxI`R(HP^JE|+r#JqpFmv%ox8zr-&$j+6Pm?76R5i-gbJx zE7^6btbAlhk<9XuRoNQ9+FwgaRCr&0rEVGZT&&KoI{IPIq5jFz=o5imixSJYJ+b}T zId)H>fOQI*$K0d5wS|-k`gyzp*5lNW^j>PfjxwC5Uf8;o<05o4W%_Ko{TjJ=MIHex z`P>xlzM+5s#)V@%meh*seXdZm0=S;mj(8y{v1)jEU5KdY%Ev)FH?bp^a_3WV=)|2? z7h-n6eu1QpcSp3QXrp*Ws7}`{eHP#-m+Nq@oX^+T($Co*72!ExnsJHS(39D#-QJ|9M2s*xJ+JEX9Z@sKhOreJgF8(7;~324O44Ho3D0`5anyuic2l zOx4ZrUcYA<;0GZ-V=~s2lv}y;E!7pz;rea9N+wxnNQp=dx)Jv41U-fRPrv=YF%i$x XBXL@GcuU&uDA526+8$MJ2`2mpoxasn literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b077f1b6a77b21c294a5b696ea576188e761d5 GIT binary patch literal 2121 zcmb_dc{J3G8vc!CFrVx)W{4z9hHQoG%#3EpQ1e+w#*(p=tP#bGt+9m=m8EQD2}5X- znCY{O^=e{5LWnEdSN5f@@2~s+J@=32dEaxM^Pcyd_dMr)lI?7*jzM4$0053*E+Q`< z)yRLq&vnGj;Ae>d05b8jw6t@u(lXG|jJN>+Dp_7c;*TE8pt_GIk=Qe!rV0s(xJ;#{ zT_(1(I=VXEcXW5KU z^HBu^Gcpt8Wt&R8s;9If)`y2;jNjUc^s*#RL~T_*_yJE1yCUk@M(U& z3T79|6~$#_di;2R*#bOe{}E>V=%4~Y7o9@^An?sU0F8d3NdW+uhC!O+BMVlZOyKZV zGTpHY4Tx6K**AS9%qlW9U8#bf>(*`G$Dfo&9-bd5OTk@wyitBg8aLS}$0-PpjyhE} zVc2{W;0*DJu0q^Xa$qohWp!+VzCrn@D;YFY@W_C)c<1W&*2GXz;adNrDgFvSu6sr$ zY~BO+=@L~2>PlQ{1&`Dv0gcCE1l`lGeX&8qIsdC*p>zm(18O(b7}W4j^>b6d{&|5j zK7C2%hu9gShjY78&gA;DOk7R+#U@d@U&eA4j|FdyrNf3?Mk=Q}w7QD6$*#?)Ze@DT z1_~#`bSG_Um*6Hjgc0T9TtFTsG1RQKU&TKzuOGI7n~Uaata~L0R0y=ikIgSv7h|aS z@ttp+jhFkkL*&e{8;83eHfe<2p&`kE)E4d2le80_?1bXA`Jysii!~fF45L?gPVNcCw!swW2FPEw`cu_flPJ% zx1N6`PN29um<=(T=YKMK$i4vdiK>t>(GWT&atts{ugq`~Li-@$N(5L>PAGe%Q1cXQ zG@fQ!N|R1QB!kJjrw^B8mEyCsj@ItI&^KaT)of6P0ek3?N2sp2EX*(hd@8#HB%iGp z4Q_xLRwYw4a%zlYO+T3YCSY69^3a#Z-IaDwQs;DXo15VqTlVgj=Tg2KvJyyDq}!G^s3|w35_tY_xJfl zFkxw^)?+djX0-=#jd$K4U@eR0M$u)$6A}qh6+h89(?O!lV+3)kq*FCYokXCu408yM z!6gFa6Mti{-&+Id*GM`xWVQEazPPzuFM0l8+)9>_O8;@PE?0x zSMTNNaWrq`e_AOf^g_3#u;PD|-y6a@mAHt_5G;20@^qO|bKR{=tMv)hs=C>F?T6}< zuO~uZbp3QmR~D-ew;yjS8Hvjpfcp=3=%0k(Qzi=`E}C0{-dexrF9A)y-anIE>i3Io z#U4cB?_14hTiuNv%zX!EeM^l@=sp#~37+p=?>aW;nmH(K%sqyif?%8ZQ0|HA_D@3e z?>`TKPeAYLukL;=v_mM)M7@8wmvTQ|g|V|kA0@TrZJOfml?_b^%rpo_l4K1f{Gh3MP+qdm$}d@ntwH|6aCE8m_`!9{(Ri&nOVuCaZj$us17x<| ziOxIyT)%tQos0*)Oc_{O>lJfoP&jwgUgN)wu+*7D$oFX}H`#~C8oq)p^n9&@Df16b z2)b_5wekUfEA!KXZ@fFGJ_Y=&#;YdA#20Ev?f}AHZ_QaB%MH*ny<@w6Xd_pxqOTp0 zwru5omcB&R-2bSU!k2W*Nm2BTI95azItf^Z^WF7~;5vQOdi}Xp{a`Al@AXpkXb&mDqH7#cI4OBOm%7>YXf(JmJ^5D6x#+6Wgzz zV|V8Zpp#JCX0D|zO_X$^x9cllJw^@A=xO%dQHFBY3Zq*%jzULMCeNnZu2BnDpWG7CUk&S8g*N6~EKs zNY3=#&y&>lXphtotrt%V*6zHiHw@UxW#i73@_89qcstl4!`%8UJ!2d1TzLF;AY6s< zx(-`A#u}7VPYr5*&q{s?tTTf97%Gr|jeI4k3WA>cJP)fHTYDOip%@kcmbgimyr@uM z&9jwBFQ6=LtRl0w8?zbycP1kp#_Vrtu0pJf-%1Qdh?KE76`?2_&%$zk_qTEDG{jwXVQL+pqtSD>9_wkCStj} XB~Hr@ZAsf4B^rQ1*&=H#h;jb`p3Bx- literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2f872dd4e6b82061ed2194970feba051eae12d89 GIT binary patch literal 3018 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 literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb23a706ad105fce9a3b47c9743dfd95d2d9bdd GIT binary patch literal 1482 zcmV;*1vUDKP)8 zGcb2;001bFV_;zN$VtvEW@2Dq$jvJ$3UYT+h=`0*V86-0#=yhC$H2)To0wc&;2Z1~ z0#w4_=kMprfC0W;V_*c)mvupAVanqLTq&u=$w2xK5LXldEoWe0ECI4b(jn{)5IYIN zo&#bRg#jkxf@y<8U!rK>Z>>I;A8N9304L1OVfl zRDt`MN!kDa010qNS#tmYH(dY#H(dc4fJR*a00c5gL_t(|ob8*-Z`4K{$7k&I+WSmN z69NgSyc)=cfJAtN$10=>;s#PnfkQa;AL>2Fa3};MBoG{crPT_O2oXWcCJGPHR7s?~ z1le8h+Uv*kRwZfhcz$cf$nocBjc5FoXTJ0M{l>RiVO;&$e<94 z3<{yhpb&}-3ZclLuqi}F>hGeWld^8FzS5Ku1q|tmAhcMtR$qxlaZ0K8O~6H(HX3=O zP0kwAOXj-jLSIHXcPIwvlMwXl{o=Zd>6mbIPqeQyCPKvm?;{A^d9FTqS^ax)y+VZ0 zlL@UbV*sD%e-x{BuAmL(N|sG;ydgl5Pp7o;4>gAd!=viL+KE>u|16omPiU}vfg+#1 z(VZLAOfr-&Yc(&cWG_BY2K^imkrkbMQt4A?xn$oMRXr>Qep2m<4(SdeQZw9+G&N^D zeq99&QUB1Z`QrOzuAohLXF@P|1OuL%5Gy=H>L$6KS79^F6F7x+OC@XAQxjr>U+g+L zYvc;Rjjm3(2I!ApS0`tEFd^Pq$jwo8sl?lac#G5xGL%p*MtCq-E1n5GjHO z&Lm?|r|JMf=*Eb;Tw;4OBX4y;R>>yPveCWqikld%F)3U@tj_rr z>)v>URi|5#)f#yb~D5ou?H+7K+xbQI*Mq#@^|JxzelYTGe&3>QXarx&CKZ|q{WhX5 zm+4Ebr9os>hyd;?3g}e3%ydg*Qn-3D;arH-YUFypT%(!L>HRXGFbUZw+Zvgxwe8y_ zY9)4l#kxJFI=5-v0x1+jM8;)EdAv8H9CTqqUt(x}u`5RC(h0Wp>=j%C^k@VRoJlGY z=$xbucxNHsri3dr6Y?A%Qmy^1QhyiZI0%eC=aXkMO6Lw&TfZmxBNAhDsVA{D&B=s( zJ8709cp#gQxtNfj$LUQe@k&pE!$3ZNGjO1dhY3MMdb`o}Wt5IKS0*H2l;9TeC=zZ= zdNu_xMwfdMO)0twZEX-Gkz-iby@xFkaYmN#wQNF;Pz3aLD6sy4B6~ZOUCkbR9`hf~ zY4PWiP9~H+pd9{=65oFgphy9uU;0x0U9pC^XY)4GCjHR4{#^+e?Q4-P9*v(r4EHBo z{~tbO&91DiDK)1-O9vrB(Bj&Yl9VDimp0wtfyl3)P4R7AC^9I7B7;IGGAM*1gF+}W kD1;(|LMSpQYzmS80#`U~)%i12?EnA(07*qoM6N<$g20KIp8x;= literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/demo/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cb04c367d06f849ae97d73d9802400253a353181 GIT binary patch literal 2633 zcmcIm_dDAQ7ynWtaqU&FD7~&yYSyUH1})d9mb$jM5}T+}tr^ZB_j7#*@M$?4ERXR??SG{-+4-f*sA{6kYe1Z9yMrd-+GXYxZx*jb!I z%^wa|RWMY?LV^epyFvnNuhF< z38-}A!4&BcmjyZdQ5P6Kc?E+FRt|THf@k zV#=8eV>xNX5zgEKjpL2QqhN|A@}hU0f7Z?_M-I_y6f=)opNxO2tf1&MLddX=eB5#9 zawwD`@;+C+_+wSv$s5?Avtq@QyU3*z^|tVus(gtV*zl+6-Ew#BZv0;5yvdnhJ-RVM z&-Z9~FwfET?bfEi@$Acavn-eGVb}^D@3aXGF!?R|3CsqcaEK2kxY*v38pUXr(JW%d zk%48yd=o5!Zxbi$oyoI@urEYPzkxd$zmJ>s^+q7!___aNha%Qf?NK81#DA!ZpW zTVjDy>wEh!N|aGvc#V}(%h74T(fQI_&-eHySL+RMFVBqZYAC0X^LcE%(I%-kj z4mX)!ASivbsRH1$yS$a^bZjaW@+_4LP0J2TJZ#U6ZU0RaAa6<%=Dr1NnO+bD)D^zv zX?&1E)nQfhHP`#-Nw?UZ_m}g_+-Tk^B57RcJdN~7@<$0&D4PpyijzNxqlVaY*D6kr zkwZ^%^`Rxti>PJob&ZP>EdfhrzxFH$+H20){_l;&1%V?HZ<{3$bxOQ`KW&X)`XuVQ z0`Nh%;!~+0^iL62Jw$*RbwPkl!Jm_adR!k|a2Inail_Lu3H%|H5vjD#U3`^dV6^Al z7Q}2j*fxFWVb(C0jx3fWM{^es;?HC?X-)6QjRzNGTcb#`^{p!U z*hbandxu-WSnFC@yNxSkO+-L)52iBZLVQ+;0oLZWL@s~MM!;?y(xUw&!s)?of55~F zJ*zLjFSdYZGdi_@x#p&rfs=b|h<~X2r6hXzz2PWU#UhD0Vy2$Y40AJ7AK{Ghht=Nm zU2~S_3td3B==GN{%Cb_hf&NLhgaD5ZByW)tqI|eH@~icCmUeoilZglqZ-)(L@V(ZI zAK#%{$O%y&RX$)o)wEdBOUvFSGjytTaZl?@t$qxjJUiZy@TFIaWTF7Ny zCafadG@Al!)Uy>?c-e}=Ya@|=U$Q7tKK&LkyBs0AvP`R{jataR%<9(vOLuoNfzoJJ zPH>w0ySbKV?spiTK4>|Lk(jYz+Ca-*3`X*{F7RUpXL!l6SMs{+ReW~*+^#r3ApSLS zy&ALqKjkMw)0O{5s8nzlt7i{n1ZMi_-9d}-j(Z+!eavo({gRG)Zrk;01|p#-aOl~= zF`ol%svc(!MYG0q?Zx4-9eY2X468v3YWl<-l1ZHi#qm!A9+MkS-B1_Y^?GX)lv=LM zXPbu_HvNuSSosaN8Sz?hm(Nz02!@t7=;}NlcjYbKj9~nWv+SCWd6+q8k;W-A2jMe> zmDRM~I9R?SmA~NwW5c8M!m~&?ELayZI#&zh zo+4Dm&%aLp9aRMSxm!^-F$~upmZt}&9}cLCExR88Nun>tKYPN3E{nzFyGx(Oh`lCh z*o)JfZp<$W?-a?i{^TCl;1^8x9V7LK$#azGDjt^zg>P-ASpr{aubOwwp*CC3ECKx% zr7^6|e$>rZ3LVJfdBt=RF9KgBCJ0J;+OhOzL5Y<%;uE ziNwptJs%obnk8Nq6;9~T*>9}Dab@zVPa=K1GOAhAQS) z$z=JVG8CC&Y`=N`iT9j)?{m*R_jB&^d7g9cxoOsx#=JbDJOBXjnwl8cGSAw7m5YUG z_rvBo0RRLIxOvms(O5%AQ#~RG02Fh4VX*CC)AuR}9~f+SOz8qoXoPKQ>Qh@-FR72% zH_$iKM>>x#c6VP8qY1It6BgEfu8qWldOUn#Y!gM{`UvllWp?)qb%P{5#;Maz0w5KC z7)%+2Gn|yB@tuZn6UteAgp=5GSSe!hfjwbd`#@?Lo3|H$C7biaBh;Zlot3I03$_=a z@R8DV^seM_n~2|0;|fWBBjze9mcK?2A0(Y7F1&{g!$`1ESfBO#Y_i@pfX9ogp(!6ww3Ih-O*KSZBb{DU z?HEre>euP5#3^cCt1|Ged6bioP;aVIJy&J%%qbU)5UKhDO-6cHy$n3vW&l+n|z zkv%IeJ{-UXESK6R?3b8+W6R606@O|S3%QMtS~bcVQQdnA6dFlMvgc;BQf-_ zs$}9WT%`9`o+xX(hJ1e}NUUX1OGhi|ikwPTKHw5DVW@p*_m+0?hcx$do!X#VXg1e7 zAo-xDyzN*E*6=_VV*J6Ro2Z5GizI=eE0bk0a))sh1wy)-5u5&!U*Bl{)z0-kr+0op z<}D}@7}hoVFGXO2HvO>6#3=4@R^?9>|ywU(CRU7MCUY2BXF06@#A=l zeP^+*wl@NalbqX_3S63hf{%-p`SV>5{Ma@n)_3Bw?cS%KE)+aTJh^u1)GB}Q&k5Ic zd#uWtC=YGm=#s#mozcig_b!og59j6EBKYg6Rs-O9bbe*tR++uX1^@w?a=dBc4 zOl#VQVB=!tbg};1W(!fCPw9!smTQ9^-D2IEZA1(ErhEHnaKqt|-x=Te>&=?i6}-Ac z;yQ}0NblAAuB*N5_rWwrq0ykN>a94hayf`5!~0q)7Aj%#3_Hs#yO{C73?)w=c$SLo zIqm7&ciC6|AdMWcEl(+#In`hnZ{>BQD=JYU6s29dFHji{bc{=lG{c8V2(KlrL?wgO zpE;2-6_NrZfO6$pDDBh)C&sZF*2vnoduwSsgenUu7r-$=m-r=W;D1@zkrIIFPReSb zA|>_-0WWDTTHa%=rSG)sFVGVXM0Q~w8jv=1terXIHN2KaxE>GfC4q$2fsiP$%pcyu zFQA-oVE5Jaoyd}0iA(F)L?$7{WGH13#|LB;?wruZDnP=fL9j60ExgSXiLZ*8y<`c0 zz!8kQd1oHjUErX?Q>Ju*cl^nrv-)cxPL>q3*{ldi}L4psWWcSYGyWwLk}vp-!=HwwGs0F@+pJ1+U@emIdmg728vRt#-+Dkr|?k zq*V-_f(piBU0ro4eo~O>tca^4$Fd*h7&ZFD%c8RJ6*SbPTd16l#jR~~)MD|yfb57p zmZs^SALKYCTbflWofmH5SAB|T2;rTt4@qhi-m9r!E0&|f*ZgCrihe~tmRI?*(b5$Y z?>Esu_w`-3??GT`@-M^<@Rs(TrZ8cspmLKdnFkw=uQ5Nk0KKgp+koEi*D*? z_o~89N(Qti-etO$)$}OIM>gKKv#j-rZo`Nalf(BDM@u1R20#m+wmz&M?V0?9RpXqY z)bALj%ZAzT;wwU>;~5XHn_2GW{bP4;)llRudc%0mNmZuvoaNzaYYi-)g4(FZmw&G9 ze%1Zg@f~?bRRFjGR%t|IEIy5_@(gx)jJ?zBx@ex^aL2bGdRK5?s)q-iLv^a24bX}0 zqt7XkF+5WzEr@r`S2ht4^kA&E1n)Fnx72ZP=QmH5QlUeRW!N2sPA$H0SJv8~Jb+4F#;6pysHlr;UZqxwd^!&i#keWGDGXe@CKK~I!^`D? zL*e_d&T~yjgy(T0y||35D&ZHc;d-j85fU`{Tr&`~4;Y~h7U|VE1jirS|fg^>bH2c_G)z6@3Z;~zH3%Y4`$qyq$qUaWJ>1dX}?pW+;F3V zF`QNk5QR?o+KF$+T@@SbJyUWoj|VXh{9E@L_{Tz{d!H=Uw?2f*S4#nN%BhV7>9baS zD_k8I*1iP9eiNf>kFC_SvQ-sy5ZG*I68c_Z+=UZh68_T>y4Fy4(0^N^TpnU!U(C;E zyAHH8njJ2xR+IRe!+~#9bbkn`ucMgo zm(r##j+&y{WL`oN!0SHkS2P3b!`rjma)Q2|st=~YOK5)r1*cgFnH~QGWiB0%!U8;l+k%_@@@Qrrg*R1p zF>?;zcRi_>MR5kX3-(2hp7|St&Me^RMf*srZ*j@PRY7hABdtjGvose4$P>1ov>DL` z!_40&phG=x$Xir>r<_XbJP|?U9^5IJWLZ%2m+x(2Z>CC5Cw}HtukI3(+#r$y`7t%) z=C!F@Gh+J}wcq?TRGa(S$j4%5n;pM2`KKjO^TH+!7DnEJXcBDhMO_;S3CncA3u30b%Zjmc|C% z6O$7XKArG9r<<0PkZ|IxwkB6mc~D13Pf)`ClLw9+IDFvvfs+ceXT-!jkbWb^6msan z^Y_nBH8AdrO-^9BIK9*{E%DT2))>u|M^8HZ;ui=PVbo1eNYG*2{dH&;WNfgQt2e?1MRjr$pH@}2CobTFID=^>M) z&r#5}Q#wjYddl-dGDlAe9D8ss;Y7m8gfj^T0?ti1?O@Bm70lM`;7o*xqx!e-hw@#KugMgjT6W6$*pWDL8$PG1t%aA^8L z%l!*BX&Bosc1c{?G_kR9sZ&H+R%Jn5T-v6l;<`Y`y1*pQv^u#%cNHD}Dmhp!RS}kv zIg!c2@OVy0O>_%)nqC3&M<&4Q@b&-~vw<$B>FSZ?73L9#CL7u)%Qs z31=C;0!DXXR$J?5x8xZdPX4!IV0d80%);w4TasAY>;sQuZb*p=FBHkvmCs8SP3_(t^%+dh7zd0{%Xws}@2t z`!zmyehCa6$TKQJVOY?LohEkAb+t|3w2St1Jk!-=>Tbj%`U#PlT%09QB9a&p?6ci7 zY%yqR=?BApetZbNKIQ1pqvt6pIoqLcuAMpPRDJ$aPv&R(oiz^C?v5U@m*<%+uE}_w zM_+JlIdHGq7YU4;!UH45!s5GD*I-)@&kvR!b~jz|c#peB+FHDoW^ZL3=k{)ne8^&d zZDsckZcEqeqm4>f3Oe|eo7_8TLDe4Hkrsfnqw+<){TRvsFaT#YJ1z$k^X62+0D@5P zFly0j?PlApqU5Wsu_ybai7@(mj*|QLCqeFCZer!pITa(dY>-k)9n*lXa5Zpm;Bmm< zfbkINfIvh&KqEpULL)*WLL)*WLL)*WLL)*WLL)*WLL)*W`Y((~a7}4XND&KEKaPG{ z%IWf%R&)LNJACrPFG@N8F9boZ*7T;cQVT5#T53tfYM_s)4blK70WJjY2s|1XBQRJZ zH2~HgK8==88o-8-{4D^o3R#7$LRKNGkX37uRmdmg6Y>f9gnU9iA)he4DrJ~a2?j1D zSozlp(j8td9*dm9{5uvRup)z{DXh`0!EEcl!OG@bQzUh(AH)sQwo&| zi>^=$>|!Yq^r3cIXj_(1U&<&F3>G9hf0PMyR4yL=<5*8S{yh{4$&rA^e9z?!8GQ%Ph;z&MU}GPF<+myNxKJsg$u#eslL+ zTM1+S$4QB*oqO}$?!)=a8{j&*``iOApgncMYVD2bpB7^A^#%um51q2R8%vq|X>*0a zR{XGUoHenfBcLCgs9rloHg^kSb7bu~&*J(c)#*y#+0c^dHS*NZo*3uWySo)bdxM7=4S!+ zh;ez{ja~W-QWYt#w7OmQTIk&^v!dvW4je4~;?CpYb-g8QacxuJ zgv+I#QQR4vXV)axe{Q~5;Pf@$OZA>_Pgt07!C366ZgROiS%tRp{dUJDTYL2`$0~zk zRf*Z=i1odW(|?cGr+H>h)@b}?a_T#6aSfd`zvKg|w42uLBDxeMyk(Axz!4%XnT-a^ zzSI3Zh6qke9G86EpRI}18M2m?qh_)}_q?IWd3qlb1g8@N6 z5Rel<0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3Vu_N(%<6>=f82>_1-3zKaNGa}Bnl)^D1#UQ zs3sf*Y!VY$ppjtkRH-t4%>uwq(ui?FY!DkliH5opH97hfXu?RQ0u3rO@BTwa(w&js zC{*!LZ+9GMxV}i32u7cCBm_}x+X zq3}cDhr*9ZnFcTb2EYIqaJ`C@4@b{=iTlBAL0}*-5Euvy1O@^lMgVPgwAs;S=cH@^ z82$}|x^j3>*v`4BYSr?k}dT{7K|yL1)6g kZg|s|#6JoOdNbO3Gpq1Xbm*F8mQEqg=A0GA)+|>26P52CA^-pY literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json b/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json new file mode 100644 index 00000000..444d7152 --- /dev/null +++ b/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchScreen-Center.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchScreen-Center@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchScreen-Center@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png b/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png new file mode 100644 index 0000000000000000000000000000000000000000..280c30e083fda186bcc1b24d9b226a9c47bfc7e3 GIT binary patch literal 6808 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 literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png b/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f984b9e44d67e72483d624e50eacc6ce2b7d3a94 GIT binary patch literal 13502 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 literal 0 HcmV?d00001 diff --git a/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@3x.png b/demo/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..95d86f3f768054dc8c83bdf1e2e095d9213c8e8d GIT binary patch literal 20794 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 + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiresFullScreen + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/demo/App_Resources/iOS/LaunchScreen.storyboard b/demo/App_Resources/iOS/LaunchScreen.storyboard new file mode 100644 index 00000000..c4e5a3f3 --- /dev/null +++ b/demo/App_Resources/iOS/LaunchScreen.storyboard @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/App_Resources/iOS/build.xcconfig b/demo/App_Resources/iOS/build.xcconfig new file mode 100644 index 00000000..0d38fe0a --- /dev/null +++ b/demo/App_Resources/iOS/build.xcconfig @@ -0,0 +1,6 @@ +// You can add custom settings here +// for example you can uncomment the following line to force distribution code signing +// CODE_SIGN_IDENTITY = iPhone Distribution +// To build for device with XCode you need to specify your development team. +// DEVELOPMENT_TEAM = YOUR_TEAM_ID; +ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; diff --git a/demo/app/app.css b/demo/app/app.css new file mode 100644 index 00000000..3f8ad23a --- /dev/null +++ b/demo/app/app.css @@ -0,0 +1,7 @@ +StackLayout { + /* background-color: rgb(255, 0, 0, 0.2); */ +} + +Label { + /* background-color: rgb(0, 255, 0, 0.2); */ +} diff --git a/demo/app/app.ts b/demo/app/app.ts new file mode 100644 index 00000000..f0054304 --- /dev/null +++ b/demo/app/app.ts @@ -0,0 +1,7 @@ +import { + createApp, +} from "../../src"; + +import Home from './components/Bench.vue' + +createApp(Home).start() diff --git a/demo/app/components/Bench.vue b/demo/app/components/Bench.vue new file mode 100644 index 00000000..d529e621 --- /dev/null +++ b/demo/app/components/Bench.vue @@ -0,0 +1,74 @@ + + + diff --git a/demo/app/components/Home.vue b/demo/app/components/Home.vue new file mode 100644 index 00000000..25356621 --- /dev/null +++ b/demo/app/components/Home.vue @@ -0,0 +1,53 @@ + + + diff --git a/demo/nativescript.config.ts b/demo/nativescript.config.ts new file mode 100644 index 00000000..9e1e4789 --- /dev/null +++ b/demo/nativescript.config.ts @@ -0,0 +1,11 @@ +import { NativeScriptConfig } from '@nativescript/core'; + +export default { + id: 'org.nativescript.demo', + appPath: 'app', + appResourcesPath: 'App_Resources', + android: { + v8Flags: '--expose_gc', + markingMode: 'none' + } +} as NativeScriptConfig; \ No newline at end of file diff --git a/demo/package-lock.json b/demo/package-lock.json new file mode 100644 index 00000000..29a485e4 --- /dev/null +++ b/demo/package-lock.json @@ -0,0 +1,8334 @@ +{ + "name": "demo", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "demo", + "version": "1.0.0", + "dependencies": { + "@nativescript/core": "~8.3.0" + }, + "devDependencies": { + "@nativescript/android": "8.3.1", + "@nativescript/ios": "8.3.3", + "@nativescript/types": "~8.3.0", + "@nativescript/webpack": "~5.0.9", + "@types/node": "~17.0.21", + "typescript": "~4.7.0", + "vue-loader": "^17.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.0.tgz", + "integrity": "sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.6", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.0.tgz", + "integrity": "sha512-GUPcXxWibClgmYJuIwC2Bc2Lg+8b9VjaJ+HlNdACEVt+Wlr1eoU1OPZjZRm7Hzl0gaTsUZNQfeihvZJhG7oc3w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.0.tgz", + "integrity": "sha512-aGMjYraN0zosCEthoGLdqot1oRsmxVTQRHadsUPz5QM44Zej2PYRz7XiDE7GqnkZnNtLbOuxqoZw42vkU7+XEQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.0.tgz", + "integrity": "sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.0.tgz", + "integrity": "sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", + "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nativescript/android": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@nativescript/android/-/android-8.3.1.tgz", + "integrity": "sha512-Q82ZuACx4DapjKsvqlGVEhcIAJR111ppMRL+Dnw2Jkt1YeE5CFQUZGq1mE72BfzrqrV6RrkgHtwS4EF511JxbQ==", + "dev": true + }, + "node_modules/@nativescript/core": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-8.3.5.tgz", + "integrity": "sha512-YUcrg0LB3Q9wqGgNhs6O0TsUX+l134JibbqVG+lgAXRaqrF0ysEiYnCqdUWEOUBuot/soKd0a/wzKnEWsMZx3Q==", + "hasInstallScript": true, + "dependencies": { + "@nativescript/hook": "~2.0.0", + "acorn": "^8.7.0", + "css-tree": "^1.1.2", + "reduce-css-calc": "^2.1.7", + "tslib": "^2.0.0" + } + }, + "node_modules/@nativescript/hook": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nativescript/hook/-/hook-2.0.0.tgz", + "integrity": "sha512-v3Hj3Zpd69sQJfFpDNXonV0EjO1a2OL4l48wlo1Ycsqk4r7RY822d/irFTjt0LllRG0OcdEGgfG6wKb0YgPyHw==", + "dependencies": { + "glob": "^7.1.0", + "mkdirp": "^1.0.4" + } + }, + "node_modules/@nativescript/ios": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@nativescript/ios/-/ios-8.3.3.tgz", + "integrity": "sha512-5Ac3WGQWKkt2Crw6XeqhLctQs0I2xhvO7+2diq/fyGdcLmdUxl/lerBJRY478S0THNufvnq8HCUIXm90UlpXfg==", + "dev": true + }, + "node_modules/@nativescript/types": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@nativescript/types/-/types-8.3.1.tgz", + "integrity": "sha512-ouHerFdjVOAjgYoKFs54jwQeWoOdCf3SAmaUPF1lNnS9s2UU4hNECesB5RrDh5YvziC84810kjcBwlARY1wNbw==", + "dev": true, + "dependencies": { + "@nativescript/types-android": "~8.3.0", + "@nativescript/types-ios": "~8.3.0" + } + }, + "node_modules/@nativescript/types-android": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@nativescript/types-android/-/types-android-8.3.1.tgz", + "integrity": "sha512-4BEThu0ROtUYEOEf3Zbadlsml0ir8aFuPCmUjyyrjpPCIZKl+TtBQ7z79/wdHz1+5VxUS0RtIYoensRY5FxQRw==", + "dev": true + }, + "node_modules/@nativescript/types-ios": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@nativescript/types-ios/-/types-ios-8.3.1.tgz", + "integrity": "sha512-gb7e1vtQjD90nb84VQw9lrBoGV48ikiKi7EqvHT8fmURqeFJ+g1feC9+vYEEoWkNJGWx2VhSUCjQVPWr5uUahA==", + "dev": true + }, + "node_modules/@nativescript/webpack": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@nativescript/webpack/-/webpack-5.0.9.tgz", + "integrity": "sha512-2gxk0rv4t8TFcIAxY7eKLfrDKnccSN4MDmuwT5WUz7UGWZaNqFe/ISKH3jNq6oKRe7maR2cNkmPt8MFUbtjw6g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.0.0", + "@pmmmwh/react-refresh-webpack-plugin": "~0.5.7", + "acorn": "^8.0.0", + "acorn-stage3": "^4.0.0", + "ansi-colors": "^4.1.3", + "babel-loader": "^8.0.0", + "cli-highlight": "^2.0.0", + "commander": "^8.0.0", + "copy-webpack-plugin": "^9.0.0", + "css": "^3.0.0", + "css-loader": "^6.0.0", + "dotenv-webpack": "^7.0.0", + "fork-ts-checker-webpack-plugin": "^7.0.0", + "loader-utils": "^2.0.0 || ^3.0.0", + "lodash.get": "^4.0.0", + "micromatch": "^4.0.0", + "postcss": "^8.0.0", + "postcss-import": "^14.0.0", + "postcss-loader": "^7.0.0", + "raw-loader": "^4.0.0", + "react-refresh": "~0.14.0", + "sass": "^1.0.0", + "sass-loader": "^13.0.0", + "sax": "^1.0.0", + "source-map": "^0.7.0", + "terser-webpack-plugin": "^5.0.0", + "ts-dedent": "^2.0.0", + "ts-loader": "^9.0.0", + "vue-loader": "^15.0.0 <= 15.9.8", + "webpack": "^5.30.0 <= 5.50.0 || ^5.51.2", + "webpack-bundle-analyzer": "^4.0.0", + "webpack-chain": "^6.0.0", + "webpack-cli": "^4.0.0", + "webpack-merge": "^5.0.0", + "webpack-virtual-modules": "^0.4.0" + }, + "bin": { + "nativescript-webpack": "dist/bin/index.js" + }, + "peerDependencies": { + "nativescript-vue-template-compiler": "^2.8.1" + }, + "peerDependenciesMeta": { + "nativescript-vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/@nativescript/webpack/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/@nativescript/webpack/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/@nativescript/webpack/node_modules/vue-loader": { + "version": "15.9.8", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz", + "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "peerDependencies": { + "css-loader": "*", + "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/@nativescript/webpack/node_modules/vue-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.8.tgz", + "integrity": "sha512-wxXRwf+IQ6zvHSJZ+5T2RQNEsq+kx4jKRXfFvdt3nBIUzJUAvXEFsUeoaohDe/Kr84MTjGwcuIUPNcstNJORsA==", + "dev": true, + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <4.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.4.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.8.tgz", + "integrity": "sha512-zUCKQI1bUCTi+0kQs5ZQzQ/XILWRLIlh15FXWNykJ+NG3TMKMVvwwC6GP3DR1Ylga15fB7iAExSzc4PNlR5i3w==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-class-fields": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-0.3.7.tgz", + "integrity": "sha512-jdUWSFce0fuADUljmExz4TWpPkxmRW/ZCPRqeeUzbGf0vFUcpQYbyq52l75qGd0oSwwtAepeL6hgb/naRgvcKQ==", + "dev": true, + "dependencies": { + "acorn-private-class-elements": "^0.2.7" + }, + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6 || ^7 || ^8" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-private-class-elements": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-0.2.7.tgz", + "integrity": "sha512-+GZH2wOKNZOBI4OOPmzpo4cs6mW297sn6fgIk1dUI08jGjhAaEwvC39mN2gJAg2lmAQJ1rBkFqKWonL3Zz6PVA==", + "dev": true, + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6.1.0 || ^7 || ^8" + } + }, + "node_modules/acorn-private-methods": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-0.3.3.tgz", + "integrity": "sha512-46oeEol3YFvLSah5m9hGMlNpxDBCEkdceJgf01AjqKYTK9r6HexKs2rgSbLK81pYjZZMonhftuUReGMlbbv05w==", + "dev": true, + "dependencies": { + "acorn-private-class-elements": "^0.2.7" + }, + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6 || ^7 || ^8" + } + }, + "node_modules/acorn-stage3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-stage3/-/acorn-stage3-4.0.0.tgz", + "integrity": "sha512-BR+LaADtA6GTB5prkNqWmlmCLYmkyW0whvSxdHhbupTaro2qBJ95fJDEiRLPUmiACGHPaYyeH9xmNJWdGfXRQw==", + "dev": true, + "dependencies": { + "acorn-class-fields": "^0.3.7", + "acorn-private-methods": "^0.3.3", + "acorn-static-class-features": "^0.2.4" + }, + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^7.4 || ^8" + } + }, + "node_modules/acorn-static-class-features": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-0.2.4.tgz", + "integrity": "sha512-5X4mpYq5J3pdndLmIB0+WtFd/mKWnNYpuTlTzj32wUu/PMmEGOiayQ5UrqgwdBNiaZBtDDh5kddpP7Yg2QaQYA==", + "dev": true, + "dependencies": { + "acorn-private-class-elements": "^0.2.7" + }, + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6.1.0 || ^7 || ^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001426", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001426.tgz", + "integrity": "sha512-n7cosrHLl8AWt0wwZw/PJZgUg3lV0gk9LMI7ikGJwhyhgsd2Nb65vKvmSexCqq/J7rbH3mFG6yZZiPR5dLPW5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cli-highlight/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/copy-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/core-js-pure": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-defaults": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz", + "integrity": "sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==", + "dev": true, + "dependencies": { + "dotenv": "^8.2.0" + } + }, + "node_modules/dotenv-webpack": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-7.1.1.tgz", + "integrity": "sha512-xw/19VqHDkXALtBOJAnnrSU/AZDIQRXczAmJyp0lZv6SH2aBLzUTl96W1MVryJZ7okZ+djZS4Gj4KlZ0xP7deA==", + "dev": true, + "dependencies": { + "dotenv-defaults": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "webpack": "^4 || ^5" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "vue-template-compiler": "*", + "webpack": "^5.11.0" + }, + "peerDependenciesMeta": { + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/memfs": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.8.tgz", + "integrity": "sha512-E8QAFfd4csESWOqKIpN+khILPFSAZwPR9S+DO/5UtJNcuanF1jLZz0oWUAPF7xd2c1r6dGjGx+jH1st+MFWufA==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-loader": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", + "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.7" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/raw-loader/node_modules/loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/sass": { + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", + "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.1.0.tgz", + "integrity": "sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ts-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "node_modules/vue-loader": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.0.0.tgz", + "integrity": "sha512-OWSXjrzIvbF2LtOUmxT3HYgwwubbfFelN8PAP9R9dwpIkj48TVioHhWWSx7W7fk+iF5cgg3CBJRxwTdtLU4Ecg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + } + }, + "node_modules/vue-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vue-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/vue-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vue-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/vue-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-loader/node_modules/loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/vue-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-style-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/vue-style-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/vue-style-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dev": true, + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "dependencies": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-chain/node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.5.tgz", + "integrity": "sha512-8bWq0Iluiv9lVf9YaqWQ9+liNgXSHICm+rg544yRgGYaR8yXZTVBaHZkINZSB2yZSWo4b0F6MIxqJezVfOEAlg==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.0.tgz", + "integrity": "sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==", + "dev": true + }, + "@babel/core": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.6", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.0.tgz", + "integrity": "sha512-GUPcXxWibClgmYJuIwC2Bc2Lg+8b9VjaJ+HlNdACEVt+Wlr1eoU1OPZjZRm7Hzl0gaTsUZNQfeihvZJhG7oc3w==", + "dev": true, + "requires": { + "@babel/types": "^7.20.0", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "dev": true, + "requires": { + "@babel/types": "^7.19.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.0.tgz", + "integrity": "sha512-aGMjYraN0zosCEthoGLdqot1oRsmxVTQRHadsUPz5QM44Zej2PYRz7XiDE7GqnkZnNtLbOuxqoZw42vkU7+XEQ==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.0.tgz", + "integrity": "sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==", + "dev": true + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.0.tgz", + "integrity": "sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.0", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", + "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nativescript/android": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@nativescript/android/-/android-8.3.1.tgz", + "integrity": "sha512-Q82ZuACx4DapjKsvqlGVEhcIAJR111ppMRL+Dnw2Jkt1YeE5CFQUZGq1mE72BfzrqrV6RrkgHtwS4EF511JxbQ==", + "dev": true + }, + "@nativescript/core": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-8.3.5.tgz", + "integrity": "sha512-YUcrg0LB3Q9wqGgNhs6O0TsUX+l134JibbqVG+lgAXRaqrF0ysEiYnCqdUWEOUBuot/soKd0a/wzKnEWsMZx3Q==", + "requires": { + "@nativescript/hook": "~2.0.0", + "acorn": "^8.7.0", + "css-tree": "^1.1.2", + "reduce-css-calc": "^2.1.7", + "tslib": "^2.0.0" + } + }, + "@nativescript/hook": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nativescript/hook/-/hook-2.0.0.tgz", + "integrity": "sha512-v3Hj3Zpd69sQJfFpDNXonV0EjO1a2OL4l48wlo1Ycsqk4r7RY822d/irFTjt0LllRG0OcdEGgfG6wKb0YgPyHw==", + "requires": { + "glob": "^7.1.0", + "mkdirp": "^1.0.4" + } + }, + "@nativescript/ios": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@nativescript/ios/-/ios-8.3.3.tgz", + "integrity": "sha512-5Ac3WGQWKkt2Crw6XeqhLctQs0I2xhvO7+2diq/fyGdcLmdUxl/lerBJRY478S0THNufvnq8HCUIXm90UlpXfg==", + "dev": true + }, + "@nativescript/types": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@nativescript/types/-/types-8.3.1.tgz", + "integrity": "sha512-ouHerFdjVOAjgYoKFs54jwQeWoOdCf3SAmaUPF1lNnS9s2UU4hNECesB5RrDh5YvziC84810kjcBwlARY1wNbw==", + "dev": true, + "requires": { + "@nativescript/types-android": "~8.3.0", + "@nativescript/types-ios": "~8.3.0" + } + }, + "@nativescript/types-android": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@nativescript/types-android/-/types-android-8.3.1.tgz", + "integrity": "sha512-4BEThu0ROtUYEOEf3Zbadlsml0ir8aFuPCmUjyyrjpPCIZKl+TtBQ7z79/wdHz1+5VxUS0RtIYoensRY5FxQRw==", + "dev": true + }, + "@nativescript/types-ios": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@nativescript/types-ios/-/types-ios-8.3.1.tgz", + "integrity": "sha512-gb7e1vtQjD90nb84VQw9lrBoGV48ikiKi7EqvHT8fmURqeFJ+g1feC9+vYEEoWkNJGWx2VhSUCjQVPWr5uUahA==", + "dev": true + }, + "@nativescript/webpack": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@nativescript/webpack/-/webpack-5.0.9.tgz", + "integrity": "sha512-2gxk0rv4t8TFcIAxY7eKLfrDKnccSN4MDmuwT5WUz7UGWZaNqFe/ISKH3jNq6oKRe7maR2cNkmPt8MFUbtjw6g==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0", + "@pmmmwh/react-refresh-webpack-plugin": "~0.5.7", + "acorn": "^8.0.0", + "acorn-stage3": "^4.0.0", + "ansi-colors": "^4.1.3", + "babel-loader": "^8.0.0", + "cli-highlight": "^2.0.0", + "commander": "^8.0.0", + "copy-webpack-plugin": "^9.0.0", + "css": "^3.0.0", + "css-loader": "^6.0.0", + "dotenv-webpack": "^7.0.0", + "fork-ts-checker-webpack-plugin": "^7.0.0", + "loader-utils": "^2.0.0 || ^3.0.0", + "lodash.get": "^4.0.0", + "micromatch": "^4.0.0", + "postcss": "^8.0.0", + "postcss-import": "^14.0.0", + "postcss-loader": "^7.0.0", + "raw-loader": "^4.0.0", + "react-refresh": "~0.14.0", + "sass": "^1.0.0", + "sass-loader": "^13.0.0", + "sax": "^1.0.0", + "source-map": "^0.7.0", + "terser-webpack-plugin": "^5.0.0", + "ts-dedent": "^2.0.0", + "ts-loader": "^9.0.0", + "vue-loader": "^15.0.0 <= 15.9.8", + "webpack": "^5.30.0 <= 5.50.0 || ^5.51.2", + "webpack-bundle-analyzer": "^4.0.0", + "webpack-chain": "^6.0.0", + "webpack-cli": "^4.0.0", + "webpack-merge": "^5.0.0", + "webpack-virtual-modules": "^0.4.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "vue-loader": { + "version": "15.9.8", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz", + "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.8.tgz", + "integrity": "sha512-wxXRwf+IQ6zvHSJZ+5T2RQNEsq+kx4jKRXfFvdt3nBIUzJUAvXEFsUeoaohDe/Kr84MTjGwcuIUPNcstNJORsA==", + "dev": true, + "requires": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "@types/eslint": { + "version": "8.4.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.8.tgz", + "integrity": "sha512-zUCKQI1bUCTi+0kQs5ZQzQ/XILWRLIlh15FXWNykJ+NG3TMKMVvwwC6GP3DR1Ylga15fB7iAExSzc4PNlR5i3w==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" + }, + "acorn-class-fields": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-0.3.7.tgz", + "integrity": "sha512-jdUWSFce0fuADUljmExz4TWpPkxmRW/ZCPRqeeUzbGf0vFUcpQYbyq52l75qGd0oSwwtAepeL6hgb/naRgvcKQ==", + "dev": true, + "requires": { + "acorn-private-class-elements": "^0.2.7" + } + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true + }, + "acorn-private-class-elements": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-0.2.7.tgz", + "integrity": "sha512-+GZH2wOKNZOBI4OOPmzpo4cs6mW297sn6fgIk1dUI08jGjhAaEwvC39mN2gJAg2lmAQJ1rBkFqKWonL3Zz6PVA==", + "dev": true + }, + "acorn-private-methods": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-0.3.3.tgz", + "integrity": "sha512-46oeEol3YFvLSah5m9hGMlNpxDBCEkdceJgf01AjqKYTK9r6HexKs2rgSbLK81pYjZZMonhftuUReGMlbbv05w==", + "dev": true, + "requires": { + "acorn-private-class-elements": "^0.2.7" + } + }, + "acorn-stage3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-stage3/-/acorn-stage3-4.0.0.tgz", + "integrity": "sha512-BR+LaADtA6GTB5prkNqWmlmCLYmkyW0whvSxdHhbupTaro2qBJ95fJDEiRLPUmiACGHPaYyeH9xmNJWdGfXRQw==", + "dev": true, + "requires": { + "acorn-class-fields": "^0.3.7", + "acorn-private-methods": "^0.3.3", + "acorn-static-class-features": "^0.2.4" + } + }, + "acorn-static-class-features": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-0.2.4.tgz", + "integrity": "sha512-5X4mpYq5J3pdndLmIB0+WtFd/mKWnNYpuTlTzj32wUu/PMmEGOiayQ5UrqgwdBNiaZBtDDh5kddpP7Yg2QaQYA==", + "dev": true, + "requires": { + "acorn-private-class-elements": "^0.2.7" + } + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001426", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001426.tgz", + "integrity": "sha512-n7cosrHLl8AWt0wwZw/PJZgUg3lV0gk9LMI7ikGJwhyhgsd2Nb65vKvmSexCqq/J7rbH3mFG6yZZiPR5dLPW5A==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "copy-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "dev": true, + "requires": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0" + } + }, + "core-js-pure": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true + }, + "dotenv-defaults": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz", + "integrity": "sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==", + "dev": true, + "requires": { + "dotenv": "^8.2.0" + } + }, + "dotenv-webpack": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-7.1.1.tgz", + "integrity": "sha512-xw/19VqHDkXALtBOJAnnrSU/AZDIQRXczAmJyp0lZv6SH2aBLzUTl96W1MVryJZ7okZ+djZS4Gj4KlZ0xP7deA==", + "dev": true, + "requires": { + "dotenv-defaults": "^2.0.2" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "requires": { + "stackframe": "^1.3.4" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "memfs": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.8.tgz", + "integrity": "sha512-E8QAFfd4csESWOqKIpN+khILPFSAZwPR9S+DO/5UtJNcuanF1jLZz0oWUAPF7xd2c1r6dGjGx+jH1st+MFWufA==", + "dev": true, + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-loader": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", + "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.7" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "optional": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "requires": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "sass": { + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", + "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.1.0.tgz", + "integrity": "sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + } + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true + }, + "ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true + }, + "ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-loader": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.0.0.tgz", + "integrity": "sha512-OWSXjrzIvbF2LtOUmxT3HYgwwubbfFelN8PAP9R9dwpIkj48TVioHhWWSx7W7fk+iF5cgg3CBJRxwTdtLU4Ecg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + }, + "webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + }, + "dependencies": { + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "webpack-virtual-modules": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.5.tgz", + "integrity": "sha512-8bWq0Iluiv9lVf9YaqWQ9+liNgXSHICm+rg544yRgGYaR8yXZTVBaHZkINZSB2yZSWo4b0F6MIxqJezVfOEAlg==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/demo/package.json b/demo/package.json new file mode 100644 index 00000000..1d672421 --- /dev/null +++ b/demo/package.json @@ -0,0 +1,18 @@ +{ + "name": "demo", + "main": "app/app.ts", + "version": "1.0.0", + "private": true, + "dependencies": { + "@nativescript/core": "~8.3.0" + }, + "devDependencies": { + "@nativescript/android": "8.3.1", + "@nativescript/ios": "8.3.3", + "@nativescript/types": "~8.3.0", + "@nativescript/webpack": "~5.0.9", + "@types/node": "~17.0.21", + "typescript": "~4.7.0", + "vue-loader": "^17.0.0" + } +} diff --git a/demo/tsconfig.json b/demo/tsconfig.json new file mode 100644 index 00000000..409cb25c --- /dev/null +++ b/demo/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "strict": false, + "target": "es2017", + "module": "esnext", + "moduleResolution": "node", + "lib": ["dom", "es2017"], + "sourceMap": true, + "noEmitHelpers": true, + "importHelpers": true, + "baseUrl": ".", + "paths": { + "~/*": ["app/*"], + "@/*": ["app/*"] + }, + "typeRoots": ["types"], + "types": ["node"], + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "skipLibCheck": true + }, + "include": ["app", "types"], + "exclude": ["node_modules", "platforms"] +} diff --git a/demo/types/references.d.ts b/demo/types/references.d.ts new file mode 100644 index 00000000..dedd7934 --- /dev/null +++ b/demo/types/references.d.ts @@ -0,0 +1 @@ +/// diff --git a/demo/types/shims.vue.d.ts b/demo/types/shims.vue.d.ts new file mode 100644 index 00000000..e38221c8 --- /dev/null +++ b/demo/types/shims.vue.d.ts @@ -0,0 +1,5 @@ +declare module "*.vue" { + import type { DefineComponent } from "../../src/withCompiler"; + const component: DefineComponent<{}, {}, any>; + export default component; +} diff --git a/demo/webpack.config.js b/demo/webpack.config.js new file mode 100644 index 00000000..f1975da4 --- /dev/null +++ b/demo/webpack.config.js @@ -0,0 +1,61 @@ +const webpack = require("@nativescript/webpack"); +const { VueLoaderPlugin } = require("vue-loader"); + +const path = require("path"); + +const compilerPath = path.resolve(__dirname, "../dist/compiler.cjs"); +const nsVuePath = path.resolve(__dirname, "../src/index.ts"); + +module.exports = (env) => { + webpack.init(env); + webpack.useConfig("vue"); + + webpack.chainWebpack((config) => { + config.resolve.alias.set("vue", nsVuePath); + config.plugin("VueLoaderPlugin").use(VueLoaderPlugin); + + config.module + .rule("vue") + .test(/\.vue$/) + .use("vue-loader") + .loader(require.resolve("vue-loader")) + .tap((options) => { + return { + ...options, + isServerBuild: false, + compilerOptions: { + isCustomElement: () => true + } + // compiler: compilerPath, + }; + }); + + config.plugin("DefinePlugin").tap((args) => { + Object.assign(args[0], { + __VUE_OPTIONS_API__: true, + __VUE_PROD_DEVTOOLS__: false, + }); + + return args; + }); + + config.plugin("ForkTsCheckerWebpackPlugin").tap((args) => { + args[0] = webpack.merge(args[0], { + typescript: { + extensions: { + vue: { + enabled: false, + // compiler: compilerPath, + }, + }, + }, + }); + return args; + }); + }); + + // Learn how to customize: + // https://docs.nativescript.org/webpack + + return webpack.resolveConfig(); +}; From 89c4d9bd021d8930bd3c6522449842d32b878202 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Mon, 31 Oct 2022 14:27:52 +0100 Subject: [PATCH 03/89] feat: list view recycling + external data changes working!!!!! --- .vscode/settings.json | 2 +- demo/app/App.vue | 54 + demo/app/app.ts | 10 +- demo/app/components/Home.vue | 76 +- demo/app/components/Test.vue | 3 + demo/app/composables/goHome.ts | 18 + demo/package.json | 3 +- demo/webpack.config.js | 9 +- demo/yarn.lock | 2557 ++++++++++++++++++++++++++++++++ package.json | 1 + src/compiler-sfc/index.ts | 1 + src/components/ListView.ts | 162 +- src/dom/index.ts | 27 +- src/index.ts | 15 +- src/nativescript/elements.ts | 15 +- src/plugins/modals.ts | 106 ++ src/plugins/navigation.ts | 122 ++ src/renderer/nodeOps.ts | 1 - yarn.lock | 25 + 19 files changed, 3125 insertions(+), 82 deletions(-) create mode 100644 demo/app/App.vue create mode 100644 demo/app/components/Test.vue create mode 100644 demo/app/composables/goHome.ts create mode 100644 demo/yarn.lock create mode 100644 src/compiler-sfc/index.ts create mode 100644 src/plugins/modals.ts create mode 100644 src/plugins/navigation.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index f988fc5c..c077bd79 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,6 +12,6 @@ "**/*.map": true, "**/.idea": false, "**/.tscache": true, - "**/node_modules": true + "**/node_modules": false } } \ No newline at end of file diff --git a/demo/app/App.vue b/demo/app/App.vue new file mode 100644 index 00000000..443fab9b --- /dev/null +++ b/demo/app/App.vue @@ -0,0 +1,54 @@ + + + diff --git a/demo/app/app.ts b/demo/app/app.ts index f0054304..ba63e29f 100644 --- a/demo/app/app.ts +++ b/demo/app/app.ts @@ -1,7 +1,7 @@ -import { - createApp, -} from "../../src"; +import { createApp } from "../../src"; -import Home from './components/Bench.vue' +// import Home from './components/Home.vue' -createApp(Home).start() +import App from "./App.vue"; + +createApp(App).start(); diff --git a/demo/app/components/Home.vue b/demo/app/components/Home.vue index 25356621..485d4d28 100644 --- a/demo/app/components/Home.vue +++ b/demo/app/components/Home.vue @@ -1,4 +1,11 @@