From 0f6913721e0de2f8a6b6a971f50ce9a0ddc44846 Mon Sep 17 00:00:00 2001 From: mgmeyers Date: Sat, 14 Oct 2023 12:56:52 -0700 Subject: [PATCH] 1.1.5 --- esbuild.config.mjs | 94 ++++++++-------- manifest.json | 16 +-- package.json | 18 +++- prettier.config.cjs | 21 ++++ release-notes.md | 4 + src/extension.ts | 20 ++-- src/main.ts | 45 ++++---- src/postProcessor.ts | 25 ++--- src/settings.ts | 95 ++++++++-------- version-bump.mjs | 14 +++ versions.json | 3 +- yarn.lock | 251 ++++++++++++++++++++++++++++++++++++++++++- 12 files changed, 456 insertions(+), 150 deletions(-) create mode 100644 prettier.config.cjs create mode 100644 release-notes.md create mode 100644 version-bump.mjs diff --git a/esbuild.config.mjs b/esbuild.config.mjs index 645372f..fdeff37 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -1,52 +1,56 @@ -import esbuild from "esbuild"; -import process from "process"; -import builtins from 'builtin-modules' +import esbuild from 'esbuild'; +import process from 'process'; +import builtins from 'builtin-modules'; -const banner = -`/* +const banner = `/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ `; -const prod = (process.argv[2] === 'production'); +const prod = process.argv[2] === 'production'; -esbuild.build({ - banner: { - js: banner, - }, - entryPoints: ['src/main.ts'], - bundle: true, - external: [ - 'obsidian', - 'electron', - '@codemirror/autocomplete', - '@codemirror/closebrackets', - '@codemirror/collab', - '@codemirror/commands', - '@codemirror/comment', - '@codemirror/fold', - '@codemirror/gutter', - '@codemirror/highlight', - '@codemirror/history', - '@codemirror/language', - '@codemirror/lint', - '@codemirror/matchbrackets', - '@codemirror/panel', - '@codemirror/rangeset', - '@codemirror/rectangular-selection', - '@codemirror/search', - '@codemirror/state', - '@codemirror/stream-parser', - '@codemirror/text', - '@codemirror/tooltip', - '@codemirror/view', - ...builtins], - format: 'cjs', - watch: !prod, - target: 'es2016', - logLevel: "info", - sourcemap: prod ? false : 'inline', - treeShaking: true, - outfile: 'main.js', -}).catch(() => process.exit(1)); +esbuild + .build({ + banner: { + js: banner, + }, + entryPoints: ['./src/main.ts'], + bundle: true, + external: [ + 'obsidian', + 'electron', + '@codemirror/autocomplete', + '@codemirror/closebrackets', + '@codemirror/collab', + '@codemirror/commands', + '@codemirror/comment', + '@codemirror/fold', + '@codemirror/gutter', + '@codemirror/highlight', + '@codemirror/history', + '@codemirror/language', + '@codemirror/lint', + '@codemirror/matchbrackets', + '@codemirror/panel', + '@codemirror/rangeset', + '@codemirror/rectangular-selection', + '@codemirror/search', + '@codemirror/state', + '@codemirror/stream-parser', + '@codemirror/text', + '@codemirror/tooltip', + '@codemirror/view', + 'node:*', + ...builtins, + ], + format: 'cjs', + watch: !prod, + target: 'es2016', + logLevel: 'info', + sourcemap: prod ? false : 'inline', + treeShaking: true, + outfile: 'main.js', + minify: prod, + }) + .catch(() => process.exit(1)); diff --git a/manifest.json b/manifest.json index 905c40d..e57df53 100644 --- a/manifest.json +++ b/manifest.json @@ -1,10 +1,10 @@ { - "id": "obsidian-list-callouts", - "name": "List Callouts", - "version": "1.1.4", - "minAppVersion": "1.1.1", - "description": "Create simple callouts in lists.", - "author": "mgmeyers", - "authorUrl": "https://github.com/mgmeyers/obsidian-list-callouts", - "isDesktopOnly": false + "id": "obsidian-list-callouts", + "name": "List Callouts", + "version": "1.1.5", + "minAppVersion": "1.1.1", + "description": "Create simple callouts in lists.", + "author": "mgmeyers", + "authorUrl": "https://github.com/mgmeyers/obsidian-list-callouts", + "isDesktopOnly": false } diff --git a/package.json b/package.json index 51a6069..c23a903 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,19 @@ { - "name": "obsidian-sample-plugin", - "version": "1.0.1", - "description": "This is a sample plugin for Obsidian (https://obsidian.md)", + "name": "obsidian-list-callouts", + "version": "1.1.5", + "description": "Create simple callouts in lists.", "main": "main.js", "scripts": { "dev": "node esbuild.config.mjs", - "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production" + "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", + "check-types": "tsc --noemit", + "lint": "eslint ./src", + "lint:fix": "eslint ./src/**/* --fix", + "prettier": "prettier --write \"./src/**/*.{ts,tsx}\"", + "clean": "yarn prettier && yarn lint:fix", + "rlnotes": "git log $(git describe --tags --abbrev=0)..HEAD --oneline > release-notes.md && git add release-notes.md", + "bump": "node version-bump.mjs && git add package.json manifest.json versions.json && yarn rlnotes", + "release": "git commit -m $npm_package_version && git tag $npm_package_version && git push && git push --tags" }, "keywords": [], "author": "", @@ -13,6 +21,7 @@ "devDependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", + "@trivago/prettier-plugin-sort-imports": "4.2.0", "@types/node": "^16.11.6", "@typescript-eslint/eslint-plugin": "^5.2.0", "@typescript-eslint/parser": "^5.2.0", @@ -20,6 +29,7 @@ "esbuild": "0.13.12", "eslint": "^8.17.0", "obsidian": "^1.1.1", + "prettier": "^3.0.3", "tslib": "2.3.1", "typescript": "4.4.4" }, diff --git a/prettier.config.cjs b/prettier.config.cjs new file mode 100644 index 0000000..a974284 --- /dev/null +++ b/prettier.config.cjs @@ -0,0 +1,21 @@ +/* eslint-disable no-undef */ +module.exports = { + arrowParens: 'always', + bracketSpacing: true, + endOfLine: 'lf', + htmlWhitespaceSensitivity: 'css', + bracketSameLine: false, + jsxSingleQuote: false, + printWidth: 80, + proseWrap: 'preserve', + quoteProps: 'as-needed', + semi: true, + singleQuote: true, + tabWidth: 2, + trailingComma: 'es5', + useTabs: false, + importOrder: ['^[./]'], + importOrderSeparation: true, + importOrderSortSpecifiers: true, + plugins: ["@trivago/prettier-plugin-sort-imports"] +}; diff --git a/release-notes.md b/release-notes.md new file mode 100644 index 0000000..2895b62 --- /dev/null +++ b/release-notes.md @@ -0,0 +1,4 @@ +f257439 Fixes #39 +1d7111a Merge pull request #41 from acook/patch-1 +d100754 Make background transparent to click events +6306b66 Change cursor to match other empty text areas diff --git a/src/extension.ts b/src/extension.ts index 798f8e2..481801f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,3 +1,4 @@ +import { RangeSetBuilder, StateEffect, StateField } from '@codemirror/state'; import { Decoration, DecorationSet, @@ -5,20 +6,19 @@ import { ViewPlugin, ViewUpdate, WidgetType, -} from "@codemirror/view"; -import { RangeSetBuilder, StateEffect, StateField } from "@codemirror/state"; +} from '@codemirror/view'; +import { setIcon } from 'obsidian'; -import { CalloutConfig } from "./settings"; -import { setIcon } from "obsidian"; +import { CalloutConfig } from './settings'; export const setConfig = StateEffect.define(); export class CalloutBackground extends WidgetType { toDOM() { return createSpan({ - cls: "lc-list-bg", + cls: 'lc-list-bg', attr: { - "aria-hidden": "true", + 'aria-hidden': 'true', }, }); } @@ -39,9 +39,9 @@ export class CalloutMarker extends WidgetType { return createSpan( { text: this.char, - cls: "lc-list-marker", + cls: 'lc-list-marker', attr: { - "aria-hidden": "true", + 'aria-hidden': 'true', }, }, (s) => { @@ -56,7 +56,7 @@ export class CalloutMarker extends WidgetType { export const calloutDecoration = (color: string) => Decoration.line({ attributes: { - class: "lc-list-callout", + class: 'lc-list-callout', style: `--lc-callout-color: ${color}`, }, }); @@ -95,7 +95,7 @@ export function buildCalloutDecos(view: EditorView) { if (seen.has(line.from)) break; seen.add(line.from); - const labelPos = line.from + match[1].length; + const labelPos = line.from + match[1].length; // Set the line class and callout color builder.add(line.from, line.from, calloutDecoration(callout.color)); diff --git a/src/main.ts b/src/main.ts index e57d3b7..0e50132 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,43 +1,44 @@ -import { EditorView } from "@codemirror/view"; -import { debounce, Events, MarkdownView, Plugin } from "obsidian"; -import escapeStringRegexp from "escape-string-regexp"; +import { EditorView } from '@codemirror/view'; +import escapeStringRegexp from 'escape-string-regexp'; +import { Events, MarkdownView, Plugin, debounce } from 'obsidian'; + +import { calloutExtension, calloutsConfigField, setConfig } from './extension'; +import { buildPostProcessor } from './postProcessor'; import { Callout, CalloutConfig, ListCalloutSettings, ListCalloutsSettings, -} from "./settings"; -import { calloutExtension, calloutsConfigField, setConfig } from "./extension"; -import { buildPostProcessor } from "./postProcessor"; +} from './settings'; const DEFAULT_SETTINGS: ListCalloutsSettings = [ { - color: "255, 214, 0", - char: "&", + color: '255, 214, 0', + char: '&', }, { - color: "255, 145, 0", - char: "?", + color: '255, 145, 0', + char: '?', }, { - color: "255, 23, 68", - char: "!", + color: '255, 23, 68', + char: '!', }, { - color: "124, 77, 255", - char: "~", + color: '124, 77, 255', + char: '~', }, { - color: "0, 184, 212", - char: "@", + color: '0, 184, 212', + char: '@', }, { - color: "0, 200, 83", - char: "$", + color: '0, 200, 83', + char: '$', }, { - color: "158, 158, 158", - char: "%", + color: '158, 158, 158', + char: '%', }, ]; @@ -64,7 +65,7 @@ export default class ListCalloutsPlugin extends Plugin { calloutExtension, ]); - app.workspace.trigger("parse-style-settings"); + app.workspace.trigger('parse-style-settings'); } emitSettingsUpdate = debounce(() => this.dispatchUpdate(), 2000, true); @@ -72,7 +73,7 @@ export default class ListCalloutsPlugin extends Plugin { dispatchUpdate() { const newConfig = this.buildEditorConfig(); - app.workspace.getLeavesOfType("markdown").find((l) => { + app.workspace.getLeavesOfType('markdown').find((l) => { const view = l.view as MarkdownView; const cm = (view.editor as any).cm as EditorView; diff --git a/src/postProcessor.ts b/src/postProcessor.ts index 069b391..73a4d02 100644 --- a/src/postProcessor.ts +++ b/src/postProcessor.ts @@ -1,11 +1,12 @@ -import { MarkdownPostProcessor, setIcon } from "obsidian"; -import { CalloutConfig } from "./settings"; +import { MarkdownPostProcessor, setIcon } from 'obsidian'; + +import { CalloutConfig } from './settings'; function getFirstTextNode(li: HTMLElement) { for (const node of li.childNodes) { if ( node.nodeType === document.ELEMENT_NODE && - (node as HTMLElement).tagName === "P" + (node as HTMLElement).tagName === 'P' ) { return node.firstChild; } @@ -14,7 +15,7 @@ function getFirstTextNode(li: HTMLElement) { continue; } - if ((node as Text).nodeValue.trim() === "") { + if ((node as Text).nodeValue.trim() === '') { continue; } @@ -34,13 +35,13 @@ function wrapLiContent(li: HTMLElement) { if (child.nodeType === document.ELEMENT_NODE) { const el = child as Element; if ( - el.hasClass("list-collapse-indicator") || - el.hasClass("list-bullet") + el.hasClass('list-collapse-indicator') || + el.hasClass('list-bullet') ) { continue; } - if (["UL", "OL"].includes(el.tagName)) { + if (['UL', 'OL'].includes(el.tagName)) { insertBefore = child; break; } @@ -49,7 +50,7 @@ function wrapLiContent(li: HTMLElement) { toReplace.push(child); } - const wrapper = createSpan({ cls: "lc-li-wrapper" }); + const wrapper = createSpan({ cls: 'lc-li-wrapper' }); toReplace.forEach((node) => wrapper.append(node)); @@ -66,7 +67,7 @@ export function buildPostProcessor( return (el) => { const config = getConfig(); - el.findAll("li").forEach((li) => { + el.findAll('li').forEach((li) => { const node = getFirstTextNode(li); if (!node) return; @@ -79,15 +80,15 @@ export function buildPostProcessor( const match = text.match(callout.re); if (match) { - li.addClass("lc-list-callout"); - li.style.setProperty("--lc-callout-color", callout.color); + li.addClass('lc-list-callout'); + li.style.setProperty('--lc-callout-color', callout.color); node.replaceWith( createFragment((f) => { f.append( createSpan( { - cls: "lc-list-marker", + cls: 'lc-list-marker', text: text.slice(0, callout.char.length), }, (span) => { diff --git a/src/settings.ts b/src/settings.ts index 4825448..df78854 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,14 +1,15 @@ import { ButtonComponent, ColorComponent, + Platform, PluginSettingTab, - setIcon, Setting, TextComponent, getIconIds, - Platform, -} from "obsidian"; -import ListCalloutsPlugin from "./main"; + setIcon, +} from 'obsidian'; + +import ListCalloutsPlugin from './main'; export interface Callout { char: string; @@ -28,12 +29,12 @@ export function buildSettingCallout(root: HTMLElement, callout: Callout) { root.empty(); root.createDiv( { - cls: "markdown-source-view cm-s-obsidian mod-cm6 is-readable-line-width is-live-preview", + cls: 'markdown-source-view cm-s-obsidian mod-cm6 is-readable-line-width is-live-preview', }, (mockSrcView) => { mockSrcView.createDiv( { - cls: "HyperMD-list-line HyperMD-list-line-1 lc-list-callout cm-line", + cls: 'HyperMD-list-line HyperMD-list-line-1 lc-list-callout cm-line', attr: { style: `text-indent: -8px; padding-left: 12px; --lc-callout-color: ${callout.color}`, }, @@ -41,15 +42,15 @@ export function buildSettingCallout(root: HTMLElement, callout: Callout) { (mockListLine) => { mockListLine.createSpan( { - cls: "cm-formatting cm-formatting-list cm-formatting-list-ul cm-list-1", + cls: 'cm-formatting cm-formatting-list cm-formatting-list-ul cm-list-1', }, (span) => { - span.createSpan({ cls: "list-bullet", text: "-" }); - span.appendText(" "); + span.createSpan({ cls: 'list-bullet', text: '-' }); + span.appendText(' '); } ); - mockListLine.createSpan({ cls: "lc-list-bg" }); - mockListLine.createSpan({ cls: "lc-list-marker" }, (span) => { + mockListLine.createSpan({ cls: 'lc-list-bg' }); + mockListLine.createSpan({ cls: 'lc-list-marker' }, (span) => { if (callout.icon) { setIcon(span, callout.icon); } else { @@ -57,8 +58,8 @@ export function buildSettingCallout(root: HTMLElement, callout: Callout) { } }); mockListLine.createSpan({ - cls: "cm-list-1", - text: " Sed eu nisl rhoncus, consectetur mi quis, scelerisque enim.", + cls: 'cm-list-1', + text: ' Sed eu nisl rhoncus, consectetur mi quis, scelerisque enim.', }); } ); @@ -75,10 +76,10 @@ function attachIconMenu( btn.onClick((e) => { e.preventDefault(); - const scrollParent = btnEl.closest(".vertical-tab-content"); + const scrollParent = btnEl.closest('.vertical-tab-content'); const destroyEventHandlers = () => { - btnEl.win.removeEventListener("click", clickOutside); - scrollParent.removeEventListener("scroll", scroll); + btnEl.win.removeEventListener('click', clickOutside); + scrollParent.removeEventListener('scroll', scroll); }; const clickOutside = (e: MouseEvent) => { if (menuRef) { @@ -122,14 +123,14 @@ function attachIconMenu( return; } - createDiv("lc-menu", (menu) => { + createDiv('lc-menu', (menu) => { menuRef = menu; btnEl.after(menuRef); calcMenuPos(); // Menu getIconIds().forEach((icon) => { - menuRef.createDiv("clickable-icon", (item) => { + menuRef.createDiv('clickable-icon', (item) => { setIcon(item, icon); item.onClickEvent(() => { btn.buttonEl.empty(); @@ -144,8 +145,8 @@ function attachIconMenu( }); btnEl.win.setTimeout(() => { - btnEl.win.addEventListener("click", clickOutside); - scrollParent.addEventListener("scroll", scroll); + btnEl.win.addEventListener('click', clickOutside); + scrollParent.addEventListener('scroll', scroll); }, 10); }); } @@ -157,12 +158,12 @@ export function buildSetting( callout: Callout, onDelete: (index: number) => void ) { - containerEl.createDiv({ cls: "lc-setting" }, (el) => { - const calloutContainer = el.createDiv({ cls: "lc-callout-container" }); + containerEl.createDiv({ cls: 'lc-setting' }, (el) => { + const calloutContainer = el.createDiv({ cls: 'lc-callout-container' }); buildSettingCallout(calloutContainer, callout); - el.createDiv({ cls: "lc-input-container" }, (inputContainer) => { + el.createDiv({ cls: 'lc-input-container' }, (inputContainer) => { // Character input new TextComponent(inputContainer) .setValue(callout.char) @@ -180,7 +181,7 @@ export function buildSetting( if (callout.icon) { btn.setIcon(callout.icon); } else { - btn.setButtonText("Set Icon"); + btn.setButtonText('Set Icon'); } attachIconMenu(btn, (icon) => { @@ -196,11 +197,11 @@ export function buildSetting( }); new ButtonComponent(inputContainer).then((btn) => { - btn.setButtonText("Clear Icon"); + btn.setButtonText('Clear Icon'); btn.onClick(() => { delete plugin.settings[index].icon; iconBtn.buttonEl.empty(); - iconBtn.setButtonText("Set Icon"); + iconBtn.setButtonText('Set Icon'); plugin.saveSettings(); buildSettingCallout(calloutContainer, plugin.settings[index]); }); @@ -209,7 +210,7 @@ export function buildSetting( // Color selection. if (callout.custom) { const [r, g, b] = callout.color - .split(",") + .split(',') .map((v) => parseInt(v.trim(), 10)); const color = new ColorComponent(inputContainer) @@ -226,10 +227,10 @@ export function buildSetting( // Delete button. if (callout.custom) { const rightAlign = inputContainer.createDiv({ - cls: "lc-input-right-align", + cls: 'lc-input-right-align', }); new ButtonComponent(rightAlign) - .setButtonText("Delete") + .setButtonText('Delete') .setWarning() .onClick((_e) => { onDelete(index); @@ -245,40 +246,40 @@ function buildNewCalloutSetting( onSubmit: (callout: Callout) => void ) { const callout: Callout = { - char: "", - color: "158, 158, 158", + char: '', + color: '158, 158, 158', icon: null, custom: true, }; - containerEl.createDiv({ cls: "lc-setting" }, (settingContainer) => { - settingContainer.createDiv({ cls: "setting-item-name" }, (e) => - e.setText("Create a new Callout") + containerEl.createDiv({ cls: 'lc-setting' }, (settingContainer) => { + settingContainer.createDiv({ cls: 'setting-item-name' }, (e) => + e.setText('Create a new Callout') ); - settingContainer.createDiv({ cls: "setting-item-description" }, (e) => - e.setText("Create additional list callout styles.") + settingContainer.createDiv({ cls: 'setting-item-description' }, (e) => + e.setText('Create additional list callout styles.') ); // Preview. const calloutContainer = settingContainer.createDiv({ - cls: "lc-callout-container", + cls: 'lc-callout-container', }); // Callout character. const inputContainer = settingContainer.createDiv({ - cls: "lc-input-container", + cls: 'lc-input-container', }); const char = new TextComponent(inputContainer) - .setValue("") - .setPlaceholder("...") + .setValue('') + .setPlaceholder('...') .onChange((value) => { callout.char = value; redraw(); }); // Callout icon. - const icon = new ButtonComponent(inputContainer).setButtonText("Set Icon"); + const icon = new ButtonComponent(inputContainer).setButtonText('Set Icon'); attachIconMenu(icon, (icon) => { if (icon == null) { @@ -300,10 +301,10 @@ function buildNewCalloutSetting( // Create button. const rightAlign = inputContainer.createDiv({ - cls: "lc-input-right-align", + cls: 'lc-input-right-align', }); const submit = new ButtonComponent(rightAlign) - .setButtonText("Create") + .setButtonText('Create') .setDisabled(true) .onClick(() => { onSubmit(callout); @@ -340,12 +341,12 @@ export class ListCalloutSettings extends PluginSettingTab { new Setting(containerEl).setDesc( createFragment((f) => { f.appendText( - "See the Style Settings plugin for additional configuration options." + 'See the Style Settings plugin for additional configuration options.' ); - f.append(createEl("br")); + f.append(createEl('br')); f.append( - createEl("strong", { - text: "Note: Using +, *, -, >, or # as the callout character can disrupt reading mode.", + createEl('strong', { + text: 'Note: Using +, *, -, >, or # as the callout character can disrupt reading mode.', }) ); }) diff --git a/version-bump.mjs b/version-bump.mjs new file mode 100644 index 0000000..daeafe9 --- /dev/null +++ b/version-bump.mjs @@ -0,0 +1,14 @@ +import { readFileSync, writeFileSync } from "fs"; + +const targetVersion = process.env.npm_package_version; + +// read minAppVersion from manifest.json and bump version to target version +let manifest = JSON.parse(readFileSync("manifest.json", "utf8")); +const { minAppVersion } = manifest; +manifest.version = targetVersion; +writeFileSync("manifest.json", JSON.stringify(manifest, null, "\t") + '\n'); + +// update versions.json with target version and minAppVersion from manifest.json +let versions = JSON.parse(readFileSync("versions.json", "utf8")); +versions[targetVersion] = minAppVersion; +writeFileSync("versions.json", JSON.stringify(versions, null, "\t") + '\n'); diff --git a/versions.json b/versions.json index 01940ce..5e00bd4 100644 --- a/versions.json +++ b/versions.json @@ -2,5 +2,6 @@ "1.1.1": "1.1.1", "1.1.0": "0.15.0", "1.0.1": "0.15.0", - "1.0.0": "0.14.15" + "1.0.0": "0.14.15", + "1.1.5": "1.1.1" } diff --git a/yarn.lock b/yarn.lock index 6394198..fb61cd9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,126 @@ # yarn lockfile v1 +"@babel/code-frame@^7.16.7", "@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + +"@babel/generator@7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.17.3": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-environment-visitor@^7.16.7": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.16.7": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.17.3", "@babel/parser@^7.20.5", "@babel/parser@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.17.0", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@codemirror/state@^6.0.0": version "6.0.1" resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.0.1.tgz#a1994f14c49e2f77cb9e26aef35f63a8b3707c6c" @@ -45,6 +165,38 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -66,6 +218,18 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@trivago/prettier-plugin-sort-imports@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.2.0.tgz#b240366f9e2bda8e14edb18b14ea084e0ec25968" + integrity sha512-YBepjbt+ZNBVmN3ev1amQH3lWCmHyt5qTbLCp/syXJRu/Kw2koXh44qayB1gMRxcL/gV8egmjN5xWSrYyfUtyw== + dependencies: + "@babel/generator" "7.17.7" + "@babel/parser" "^7.20.5" + "@babel/traverse" "7.17.3" + "@babel/types" "7.17.0" + javascript-natural-sort "0.7.1" + lodash "^4.17.21" + "@types/codemirror@0.0.108": version "0.0.108" resolved "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.108.tgz#e640422b666bf49251b384c390cdeb2362585bde" @@ -200,6 +364,13 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + 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.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -247,6 +418,15 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + 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@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -255,6 +435,13 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + 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.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -262,6 +449,11 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" @@ -281,7 +473,7 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -415,6 +607,11 @@ esbuild@0.13.12: esbuild-windows-64 "0.13.12" esbuild-windows-arm64 "0.13.12" +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -633,6 +830,11 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + globals@^13.15.0: version "13.15.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" @@ -652,6 +854,11 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" @@ -710,6 +917,16 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +javascript-natural-sort@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" + integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -717,6 +934,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -740,6 +962,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -841,6 +1068,11 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prettier@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== + punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -904,6 +1136,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -921,6 +1158,13 @@ style-mod@^4.0.0: resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.0.0.tgz#97e7c2d68b592975f2ca7a63d0dd6fcacfe35a01" integrity sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw== +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -933,6 +1177,11 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"