diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..5d47c21 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 0000000..4f39080 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,3 @@ +{ + "extends": ["config:base"] +} diff --git a/.gitignore b/.gitignore index 64d8a9d..dd6e803 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -/node_modules/ -/dist/ +node_modules/ +dist/ *.log .DS_Store diff --git a/.husky/.gitignore b/.husky/.gitignore new file mode 100644 index 0000000..31354ec --- /dev/null +++ b/.husky/.gitignore @@ -0,0 +1 @@ +_ diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 0000000..0bd658f --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx --no-install commitlint --edit "$1" diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..081bb42 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,6 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +[ -n "$CI" ] && exit 0 + +pnpx lint-staged diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..81c51f9 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "trailingComma": "none", + "semi": false +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..75b3e42 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "cSpell.words": ["ctripcorp", "wxml"] +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..56fb7fb --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,26 @@ +# Changelog + +**Changelog Tags** + +- ✨ Added +- 💥 Updated +- 🐛 Fixed +- 🚫 Deprecated +- 🗑 Removed +- 🛡️ Security + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +#### ✨ Added + +- **`wean`** + - `A` TODO + - `A` TODO +- **`wean-wxml`** + - `A` TODO + - `A` TODO diff --git a/bin/index.js b/bin/index.js deleted file mode 100644 index aa6fc8b..0000000 --- a/bin/index.js +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node - -require('../core/cli'); diff --git a/core/commander.js b/core/commander.js deleted file mode 100644 index 2a94ae5..0000000 --- a/core/commander.js +++ /dev/null @@ -1,16 +0,0 @@ -const { program } = require("commander") - -program - .arguments("[buildType]") - .option("-v, --version", "get version") - .option("-w, --watch", "wean watch", false) - .option("-m, --minify", "wean minify", false) - .option("-e, --entry ", "wean entry", "./app.json") - .option("-o, --output ", "wean output", "./dist/") - .option("-p, --public-url ", "wean public-url") - .action((buildType, command) => (command.t = buildType)) - .parse() - -const options = program.opts() - -module.exports = options diff --git a/core/packagers/berial.js b/core/packagers/berial.js deleted file mode 100644 index 54fc377..0000000 --- a/core/packagers/berial.js +++ /dev/null @@ -1,29 +0,0 @@ -const { manifest } = require("../package.js") -const { random } = require("./util") -const Path = require("path") - -module.exports = async function packBerial(asset, options) { - asset.output.jsx = ` - (function({C,directs,wx}, remotes) { - ${asset.output.jsx} - })(window,window.remotes); - ` - const edir = Path.resolve(Path.dirname(options.e)) - - const path = asset.path - .replace(edir, "") - .replace(/\\/g, "/") - .replace(".json", "") - - const prefix = options.p ? options.p : "/" - const basename = options.p ? `${"/" + Path.basename(options.p)}` : "" - const hash = prefix + asset.hash - manifest.push({ - id: asset.id, - info: asset.ast, - scripts: [hash + ".js", hash + ".jsx"], - styles: [hash + ".css"], - path: `${basename + path}`, - }) - return asset.output.jsx -} diff --git a/core/plugins/esbuild-component-tag.js b/core/plugins/esbuild-component-tag.js deleted file mode 100644 index 8c0b595..0000000 --- a/core/plugins/esbuild-component-tag.js +++ /dev/null @@ -1,18 +0,0 @@ -const fs = require('fs') - -// TODO: bit op - -module.exports = options => { - return { - name: 'componentTag', - setup(build) { - build.onLoad({ filter: /.+/ }, async ({ path }) => { - const source = await fs.promises.readFile(path, "utf8") - const code = source.replace('Component(', `Component('${options.id}', `).replace('Page(', `Page('${options.id}', `) - return { - contents: code, - } - }) - } - } -} \ No newline at end of file diff --git a/core/runtime/fre.js b/core/runtime/fre.js deleted file mode 100644 index b4149dc..0000000 --- a/core/runtime/fre.js +++ /dev/null @@ -1,522 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.fre = {})); -}(this, (function (exports) { 'use strict'; - - const updateElement = (dom, oldProps, newProps) => { - for (let name in Object.assign(Object.assign({}, oldProps), newProps)) { - let oldValue = oldProps[name]; - let newValue = newProps[name]; - - if (oldValue === newValue || name === "children") ; - else if (name === "style") { - if (isStr(newValue)) { - dom.setAttribute(name, newValue); - } - else { - for (const k in Object.assign(Object.assign({}, oldValue), newValue)) { - if (!(oldValue && newValue && oldValue[k] === newValue[k])) { - dom[name][k] = (newValue === null || newValue === void 0 ? void 0 : newValue[k]) || ""; - } - } - } - } - else if (name[0] === "o" && name[1] === "n") { - name = name.slice(2).toLowerCase(); - if (oldValue) - dom.removeEventListener(name, oldValue); - dom.addEventListener(name, newValue); - } - else if (name in dom && !(dom instanceof SVGElement)) { - dom[name] = newValue==='false'?false:newValue; - } - else if (newValue == null || newValue === false) { - dom.removeAttribute(name); - } - else { - dom.setAttribute(name, newValue); - } - } - }; - const createElement = (fiber) => { - const dom = fiber.type === "text" - ? document.createTextNode("") - : fiber.lane & 16 - ? document.createElementNS("http://www.w3.org/2000/svg", fiber.type) - : document.createElement(fiber.type); - updateElement(dom, {}, fiber.props); - return dom; - }; - - let cursor = 0; - const resetCursor = () => { - cursor = 0; - }; - const useState = (initState) => { - return useReducer(null, initState); - }; - const useReducer = (reducer, initState) => { - const [hook, current] = getHook(cursor++); - return [ - hook[0] || (hook[0] = initState), - (value) => { - hook[0] = reducer ? reducer(hook[0], value) : isFn(value) ? value(hook[0]) : value; - dispatchUpdate(current); - }, - ]; - }; - const useEffect = (cb, deps) => { - return effectImpl(cb, deps, 'effect'); - }; - const useLayout = (cb, deps) => { - return effectImpl(cb, deps, 'layout'); - }; - const effectImpl = (cb, deps, key) => { - const [hook, current] = getHook(cursor++); - if (isChanged(hook[1], deps)) { - hook[0] = cb; - hook[1] = deps; - current.hooks[key].push(hook); - } - }; - const useMemo = (cb, deps) => { - const hook = getHook(cursor++)[0]; - if (isChanged(hook[1], deps)) { - hook[1] = deps; - return (hook[0] = cb()); - } - return hook[0]; - }; - const useCallback = (cb, deps) => { - return useMemo(() => cb, deps); - }; - const useRef = (current) => { - return useMemo(() => ({ current }), []); - }; - const getHook = (cursor) => { - const current = getCurrentFiber(); - const hooks = current.hooks || (current.hooks = { list: [], effect: [], layout: [] }); - if (cursor >= hooks.list.length) { - hooks.list.push([]); - } - return [hooks.list[cursor], current]; - }; - const isChanged = (a, b) => { - return !a || a.length !== b.length || b.some((arg, index) => arg !== a[index]); - }; - - const queue = []; - const threshold = 1000 / 60; - const unit = []; - let deadline = 0; - const schedule = (cb) => unit.push(cb) === 1 && postMessage(); - const scheduleWork = (callback, fiber) => { - const job = { - callback, - fiber, - }; - queue.push(job); - schedule(flushWork); - }; - const postMessage = (() => { - const cb = () => unit.splice(0, unit.length).forEach((c) => c()); - if (typeof MessageChannel !== 'undefined') { - const { port1, port2 } = new MessageChannel(); - port1.onmessage = cb; - return () => port2.postMessage(null); - } - return () => setTimeout(cb); - })(); - const flushWork = () => { - deadline = getTime() + threshold; - let job = sortAndPeek(queue); - while (job && !shouldYield()) { - const callback = job.callback; - job.callback = null; - const next = callback(job.fiber); - if (next) { - job.callback = next; - } - else { - queue.shift(); - } - job = sortAndPeek(queue); - } - job && schedule(flushWork); - }; - const shouldYield = () => { - var _a, _b; - return ((_b = (_a = navigator) === null || _a === void 0 ? void 0 : _a.scheduling) === null || _b === void 0 ? void 0 : _b.isInputPending()) || getTime() >= deadline; - }; - const getTime = () => performance.now(); - const sortAndPeek = (queue) => queue[0]; - - let currentFiber; - let finish = null; - let deletes = []; - const render = (vnode, node, done) => { - const rootFiber = { - node, - props: { children: vnode }, - done, - }; - dispatchUpdate(rootFiber); - }; - const dispatchUpdate = (fiber) => { - if (fiber && !(fiber.lane & 32)) { - fiber.lane = 2 | 32; - fiber.sibling = null; - scheduleWork(reconcileWork,fiber); - } - }; - const reconcileWork = (WIP) => { - while (WIP && !shouldYield()) - WIP = reconcile(WIP); - if (WIP) - return reconcileWork.bind(null, WIP); - if (finish) - { - commitWork(finish) - }; - return null; - }; - const reconcile = (WIP) => { - isFn(WIP.type) ? updateHook(WIP) : updateHost(WIP); - if (WIP.child) - return WIP.child; - while (WIP) { - if (!finish && WIP.lane & 32) { - finish = WIP; - WIP.lane &= ~32; - return null; - } - if (WIP.sibling) - return WIP.sibling; - WIP = WIP.parent; - } - }; - const updateHook = (WIP) => { - currentFiber = WIP; - resetCursor(); - try { - var children = WIP.type(WIP.props); - } - catch (e) { - if (!!e && typeof e.then === 'function') { - const p = getParent(WIP); - if (!p.laziness) { - p.laziness = []; - children = p.props.fallback; - } - p.laziness.push(e); - } - else - throw e; - } - isStr(children) && (children = createText(children)); - reconcileChildren(WIP, children); - }; - const getParentNode = (WIP) => { - while ((WIP = WIP.parent)) { - if (!isFn(WIP.type)) - return WIP.node; - } - }; - const getParent = (WIP) => { - while ((WIP = WIP.parent)) { - if (WIP.type.name === 'Suspense') - return WIP; - } - }; - const updateHost = (WIP) => { - WIP.parentNode = getParentNode(WIP); - if (!WIP.node) { - if (WIP.type === "svg") - WIP.lane |= 16; - WIP.node = createElement(WIP); - } - reconcileChildren(WIP, WIP.props.children); - }; - const reconcileChildren = (WIP, children) => { - var _a; - let aCh = WIP.kids || [], bCh = (WIP.kids = arrayfy(children)), aHead = 0, bHead = 0, aTail = aCh.length - 1, bTail = bCh.length - 1, map = null, ch = Array(bCh.length), next = ((_a = WIP.sibling) === null || _a === void 0 ? void 0 : _a.node) ? WIP.sibling : null; - while (aHead <= aTail && bHead <= bTail) { - let c = null; - if (aCh[aHead] == null) { - aHead++; - } - else if (aCh[aTail] == null) { - aTail--; - } - else if (same(aCh[aHead], bCh[bHead])) { - c = bCh[bHead]; - clone(c, aCh[aHead]); - c.lane = 2; - ch[bHead] = c; - aHead++; - bHead++; - } - else if (same(aCh[aTail], bCh[bTail])) { - c = bCh[bTail]; - clone(c, aCh[aTail]); - c.lane = 2; - ch[bTail] = c; - aTail--; - bTail--; - } - else { - if (!map) { - map = new Map(); - for (let i = aHead; i <= aTail; i++) { - let k = getKey(aCh[i]); - k && map.set(k, i); - } - } - const key = getKey(bCh[bHead]); - if (map.has(key)) { - const oldKid = aCh[map.get(key)]; - c = bCh[bHead]; - clone(c, oldKid); - c.lane = 4; - c.after = aCh[aHead]; - ch[bHead] = c; - aCh[map.get(key)] = null; - } - else { - c = bCh[bHead]; - c.lane = 4; - c.node = null; - c.after = aCh[aHead]; - } - bHead++; - } - } - const after = bTail <= bCh.length - 1 ? ch[bTail + 1] : next; - while (bHead <= bTail) { - let c = bCh[bHead]; - if (c) { - c.lane = 4; - c.after = after; - c.node = null; - } - bHead++; - } - while (aHead <= aTail) { - let c = aCh[aHead]; - if (c) { - c.lane = 8; - deletes.push(c); - } - aHead++; - } - for (var i = 0, prev = null; i < bCh.length; i++) { - const child = bCh[i]; - if (child == null) - continue; - child.parent = WIP; - if (i > 0) { - prev.sibling = child; - } - else { - if (WIP.lane & 16) - child.lane |= 16; - WIP.child = child; - } - prev = child; - } - }; - function clone(a, b) { - a.lastProps = b.props; - a.node = b.node; - a.kids = b.kids; - a.hooks = b.hooks; - a.ref = b.ref; - } - const getKey = (vdom) => (vdom == null ? vdom : vdom.key); - const getType = (vdom) => (isFn(vdom.type) ? vdom.type.name : vdom.type); - const commitWork = (fiber) => { - var _a; - fiber.parent ? commit(fiber) : commit(fiber.child); - deletes.forEach(commit); - (_a = fiber.done) === null || _a === void 0 ? void 0 : _a.call(fiber); - deletes = []; - finish = null; - }; - function invokeHooks(fiber) { - const { hooks, lane, laziness } = fiber; - if (laziness) { - Promise.all(laziness).then(() => { - fiber.laziness = null; - dispatchUpdate(fiber); - }); - } - if (hooks) { - if (lane & 8) { - hooks.list.forEach(e => e[2] && e[2]()); - } - else { - side(hooks.layout); - schedule(() => side(hooks.effect)); - } - } - } - function wireKid(fiber) { - let kid = fiber; - while (isFn(kid.type)) - { - kid = kid.child - } - const after = fiber.after || kid.after; - kid.after = after; - kid.lane |= fiber.lane; - let s = kid.sibling; - while (s) { - s.after = after; - s.lane |= fiber.lane; - s = s.sibling; - } - return kid; - } - const commit = (fiber) => { - var _a; - if (!fiber) - return; - let { type, lane, parentNode, node, ref } = fiber; - if (isFn(type)) { - invokeHooks(fiber); - let kid = wireKid(fiber); - fiber.node = kid.node; - if (fiber.lane & 8) { - commit(kid); - } - else { - commit(fiber.child); - commit(fiber.sibling); - } - fiber.lane = 0; - return; - } - if (lane & 8) { - kidsRefer(fiber.kids); - parentNode.removeChild(fiber.node); - refer(ref, null); - fiber.lane = 0; - return; - } - if (lane & 2) { - updateElement(node, fiber.lastProps || {}, fiber.props); - } - if (lane & 4) { - parentNode.insertBefore(fiber.node, (_a = fiber.after) === null || _a === void 0 ? void 0 : _a.node); - } - fiber.lane = 0; - refer(ref, node); - commit(fiber.child); - commit(fiber.sibling); - }; - const same = (a, b) => { - return getKey(a) === getKey(b) && getType(a) === getType(b); - }; - const arrayfy = (arr) => (!arr ? [] : isArr(arr) ? arr : [arr]); - const refer = (ref, dom) => { - if (ref) - isFn(ref) ? ref(dom) : (ref.current = dom); - }; - const kidsRefer = (kids) => { - kids.forEach((kid) => { - kid.kids && kidsRefer(kid.kids); - refer(kid.ref, null); - }); - }; - const side = (effects) => { - effects.forEach(e => e[2] && e[2]()); - effects.forEach(e => e[2] = e[0]()); - effects.length = 0; - }; - const getCurrentFiber = () => currentFiber || null; - const isFn = (x) => typeof x === "function"; - const isStr = (s) => typeof s === "number" || typeof s === "string"; - const some = (v) => v != null && v !== false && v !== true; - - const h = function (type, attrs) { - const props = attrs || {}; - const key = props.key || null; - const ref = props.ref || null; - let children = arrayfy(props.children); - let simple = ''; - const len = arguments.length; - for (let i = 2; i < len; i++) { - let child = arguments[i]; - const end = i === len - 1; - const vnode = some(child) ? child : ''; - const str = isStr(vnode); - if (str) - simple += String(vnode); - if (simple && (!str || end)) { - children.push(createText(simple)); - simple = ''; - } - if (!str) - children.push(vnode); - } - while (children.some((v) => isArr(v))) { - children = [].concat(...children); - } - if (children.length) { - props.children = children.length === 1 ? children[0] : children; - } - delete props.key; - return { type, props, key, ref }; - }; - function createText(vnode) { - return { type: 'text', props: { nodeValue: vnode } }; - } - function Fragment(props) { - return props.children; - } - const isArr = Array.isArray; - - function lazy(loader) { - let p; - let comp; - let err; - return function Lazy(props) { - if (!p) { - p = loader(); - p.then(exports => (comp = exports.default || exports), e => (err = e)); - } - if (err) - throw err; - if (!comp) - throw p; - return h(comp, props); - }; - } - function Suspense(props) { - return props.children; - } - - const options = {}; - - exports.Fragment = Fragment; - exports.Suspense = Suspense; - exports.createElement = h; - exports.h = h; - exports.lazy = lazy; - exports.options = options; - exports.render = render; - exports.shouldYield = shouldYield; - exports.useCallback = useCallback; - exports.useEffect = useEffect; - exports.useLayout = useLayout; - exports.useLayoutEffect = useLayout; - exports.useMemo = useMemo; - exports.useReducer = useReducer; - exports.useRef = useRef; - exports.useState = useState; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); -//# sourceMappingURL=fre.umd.js.map diff --git a/core/runtime/wx.js b/core/runtime/wx.js deleted file mode 100644 index 1afc205..0000000 --- a/core/runtime/wx.js +++ /dev/null @@ -1,115 +0,0 @@ -window.wx = { - canIUse(str) { - return true; - }, - navigateTo: ({ url, duration }) => { - history.pushState({}, "", url); - }, - navigateBack({ delta }) { - history.go(-delta); - }, - reLaunch({ url }) { - window.onload = url; - }, - showToast: (props, timer = null, dom = null) => { - clearTimeout(timer); - dom = dom || document.createElement("div"); - fre.render(fre.h(window.Component.Toast, props), dom); - document.body.appendChild(dom); - timer = setTimeout(() => { - document.body.removeChild(dom); - }, props.duration); - }, - showModal: (props, dom = null) => { - dom = dom || document.createElement("div"); - props.dom = dom; - fre.render(fre.h(window.Component.Modal, props), dom); - document.body.appendChild(dom); - }, - setNavigationBarTitle(options) { - options = options || {}; - const fn = (args) => (document.titile = args.titile); - callfn(fn, { ...options }); - }, - setStorage(options) { - options = options || {}; - const fn = (args) => - localStorage.setItem(args.key, JSON.stringify(args.data)); - callfn(fn, { ...options }); - }, - setStorageSync(options) { - options = options || {}; - const fn = () => localStorage.setItem(args.key, JSON.stringify(args.data)); - callfn(fn, { ...options }); - }, - getStorage(options) { - options = options || {}; - const fn = (args) => { - return { data: localStorage.getItem(args.key) }; - }; - callfn(fn, { ...options }); - }, - getStorageSync(options) { - options = options || {}; - const fn = (args) => { - return { data: localStorage.getItem(args.key) }; - }; - callfn(fn, { ...options }); - }, - removeStorge(options) { - options = options || {}; - const fn = (args) => localStorage.removeItem(args.key); - callfn(fn, { ...options }); - }, - celarStorage(options) { - options = options || {}; - const fn = () => localStorage.clear(); - callfn(fn, { ...options }); - }, - request(data) { - const config = { method: data.method || "GET", mode: "cors" }; - if (data.headers) config.headers = data.headers; - if (data.data) config.data = JSON.stringify(data.data); - - fetch(data.url, config) - .then((res) => { - return res.json(); - }) - .then((res) => { - data.success && data.success({ data: res }); - }) - .catch((e) => { - data.fail && data.fail(e); - throw e; - }) - .finally(() => data.complate && data.complate()); - }, - getSystemInfo(options) { - options = options || {}; - const systemInfo = window.navigator; - let res = { - navHeight: 0, - statusBar: 0, - pixelRatio: window.devicePixelRatio, - screenWidth: screen.width, - screenHeight: screen.height, - windowWidth: screen.availWidth, - windowHeight: screen.availHeight, - language: navigator.language, - platform: navigator.platform, - }; - const fn = () => res; - callfn(fn, { ...options }); - }, - stopPullDownRefresh() {}, -}; -function callfn(fn, { success, fail, complete, ...args }) { - try { - const res = fn(args); - success && success(res); - } catch (err) { - fail && fail(err); - } finally { - complete && complete(status); - } -} diff --git a/demo/pages/index/dayjs.js b/demo/pages/index/dayjs.js deleted file mode 100644 index c677043..0000000 --- a/demo/pages/index/dayjs.js +++ /dev/null @@ -1,222 +0,0 @@ -var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; -function createCommonjsModule(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function(path, base) { - return commonjsRequire(path, base === void 0 || base === null ? module.path : base); - } - }, fn(module, module.exports), module.exports; -} -function commonjsRequire() { - throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); -} -var dayjs_min = createCommonjsModule(function(module, exports) { - !function(t, e) { - module.exports = e(); - }(commonjsGlobal, function() { - var t = "millisecond", e = "second", n = "minute", r = "hour", i = "day", s = "week", u = "month", a = "quarter", o = "year", f = "date", h = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, c = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, d = {name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_")}, $ = function(t2, e2, n2) { - var r2 = String(t2); - return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2; - }, l = {s: $, z: function(t2) { - var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60; - return (e2 <= 0 ? "+" : "-") + $(r2, 2, "0") + ":" + $(i2, 2, "0"); - }, m: function t2(e2, n2) { - if (e2.date() < n2.date()) - return -t2(n2, e2); - var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, u), s2 = n2 - i2 < 0, a2 = e2.clone().add(r2 + (s2 ? -1 : 1), u); - return +(-(r2 + (n2 - i2) / (s2 ? i2 - a2 : a2 - i2)) || 0); - }, a: function(t2) { - return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2); - }, p: function(h2) { - return {M: u, y: o, w: s, d: i, D: f, h: r, m: n, s: e, ms: t, Q: a}[h2] || String(h2 || "").toLowerCase().replace(/s$/, ""); - }, u: function(t2) { - return t2 === void 0; - }}, y = "en", M = {}; - M[y] = d; - var m = function(t2) { - return t2 instanceof S; - }, D = function(t2, e2, n2) { - var r2; - if (!t2) - return y; - if (typeof t2 == "string") - M[t2] && (r2 = t2), e2 && (M[t2] = e2, r2 = t2); - else { - var i2 = t2.name; - M[i2] = t2, r2 = i2; - } - return !n2 && r2 && (y = r2), r2 || !n2 && y; - }, v = function(t2, e2) { - if (m(t2)) - return t2.clone(); - var n2 = typeof e2 == "object" ? e2 : {}; - return n2.date = t2, n2.args = arguments, new S(n2); - }, g = l; - g.l = D, g.i = m, g.w = function(t2, e2) { - return v(t2, {locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset}); - }; - var S = function() { - function d2(t2) { - this.$L = D(t2.locale, null, true), this.parse(t2); - } - var $2 = d2.prototype; - return $2.parse = function(t2) { - this.$d = function(t3) { - var e2 = t3.date, n2 = t3.utc; - if (e2 === null) - return new Date(NaN); - if (g.u(e2)) - return new Date(); - if (e2 instanceof Date) - return new Date(e2); - if (typeof e2 == "string" && !/Z$/i.test(e2)) { - var r2 = e2.match(h); - if (r2) { - var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3); - return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2); - } - } - return new Date(e2); - }(t2), this.$x = t2.x || {}, this.init(); - }, $2.init = function() { - var t2 = this.$d; - this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds(); - }, $2.$utils = function() { - return g; - }, $2.isValid = function() { - return !(this.$d.toString() === "Invalid Date"); - }, $2.isSame = function(t2, e2) { - var n2 = v(t2); - return this.startOf(e2) <= n2 && n2 <= this.endOf(e2); - }, $2.isAfter = function(t2, e2) { - return v(t2) < this.startOf(e2); - }, $2.isBefore = function(t2, e2) { - return this.endOf(e2) < v(t2); - }, $2.$g = function(t2, e2, n2) { - return g.u(t2) ? this[e2] : this.set(n2, t2); - }, $2.unix = function() { - return Math.floor(this.valueOf() / 1e3); - }, $2.valueOf = function() { - return this.$d.getTime(); - }, $2.startOf = function(t2, a2) { - var h2 = this, c2 = !!g.u(a2) || a2, d3 = g.p(t2), $3 = function(t3, e2) { - var n2 = g.w(h2.$u ? Date.UTC(h2.$y, e2, t3) : new Date(h2.$y, e2, t3), h2); - return c2 ? n2 : n2.endOf(i); - }, l2 = function(t3, e2) { - return g.w(h2.toDate()[t3].apply(h2.toDate("s"), (c2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e2)), h2); - }, y2 = this.$W, M2 = this.$M, m2 = this.$D, D2 = "set" + (this.$u ? "UTC" : ""); - switch (d3) { - case o: - return c2 ? $3(1, 0) : $3(31, 11); - case u: - return c2 ? $3(1, M2) : $3(0, M2 + 1); - case s: - var v2 = this.$locale().weekStart || 0, S2 = (y2 < v2 ? y2 + 7 : y2) - v2; - return $3(c2 ? m2 - S2 : m2 + (6 - S2), M2); - case i: - case f: - return l2(D2 + "Hours", 0); - case r: - return l2(D2 + "Minutes", 1); - case n: - return l2(D2 + "Seconds", 2); - case e: - return l2(D2 + "Milliseconds", 3); - default: - return this.clone(); - } - }, $2.endOf = function(t2) { - return this.startOf(t2, false); - }, $2.$set = function(s2, a2) { - var h2, c2 = g.p(s2), d3 = "set" + (this.$u ? "UTC" : ""), $3 = (h2 = {}, h2[i] = d3 + "Date", h2[f] = d3 + "Date", h2[u] = d3 + "Month", h2[o] = d3 + "FullYear", h2[r] = d3 + "Hours", h2[n] = d3 + "Minutes", h2[e] = d3 + "Seconds", h2[t] = d3 + "Milliseconds", h2)[c2], l2 = c2 === i ? this.$D + (a2 - this.$W) : a2; - if (c2 === u || c2 === o) { - var y2 = this.clone().set(f, 1); - y2.$d[$3](l2), y2.init(), this.$d = y2.set(f, Math.min(this.$D, y2.daysInMonth())).$d; - } else - $3 && this.$d[$3](l2); - return this.init(), this; - }, $2.set = function(t2, e2) { - return this.clone().$set(t2, e2); - }, $2.get = function(t2) { - return this[g.p(t2)](); - }, $2.add = function(t2, a2) { - var f2, h2 = this; - t2 = Number(t2); - var c2 = g.p(a2), d3 = function(e2) { - var n2 = v(h2); - return g.w(n2.date(n2.date() + Math.round(e2 * t2)), h2); - }; - if (c2 === u) - return this.set(u, this.$M + t2); - if (c2 === o) - return this.set(o, this.$y + t2); - if (c2 === i) - return d3(1); - if (c2 === s) - return d3(7); - var $3 = (f2 = {}, f2[n] = 6e4, f2[r] = 36e5, f2[e] = 1e3, f2)[c2] || 1, l2 = this.$d.getTime() + t2 * $3; - return g.w(l2, this); - }, $2.subtract = function(t2, e2) { - return this.add(-1 * t2, e2); - }, $2.format = function(t2) { - var e2 = this; - if (!this.isValid()) - return "Invalid Date"; - var n2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", r2 = g.z(this), i2 = this.$locale(), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = i2.weekdays, f2 = i2.months, h2 = function(t3, r3, i3, s3) { - return t3 && (t3[r3] || t3(e2, n2)) || i3[r3].substr(0, s3); - }, d3 = function(t3) { - return g.s(s2 % 12 || 12, t3, "0"); - }, $3 = i2.meridiem || function(t3, e3, n3) { - var r3 = t3 < 12 ? "AM" : "PM"; - return n3 ? r3.toLowerCase() : r3; - }, l2 = {YY: String(this.$y).slice(-2), YYYY: this.$y, M: a2 + 1, MM: g.s(a2 + 1, 2, "0"), MMM: h2(i2.monthsShort, a2, f2, 3), MMMM: h2(f2, a2), D: this.$D, DD: g.s(this.$D, 2, "0"), d: String(this.$W), dd: h2(i2.weekdaysMin, this.$W, o2, 2), ddd: h2(i2.weekdaysShort, this.$W, o2, 3), dddd: o2[this.$W], H: String(s2), HH: g.s(s2, 2, "0"), h: d3(1), hh: d3(2), a: $3(s2, u2, true), A: $3(s2, u2, false), m: String(u2), mm: g.s(u2, 2, "0"), s: String(this.$s), ss: g.s(this.$s, 2, "0"), SSS: g.s(this.$ms, 3, "0"), Z: r2}; - return n2.replace(c, function(t3, e3) { - return e3 || l2[t3] || r2.replace(":", ""); - }); - }, $2.utcOffset = function() { - return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); - }, $2.diff = function(t2, f2, h2) { - var c2, d3 = g.p(f2), $3 = v(t2), l2 = 6e4 * ($3.utcOffset() - this.utcOffset()), y2 = this - $3, M2 = g.m(this, $3); - return M2 = (c2 = {}, c2[o] = M2 / 12, c2[u] = M2, c2[a] = M2 / 3, c2[s] = (y2 - l2) / 6048e5, c2[i] = (y2 - l2) / 864e5, c2[r] = y2 / 36e5, c2[n] = y2 / 6e4, c2[e] = y2 / 1e3, c2)[d3] || y2, h2 ? M2 : g.a(M2); - }, $2.daysInMonth = function() { - return this.endOf(u).$D; - }, $2.$locale = function() { - return M[this.$L]; - }, $2.locale = function(t2, e2) { - if (!t2) - return this.$L; - var n2 = this.clone(), r2 = D(t2, e2, true); - return r2 && (n2.$L = r2), n2; - }, $2.clone = function() { - return g.w(this.$d, this); - }, $2.toDate = function() { - return new Date(this.valueOf()); - }, $2.toJSON = function() { - return this.isValid() ? this.toISOString() : null; - }, $2.toISOString = function() { - return this.$d.toISOString(); - }, $2.toString = function() { - return this.$d.toUTCString(); - }, d2; - }(), p2 = S.prototype; - return v.prototype = p2, [["$ms", t], ["$s", e], ["$m", n], ["$H", r], ["$W", i], ["$M", u], ["$y", o], ["$D", f]].forEach(function(t2) { - p2[t2[1]] = function(e2) { - return this.$g(e2, t2[0], t2[1]); - }; - }), v.extend = function(t2, e2) { - return t2.$i || (t2(e2, S, v), t2.$i = true), v; - }, v.locale = D, v.isDayjs = m, v.unix = function(t2) { - return v(1e3 * t2); - }, v.en = M[y], v.Ls = M, v.p = {}, v; - }); -}); -var Ls = dayjs_min.Ls; -export default dayjs_min; -var en = dayjs_min.en; -var extend = dayjs_min.extend; -var isDayjs = dayjs_min.isDayjs; -var locale = dayjs_min.locale; -var p = dayjs_min.p; -var unix = dayjs_min.unix; -export {Ls, dayjs_min as __moduleExports, en, extend, isDayjs, locale, p, unix}; diff --git a/demo/pages/index/index.json b/demo/pages/index/index.json deleted file mode 100644 index 9c4231a..0000000 --- a/demo/pages/index/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "usingComponents": { - "use-item": "/pages/item/index" - } - -} \ No newline at end of file diff --git a/demo/1.wxss b/examples/hello-world/1.wxss similarity index 100% rename from demo/1.wxss rename to examples/hello-world/1.wxss diff --git a/demo/2.wxss b/examples/hello-world/2.wxss similarity index 100% rename from demo/2.wxss rename to examples/hello-world/2.wxss diff --git a/demo/README.md b/examples/hello-world/README.md similarity index 97% rename from demo/README.md rename to examples/hello-world/README.md index 2ba8dd0..8a0134c 100644 --- a/demo/README.md +++ b/examples/hello-world/README.md @@ -1,2 +1,3 @@ # minniprogam-todomvc + 微信小程序 todomvc diff --git a/demo/app.js b/examples/hello-world/app.js similarity index 59% rename from demo/app.js rename to examples/hello-world/app.js index b287dda..b157a2f 100644 --- a/demo/app.js +++ b/examples/hello-world/app.js @@ -1,7 +1,7 @@ App({ onLaunch: () => { wx.navigateTo({ - url: "/pages/index/index", + url: '/pages/index/index' }) - }, + } }) diff --git a/demo/app.json b/examples/hello-world/app.json similarity index 86% rename from demo/app.json rename to examples/hello-world/app.json index 4ae5424..047eb5c 100644 --- a/demo/app.json +++ b/examples/hello-world/app.json @@ -1,7 +1,5 @@ { - "pages": [ - "pages/index/index" - ], + "pages": ["pages/index/index"], "window": { "navigationBarBackgroundColor": "#fff", "navigationBarTextStyle": "black", @@ -11,4 +9,4 @@ "enablePullDownRefresh": true }, "sitemapLocation": "sitemap.json" -} \ No newline at end of file +} diff --git a/demo/app.wxss b/examples/hello-world/app.wxss similarity index 100% rename from demo/app.wxss rename to examples/hello-world/app.wxss diff --git a/demo/pages/index/a.js b/examples/hello-world/pages/index/a.js similarity index 98% rename from demo/pages/index/a.js rename to examples/hello-world/pages/index/a.js index a7fb135..eeb8472 100644 --- a/demo/pages/index/a.js +++ b/examples/hello-world/pages/index/a.js @@ -3,4 +3,3 @@ export function a() { } export default {} - diff --git a/examples/hello-world/pages/index/dayjs.js b/examples/hello-world/pages/index/dayjs.js new file mode 100644 index 0000000..dd89b63 --- /dev/null +++ b/examples/hello-world/pages/index/dayjs.js @@ -0,0 +1,474 @@ +var commonjsGlobal = + typeof globalThis !== 'undefined' + ? globalThis + : typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : {} +function createCommonjsModule(fn, basedir, module) { + return ( + (module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire( + path, + base === void 0 || base === null ? module.path : base + ) + } + }), + fn(module, module.exports), + module.exports + ) +} +function commonjsRequire() { + throw new Error( + 'Dynamic requires are not currently supported by @rollup/plugin-commonjs' + ) +} +var dayjs_min = createCommonjsModule(function (module, exports) { + !(function (t, e) { + module.exports = e() + })(commonjsGlobal, function () { + var t = 'millisecond', + e = 'second', + n = 'minute', + r = 'hour', + i = 'day', + s = 'week', + u = 'month', + a = 'quarter', + o = 'year', + f = 'date', + h = + /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, + c = + /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, + d = { + name: 'en', + weekdays: + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + months: + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ) + }, + $ = function (t2, e2, n2) { + var r2 = String(t2) + return !r2 || r2.length >= e2 + ? t2 + : '' + Array(e2 + 1 - r2.length).join(n2) + t2 + }, + l = { + s: $, + z: function (t2) { + var e2 = -t2.utcOffset(), + n2 = Math.abs(e2), + r2 = Math.floor(n2 / 60), + i2 = n2 % 60 + return (e2 <= 0 ? '+' : '-') + $(r2, 2, '0') + ':' + $(i2, 2, '0') + }, + m: function t2(e2, n2) { + if (e2.date() < n2.date()) return -t2(n2, e2) + var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), + i2 = e2.clone().add(r2, u), + s2 = n2 - i2 < 0, + a2 = e2.clone().add(r2 + (s2 ? -1 : 1), u) + return +(-(r2 + (n2 - i2) / (s2 ? i2 - a2 : a2 - i2)) || 0) + }, + a: function (t2) { + return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2) + }, + p: function (h2) { + return ( + { M: u, y: o, w: s, d: i, D: f, h: r, m: n, s: e, ms: t, Q: a }[ + h2 + ] || + String(h2 || '') + .toLowerCase() + .replace(/s$/, '') + ) + }, + u: function (t2) { + return t2 === void 0 + } + }, + y = 'en', + M = {} + M[y] = d + var m = function (t2) { + return t2 instanceof S + }, + D = function (t2, e2, n2) { + var r2 + if (!t2) return y + if (typeof t2 == 'string') + M[t2] && (r2 = t2), e2 && ((M[t2] = e2), (r2 = t2)) + else { + var i2 = t2.name + ;(M[i2] = t2), (r2 = i2) + } + return !n2 && r2 && (y = r2), r2 || (!n2 && y) + }, + v = function (t2, e2) { + if (m(t2)) return t2.clone() + var n2 = typeof e2 == 'object' ? e2 : {} + return (n2.date = t2), (n2.args = arguments), new S(n2) + }, + g = l + ;(g.l = D), + (g.i = m), + (g.w = function (t2, e2) { + return v(t2, { + locale: e2.$L, + utc: e2.$u, + x: e2.$x, + $offset: e2.$offset + }) + }) + var S = (function () { + function d2(t2) { + ;(this.$L = D(t2.locale, null, true)), this.parse(t2) + } + var $2 = d2.prototype + return ( + ($2.parse = function (t2) { + ;(this.$d = (function (t3) { + var e2 = t3.date, + n2 = t3.utc + if (e2 === null) return new Date(NaN) + if (g.u(e2)) return new Date() + if (e2 instanceof Date) return new Date(e2) + if (typeof e2 == 'string' && !/Z$/i.test(e2)) { + var r2 = e2.match(h) + if (r2) { + var i2 = r2[2] - 1 || 0, + s2 = (r2[7] || '0').substring(0, 3) + return n2 + ? new Date( + Date.UTC( + r2[1], + i2, + r2[3] || 1, + r2[4] || 0, + r2[5] || 0, + r2[6] || 0, + s2 + ) + ) + : new Date( + r2[1], + i2, + r2[3] || 1, + r2[4] || 0, + r2[5] || 0, + r2[6] || 0, + s2 + ) + } + } + return new Date(e2) + })(t2)), + (this.$x = t2.x || {}), + this.init() + }), + ($2.init = function () { + var t2 = this.$d + ;(this.$y = t2.getFullYear()), + (this.$M = t2.getMonth()), + (this.$D = t2.getDate()), + (this.$W = t2.getDay()), + (this.$H = t2.getHours()), + (this.$m = t2.getMinutes()), + (this.$s = t2.getSeconds()), + (this.$ms = t2.getMilliseconds()) + }), + ($2.$utils = function () { + return g + }), + ($2.isValid = function () { + return !(this.$d.toString() === 'Invalid Date') + }), + ($2.isSame = function (t2, e2) { + var n2 = v(t2) + return this.startOf(e2) <= n2 && n2 <= this.endOf(e2) + }), + ($2.isAfter = function (t2, e2) { + return v(t2) < this.startOf(e2) + }), + ($2.isBefore = function (t2, e2) { + return this.endOf(e2) < v(t2) + }), + ($2.$g = function (t2, e2, n2) { + return g.u(t2) ? this[e2] : this.set(n2, t2) + }), + ($2.unix = function () { + return Math.floor(this.valueOf() / 1e3) + }), + ($2.valueOf = function () { + return this.$d.getTime() + }), + ($2.startOf = function (t2, a2) { + var h2 = this, + c2 = !!g.u(a2) || a2, + d3 = g.p(t2), + $3 = function (t3, e2) { + var n2 = g.w( + h2.$u ? Date.UTC(h2.$y, e2, t3) : new Date(h2.$y, e2, t3), + h2 + ) + return c2 ? n2 : n2.endOf(i) + }, + l2 = function (t3, e2) { + return g.w( + h2 + .toDate() + [t3].apply( + h2.toDate('s'), + (c2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e2) + ), + h2 + ) + }, + y2 = this.$W, + M2 = this.$M, + m2 = this.$D, + D2 = 'set' + (this.$u ? 'UTC' : '') + switch (d3) { + case o: + return c2 ? $3(1, 0) : $3(31, 11) + case u: + return c2 ? $3(1, M2) : $3(0, M2 + 1) + case s: + var v2 = this.$locale().weekStart || 0, + S2 = (y2 < v2 ? y2 + 7 : y2) - v2 + return $3(c2 ? m2 - S2 : m2 + (6 - S2), M2) + case i: + case f: + return l2(D2 + 'Hours', 0) + case r: + return l2(D2 + 'Minutes', 1) + case n: + return l2(D2 + 'Seconds', 2) + case e: + return l2(D2 + 'Milliseconds', 3) + default: + return this.clone() + } + }), + ($2.endOf = function (t2) { + return this.startOf(t2, false) + }), + ($2.$set = function (s2, a2) { + var h2, + c2 = g.p(s2), + d3 = 'set' + (this.$u ? 'UTC' : ''), + $3 = ((h2 = {}), + (h2[i] = d3 + 'Date'), + (h2[f] = d3 + 'Date'), + (h2[u] = d3 + 'Month'), + (h2[o] = d3 + 'FullYear'), + (h2[r] = d3 + 'Hours'), + (h2[n] = d3 + 'Minutes'), + (h2[e] = d3 + 'Seconds'), + (h2[t] = d3 + 'Milliseconds'), + h2)[c2], + l2 = c2 === i ? this.$D + (a2 - this.$W) : a2 + if (c2 === u || c2 === o) { + var y2 = this.clone().set(f, 1) + y2.$d[$3](l2), + y2.init(), + (this.$d = y2.set(f, Math.min(this.$D, y2.daysInMonth())).$d) + } else $3 && this.$d[$3](l2) + return this.init(), this + }), + ($2.set = function (t2, e2) { + return this.clone().$set(t2, e2) + }), + ($2.get = function (t2) { + return this[g.p(t2)]() + }), + ($2.add = function (t2, a2) { + var f2, + h2 = this + t2 = Number(t2) + var c2 = g.p(a2), + d3 = function (e2) { + var n2 = v(h2) + return g.w(n2.date(n2.date() + Math.round(e2 * t2)), h2) + } + if (c2 === u) return this.set(u, this.$M + t2) + if (c2 === o) return this.set(o, this.$y + t2) + if (c2 === i) return d3(1) + if (c2 === s) return d3(7) + var $3 = + ((f2 = {}), (f2[n] = 6e4), (f2[r] = 36e5), (f2[e] = 1e3), f2)[ + c2 + ] || 1, + l2 = this.$d.getTime() + t2 * $3 + return g.w(l2, this) + }), + ($2.subtract = function (t2, e2) { + return this.add(-1 * t2, e2) + }), + ($2.format = function (t2) { + var e2 = this + if (!this.isValid()) return 'Invalid Date' + var n2 = t2 || 'YYYY-MM-DDTHH:mm:ssZ', + r2 = g.z(this), + i2 = this.$locale(), + s2 = this.$H, + u2 = this.$m, + a2 = this.$M, + o2 = i2.weekdays, + f2 = i2.months, + h2 = function (t3, r3, i3, s3) { + return (t3 && (t3[r3] || t3(e2, n2))) || i3[r3].substr(0, s3) + }, + d3 = function (t3) { + return g.s(s2 % 12 || 12, t3, '0') + }, + $3 = + i2.meridiem || + function (t3, e3, n3) { + var r3 = t3 < 12 ? 'AM' : 'PM' + return n3 ? r3.toLowerCase() : r3 + }, + l2 = { + YY: String(this.$y).slice(-2), + YYYY: this.$y, + M: a2 + 1, + MM: g.s(a2 + 1, 2, '0'), + MMM: h2(i2.monthsShort, a2, f2, 3), + MMMM: h2(f2, a2), + D: this.$D, + DD: g.s(this.$D, 2, '0'), + d: String(this.$W), + dd: h2(i2.weekdaysMin, this.$W, o2, 2), + ddd: h2(i2.weekdaysShort, this.$W, o2, 3), + dddd: o2[this.$W], + H: String(s2), + HH: g.s(s2, 2, '0'), + h: d3(1), + hh: d3(2), + a: $3(s2, u2, true), + A: $3(s2, u2, false), + m: String(u2), + mm: g.s(u2, 2, '0'), + s: String(this.$s), + ss: g.s(this.$s, 2, '0'), + SSS: g.s(this.$ms, 3, '0'), + Z: r2 + } + return n2.replace(c, function (t3, e3) { + return e3 || l2[t3] || r2.replace(':', '') + }) + }), + ($2.utcOffset = function () { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15) + }), + ($2.diff = function (t2, f2, h2) { + var c2, + d3 = g.p(f2), + $3 = v(t2), + l2 = 6e4 * ($3.utcOffset() - this.utcOffset()), + y2 = this - $3, + M2 = g.m(this, $3) + return ( + (M2 = + ((c2 = {}), + (c2[o] = M2 / 12), + (c2[u] = M2), + (c2[a] = M2 / 3), + (c2[s] = (y2 - l2) / 6048e5), + (c2[i] = (y2 - l2) / 864e5), + (c2[r] = y2 / 36e5), + (c2[n] = y2 / 6e4), + (c2[e] = y2 / 1e3), + c2)[d3] || y2), + h2 ? M2 : g.a(M2) + ) + }), + ($2.daysInMonth = function () { + return this.endOf(u).$D + }), + ($2.$locale = function () { + return M[this.$L] + }), + ($2.locale = function (t2, e2) { + if (!t2) return this.$L + var n2 = this.clone(), + r2 = D(t2, e2, true) + return r2 && (n2.$L = r2), n2 + }), + ($2.clone = function () { + return g.w(this.$d, this) + }), + ($2.toDate = function () { + return new Date(this.valueOf()) + }), + ($2.toJSON = function () { + return this.isValid() ? this.toISOString() : null + }), + ($2.toISOString = function () { + return this.$d.toISOString() + }), + ($2.toString = function () { + return this.$d.toUTCString() + }), + d2 + ) + })(), + p2 = S.prototype + return ( + (v.prototype = p2), + [ + ['$ms', t], + ['$s', e], + ['$m', n], + ['$H', r], + ['$W', i], + ['$M', u], + ['$y', o], + ['$D', f] + ].forEach(function (t2) { + p2[t2[1]] = function (e2) { + return this.$g(e2, t2[0], t2[1]) + } + }), + (v.extend = function (t2, e2) { + return t2.$i || (t2(e2, S, v), (t2.$i = true)), v + }), + (v.locale = D), + (v.isDayjs = m), + (v.unix = function (t2) { + return v(1e3 * t2) + }), + (v.en = M[y]), + (v.Ls = M), + (v.p = {}), + v + ) + }) +}) +var Ls = dayjs_min.Ls +export default dayjs_min +var en = dayjs_min.en +var extend = dayjs_min.extend +var isDayjs = dayjs_min.isDayjs +var locale = dayjs_min.locale +var p = dayjs_min.p +var unix = dayjs_min.unix +export { + Ls, + dayjs_min as __moduleExports, + en, + extend, + isDayjs, + locale, + p, + unix +} diff --git a/demo/pages/index/footer.wxml b/examples/hello-world/pages/index/footer.wxml similarity index 100% rename from demo/pages/index/footer.wxml rename to examples/hello-world/pages/index/footer.wxml diff --git a/demo/pages/index/index.js b/examples/hello-world/pages/index/index.js similarity index 88% rename from demo/pages/index/index.js rename to examples/hello-world/pages/index/index.js index dd18c68..ede7125 100644 --- a/demo/pages/index/index.js +++ b/examples/hello-world/pages/index/index.js @@ -1,9 +1,9 @@ -import {a} from './a.js' +import { a } from './a.js' import d from './a.js' import dayjs from './dayjs.js' console.log(dayjs) -function b(){ +function b() { a() } b() @@ -12,13 +12,13 @@ const app = getApp() Page({ data: { - name: "", - editname: "", + name: '', + editname: '', list: [], leftcount: 0, - a:true, - b:true, - c:false + a: true, + b: true, + c: false }, onShow: function () { @@ -49,9 +49,9 @@ Page({ ? this.data.list[this.data.list.length - 1].id + 1 : 0, name: addtodo, - completed: false, + completed: false }) - this.data.name = "" + this.data.name = '' this.setleftcount() this.setData(this.data) }, @@ -62,8 +62,8 @@ Page({ }, reset() { - this.data.name = "" - this.data.editname = "" + this.data.name = '' + this.data.editname = '' this.setData(this.data) }, @@ -85,5 +85,5 @@ Page({ this.data.leftcount = this.data.list.filter( (item) => !item.completed ).length - }, + } }) diff --git a/examples/hello-world/pages/index/index.json b/examples/hello-world/pages/index/index.json new file mode 100644 index 0000000..7396493 --- /dev/null +++ b/examples/hello-world/pages/index/index.json @@ -0,0 +1,5 @@ +{ + "usingComponents": { + "use-item": "/pages/item/index" + } +} diff --git a/demo/pages/index/index.wxml b/examples/hello-world/pages/index/index.wxml similarity index 100% rename from demo/pages/index/index.wxml rename to examples/hello-world/pages/index/index.wxml diff --git a/demo/pages/index/index.wxss b/examples/hello-world/pages/index/index.wxss similarity index 100% rename from demo/pages/index/index.wxss rename to examples/hello-world/pages/index/index.wxss diff --git a/demo/pages/item/index.js b/examples/hello-world/pages/item/index.js similarity index 72% rename from demo/pages/item/index.js rename to examples/hello-world/pages/item/index.js index d52680d..dd2d75b 100644 --- a/demo/pages/item/index.js +++ b/examples/hello-world/pages/item/index.js @@ -4,16 +4,16 @@ Component({ properties: { item: { type: Object, - value: {}, - }, + value: {} + } }, methods: { clickIco(e) { - this.triggerEvent("myevent", e) + this.triggerEvent('myevent', e) }, clear(e) { - this.triggerEvent("clear", e) - }, + this.triggerEvent('clear', e) + } }, lifetimes: { attached: function () { @@ -21,6 +21,6 @@ Component({ }, detached: function () { // 在组件实例被从页面节点树移除时执行 - }, - }, + } + } }) diff --git a/demo/pages/item/index.json b/examples/hello-world/pages/item/index.json similarity index 100% rename from demo/pages/item/index.json rename to examples/hello-world/pages/item/index.json diff --git a/demo/pages/item/index.wxml b/examples/hello-world/pages/item/index.wxml similarity index 100% rename from demo/pages/item/index.wxml rename to examples/hello-world/pages/item/index.wxml diff --git a/demo/pages/item/index.wxss b/examples/hello-world/pages/item/index.wxss similarity index 100% rename from demo/pages/item/index.wxss rename to examples/hello-world/pages/item/index.wxss diff --git a/demo/sitemap.json b/examples/hello-world/sitemap.json similarity index 64% rename from demo/sitemap.json rename to examples/hello-world/sitemap.json index ca02add..9230ad8 100644 --- a/demo/sitemap.json +++ b/examples/hello-world/sitemap.json @@ -1,7 +1,9 @@ { "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", - "rules": [{ - "action": "allow", - "page": "*" - }] -} \ No newline at end of file + "rules": [ + { + "action": "allow", + "page": "*" + } + ] +} diff --git a/examples/with-xxx/.gitkeep b/examples/with-xxx/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f6279a1..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1361 +0,0 @@ -{ - "name": "wean", - "version": "0.0.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@arr/every": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", - "integrity": "sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==", - "dev": true - }, - "@polka/url": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz", - "integrity": "sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==", - "dev": true - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "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" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "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 - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.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": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "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" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "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" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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": "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" - } - } - } - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.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 - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "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 - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "cross-fetch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.0.tgz", - "integrity": "sha512-a+yso9lSpXQI9DH+YjAu/m0dVfP8IVoZDPBLLFcvGpeq3KHNdikkekTOdkHiXEuTq4GBOeO0MfWkE40yzF1w7g==", - "dev": true, - "requires": { - "node-fetch": "2.6.1" - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "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 - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "dev": true, - "requires": { - "jake": "^10.6.1" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "esbuild": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.5.tgz", - "integrity": "sha512-vcuP53pA5XiwUU4FnlXM+2PnVjTfHGthM7uP1gtp+9yfheGvFFbq/KyuESThmtoHPUrfZH5JpxGVJIFDVD1Egw==", - "dev": true - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "dev": true, - "requires": { - "minimatch": "^3.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" - } - }, - "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 - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "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" - } - }, - "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "requires": { - "ini": "1.3.7" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "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-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - } - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true - }, - "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-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "dev": true, - "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } - } - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "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" - } - }, - "matchit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/matchit/-/matchit-1.1.0.tgz", - "integrity": "sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA==", - "dev": true, - "requires": { - "@arr/every": "^1.0.0" - } - }, - "md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "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 - }, - "nanoid": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.21.tgz", - "integrity": "sha512-A6oZraK4DJkAOICstsGH98dvycPr/4GGDH7ZWKmMdd3vGcOurZ6JmWFUt0DA5bzrrn2FrUjmv6mFNWvv8jpppA==", - "dev": true - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, - "nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", - "dev": true, - "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "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 - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "polka": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/polka/-/polka-0.5.2.tgz", - "integrity": "sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==", - "dev": true, - "requires": { - "@polka/url": "^0.5.0", - "trouter": "^2.0.1" - } - }, - "postcss": { - "version": "8.2.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz", - "integrity": "sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==", - "dev": true, - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.20", - "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 - } - } - }, - "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "sirv": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.11.tgz", - "integrity": "sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==", - "dev": true, - "requires": { - "@polka/url": "^1.0.0-next.9", - "mime": "^2.3.1", - "totalist": "^1.0.0" - }, - "dependencies": { - "@polka/url": { - "version": "1.0.0-next.11", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.11.tgz", - "integrity": "sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==", - "dev": true - } - } - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "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 - }, - "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 - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "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" - } - }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "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 - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - } - }, - "trouter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/trouter/-/trouter-2.0.1.tgz", - "integrity": "sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==", - "dev": true, - "requires": { - "matchit": "^1.0.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dev": true, - "requires": { - "debug": "^2.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.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": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "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" - } - } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - } - } -} diff --git a/package.json b/package.json index 04ff0c7..6e76061 100644 --- a/package.json +++ b/package.json @@ -1,37 +1,27 @@ { - "name": "wean", - "version": "0.0.1", - "description": "", - "main": "index.js", - "bin": { - "wean": "bin/index.js" - }, "scripts": { - "dev": "wean -e ./demo/app.json -o ./dist/", - "build": "wean build -e ./demo/app.json -o ./dist/ -m", - "debug": "node --inspect ./core/cli.js -e ./demo/app.json -o ./dist/" + "prepare": "is-ci || husky install", + "dev": "pnpm dev --filter @wean/cli", + "build": "pnpm build --filter @wean/cli", + "debug": "pnpm debug --filter @wean/cli" + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] }, - "repository": { - "type": "git", - "url": "git@github.com/ctripcorp/wean.git" + "lint-staged": { + "*.{js,ts,tsx,json,md}": "prettier --write", + "package.json": "pnpx sort-package-json" }, - "keywords": [], - "author": "", - "license": "MIT", "devDependencies": { - "chalk": "^4.1.0", - "chokidar": "^3.5.1", - "commander": "^7.1.0", - "cross-fetch": "^3.0.6", - "ejs": "^3.1.6", - "esbuild": "^0.12.1", - "md5": "^2.3.0", - "nanoid": "^3.1.21", - "nodemon": "^2.0.6", - "polka": "^0.5.2", - "postcss": "^8.2.2", - "postcss-selector-parser": "^6.0.4", - "prettier": "^2.2.1", - "sirv": "^1.0.10" + "@changesets/cli": "2.16.0", + "@commitlint/cli": "12.1.4", + "@commitlint/config-conventional": "12.1.4", + "husky": "6.0.0", + "is-ci": "3.0.0", + "lint-staged": "11.0.0", + "prettier": "2.3.1", + "sort-package-json": "1.50.0" } } diff --git a/packages/wean-cli/README.md b/packages/wean-cli/README.md new file mode 100644 index 0000000..e332fd8 --- /dev/null +++ b/packages/wean-cli/README.md @@ -0,0 +1,3 @@ +# @wean/cli + +🍀 小程序编译器前端的脚手架 diff --git a/packages/wean-cli/bin/wean.js b/packages/wean-cli/bin/wean.js new file mode 100644 index 0000000..ad3e7f5 --- /dev/null +++ b/packages/wean-cli/bin/wean.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +require('../../wean/src/cli') diff --git a/packages/wean-cli/package.json b/packages/wean-cli/package.json new file mode 100644 index 0000000..f53a3c3 --- /dev/null +++ b/packages/wean-cli/package.json @@ -0,0 +1,24 @@ +{ + "name": "@wean/cli", + "version": "0.0.1", + "description": "🍀 一个小程序编译器前端的脚手架", + "license": "MIT", + "main": "src/index.js", + "bin": { + "wean": "bin/wean.js" + }, + "scripts": { + "dev": "wean -e ./demo/app.json -o ./dist/", + "build": "wean build -e ./demo/app.json -o ./dist/ -m", + "debug": "node --inspect ./core/cli.js -e ./demo/app.json -o ./dist/" + }, + "dependencies": { + "chalk": "4.1.1", + "chokidar": "3.5.1", + "commander": "7.2.0", + "ejs": "3.1.6", + "polka": "0.5.2", + "sirv": "1.0.12", + "wean": "workspace:0.0.1" + } +} diff --git a/core/cli.js b/packages/wean-cli/src/cli.js similarity index 73% rename from core/cli.js rename to packages/wean-cli/src/cli.js index 2cc1cf3..b3ac20c 100644 --- a/core/cli.js +++ b/packages/wean-cli/src/cli.js @@ -1,10 +1,10 @@ -const chokidar = require("chokidar") -const chalk = require("chalk") -const Path = require("path") -const build = require("./bundle") -const pack = require("./package") -const serve = require("./serve") -const argv = require("./commander") +const chokidar = require('chokidar') +const chalk = require('chalk') +const Path = require('path') +// const build = require('./bundle') +// const pack = require('./package') +// const serve = require('./commands/serve') +const argv = require('./commander') const BUILD_TYPE = { BUILD: 'build' } @@ -13,11 +13,11 @@ async function run(argv) { const options = { e: argv.entry, o: argv.output, - i: "/", + i: '/', w: argv.watch, m: argv.minify, p: argv.publicUrl, - t: argv.t, + t: argv.t } start(options) if (options.w) { @@ -27,10 +27,10 @@ async function run(argv) { persistent: true, awaitWriteFinish: { stabilityThreshold: 500, - pollInterval: 500, - }, + pollInterval: 500 + } }) - .on("change", (path) => { + .on('change', (path) => { console.log(chalk.green(`rebuild ${path}`)) start(options) }) @@ -44,7 +44,7 @@ async function start(options) { console.log(chalk.green(`bundle success`)) await pack(adt, options) const end = Date.now() - console.log(chalk.green("package success")) + console.log(chalk.green('package success')) console.log(chalk.blue(`compile total time ${end - start}ms`)) // if (options.t === BUILD_TYPE.BUILD) { // console.log(chalk.green("build success")) diff --git a/packages/wean-cli/src/commander.js b/packages/wean-cli/src/commander.js new file mode 100644 index 0000000..d18aac2 --- /dev/null +++ b/packages/wean-cli/src/commander.js @@ -0,0 +1,16 @@ +const { program } = require('commander') + +program + .arguments('[buildType]') + .option('-v, --version', 'get version') + .option('-w, --watch', 'wean watch', false) + .option('-m, --minify', 'wean minify', false) + .option('-e, --entry ', 'wean entry', './app.json') + .option('-o, --output ', 'wean output', './dist/') + .option('-p, --public-url ', 'wean public-url') + .action((buildType, command) => (command.t = buildType)) + .parse() + +const options = program.opts() + +module.exports = options diff --git a/packages/wean-cli/src/commands/build.js b/packages/wean-cli/src/commands/build.js new file mode 100644 index 0000000..6f7bc4e --- /dev/null +++ b/packages/wean-cli/src/commands/build.js @@ -0,0 +1,5 @@ +const wean = require('wean') + +module.exports = function build(main, options) { + wean.build(main, options) +} diff --git a/packages/wean-cli/src/commands/pack.js b/packages/wean-cli/src/commands/pack.js new file mode 100644 index 0000000..dc44231 --- /dev/null +++ b/packages/wean-cli/src/commands/pack.js @@ -0,0 +1,5 @@ +const wean = require('wean') + +module.exports = function pack(asset, options) { + wean.pack(asset, options) +} diff --git a/core/serve.js b/packages/wean-cli/src/commands/serve.js similarity index 68% rename from core/serve.js rename to packages/wean-cli/src/commands/serve.js index d57bc2b..57c3249 100644 --- a/core/serve.js +++ b/packages/wean-cli/src/commands/serve.js @@ -1,13 +1,13 @@ -const polka = require("polka") +const polka = require('polka') const { PORT = 1234 } = process.env -const chalk = require("chalk") +const chalk = require('chalk') module.exports = function serve(options) { const app = polka() - .use(require("sirv")(options.o)) + .use(require('sirv')(options.o)) .use(redirect) - .get("*", (req, res) => { - res.redirect("/") + .get('*', (req, res) => { + res.redirect('/') }) .listen(PORT, (err) => { if (err) throw err @@ -21,8 +21,8 @@ const redirect = function (req, res, next) { let str = `Redirecting to ${location}` res.writeHead(302, { Location: location, - "Content-Type": "text/plain", - "Content-Length": str.length, + 'Content-Type': 'text/plain', + 'Content-Length': str.length }) res.end(str) } diff --git a/packages/wean-cli/src/index.js b/packages/wean-cli/src/index.js new file mode 100644 index 0000000..7358d29 --- /dev/null +++ b/packages/wean-cli/src/index.js @@ -0,0 +1,6 @@ +const { build, pack } = require('wean') + +module.exports = { + build, + pack +} diff --git a/packages/wean-wxml/README.md b/packages/wean-wxml/README.md new file mode 100644 index 0000000..0e07673 --- /dev/null +++ b/packages/wean-wxml/README.md @@ -0,0 +1,3 @@ +# @wean/wxml + +🍀 小程序编译器前端的 wxml 解析器 diff --git a/packages/wean-wxml/package.json b/packages/wean-wxml/package.json new file mode 100644 index 0000000..a88f83b --- /dev/null +++ b/packages/wean-wxml/package.json @@ -0,0 +1,9 @@ +{ + "name": "@wean/wxml", + "version": "0.0.1", + "description": "🍀 小程序编译器前端的wxml解析器", + "main": "src/index.js", + "files": [ + "src" + ] +} diff --git a/wxml/generate.js b/packages/wean-wxml/src/generate.js similarity index 66% rename from wxml/generate.js rename to packages/wean-wxml/src/generate.js index c79fb4c..ee83186 100644 --- a/wxml/generate.js +++ b/packages/wean-wxml/src/generate.js @@ -1,6 +1,6 @@ const eventMap = { - tap: "onClick", - confirm: "onKeyDown", + tap: 'onClick', + confirm: 'onKeyDown' } let clock = 0 @@ -21,14 +21,14 @@ function generate(asset) { const block = generateNode(kid, state, asset, next) state.blocks[clock++] = block } - return { imports:state.imports, blocks: state.blocks } + return { imports: state.imports, blocks: state.blocks } } function generateNode(node, state, asset, nextNode) { - if (typeof node === "string") { - let compiled = compileExpression(node, "text") + if (typeof node === 'string') { + let compiled = compileExpression(node, 'text') return `${compiled}` - } else if (node.name === "template") { + } else if (node.name === 'template') { const { is, name } = node.attributes if (is) { state.blocks[is] = '' @@ -36,10 +36,9 @@ function generateNode(node, state, asset, nextNode) { } else { let code = node.children .map((item) => generateNode(item, state, asset)) - .join("\n") + .join('\n') state.blocks[name] = code return code - } } else { let code = `<${titleCase(node.name)} ` @@ -49,11 +48,11 @@ function generateNode(node, state, asset, nextNode) { .map((item, index) => generateNode(item, state, asset, node.children[index + 1]) ) - .join("\n")}` + .join('\n')}` } code += `` - if (node.name === "import") code = "" + if (node.name === 'import') code = '' if (node.directives) { code = generateDirect(node, code, nextNode) } @@ -61,51 +60,51 @@ function generateNode(node, state, asset, nextNode) { } } -let ifcode = "" +let ifcode = '' function generateDirect(node, code, next) { for (let i = 0; i < node.directives.length; i++) { const [name, value] = node.directives[i] - const compiled = compileExpression(value, "direct") - if (code[0] === "{") { + const compiled = compileExpression(value, 'direct') + if (code[0] === '{') { code = `<>${code}` } - if (name === "wx:for") { + if (name === 'wx:for') { const item = findItem(node) code = `{$for( - ${compiled}, + ${compiled}, (${item}) => (${code}) )}` } - if (name === "wx:if") { + if (name === 'wx:if') { ifcode += `{${compiled}?${code}:` if (isElse(next)) { continue } else { - code = ifcode + "null}" - ifcode = "" + code = ifcode + 'null}' + ifcode = '' } } - if (name === "wx:elseif") { + if (name === 'wx:elseif') { ifcode += `${compiled}?${code}:` if (isElse(next)) { continue } else { - code = ifcode + "null}" - ifcode = "" + code = ifcode + 'null}' + ifcode = '' } } - if (name === "wx:else") { - if (ifcode === "") { + if (name === 'wx:else') { + if (ifcode === '') { ifcode += `{!${compiled}?${code}:null}` } else { ifcode += `${code}}` } code = ifcode - ifcode = "" + ifcode = '' } return code } @@ -114,31 +113,31 @@ function generateDirect(node, code, next) { function isElse(node) { if (node) { for (const name in node.attributes) { - if (name.indexOf("else") > -1) return true + if (name.indexOf('else') > -1) return true } } return false } function findItem(node) { - const item = node.directives.find((item) => item[0] === "wx:for-item") - return item ? item[1] : "item" + const item = node.directives.find((item) => item[0] === 'wx:for-item') + return item ? item[1] : 'item' } function generateProps(node, state, asset) { - let code = "" + let code = '' for (let name in node.attributes) { const value = node.attributes[name] - if (name.startsWith("wx:")) { + if (name.startsWith('wx:')) { node.directives = node.directives || [] node.directives.push([name, value]) - } else if (name.startsWith("bind")) { + } else if (name.startsWith('bind')) { if (state.methods.indexOf(value) < 0) { state.methods.push(value) } - const n = name.replace("bind:", "").replace("bind", "") + const n = name.replace('bind:', '').replace('bind', '') code += ` ${eventMap[n] || n}={e => ${value}(e)} ` - } else if (node.name === "import") { + } else if (node.name === 'import') { state.imports.push(value) } else { let compiled = compileExpression(value, node.type) @@ -151,26 +150,26 @@ function generateProps(node, state, asset) { function compileExpression(expression, type) { const exps = expression.match(/{{(.+)}}/g) switch (type) { - case "direct": - return expression.replace(/{{/g, "").replace(/}}/g, "") - case "text": + case 'direct': + return expression.replace(/{{/g, '').replace(/}}/g, '') + case 'text': return exps - ? expression.replace(/{{/g, "{").replace(/}}/g, "}") + ? expression.replace(/{{/g, '{').replace(/}}/g, '}') : expression - case "component": + case 'component': if (!exps) return `"${expression}"` - return expression.replace(/{{/g, "{").replace(/}}/g, "}") - case "node": + return expression.replace(/{{/g, '{').replace(/}}/g, '}') + case 'node': if (!exps) return `"${expression}"` - expression = expression.replace(/{{/g, "${").replace(/}}/g, "}") - return expression.indexOf("$") > -1 - ? "{`" + expression + "`}" + expression = expression.replace(/{{/g, '${').replace(/}}/g, '}') + return expression.indexOf('$') > -1 + ? '{`' + expression + '`}' : expression } } const titleCase = (str) => - "remotes." + + 'remotes.' + str.slice(0, 1).toUpperCase() + str.replace(/\-(\w)/g, (_, letter) => letter.toUpperCase()).slice(1) diff --git a/packages/wean-wxml/src/index.js b/packages/wean-wxml/src/index.js new file mode 100644 index 0000000..8a86aaf --- /dev/null +++ b/packages/wean-wxml/src/index.js @@ -0,0 +1,9 @@ +const parse = require('./parse') +const lex = require('./lex') +const generate = require('./generate') + +module.exports = { + lex, + parse, + generate +} diff --git a/wxml/lex.js b/packages/wean-wxml/src/lex.js similarity index 98% rename from wxml/lex.js rename to packages/wean-wxml/src/lex.js index 23b94cd..6053a77 100644 --- a/wxml/lex.js +++ b/packages/wean-wxml/src/lex.js @@ -161,7 +161,7 @@ function lexAttributes(token, state) { } next() let quoteType = ' ' - if (char === "'" || char === "\"") { + if (char === "'" || char === '"') { quoteType = char next() } diff --git a/wxml/parse.js b/packages/wean-wxml/src/parse.js similarity index 85% rename from wxml/parse.js rename to packages/wean-wxml/src/parse.js index 811773d..156619b 100644 --- a/wxml/parse.js +++ b/packages/wean-wxml/src/parse.js @@ -1,12 +1,12 @@ function parse(tokens) { let ast = { - children: [], + children: [] } let state = { current: 0, prevChild: null, - tokens, + tokens } while (state.current < tokens.length) { @@ -15,7 +15,6 @@ function parse(tokens) { child.pos = [child.pos, state.prevChild.pos] ast.children.push(child) } - } return ast } @@ -30,17 +29,17 @@ function parseWalk(state) { prevToken = state.tokens[state.current - 1] } - if (token.type === "text") { + if (token.type === 'text') { move() return prevToken.value } - if (token.type === "comment") { + if (token.type === 'comment') { move() return null } - if (token.type === "tag") { + if (token.type === 'tag') { let type = token.value let closeStart = token.closeStart let closeEnd = token.closeEnd @@ -54,8 +53,8 @@ function parseWalk(state) { } else if (token) { state.prevChild = token while ( - token.type !== "tag" || - (token.type === "tag" && + token.type !== 'tag' || + (token.type === 'tag' && ((!token.closeStart && !token.closeEnd) || token.value !== type)) ) { let child = parseWalk(state) @@ -76,12 +75,12 @@ function parseWalk(state) { } function parseNode(name, attributes, children, pos) { - let type = "node" + let type = 'node' if ( - name.indexOf("-") > -1 || + name.indexOf('-') > -1 || (name[0] === name[0].toUpperCase() && name[0] !== name[0].toLowerCase()) ) { - type = "component" + type = 'component' } return { diff --git a/packages/wean/README.md b/packages/wean/README.md new file mode 100644 index 0000000..65b3af0 --- /dev/null +++ b/packages/wean/README.md @@ -0,0 +1,3 @@ +# wean + +🍀 小程序编译器前端的核心代码 diff --git a/packages/wean/package.json b/packages/wean/package.json new file mode 100644 index 0000000..0b6ceb8 --- /dev/null +++ b/packages/wean/package.json @@ -0,0 +1,18 @@ +{ + "name": "wean", + "version": "0.0.1", + "description": "🍀 小程序编译器前端的核心", + "repository": { + "type": "git", + "url": "git@github.com/ctripcorp/wean.git" + }, + "license": "MIT", + "dependencies": { + "@wean/wxml": "workspace:0.0.1", + "ejs": "3.1.6", + "esbuild": "0.12.8", + "md5": "2.3.0", + "postcss": "8.3.2", + "postcss-selector-parser": "6.0.6" + } +} diff --git a/core/assets/asset.js b/packages/wean/src/assets/asset.js similarity index 89% rename from core/assets/asset.js rename to packages/wean/src/assets/asset.js index c376802..ea596a3 100644 --- a/core/assets/asset.js +++ b/packages/wean/src/assets/asset.js @@ -4,11 +4,11 @@ let clock = 0 const exts = { '.js': '.js', '.wxml': '.jsx', - '.wxss': '.css', + '.wxss': '.css' } module.exports = class Asset { - constructor(path, type, name,tag) { + constructor(path, type, name, tag) { this.path = path this.tag = tag this.id = clock++ diff --git a/core/assets/js.js b/packages/wean/src/assets/js.js similarity index 80% rename from core/assets/js.js rename to packages/wean/src/assets/js.js index cc92fb5..d85a695 100644 --- a/core/assets/js.js +++ b/packages/wean/src/assets/js.js @@ -1,4 +1,4 @@ -const Asset = require("./asset") +const Asset = require('./asset') const esbuild = require('esbuild') const componentTag = require('../plugins/esbuild-component-tag') @@ -15,9 +15,11 @@ module.exports = class JS extends Asset { write: false, outdir: 'out', treeShaking: true, - plugins: [componentTag({ - id: this.parent.id + '' - })] + plugins: [ + componentTag({ + id: this.parent.id + '' + }) + ] }) this.code = String.fromCharCode.apply(null, out.outputFiles[0].contents) diff --git a/core/assets/json.js b/packages/wean/src/assets/json.js similarity index 72% rename from core/assets/json.js rename to packages/wean/src/assets/json.js index bd8bafc..40ff590 100644 --- a/core/assets/json.js +++ b/packages/wean/src/assets/json.js @@ -1,4 +1,4 @@ -const Asset = require("./asset") +const Asset = require('./asset') class App extends Asset { // app.json @@ -9,13 +9,13 @@ class App extends Asset { this.ast = JSON.parse(input) for (const key in this.ast) { const value = this.ast[key] - if (key === "pages") { + if (key === 'pages') { for (let i = 0; i < value.length; i++) { const path = value[i] - this.dependencies.add({ path, ext: ".page" }) + this.dependencies.add({ path, ext: '.page' }) } } - if (key === "usingComponents") { + if (key === 'usingComponents') { // toto 公共组件 } } @@ -30,10 +30,10 @@ class Page extends Asset { this.ast = JSON.parse(input) for (const key in this.ast) { const value = this.ast[key] - if (key === "usingComponents") { + if (key === 'usingComponents') { for (const k in value) { const v = value[k] - this.dependencies.add({ path: v, tag: k, ext: ".component" }) + this.dependencies.add({ path: v, tag: k, ext: '.component' }) } } } @@ -48,10 +48,10 @@ class Component extends Asset { this.ast = JSON.parse(input) for (const key in this.ast) { const value = this.ast[key] - if (key === "usingComponents") { + if (key === 'usingComponents') { for (const k in value) { const v = value[k] - this.dependencies.add({ path: v, tag: k, type: ".component" }) + this.dependencies.add({ path: v, tag: k, type: '.component' }) } } } @@ -61,5 +61,5 @@ class Component extends Asset { module.exports = { App: App, Page: Page, - Component: Component, + Component: Component } diff --git a/core/assets/wxml.js b/packages/wean/src/assets/wxml.js similarity index 71% rename from core/assets/wxml.js rename to packages/wean/src/assets/wxml.js index 9e00fb8..e02c218 100644 --- a/core/assets/wxml.js +++ b/packages/wean/src/assets/wxml.js @@ -1,7 +1,7 @@ -const Asset = require("./asset") -const { lex, parse, generate } = require("../../wxml/index.js") +const Asset = require('./asset') +const { lex, parse, generate } = require('@wean/wxml') -const esbuild = require('esbuild') +// const esbuild = require('esbuild') module.exports = class Wxml extends Asset { constructor(path, type, name) { @@ -13,6 +13,6 @@ module.exports = class Wxml extends Asset { this.ast = ast let { imports, blocks } = generate(this) this.blocks = blocks - imports.forEach((i) => this.dependencies.add({ path: i, ext: ".wxml" })) + imports.forEach((i) => this.dependencies.add({ path: i, ext: '.wxml' })) } } diff --git a/core/assets/wxss.js b/packages/wean/src/assets/wxss.js similarity index 54% rename from core/assets/wxss.js rename to packages/wean/src/assets/wxss.js index 012ca71..4339a70 100644 --- a/core/assets/wxss.js +++ b/packages/wean/src/assets/wxss.js @@ -1,8 +1,7 @@ -const Asset = require("./asset") -const postcss = require("postcss") -const postcssTagReplacer = require("../plugins/postcss-tag-replacer") -const postcssRpx2rem = require("../plugins/postcss-rpx2rem") - +const Asset = require('./asset') +const postcss = require('postcss') +const postcssTagReplacer = require('../plugins/postcss-tag-replacer') +const postcssRpx2rem = require('../plugins/postcss-rpx2rem') module.exports = class Wxss extends Asset { constructor(path, type, name) { @@ -12,15 +11,15 @@ module.exports = class Wxss extends Asset { addDep() { let that = this return { - postcssPlugin: "postcss-add-dep", + postcssPlugin: 'postcss-add-dep', AtRule(node) { - if (node.name === "import") { - const dep = { path: node.params.replace(/"/g, ""), ext: ".wxss" } + if (node.name === 'import') { + const dep = { path: node.params.replace(/"/g, ''), ext: '.wxss' } that.dependencies.add(dep) - node.type = "comment" + node.type = 'comment' node.text = JSON.stringify(dep) } - }, + } } } @@ -33,19 +32,19 @@ module.exports = class Wxss extends Asset { postcssTagReplacer({ // css 需要替换的标签 replaceMap: { - view: "div", - icon: "i", - text: "span", - navigator: "a", - image: "img", - page: "#root", - }, + view: 'div', + icon: 'i', + text: 'span', + navigator: 'a', + image: 'img', + page: '#root' + } }), this.addDep(), // postcssSopedCss({ // id, // }), - postcssRpx2rem(), + postcssRpx2rem() ]).process(input).css } } diff --git a/core/bundle.js b/packages/wean/src/bundle.js similarity index 57% rename from core/bundle.js rename to packages/wean/src/bundle.js index a830a7d..79df3ff 100644 --- a/core/bundle.js +++ b/packages/wean/src/bundle.js @@ -1,11 +1,11 @@ -const fs = require("fs") +const fs = require('fs') const { promises } = fs -const Path = require("path") +const Path = require('path') let ref = {} module.exports = async function build(main, options) { ref.options = options - const rootJson = await resolveAsset(Path.resolve(main || "")) + const rootJson = await resolveAsset(Path.resolve(main || '')) ref.options.i = Path.dirname(rootJson.path) await loadAsset(rootJson) return rootJson @@ -17,16 +17,16 @@ async function loadAsset(asset) { await asset.transform(input.toString()) } - if (asset.type === "page") { + if (asset.type === 'page') { asset.outputPath = Path.resolve(ref.options.o, asset.hash) } var siblings = [] - if (asset.type === "page" || asset.type === "component") { - siblings = [".wxml", ".js", ".wxss"].map(async (type) => { + if (asset.type === 'page' || asset.type === 'component') { + siblings = ['.wxml', '.js', '.wxss'].map(async (type) => { if (asset.parent) { - const depAsset = await resolveAsset(asset.path.replace(".json", type)) + const depAsset = await resolveAsset(asset.path.replace('.json', type)) asset.siblingAssets.set(type, depAsset) depAsset.parent = asset await loadAsset(depAsset) @@ -34,9 +34,9 @@ async function loadAsset(asset) { }) } - if (asset.type === "app") { - siblings = [".js"].map(async (type) => { - const depAsset = await resolveAsset(asset.path.replace(".json", type)) + if (asset.type === 'app') { + siblings = ['.js'].map(async (type) => { + const depAsset = await resolveAsset(asset.path.replace('.json', type)) asset.siblingAssets.set(type, depAsset) depAsset.parent = asset await loadAsset(depAsset) @@ -46,7 +46,7 @@ async function loadAsset(asset) { const dependencies = Array.from(asset.dependencies) const childs = dependencies.map(async (dep) => { const depAsset = await resolveAsset( - dep.path.replace(dep.ext, "") + dep.ext, + dep.path.replace(dep.ext, '') + dep.ext, asset.path ) depAsset.tag = dep.tag @@ -57,34 +57,34 @@ async function loadAsset(asset) { await Promise.all(siblings.concat(childs)) } -async function resolveAsset(path = "", parent) { +async function resolveAsset(path = '', parent) { let type = Path.extname(path) switch (type) { - case ".js": - Asset = require("./assets/js") + case '.js': + Asset = require('./assets/js') break - case ".json": - Asset = require("./assets/json").App + case '.json': + Asset = require('./assets/json').App break - case ".page": - Asset = require("./assets/json").Page + case '.page': + Asset = require('./assets/json').Page break - case ".component": - Asset = require("./assets/json").Component + case '.component': + Asset = require('./assets/json').Component break - case ".wxml": - Asset = require("./assets/wxml") + case '.wxml': + Asset = require('./assets/wxml') break - case ".wxss": - Asset = require("./assets/wxss") + case '.wxss': + Asset = require('./assets/wxss') break default: break } - path = path.replace(".component", ".json").replace(".page", ".json") - type = type === ".json" ? ".app" : type + path = path.replace('.component', '.json').replace('.page', '.json') + type = type === '.json' ? '.app' : type let resolvePath = parent ? Path.join(Path.dirname(parent), path) : path if (!fs.existsSync(resolvePath)) { diff --git a/packages/wean/src/index.js b/packages/wean/src/index.js new file mode 100644 index 0000000..6344082 --- /dev/null +++ b/packages/wean/src/index.js @@ -0,0 +1,7 @@ +const build = require('./bundle') +const pack = require('./pack') + +module.exports = { + build, + pack +} diff --git a/core/package.js b/packages/wean/src/pack.js similarity index 80% rename from core/package.js rename to packages/wean/src/pack.js index 28df013..0476d33 100644 --- a/core/package.js +++ b/packages/wean/src/pack.js @@ -1,17 +1,15 @@ -const { promises } = require("fs") -const ejs = require("ejs") -const Path = require("path") +const { promises } = require('fs') +const Path = require('path') const esbuild = require('esbuild') +const packJs = require('./packagers/js.js') +const packWxss = require('./packagers/wxss.js') +const packWxml = require('./packagers/wxml.js') +const packBerial = require('./packagers/berial.js') const manifest = [] module.exports.manifest = manifest -const packJs = require("./packagers/js.js") -const packWxss = require("./packagers/wxss.js") -const packWxml = require("./packagers/wxml.js") -const packBerial = require("./packagers/berial.js") - module.exports = async function pack(asset, options) { await packageAsset(asset, options) await writeAsset(asset, options) @@ -20,7 +18,7 @@ module.exports = async function pack(asset, options) { async function writeAsset(asset, options) { asset.outputPath = Path.resolve(options.o, asset.hash) - asset.output.js = asset.siblingAssets.get(".js").code + asset.output.js = asset.siblingAssets.get('.js').code await write(asset, options) const childs = Array.from(asset.childAssets.values()).map(async (page) => { @@ -32,7 +30,7 @@ async function writeAsset(asset, options) { async function packageAsset(asset, options) { await packageJson(asset, options) - if (asset.type === "component") { + if (asset.type === 'component') { asset.parent.output.jsx += asset.output.jsx asset.parent.output.js += asset.output.js asset.parent.output.css += asset.output.css @@ -67,13 +65,13 @@ async function packageJson(asset, options) { const all = Array.from(siblings.keys()).map(async (key) => { const value = siblings.get(key) switch (key) { - case ".js": + case '.js': asset.output.js = await packJs(value, options) break - case ".wxml": + case '.wxml': asset.output.jsx = await packWxml(value, options) break - case ".wxss": + case '.wxss': asset.output.css = await packWxss(value) break } @@ -90,7 +88,7 @@ async function generateEntry(asset, options) { } let out = JSON.stringify(json) await promises.writeFile( - Path.join(Path.resolve(options.o), "manifest.json"), + Path.join(Path.resolve(options.o), 'manifest.json'), out ) } diff --git a/packages/wean/src/packagers/berial.js b/packages/wean/src/packagers/berial.js new file mode 100644 index 0000000..e2b63ec --- /dev/null +++ b/packages/wean/src/packagers/berial.js @@ -0,0 +1,29 @@ +const { manifest } = require('../pack.js') +const { random } = require('./util') +const Path = require('path') + +module.exports = async function packBerial(asset, options) { + asset.output.jsx = ` + (function({C,directs,wx}, remotes) { + ${asset.output.jsx} + })(window,window.remotes); + ` + const edir = Path.resolve(Path.dirname(options.e)) + + const path = asset.path + .replace(edir, '') + .replace(/\\/g, '/') + .replace('.json', '') + + const prefix = options.p ? options.p : '/' + const basename = options.p ? `${'/' + Path.basename(options.p)}` : '' + const hash = prefix + asset.hash + manifest.push({ + id: asset.id, + info: asset.ast, + scripts: [hash + '.js', hash + '.jsx'], + styles: [hash + '.css'], + path: `${basename + path}` + }) + return asset.output.jsx +} diff --git a/core/packagers/js.js b/packages/wean/src/packagers/js.js similarity index 80% rename from core/packagers/js.js rename to packages/wean/src/packagers/js.js index 8ba59c3..c156895 100644 --- a/core/packagers/js.js +++ b/packages/wean/src/packagers/js.js @@ -8,7 +8,7 @@ module.exports = async function packJs(asset, options) { defer.push(dep.code) } else { if (cache.indexOf(dep.path) < 0) { - asset.output = dep.code + "\n" + asset.output + asset.output = dep.code + '\n' + asset.output cache.push(dep.path) } } @@ -18,9 +18,9 @@ module.exports = async function packJs(asset, options) { } for (const code of defer) { - asset.output += "\n" + code + asset.output += '\n' + code } } walk(asset) - return asset.output + "\n\n" + return asset.output + '\n\n' } diff --git a/core/packagers/util.js b/packages/wean/src/packagers/util.js similarity index 84% rename from core/packagers/util.js rename to packages/wean/src/packagers/util.js index 5c20af5..f66da58 100644 --- a/core/packagers/util.js +++ b/packages/wean/src/packagers/util.js @@ -6,8 +6,8 @@ const titleCase = (str) => str.slice(0, 1).toUpperCase() + toHump(str).slice(1) const random = function randomString(len) { len = len || 6 - var $chars = "abcdefhijkmnprstwxyz" - var letter = "" + var $chars = 'abcdefhijkmnprstwxyz' + var letter = '' for (i = 0; i < len; i++) { letter += $chars.charAt(Math.floor(Math.random() * $chars.length)) } @@ -16,5 +16,5 @@ const random = function randomString(len) { module.exports = { titleCase: titleCase, - random: random, + random: random } diff --git a/core/packagers/wxml.js b/packages/wean/src/packagers/wxml.js similarity index 82% rename from core/packagers/wxml.js rename to packages/wean/src/packagers/wxml.js index d81b15d..8f90bc3 100644 --- a/core/packagers/wxml.js +++ b/packages/wean/src/packagers/wxml.js @@ -1,4 +1,4 @@ -const { titleCase } = require("./util") +const { titleCase } = require('./util') const esbuild = require('esbuild') module.exports = async function packWxml(asset) { @@ -15,12 +15,15 @@ module.exports = async function packWxml(asset) { wiredBlock(asset.blocks, keys, asset) walk(asset) - const pre = asset.parent.type === "page" ? `const $${asset.parent.id} = (props) => { + const pre = + asset.parent.type === 'page' + ? `const $${asset.parent.id} = (props) => { const {data} = useSharedData(['${asset.parent.id}']) with(data){ return <>${asset.output} } - }\n`: `remotes['${titleCase(asset.parent.tag)}'] = (props) =>{ + }\n` + : `remotes['${titleCase(asset.parent.tag)}'] = (props) =>{ const {data, properties} = useSharedData(['${asset.parent.id}']) with(properties){ with(data){ @@ -32,7 +35,7 @@ module.exports = async function packWxml(asset) { const { code } = await esbuild.transform(pre, { jsxFactory: 'fre.h', jsxFragment: 'fre.Fragment', - loader: 'jsx', + loader: 'jsx' }) return code } @@ -47,4 +50,4 @@ function wiredBlock(blocks, keys, asset) { asset.output = asset.output.replace(`$template$${key}$`, value) || '' } } -} \ No newline at end of file +} diff --git a/core/packagers/wxss.js b/packages/wean/src/packagers/wxss.js similarity index 87% rename from core/packagers/wxss.js rename to packages/wean/src/packagers/wxss.js index 689a3ed..48ac1ba 100644 --- a/core/packagers/wxss.js +++ b/packages/wean/src/packagers/wxss.js @@ -4,7 +4,7 @@ module.exports = async function packWxss(asset, options) { const walk = async (child) => { for (const dep of child.childAssets.values()) { if (cache.indexOf(dep.path) < 0) { - asset.output = dep.code + "\n" + asset.output + asset.output = dep.code + '\n' + asset.output cache.push(dep.path) } if (dep.childAssets.size) { diff --git a/packages/wean/src/plugins/esbuild-component-tag.js b/packages/wean/src/plugins/esbuild-component-tag.js new file mode 100644 index 0000000..2ffb228 --- /dev/null +++ b/packages/wean/src/plugins/esbuild-component-tag.js @@ -0,0 +1,20 @@ +const fs = require('fs') + +// TODO: bit op + +module.exports = (options) => { + return { + name: 'componentTag', + setup(build) { + build.onLoad({ filter: /.+/ }, async ({ path }) => { + const source = await fs.promises.readFile(path, 'utf8') + const code = source + .replace('Component(', `Component('${options.id}', `) + .replace('Page(', `Page('${options.id}', `) + return { + contents: code + } + }) + } + } +} diff --git a/core/plugins/postcss-rpx2rem.js b/packages/wean/src/plugins/postcss-rpx2rem.js similarity index 85% rename from core/plugins/postcss-rpx2rem.js rename to packages/wean/src/plugins/postcss-rpx2rem.js index 8830bc9..520d43e 100644 --- a/core/plugins/postcss-rpx2rem.js +++ b/packages/wean/src/plugins/postcss-rpx2rem.js @@ -1,12 +1,12 @@ -const postcss = require("postcss") +const postcss = require('postcss') const defaults = { - targetUnit: "rpx", - outputUnit: "rem", + targetUnit: 'rpx', + outputUnit: 'rem', proportion: 0.01, // 1rpx = 0.01rem unitPrecision: 5, replace: true, - mediaQuery: false, + mediaQuery: false } function toFixed(number, precision) { @@ -27,7 +27,7 @@ module.exports = (options) => { proportion, unitPrecision, replace, - mediaQuery, + mediaQuery } = Object.assign({}, defaults, options) const replaceFn = (m, $1) => { @@ -35,12 +35,12 @@ module.exports = (options) => { return m } const value = toFixed(parseFloat($1) * proportion, unitPrecision) - return value === 0 ? "0" : `${value}${outputUnit}` + return value === 0 ? '0' : `${value}${outputUnit}` } const replaceRegex = new RegExp( `"[^"]+"|'[^']+'|url\\([^)]+\\)|(\\d*\\.?\\d+)${targetUnit}`, - "g" + 'g' ) return { @@ -60,12 +60,12 @@ module.exports = (options) => { }) if (mediaQuery) { - root.walkAtRules("media", (rule) => { + root.walkAtRules('media', (rule) => { if (rule.params.indexOf(targetUnit) === -1) return rule.params = rule.params.replace(replaceRegex, replaceFn) }) } - }, + } } } -module.exports.postcss = true \ No newline at end of file +module.exports.postcss = true diff --git a/core/plugins/postcss-scoped-css.js b/packages/wean/src/plugins/postcss-scoped-css.js similarity index 79% rename from core/plugins/postcss-scoped-css.js rename to packages/wean/src/plugins/postcss-scoped-css.js index 25d43de..e9830e6 100644 --- a/core/plugins/postcss-scoped-css.js +++ b/packages/wean/src/plugins/postcss-scoped-css.js @@ -1,8 +1,8 @@ -const selectorParser = require("postcss-selector-parser") +const selectorParser = require('postcss-selector-parser') -module.exports = ({ id = "" }) => { +module.exports = ({ id = '' }) => { return { - postcssPlugin: "postcss-scoped-css", + postcssPlugin: 'postcss-scoped-css', Rule(rule) { processRule(id, rule) }, @@ -17,17 +17,17 @@ module.exports = ({ id = "" }) => { if (animationNameRE.test(prop)) { node.value = value - .split(",") - .map((v) => (v === "none" ? v.trim() : prefix + v.trim())) - .join(",") + .split(',') + .map((v) => (v === 'none' ? v.trim() : prefix + v.trim())) + .join(',') } else if (animationRE.test(prop)) { node.value = value - .split(" ") + .split(' ') .map((v) => (keyframes.indexOf(v) > -1 ? prefix + v : v)) - .join(" ") + .join(' ') } }) - }, + } } } @@ -48,14 +48,14 @@ function processRule(id, rule) { rule.selector = selectorParser((selectorRoot) => { selectorRoot.each((selector) => { selector.each((n) => { - if (n.type === "class") { + if (n.type === 'class') { selector.insertAfter( n, selectorParser.attribute({ attribute: id, value: id, raws: {}, - quoteMark: `"`, + quoteMark: `"` }) ) } diff --git a/core/plugins/postcss-tag-replacer.js b/packages/wean/src/plugins/postcss-tag-replacer.js similarity index 79% rename from core/plugins/postcss-tag-replacer.js rename to packages/wean/src/plugins/postcss-tag-replacer.js index e9470ce..99b8e8d 100644 --- a/core/plugins/postcss-tag-replacer.js +++ b/packages/wean/src/plugins/postcss-tag-replacer.js @@ -1,17 +1,17 @@ module.exports = (opts) => { return { - postcssPlugin: "postcss-tag-replacer", + postcssPlugin: 'postcss-tag-replacer', Once(root) { // Plugin code root.walkRules((rule) => { if (opts.replaceMap[rule.selector]) { rule.replaceWith({ selector: opts.replaceMap[rule.selector], - nodes: rule.nodes, + nodes: rule.nodes }) } }) - }, + } } } module.exports.postcss = true diff --git a/core/runtime/api.js b/packages/wean/src/runtime/api.js similarity index 85% rename from core/runtime/api.js rename to packages/wean/src/runtime/api.js index 9ba7ae8..7d5ff35 100644 --- a/core/runtime/api.js +++ b/packages/wean/src/runtime/api.js @@ -1,13 +1,13 @@ const graph = new Map() window.App = (option) => { - graph.set("/", option) + graph.set('/', option) option.onLaunch() } window.Page = (option) => { const childs = new Map() - childs.set("/", option) + childs.set('/', option) graph.set(window.location.pathname, childs) } @@ -24,7 +24,7 @@ window.Component = (tag, option) => { } window.usePage = (setState) => { - const option = graph.get(window.location.pathname).get("/") + const option = graph.get(window.location.pathname).get('/') let page = option @@ -37,9 +37,9 @@ window.usePage = (setState) => { for (let name in option) { const op = option[name] - if (name === "setData" || (name[0] === "o" && name[1] === "n")) { + if (name === 'setData' || (name[0] === 'o' && name[1] === 'n')) { page[name] = op.bind(page) - } else if (typeof op === "function") { + } else if (typeof op === 'function') { page[name] = function (e) { if (e instanceof KeyboardEvent) { if (e.keyCode === 13) { @@ -60,7 +60,7 @@ window.useComponent = (setState, props, tag) => { const page = graph.get(window.location.pathname) if (page) var option = page.get(tag) let component = { - methods: {}, + methods: {} } let properties = {} @@ -107,28 +107,28 @@ window.useComponent = (setState, props, tag) => { window.getPage = () => { return graph.get(window.location.pathname) } -window.getApp = () => graph.get("/") +window.getApp = () => graph.get('/') function createEv(e) { return { type: e.type, tartget: { - dataset: e.target.dataset, + dataset: e.target.dataset }, currentTarget: {}, detail: { - value: e.target.value, - }, + value: e.target.value + } } } window.getUrl = function GetUrlParam(url) { - let arrObj = url.split("?") + let arrObj = url.split('?') let params = {} if (arrObj.length > 1) { - arrObj = arrObj[1].split("&") + arrObj = arrObj[1].split('&') arrObj.forEach((item) => { - item = item.split("=") + item = item.split('=') params[item[0]] = decodeURIComponent(item[1]) }) } diff --git a/core/runtime/components.js b/packages/wean/src/runtime/components.js similarity index 67% rename from core/runtime/components.js rename to packages/wean/src/runtime/components.js index ba92999..91d1ee7 100644 --- a/core/runtime/components.js +++ b/packages/wean/src/runtime/components.js @@ -1,35 +1,35 @@ window.remotes = { - View: function View(props){ - return fre.h("div", props) + View: function View(props) { + return fre.h('div', props) }, - ScrollView: function ScrollView(props){ + ScrollView: function ScrollView(props) { props.style = { - overflow: "scroll" + overflow: 'scroll' } - return fre.h("div", props) + return fre.h('div', props) }, Button: function Button(props) { - const { type = "primary", size = "default", disabled } = props + const { type = 'primary', size = 'default', disabled } = props const target = window.remotes.host const styled = goober.styled.bind({ target: target }) - const Button = styled("button")` - background: ${type === "primary" - ? "var(--primary-color)" - : type === "default" - ? "var(--default-color)" - : "var(--warn-color)"}; - color: ${type === "default" ? "#2577e3" : "#fff"}; + const Button = styled('button')` + background: ${type === 'primary' + ? 'var(--primary-color)' + : type === 'default' + ? 'var(--default-color)' + : 'var(--warn-color)'}; + color: ${type === 'default' ? '#2577e3' : '#fff'}; border: 1px solid; - border-color: ${type === "primary" - ? "var(--primary-border-color)" - : type === "default" - ? "var(--default-border-color)" - : "var(--warn-border-color)"}; - width: ${size === "default" ? "184px" : "auto"}; + border-color: ${type === 'primary' + ? 'var(--primary-border-color)' + : type === 'default' + ? 'var(--default-border-color)' + : 'var(--warn-border-color)'}; + width: ${size === 'default' ? '184px' : 'auto'}; opacity: ${disabled ? 0.5 : 1}; text-align: center; border-radius: 2px; - padding: 8px ${size === "mini" ? "24px" : "0"}; + padding: 8px ${size === 'mini' ? '24px' : '0'}; margin: 10px; font-size: 16px; font-weight: bold; @@ -37,61 +37,61 @@ window.remotes = { return fre.h(Button, props) }, Text: function Text(props) { - const userSelect = props["user-select"] - return fre.h("span", { + const userSelect = props['user-select'] + return fre.h('span', { style: { - display: userSelect ? "inline-block" : "inline", + display: userSelect ? 'inline-block' : 'inline' }, - ...props, + ...props }) }, Input: (props) => { - props.type = "text" + props.type = 'text' props.style = { - width: "90%", - border: " 0px", - padding: " 5px", - "box-sizing": " border-box", - outline: " none", - "border-radius": "2px", + width: '90%', + border: ' 0px', + padding: ' 5px', + 'box-sizing': ' border-box', + outline: ' none', + 'border-radius': '2px' } - return fre.h("input", props) + return fre.h('input', props) }, - Image: (props) => fre.h("img", props), + Image: (props) => fre.h('img', props), Navigator: (props) => { props.onclick = (e) => { e.preventDefault() window.history.pushState(null, null, props.url) } - return fre.h("a", props) + return fre.h('a', props) }, - Textarea: (props) => fre.h("textarea", props), - Form: (props) => fre.h("form", props), + Textarea: (props) => fre.h('textarea', props), + Form: (props) => fre.h('form', props), Icon: (props) => { const target = window.remotes.host fre.useEffect(() => { - if (target.lastChild.nodeName !== "LINK") { - let link = document.createElement("link") + if (target.lastChild.nodeName !== 'LINK') { + let link = document.createElement('link') link.setAttribute( - "href", - "//at.alicdn.com/t/font_2365862_1fzp0ur9aqn.css" + 'href', + '//at.alicdn.com/t/font_2365862_1fzp0ur9aqn.css' ) - link.setAttribute("rel", "stylesheet") + link.setAttribute('rel', 'stylesheet') target.appendChild(link) } }, []) props.class = `iconfont icon-${props.type}` props.style = { - color: "var(--default-border-color)", + color: 'var(--default-border-color)' } - return fre.h("i", props) + return fre.h('i', props) }, Checkbox: (props) => { - props.type = "checkbox" + props.type = 'checkbox' const target = window.remotes.host const styled = goober.styled.bind({ target: target }) - const Checkbox = styled("input")` + const Checkbox = styled('input')` outline: none; width: 20px; height: 20px; @@ -112,57 +112,58 @@ window.remotes = { return fre.h(Checkbox, props) }, Switch: (props) => { - props.type = "checkbox" + props.type = 'checkbox' const target = window.remotes.host const styled = goober.styled.bind({ target: target }) - const Switch = styled("input")` + const Switch = styled('input')` + outline: none; + width: 60px; + height: 26px; + background-color: var(--default-color); + border-radius: 36px; + border: none; + -webkit-appearance: none; + -moz-appearance: none; + transition: all 0.2s ease; + cursor: pointer; + position: relative; + box-shadow: 1px 1px 2px #eaecef inset; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + &:before { + content: ''; + position: absolute; + top: -5px; + transform: translateX(0); + width: 36px; + height: 36px; + background: #fff; + border-radius: 50%; + transition: all 0.2s ease; + display: inline-block; + text-align: center; + line-height: 36px; + box-shadow: 2px 0px 2px #d4dae4; + } + &:checked { + background-color: var(--primary-color); + box-shadow: 1px 1px 2px #1d67dd inset; + } + &:checked:before { + transform: translateX(24px); + } + &:focus { outline: none; - width: 60px; - height: 26px; - background-color: var(--default-color); - border-radius: 36px; - border: none; - -webkit-appearance: none; - -moz-appearance:none; - transition: all .2s ease; - cursor: pointer; - position: relative; - box-shadow: 1px 1px 2px #eaecef inset; - -webkit-tap-highlight-color:rgba(0,0,0,0); - &:before{ - content:''; - position: absolute; - top: -5px; - transform: translateX(0); - width: 36px; - height: 36px; - background:#fff; - border-radius: 50%; - transition: all .2s ease; - display: inline-block; - text-align: center; - line-height: 36px; - box-shadow: 2px 0px 2px #d4dae4; - } - &:checked{ - background-color: var(--primary-color); - box-shadow: 1px 1px 2px #1d67dd inset; - } - &:checked:before{ - transform: translateX(24px); - } - &:focus{ - outline: none; - }` + } + ` return fre.h(Switch, props) }, Radio: (props) => { - props.type = "checkbox" + props.type = 'checkbox' const target = window.remotes.host const styled = goober.styled.bind({ target: target }) - const Radio = styled("input")` + const Radio = styled('input')` outline: none; width: 20px; height: 20px; @@ -185,7 +186,7 @@ window.remotes = { Slider: (props, dom = null) => { const [range, setRange] = fre.useState(50) const r = fre.useRef(null) - props.type = "range" + props.type = 'range' props.onchange = (e) => { const width = r.current.clientWidth const px = (e.target.value / 100) * width @@ -203,7 +204,7 @@ window.remotes = { const target = window.remotes.host const styled = goober.styled.bind({ target: target }) - const Slider = styled("input")` + const Slider = styled('input')` outline: none; width: 90%; background-image: linear-gradient( @@ -230,12 +231,12 @@ window.remotes = { ` return fre.h(Slider, { ...props, - ref: r, + ref: r }) }, Loading: (props) => { const styled = goober.styled.bind({ target: window.remotes.host }) - const Loading = styled("section")` + const Loading = styled('section')` width: 20px; height: 20px; animation: loading 1s steps(60, end) infinite; @@ -243,7 +244,7 @@ window.remotes = { display: inline-flex; color: var(--primary-border-color); &:before { - content: ""; + content: ''; display: block; width: 10px; height: 20px; @@ -259,7 +260,7 @@ window.remotes = { ); } &:after { - content: ""; + content: ''; display: block; width: 10px; height: 20px; @@ -287,7 +288,7 @@ window.remotes = { }, Toast: (props) => { const styled = goober.styled - const Toast = styled("section")` + const Toast = styled('section')` position: fixed; left: 50%; top: 50%; @@ -299,12 +300,12 @@ window.remotes = { transition: 2s; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.3); ` - props.id = "modal" + props.id = 'modal' return fre.h(Toast, props, props.title) }, Modal: (props) => { const styled = goober.styled - const Div = styled("div")` + const Div = styled('div')` width: 70%; background: #fff; color: #333; @@ -315,17 +316,17 @@ window.remotes = { border-radius: 10px; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.3); ` - const Content = styled("div")` + const Content = styled('div')` padding: 20px; font-weight: lighter; ` - const Ul = styled("ul")` + const Ul = styled('ul')` display: flex; border-top: 1px solid var(--default-border-color); padding: 0; margin: 0; ` - const Li = styled("li")` + const Li = styled('li')` flex: 1; text-align: center; padding: 15px 0; @@ -355,22 +356,22 @@ window.remotes = { fre.h( Li, { - onclick: cancel, + onclick: cancel }, props.cancelText ), fre.h( Li, { - onclick: confirm, + onclick: confirm }, props.confirmText ) ) ) }, - Picker: (props) => fre.h("section", props), + Picker: (props) => fre.h('section', props), Block(props) { return props.children - }, + } } diff --git a/packages/wean/src/runtime/fre.js b/packages/wean/src/runtime/fre.js new file mode 100644 index 0000000..0d1edb9 --- /dev/null +++ b/packages/wean/src/runtime/fre.js @@ -0,0 +1,525 @@ +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + ? factory(exports) + : typeof define === 'function' && define.amd + ? define(['exports'], factory) + : ((global = global || self), factory((global.fre = {}))) +})(this, function (exports) { + 'use strict' + + const updateElement = (dom, oldProps, newProps) => { + for (let name in Object.assign(Object.assign({}, oldProps), newProps)) { + let oldValue = oldProps[name] + let newValue = newProps[name] + + if (oldValue === newValue || name === 'children'); + else if (name === 'style') { + if (isStr(newValue)) { + dom.setAttribute(name, newValue) + } else { + for (const k in Object.assign( + Object.assign({}, oldValue), + newValue + )) { + if (!(oldValue && newValue && oldValue[k] === newValue[k])) { + dom[name][k] = + (newValue === null || newValue === void 0 + ? void 0 + : newValue[k]) || '' + } + } + } + } else if (name[0] === 'o' && name[1] === 'n') { + name = name.slice(2).toLowerCase() + if (oldValue) dom.removeEventListener(name, oldValue) + dom.addEventListener(name, newValue) + } else if (name in dom && !(dom instanceof SVGElement)) { + dom[name] = newValue === 'false' ? false : newValue + } else if (newValue == null || newValue === false) { + dom.removeAttribute(name) + } else { + dom.setAttribute(name, newValue) + } + } + } + const createElement = (fiber) => { + const dom = + fiber.type === 'text' + ? document.createTextNode('') + : fiber.lane & 16 + ? document.createElementNS('http://www.w3.org/2000/svg', fiber.type) + : document.createElement(fiber.type) + updateElement(dom, {}, fiber.props) + return dom + } + + let cursor = 0 + const resetCursor = () => { + cursor = 0 + } + const useState = (initState) => { + return useReducer(null, initState) + } + const useReducer = (reducer, initState) => { + const [hook, current] = getHook(cursor++) + return [ + hook[0] || (hook[0] = initState), + (value) => { + hook[0] = reducer + ? reducer(hook[0], value) + : isFn(value) + ? value(hook[0]) + : value + dispatchUpdate(current) + } + ] + } + const useEffect = (cb, deps) => { + return effectImpl(cb, deps, 'effect') + } + const useLayout = (cb, deps) => { + return effectImpl(cb, deps, 'layout') + } + const effectImpl = (cb, deps, key) => { + const [hook, current] = getHook(cursor++) + if (isChanged(hook[1], deps)) { + hook[0] = cb + hook[1] = deps + current.hooks[key].push(hook) + } + } + const useMemo = (cb, deps) => { + const hook = getHook(cursor++)[0] + if (isChanged(hook[1], deps)) { + hook[1] = deps + return (hook[0] = cb()) + } + return hook[0] + } + const useCallback = (cb, deps) => { + return useMemo(() => cb, deps) + } + const useRef = (current) => { + return useMemo(() => ({ current }), []) + } + const getHook = (cursor) => { + const current = getCurrentFiber() + const hooks = + current.hooks || (current.hooks = { list: [], effect: [], layout: [] }) + if (cursor >= hooks.list.length) { + hooks.list.push([]) + } + return [hooks.list[cursor], current] + } + const isChanged = (a, b) => { + return ( + !a || a.length !== b.length || b.some((arg, index) => arg !== a[index]) + ) + } + + const queue = [] + const threshold = 1000 / 60 + const unit = [] + let deadline = 0 + const schedule = (cb) => unit.push(cb) === 1 && postMessage() + const scheduleWork = (callback, fiber) => { + const job = { + callback, + fiber + } + queue.push(job) + schedule(flushWork) + } + const postMessage = (() => { + const cb = () => unit.splice(0, unit.length).forEach((c) => c()) + if (typeof MessageChannel !== 'undefined') { + const { port1, port2 } = new MessageChannel() + port1.onmessage = cb + return () => port2.postMessage(null) + } + return () => setTimeout(cb) + })() + const flushWork = () => { + deadline = getTime() + threshold + let job = sortAndPeek(queue) + while (job && !shouldYield()) { + const callback = job.callback + job.callback = null + const next = callback(job.fiber) + if (next) { + job.callback = next + } else { + queue.shift() + } + job = sortAndPeek(queue) + } + job && schedule(flushWork) + } + const shouldYield = () => { + var _a, _b + return ( + ((_b = + (_a = navigator) === null || _a === void 0 ? void 0 : _a.scheduling) === + null || _b === void 0 + ? void 0 + : _b.isInputPending()) || getTime() >= deadline + ) + } + const getTime = () => performance.now() + const sortAndPeek = (queue) => queue[0] + + let currentFiber + let finish = null + let deletes = [] + const render = (vnode, node, done) => { + const rootFiber = { + node, + props: { children: vnode }, + done + } + dispatchUpdate(rootFiber) + } + const dispatchUpdate = (fiber) => { + if (fiber && !(fiber.lane & 32)) { + fiber.lane = 2 | 32 + fiber.sibling = null + scheduleWork(reconcileWork, fiber) + } + } + const reconcileWork = (WIP) => { + while (WIP && !shouldYield()) WIP = reconcile(WIP) + if (WIP) return reconcileWork.bind(null, WIP) + if (finish) { + commitWork(finish) + } + return null + } + const reconcile = (WIP) => { + isFn(WIP.type) ? updateHook(WIP) : updateHost(WIP) + if (WIP.child) return WIP.child + while (WIP) { + if (!finish && WIP.lane & 32) { + finish = WIP + WIP.lane &= ~32 + return null + } + if (WIP.sibling) return WIP.sibling + WIP = WIP.parent + } + } + const updateHook = (WIP) => { + currentFiber = WIP + resetCursor() + try { + var children = WIP.type(WIP.props) + } catch (e) { + if (!!e && typeof e.then === 'function') { + const p = getParent(WIP) + if (!p.laziness) { + p.laziness = [] + children = p.props.fallback + } + p.laziness.push(e) + } else throw e + } + isStr(children) && (children = createText(children)) + reconcileChildren(WIP, children) + } + const getParentNode = (WIP) => { + while ((WIP = WIP.parent)) { + if (!isFn(WIP.type)) return WIP.node + } + } + const getParent = (WIP) => { + while ((WIP = WIP.parent)) { + if (WIP.type.name === 'Suspense') return WIP + } + } + const updateHost = (WIP) => { + WIP.parentNode = getParentNode(WIP) + if (!WIP.node) { + if (WIP.type === 'svg') WIP.lane |= 16 + WIP.node = createElement(WIP) + } + reconcileChildren(WIP, WIP.props.children) + } + const reconcileChildren = (WIP, children) => { + var _a + let aCh = WIP.kids || [], + bCh = (WIP.kids = arrayfy(children)), + aHead = 0, + bHead = 0, + aTail = aCh.length - 1, + bTail = bCh.length - 1, + map = null, + ch = Array(bCh.length), + next = ((_a = WIP.sibling) === null || _a === void 0 ? void 0 : _a.node) + ? WIP.sibling + : null + while (aHead <= aTail && bHead <= bTail) { + let c = null + if (aCh[aHead] == null) { + aHead++ + } else if (aCh[aTail] == null) { + aTail-- + } else if (same(aCh[aHead], bCh[bHead])) { + c = bCh[bHead] + clone(c, aCh[aHead]) + c.lane = 2 + ch[bHead] = c + aHead++ + bHead++ + } else if (same(aCh[aTail], bCh[bTail])) { + c = bCh[bTail] + clone(c, aCh[aTail]) + c.lane = 2 + ch[bTail] = c + aTail-- + bTail-- + } else { + if (!map) { + map = new Map() + for (let i = aHead; i <= aTail; i++) { + let k = getKey(aCh[i]) + k && map.set(k, i) + } + } + const key = getKey(bCh[bHead]) + if (map.has(key)) { + const oldKid = aCh[map.get(key)] + c = bCh[bHead] + clone(c, oldKid) + c.lane = 4 + c.after = aCh[aHead] + ch[bHead] = c + aCh[map.get(key)] = null + } else { + c = bCh[bHead] + c.lane = 4 + c.node = null + c.after = aCh[aHead] + } + bHead++ + } + } + const after = bTail <= bCh.length - 1 ? ch[bTail + 1] : next + while (bHead <= bTail) { + let c = bCh[bHead] + if (c) { + c.lane = 4 + c.after = after + c.node = null + } + bHead++ + } + while (aHead <= aTail) { + let c = aCh[aHead] + if (c) { + c.lane = 8 + deletes.push(c) + } + aHead++ + } + for (var i = 0, prev = null; i < bCh.length; i++) { + const child = bCh[i] + if (child == null) continue + child.parent = WIP + if (i > 0) { + prev.sibling = child + } else { + if (WIP.lane & 16) child.lane |= 16 + WIP.child = child + } + prev = child + } + } + function clone(a, b) { + a.lastProps = b.props + a.node = b.node + a.kids = b.kids + a.hooks = b.hooks + a.ref = b.ref + } + const getKey = (vdom) => (vdom == null ? vdom : vdom.key) + const getType = (vdom) => (isFn(vdom.type) ? vdom.type.name : vdom.type) + const commitWork = (fiber) => { + var _a + fiber.parent ? commit(fiber) : commit(fiber.child) + deletes.forEach(commit) + ;(_a = fiber.done) === null || _a === void 0 ? void 0 : _a.call(fiber) + deletes = [] + finish = null + } + function invokeHooks(fiber) { + const { hooks, lane, laziness } = fiber + if (laziness) { + Promise.all(laziness).then(() => { + fiber.laziness = null + dispatchUpdate(fiber) + }) + } + if (hooks) { + if (lane & 8) { + hooks.list.forEach((e) => e[2] && e[2]()) + } else { + side(hooks.layout) + schedule(() => side(hooks.effect)) + } + } + } + function wireKid(fiber) { + let kid = fiber + while (isFn(kid.type)) { + kid = kid.child + } + const after = fiber.after || kid.after + kid.after = after + kid.lane |= fiber.lane + let s = kid.sibling + while (s) { + s.after = after + s.lane |= fiber.lane + s = s.sibling + } + return kid + } + const commit = (fiber) => { + var _a + if (!fiber) return + let { type, lane, parentNode, node, ref } = fiber + if (isFn(type)) { + invokeHooks(fiber) + let kid = wireKid(fiber) + fiber.node = kid.node + if (fiber.lane & 8) { + commit(kid) + } else { + commit(fiber.child) + commit(fiber.sibling) + } + fiber.lane = 0 + return + } + if (lane & 8) { + kidsRefer(fiber.kids) + parentNode.removeChild(fiber.node) + refer(ref, null) + fiber.lane = 0 + return + } + if (lane & 2) { + updateElement(node, fiber.lastProps || {}, fiber.props) + } + if (lane & 4) { + parentNode.insertBefore( + fiber.node, + (_a = fiber.after) === null || _a === void 0 ? void 0 : _a.node + ) + } + fiber.lane = 0 + refer(ref, node) + commit(fiber.child) + commit(fiber.sibling) + } + const same = (a, b) => { + return getKey(a) === getKey(b) && getType(a) === getType(b) + } + const arrayfy = (arr) => (!arr ? [] : isArr(arr) ? arr : [arr]) + const refer = (ref, dom) => { + if (ref) isFn(ref) ? ref(dom) : (ref.current = dom) + } + const kidsRefer = (kids) => { + kids.forEach((kid) => { + kid.kids && kidsRefer(kid.kids) + refer(kid.ref, null) + }) + } + const side = (effects) => { + effects.forEach((e) => e[2] && e[2]()) + effects.forEach((e) => (e[2] = e[0]())) + effects.length = 0 + } + const getCurrentFiber = () => currentFiber || null + const isFn = (x) => typeof x === 'function' + const isStr = (s) => typeof s === 'number' || typeof s === 'string' + const some = (v) => v != null && v !== false && v !== true + + const h = function (type, attrs) { + const props = attrs || {} + const key = props.key || null + const ref = props.ref || null + let children = arrayfy(props.children) + let simple = '' + const len = arguments.length + for (let i = 2; i < len; i++) { + let child = arguments[i] + const end = i === len - 1 + const vnode = some(child) ? child : '' + const str = isStr(vnode) + if (str) simple += String(vnode) + if (simple && (!str || end)) { + children.push(createText(simple)) + simple = '' + } + if (!str) children.push(vnode) + } + while (children.some((v) => isArr(v))) { + children = [].concat(...children) + } + if (children.length) { + props.children = children.length === 1 ? children[0] : children + } + delete props.key + return { type, props, key, ref } + } + function createText(vnode) { + return { type: 'text', props: { nodeValue: vnode } } + } + function Fragment(props) { + return props.children + } + const isArr = Array.isArray + + function lazy(loader) { + let p + let comp + let err + return function Lazy(props) { + if (!p) { + p = loader() + p.then( + (exports) => (comp = exports.default || exports), + (e) => (err = e) + ) + } + if (err) throw err + if (!comp) throw p + return h(comp, props) + } + } + function Suspense(props) { + return props.children + } + + const options = {} + + exports.Fragment = Fragment + exports.Suspense = Suspense + exports.createElement = h + exports.h = h + exports.lazy = lazy + exports.options = options + exports.render = render + exports.shouldYield = shouldYield + exports.useCallback = useCallback + exports.useEffect = useEffect + exports.useLayout = useLayout + exports.useLayoutEffect = useLayout + exports.useMemo = useMemo + exports.useReducer = useReducer + exports.useRef = useRef + exports.useState = useState + + Object.defineProperty(exports, '__esModule', { value: true }) +}) +//# sourceMappingURL=fre.umd.js.map diff --git a/packages/wean/src/runtime/wx.js b/packages/wean/src/runtime/wx.js new file mode 100644 index 0000000..bc01994 --- /dev/null +++ b/packages/wean/src/runtime/wx.js @@ -0,0 +1,115 @@ +window.wx = { + canIUse(str) { + return true + }, + navigateTo: ({ url, duration }) => { + history.pushState({}, '', url) + }, + navigateBack({ delta }) { + history.go(-delta) + }, + reLaunch({ url }) { + window.onload = url + }, + showToast: (props, timer = null, dom = null) => { + clearTimeout(timer) + dom = dom || document.createElement('div') + fre.render(fre.h(window.Component.Toast, props), dom) + document.body.appendChild(dom) + timer = setTimeout(() => { + document.body.removeChild(dom) + }, props.duration) + }, + showModal: (props, dom = null) => { + dom = dom || document.createElement('div') + props.dom = dom + fre.render(fre.h(window.Component.Modal, props), dom) + document.body.appendChild(dom) + }, + setNavigationBarTitle(options) { + options = options || {} + const fn = (args) => (document.titile = args.titile) + callfn(fn, { ...options }) + }, + setStorage(options) { + options = options || {} + const fn = (args) => + localStorage.setItem(args.key, JSON.stringify(args.data)) + callfn(fn, { ...options }) + }, + setStorageSync(options) { + options = options || {} + const fn = () => localStorage.setItem(args.key, JSON.stringify(args.data)) + callfn(fn, { ...options }) + }, + getStorage(options) { + options = options || {} + const fn = (args) => { + return { data: localStorage.getItem(args.key) } + } + callfn(fn, { ...options }) + }, + getStorageSync(options) { + options = options || {} + const fn = (args) => { + return { data: localStorage.getItem(args.key) } + } + callfn(fn, { ...options }) + }, + removeStorge(options) { + options = options || {} + const fn = (args) => localStorage.removeItem(args.key) + callfn(fn, { ...options }) + }, + celarStorage(options) { + options = options || {} + const fn = () => localStorage.clear() + callfn(fn, { ...options }) + }, + request(data) { + const config = { method: data.method || 'GET', mode: 'cors' } + if (data.headers) config.headers = data.headers + if (data.data) config.data = JSON.stringify(data.data) + + fetch(data.url, config) + .then((res) => { + return res.json() + }) + .then((res) => { + data.success && data.success({ data: res }) + }) + .catch((e) => { + data.fail && data.fail(e) + throw e + }) + .finally(() => data.complate && data.complate()) + }, + getSystemInfo(options) { + options = options || {} + const systemInfo = window.navigator + let res = { + navHeight: 0, + statusBar: 0, + pixelRatio: window.devicePixelRatio, + screenWidth: screen.width, + screenHeight: screen.height, + windowWidth: screen.availWidth, + windowHeight: screen.availHeight, + language: navigator.language, + platform: navigator.platform + } + const fn = () => res + callfn(fn, { ...options }) + }, + stopPullDownRefresh() {} +} +function callfn(fn, { success, fail, complete, ...args }) { + try { + const res = fn(args) + success && success(res) + } catch (err) { + fail && fail(err) + } finally { + complete && complete(status) + } +} diff --git a/core/index.ejs b/packages/wean/src/templates/index.ejs similarity index 99% rename from core/index.ejs rename to packages/wean/src/templates/index.ejs index 263bc0c..c93323e 100644 --- a/core/index.ejs +++ b/packages/wean/src/templates/index.ejs @@ -42,4 +42,4 @@ berial.register(<%- JSON.stringify(manifest) %>) - \ No newline at end of file + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..a76c15e --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2573 @@ +lockfileVersion: 5.3 + +importers: + + .: + specifiers: + '@changesets/cli': 2.16.0 + '@commitlint/cli': 12.1.4 + '@commitlint/config-conventional': 12.1.4 + husky: 6.0.0 + is-ci: 3.0.0 + lint-staged: 11.0.0 + prettier: 2.3.1 + sort-package-json: 1.50.0 + devDependencies: + '@changesets/cli': 2.16.0 + '@commitlint/cli': 12.1.4 + '@commitlint/config-conventional': 12.1.4 + husky: 6.0.0 + is-ci: 3.0.0 + lint-staged: 11.0.0 + prettier: 2.3.1 + sort-package-json: 1.50.0 + + packages/wean: + specifiers: + '@wean/wxml': workspace:0.0.1 + ejs: 3.1.6 + esbuild: 0.12.8 + md5: 2.3.0 + postcss: 8.3.2 + postcss-selector-parser: 6.0.6 + dependencies: + '@wean/wxml': link:../wean-wxml + ejs: 3.1.6 + esbuild: 0.12.8 + md5: 2.3.0 + postcss: 8.3.2 + postcss-selector-parser: 6.0.6 + + packages/wean-cli: + specifiers: + chalk: 4.1.1 + chokidar: 3.5.1 + commander: 7.2.0 + ejs: 3.1.6 + polka: 0.5.2 + sirv: 1.0.12 + wean: workspace:0.0.1 + dependencies: + chalk: 4.1.1 + chokidar: 3.5.1 + commander: 7.2.0 + ejs: 3.1.6 + polka: 0.5.2 + sirv: 1.0.12 + wean: link:../wean + +packages: + + /@arr/every/1.0.1: + resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==} + engines: {node: '>=4'} + dev: false + + /@babel/code-frame/7.14.5: + resolution: {integrity: sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.14.5 + dev: true + + /@babel/helper-validator-identifier/7.14.5: + resolution: {integrity: sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/highlight/7.14.5: + resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.14.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/runtime/7.14.5: + resolution: {integrity: sha512-121rumjddw9c3NCQ55KGkyE1h/nzWhU/owjhw0l4mQrkzz4x9SGS1X8gFLraHwX7td3Yo4QTL+qj0NcIzN87BA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.7 + dev: true + + /@changesets/apply-release-plan/5.0.0: + resolution: {integrity: sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==} + dependencies: + '@babel/runtime': 7.14.5 + '@changesets/config': 1.6.0 + '@changesets/get-version-range-type': 0.3.2 + '@changesets/git': 1.1.1 + '@changesets/types': 4.0.0 + '@manypkg/get-packages': 1.1.1 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 1.19.1 + resolve-from: 5.0.0 + semver: 5.7.1 + dev: true + + /@changesets/assemble-release-plan/5.0.0: + resolution: {integrity: sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==} + dependencies: + '@babel/runtime': 7.14.5 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.2.1 + '@changesets/types': 4.0.0 + '@manypkg/get-packages': 1.1.1 + semver: 5.7.1 + dev: true + + /@changesets/cli/2.16.0: + resolution: {integrity: sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==} + hasBin: true + dependencies: + '@babel/runtime': 7.14.5 + '@changesets/apply-release-plan': 5.0.0 + '@changesets/assemble-release-plan': 5.0.0 + '@changesets/config': 1.6.0 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.2.1 + '@changesets/get-release-plan': 3.0.0 + '@changesets/git': 1.1.1 + '@changesets/logger': 0.0.5 + '@changesets/pre': 1.0.6 + '@changesets/read': 0.4.7 + '@changesets/types': 4.0.0 + '@changesets/write': 0.1.4 + '@manypkg/get-packages': 1.1.1 + '@types/semver': 6.2.2 + boxen: 1.3.0 + chalk: 2.4.2 + enquirer: 2.3.6 + external-editor: 3.1.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + is-ci: 2.0.0 + meow: 6.1.1 + outdent: 0.5.0 + p-limit: 2.3.0 + preferred-pm: 3.0.3 + semver: 5.7.1 + spawndamnit: 2.0.0 + term-size: 2.2.1 + tty-table: 2.8.13 + dev: true + + /@changesets/config/1.6.0: + resolution: {integrity: sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==} + dependencies: + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.2.1 + '@changesets/logger': 0.0.5 + '@changesets/types': 4.0.0 + '@manypkg/get-packages': 1.1.1 + fs-extra: 7.0.1 + micromatch: 4.0.4 + dev: true + + /@changesets/errors/0.1.4: + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + dependencies: + extendable-error: 0.1.7 + dev: true + + /@changesets/get-dependents-graph/1.2.1: + resolution: {integrity: sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==} + dependencies: + '@changesets/types': 4.0.0 + '@manypkg/get-packages': 1.1.1 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 5.7.1 + dev: true + + /@changesets/get-release-plan/3.0.0: + resolution: {integrity: sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==} + dependencies: + '@babel/runtime': 7.14.5 + '@changesets/assemble-release-plan': 5.0.0 + '@changesets/config': 1.6.0 + '@changesets/pre': 1.0.6 + '@changesets/read': 0.4.7 + '@changesets/types': 4.0.0 + '@manypkg/get-packages': 1.1.1 + dev: true + + /@changesets/get-version-range-type/0.3.2: + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + dev: true + + /@changesets/git/1.1.1: + resolution: {integrity: sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==} + dependencies: + '@babel/runtime': 7.14.5 + '@changesets/errors': 0.1.4 + '@changesets/types': 4.0.0 + '@manypkg/get-packages': 1.1.1 + is-subdir: 1.2.0 + spawndamnit: 2.0.0 + dev: true + + /@changesets/logger/0.0.5: + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + dependencies: + chalk: 2.4.2 + dev: true + + /@changesets/parse/0.3.8: + resolution: {integrity: sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==} + dependencies: + '@changesets/types': 4.0.0 + js-yaml: 3.14.1 + dev: true + + /@changesets/pre/1.0.6: + resolution: {integrity: sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==} + dependencies: + '@babel/runtime': 7.14.5 + '@changesets/errors': 0.1.4 + '@changesets/types': 4.0.0 + '@manypkg/get-packages': 1.1.1 + fs-extra: 7.0.1 + dev: true + + /@changesets/read/0.4.7: + resolution: {integrity: sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==} + dependencies: + '@babel/runtime': 7.14.5 + '@changesets/git': 1.1.1 + '@changesets/logger': 0.0.5 + '@changesets/parse': 0.3.8 + '@changesets/types': 4.0.0 + chalk: 2.4.2 + fs-extra: 7.0.1 + p-filter: 2.1.0 + dev: true + + /@changesets/types/4.0.0: + resolution: {integrity: sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==} + dev: true + + /@changesets/write/0.1.4: + resolution: {integrity: sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==} + dependencies: + '@babel/runtime': 7.14.5 + '@changesets/types': 4.0.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 1.19.1 + dev: true + + /@commitlint/cli/12.1.4: + resolution: {integrity: sha512-ZR1WjXLvqEffYyBPT0XdnSxtt3Ty1TMoujEtseW5o3vPnkA1UNashAMjQVg/oELqfaiAMnDw8SERPMN0e/0kLg==} + engines: {node: '>=v10'} + hasBin: true + dependencies: + '@commitlint/format': 12.1.4 + '@commitlint/lint': 12.1.4 + '@commitlint/load': 12.1.4 + '@commitlint/read': 12.1.4 + '@commitlint/types': 12.1.4 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 16.2.0 + dev: true + + /@commitlint/config-conventional/12.1.4: + resolution: {integrity: sha512-ZIdzmdy4o4WyqywMEpprRCrehjCSQrHkaRTVZV411GyLigFQHlEBSJITAihLAWe88Qy/8SyoIe5uKvAsV5vRqQ==} + engines: {node: '>=v10'} + dependencies: + conventional-changelog-conventionalcommits: 4.6.0 + dev: true + + /@commitlint/ensure/12.1.4: + resolution: {integrity: sha512-MxHIBuAG9M4xl33qUfIeMSasbv3ktK0W+iygldBxZOL4QSYC2Gn66pZAQMnV9o3V+sVFHoAK2XUKqBAYrgbEqw==} + engines: {node: '>=v10'} + dependencies: + '@commitlint/types': 12.1.4 + lodash: 4.17.21 + dev: true + + /@commitlint/execute-rule/12.1.4: + resolution: {integrity: sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==} + engines: {node: '>=v10'} + dev: true + + /@commitlint/format/12.1.4: + resolution: {integrity: sha512-h28ucMaoRjVvvgS6Bdf85fa/+ZZ/iu1aeWGCpURnQV7/rrVjkhNSjZwGlCOUd5kDV1EnZ5XdI7L18SUpRjs26g==} + engines: {node: '>=v10'} + dependencies: + '@commitlint/types': 12.1.4 + chalk: 4.1.1 + dev: true + + /@commitlint/is-ignored/12.1.4: + resolution: {integrity: sha512-uTu2jQU2SKvtIRVLOzMQo3KxDtO+iJ1p0olmncwrqy4AfPLgwoyCP2CiULq5M7xpR3+dE3hBlZXbZTQbD7ycIw==} + engines: {node: '>=v10'} + dependencies: + '@commitlint/types': 12.1.4 + semver: 7.3.5 + dev: true + + /@commitlint/lint/12.1.4: + resolution: {integrity: sha512-1kZ8YDp4to47oIPFELUFGLiLumtPNKJigPFDuHt2+f3Q3IKdQ0uk53n3CPl4uoyso/Og/EZvb1mXjFR/Yce4cA==} + engines: {node: '>=v10'} + dependencies: + '@commitlint/is-ignored': 12.1.4 + '@commitlint/parse': 12.1.4 + '@commitlint/rules': 12.1.4 + '@commitlint/types': 12.1.4 + dev: true + + /@commitlint/load/12.1.4: + resolution: {integrity: sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==} + engines: {node: '>=v10'} + dependencies: + '@commitlint/execute-rule': 12.1.4 + '@commitlint/resolve-extends': 12.1.4 + '@commitlint/types': 12.1.4 + chalk: 4.1.1 + cosmiconfig: 7.0.0 + lodash: 4.17.21 + resolve-from: 5.0.0 + dev: true + + /@commitlint/message/12.1.4: + resolution: {integrity: sha512-6QhalEKsKQ/Y16/cTk5NH4iByz26fqws2ub+AinHPtM7Io0jy4e3rym9iE+TkEqiqWZlUigZnTwbPvRJeSUBaA==} + engines: {node: '>=v10'} + dev: true + + /@commitlint/parse/12.1.4: + resolution: {integrity: sha512-yqKSAsK2V4X/HaLb/yYdrzs6oD/G48Ilt0EJ2Mp6RJeWYxG14w/Out6JrneWnr/cpzemyN5hExOg6+TB19H/Lw==} + engines: {node: '>=v10'} + dependencies: + '@commitlint/types': 12.1.4 + conventional-changelog-angular: 5.0.12 + conventional-commits-parser: 3.2.1 + dev: true + + /@commitlint/read/12.1.4: + resolution: {integrity: sha512-TnPQSJgD8Aod5Xeo9W4SaYKRZmIahukjcCWJ2s5zb3ZYSmj6C85YD9cR5vlRyrZjj78ItLUV/X4FMWWVIS38Jg==} + engines: {node: '>=v10'} + dependencies: + '@commitlint/top-level': 12.1.4 + '@commitlint/types': 12.1.4 + fs-extra: 9.1.0 + git-raw-commits: 2.0.10 + dev: true + + /@commitlint/resolve-extends/12.1.4: + resolution: {integrity: sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==} + engines: {node: '>=v10'} + dependencies: + import-fresh: 3.3.0 + lodash: 4.17.21 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules/12.1.4: + resolution: {integrity: sha512-W8m6ZSjg7RuIsIfzQiFHa48X5mcPXeKT9yjBxVmjHvYfS2FDBf1VxCQ7vO0JTVIdV4ohjZ0eKg/wxxUuZHJAZg==} + engines: {node: '>=v10'} + dependencies: + '@commitlint/ensure': 12.1.4 + '@commitlint/message': 12.1.4 + '@commitlint/to-lines': 12.1.4 + '@commitlint/types': 12.1.4 + dev: true + + /@commitlint/to-lines/12.1.4: + resolution: {integrity: sha512-TParumvbi8bdx3EdLXz2MaX+e15ZgoCqNUgqHsRLwyqLUTRbqCVkzrfadG1UcMQk8/d5aMbb327ZKG3Q4BRorw==} + engines: {node: '>=v10'} + dev: true + + /@commitlint/top-level/12.1.4: + resolution: {integrity: sha512-d4lTJrOT/dXlpY+NIt4CUl77ciEzYeNVc0VFgUQ6VA+b1rqYD2/VWFjBlWVOrklxtSDeKyuEhs36RGrppEFAvg==} + engines: {node: '>=v10'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types/12.1.4: + resolution: {integrity: sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==} + engines: {node: '>=v10'} + dependencies: + chalk: 4.1.1 + dev: true + + /@manypkg/find-root/1.1.0: + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + dependencies: + '@babel/runtime': 7.14.5 + '@types/node': 12.20.15 + find-up: 4.1.0 + fs-extra: 8.1.0 + dev: true + + /@manypkg/get-packages/1.1.1: + resolution: {integrity: sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==} + dependencies: + '@babel/runtime': 7.14.5 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.0.3 + read-yaml-file: 1.1.0 + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.7: + resolution: {integrity: sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.11.0 + dev: true + + /@polka/url/0.5.0: + resolution: {integrity: sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==} + dev: false + + /@polka/url/1.0.0-next.15: + resolution: {integrity: sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==} + dev: false + + /@types/glob/7.1.3: + resolution: {integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==} + dependencies: + '@types/minimatch': 3.0.4 + '@types/node': 15.12.2 + dev: true + + /@types/minimatch/3.0.4: + resolution: {integrity: sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==} + dev: true + + /@types/minimist/1.2.1: + resolution: {integrity: sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==} + dev: true + + /@types/node/12.20.15: + resolution: {integrity: sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg==} + dev: true + + /@types/node/15.12.2: + resolution: {integrity: sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==} + dev: true + + /@types/normalize-package-data/2.4.0: + resolution: {integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + + /@types/semver/6.2.2: + resolution: {integrity: sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==} + dev: true + + /JSONStream/1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ansi-align/2.0.0: + resolution: {integrity: sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=} + dependencies: + string-width: 2.1.1 + dev: true + + /ansi-colors/4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex/3.0.0: + resolution: {integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=} + engines: {node: '>=4'} + dev: true + + /ansi-regex/5.0.0: + resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} + engines: {node: '>=8'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.0 + dev: false + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /array-ify/1.0.0: + resolution: {integrity: sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=} + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /arrify/1.0.1: + resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} + engines: {node: '>=0.10.0'} + dev: true + + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async/0.9.2: + resolution: {integrity: sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=} + dev: false + + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /better-path-resolve/1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + dependencies: + is-windows: 1.0.2 + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + + /boxen/1.3.0: + resolution: {integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==} + engines: {node: '>=4'} + dependencies: + ansi-align: 2.0.0 + camelcase: 4.1.0 + chalk: 2.4.2 + cli-boxes: 1.0.0 + string-width: 2.1.1 + term-size: 1.2.0 + widest-line: 2.0.1 + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /breakword/1.0.5: + resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} + dependencies: + wcwidth: 1.0.1 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-keys/6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.2.1 + quick-lru: 4.0.1 + dev: true + + /camelcase/4.1.0: + resolution: {integrity: sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=} + engines: {node: '>=4'} + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk/3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/4.1.1: + resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chardet/0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /charenc/0.0.2: + resolution: {integrity: sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=} + dev: false + + /chokidar/3.5.1: + resolution: {integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==} + engines: {node: '>= 8.10.0'} + 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.5.0 + optionalDependencies: + fsevents: 2.3.2 + dev: false + + /ci-info/2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true + + /ci-info/3.2.0: + resolution: {integrity: sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==} + dev: true + + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-boxes/1.0.0: + resolution: {integrity: sha1-T6kXw+WclKAEzWH47lCdplFocUM=} + engines: {node: '>=0.10.0'} + dev: true + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-truncate/2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.2 + dev: true + + /cliui/6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.2 + strip-ansi: 6.0.0 + wrap-ansi: 6.2.0 + dev: true + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.2 + strip-ansi: 6.0.0 + wrap-ansi: 7.0.0 + dev: true + + /clone/1.0.4: + resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} + engines: {node: '>=0.8'} + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /colorette/1.2.2: + resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==} + + /commander/7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + /compare-func/2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + + /conventional-changelog-angular/5.0.12: + resolution: {integrity: sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-conventionalcommits/4.6.0: + resolution: {integrity: sha512-sj9tj3z5cnHaSJCYObA9nISf7eq/YjscLPoq6nmew4SiOjxqL2KRpK20fjnjVbpNDjJ2HR3MoVcWKXwbVvzS0A==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: true + + /conventional-commits-parser/3.2.1: + resolution: {integrity: sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + is-text-path: 1.0.1 + JSONStream: 1.3.5 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + trim-off-newlines: 1.0.1 + dev: true + + /cosmiconfig/7.0.0: + resolution: {integrity: sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cross-spawn/5.1.0: + resolution: {integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypt/0.0.2: + resolution: {integrity: sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=} + dev: false + + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /csv-generate/3.4.0: + resolution: {integrity: sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==} + dev: true + + /csv-parse/4.16.0: + resolution: {integrity: sha512-Zb4tGPANH4SW0LgC9+s9Mnequs9aqn7N3/pCqNbVjs2XhEF6yWNU2Vm4OGl1v2Go9nw8rXt87Cm2QN/o6Vpqgg==} + dev: true + + /csv-stringify/5.6.2: + resolution: {integrity: sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==} + dev: true + + /csv/5.5.0: + resolution: {integrity: sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==} + engines: {node: '>= 0.1.90'} + dependencies: + csv-generate: 3.4.0 + csv-parse: 4.16.0 + csv-stringify: 5.6.2 + stream-transform: 2.1.0 + dev: true + + /dargs/7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true + + /debug/4.3.1: + resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize-keys/1.1.0: + resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize/1.2.0: + resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} + engines: {node: '>=0.10.0'} + dev: true + + /dedent/0.7.0: + resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} + dev: true + + /defaults/1.0.3: + resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=} + dependencies: + clone: 1.0.4 + dev: true + + /detect-indent/6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /detect-newline/3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dot-prop/5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /ejs/3.1.6: + resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.2 + dev: false + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /enquirer/2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.1 + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /esbuild/0.12.8: + resolution: {integrity: sha512-sx/LwlP/SWTGsd9G4RlOPrXnIihAJ2xwBUmzoqe2nWwbXORMQWtAGNJNYLBJJqa3e9PWvVzxdrtyFZJcr7D87g==} + hasBin: true + requiresBuild: true + dev: false + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /execa/0.7.0: + resolution: {integrity: sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=} + engines: {node: '>=4'} + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.3 + strip-eof: 1.0.0 + dev: true + + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.0 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.3 + strip-final-newline: 2.0.0 + dev: true + + /extendable-error/0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + dev: true + + /external-editor/3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /fast-glob/3.2.5: + resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} + engines: {node: '>=8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.7 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.4 + picomatch: 2.3.0 + dev: true + + /fastq/1.11.0: + resolution: {integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==} + dependencies: + reusify: 1.0.4 + dev: true + + /filelist/1.0.2: + resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==} + dependencies: + minimatch: 3.0.4 + dev: false + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-yarn-workspace-root2/1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.4 + pkg-dir: 4.2.0 + dev: true + + /fs-extra/7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.6 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra/8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.6 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.6 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + dev: false + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-own-enumerable-property-symbols/3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: true + + /get-stream/3.0.0: + resolution: {integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=} + engines: {node: '>=4'} + dev: true + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /git-hooks-list/1.0.3: + resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} + dev: true + + /git-raw-commits/2.0.10: + resolution: {integrity: sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.1 + + /glob/7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-dirs/0.1.1: + resolution: {integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /globby/10.0.0: + resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} + engines: {node: '>=8'} + dependencies: + '@types/glob': 7.1.3 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.5 + glob: 7.1.7 + ignore: 5.1.8 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby/11.0.3: + resolution: {integrity: sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.5 + ignore: 5.1.8 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /graceful-fs/4.2.6: + resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} + dev: true + + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info/4.0.2: + resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /human-id/1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + dev: true + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /husky/6.0.0: + resolution: {integrity: sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==} + hasBin: true + dev: true + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ignore/5.1.8: + resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} + engines: {node: '>= 4'} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: false + + /is-buffer/1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: false + + /is-ci/2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: true + + /is-ci/3.0.0: + resolution: {integrity: sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==} + hasBin: true + dependencies: + ci-info: 3.2.0 + dev: true + + /is-core-module/2.4.0: + resolution: {integrity: sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==} + dependencies: + has: 1.0.3 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point/2.0.0: + resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=} + engines: {node: '>=4'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-glob/4.0.1: + resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-obj/1.0.1: + resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=} + engines: {node: '>=0.10.0'} + dev: true + + /is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj/1.1.0: + resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj/2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + + /is-regexp/1.0.0: + resolution: {integrity: sha1-/S2INUXEa6xaYz57mgnof6LLUGk=} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream/1.1.0: + resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream/2.0.0: + resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} + engines: {node: '>=8'} + dev: true + + /is-subdir/1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + dependencies: + better-path-resolve: 1.0.0 + dev: true + + /is-text-path/1.0.1: + resolution: {integrity: sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-windows/1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + dev: true + + /jake/10.8.2: + resolution: {integrity: sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==} + hasBin: true + dependencies: + async: 0.9.2 + chalk: 2.4.2 + filelist: 1.0.2 + minimatch: 3.0.4 + dev: false + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /jsonfile/4.0.0: + resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} + optionalDependencies: + graceful-fs: 4.2.6 + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.6 + dev: true + + /jsonparse/1.3.1: + resolution: {integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=} + engines: {'0': node >= 0.2.0} + dev: true + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /lines-and-columns/1.1.6: + resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} + dev: true + + /lint-staged/11.0.0: + resolution: {integrity: sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw==} + hasBin: true + dependencies: + chalk: 4.1.1 + cli-truncate: 2.1.0 + commander: 7.2.0 + cosmiconfig: 7.0.0 + debug: 4.3.1 + dedent: 0.7.0 + enquirer: 2.3.6 + execa: 5.1.1 + listr2: 3.10.0_enquirer@2.3.6 + log-symbols: 4.1.0 + micromatch: 4.0.4 + normalize-path: 3.0.0 + please-upgrade-node: 3.2.0 + string-argv: 0.3.1 + stringify-object: 3.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2/3.10.0_enquirer@2.3.6: + resolution: {integrity: sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw==} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + dependencies: + cli-truncate: 2.1.0 + colorette: 1.2.2 + enquirer: 2.3.6 + log-update: 4.0.0 + p-map: 4.0.0 + rxjs: 6.6.7 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /load-yaml-file/0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.6 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.startcase/4.4.0: + resolution: {integrity: sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.1 + is-unicode-supported: 0.1.0 + dev: true + + /log-update/4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /lru-cache/4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /map-obj/1.0.1: + resolution: {integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/4.2.1: + resolution: {integrity: sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==} + engines: {node: '>=8'} + dev: true + + /matchit/1.1.0: + resolution: {integrity: sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA==} + engines: {node: '>=6'} + dependencies: + '@arr/every': 1.0.1 + dev: false + + /md5/2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + dev: false + + /meow/6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + dependencies: + '@types/minimist': 1.2.1 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + dev: true + + /meow/8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.1 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.2 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.7 + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.4: + resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.0 + dev: true + + /mime/2.5.2: + resolution: {integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: false + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch/3.0.4: + resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + dependencies: + brace-expansion: 1.1.11 + + /minimist-options/4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /mixme/0.5.1: + resolution: {integrity: sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==} + engines: {node: '>= 8.0.0'} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /nanoid/3.1.23: + resolution: {integrity: sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.20.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data/3.0.2: + resolution: {integrity: sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.0.2 + resolve: 1.20.0 + semver: 7.3.5 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /npm-run-path/2.0.2: + resolution: {integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: true + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /os-tmpdir/1.0.2: + resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} + engines: {node: '>=0.10.0'} + dev: true + + /outdent/0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + dev: true + + /p-filter/2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 + dev: true + + /p-finally/1.0.0: + resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} + engines: {node: '>=4'} + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map/2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true + + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.14.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.1.6 + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/2.0.1: + resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} + engines: {node: '>=4'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picomatch/2.3.0: + resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} + engines: {node: '>=8.6'} + + /pify/4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /please-upgrade-node/3.2.0: + resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + dependencies: + semver-compare: 1.0.0 + dev: true + + /polka/0.5.2: + resolution: {integrity: sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==} + dependencies: + '@polka/url': 0.5.0 + trouter: 2.0.1 + dev: false + + /postcss-selector-parser/6.0.6: + resolution: {integrity: sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss/8.3.2: + resolution: {integrity: sha512-y1FK/AWdZlBF5lusS5j5l4/vF67+vQZt1SXPVJ32y1kRGDQyrs1zk32hG1cInRTu14P0V+orPz+ifwW/7rR4bg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + colorette: 1.2.2 + nanoid: 3.1.23 + source-map-js: 0.6.2 + dev: false + + /preferred-pm/3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: true + + /prettier/1.19.1: + resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /prettier/2.3.1: + resolution: {integrity: sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pseudomap/1.0.2: + resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} + dev: true + + /q/1.5.1: + resolution: {integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru/4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.0 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /read-yaml-file/1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.6 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp/3.5.0: + resolution: {integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.0 + dev: false + + /redent/3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regenerator-runtime/0.13.7: + resolution: {integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==} + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename/2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-global/1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve/1.20.0: + resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} + dependencies: + is-core-module: 2.4.0 + path-parse: 1.0.7 + dev: true + + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.3 + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs/6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /semver-compare/1.0.0: + resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} + dev: true + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver/7.3.5: + resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-blocking/2.0.0: + resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} + dev: true + + /shebang-command/1.2.0: + resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/1.0.0: + resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /signal-exit/3.0.3: + resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} + dev: true + + /sirv/1.0.12: + resolution: {integrity: sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.15 + mime: 2.5.2 + totalist: 1.1.0 + dev: false + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi/3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /smartwrap/1.2.5: + resolution: {integrity: sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==} + deprecated: Backported compatibility to node > 6 + hasBin: true + dependencies: + breakword: 1.0.5 + grapheme-splitter: 1.0.4 + strip-ansi: 6.0.0 + wcwidth: 1.0.1 + yargs: 15.4.1 + dev: true + + /sort-object-keys/1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + dev: true + + /sort-package-json/1.50.0: + resolution: {integrity: sha512-qZpqhMU9XTntebgAgc4hv/D6Fzhh7kFnwvV6a7+q8y8J5JoaDqPYQnvXPf7BBqG95tdE8X6JVNo7/jDzcbdfUg==} + hasBin: true + dependencies: + detect-indent: 6.1.0 + detect-newline: 3.1.0 + git-hooks-list: 1.0.3 + globby: 10.0.0 + is-plain-obj: 2.1.0 + sort-object-keys: 1.1.3 + dev: true + + /source-map-js/0.6.2: + resolution: {integrity: sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==} + engines: {node: '>=0.10.0'} + dev: false + + /spawndamnit/2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + dependencies: + cross-spawn: 5.1.0 + signal-exit: 3.0.3 + dev: true + + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.9 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.9 + dev: true + + /spdx-license-ids/3.0.9: + resolution: {integrity: sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==} + dev: true + + /split2/3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /sprintf-js/1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + dev: true + + /stream-transform/2.1.0: + resolution: {integrity: sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==} + dependencies: + mixme: 0.5.1 + dev: true + + /string-argv/0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + + /string-width/2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: true + + /string-width/4.2.2: + resolution: {integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.0 + dev: true + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-object/3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + /strip-ansi/4.0.0: + resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=} + engines: {node: '>=4'} + dependencies: + ansi-regex: 3.0.0 + dev: true + + /strip-ansi/6.0.0: + resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.0 + dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + engines: {node: '>=4'} + dev: true + + /strip-eof/1.0.0: + resolution: {integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=} + engines: {node: '>=0.10.0'} + dev: true + + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /term-size/1.2.0: + resolution: {integrity: sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=} + engines: {node: '>=4'} + dependencies: + execa: 0.7.0 + dev: true + + /term-size/2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: true + + /text-extensions/1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: true + + /through/2.3.8: + resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + dev: true + + /through2/4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /tmp/0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /totalist/1.1.0: + resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} + engines: {node: '>=6'} + dev: false + + /trim-newlines/3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /trim-off-newlines/1.0.1: + resolution: {integrity: sha1-n5up2e+odkw4dpi8v+sshI8RrbM=} + engines: {node: '>=0.10.0'} + dev: true + + /trouter/2.0.1: + resolution: {integrity: sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==} + engines: {node: '>=6'} + dependencies: + matchit: 1.1.0 + dev: false + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tty-table/2.8.13: + resolution: {integrity: sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==} + engines: {node: '>=8.16.0'} + hasBin: true + dependencies: + chalk: 3.0.0 + csv: 5.5.0 + smartwrap: 1.2.5 + strip-ansi: 6.0.0 + wcwidth: 1.0.1 + yargs: 15.4.1 + dev: true + + /type-fest/0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /universalify/0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /util-deprecate/1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /wcwidth/1.0.1: + resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} + dependencies: + defaults: 1.0.3 + dev: true + + /which-module/2.0.0: + resolution: {integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=} + dev: true + + /which-pm/2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: true + + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /widest-line/2.0.1: + resolution: {integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==} + engines: {node: '>=4'} + dependencies: + string-width: 2.1.1 + dev: true + + /wrap-ansi/6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + /wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + dev: true + + /y18n/4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist/2.1.2: + resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yargs-parser/18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser/20.2.7: + resolution: {integrity: sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==} + engines: {node: '>=10'} + dev: true + + /yargs/15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.2 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.2 + y18n: 5.0.8 + yargs-parser: 20.2.7 + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..d622e59 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "packages/**" + - "examples/**" diff --git a/wxml/index.js b/wxml/index.js deleted file mode 100644 index dbb1c8c..0000000 --- a/wxml/index.js +++ /dev/null @@ -1,9 +0,0 @@ -const parse = require("./parse") -const lex = require("./lex") -const generate = require("./generate") - -module.exports = { - lex, - parse, - generate, -} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 59f7823..0000000 --- a/yarn.lock +++ /dev/null @@ -1,1401 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@arr/every@^1.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz" - integrity sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg== - -"@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/compat-data@^7.13.8": - version "7.13.8" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.8.tgz" - integrity sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog== - -"@babel/core@^7.12.10": - version "7.13.10" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz" - integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.9" - "@babel/helper-compilation-targets" "^7.13.10" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helpers" "^7.13.10" - "@babel/parser" "^7.13.10" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - lodash "^4.17.19" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.13.0", "@babel/generator@^7.13.9": - version "7.13.9" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz" - integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== - dependencies: - "@babel/types" "^7.13.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-compilation-targets@^7.13.10": - version "7.13.10" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz" - integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== - dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" - -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-member-expression-to-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz" - integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-module-imports@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz" - integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-module-transforms@^7.13.0": - version "7.13.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz" - integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-plugin-utils@^7.12.13": - version "7.13.0" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-replace-supers@^7.13.0": - version "7.13.0" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz" - integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.0" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-simple-access@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz" - integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - -"@babel/helpers@^7.13.10": - version "7.13.10" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz" - integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/highlight@^7.12.13": - version "7.13.10" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz" - integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.10": - version "7.13.10" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.13.10.tgz" - integrity sha512-0s7Mlrw9uTWkYua7xWr99Wpk2bnGa0ANleKfksYAES8LpWH4gW1OUr42vqKNf0us5UQNfru2wPqMqRITzq/SIQ== - -"@babel/plugin-syntax-jsx@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz" - integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-react-jsx@^7.12.10": - version "7.12.17" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz" - integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.12.17" - -"@babel/template@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.12.0", "@babel/traverse@^7.13.0": - version "7.13.0" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz" - integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.0" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.0" - "@babel/types" "^7.13.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.13.0": - version "7.13.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz" - integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@polka/url@^0.5.0": - version "0.5.0" - resolved "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz" - integrity sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw== - -"@polka/url@^1.0.0-next.9": - version "1.0.0-next.11" - resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.11.tgz" - integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA== - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -abbrev@1: - version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^3.2.1: - 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== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -async@0.9.x: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - 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" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.14.5: - version "4.16.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz" - integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== - dependencies: - caniuse-lite "^1.0.30001181" - colorette "^1.2.1" - electron-to-chromium "^1.3.649" - escalade "^3.1.1" - node-releases "^1.1.70" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001181: - version "1.0.30001199" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001199.tgz" - integrity sha512-ifbK2eChUCFUwGhlEzIoVwzFt1+iriSjyKKFYNfv6hN34483wyWpLLavYQXhnR036LhkdUYaSDpHg1El++VgHQ== - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - -"chokidar@>=2.0.0 <4.0.0", "chokidar@>=3.0.0 <4.0.0", chokidar@^3.2.2, chokidar@^3.5.1: - - version "3.5.1" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^1.2.1, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" - integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cross-fetch@^3.0.6: - version "3.1.0" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.0.tgz" - integrity sha512-a+yso9lSpXQI9DH+YjAu/m0dVfP8IVoZDPBLLFcvGpeq3KHNdikkekTOdkHiXEuTq4GBOeO0MfWkE40yzF1w7g== - dependencies: - node-fetch "2.6.1" - -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-tree@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" - integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csso@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -dart-sass@^1.25.0: - version "1.25.0" - resolved "http://registry.npm.release.ctripcorp.com/dart-sass/download/dart-sass-1.25.0.tgz#e00c0348118916e9d81cb485297184c131af1dad" - integrity sha1-4AwDSBGJFunYHLSFKXGEwTGvHa0= - dependencies: - chokidar ">=2.0.0 <4.0.0" - -debug@^2.2.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.6: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -ejs@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" - integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== - dependencies: - jake "^10.6.1" - -electron-to-chromium@^1.3.649: - version "1.3.687" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.687.tgz" - integrity sha512-IpzksdQNl3wdgkzf7dnA7/v10w0Utf1dF2L+B4+gKrloBrxCut+au+kky3PYvle3RMdSxZP+UiCZtLbcYRxSNQ== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -esbuild@^0.12.1: - version "0.12.1" - resolved "http://registry.npm.release.ctripcorp.com/esbuild/download/esbuild-0.12.1.tgz#f652d5b3b9432dbb42fc2c034ddd62360296e03d" - integrity sha1-9lLVs7lDLbtC/CwDTd1iNgKW4D0= - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -filelist@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" - integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== - dependencies: - minimatch "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -gensync@^1.0.0-beta.2: - 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== - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -glob-parent@~5.1.0: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.2: - version "4.2.6" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -ini@1.3.7, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - 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== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.1: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -jake@^10.6.1: - version "10.8.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" - integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== - dependencies: - async "0.9.x" - chalk "^2.4.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lodash@^4.17.19: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -make-dir@^3.0.0: - 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== - dependencies: - semver "^6.0.0" - -matchit@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/matchit/-/matchit-1.1.0.tgz" - integrity sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA== - dependencies: - "@arr/every" "^1.0.0" - -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -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== - -mime@^2.3.1: - version "2.5.2" - resolved "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -nanoid@^3.1.20, nanoid@^3.1.21: - version "3.1.21" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.21.tgz" - integrity sha512-A6oZraK4DJkAOICstsGH98dvycPr/4GGDH7ZWKmMdd3vGcOurZ6JmWFUt0DA5bzrrn2FrUjmv6mFNWvv8jpppA== - -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-releases@^1.1.70: - version "1.1.71" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== - -nodemon@^2.0.6: - version "2.0.7" - resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz" - integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA== - dependencies: - chokidar "^3.2.2" - debug "^3.2.6" - ignore-by-default "^1.0.1" - minimatch "^3.0.4" - pstree.remy "^1.1.7" - semver "^5.7.1" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.3" - update-notifier "^4.1.0" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= - dependencies: - abbrev "1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -polka@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/polka/-/polka-0.5.2.tgz" - integrity sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw== - dependencies: - "@polka/url" "^0.5.0" - trouter "^2.0.1" - -postcss-selector-parser@^6.0.4: - version "6.0.4" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" - -postcss@^8.2.2: - version "8.2.8" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz" - integrity sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw== - dependencies: - colorette "^1.2.2" - nanoid "^3.1.20" - source-map "^0.6.1" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -prettier@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== - -pstree.remy@^1.1.7: - version "1.1.8" - resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" - integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -sass@^1.32.13: - version "1.32.13" - resolved "http://registry.npm.release.ctripcorp.com/sass/download/sass-1.32.13.tgz#8d29c849e625a415bce71609c7cf95e15f74ed00" - integrity sha1-jSnISeYlpBW85xYJx8+V4V907QA= - dependencies: - chokidar ">=3.0.0 <4.0.0" - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -semver@^5.7.1: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -sirv@^1.0.10: - version "1.0.11" - resolved "https://registry.npmjs.org/sirv/-/sirv-1.0.11.tgz" - integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg== - dependencies: - "@polka/url" "^1.0.0-next.9" - mime "^2.3.1" - totalist "^1.0.0" - -source-map-support@~0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0: - version "4.2.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - -terser@^5.6.1: - version "5.6.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" - integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^5.0.1: - 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== - dependencies: - is-number "^7.0.0" - -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - -trouter@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/trouter/-/trouter-2.0.1.tgz" - integrity sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ== - dependencies: - matchit "^1.0.0" - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -undefsafe@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz" - integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== - dependencies: - debug "^2.2.0" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -update-notifier@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==