diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..f247bc3 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,27 @@ +const gulp = require('gulp'); +const less = require('gulp-less'); +const sourcemaps = require('gulp-sourcemaps'); +const rename = require('gulp-rename'); + +// Compile LESS to CSS +function styles() { + return gulp.src('less/malefices.less') + .pipe(sourcemaps.init()) + .pipe(less()) + .pipe(rename('simple.css')) + .pipe(sourcemaps.write('.', { mapFile: () => 'simple.css.map' })) + .pipe(gulp.dest('styles/')); +} + +// Watch files +function watchFiles() { + gulp.watch('less/**/*.less', styles); +} + +const build = gulp.series(styles); +const watch = gulp.series(build, watchFiles); + +exports.styles = styles; +exports.build = build; +exports.watch = watch; +exports.default = build; diff --git a/images/ui/malefices-background-01.jpg b/images/ui/malefices-background-01.jpg new file mode 100644 index 0000000..d9655f5 Binary files /dev/null and b/images/ui/malefices-background-01.jpg differ diff --git a/less/actor-sheet.less b/less/actor-sheet.less new file mode 100644 index 0000000..b006911 --- /dev/null +++ b/less/actor-sheet.less @@ -0,0 +1,235 @@ +/* =================================================================== + AppV2 Actor Sheets + =================================================================== */ + +/* NOTE: DocumentSheetV2 uses tag:"form" — the APPLICATION ROOT is the
. + The DOM is: form.application > section.window-content > section.editable > ... + There is NO child inside window-content. */ + +.fvtt-malefices.actor { + + /* window-content: background and remove Foundry's default padding. + Foundry AppV2 already sets: display:flex flex-flow:column overflow:hidden */ + .window-content { + padding: 0; + background: @bg-sheet; + color: @color-text; + font-size: 0.8rem; + } + + /* All sections inside actor fill their flex container and form a flex column. + This covers: section.editable (template root) and section.sheet-body. */ + section { + height: 100%; + display: flex; + flex-direction: column; + flex: 1; + min-height: 0; + overflow: hidden; + } + + /* sheet-body: scroll container instead of clipping */ + section.sheet-body { + overflow-y: auto; + overflow-x: hidden; + padding: 0.25rem 0.5rem; + } + + /* Override legacy fixed 210px height — shrink to fit content */ + .sheet-header { + flex: 0 0 auto; + overflow: visible; + } + + /* Override legacy "height: 100%" on .tab divs so their content + can overflow sheet-body and trigger the scrollbar; + hide all tabs, show only the active one */ + .tab[data-tab] { + height: auto; + display: none; + + &.active { + display: block; + } + } + + /* Tab navigation */ + nav.tabs { + display: flex; + flex: 0 0 auto; + font-family: @font-rivanna; + font-size: @tab-font-size; + font-weight: bold; + height: @tab-height; + margin: 0; + padding: 0 0 0 0.25rem; + text-align: center; + text-transform: uppercase; + line-height: @tab-height; + border-top: 0 none; + border-bottom: 0 none; + background-color: @color-tab-bg; + color: @color-tab-text; + gap: 0.25rem; + + a.item { + position: relative; + padding: 0 0.5rem; + color: @color-tab-text; + font-family: @font-rivanna; + font-size: @tab-font-size; + text-decoration: none; + line-height: @tab-height; + + &:hover { + text-shadow: 1px 0px 0px @color-accent; + } + + &.active { + text-shadow: 1px 0px 0px @color-accent; + text-decoration: underline; + } + } + } + + /* Force dark text on section titles and labels inside actor sheet body + (overrides Foundry core heading/label colors from the default dark theme) */ + section.sheet-body { + h1, h2, h3, h4, label, span, a { + color: @color-text; + } + } + + /* ── Belle Époque aesthetic improvements ─────────────────────────── */ + @be-bordeaux: #5a0a14; + @be-gold: #8b6914; + @be-gold-border: rgba(139, 105, 20, 0.45); + @be-sepia: #3d2b1f; + + // Sheet header — portrait with gold border, charname input styled + .sheet-header { + .profile-img { + border: 2px solid @be-gold-border; + border-radius: 2px; + box-shadow: 1px 1px 4px rgba(0,0,0,0.25); + } + + h1.charname input { + font-family: @font-rivanna, serif; + font-size: 1.3rem; + color: @be-bordeaux; + border-bottom: 1px solid @be-gold-border; + border-top: none; + border-left: none; + border-right: none; + background: transparent; + text-shadow: 0 1px 0 rgba(255,255,255,0.4); + } + + input[type="text"] { + border-bottom: 1px solid @be-gold-border; + border-top: none; + border-left: none; + border-right: none; + background: transparent; + &:focus { + outline: none; + border-bottom-color: @be-bordeaux; + box-shadow: none; + } + } + } + + // Section title rows (Attributs, Armes, Équipements, etc.) + .items-title-bg { + background: linear-gradient(to right, rgba(90,10,20,0.15), rgba(139,105,20,0.10)) !important; + border-bottom: 1px solid @be-gold-border; + border-top: 1px solid @be-gold-border; + margin-top: 6px; + + .items-title-text { + font-family: @font-rivanna, serif; + font-size: 0.9rem; + color: @be-bordeaux !important; + letter-spacing: 0.03em; + } + } + + // Roll links — attributs and weapons + a.roll-attribut, a.roll-arme { + color: @be-sepia !important; + font-weight: 600; + transition: color 0.12s; + + i { color: fade(@be-gold, 80%); margin-left: 0.2rem; font-size: 0.75em; } + + &:hover { + color: @be-bordeaux !important; + text-decoration: none; + i { color: @be-bordeaux; } + } + } + + // Attribute value inputs + input.item-field-label-short, input.item-field-label-medium { + text-align: center; + font-weight: 700; + font-size: 0.9rem; + color: @be-bordeaux; + border: 1px solid @be-gold-border; + border-radius: 2px; + background: rgba(255,252,240,0.6); + &:focus { + outline: none; + border-color: @be-bordeaux; + box-shadow: 0 0 3px rgba(90,10,20,0.2); + } + } + + // Item rows — zebra effect with Belle Époque tones + .alternate-list { + .list-item:nth-child(even) { + background: rgba(139,105,20,0.07); + } + .list-item:nth-child(odd) { + background: rgba(61,43,31,0.04); + } + .list-item:hover { + background: rgba(139,105,20,0.15) !important; + } + } + + // Item icon — small gold border + .sheet-competence-img { + border: 1px solid @be-gold-border; + border-radius: 1px; + } + + // Item control icons (edit/delete) + .item-controls a.item-control { + color: fade(@be-sepia, 60%); + &:hover { color: @be-bordeaux; } + } + + // Biography tab inputs + .tab.biodata { + input[type="text"] { + border-bottom: 1px solid @be-gold-border; + border-top: none; + border-left: none; + border-right: none; + background: transparent; + color: @be-sepia; + &:focus { + outline: none; + border-bottom-color: @be-bordeaux; + } + } + + label.item-name-label-medium { + font-weight: 600; + color: @be-sepia !important; + } + } + +} diff --git a/less/base.less b/less/base.less new file mode 100644 index 0000000..5f8ccd7 --- /dev/null +++ b/less/base.less @@ -0,0 +1,202 @@ +/* ==================== (A) Fonts ==================== */ +@font-face { + font-family: "Rivanna"; + src: url('../fonts/rivanna.ttf') format("truetype"); +} + +:root { +/* =================== 1. ACTOR SHEET FONT STYLES =========== */ + --window-header-title-font-size: 1.3rem; + --window-header-title-font-weight: normal; + --window-header-title-color: #f5f5f5; + + --major-button-font-size: 1.05rem; + --major-button-font-weight: normal; + --major-button-color: #dadada; + + --tab-header-font-size: 1.0rem; + --tab-header-font-weight: 700; + --tab-header-color: #403f3e; + --tab-header-color-active: #4a0404; + + --actor-input-font-size: 0.8rem; + --actor-input-font-weight: 500; + --actor-input-color: black; + + --actor-label-font-size: 0.8rem; + --actor-label-font-weight: 700; + --actor-label-color: #464331c4; + +/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */ + --debug-background-color-red: #ff000054; + --debug-background-color-blue: #1d00ff54; + --debug-background-color-green: #54ff0054; + + --debug-box-shadow-red: inset 0 0 2px red; + --debug-box-shadow-blue: inset 0 0 2px blue; + --debug-box-shadow-green: inset 0 0 2px green; +} + +/*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/ +/* Global styles & Font */ +.fvtt-malefices .window-app { +text-align: justify; +font-size: 16px; +letter-spacing: 1px; +} + +/* Fonts */ +.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item { +font-size: 1.0rem; +} /* For title, sidebar character and scene */ +.fvtt-malefices .sheet nav.sheet-tabs { +font-size: 0.8rem; +} /* For nav and title */ +.window-app input, .fvtt-malefices .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle { +font-size: 0.8rem; +} + +.window-header{ +background: rgba(0,0,0,0.75); +} + +.window-app.sheet .window-content { + margin: 0; + padding: 0; +} +.strong-text{ + font-weight: bold; +} + +.tabs .item.active, .blessures-list li ul li:first-child:hover, a:hover { + text-shadow: 1px 0px 0px @color-accent; +} + +.rollable:hover, .rollable:focus { + color: #000; + text-shadow: 0 0 10px red; + cursor: pointer; +} + +input:hover, select:hover { + border-width: 4px; + border-color: rgb(85, 65, 130); +} + +input:disabled { + color:#1c2058; +} +select:disabled { + color:#1c2058; +} +table {border: 1px solid #7a7971;} + +.grid, .grid-2col { + display: grid; + grid-column: span 2 / span 2; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; + margin: 10px 0; + padding: 0; +} + +.grid-3col { + grid-column: span 3 / span 3; + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.grid-4col { + grid-column: span 4 / span 4; + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.grid-5col { + grid-column: span 5 / span 5; + grid-template-columns: repeat(5, minmax(0, 1fr)); +} + +.grid-6col { + grid-column: span 5 / span 5; + grid-template-columns: repeat(5, minmax(0, 1fr)); +} + +.grid-7col { + grid-column: span 7 / span 7; + grid-template-columns: repeat(7, minmax(0, 1fr)); +} + +.grid-8col { + grid-column: span 8 / span 8; + grid-template-columns: repeat(8, minmax(0, 1fr)); +} + +.grid-9col { + grid-column: span 9 / span 9; + grid-template-columns: repeat(9, minmax(0, 1fr)); +} + +.grid-10col { + grid-column: span 10 / span 10; + grid-template-columns: repeat(10, minmax(0, 1fr)); +} + +.grid-11col { + grid-column: span 11 / span 11; + grid-template-columns: repeat(11, minmax(0, 1fr)); +} + +.grid-12col { + grid-column: span 12 / span 12; + grid-template-columns: repeat(12, minmax(0, 1fr)); +} + +.flex-group-center, +.flex-group-left, +.flex-group-right { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: center; + padding: 5px; +} + +.flex-group-left { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: left; +} + +.flex-group-right { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: right; +} + +.flex-center { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} + +.table-create-actor { + font-size: 0.8rem; +} + +.flex-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.flex-shrink { + flex: 'flex-shrink' ; +} diff --git a/less/chat.less b/less/chat.less new file mode 100644 index 0000000..bde3d8a --- /dev/null +++ b/less/chat.less @@ -0,0 +1,325 @@ +// ============================================================ +// Chat messages – Belle Époque theme +// ============================================================ + +@be-bordeaux: #5a0a14; +@be-gold: #8b6914; +@be-gold-light: #c8a84b; +@be-gold-border: rgba(139, 105, 20, 0.45); +@be-sepia: #3d2b1f; +@be-sepia-light: rgba(61, 43, 31, 0.06); + +.malefices-chat-card { + font-size: 0.85rem; + color: @be-sepia; + border: 1px solid @be-gold-border; + border-radius: 3px; + overflow: hidden; + background: rgb(218, 218, 208); // opaque pour masquer le fond parchemin du sidebar + + // ── Header ────────────────────────────────────────────── + .chat-card-header { + display: flex; + align-items: center; + gap: 0.4rem; + padding: 0.2rem 0.4rem; + background: linear-gradient(135deg, rgba(90,10,20,0.12), rgba(139,105,20,0.12)); + border-bottom: 1px solid @be-gold-border; + + .chat-actor-img { + width: 32px; + height: 32px; + border: 1px solid @be-gold-border; + border-radius: 2px; + object-fit: cover; + flex-shrink: 0; + } + + .chat-actor-name { + font-family: @font-rivanna, serif; + font-size: 1.1rem; + font-weight: normal; + color: @be-bordeaux; + line-height: 1.1; + text-shadow: 0 1px 0 rgba(255,255,255,0.5); + flex: 1; + } + + .chat-header-roll { + display: flex; + align-items: center; + gap: 0.3rem; + padding-left: 0.4rem; + border-left: 1px solid @be-gold-border; + + .chat-roll-icon { + width: 24px; + height: 24px; + border: 1px solid @be-gold-border; + border-radius: 2px; + object-fit: cover; + flex-shrink: 0; + } + + .chat-roll-name { + font-size: 0.75rem; + color: fade(@be-sepia, 80%); + font-style: italic; + max-width: 80px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + } + + // ── Decorative separator ───────────────────────────────── + .chat-card-separator { + height: 14px; + margin: 0.15rem 0.4rem 0; + background: url("../images/ui/separator_01.webp") center/auto 100% no-repeat; + opacity: 0.55; + } + + // ── Roll detail rows ───────────────────────────────────── + .chat-roll-details { + margin: 0; + padding: 0 0.4rem 0.15rem; + + .chat-detail-row { + display: flex; + justify-content: space-between; + align-items: baseline; + padding: 0.05rem 0; + border-bottom: 1px dotted rgba(139, 105, 20, 0.2); + + &:last-child { border-bottom: none; } + + dt { + color: fade(@be-sepia, 75%); + font-weight: normal; + font-size: 0.8rem; + } + + dd { + font-weight: 600; + color: @be-sepia; + font-size: 0.85rem; + margin-left: 0.5rem; + } + } + + // Target and roll value stand out slightly + .chat-detail-target dd, + .chat-detail-roll dd { + font-size: 1rem; + color: @be-bordeaux; + } + } + + // ── Result banner ──────────────────────────────────────── + .chat-card-result { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.1rem; + margin: 0.2rem 0.4rem 0.25rem; + padding: 0.25rem 0.5rem; + border-radius: 2px; + font-family: @font-rivanna, serif; + font-size: 1.15rem; + text-align: center; + border: 1px solid transparent; + + &.result-success { + background: linear-gradient(135deg, rgba(20, 80, 20, 0.12), rgba(40, 100, 40, 0.08)); + border-color: rgba(30, 100, 30, 0.35); + color: #1a5c1a; + } + + &.result-failure { + background: linear-gradient(135deg, rgba(90, 10, 20, 0.12), rgba(120, 20, 20, 0.08)); + border-color: rgba(90, 10, 20, 0.35); + color: @be-bordeaux; + } + + i { margin-right: 0.3rem; } + + .chat-result-damage { + font-family: sans-serif; + font-size: 0.85rem; + opacity: 0.85; + font-style: normal; + } + } + + // ── Action buttons (Relancer, etc.) ────────────────────── + .chat-card-actions { + padding: 0.15rem 0.4rem 0.25rem; + display: flex; + justify-content: center; + + .chat-card-button { + padding: 0.3rem 1rem; + font-size: 0.82rem; + border: 1px solid @be-gold-border; + border-radius: 2px; + background: linear-gradient(to bottom, rgba(255,252,240,0.9), rgba(240,230,200,0.9)); + color: @be-sepia; + cursor: pointer; + transition: all 0.15s ease; + + &:hover { + background: linear-gradient(to bottom, rgba(240,220,170,0.95), rgba(220,195,140,0.95)); + border-color: @be-gold; + color: @be-bordeaux; + } + } + } + + // ── Tarot card display ────────────────────────────────── + .tarot-card-display { + display: flex; + gap: 0.6rem; + align-items: flex-start; + padding: 0.3rem 0.5rem 0.4rem; + position: relative; + + &:hover { + z-index: 100; + + .tarot-card-img { + transform: scale(2.5); + box-shadow: 3px 3px 12px rgba(0,0,0,0.4); + } + } + + .tarot-card-img { + width: 126px; + flex-shrink: 0; + border: 1px solid @be-gold-border; + border-radius: 2px; + box-shadow: 1px 1px 4px rgba(0,0,0,0.2); + transition: transform 0.2s ease, box-shadow 0.2s ease; + transform-origin: left center; + cursor: zoom-in; + } + + .tarot-card-info { + display: flex; + flex-direction: column; + gap: 0.25rem; + padding-top: 0.2rem; + + .tarot-card-name { + font-family: @font-rivanna, serif; + font-size: 1rem; + color: @be-bordeaux; + text-shadow: 0 1px 0 rgba(255,255,255,0.4); + } + + .tarot-card-side { + font-size: 0.8rem; + font-weight: 600; + &.tarot-positif { color: #1a5c1a; } + &.tarot-negatif { color: @be-bordeaux; } + } + + .tarot-card-value { + font-size: 0.82rem; + color: @be-sepia; + strong { color: @be-bordeaux; font-size: 1rem; } + } + } + } +} + +// ── Item post message ──────────────────────────────────── +.malefices-chat-card.malefices-chat-item { + + .item-type-label { + font-family: "Cinzel Decorative", "Cinzel", serif; + font-size: 0.65rem; + font-weight: 600; + letter-spacing: 0.08em; + text-transform: uppercase; + color: @be-bordeaux; + opacity: 0.8; + margin-left: auto; + align-self: center; + } + + .item-damage { + font-weight: 700; + color: @be-bordeaux; + font-size: 1rem; + &.item-damage-crit { + color: #8b0000; + } + } + + .chat-item-description { + margin: 0.4rem 0.5rem 0.3rem; + font-size: 0.82rem; + color: @be-sepia; + line-height: 1.5; + border-top: 1px solid fade(@be-gold-border, 50%); + padding-top: 0.4rem; + + p { margin: 0 0 0.3rem; &:last-child { margin: 0; } } + em { color: @be-bordeaux; font-style: italic; } + strong { color: @be-sepia; } + } +} + +// ── Welcome message ───────────────────────────────────── +.malefices-chat-card.malefices-welcome { + + .welcome-body { + padding: 0.3rem 0.6rem 0.4rem; + font-size: 0.82rem; + color: @be-sepia; + line-height: 1.4; + + p { margin: 0.2rem 0; } + + .welcome-title { + font-family: @font-rivanna, serif; + font-size: 0.95rem; + color: @be-bordeaux; + font-weight: normal; + margin-bottom: 0.35rem; + } + + a { color: @be-gold; &:hover { color: @be-bordeaux; } } + } + + .welcome-commands { + margin-top: 0.4rem; + border-top: 1px solid @be-gold-border; + padding-top: 0.3rem; + + .welcome-commands-title { + font-weight: 700; + font-size: 0.8rem; + color: @be-sepia; + margin-bottom: 0.2rem; + text-transform: uppercase; + letter-spacing: 0.04em; + } + + .welcome-command-row { + font-size: 0.8rem; + color: @be-sepia; + margin: 0.1rem 0; + code { + background: rgba(139,105,20,0.12); + border: 1px solid @be-gold-border; + border-radius: 2px; + padding: 0 3px; + font-size: 0.78rem; + color: @be-bordeaux; + } + } + } +} diff --git a/less/components.less b/less/components.less new file mode 100644 index 0000000..777e2b9 --- /dev/null +++ b/less/components.less @@ -0,0 +1,616 @@ +/* ======================================== */ +/* Global UI elements */ + +/* ======================================== */ + +h1, h2, h3, h4 { + font-weight: bold; +} + +ul, ol { + margin: 0; + padding: 0; +} +ul, li { + list-style-type: none; +} + +.sheet li { + margin: 0.010rem; + padding: 0.25rem; +} +.header-fields li { + margin: 0; + padding: 0; +} + +.alterne-list > .list-item:hover { + background: rgba(100, 100, 50, 0.25); +} +.alterne-list > .list-item:nth-child(even) { + background: rgba(80, 60, 0, 0.10); +} +.alterne-list > .list-item:nth-child(odd) { + background: rgb(160, 130, 100, 0.05); +} + +.specialisation-label { + font-size: 0.8rem; +} + +.carac-label, +.attr-label { + font-weight: bold; +} + +.list-item { + margin: 0.125rem; + /*box-shadow: inset 0px 0px 1px #00000096; + border-radius: 0.25rem;*/ + padding: 0.125rem; + flex: 1 1 5rem; + display: flex !important; + color: @color-text; +} +.list-item-shadow { + background:rgba(87, 60, 32, 0.35); + flex-grow: 0; + flex-wrap: nowrap; + justify-content: flex-start; +} +.list-item-shadow2 { + background:rgba(87, 60, 32, 0.25); + flex-grow: 0; + flex-wrap: nowrap; + justify-content: flex-start; +} +.item-display-show { + display: block; +} +.item-display-hide { + display: none; +} +.item-quantite { + margin-left: 0.5rem; +} +.list-item-margin1 { + margin-left: 1rem; +} +.list-item-margin2 { + margin-left: 2rem; +} +.list-item-margin3 { + margin-left: 3rem; +} +.list-item-margin4 { + margin-left: 4rem; +} + +.sheet-competence-img { + width: 24px; + max-width: 24px; + height: 24px; + max-height: 24px; + flex-grow: 0; + margin-right: 0.25rem; +} +.competence-column { + flex-direction: column; + align-content: flex-start; + justify-content: flex-start; + flex-grow: 0; + flex-basis: 1; +} +.competence-header { + align-content: flex-start; + justify-content: flex-start; + font-weight: bold; + flex-grow: 0; +} + +.description-label { + flex-grow: 2; + margin-left: 4px; +} +.status-header-label { + margin-left: 2px; +} +.roll-dialog-label { + margin: 4px 0; + min-width: 96px; +} +.short-label { + flex-grow: 1; +} +.keyword-label { + font-size: 0.85rem; +} + +.item-sheet-label { + flex-grow: 1; +} + +.item-text-long-line { + flex-grow: 3; +} + +.score-label { + flex-grow: 2; + align-content: center; +} + +.attribut-value, +.carac-value { + flex-grow: 0; + flex-basis: 64px; + margin-right: 4px; + margin-left: 4px; +} +.sante-value, +.competence-value { + flex-grow: 0; + flex-basis: 2rem; + margin-right: 0.25rem; + margin-left: 0.25rem; +} +.description-value { + flex-grow: 0; + flex-basis: 4rem; + margin-right: 0.25rem; + margin-left: 0.25rem; +} +.small-label { + margin-top: 5px; +} +.padd-right { + margin-right: 8px; +} +.padd-left { + margin-left: 8px; +} +.stack-left { + align-items:center; + flex-shrink: 1; + flex-grow: 0; +} +.packed-left { + white-space: nowrap; + flex-grow: 0; +} + +.input-numeric-short { + width: 40px; + max-width: 40px; + flex-grow: 0; + flex-shrink: 0; + flex-basis: 40px; + margin-right: 0.25rem; + margin-left: 0.25rem; +} + +.abilities-table { + align-content: flex-start; +} + +/* ======================================== */ +.tokenhudext { + display: flex; + flex: 0 !important; + font-weight: 600; +} +.tokenhudext.left { + justify-content: flex-start; + flex-direction: column; + position: absolute; + top: 2.75rem; + right: 4rem; +} +.tokenhudext.right { + justify-content: flex-start; + flex-direction: column; + position: absolute; + top: 2.75rem; + left: 4rem; +} +.control-icon.tokenhudicon { + width: fit-content; + height: fit-content; + min-width: 6rem; + flex-basis: auto; + padding: 0; + line-height: 1rem; + margin: 0.25rem; +} +.control-icon.tokenhudicon.right { + margin-left: 8px; +} +#token-hud .status-effects.active{ + z-index: 2; +} +.token-sheet .window-content .flexcol .sheet-tabs { + font-size: 0.8rem; +} + +/* ======================================== */ +.item-checkbox { + height: 25px; + border: 1px solid #736953a6; + border-left: none; + font-weight: 500; + font-size: 1rem; + color: black; + padding-top: 5px; + margin-right: 0px; + width: 45px; + position: relative; + left: 0px; + text-align: center; +} + +.skill-label { + font-size: 0.7rem; +} +.skill-good-checkbox { + max-height: 10px; + max-width: 10px; +} + +.flex-actions-bar { + flex-grow: 2; +} + +/* ======================================== */ +/* Sidebar CSS */ +#sidebar { + font-size: 1rem; + /*background-position: 100%;*/ + background-color: @color-sidebar-bg; + background-position: 0px 35px; + background-repeat: no-repeat; + background-image: @bg-sheet; + color: @color-text; +} + +#sidebar .scene { + color: rgba(237, 240, 199, 0.95); +} +/* background: rgb(105,85,65) url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat right bottom;*/ + +#sidebar.collapsed { + height: 470px !important; +} + +#sidebar-tabs > .collapsed, #chat-controls .chat-control-icon { + color: @color-text; + text-shadow: 1px 1px 0 rgba(0,0,0,0.75); +} + +.sidebar-tab .directory-list .entity { + border-top: 1px dashed rgba(0,0,0,0.25); + border-bottom: 0 none; + padding: 0.25rem 0; +} + +.sidebar-tab .directory-list .entity:hover { + background: rgba(0,0,0,0.05); + cursor: pointer; +} +.chat-message-header { + background: rgba(220,220,210,0.5); + font-size: 1.1rem; + height: 48px; + text-align: center; + vertical-align: middle; + display: flex; + align-items: center; +} + +.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to { + font-size: 0.9rem; +} +.chat-result-text, +.chat-actor-name { + font-weight: bold; + font-family: Rivanna; + font-size: 1.2rem; + padding: 4px; +} +.chat-result-success { + color:darkgreen; +} +.chat-result-failure { + color:darkred; +} +.chat-img { + width: 64px; + height: 64px; +} + +.roll-dialog-header { + height: 52px; +} + +.actor-icon { + float: left; + width: 48px; + height: 48px; + padding: 2px 6px 2px 2px; +} + +.padding-dice { + padding-top: .2rem; + padding-bottom: .2rem; +} + +.dice-image { + box-sizing: border-box; + border: none; + border-radius: 0; + max-width: 100%; +} + +.dice-image-reroll { + background-color:rgba(115, 224, 115, 0.25); + border-color: #011d33; + box-sizing: border-box; + border: 1px; + border-radius: 0%; + max-width: 100%; +} + +.chat-dice { + width: 15%; + height: 15%; + font-size: 15px; + padding: 10px; + padding-bottom: 20px; + padding-top: .2rem; + padding-bottom: .2rem; +} + +.div-center { + align-self: center; +} + +.chat-message { + background: rgba(220,220,210,0.5); + font-size: 0.9rem; +} + +.chat-message.whisper { + background: rgba(220,220,210,0.75); + border: 2px solid #545469; +} + +.chat-message .chat-icon { + border: 0; + padding: 2px 6px 2px 2px; + float: left; + width: 64px; + height: 64px; +} + +.ability-icon { + border: 0; + padding: 2px 2px 2px 2px; + max-width:32px; + max-height:32px; + width: auto; + height: auto; +} +.small-ability-icon { + border: 0; + padding: 2px 2px 2px 2px; + max-width:16px; + max-height:16px; + width: auto; + height: auto; +} +.combat-icon { + border: 0; + padding: 2px 2px 2px 2px; + max-width:24px; + max-height:24px; + width: auto; + height: auto; +} + +#sidebar-tabs { + flex: 0 0 32px; + box-sizing: border-box; + margin: 0 0 5px; + border-bottom: 1px solid rgba(0,0,0,0); + box-shadow: inset 0 0 2rem rgba(0,0,0,0.5); +} + +#sidebar-tabs > .item.active { + border: 1px solid rgba(114,98,72,1); + background: rgba(30, 25, 20, 0.75); + box-shadow: 0 0 6px inset rgba(114,98,72,1); +} + +#sidebar #sidebar-tabs i{ + display: inline-block; + background-position:center; + background-size:cover; + text-shadow: 1px 1px 0 rgba(0,0,0,0.75); + +} + +/*--------------------------------------------------------------------------*/ +/* Control, Tool, hotbar & navigation */ + +#controls .scene-control, #controls .control-tool { + box-shadow: 0 0 3px #000; + margin: 0 0 8px; + border-radius: 0; + background: rgba(30, 25, 20, 1); + background-origin: padding-box; + border-image: url(img/ui/footer-button.png) 10 repeat; + border-image-width: 4px; + border-image-outset: 0px; +} + +#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover { + background: rgba(72, 46, 28, 1); + background-origin: padding-box; + border-image: url(img/ui/footer-button.png) 10 repeat; + border-image-width: 4px; + border-image-outset: 0px; + box-shadow: 0 0 3px #ff6400; +} + +#hotbar #action-bar #macro-list { + border: 1px solid rgba(72, 46, 28, 1); + box-shadow: 2px 2px 5px #000000; +} + +#hotbar #action-bar .macro { + border-image: url(img/ui/bg_control.jpg) 21 repeat; + border-image-slice: 6 6 6 6 fill; + border-image-width: 6px 6px 6px 6px; + border-image-outset: 0px 0px 0px 0px; + border-radius: 0px; +} + +#hotbar .bar-controls { + background: rgba(30, 25, 20, 1); + border: 1px solid rgba(72, 46, 28, 1); +} + +#players { + border-image: url(img/ui/footer-button.png) 10 repeat; + border-image-width: 4px; + border-image-outset: 0px; + background: rgba(30, 25, 20, 1); +} + +#navigation #scene-list .scene.nav-item.active { + background: rgba(72, 46, 28, 1); +} + +#navigation #scene-list .scene.nav-item { + background: rgba(30, 25, 20, 1); + background-origin: padding-box; + border-image: url(img/ui/footer-button.png) 10 repeat; + border-image-width: 4px; + border-image-outset: 0px; +} + +#navigation #scene-list .scene.view, #navigation #scene-list .scene.context { + background: rgba(72, 46, 28, 1); + background-origin: padding-box; + border-image: url(img/ui/footer-button.png) 10 repeat; + border-image-width: 4px; + border-image-outset: 0px; + box-shadow: 0 0 3px #ff6400; +} + +#navigation #nav-toggle { + background: rgba(30, 25, 20, 1); + background-origin: padding-box; + border-image: url(img/ui/footer-button.png) 10 repeat; + border-image-width: 4px; + border-image-outset: 0px; +} + +/* Tooltip container */ +.tooltip { + position: relative; + display: inline-block; + /*border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ +} + +/* Tooltip text */ +.tooltip .tooltiptext { + text-align: left; + background: rgba(231, 229, 226, 0.9); + width: 150px; + padding: 3px 0; + font-size: 0.9rem; + + /* Position the tooltip text */ + top: 1px; + position: absolute; + z-index: 1; + + /* Fade in tooltip */ + visibility: hidden; + opacity: 0; + transition: opacity 0.3s; +} + + +.tooltip-nobottom { + border-bottom: unset; /* If you want dots under the hoverable text */ +} + +/* Show the tooltip text when you mouse over the tooltip container */ +.tooltip:hover .tooltiptext { + visibility: visible; + opacity: 1; +} + +.chat-card-button { + box-shadow: inset 0px 1px 0px 0px #a6827e; + background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); + background-color: #7d5d3b00; + border-radius: 3px; + border: 2px ridge #846109; + display: inline-block; + cursor: pointer; + color: #ffffff; + font-size: 0.8rem; + padding: 4px 12px 0px 12px; + text-decoration: none; + text-shadow: 0px 1px 0px #4d3534; + position: relative; + margin:2px; +} + +.chat-card-button:hover { + background: linear-gradient(to bottom, #800000 5%, #3e0101 100%); + background-color: red; +} +.chat-card-button:active { + position:relative; + top:1px; +} + +.plus-minus-button { + box-shadow: inset 0px 1px 0px 0px #a6827e; + background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); + background-color: #7d5d3b00; + border-radius: 2px; + border: 1px ridge #846109; + display: inline-block; + cursor: pointer; + color: #ffffff; + margin: 2px 2px 2px 2px; + padding: 2px 2px 2px 2px; + text-decoration: none; + text-shadow: 0px 1px 0px #4d3534; + position: relative; + margin:0px; +} + +.plus-minus-button:hover, +.chat-card-button:hover { + background: linear-gradient(to bottom, #800000 5%, #3e0101 100%); + background-color: red; +} + +.plus-minus-button:active, +.chat-card-button:active { + position:relative; + top:1px; +} + +.plus-minus { + font-size: 0.9rem; + font-weight: bold; +} + +.ul-level1 { + padding-left: 2rem; +} diff --git a/less/dialogs.less b/less/dialogs.less new file mode 100644 index 0000000..03fdd87 --- /dev/null +++ b/less/dialogs.less @@ -0,0 +1,469 @@ +/* =================================================================== + AppV2 Dialogs — Style Belle Époque (France, ~1900) + Palette : bordeaux, or antique, sépia, fond parchemin clair + =================================================================== */ + +// Couleurs Belle Époque +@be-bordeaux: #5a0a14; +@be-gold: #8b6914; +@be-gold-light: rgba(139, 105, 20, 0.25); +@be-gold-border: rgba(139, 105, 20, 0.55); +@be-sepia: #3d2b1f; +@be-sepia-light: rgba(61, 43, 31, 0.08); + +.malefices-roll-dialog { + + .window-content { + padding: 0; + background: @bg-sheet; + color: @be-sepia; + font-size: 0.85rem; + } + + .skill-roll-dialog { + display: flex; + flex-direction: column; + + // ── En-tête ────────────────────────────────────────────── + header.roll-dialog-header { + display: flex; + flex-direction: row; + align-items: center; + gap: 0.75rem; + padding: 0.6rem 0.75rem 0.5rem; + background: linear-gradient(to bottom, rgba(90, 10, 20, 0.12), rgba(90, 10, 20, 0.04)); + border-bottom: 2px solid @be-gold-border; + } + + .actor-icon { + width: 52px; + height: 52px; + object-fit: cover; + border: 2px solid @be-gold-border; + border-radius: 2px; + box-shadow: 0 1px 4px rgba(0,0,0,0.35); + flex-shrink: 0; + } + + // Custom title div — no h1 to avoid Foundry theme overrides + .dialog-roll-title { + color: @be-bordeaux; + font-family: @font-rivanna; + font-size: 2rem; + font-weight: bold; + flex: 1; + line-height: 1.1; + text-shadow: 1px 1px 2px rgba(255,255,255,0.6); + } + + // ── Séparateur décoratif ────────────────────────────────── + .dialog-separator { + width: 100%; + height: 18px; + background: url("../images/ui/separator_01.webp") center/auto 100% no-repeat; + opacity: 0.7; + margin: 0.1rem 0; + } + + // ── Corps du dialog ─────────────────────────────────────── + .dialog-body { + display: flex; + flex-direction: column; + gap: 0.4rem; + padding: 0.5rem 0.75rem 0.75rem; + } + + // Ligne attribut principal + .dialog-attribute-row { + display: flex; + flex-direction: row; + align-items: baseline; + gap: 0.5rem; + padding: 0.3rem 0.5rem; + background: @be-gold-light; + border: 1px solid @be-gold-border; + border-radius: 2px; + + .dialog-attr-label { + font-family: @font-rivanna; + font-size: 1.1rem; + color: @be-bordeaux; + font-weight: bold; + flex: 1; + } + + .dialog-attr-value { + font-family: @font-rivanna; + font-size: 1.3rem; + font-weight: bold; + color: @be-sepia; + min-width: 2rem; + text-align: right; + } + } + + // Titre de section (éléments biographiques) + .dialog-section-title { + font-family: @font-rivanna; + font-size: 0.95rem; + color: @be-gold; + text-transform: uppercase; + letter-spacing: 0.05em; + border-bottom: 1px solid @be-gold-border; + padding-bottom: 0.15rem; + margin-top: 0.25rem; + } + + // Liste des éléments biographiques + .dialog-bio-list { + list-style: none; + margin: 0 0 0.25rem 0; + padding: 0 0 0 0.5rem; + + li { + color: @be-sepia; + font-size: 0.8rem; + padding: 0.1rem 0; + border-bottom: 1px dashed rgba(139, 105, 20, 0.2); + + &:last-child { border-bottom: none; } + + &::before { + content: "✦ "; + color: @be-gold; + font-size: 0.65rem; + } + } + } + + // Zone des modificateurs + .dialog-modifiers { + display: flex; + flex-direction: column; + gap: 0.3rem; + margin-top: 0.2rem; + } + + .dialog-modifier-row { + display: flex; + flex-direction: row; + align-items: center; + gap: 0.5rem; + padding: 0.25rem 0.5rem; + border-bottom: 1px solid rgba(139, 105, 20, 0.18); + + &:hover { + background: @be-sepia-light; + } + + .dialog-modifier-label { + flex: 1; + color: @be-sepia; + font-size: 0.82rem; + font-weight: 600; + cursor: default; + } + + select { + flex: 0 0 140px; + width: 140px; + border: 1px solid @be-gold-border; + background: rgba(255, 252, 245, 0.85); + color: @be-sepia; + font-size: 0.82rem; + padding: 1px 4px; + border-radius: 2px; + + &:hover { + border-color: @be-gold; + border-width: 2px; + } + &:focus { + outline: none; + border-color: @be-bordeaux; + box-shadow: 0 0 3px rgba(90, 10, 20, 0.3); + } + } + } + } + + footer.form-footer { + display: flex; + gap: 0.5rem; + padding: 0.5rem 0.75rem; + background: linear-gradient(to bottom, rgba(139, 105, 20, 0.08), rgba(139, 105, 20, 0.16)); + border-top: 1px solid @be-gold-border; + + button { + flex: 1; + padding: 0.4rem 0.75rem; + font-size: 0.9rem; + font-weight: 600; + border: 1px solid @be-gold-border; + border-radius: 2px; + background: linear-gradient(to bottom, rgba(255, 252, 240, 0.9), rgba(240, 230, 200, 0.9)); + color: @be-sepia; + cursor: pointer; + transition: all 0.15s ease; + + &:hover { + background: linear-gradient(to bottom, rgba(240, 220, 170, 0.95), rgba(220, 195, 140, 0.95)); + border-color: @be-gold; + color: @be-bordeaux; + } + + &[data-action="roll"], + &[type="submit"] { + background: linear-gradient(to bottom, @be-bordeaux, darken(@be-bordeaux, 8%)); + color: rgba(255, 245, 220, 0.95); + border-color: darken(@be-bordeaux, 10%); + font-size: 0.95rem; + + &:hover { + background: linear-gradient(to bottom, lighten(@be-bordeaux, 5%), @be-bordeaux); + border-color: @be-bordeaux; + color: #fff; + } + } + } + } +} + +/* =================================================================== + Dialogs AppV2 partagés (class: MaleficesDialog) + — utilisé par Tirage Tarot et Résumé des Personnages + =================================================================== */ +.MaleficesDialog { + + .window-content { + background: @bg-sheet; + padding: 0; + overflow-y: auto; + overflow-x: hidden; + } + + // ── Résumé des Personnages ───────────────────────────── + .character-summary-container { + padding: 0.5rem 0.75rem; + color: @be-sepia; + + .items-list { + list-style: none; + margin: 0; + padding: 0; + + .item { + display: flex; + align-items: center; + padding: 0.2rem 0.4rem; + border-bottom: 1px solid fade(@be-gold-border, 40%); + + &:last-child { border-bottom: none; } + + &.item-header { + background: linear-gradient(135deg, rgba(90,10,20,0.10), rgba(139,105,20,0.10)); + border: 1px solid @be-gold-border; + border-radius: 2px; + margin-bottom: 0.25rem; + font-family: "Cinzel Decorative", "Cinzel", serif; + font-size: 0.65rem; + font-weight: 700; + letter-spacing: 0.04em; + color: @be-bordeaux; + text-transform: uppercase; + + &:not(:first-child) { margin-top: 0.5rem; } + } + + &:hover:not(.item-header) { + background: rgba(139, 105, 20, 0.08); + } + } + + .item-field { + flex: 1; + text-align: center; + font-size: 0.85rem; + + &.item-name { flex: 3; text-align: left; font-weight: 600; } + &.item-name-label-long { flex: 3; text-align: left; } + &.item-name-label-short { flex: 1; text-align: center; } + &.right { text-align: right; } + } + + a.summary-roll, a.actor-open { + cursor: pointer; + color: @be-sepia; + &:hover { color: @be-bordeaux; text-decoration: underline; } + } + + .actor-delete { + color: fade(@be-sepia, 50%); + font-size: 0.75rem; + cursor: pointer; + &:hover { color: @be-bordeaux; } + } + } + } + + .tirage-tarot-dialog { + display: block; + padding: 0.6rem 0.75rem; + color: @be-sepia; + + // ── Sélection joueur / attribution ──────────────────── + .tirage-select-row { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.4rem 0.6rem; + margin-bottom: 0.5rem; + background: linear-gradient(135deg, rgba(90,10,20,0.08), rgba(139,105,20,0.08)); + border: 1px solid @be-gold-border; + border-radius: 2px; + + .tirage-select-label { + flex: 1; + font-size: 0.85rem; + font-weight: 600; + color: @be-sepia; + } + + .tirage-select { + flex: 0 0 180px; + width: 180px; + border: 1px solid @be-gold-border; + background: rgba(255,252,240,0.85); + color: @be-sepia; + font-size: 0.85rem; + padding: 2px 4px; + border-radius: 2px; + &:focus { outline: none; border-color: @be-bordeaux; } + } + } + + .tirage-attribute-row { + background: linear-gradient(135deg, rgba(20,80,20,0.08), rgba(30,100,30,0.05)); + border-color: rgba(30,100,30,0.35); + } + + // ── Section (main joueur / main secrète) ────────────── + .tirage-section { + display: block; + margin-bottom: 0.5rem; + + .tirage-section-title { + display: block; + font-family: @font-rivanna, serif; + font-size: 1rem; + color: @be-bordeaux; + border-bottom: 1px solid @be-gold-border; + padding-bottom: 0.2rem; + margin-bottom: 0.4rem; + text-shadow: 0 1px 0 rgba(255,255,255,0.4); + + i { margin-right: 0.35rem; font-size: 0.85em; opacity: 0.7; } + + .tirage-player-name { + font-size: 0.85rem; + font-style: italic; + color: @be-sepia; + opacity: 0.8; + } + } + + .tirage-secret-title { color: fade(@be-sepia, 70%); } + } + + // ── Grille de cartes ────────────────────────────────── + .tirage-cards-row { + display: flex; + flex-wrap: wrap; + gap: 0.6rem; + margin-bottom: 0.5rem; + } + + .tirage-card { + display: inline-flex; + flex-direction: column; + align-items: center; + gap: 0.2rem; + width: 100px; + vertical-align: top; + + &:hover { + position: relative; + z-index: 100; + + .tirage-card-img { + transform: scale(2.2); + transform-origin: center top; + box-shadow: 3px 3px 12px rgba(0,0,0,0.4); + } + } + + .tirage-card-img { + width: 100px; + border: 1px solid @be-gold-border; + border-radius: 2px; + box-shadow: 1px 1px 4px rgba(0,0,0,0.2); + transition: transform 0.2s ease, box-shadow 0.2s ease; + transform-origin: center center; + cursor: zoom-in; + } + + .tirage-card-name { + font-family: @font-rivanna, serif; + font-size: 0.75rem; + color: @be-bordeaux; + text-align: center; + line-height: 1.2; + } + + .tirage-card-side { + font-size: 0.7rem; + font-weight: 600; + &.tirage-positif { color: #1a5c1a; } + &.tirage-negatif { color: @be-bordeaux; } + } + + &.tirage-card-secret { + opacity: 0.85; + .tirage-card-name { color: fade(@be-sepia, 70%); } + } + } + + // ── Séparateur décoratif ────────────────────────────── + .tirage-separator { + display: block; + height: 18px; + background: url("../images/ui/separator_01.webp") center/auto 100% no-repeat; + opacity: 0.5; + margin: 0.25rem 0; + } + } + + // ── Footer avec bouton Fermer ───────────────────────── + .tirage-footer { + display: flex; + justify-content: flex-end; + padding: 0.4rem 0.75rem; + border-top: 1px solid @be-gold-border; + background: linear-gradient(to bottom, rgba(139,105,20,0.08), rgba(139,105,20,0.16)); + + .tirage-close-btn { + padding: 0.3rem 1rem; + font-size: 0.85rem; + border: 1px solid @be-gold-border; + border-radius: 2px; + background: linear-gradient(to bottom, rgba(255,252,240,0.9), rgba(240,230,200,0.9)); + color: @be-sepia; + cursor: pointer; + &:hover { + background: linear-gradient(to bottom, rgba(240,220,170,0.95), rgba(220,195,140,0.95)); + border-color: @be-gold; + color: @be-bordeaux; + } + } + } +} diff --git a/less/item-sheet.less b/less/item-sheet.less new file mode 100644 index 0000000..6a85813 --- /dev/null +++ b/less/item-sheet.less @@ -0,0 +1,136 @@ +/* =================================================================== + AppV2 Item Sheets + Selectors use .fvtt-malefices.item (both classes on the same root + element, no space) to target only AppV2 item sheet windows. + =================================================================== */ + +.fvtt-malefices.item { + + /* window-content: background and remove padding. + Foundry AppV2 already sets: display:flex flex-flow:column overflow:hidden */ + .window-content { + padding: 0; + background: @bg-sheet; + color: @color-text; + font-size: 0.8rem; + } + + /* All sections inside item fill their flex container */ + section { + height: 100%; + display: flex; + flex-direction: column; + flex: 1; + min-height: 0; + overflow: hidden; + } + + /* Fixed header bar */ + .header { + flex: 0 0 auto; + border-bottom: 1px solid #999; + } + + /* sheet-body: scroll container */ + section.sheet-body { + overflow-y: auto; + overflow-x: hidden; + padding: 0.25rem 0.5rem; + } + + /* Override legacy height: 100% on tab divs; hide all tabs, show only the active one */ + .tab[data-tab] { + height: auto; + display: none; + + &.active { + display: block; + } + } + + /* Header layout override for item sheets (smaller than actor sheet header) */ + .sheet-header { + flex: 0 0 auto; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + gap: 0.5rem; + padding: 0.5rem; + margin-bottom: 0; + } + + .item-sheet-img { + flex: 0 0 64px; + width: 64px; + height: 64px; + object-fit: cover; + border: 1px solid #999; + cursor: pointer; + } + + .item-sheet-title { + flex: 1; + + h1 { + margin: 0; + padding: 0; + border-bottom: none; + + input { + background: transparent; + border: none; + font-family: @font-rivanna; + font-size: 1.8rem; + width: 100%; + height: auto; + } + } + } + + .header-actions { + flex: 0 0 auto; + display: flex; + gap: 0.25rem; + align-items: center; + } + + /* Tab navigation: AppV2 uses nav.tabs (not nav.sheet-tabs) */ + nav.tabs { + display: flex; + flex: 0 0 auto; + font-family: @font-rivanna; + font-size: @tab-font-size; + font-weight: bold; + height: @tab-height; + margin: 0; + padding: 0 0 0 0.25rem; + text-align: center; + text-transform: uppercase; + line-height: @tab-height; + border-top: 0 none; + border-bottom: 0 none; + background-color: @color-tab-bg; + color: @color-tab-text; + gap: 0.25rem; + + a.item { + position: relative; + padding: 0 0.5rem; + color: @color-tab-text; + font-family: @font-rivanna; + font-size: @tab-font-size; + text-decoration: none; + line-height: @tab-height; + + &:hover { + text-shadow: 1px 0px 0px @color-accent; + } + + &.active { + text-shadow: 1px 0px 0px @color-accent; + text-decoration: underline; + } + } + } + +} diff --git a/less/legacy-sheets.less b/less/legacy-sheets.less new file mode 100644 index 0000000..a1626a8 --- /dev/null +++ b/less/legacy-sheets.less @@ -0,0 +1,340 @@ +/* Styles limited to sheets */ +.fvtt-malefices .sheet-header { + -webkit-box-flex: 0; + -ms-flex: 0 0 210px; + flex: 0 0 210px; + overflow: hidden; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-bottom: 10px; +} + +.fvtt-malefices .sheet-header .profile-img { + -webkit-box-flex: 0; + -ms-flex: 0 0 128px; + flex: 0 0 128px; + width: 128px; + height: auto; + max-height:128px; + margin-top: 0px; + margin-right: 10px; + object-fit: cover; + object-position: 50% 0; + border-width: 0px; +} +.profile-img-container { + margin-right: 0.2rem; + max-width: 140px; + width: 140px; +} + +.button-img { + vertical-align: baseline; + width: 8%; + height: 8%; + max-height: 48px; + border-width: 0px; + border: 1px solid rgba(0, 0, 0, 0); +} + +.button-img:hover { + color: rgba(255, 255, 128, 0.7); + border: 1px solid rgba(255, 128, 0, 0.8); + cursor: pointer; +} + +.button-effect-img { + vertical-align: baseline; + width: 16px; + max-height: 16px; + height: 16; + border-width: 0; +} + +.small-button-container { + height: 16px; + width: 16px; + border: 0; + vertical-align: bottom; +} + +.fvtt-malefices .sheet-header .header-fields { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.fvtt-malefices .sheet-header h1.charname { + height: 50px; + padding: 0px; + margin: 5px 0; + border-bottom: 0; +} + +.fvtt-malefices .sheet-header h1.charname input { + font-family: Rivanna; + font-size: 3rem; + width: 100%; + height: 100%; + margin: 0; +} + +.fvtt-malefices .sheet-tabs { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; + font-family: Rivanna; + font-size: 2.2rem; +} + +.fvtt-malefices .sheet-body, +.fvtt-malefices .sheet-body .tab, +.fvtt-malefices .sheet-body .tab .editor { + height: 100%; + font-size: 0.8rem; +} + +.editor { + border: 2; + height: 100%; + padding: 0 3px; +} + +.medium-editor { + border: 2; + height: 240px; + padding: 0 3px; +} + +.small-editor { + border: 2; + height: 120px; + padding: 0 3px; +} + +.fvtt-malefices .tox .tox-editor-container { + background: #fff; +} + +.fvtt-malefices .tox .tox-edit-area { + padding: 0 8px; +} + +.fvtt-malefices .resource-label { + font-weight: bold; + text-transform: uppercase; +} + +.fvtt-malefices .tabs { + height: 40px; + border-top: 1px solid #AAA; + border-bottom: 1px solid #AAA; + color: #000000; +} + +.fvtt-malefices .tabs .item { + line-height: 40px; + font-weight: bold; +} + +.fvtt-malefices .tabs .item.active { + text-decoration: underline; + text-shadow: none; +} + +.fvtt-malefices .items-list { + list-style: none; + margin: 1px 0; + padding: 0; + overflow-y: auto; +} + +.fvtt-malefices .items-list .item-header { + font-weight: bold; +} + +.fvtt-malefices .items-list .item { + height: 30px; + line-height: 24px; + padding: 1px 0; + border-bottom: 1px solid #BBB; +} + +.fvtt-malefices .items-list .item .item-image { + -webkit-box-flex: 0; + -ms-flex: 0 0 24px; + flex: 0 0 24px; + margin-right: 5px; +} + +.fvtt-malefices .items-list .item img { + display: block; +} + +.fvtt-malefices .items-list .item-name { + margin: 0; +} + +.fvtt-malefices .items-list .item-controls { + -webkit-box-flex: 0; + -ms-flex: 0 0 86px; + flex: 0 0 86px; + text-align: right; +} + +li.folder > .folder-header h3 { + color: @color-text; +} + +/* ======================================== */ +/* Sheet */ +.fvtt-malefices .window-app.sheet .window-content .sheet-header{ + color: @color-text; + background: @bg-sheet; + /*background: #494e6b;*/ +} + +input[type="text"], select[type="text"] { + background:white; + color: @color-input-text; +} + +select { + background:white; + color: @color-input-text; +} +/* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/ +/*color: rgba(168, 139, 139, 0.5);*/ +.window-app.sheet .window-content .sheet-header select[type="text"], .window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-body input[type="text"], .window-app.sheet .window-content .sheet-body input[type="number"], .window-app.sheet .window-content .sheet-body select[type="text"] { + color: @color-text; + /*color: #494e6b;*/ +} + +.window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] { + color: @color-text; + background: @bg-sheet; + border: 1 none; + margin-bottom: 0.25rem; + margin-left: 2px; +} + +.window-app.sheet .window-content .sheet-body input[type="password"], .window-app.sheet .window-content .sheet-body input[type="date"], .window-app.sheet .window-content .sheet-body input[type="time"] { + color: @color-text; + background: @bg-sheet; + border: 1 none; + margin-bottom: 0.25rem; + margin-left: 2px; +} + +.window-app.sheet .window-content .sheet-body select, .window-app.sheet .window-content .sheet-header select { + color: @color-text; + background: #fff; + border: 1 none; + margin-bottom: 0.25rem; + margin-left: 2px; +} + +.fvtt-malefices .window-app .window-content, .fvtt-malefices .window-app.sheet .window-content .sheet-body{ + font-size: 0.8rem; + /*background: url("../images/ui/pc_sheet_bg.webp") repeat left top;*/ + background: @bg-sheet; + color: @color-text; +} + +/* background: rgba(245,245,240,0.6) url("../images/ui/sheet_background.webp") left top;*/ + +section.sheet-body{padding: 0.25rem 0.5rem;} + +.sheet header.sheet-header .profile-img { + object-fit: cover; + object-position: 50% 0; + margin: 0.5rem 0 0.5rem 0.5rem; + padding: 0; +} + +nav.sheet-tabs { + font-size: @tab-font-size; + font-weight: bold; + height: @tab-height; + flex: 0 0 @tab-height; + margin: 0; + padding: 0 0 0 0.25rem; + text-align: center; + text-transform: uppercase; + line-height: 1.5rem; + border-top: 0 none; + border-bottom: 0 none; + background-color: @color-tab-bg; + color: @color-tab-text; +} + +/* Dice tray specific overrides */ +.dice-tray button svg * { + fill: #6d5923 !important; +} +.dice-tray input[type="text"] { + color: #6d5923 !important; +} +.dice-tray button { + color: #6d5923 !important; +} + +nav.sheet-tabs .item { + position: relative; + padding: 0 0.25rem; + color: @color-tab-text; + margin-top: 4px; + margin-bottom: 4px; +} + +nav.sheet-tabs .item:after { + content: ""; + position: absolute; + top: 0; + right: 0; + height: 2rem; + width: 1px; + /*border-right: 1px dashed rgba(52, 52, 52, 0.25);*/ +} + +.sheet .tab[data-tab] { + padding: 0; +} + +section.sheet-body:after { + content: ""; + display: block; + clear: both; +} + +.sheet header.sheet-header .flex-compteurs {text-align: right;} +.sheet header.sheet-header .resource-content {width: 2rem;} + +.select-diff { + display: inline-block; + text-align: left; + width: 50px; +} + +.window-app.sheet .window-content .tooltip:hover .tooltiptext { + top: 2rem; + left: 2rem; + margin: 0; + padding: 0.25rem; +} + +.window-app.sheet .window-content .carac-value, .window-app.sheet .window-content .competence-xp { + margin: 0.05rem; + flex-basis: 3rem; + text-align: center; +} diff --git a/less/malefices.less b/less/malefices.less new file mode 100644 index 0000000..9a91122 --- /dev/null +++ b/less/malefices.less @@ -0,0 +1,12 @@ +// Main LESS file for Maléfices system +// Importing base styles and component-specific styles + +@import "variables"; +@import "base"; +@import "legacy-sheets"; +@import "components"; +@import "ui"; +@import "dialogs"; +@import "chat"; +@import "item-sheet"; +@import "actor-sheet"; diff --git a/less/ui.less b/less/ui.less new file mode 100644 index 0000000..dfa6674 --- /dev/null +++ b/less/ui.less @@ -0,0 +1,180 @@ +/*************************************************************/ +#pause +{ + font-size: 2rem; +} +#pause > h3 +{ + color: #CCC +} +#pause > img { + content: url(../images/ui/logo_pause.webp); + height: 200px; + width: 200px; + top: -100px; + left: calc(50% - 132px); +} + +#logo { + content : url(../images/ui/logo_pause.webp); + width: 100px; + height: 60px; +} + +.dice-cell { + padding-left: 12px; + padding-right: 12px; + width: 60px; + text-align: center; +} + +.dice-formula, +.dice-total { + height: 54px; + position:relative; +} + +.status-small-label { + font-size: 0.65rem; +} +.no-grow { + flex-grow: 1; + max-width: 32px; +} +.status-col-name { + max-width: 72px; +} +.img-no-border { + max-width: 48px; + max-height: 48px; + border: 0px; +} +.items-title-bg { + margin-top: 6px; + color: @color-text; + +} +.items-title-text { + margin-left: 4px; +} +.lock-icon { + width:16px; + height: 16px; +} +.item-sheet-img { + width: 64px; + height: auto; + border: 0; +} +.item-name-img { + flex-grow:1; + max-width: 2rem; + min-width: 2rem; +} +.item-name-label-header { + flex-grow:2; + max-width: 12rem; + min-width: 12rem; +} +.item-name-label-header-long { + flex-grow:2; + max-width: 14rem; + min-width: 14rem; +} +.item-name-label-header-long2 { + flex-grow:2; + max-width: 24rem; + min-width: 24rem; +} +.item-name-label { + flex-grow:2; + max-width: 10rem; + min-width: 10rem; +} +.item-name-label-long { + margin-top: 4px; + flex-grow:2; + max-width: 10rem; + min-width: 10rem; +} +.item-name-label-short { + flex-grow:1; + max-width: 4rem; + min-width: 4rem; +} +.item-name-label-medium { + margin-top: 4px; + flex-grow:2; + max-width: 6rem; + min-width: 6rem; +} +.item-name-label-long2 { + margin-top: 4px; + flex-grow:2; + max-width: 22rem; + min-width: 22rem; +} +.item-name-label-level2 { + flex-grow:2; + max-width: 9rem; + min-width: 9rem; +} +.item-field-label-short { + flex-grow:1; + max-width: 4rem; + min-width: 4rem; +} +.item-field-label-medium { + flex-grow:1; + max-width: 6rem; + min-width: 6rem; +} +.item-field-skill { + flex-grow:1; + max-width: 6.8rem; + min-width: 6.8rem; +} +.item-field-label-long { + flex-grow:1; + max-width: 10rem; + min-width: 10rem; +} +.item-control-end { + align-self: flex-end; +} +.alternate-list { + margin-top: 4px; + flex-wrap: nowrap; +} +.item-filler { + flex-grow: 6; + flex-shrink: 7; +} +.item-controls-fixed { + min-width:2rem; + max-width: 2rem; +} +.attribute-label { + font-weight: bold; +} +.flexrow-no-expand { + flex-grow: 0; +} +.item-input-small { + max-width: 16px; + max-height: 12px; +} +.flip-tarot { + transform: scaleY(-1); +} +.tarot-fixed-width { + width: 140px; + max-width: 140px; +} +.tarot-title { + text-align: center; + font-weight: bold; +} +.character-summary-rollable { + text-decoration: underline; +} diff --git a/less/variables.less b/less/variables.less new file mode 100644 index 0000000..df247fd --- /dev/null +++ b/less/variables.less @@ -0,0 +1,19 @@ +// ==================== Variables ==================== + +// Fonts +@font-rivanna: Rivanna, serif; + +// Colors +@color-text: rgba(19, 18, 18, 0.95); +@color-accent: #ff6600; +@color-tab-bg: #252525; +@color-tab-text: beige; +@color-input-text: #494e6b; +@color-sidebar-bg: #f5f5f5; + +// Backgrounds +@bg-sheet: url("../images/ui/background_01_clear.webp"); + +// Tabs +@tab-height: 3rem; +@tab-font-size: 1.2rem; diff --git a/modules/applications/sheets/_module.mjs b/modules/applications/sheets/_module.mjs new file mode 100644 index 0000000..e277581 --- /dev/null +++ b/modules/applications/sheets/_module.mjs @@ -0,0 +1,13 @@ +/** + * Index des fiches AppV2 pour Maléfices + */ +// Actor sheets +export { default as MaleficesPersonnageSheet } from './malefices-personnage-sheet.mjs'; +export { default as MaleficesNPCActorSheet } from './malefices-npc-actor-sheet.mjs'; +// Item sheets +export { default as MaleficesArmeSheet } from './malefices-arme-sheet.mjs'; +export { default as MaleficesEquipementSheet } from './malefices-equipement-sheet.mjs'; +export { default as MaleficesArchetypeSheet } from './malefices-archetype-sheet.mjs'; +export { default as MaleficesTarotSheet } from './malefices-tarot-sheet.mjs'; +export { default as MaleficesSortilegeSheet } from './malefices-sortilege-sheet.mjs'; +export { default as MaleficesElementbioSheet } from './malefices-elementbio-sheet.mjs'; diff --git a/modules/applications/sheets/base-item-sheet.mjs b/modules/applications/sheets/base-item-sheet.mjs new file mode 100644 index 0000000..7c1a66d --- /dev/null +++ b/modules/applications/sheets/base-item-sheet.mjs @@ -0,0 +1,132 @@ +const { HandlebarsApplicationMixin } = foundry.applications.api + +export default class MaleficesItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) { + constructor(options = {}) { + super(options) + this.#dragDrop = this.#createDragDropHandlers() + } + + #dragDrop + + /** @override */ + static DEFAULT_OPTIONS = { + classes: ["fvtt-malefices", "item"], + position: { + width: 620, + height: 600, + }, + form: { + submitOnChange: true, + }, + window: { + resizable: true, + }, + dragDrop: [{ dragSelector: "[data-drag]", dropSelector: null }], + actions: { + editImage: MaleficesItemSheet.#onEditImage, + postItem: MaleficesItemSheet.#onPostItem, + }, + } + + /** @type {object} */ + tabGroups = { primary: "description" } + + /** @override */ + async _prepareContext() { + const context = { + fields: this.document.schema.fields, + systemFields: this.document.system.schema.fields, + item: this.document, + system: this.document.system, + source: this.document.toObject(), + enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML( + this.document.system.description ?? "", { async: true } + ), + isEditable: this.isEditable, + cssClass: this.isEditable ? "editable" : "locked", + isGM: game.user.isGM, + config: game.system.malefices.config, + } + return context + } + + /** @override */ + _onRender(context, options) { + super._onRender(context, options) + this.#dragDrop.forEach((d) => d.bind(this.element)) + + // Manual tab navigation + const nav = this.element.querySelector('nav.tabs[data-group]') + if (nav) { + const group = nav.dataset.group + const activeTab = this.tabGroups[group] || "description" + nav.querySelectorAll('[data-tab]').forEach(link => { + const tab = link.dataset.tab + link.classList.toggle('active', tab === activeTab) + link.addEventListener('click', (event) => { + event.preventDefault() + this.tabGroups[group] = tab + this.render() + }) + }) + this.element.querySelectorAll('[data-group="' + group + '"][data-tab]').forEach(content => { + content.classList.toggle('active', content.dataset.tab === activeTab) + }) + } + } + + // #region Drag-and-Drop + #createDragDropHandlers() { + return this.options.dragDrop.map((d) => { + d.permissions = { + dragstart: this._canDragStart.bind(this), + drop: this._canDragDrop.bind(this), + } + d.callbacks = { + dragstart: this._onDragStart.bind(this), + dragover: this._onDragOver.bind(this), + drop: this._onDrop.bind(this), + } + return new foundry.applications.ux.DragDrop.implementation(d) + }) + } + + _canDragStart(selector) { return this.isEditable } + _canDragDrop(selector) { return this.isEditable } + + _onDragStart(event) { + const dragData = { type: "Item", uuid: this.document.uuid } + event.dataTransfer.setData("text/plain", JSON.stringify(dragData)) + } + + _onDragOver(event) {} + + async _onDrop(event) {} + // #endregion + + // #region Actions + static async #onEditImage(event, target) { + const fp = new FilePicker({ + type: "image", + current: this.document.img, + callback: (path) => { this.document.update({ img: path }) }, + }) + return fp.browse() + } + + static async #onPostItem(event, target) { + let chatData = foundry.utils.duplicate(this.document) + if (this.document.actor) { + chatData.actor = { id: this.document.actor.id } + } + if (chatData.img?.includes("/blank.png")) { + chatData.img = null + } + chatData.jsondata = JSON.stringify({ compendium: "postedItem", payload: chatData }) + const html = await foundry.applications.handlebars.renderTemplate( + 'systems/fvtt-malefices/templates/post-item.hbs', chatData + ) + ChatMessage.create({ user: game.user.id, content: html }) + } + // #endregion +} diff --git a/modules/applications/sheets/malefices-archetype-sheet.mjs b/modules/applications/sheets/malefices-archetype-sheet.mjs new file mode 100644 index 0000000..cf5d356 --- /dev/null +++ b/modules/applications/sheets/malefices-archetype-sheet.mjs @@ -0,0 +1,35 @@ +import MaleficesItemSheet from "./base-item-sheet.mjs" +import { MaleficesUtility } from "../../malefices-utility.js" + +export default class MaleficesArchetypeSheet extends MaleficesItemSheet { + static DEFAULT_OPTIONS = { + classes: ["archetype"], + position: { width: 620 }, + window: { contentClasses: ["archetype-content"] }, + } + + static PARTS = { + main: { template: "systems/fvtt-malefices/templates/items/item-archetype-sheet.hbs" }, + } + + tabGroups = { primary: "details" } + + #getTabs() { + const tabs = { + details: { id: "details", group: "primary", label: "Détails" }, + description: { id: "description", group: "primary", label: "Description" }, + } + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] === v.id + v.cssClass = v.active ? "active" : "" + } + return tabs + } + + async _prepareContext() { + const context = await super._prepareContext() + context.tabs = this.#getTabs() + context.tarots = MaleficesUtility.getTarots() + return context + } +} diff --git a/modules/applications/sheets/malefices-arme-sheet.mjs b/modules/applications/sheets/malefices-arme-sheet.mjs new file mode 100644 index 0000000..8d805d6 --- /dev/null +++ b/modules/applications/sheets/malefices-arme-sheet.mjs @@ -0,0 +1,33 @@ +import MaleficesItemSheet from "./base-item-sheet.mjs" + +export default class MaleficesArmeSheet extends MaleficesItemSheet { + static DEFAULT_OPTIONS = { + classes: ["arme"], + position: { width: 640 }, + window: { contentClasses: ["arme-content"] }, + } + + static PARTS = { + main: { template: "systems/fvtt-malefices/templates/items/item-arme-sheet.hbs" }, + } + + tabGroups = { primary: "details" } + + #getTabs() { + const tabs = { + details: { id: "details", group: "primary", label: "Détails" }, + description: { id: "description", group: "primary", label: "Description" }, + } + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] === v.id + v.cssClass = v.active ? "active" : "" + } + return tabs + } + + async _prepareContext() { + const context = await super._prepareContext() + context.tabs = this.#getTabs() + return context + } +} diff --git a/modules/applications/sheets/malefices-base-actor-sheet.mjs b/modules/applications/sheets/malefices-base-actor-sheet.mjs new file mode 100644 index 0000000..eae7498 --- /dev/null +++ b/modules/applications/sheets/malefices-base-actor-sheet.mjs @@ -0,0 +1,225 @@ +const { HandlebarsApplicationMixin } = foundry.applications.api + +import { MaleficesUtility } from "../../malefices-utility.js" + +export default class MaleficesActorSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2) { + + constructor(options = {}) { + super(options) + this.#dragDrop = this.#createDragDropHandlers() + this._editScore = true + } + + #dragDrop + + /** @override */ + static DEFAULT_OPTIONS = { + classes: ["fvtt-malefices", "actor"], + position: { + width: 640, + height: 680, + }, + form: { + submitOnChange: true, + }, + window: { + resizable: true, + }, + dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], + actions: { + editImage: MaleficesActorSheet.#onEditImage, + toggleSheet: MaleficesActorSheet.#onToggleSheet, + editItem: MaleficesActorSheet.#onEditItem, + deleteItem: MaleficesActorSheet.#onDeleteItem, + createItem: MaleficesActorSheet.#onCreateItem, + equipItem: MaleficesActorSheet.#onEquipItem, + modifyQuantity: MaleficesActorSheet.#onModifyQuantity, + modifyAmmo: MaleficesActorSheet.#onModifyAmmo, + rollAttribut: MaleficesActorSheet.#onRollAttribut, + rollArme: MaleficesActorSheet.#onRollArme, + editSubActor: MaleficesActorSheet.#onEditSubActor, + deleteSubActor: MaleficesActorSheet.#onDeleteSubActor, + }, + } + + /** @type {object} */ + tabGroups = { primary: "main" } + + /** @override */ + async _prepareContext() { + const actor = this.document + return { + actor, + system: actor.system, + source: actor.toObject(), + fields: actor.schema.fields, + systemFields: actor.system.schema.fields, + isEditable: this.isEditable, + cssClass: this.isEditable ? "editable" : "locked", + isGM: game.user.isGM, + config: game.system.malefices.config, + editScore: this._editScore, + } + } + + /** @override */ + _onRender(context, options) { + super._onRender(context, options) + this.#dragDrop.forEach((d) => d.bind(this.element)) + + // Ignore Enter key in text inputs (not textarea) + this.element.addEventListener('keydown', (e) => { + if (e.key === 'Enter' && e.target.tagName !== 'TEXTAREA') e.preventDefault() + }) + + // Manual tab navigation + const nav = this.element.querySelector('nav.tabs[data-group]') + if (nav) { + const group = nav.dataset.group + const activeTab = this.tabGroups[group] || "main" + nav.querySelectorAll('[data-tab]').forEach(link => { + link.classList.toggle('active', link.dataset.tab === activeTab) + link.addEventListener('click', (event) => { + event.preventDefault() + this.tabGroups[group] = link.dataset.tab + this.render() + }) + }) + this.element.querySelectorAll(`[data-group="${group}"][data-tab]`).forEach(content => { + content.classList.toggle('active', content.dataset.tab === activeTab) + }) + } + + // Handle .update-field change events (legacy support) + this.element.querySelectorAll('.update-field').forEach(el => { + el.addEventListener('change', (ev) => { + const fieldName = ev.currentTarget.dataset.fieldName + const value = Number(ev.currentTarget.value) + this.actor.update({ [fieldName]: value }) + }) + }) + } + + // #region Drag-and-Drop + #createDragDropHandlers() { + return this.options.dragDrop.map((d) => { + d.permissions = { + dragstart: this._canDragStart.bind(this), + drop: this._canDragDrop.bind(this), + } + d.callbacks = { + dragstart: this._onDragStart.bind(this), + dragover: this._onDragOver.bind(this), + drop: this._onDrop.bind(this), + } + return new foundry.applications.ux.DragDrop.implementation(d) + }) + } + + _canDragStart(selector) { return this.isEditable } + _canDragDrop(selector) { return this.isEditable } + + _onDragStart(event) { + const li = event.currentTarget.closest('.item') + if (!li) return + const itemId = li.dataset.itemId + const item = this.actor.items.get(itemId) + if (item) { + event.dataTransfer.setData("text/plain", JSON.stringify({ type: "Item", uuid: item.uuid })) + } + } + + _onDragOver(event) {} + + async _onDrop(event) { + const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event) + if (data?.type === "Actor") { + const actor = await fromUuid(data.uuid) + if (actor) this.actor.addSubActor(actor.id) + } else { + super._onDrop(event) + } + } + // #endregion + + // #region Actions + static async #onEditImage(event, target) { + const fp = new FilePicker({ + type: "image", + current: this.document.img, + callback: (path) => { this.document.update({ img: path }) }, + }) + return fp.browse() + } + + static async #onToggleSheet(event, target) { + this._editScore = !this._editScore + this.render() + } + + static async #onEditItem(event, target) { + const li = target.closest(".item") + const itemId = li?.dataset.itemId + if (!itemId) return + this.actor.items.get(itemId)?.sheet.render(true) + } + + static async #onDeleteItem(event, target) { + const li = target.closest(".item") + MaleficesUtility.confirmDelete(this, li) + } + + static async #onCreateItem(event, target) { + const dataType = target.dataset.type + this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true }) + } + + static async #onEquipItem(event, target) { + const li = target.closest(".item") + const itemId = li?.dataset.itemId + if (!itemId) return + await this.actor.equipItem(itemId) + this.render() + } + + static async #onModifyQuantity(event, target) { + const li = target.closest(".item") + const itemId = li?.dataset.itemId + if (!itemId) return + const delta = parseInt(target.dataset.delta) || 0 + this.actor.incDecQuantity(itemId, delta) + } + + static async #onModifyAmmo(event, target) { + const li = target.closest(".item") + const itemId = li?.dataset.itemId + if (!itemId) return + const delta = parseInt(target.dataset.delta) || 0 + this.actor.incDecAmmo(itemId, delta) + } + + static async #onRollAttribut(event, target) { + const attrKey = target.dataset.attrKey + this.actor.rollAttribut(attrKey) + } + + static async #onRollArme(event, target) { + const armeId = target.dataset.armeId + this.actor.rollArme(armeId) + } + + static async #onEditSubActor(event, target) { + const li = target.closest(".item") + const actorId = li?.dataset.actorId + if (!actorId) return + game.actors.get(actorId)?.sheet.render(true) + } + + static async #onDeleteSubActor(event, target) { + const li = target.closest(".item") + const actorId = li?.dataset.actorId + if (!actorId) return + this.actor.delSubActor(actorId) + } + // #endregion +} diff --git a/modules/applications/sheets/malefices-elementbio-sheet.mjs b/modules/applications/sheets/malefices-elementbio-sheet.mjs new file mode 100644 index 0000000..cc0613b --- /dev/null +++ b/modules/applications/sheets/malefices-elementbio-sheet.mjs @@ -0,0 +1,32 @@ +import MaleficesItemSheet from "./base-item-sheet.mjs" + +export default class MaleficesElementbioSheet extends MaleficesItemSheet { + static DEFAULT_OPTIONS = { + classes: ["elementbio"], + position: { width: 620 }, + window: { contentClasses: ["elementbio-content"] }, + } + + static PARTS = { + main: { template: "systems/fvtt-malefices/templates/items/item-elementbio-sheet.hbs" }, + } + + tabGroups = { primary: "description" } + + #getTabs() { + const tabs = { + description: { id: "description", group: "primary", label: "Description" }, + } + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] === v.id + v.cssClass = v.active ? "active" : "" + } + return tabs + } + + async _prepareContext() { + const context = await super._prepareContext() + context.tabs = this.#getTabs() + return context + } +} diff --git a/modules/applications/sheets/malefices-equipement-sheet.mjs b/modules/applications/sheets/malefices-equipement-sheet.mjs new file mode 100644 index 0000000..9400ec1 --- /dev/null +++ b/modules/applications/sheets/malefices-equipement-sheet.mjs @@ -0,0 +1,32 @@ +import MaleficesItemSheet from "./base-item-sheet.mjs" + +export default class MaleficesEquipementSheet extends MaleficesItemSheet { + static DEFAULT_OPTIONS = { + classes: ["equipement"], + position: { width: 620 }, + window: { contentClasses: ["equipement-content"] }, + } + + static PARTS = { + main: { template: "systems/fvtt-malefices/templates/items/item-equipement-sheet.hbs" }, + } + + tabGroups = { primary: "description" } + + #getTabs() { + const tabs = { + description: { id: "description", group: "primary", label: "Description" }, + } + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] === v.id + v.cssClass = v.active ? "active" : "" + } + return tabs + } + + async _prepareContext() { + const context = await super._prepareContext() + context.tabs = this.#getTabs() + return context + } +} diff --git a/modules/applications/sheets/malefices-npc-actor-sheet.mjs b/modules/applications/sheets/malefices-npc-actor-sheet.mjs new file mode 100644 index 0000000..830b4f8 --- /dev/null +++ b/modules/applications/sheets/malefices-npc-actor-sheet.mjs @@ -0,0 +1,27 @@ +import MaleficesActorSheet from "./malefices-base-actor-sheet.mjs" + +export default class MaleficesNPCActorSheet extends MaleficesActorSheet { + + /** @override */ + static DEFAULT_OPTIONS = { + classes: ["pnj"], + position: { width: 560, height: 460 }, + } + + /** @override */ + static PARTS = { + main: { template: "systems/fvtt-malefices/templates/actors/npc-sheet.hbs" }, + } + + /** @override */ + tabGroups = { primary: "main" } + + /** @override */ + async _prepareContext() { + const context = await super._prepareContext() + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML( + this.document.system.description ?? "", { async: true } + ) + return context + } +} diff --git a/modules/applications/sheets/malefices-personnage-sheet.mjs b/modules/applications/sheets/malefices-personnage-sheet.mjs new file mode 100644 index 0000000..e9b98c7 --- /dev/null +++ b/modules/applications/sheets/malefices-personnage-sheet.mjs @@ -0,0 +1,48 @@ +import MaleficesActorSheet from "./malefices-base-actor-sheet.mjs" + +export default class MaleficesPersonnageSheet extends MaleficesActorSheet { + + /** @override */ + static DEFAULT_OPTIONS = { + classes: ["personnage"], + position: { width: 640, height: 680 }, + } + + /** @override */ + static PARTS = { + main: { template: "systems/fvtt-malefices/templates/actors/actor-sheet.hbs" }, + } + + /** @override */ + tabGroups = { primary: "main" } + + /** @override */ + async _prepareContext() { + const context = await super._prepareContext() + const actor = this.document + + context.armes = foundry.utils.duplicate(actor.getArmes()) + context.tarots = foundry.utils.duplicate(actor.getTarots()) + context.tarotsCache = foundry.utils.duplicate(actor.getHiddenTarots()) + context.archetype = foundry.utils.duplicate(actor.getArchetype()) + context.equipements = foundry.utils.duplicate(actor.getEquipements()) + context.elementsbio = actor.getElementsBio() + context.sorts = actor.getSorts() + context.phyMalus = actor.getPhysiqueMalus() + context.subActors = foundry.utils.duplicate(actor.getSubActors()) + + // Expose nested biodata schema fields for {{formInput}} helper + context.biodataFields = actor.system.schema.fields.biodata.fields + + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML( + actor.system.biodata?.description ?? "", { async: true } + ) + context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML( + actor.system.biodata?.notes ?? "", { async: true } + ) + context.enrichedEquipementlibre = await foundry.applications.ux.TextEditor.implementation.enrichHTML( + actor.system.equipementlibre ?? "", { async: true } + ) + return context + } +} diff --git a/modules/applications/sheets/malefices-sortilege-sheet.mjs b/modules/applications/sheets/malefices-sortilege-sheet.mjs new file mode 100644 index 0000000..3c32e98 --- /dev/null +++ b/modules/applications/sheets/malefices-sortilege-sheet.mjs @@ -0,0 +1,33 @@ +import MaleficesItemSheet from "./base-item-sheet.mjs" + +export default class MaleficesSortilegeSheet extends MaleficesItemSheet { + static DEFAULT_OPTIONS = { + classes: ["sortilege"], + position: { width: 620 }, + window: { contentClasses: ["sortilege-content"] }, + } + + static PARTS = { + main: { template: "systems/fvtt-malefices/templates/items/item-sortilege-sheet.hbs" }, + } + + tabGroups = { primary: "details" } + + #getTabs() { + const tabs = { + details: { id: "details", group: "primary", label: "Détails" }, + description: { id: "description", group: "primary", label: "Description" }, + } + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] === v.id + v.cssClass = v.active ? "active" : "" + } + return tabs + } + + async _prepareContext() { + const context = await super._prepareContext() + context.tabs = this.#getTabs() + return context + } +} diff --git a/modules/applications/sheets/malefices-tarot-sheet.mjs b/modules/applications/sheets/malefices-tarot-sheet.mjs new file mode 100644 index 0000000..81cf2a3 --- /dev/null +++ b/modules/applications/sheets/malefices-tarot-sheet.mjs @@ -0,0 +1,33 @@ +import MaleficesItemSheet from "./base-item-sheet.mjs" + +export default class MaleficesTarotSheet extends MaleficesItemSheet { + static DEFAULT_OPTIONS = { + classes: ["tarot"], + position: { width: 660, height: 640 }, + window: { contentClasses: ["tarot-content"] }, + } + + static PARTS = { + main: { template: "systems/fvtt-malefices/templates/items/item-tarot-sheet.hbs" }, + } + + tabGroups = { primary: "details" } + + #getTabs() { + const tabs = { + details: { id: "details", group: "primary", label: "Détails" }, + description: { id: "description", group: "primary", label: "Description" }, + } + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] === v.id + v.cssClass = v.active ? "active" : "" + } + return tabs + } + + async _prepareContext() { + const context = await super._prepareContext() + context.tabs = this.#getTabs() + return context + } +} diff --git a/modules/malefices-actor.js b/modules/malefices-actor.js index 53419e7..2c95972 100644 --- a/modules/malefices-actor.js +++ b/modules/malefices-actor.js @@ -389,8 +389,7 @@ export class MaleficesActor extends Actor { /* -------------------------------------------- */ async startRoll(rollData) { - let rollDialog = await MaleficesRollDialog.create(this, rollData) - rollDialog.render(true) + await MaleficesRollDialog.create(this, rollData) } } diff --git a/modules/malefices-commands.js b/modules/malefices-commands.js index e90a72e..7cc7959 100644 --- a/modules/malefices-commands.js +++ b/modules/malefices-commands.js @@ -125,7 +125,6 @@ export class MaleficesCommands { tirageData.secretCards.push({ name: "???", img: "systems/fvtt-malefices/images/tarots/background.webp" }) let tirageDialog = await MaleficesTirageTarotDialog.create(this, tirageData) - tirageDialog.render(true) } } /* --------------------------------------------- */ diff --git a/modules/malefices-item-sheet.js b/modules/malefices-item-sheet.js index 0d0846e..2debf67 100644 --- a/modules/malefices-item-sheet.js +++ b/modules/malefices-item-sheet.js @@ -80,20 +80,14 @@ export class MaleficesItemSheet extends foundry.appv1.sheets.ItemSheet { if (this.actor) { chatData.actor = { id: this.actor.id }; } - // Don't post any image for the item (which would leave a large gap) if the default image is used - if (chatData.img.includes("/blank.png")) { + if (chatData.img?.includes("/blank.png")) { chatData.img = null; } - // JSON object for easy creation - chatData.jsondata = JSON.stringify( - { - compendium: "postedItem", - payload: chatData, - }); + chatData.config = game.system.malefices.config + chatData.jsondata = JSON.stringify({ compendium: "postedItem", payload: chatData }) - renderTemplate('systems/Malefices/templates/post-item.html', chatData).then(html => { - let chatOptions = MaleficesUtility.chatDataSetup(html); - ChatMessage.create(chatOptions) + foundry.applications.handlebars.renderTemplate('systems/fvtt-malefices/templates/post-item.hbs', chatData).then(html => { + ChatMessage.create(MaleficesUtility.chatDataSetup(html)) }); } diff --git a/modules/malefices-item.js b/modules/malefices-item.js index 2973e53..55fe2b7 100644 --- a/modules/malefices-item.js +++ b/modules/malefices-item.js @@ -1,7 +1,7 @@ import { MaleficesUtility } from "./malefices-utility.js"; export const defaultItemImg = { - arme: "systems/fvtt-malefices/images/icons/arme.webp", + arme: "systems/fvtt-malefices/images/icons/epee.webp", equipement: "systems/fvtt-malefices/images/icons/equipement.webp", elementbio: "systems/fvtt-malefices/images/icons/wisdom.webp", archetype: "systems/fvtt-malefices/images/icons/archetype.webp", diff --git a/modules/malefices-main.js b/modules/malefices-main.js index 8b76e91..9cac99f 100644 --- a/modules/malefices-main.js +++ b/modules/malefices-main.js @@ -9,9 +9,6 @@ /* -------------------------------------------- */ // Import Modules import { MaleficesActor } from "./malefices-actor.js"; -import { MaleficesItemSheet } from "./malefices-item-sheet.js"; -import { MaleficesActorSheet } from "./malefices-actor-sheet.js"; -import { MaleficesNPCSheet } from "./malefices-npc-sheet.js"; import { MaleficesUtility } from "./malefices-utility.js"; import { MaleficesCombat } from "./malefices-combat.js"; import { MaleficesItem } from "./malefices-item.js"; @@ -20,6 +17,12 @@ import { MaleficesCharacterSummary } from "./malefices-summary-app.js" import { MALEFICES_CONFIG } from "./malefices-config.js" import { ClassCounter} from "https://www.uberwald.me/fvtt_appcount/count-class-ready.js" +// Import DataModels +import * as models from "./models/index.mjs" + +// Import AppV2 Sheets +import * as sheets from "./applications/sheets/_module.mjs" + /* -------------------------------------------- */ /* Foundry VTT Initialization */ /* -------------------------------------------- */ @@ -54,33 +57,51 @@ Hooks.once("init", async function () { // Define custom Entity classes CONFIG.Combat.documentClass = MaleficesCombat CONFIG.Actor.documentClass = MaleficesActor + CONFIG.Actor.dataModels = { + personnage: models.PersonnageDataModel, + pnj: models.PnjDataModel + } + CONFIG.Item.documentClass = MaleficesItem + CONFIG.Item.dataModels = { + arme: models.ArmeDataModel, + equipement: models.EquipementDataModel, + archetype: models.ArchetypeDataModel, + tarot: models.TarotDataModel, + sortilege: models.SortilegeDataModel, + elementbio: models.ElementbioDataModel + } /* -------------------------------------------- */ - // Register sheet application classes + // Register AppV2 Actor Sheets foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet); - foundry.documents.collections.Actors.registerSheet("fvtt-malefices", MaleficesActorSheet, { types: ["personnage"], makeDefault: true }); - foundry.documents.collections.Actors.registerSheet("fvtt-malefices", MaleficesNPCSheet, { types: ["pnj"], makeDefault: false }); + foundry.documents.collections.Actors.registerSheet("fvtt-malefices", sheets.MaleficesPersonnageSheet, { types: ["personnage"], makeDefault: true }); + foundry.documents.collections.Actors.registerSheet("fvtt-malefices", sheets.MaleficesNPCActorSheet, { types: ["pnj"], makeDefault: true }); + // Register AppV2 Item Sheets foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet); - foundry.documents.collections.Items.registerSheet("fvtt-malefices", MaleficesItemSheet, { makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-malefices", sheets.MaleficesArmeSheet, { types: ["arme"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-malefices", sheets.MaleficesEquipementSheet, { types: ["equipement"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-malefices", sheets.MaleficesArchetypeSheet, { types: ["archetype"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-malefices", sheets.MaleficesTarotSheet, { types: ["tarot"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-malefices", sheets.MaleficesSortilegeSheet, { types: ["sortilege"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-malefices", sheets.MaleficesElementbioSheet, { types: ["elementbio"], makeDefault: true }); MaleficesUtility.init() }); /* -------------------------------------------- */ -function welcomeMessage() { +async function welcomeMessage() { if (game.user.isGM) { + const content = await foundry.applications.handlebars.renderTemplate( + 'systems/fvtt-malefices/templates/chat/welcome-message.hbs', {} + ) ChatMessage.create({ user: game.user.id, whisper: [game.user.id], - content: `
- Bienvenu dans Malefices, le JDR qui sent le souffre ! -

Le Livre de Base de Maléfices v4 est nécessaire pour jouer : https://arkhane-asylum.fr/en/malefices/

-

Maléfices et un jeu de rôle publié par Arkhane Asylum Publishing, tout les droits leur appartiennent.

-

Système développé par LeRatierBretonnien avec l'aide de la Dame du Lac et Malik, support sur le Discord FR de Foundry.

-

Commandes : /tirage pour le tirage des tarots, /carte pour tirer une simple carte et /resume pour le résumé des PJs (MJ seulement)` }); + content + }); } } diff --git a/modules/malefices-roll-dialog.js b/modules/malefices-roll-dialog.js index 852dc61..5341e31 100644 --- a/modules/malefices-roll-dialog.js +++ b/modules/malefices-roll-dialog.js @@ -1,91 +1,57 @@ import { MaleficesUtility } from "./malefices-utility.js"; -export class MaleficesRollDialog extends Dialog { +export class MaleficesRollDialog { /* -------------------------------------------- */ static async create(actor, rollData) { + const isCard = rollData?.attr?.iscard + const template = isCard + ? 'systems/fvtt-malefices/templates/dialogs/confrontation-dialog.hbs' + : 'systems/fvtt-malefices/templates/dialogs/roll-dialog-generic.hbs' - let options = { classes: ["MaleficesDialog"], width: 540, height: 'fit-content', 'z-index': 99999 } - let html - if (rollData?.attr?.iscard) { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-malefices/templates/dialogs/confrontation-dialog.hbs', rollData); - } else { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-malefices/templates/dialogs/roll-dialog-generic.hbs', rollData); - } + const content = await foundry.applications.handlebars.renderTemplate(template, rollData) - return new MaleficesRollDialog(actor, rollData, html, options); - } - - /* -------------------------------------------- */ - constructor(actor, rollData, html, options, close = undefined) { - let isCard = rollData?.attr?.iscard - let conf = { - title: (isCard) ? "Jet" : "Tirage", - content: html, - buttons: { - roll: { - icon: '', - label: (isCard) ? "Tirer une carte" : "Lancer le dé", - callback: () => { this.roll() } - }, - cancel: { - icon: '', - label: "Annuler", - callback: () => { this.close() } - } + return foundry.applications.api.DialogV2.wait({ + window: { + title: isCard ? "Tirage" : "Jet de dé", + icon: isCard ? "fa-solid fa-layer-group" : "fa-solid fa-dice-d20", }, - close: close - } - - super(conf, options); - - this.actor = actor; - this.rollData = rollData; + classes: ["malefices-roll-dialog"], + position: { width: 540 }, + modal: false, + rejectClose: false, + content, + buttons: [ + { + action: "roll", + label: isCard ? "Tirer une carte" : "Lancer le dé", + icon: isCard ? "fa-solid fa-layer-group" : "fa-solid fa-check", + default: true, + callback: (event, button, dialog) => { + MaleficesRollDialog._updateRollDataFromForm(rollData, button.form.elements) + if (isCard) { + MaleficesUtility.tirageConfrontationMalefices(rollData) + } else { + MaleficesUtility.rollMalefices(rollData) + } + } + }, + { + action: "cancel", + label: "Annuler", + icon: "fa-solid fa-times", + } + ], + }) } /* -------------------------------------------- */ - roll() { - let isCard = this.rollData?.attr?.iscard - if (isCard) { - MaleficesUtility.tirageConfrontationMalefices(this.rollData) - } else { - MaleficesUtility.rollMalefices(this.rollData) - } - } - - /* -------------------------------------------- */ - async refreshDialog() { - const content = await renderTemplate("systems/fvtt-malefices/templates/dialogs/roll-dialog-generic.hbs", this.rollData) - this.data.content = content - this.render(true) - } - - /* -------------------------------------------- */ - activateListeners(html) { - super.activateListeners(html); - - function onLoad() { - } - $(function () { onLoad(); }); - - html.find('#bonusMalusSituation').change((event) => { - this.rollData.bonusMalusSituation = Number(event.currentTarget.value) - }) - html.find('#bonusMalusPerso').change((event) => { - this.rollData.bonusMalusPerso = Number(event.currentTarget.value) - }) - html.find('#bonusMalusDef').change((event) => { - this.rollData.bonusMalusDef = Number(event.currentTarget.value) - }) - html.find('#bonusMalusPortee').change((event) => { - this.rollData.bonusMalusPortee = Number(event.currentTarget.value) - }) - html.find('#confrontationDegre').change((event) => { - this.rollData.confrontationDegre = Number(event.currentTarget.value) - }) - html.find('#confrontationModif').change((event) => { - this.rollData.confrontationModif = Number(event.currentTarget.value) - }) - + static _updateRollDataFromForm(rollData, elements) { + if (elements.bonusMalusPerso) rollData.bonusMalusPerso = Number(elements.bonusMalusPerso.value) + if (elements.bonusMalusSituation) rollData.bonusMalusSituation = Number(elements.bonusMalusSituation.value) + if (elements.bonusMalusDef) rollData.bonusMalusDef = Number(elements.bonusMalusDef.value) + if (elements.bonusMalusPortee) rollData.bonusMalusPortee = Number(elements.bonusMalusPortee.value) + if (elements.confrontationDegre) rollData.confrontationDegre = Number(elements.confrontationDegre.value) + if (elements.confrontationModif) rollData.confrontationModif = Number(elements.confrontationModif.value) } } \ No newline at end of file diff --git a/modules/malefices-summary-app.js b/modules/malefices-summary-app.js index 09e6faf..ba9f4a6 100644 --- a/modules/malefices-summary-app.js +++ b/modules/malefices-summary-app.js @@ -1,134 +1,133 @@ /* -------------------------------------------- */ import { MaleficesUtility } from "./malefices-utility.js"; +const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api + /* -------------------------------------------- */ -export class MaleficesCharacterSummary extends Application { +export class MaleficesCharacterSummary extends HandlebarsApplicationMixin(ApplicationV2) { + + /* -------------------------------------------- */ + static DEFAULT_OPTIONS = { + id: "malefices-character-summary", + classes: ["MaleficesDialog"], + window: { title: "Résumé des Personnages", resizable: true }, + position: { width: 960, height: "auto" }, + dragDrop: [{ dragSelector: null, dropSelector: ".character-summary-container" }], + } + + static PARTS = { + form: { template: "systems/fvtt-malefices/templates/dialogs/character-summary.hbs" } + } /* -------------------------------------------- */ static displayPCSummary() { if (game.user.isGM) { - game.system.malefices.charSummary.render(true) + game.system.malefices.charSummary.render({ force: true }) } else { - ui.notifications.info("Commande /tirage réservée au MJ !") + ui.notifications.info("Commande /resume réservée au MJ !") } } /* -------------------------------------------- */ updatePCSummary() { - if (this.rendered) { - this.render(true) + if (this.element?.isConnected) { + this.render({ force: true }) } } - /* -------------------------------------------- */ - static createSummaryPos() { - return { top: 200, left: 200 }; - } - /* -------------------------------------------- */ static ready() { - if (!game.user.isGM) { // Uniquement si GM + if (!game.user.isGM) { return } - let charSummary = new MaleficesCharacterSummary() - game.system.malefices.charSummary = charSummary + game.system.malefices.charSummary = new MaleficesCharacterSummary() } /* -------------------------------------------- */ - constructor() { - super(); - //game.settings.set("world", "character-summary-data", {npcList: [], x:0, y:0}) - this.settings = game.settings.get("world", "character-summary-data") + constructor(options = {}) { + super(options) + const saved = game.settings.get("world", "character-summary-data") + this.extraList = saved.extraList ?? saved.npcList ?? [] } /* -------------------------------------------- */ - static get defaultOptions() { - return foundry.utils.mergeObject(super.defaultOptions, { - template: "systems/fvtt-malefices/templates/dialogs/character-summary.hbs", - popOut: true, - resizable: true, - dragDrop: [{ dragSelector: ".items-list .item", dropSelector: null }], - classes: ["bol", "dialog"], width: 920, height: 'fit-content' + async _prepareContext(_options) { + const pcs = game.actors.filter(ac => ac.type === "personnage" && ac.hasPlayerOwner) + const extras = [] + const validList = [] + for (const actorId of this.extraList) { + const actor = game.actors.get(actorId) + if (actor) { extras.push(actor); validList.push(actorId) } + } + if (validList.length !== this.extraList.length) { + this.extraList = validList + this._persist() + } + return { pcs, extras, config: game.system.malefices.config } + } + + /* -------------------------------------------- */ + _onRender(_context, _options) { + const el = this.element + + el.querySelectorAll('.actor-open').forEach(a => { + a.addEventListener('click', event => { + const li = event.currentTarget.closest('.item') + const actor = game.actors.get(li.dataset.actorId) + actor?.sheet.render(true) + }) }) + + el.querySelectorAll('.summary-roll').forEach(a => { + a.addEventListener('click', event => { + const li = event.currentTarget.closest('.item') + const actor = game.actors.get(li.dataset.actorId) + const key = event.currentTarget.dataset.key + actor?.rollAttribut(key) + }) + }) + + el.querySelectorAll('.actor-delete').forEach(a => { + a.addEventListener('click', event => { + const li = event.currentTarget.closest('.item') + this.extraList = this.extraList.filter(id => id !== li.dataset.actorId) + this._persist() + this.render({ force: true }) + }) + }) + + const dropZone = el.querySelector('.character-summary-container') + if (dropZone) { + dropZone.addEventListener('dragover', ev => ev.preventDefault()) + dropZone.addEventListener('drop', ev => { ev.stopPropagation(); this._onDrop(ev) }) + } } /* -------------------------------------------- */ - getData() { - let formData = super.getData(); + _canDragDrop(_selector) { return true } - formData.pcs = game.actors.filter(ac => ac.type == "personnage" && ac.hasPlayerOwner) - formData.npcs = [] - let newList = [] - let toUpdate = false - for (let actorId of this.settings.npcList) { - let actor = game.actors.get(actorId) - if (actor) { - formData.npcs.push(actor) - newList.push(actorId) - } else { - toUpdate = true - } - } - formData.config = game.system.malefices.config - - if (toUpdate) { - this.settings.npcList = newList - //console.log("Going to update ...", this.settings) - game.settings.set("world", "character-summary-data", this.settings) - } - - return formData + /* -------------------------------------------- */ + _persist() { + const saved = game.settings.get("world", "character-summary-data") + game.settings.set("world", "character-summary-data", { ...saved, extraList: this.extraList }) } /* -------------------------------------------- */ - updateNPC() { - game.settings.set("world", "character-summary-data", game.system.malefices.charSummary.settings) - game.system.malefices.charSummary.close() - setTimeout(function () { game.system.malefices.charSummary.render(true) }, 500) + _saveAndRefresh() { + this.render({ force: true }) } /* -------------------------------------------- */ async _onDrop(event) { - //console.log("Dragged data are : ", dragData) - let data = event.dataTransfer.getData('text/plain') - let dataItem = JSON.parse(data) - let actor = fromUuidSync(dataItem.uuid) - if (actor) { - game.system.malefices.charSummary.settings.npcList.push(actor.id) - game.system.malefices.charSummary.updateNPC() - - } else { - ui.notifications.warn("Pas d'acteur trouvé") - } - } - - /* -------------------------------------------- */ - /** @override */ - async activateListeners(html) { - super.activateListeners(html); - - html.find('.actor-open').click((event) => { - const li = $(event.currentTarget).parents(".item") - const actor = game.actors.get(li.data("actor-id")) - actor.sheet.render(true) - }) - - html.find('.summary-roll').click((event) => { - const li = $(event.currentTarget).parents(".item") - const actor = game.actors.get(li.data("actor-id")) - let type = $(event.currentTarget).data("type") - let key = $(event.currentTarget).data("key") - actor.rollAttribut(key) - }) - - html.find('.actor-delete').click(event => { - const li = $(event.currentTarget).parents(".item"); - let actorId = li.data("actor-id") - let newList = game.system.malefices.charSummary.settings.npcList.filter(id => id != actorId) - game.system.malefices.charSummary.settings.npcList = newList - game.system.malefices.charSummary.updateNPC() - }) - + try { + const dataItem = JSON.parse(event.dataTransfer.getData('text/plain')) + const actor = fromUuidSync(dataItem.uuid) + if (actor && !this.extraList.includes(actor.id)) { + this.extraList.push(actor.id) + this._persist() + this.render({ force: true }) + } + } catch(e) { /* not a valid drag payload */ } } } \ No newline at end of file diff --git a/modules/malefices-tirage-tarot-dialog.js b/modules/malefices-tirage-tarot-dialog.js index f9b0096..e99af92 100644 --- a/modules/malefices-tirage-tarot-dialog.js +++ b/modules/malefices-tirage-tarot-dialog.js @@ -1,155 +1,132 @@ import { MaleficesUtility } from "./malefices-utility.js"; -export class MaleficesTirageTarotDialog extends Dialog { +const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api + +export class MaleficesTirageTarotDialog extends HandlebarsApplicationMixin(ApplicationV2) { /* -------------------------------------------- */ - static async create(actor, tirageData) { + static DEFAULT_OPTIONS = { + id: "malefices-tirage-tarot", + classes: ["MaleficesDialog"], + window: { title: "Tirage des Tarots", resizable: true }, + position: { width: 720, height: 740 }, + } - let options = { classes: ["MaleficesDialog"], width: 720, height: 740, 'z-index': 99999 }; - let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-malefices/templates/dialogs/tirage-tarot-dialog.hbs', tirageData); - - return new MaleficesTirageTarotDialog(actor, tirageData, html, options); + static PARTS = { + form: { template: 'systems/fvtt-malefices/templates/dialogs/tirage-tarot-dialog.hbs' } } /* -------------------------------------------- */ - constructor(actor, tirageData, html, options, close = undefined) { - let conf = { - title: "Tirage des tarots", - content: html, - buttons: { - cancel: { - icon: '', - label: "Fermer/Annuler", - callback: () => { this.close() } - } - }, - close: close - } + constructor(actor, tirageData, options = {}) { + super(options) + this.actor = actor + this.tirageData = tirageData + } - super(conf, options); + /* -------------------------------------------- */ + static async create(actor, tirageData) { + const app = new MaleficesTirageTarotDialog(actor, tirageData) + app.render({ force: true }) + return app + } - this.actor = actor; - this.tirageData = tirageData; + /* -------------------------------------------- */ + async _prepareContext(_options) { + return { ...this.tirageData } + } + + /* -------------------------------------------- */ + _onRender(_context, _options) { + const el = this.element + + el.querySelector('#playerId')?.addEventListener('change', (event) => { + if (event.currentTarget.value !== "none") { + this.tirageData.playerId = event.currentTarget.value + this.processSelectedPlayer() + } + }) + + el.querySelector('#actorId')?.addEventListener('change', (event) => { + if (event.currentTarget.value !== "none") { + this.attributeToActor(event.currentTarget.value) + } + }) + + el.querySelector('.tirage-close-btn')?.addEventListener('click', () => this.close()) } /* -------------------------------------------- */ async sendCardRequest() { this.tirageData.state = 'waiting-user-card' - let msg = await MaleficesUtility.createChatMessage(this.tirageData.user.name, "useronly", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/request-tarot-card.hbs`, this.tirageData) + await MaleficesUtility.createChatMessage(this.tirageData.user.name, "useronly", { + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-malefices/templates/chat/request-tarot-card.hbs`, this.tirageData) }) - //msg.setFlag("world", "tirage-data", this.tirageData) - console.log("MSG IS", msg) } /* -------------------------------------------- */ drawCard() { - let index = Math.round(Math.random() * (this.tirageData.deck.length-1)) + let index = Math.round(Math.random() * (this.tirageData.deck.length - 1)) let selectedCard = this.tirageData.deck[index] selectedCard.system.ispositif = true - if ( selectedCard.system.isdualside) { // Cas des cartes pouvant avoir 2 sens + if (selectedCard.system.isdualside) { selectedCard.system.ispositif = (Math.random() > 0.5) } - console.log("CARD SELECTED:", selectedCard) // Cas spécial de la Roue de la Fortune - if ( selectedCard.name.toLowerCase().includes("fortune")) { + if (selectedCard.name.toLowerCase().includes("fortune")) { this.tirageData.maxPlayerCard += 1 this.tirageData.maxSecretCard += 1 } - let newList = [] - for(let card of this.tirageData.deck) { - if (card.name != selectedCard.name) { - newList.push(card) - } - } - this.tirageData.deck = newList - + this.tirageData.deck = this.tirageData.deck.filter(c => c.name !== selectedCard.name) return selectedCard } /* -------------------------------------------- */ - async addCard( msgId ) { + async addCard(msgId) { MaleficesUtility.removeChatMessageId(msgId) let selectedCard = this.drawCard() selectedCard.system.isgm = false await MaleficesUtility.createChatMessage(this.tirageData.user.name, "gmroll", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) }) - if (this.tirageData.cards[0].name == "???") { - this.tirageData.cards.shift() - } + if (this.tirageData.cards[0].name == "???") this.tirageData.cards.shift() this.tirageData.cards.push(selectedCard) this.tirageData.nbCard++ if (this.tirageData.nbCard == this.tirageData.maxPlayerCard) { - for (let i=0; i { - if ( event.currentTarget.value != "none") { - dialog.tirageData.playerId = event.currentTarget.value - dialog.processSelectedPlayer() - } - }) - html.find('#actorId').change((event) => { - if ( event.currentTarget.value != "none") { - let actorId = event.currentTarget.value - dialog.attributeToActor(actorId) - } - }) - - } } \ No newline at end of file diff --git a/modules/malefices-utility.js b/modules/malefices-utility.js index 7d167c8..14f98f0 100644 --- a/modules/malefices-utility.js +++ b/modules/malefices-utility.js @@ -56,7 +56,7 @@ export class MaleficesUtility { name: "character-summary-data", scope: "world", config: false, - default: { npcList: [], x: 200, y: 200 }, + default: { extraList: [], x: 200, y: 200 }, type: Object }) @@ -135,8 +135,13 @@ export class MaleficesUtility { const templatePaths = [ 'systems/fvtt-malefices/templates/actors/editor-notes-gm.hbs', + 'systems/fvtt-malefices/templates/items/partial-item-header.hbs', 'systems/fvtt-malefices/templates/items/partial-item-nav.hbs', - 'systems/fvtt-malefices/templates/items/partial-item-description.hbs' + 'systems/fvtt-malefices/templates/items/partial-item-description.hbs', + 'systems/fvtt-malefices/templates/post-item.hbs', + 'systems/fvtt-malefices/templates/actors/npc-sheet.hbs', + 'systems/fvtt-malefices/templates/chat/welcome-message.hbs', + 'systems/fvtt-malefices/templates/dialogs/character-summary.hbs' ] return foundry.applications.handlebars.loadTemplates(templatePaths); } @@ -385,7 +390,7 @@ export class MaleficesUtility { rollData.total = selectedCard.value rollData.selectedCard = selectedCard await MaleficesUtility.createChatMessage(actor.name, "gmroll", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) }) this.computeResults(rollData) @@ -399,7 +404,7 @@ export class MaleficesUtility { } await MaleficesUtility.createChatMessage(actor.name, "gmroll", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/chat-confrontation-result.hbs`, rollData) + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-malefices/templates/chat/chat-confrontation-result.hbs`, rollData) }) this.processSpecialCard(actor, rollData) } @@ -554,30 +559,16 @@ export class MaleficesUtility { /* -------------------------------------------- */ static async confirmDelete(actorSheet, li) { - let itemId = li.data("item-id"); - let msgTxt = "

Are you sure to remove this Item ?"; - let buttons = { - delete: { - icon: '', - label: "Yes, remove it", - callback: () => { - actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]); - li.slideUp(200, () => actorSheet.render(false)); - } - }, - cancel: { - icon: '', - label: "Cancel" - } - } - msgTxt += "

"; - let d = new Dialog({ - title: "Confirm removal", - content: msgTxt, - buttons: buttons, - default: "cancel" + const itemId = li.dataset.itemId; + const confirmed = await foundry.applications.api.DialogV2.confirm({ + window: { title: "Confirmer la suppression" }, + content: "

Supprimer cet objet ?

", + yes: { label: "Supprimer", icon: "fas fa-trash" }, + no: { label: "Annuler", icon: "fas fa-times" }, }); - d.render(true); + if (confirmed) { + actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]); + } } } \ No newline at end of file diff --git a/modules/models/archetype.mjs b/modules/models/archetype.mjs new file mode 100644 index 0000000..f6e04c2 --- /dev/null +++ b/modules/models/archetype.mjs @@ -0,0 +1,12 @@ +/** + * Data model pour les archétypes + */ +export default class ArchetypeDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + lametutelaire: new fields.StringField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/arme.mjs b/modules/models/arme.mjs new file mode 100644 index 0000000..28676db --- /dev/null +++ b/modules/models/arme.mjs @@ -0,0 +1,19 @@ +/** + * Data model pour les armes + */ +export default class ArmeDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + armetype: new fields.StringField({ initial: "" }), + porteecourte: new fields.StringField({ initial: "" }), + porteemoyenne: new fields.StringField({ initial: "" }), + dommagenormale: new fields.NumberField({ initial: 0, integer: true }), + dommagepart: new fields.NumberField({ initial: 0, integer: true }), + dommagecritique: new fields.NumberField({ initial: 0, integer: true }), + dommagecritiqueKO: new fields.BooleanField({ initial: false }), + dommagecritiquemort: new fields.BooleanField({ initial: false }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/elementbio.mjs b/modules/models/elementbio.mjs new file mode 100644 index 0000000..408ebf6 --- /dev/null +++ b/modules/models/elementbio.mjs @@ -0,0 +1,11 @@ +/** + * Data model pour les éléments biographiques + */ +export default class ElementbioDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/equipement.mjs b/modules/models/equipement.mjs new file mode 100644 index 0000000..a2f6aa5 --- /dev/null +++ b/modules/models/equipement.mjs @@ -0,0 +1,11 @@ +/** + * Data model pour les équipements + */ +export default class EquipementDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/index.mjs b/modules/models/index.mjs new file mode 100644 index 0000000..dc966db --- /dev/null +++ b/modules/models/index.mjs @@ -0,0 +1,15 @@ +/** + * Index des DataModels pour Maléfices + */ + +// Modèles d'acteurs +export { default as PersonnageDataModel } from './personnage.mjs'; +export { default as PnjDataModel } from './pnj.mjs'; + +// Modèles d'items +export { default as ArmeDataModel } from './arme.mjs'; +export { default as EquipementDataModel } from './equipement.mjs'; +export { default as ArchetypeDataModel } from './archetype.mjs'; +export { default as TarotDataModel } from './tarot.mjs'; +export { default as SortilegeDataModel } from './sortilege.mjs'; +export { default as ElementbioDataModel } from './elementbio.mjs'; diff --git a/modules/models/personnage.mjs b/modules/models/personnage.mjs new file mode 100644 index 0000000..3c61d58 --- /dev/null +++ b/modules/models/personnage.mjs @@ -0,0 +1,95 @@ +/** + * Data model pour les personnages joueurs (type "personnage") + */ +export default class PersonnageDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + // Template biodata + biodata: new fields.SchemaField({ + age: new fields.NumberField({ initial: 0, integer: true }), + size: new fields.StringField({ initial: "" }), + lieunaissance: new fields.StringField({ initial: "" }), + nationalite: new fields.StringField({ initial: "" }), + profession: new fields.StringField({ initial: "" }), + residence: new fields.StringField({ initial: "" }), + milieusocial: new fields.StringField({ initial: "" }), + poids: new fields.StringField({ initial: "" }), + cheveux: new fields.StringField({ initial: "" }), + sexe: new fields.StringField({ initial: "" }), + yeux: new fields.StringField({ initial: "" }), + enfance: new fields.StringField({ initial: "" }), + adulte: new fields.StringField({ initial: "" }), + loisirs: new fields.StringField({ initial: "" }), + singularite: new fields.StringField({ initial: "" }), + politique: new fields.StringField({ initial: "" }), + religion: new fields.StringField({ initial: "" }), + fantastique: new fields.StringField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }), + notes: new fields.HTMLField({ initial: "" }), + gmnotes: new fields.HTMLField({ initial: "" }) + }), + // Template core + subactors: new fields.ArrayField(new fields.StringField(), { initial: [] }), + lamesdestin: new fields.ArrayField(new fields.StringField(), { initial: [] }), + pointdestin: new fields.NumberField({ initial: 1, integer: true }), + fluide: new fields.NumberField({ initial: 5, integer: true }), + mpmb: new fields.NumberField({ initial: 0, integer: true }), + mpmn: new fields.NumberField({ initial: 0, integer: true }), + equipementlibre: new fields.HTMLField({ initial: "" }), + attributs: new fields.SchemaField({ + constitution: new fields.SchemaField({ + label: new fields.StringField({ initial: "Constitution" }), + abbrev: new fields.StringField({ initial: "constitution" }), + value: new fields.NumberField({ initial: 0, integer: true }), + hasmax: new fields.BooleanField({ initial: true }), + max: new fields.NumberField({ initial: 0, integer: true }) + }), + physique: new fields.SchemaField({ + label: new fields.StringField({ initial: "Aptitudes Physiques" }), + abbrev: new fields.StringField({ initial: "physique" }), + value: new fields.NumberField({ initial: 0, integer: true }), + hasmax: new fields.BooleanField({ initial: false }), + max: new fields.NumberField({ initial: 0, integer: true }) + }), + culturegenerale: new fields.SchemaField({ + label: new fields.StringField({ initial: "Culture Générale" }), + abbrev: new fields.StringField({ initial: "culturegenerale" }), + value: new fields.NumberField({ initial: 0, integer: true }), + hasmax: new fields.BooleanField({ initial: false }), + max: new fields.NumberField({ initial: 0, integer: true }) + }), + habilite: new fields.SchemaField({ + label: new fields.StringField({ initial: "Habilité" }), + abbrev: new fields.StringField({ initial: "habilite" }), + value: new fields.NumberField({ initial: 0, integer: true }), + hasmax: new fields.BooleanField({ initial: false }), + max: new fields.NumberField({ initial: 0, integer: true }) + }), + perception: new fields.SchemaField({ + label: new fields.StringField({ initial: "Perception" }), + abbrev: new fields.StringField({ initial: "perception" }), + value: new fields.NumberField({ initial: 0, integer: true }), + hasmax: new fields.BooleanField({ initial: false }), + max: new fields.NumberField({ initial: 0, integer: true }) + }), + spiritualite: new fields.SchemaField({ + label: new fields.StringField({ initial: "Spiritualite" }), + abbrev: new fields.StringField({ initial: "spiritualite" }), + value: new fields.NumberField({ initial: 0, integer: true }), + hasmax: new fields.BooleanField({ initial: false }), + iscard: new fields.BooleanField({ initial: true }), + max: new fields.NumberField({ initial: 0, integer: true }) + }), + rationnalite: new fields.SchemaField({ + label: new fields.StringField({ initial: "Rationnalite" }), + abbrev: new fields.StringField({ initial: "rationnalite" }), + value: new fields.NumberField({ initial: 0, integer: true }), + hasmax: new fields.BooleanField({ initial: false }), + iscard: new fields.BooleanField({ initial: true }), + max: new fields.NumberField({ initial: 0, integer: true }) + }) + }) + }; + } +} diff --git a/modules/models/pnj.mjs b/modules/models/pnj.mjs new file mode 100644 index 0000000..bd7c75a --- /dev/null +++ b/modules/models/pnj.mjs @@ -0,0 +1,12 @@ +/** + * Data model pour les PNJ (type "pnj") + */ +export default class PnjDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + npctype: new fields.StringField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/sortilege.mjs b/modules/models/sortilege.mjs new file mode 100644 index 0000000..1d13be7 --- /dev/null +++ b/modules/models/sortilege.mjs @@ -0,0 +1,12 @@ +/** + * Data model pour les sortilèges + */ +export default class SortilegeDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + seuil: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/tarot.mjs b/modules/models/tarot.mjs new file mode 100644 index 0000000..fb2af03 --- /dev/null +++ b/modules/models/tarot.mjs @@ -0,0 +1,17 @@ +/** + * Data model pour les lames de tarot + */ +export default class TarotDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + tarottype: new fields.StringField({ initial: "" }), + numericvalueup: new fields.NumberField({ initial: 0, integer: true }), + numericvaluedown: new fields.NumberField({ initial: 0, integer: true }), + isdualside: new fields.BooleanField({ initial: false }), + ispositif: new fields.BooleanField({ initial: true }), + isgm: new fields.BooleanField({ initial: false }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..839085a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4982 @@ +{ + "name": "fvtt-malefices", + "version": "13.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "fvtt-malefices", + "version": "13.0.0", + "license": "SEE LICENSE IN LICENCE.txt", + "devDependencies": { + "gulp": "^4.0.2", + "gulp-less": "^5.0.0", + "gulp-rename": "^2.0.0", + "gulp-sourcemaps": "^3.0.0" + } + }, + "node_modules/@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==", + "dev": true, + "license": "MIT", + "dependencies": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "license": "ISC", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/each-props/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs-mkdirp-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-less": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-5.0.0.tgz", + "integrity": "sha512-W2I3TewO/By6UZsM/wJG3pyK5M6J0NYmJAAhwYXQHR+38S0iDtZasmUgFCH3CQj+pQYw/PAIzxvFvwtEXz1HhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "less": "^3.7.1 || ^4.0.0", + "object-assign": "^4.0.1", + "plugin-error": "^1.0.0", + "replace-ext": "^2.0.0", + "through2": "^4.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/gulp-rename": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.1.0.tgz", + "integrity": "sha512-dGuzuH8jQGqCMqC544IEPhs5+O2l+IkdoSZsgd4kY97M1CxQeI3qrmweQBIrxLBbjbe/8uEWK8HHcNBc3OCy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gulp-sourcemaps/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "license": "MIT", + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/less": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.5.1.tgz", + "integrity": "sha512-UKgI3/KON4u6ngSsnDADsUERqhZknsVZbnuzlRZXLQCmfC/MDld42fTydUE9B+Mla1AL6SJ/Pp6SlEFi/AVGfw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/memoizee": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", + "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "es5-ext": "^0.10.64", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nan": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.25.0.tgz", + "integrity": "sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true, + "license": "ISC" + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/plugin-error/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-bom-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "license": "ISC" + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true, + "license": "ISC" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "dev": true, + "license": "BlueOak-1.0.0", + "optional": true, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/through2-filter/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-ext": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", + "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/to-through/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.4.0.tgz", + "integrity": "sha512-V6QarSfeSgDipGA9EZdoIzu03ZDlOFkk+FbEP5cwgrZXN3iIkYR91IjU2EnM6rB835kGQsqHX8qncObTXV+6KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "3.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", + "dev": true, + "license": "ISC", + "dependencies": { + "source-map": "^0.5.1" + } + }, + "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..95878b2 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "fvtt-malefices", + "version": "13.0.0", + "description": "Maléfices RPG for FoundryVTT - French", + "scripts": { + "build": "gulp build", + "watch": "gulp watch" + }, + "author": "Uberwald/LeRatierBretonnien", + "license": "SEE LICENSE IN LICENCE.txt", + "devDependencies": { + "gulp": "^4.0.2", + "gulp-less": "^5.0.0", + "gulp-rename": "^2.0.0", + "gulp-sourcemaps": "^3.0.0" + } +} diff --git a/packs/malefices-archetypes/000044.log b/packs/malefices-archetypes/000066.log similarity index 100% rename from packs/malefices-archetypes/000044.log rename to packs/malefices-archetypes/000066.log diff --git a/packs/malefices-archetypes/CURRENT b/packs/malefices-archetypes/CURRENT index 8e0a062..5d746f2 100644 --- a/packs/malefices-archetypes/CURRENT +++ b/packs/malefices-archetypes/CURRENT @@ -1 +1 @@ -MANIFEST-000042 +MANIFEST-000064 diff --git a/packs/malefices-archetypes/LOG b/packs/malefices-archetypes/LOG index fd34b06..f0d1f2c 100644 --- a/packs/malefices-archetypes/LOG +++ b/packs/malefices-archetypes/LOG @@ -1,7 +1,7 @@ -2025/09/29-07:31:55.732840 7f68515fa6c0 Recovering log #39 -2025/09/29-07:31:55.762660 7f68515fa6c0 Delete type=3 #36 -2025/09/29-07:31:55.762738 7f68515fa6c0 Delete type=0 #39 -2025/09/29-07:33:20.941480 7f684affd6c0 Level-0 table #45: started -2025/09/29-07:33:20.941516 7f684affd6c0 Level-0 table #45: 0 bytes OK -2025/09/29-07:33:20.968021 7f684affd6c0 Delete type=0 #43 -2025/09/29-07:33:20.991797 7f684affd6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end) +2026/02/27-10:28:01.892467 7f56f8bfd6c0 Recovering log #63 +2026/02/27-10:28:01.948160 7f56f8bfd6c0 Delete type=0 #63 +2026/02/27-10:28:01.948272 7f56f8bfd6c0 Delete type=3 #62 +2026/02/27-14:29:37.861283 7f54e37ef6c0 Level-0 table #67: started +2026/02/27-14:29:37.861314 7f54e37ef6c0 Level-0 table #67: 0 bytes OK +2026/02/27-14:29:37.867488 7f54e37ef6c0 Delete type=0 #65 +2026/02/27-14:29:37.880370 7f54e37ef6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end) diff --git a/packs/malefices-archetypes/LOG.old b/packs/malefices-archetypes/LOG.old index 124eb50..a5891fd 100644 --- a/packs/malefices-archetypes/LOG.old +++ b/packs/malefices-archetypes/LOG.old @@ -1,16 +1,3 @@ -2025/06/12-20:31:25.313277 7f13a0ff96c0 Recovering log #35 -2025/06/12-20:31:25.315223 7f13a0ff96c0 Level-0 table #37: started -2025/06/12-20:31:25.319146 7f13a0ff96c0 Level-0 table #37: 50829 bytes OK -2025/06/12-20:31:25.329210 7f13a0ff96c0 Delete type=0 #35 -2025/06/12-20:31:25.329273 7f13a0ff96c0 Delete type=3 #34 -2025/06/12-20:37:12.699768 7f139fbff6c0 Level-0 table #40: started -2025/06/12-20:37:12.699837 7f139fbff6c0 Level-0 table #40: 0 bytes OK -2025/06/12-20:37:12.706246 7f139fbff6c0 Delete type=0 #38 -2025/06/12-20:37:12.737419 7f139fbff6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at '!items!xtYE2kVIfNtrXSoU' @ 92 : 1 -2025/06/12-20:37:12.737429 7f139fbff6c0 Compacting 1@0 + 1@1 files -2025/06/12-20:37:12.742004 7f139fbff6c0 Generated table #41@0: 23 keys, 50829 bytes -2025/06/12-20:37:12.742024 7f139fbff6c0 Compacted 1@0 + 1@1 files => 50829 bytes -2025/06/12-20:37:12.748178 7f139fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2025/06/12-20:37:12.748270 7f139fbff6c0 Delete type=2 #33 -2025/06/12-20:37:12.748375 7f139fbff6c0 Delete type=2 #37 -2025/06/12-20:37:12.748448 7f139fbff6c0 Manual compaction at level-0 from '!items!xtYE2kVIfNtrXSoU' @ 92 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end) +2026/02/27-00:10:01.008967 7fbc5bfff6c0 Recovering log #60 +2026/02/27-00:10:01.061613 7fbc5bfff6c0 Delete type=3 #58 +2026/02/27-00:10:01.061695 7fbc5bfff6c0 Delete type=0 #60 diff --git a/packs/malefices-archetypes/MANIFEST-000042 b/packs/malefices-archetypes/MANIFEST-000064 similarity index 75% rename from packs/malefices-archetypes/MANIFEST-000042 rename to packs/malefices-archetypes/MANIFEST-000064 index a898d3f..4484140 100644 Binary files a/packs/malefices-archetypes/MANIFEST-000042 and b/packs/malefices-archetypes/MANIFEST-000064 differ diff --git a/packs/malefices-armes/000044.log b/packs/malefices-armes/000066.log similarity index 100% rename from packs/malefices-armes/000044.log rename to packs/malefices-armes/000066.log diff --git a/packs/malefices-armes/CURRENT b/packs/malefices-armes/CURRENT index 8e0a062..5d746f2 100644 --- a/packs/malefices-armes/CURRENT +++ b/packs/malefices-armes/CURRENT @@ -1 +1 @@ -MANIFEST-000042 +MANIFEST-000064 diff --git a/packs/malefices-armes/LOG b/packs/malefices-armes/LOG index 75b48fa..056f3d4 100644 --- a/packs/malefices-armes/LOG +++ b/packs/malefices-armes/LOG @@ -1,7 +1,7 @@ -2025/09/29-07:31:55.700298 7f6850df96c0 Recovering log #39 -2025/09/29-07:31:55.730618 7f6850df96c0 Delete type=3 #36 -2025/09/29-07:31:55.730700 7f6850df96c0 Delete type=0 #39 -2025/09/29-07:33:20.890444 7f684affd6c0 Level-0 table #45: started -2025/09/29-07:33:20.890504 7f684affd6c0 Level-0 table #45: 0 bytes OK -2025/09/29-07:33:20.919482 7f684affd6c0 Delete type=0 #43 -2025/09/29-07:33:20.991768 7f684affd6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end) +2026/02/27-10:28:01.832073 7f56f93fe6c0 Recovering log #63 +2026/02/27-10:28:01.886020 7f56f93fe6c0 Delete type=0 #63 +2026/02/27-10:28:01.886089 7f56f93fe6c0 Delete type=3 #62 +2026/02/27-14:29:37.854040 7f54e37ef6c0 Level-0 table #67: started +2026/02/27-14:29:37.854089 7f54e37ef6c0 Level-0 table #67: 0 bytes OK +2026/02/27-14:29:37.861166 7f54e37ef6c0 Delete type=0 #65 +2026/02/27-14:29:37.880355 7f54e37ef6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end) diff --git a/packs/malefices-armes/LOG.old b/packs/malefices-armes/LOG.old index ae4121b..d05cd81 100644 --- a/packs/malefices-armes/LOG.old +++ b/packs/malefices-armes/LOG.old @@ -1,16 +1,3 @@ -2025/06/12-20:31:25.295914 7f13a1ffb6c0 Recovering log #35 -2025/06/12-20:31:25.296128 7f13a1ffb6c0 Level-0 table #37: started -2025/06/12-20:31:25.299700 7f13a1ffb6c0 Level-0 table #37: 2083 bytes OK -2025/06/12-20:31:25.309703 7f13a1ffb6c0 Delete type=0 #35 -2025/06/12-20:31:25.309800 7f13a1ffb6c0 Delete type=3 #34 -2025/06/12-20:37:12.678958 7f139fbff6c0 Level-0 table #40: started -2025/06/12-20:37:12.679060 7f139fbff6c0 Level-0 table #40: 0 bytes OK -2025/06/12-20:37:12.686243 7f139fbff6c0 Delete type=0 #38 -2025/06/12-20:37:12.706447 7f139fbff6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at '!items!nkRQU81L1gWOfaeo' @ 36 : 1 -2025/06/12-20:37:12.706466 7f139fbff6c0 Compacting 1@0 + 1@1 files -2025/06/12-20:37:12.710210 7f139fbff6c0 Generated table #41@0: 9 keys, 2083 bytes -2025/06/12-20:37:12.710233 7f139fbff6c0 Compacted 1@0 + 1@1 files => 2083 bytes -2025/06/12-20:37:12.716905 7f139fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2025/06/12-20:37:12.717210 7f139fbff6c0 Delete type=2 #33 -2025/06/12-20:37:12.717533 7f139fbff6c0 Delete type=2 #37 -2025/06/12-20:37:12.748427 7f139fbff6c0 Manual compaction at level-0 from '!items!nkRQU81L1gWOfaeo' @ 36 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end) +2026/02/27-00:10:00.951941 7fbc5b7fe6c0 Recovering log #60 +2026/02/27-00:10:01.006960 7fbc5b7fe6c0 Delete type=3 #58 +2026/02/27-00:10:01.007022 7fbc5b7fe6c0 Delete type=0 #60 diff --git a/packs/malefices-armes/MANIFEST-000042 b/packs/malefices-armes/MANIFEST-000064 similarity index 76% rename from packs/malefices-armes/MANIFEST-000042 rename to packs/malefices-armes/MANIFEST-000064 index d03fe1b..7fbeeeb 100644 Binary files a/packs/malefices-armes/MANIFEST-000042 and b/packs/malefices-armes/MANIFEST-000064 differ diff --git a/packs/malefices-macros/000044.log b/packs/malefices-macros/000066.log similarity index 100% rename from packs/malefices-macros/000044.log rename to packs/malefices-macros/000066.log diff --git a/packs/malefices-macros/CURRENT b/packs/malefices-macros/CURRENT index 8e0a062..5d746f2 100644 --- a/packs/malefices-macros/CURRENT +++ b/packs/malefices-macros/CURRENT @@ -1 +1 @@ -MANIFEST-000042 +MANIFEST-000064 diff --git a/packs/malefices-macros/LOG b/packs/malefices-macros/LOG index 9e6fe82..e32691f 100644 --- a/packs/malefices-macros/LOG +++ b/packs/malefices-macros/LOG @@ -1,7 +1,7 @@ -2025/09/29-07:31:55.765046 7f684bfff6c0 Recovering log #39 -2025/09/29-07:31:55.805924 7f684bfff6c0 Delete type=3 #36 -2025/09/29-07:31:55.806008 7f684bfff6c0 Delete type=0 #39 -2025/09/29-07:33:20.968205 7f684affd6c0 Level-0 table #45: started -2025/09/29-07:33:20.968257 7f684affd6c0 Level-0 table #45: 0 bytes OK -2025/09/29-07:33:20.991626 7f684affd6c0 Delete type=0 #43 -2025/09/29-07:33:20.991810 7f684affd6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end) +2026/02/27-10:28:01.956384 7f56e3fff6c0 Recovering log #63 +2026/02/27-10:28:02.013265 7f56e3fff6c0 Delete type=0 #63 +2026/02/27-10:28:02.013323 7f56e3fff6c0 Delete type=3 #62 +2026/02/27-14:29:37.873932 7f54e37ef6c0 Level-0 table #67: started +2026/02/27-14:29:37.873976 7f54e37ef6c0 Level-0 table #67: 0 bytes OK +2026/02/27-14:29:37.880214 7f54e37ef6c0 Delete type=0 #65 +2026/02/27-14:29:37.880389 7f54e37ef6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end) diff --git a/packs/malefices-macros/LOG.old b/packs/malefices-macros/LOG.old index b16076b..ed59180 100644 --- a/packs/malefices-macros/LOG.old +++ b/packs/malefices-macros/LOG.old @@ -1,16 +1,3 @@ -2025/06/12-20:31:25.333075 7f13a17fa6c0 Recovering log #35 -2025/06/12-20:31:25.333133 7f13a17fa6c0 Level-0 table #37: started -2025/06/12-20:31:25.336454 7f13a17fa6c0 Level-0 table #37: 843 bytes OK -2025/06/12-20:31:25.347582 7f13a17fa6c0 Delete type=0 #35 -2025/06/12-20:31:25.347664 7f13a17fa6c0 Delete type=3 #34 -2025/06/12-20:37:12.686350 7f139fbff6c0 Level-0 table #40: started -2025/06/12-20:37:12.686369 7f139fbff6c0 Level-0 table #40: 0 bytes OK -2025/06/12-20:37:12.693290 7f139fbff6c0 Delete type=0 #38 -2025/06/12-20:37:12.717660 7f139fbff6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at '!macros!zDPgmHiwNxBWhoYz' @ 12 : 1 -2025/06/12-20:37:12.717670 7f139fbff6c0 Compacting 1@0 + 1@1 files -2025/06/12-20:37:12.720897 7f139fbff6c0 Generated table #41@0: 3 keys, 843 bytes -2025/06/12-20:37:12.720919 7f139fbff6c0 Compacted 1@0 + 1@1 files => 843 bytes -2025/06/12-20:37:12.727004 7f139fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2025/06/12-20:37:12.727078 7f139fbff6c0 Delete type=2 #33 -2025/06/12-20:37:12.727156 7f139fbff6c0 Delete type=2 #37 -2025/06/12-20:37:12.748434 7f139fbff6c0 Manual compaction at level-0 from '!macros!zDPgmHiwNxBWhoYz' @ 12 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end) +2026/02/27-00:10:01.064062 7fbc5affd6c0 Recovering log #60 +2026/02/27-00:10:01.123843 7fbc5affd6c0 Delete type=3 #58 +2026/02/27-00:10:01.123915 7fbc5affd6c0 Delete type=0 #60 diff --git a/packs/malefices-macros/MANIFEST-000042 b/packs/malefices-macros/MANIFEST-000064 similarity index 59% rename from packs/malefices-macros/MANIFEST-000042 rename to packs/malefices-macros/MANIFEST-000064 index 3e78deb..98e1c0b 100644 Binary files a/packs/malefices-macros/MANIFEST-000042 and b/packs/malefices-macros/MANIFEST-000064 differ diff --git a/packs/malefices-tarots/000044.log b/packs/malefices-tarots/000066.log similarity index 100% rename from packs/malefices-tarots/000044.log rename to packs/malefices-tarots/000066.log diff --git a/packs/malefices-tarots/CURRENT b/packs/malefices-tarots/CURRENT index 8e0a062..5d746f2 100644 --- a/packs/malefices-tarots/CURRENT +++ b/packs/malefices-tarots/CURRENT @@ -1 +1 @@ -MANIFEST-000042 +MANIFEST-000064 diff --git a/packs/malefices-tarots/LOG b/packs/malefices-tarots/LOG index 5fa3704..606670c 100644 --- a/packs/malefices-tarots/LOG +++ b/packs/malefices-tarots/LOG @@ -1,7 +1,7 @@ -2025/09/29-07:31:55.665720 7f684bfff6c0 Recovering log #39 -2025/09/29-07:31:55.697269 7f684bfff6c0 Delete type=3 #36 -2025/09/29-07:31:55.697384 7f684bfff6c0 Delete type=0 #39 -2025/09/29-07:33:20.919606 7f684affd6c0 Level-0 table #45: started -2025/09/29-07:33:20.919643 7f684affd6c0 Level-0 table #45: 0 bytes OK -2025/09/29-07:33:20.941329 7f684affd6c0 Delete type=0 #43 -2025/09/29-07:33:20.991782 7f684affd6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end) +2026/02/27-10:28:01.770730 7f56f9bff6c0 Recovering log #63 +2026/02/27-10:28:01.825327 7f56f9bff6c0 Delete type=0 #63 +2026/02/27-10:28:01.825401 7f56f9bff6c0 Delete type=3 #62 +2026/02/27-14:29:37.867627 7f54e37ef6c0 Level-0 table #67: started +2026/02/27-14:29:37.867663 7f54e37ef6c0 Level-0 table #67: 0 bytes OK +2026/02/27-14:29:37.873757 7f54e37ef6c0 Delete type=0 #65 +2026/02/27-14:29:37.880380 7f54e37ef6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end) diff --git a/packs/malefices-tarots/LOG.old b/packs/malefices-tarots/LOG.old index a69376c..d992f26 100644 --- a/packs/malefices-tarots/LOG.old +++ b/packs/malefices-tarots/LOG.old @@ -1,16 +1,3 @@ -2025/06/12-20:31:25.277690 7f13a17fa6c0 Recovering log #35 -2025/06/12-20:31:25.278265 7f13a17fa6c0 Level-0 table #37: started -2025/06/12-20:31:25.282099 7f13a17fa6c0 Level-0 table #37: 4074 bytes OK -2025/06/12-20:31:25.291692 7f13a17fa6c0 Delete type=0 #35 -2025/06/12-20:31:25.291746 7f13a17fa6c0 Delete type=3 #34 -2025/06/12-20:37:12.693368 7f139fbff6c0 Level-0 table #40: started -2025/06/12-20:37:12.693391 7f139fbff6c0 Level-0 table #40: 0 bytes OK -2025/06/12-20:37:12.699567 7f139fbff6c0 Delete type=0 #38 -2025/06/12-20:37:12.727201 7f139fbff6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at '!items!zbGGMEQFdwVdlKAf' @ 88 : 1 -2025/06/12-20:37:12.727206 7f139fbff6c0 Compacting 1@0 + 1@1 files -2025/06/12-20:37:12.730258 7f139fbff6c0 Generated table #41@0: 22 keys, 4074 bytes -2025/06/12-20:37:12.730268 7f139fbff6c0 Compacted 1@0 + 1@1 files => 4074 bytes -2025/06/12-20:37:12.737017 7f139fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2025/06/12-20:37:12.737151 7f139fbff6c0 Delete type=2 #33 -2025/06/12-20:37:12.737310 7f139fbff6c0 Delete type=2 #37 -2025/06/12-20:37:12.748441 7f139fbff6c0 Manual compaction at level-0 from '!items!zbGGMEQFdwVdlKAf' @ 88 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end) +2026/02/27-00:10:00.890338 7fbca89ff6c0 Recovering log #60 +2026/02/27-00:10:00.949636 7fbca89ff6c0 Delete type=3 #58 +2026/02/27-00:10:00.949712 7fbca89ff6c0 Delete type=0 #60 diff --git a/packs/malefices-tarots/MANIFEST-000042 b/packs/malefices-tarots/MANIFEST-000064 similarity index 76% rename from packs/malefices-tarots/MANIFEST-000042 rename to packs/malefices-tarots/MANIFEST-000064 index 97fe128..645ce48 100644 Binary files a/packs/malefices-tarots/MANIFEST-000042 and b/packs/malefices-tarots/MANIFEST-000064 differ diff --git a/styles/simple.css b/styles/simple.css index 7829fb6..0d4e37e 100644 --- a/styles/simple.css +++ b/styles/simple.css @@ -3,95 +3,100 @@ font-family: "Rivanna"; src: url('../fonts/rivanna.ttf') format("truetype"); } - :root { -/* =================== 1. ACTOR SHEET FONT STYLES =========== */ + /* =================== 1. ACTOR SHEET FONT STYLES =========== */ --window-header-title-font-size: 1.3rem; --window-header-title-font-weight: normal; --window-header-title-color: #f5f5f5; - --major-button-font-size: 1.05rem; --major-button-font-weight: normal; --major-button-color: #dadada; - - --tab-header-font-size: 1.0rem; + --tab-header-font-size: 1rem; --tab-header-font-weight: 700; --tab-header-color: #403f3e; --tab-header-color-active: #4a0404; - --actor-input-font-size: 0.8rem; --actor-input-font-weight: 500; --actor-input-color: black; - --actor-label-font-size: 0.8rem; --actor-label-font-weight: 700; --actor-label-color: #464331c4; - -/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */ + /* =================== 2. DEBUGGING HIGHLIGHTERS ============ */ --debug-background-color-red: #ff000054; --debug-background-color-blue: #1d00ff54; --debug-background-color-green: #54ff0054; - --debug-box-shadow-red: inset 0 0 2px red; --debug-box-shadow-blue: inset 0 0 2px blue; --debug-box-shadow-green: inset 0 0 2px green; } - /*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/ /* Global styles & Font */ .fvtt-malefices .window-app { -text-align: justify; -font-size: 16px; -letter-spacing: 1px; + text-align: justify; + font-size: 16px; + letter-spacing: 1px; } - /* Fonts */ -.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item { -font-size: 1.0rem; -} /* For title, sidebar character and scene */ +.sheet header.sheet-header h1 input, +.window-app .window-header, +#actors .directory-list, +#navigation #scene-list .scene.nav-item { + font-size: 1rem; +} +/* For title, sidebar character and scene */ .fvtt-malefices .sheet nav.sheet-tabs { -font-size: 0.8rem; -} /* For nav and title */ -.window-app input, .fvtt-malefices .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle { -font-size: 0.8rem; + font-size: 0.8rem; } - -.window-header{ -background: rgba(0,0,0,0.75); +/* For nav and title */ +.window-app input, +.fvtt-malefices .item-form, +.sheet header.sheet-header .flex-group-center.flex-compteurs, +.sheet header.sheet-header .flex-group-center.flex-fatigue, +select, +button, +.item-checkbox, +#sidebar, +#players, +#navigation #nav-toggle { + font-size: 0.8rem; +} +.window-header { + background: rgba(0, 0, 0, 0.75); } - .window-app.sheet .window-content { margin: 0; padding: 0; } -.strong-text{ +.strong-text { font-weight: bold; } - -.tabs .item.active, .blessures-list li ul li:first-child:hover, a:hover { +.tabs .item.active, +.blessures-list li ul li:first-child:hover, +a:hover { text-shadow: 1px 0px 0px #ff6600; } - -.rollable:hover, .rollable:focus { +.rollable:hover, +.rollable:focus { color: #000; text-shadow: 0 0 10px red; cursor: pointer; } - -input:hover, select:hover { +input:hover, +select:hover { border-width: 4px; - border-color: rgb(85, 65, 130); + border-color: #554182; } - input:disabled { - color:#1c2058; + color: #1c2058; } select:disabled { - color:#1c2058; + color: #1c2058; } -table {border: 1px solid #7a7971;} - -.grid, .grid-2col { +table { + border: 1px solid #7a7971; +} +.grid, +.grid-2col { display: grid; grid-column: span 2 / span 2; grid-template-columns: repeat(2, minmax(0, 1fr)); @@ -99,57 +104,46 @@ table {border: 1px solid #7a7971;} margin: 10px 0; padding: 0; } - .grid-3col { grid-column: span 3 / span 3; grid-template-columns: repeat(3, minmax(0, 1fr)); } - .grid-4col { grid-column: span 4 / span 4; grid-template-columns: repeat(4, minmax(0, 1fr)); } - .grid-5col { grid-column: span 5 / span 5; grid-template-columns: repeat(5, minmax(0, 1fr)); } - .grid-6col { grid-column: span 5 / span 5; grid-template-columns: repeat(5, minmax(0, 1fr)); } - .grid-7col { grid-column: span 7 / span 7; grid-template-columns: repeat(7, minmax(0, 1fr)); } - .grid-8col { grid-column: span 8 / span 8; grid-template-columns: repeat(8, minmax(0, 1fr)); } - .grid-9col { grid-column: span 9 / span 9; grid-template-columns: repeat(9, minmax(0, 1fr)); } - .grid-10col { grid-column: span 10 / span 10; grid-template-columns: repeat(10, minmax(0, 1fr)); } - .grid-11col { grid-column: span 11 / span 11; grid-template-columns: repeat(11, minmax(0, 1fr)); } - .grid-12col { grid-column: span 12 / span 12; grid-template-columns: repeat(12, minmax(0, 1fr)); } - .flex-group-center, .flex-group-left, .flex-group-right { @@ -162,21 +156,18 @@ table {border: 1px solid #7a7971;} text-align: center; padding: 5px; } - .flex-group-left { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; text-align: left; } - .flex-group-right { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; text-align: right; } - .flex-center { -webkit-box-align: center; -ms-flex-align: center; @@ -186,21 +177,17 @@ table {border: 1px solid #7a7971;} justify-content: center; text-align: center; } - .table-create-actor { font-size: 0.8rem; } - .flex-between { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } - .flex-shrink { - flex: 'flex-shrink' ; + flex: 'flex-shrink'; } - /* Styles limited to sheets */ .fvtt-malefices .sheet-header { -webkit-box-flex: 0; @@ -221,14 +208,13 @@ table {border: 1px solid #7a7971;} justify-content: flex-start; margin-bottom: 10px; } - .fvtt-malefices .sheet-header .profile-img { -webkit-box-flex: 0; -ms-flex: 0 0 128px; flex: 0 0 128px; width: 128px; height: auto; - max-height:128px; + max-height: 128px; margin-top: 0px; margin-right: 10px; object-fit: cover; @@ -240,22 +226,19 @@ table {border: 1px solid #7a7971;} max-width: 140px; width: 140px; } - .button-img { vertical-align: baseline; width: 8%; height: 8%; max-height: 48px; border-width: 0px; - border: 1px solid rgba(0, 0, 0, 0); + border: 1px solid rgba(0, 0, 0, 0); } - .button-img:hover { - color: rgba(255, 255, 128, 0.7); - border: 1px solid rgba(255, 128, 0, 0.8); - cursor: pointer; + color: rgba(255, 255, 128, 0.7); + border: 1px solid rgba(255, 128, 0, 0.8); + cursor: pointer; } - .button-effect-img { vertical-align: baseline; width: 16px; @@ -263,27 +246,23 @@ table {border: 1px solid #7a7971;} height: 16; border-width: 0; } - .small-button-container { height: 16px; width: 16px; border: 0; vertical-align: bottom; } - .fvtt-malefices .sheet-header .header-fields { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; } - .fvtt-malefices .sheet-header h1.charname { height: 50px; padding: 0px; margin: 5px 0; border-bottom: 0; } - .fvtt-malefices .sheet-header h1.charname input { font-family: Rivanna; font-size: 3rem; @@ -291,7 +270,6 @@ table {border: 1px solid #7a7971;} height: 100%; margin: 0; } - .fvtt-malefices .sheet-tabs { -webkit-box-flex: 0; -ms-flex: 0; @@ -299,172 +277,157 @@ table {border: 1px solid #7a7971;} font-family: Rivanna; font-size: 2.2rem; } - .fvtt-malefices .sheet-body, .fvtt-malefices .sheet-body .tab, .fvtt-malefices .sheet-body .tab .editor { height: 100%; font-size: 0.8rem; } - .editor { border: 2; height: 100%; padding: 0 3px; } - .medium-editor { border: 2; height: 240px; padding: 0 3px; } - .small-editor { border: 2; height: 120px; padding: 0 3px; } - .fvtt-malefices .tox .tox-editor-container { background: #fff; } - .fvtt-malefices .tox .tox-edit-area { padding: 0 8px; } - .fvtt-malefices .resource-label { font-weight: bold; text-transform: uppercase; } - .fvtt-malefices .tabs { height: 40px; border-top: 1px solid #AAA; border-bottom: 1px solid #AAA; color: #000000; } - .fvtt-malefices .tabs .item { line-height: 40px; font-weight: bold; } - .fvtt-malefices .tabs .item.active { text-decoration: underline; text-shadow: none; } - .fvtt-malefices .items-list { list-style: none; margin: 1px 0; padding: 0; overflow-y: auto; } - .fvtt-malefices .items-list .item-header { font-weight: bold; } - .fvtt-malefices .items-list .item { height: 30px; line-height: 24px; padding: 1px 0; border-bottom: 1px solid #BBB; } - .fvtt-malefices .items-list .item .item-image { -webkit-box-flex: 0; -ms-flex: 0 0 24px; flex: 0 0 24px; margin-right: 5px; } - .fvtt-malefices .items-list .item img { display: block; } - .fvtt-malefices .items-list .item-name { margin: 0; } - .fvtt-malefices .items-list .item-controls { -webkit-box-flex: 0; -ms-flex: 0 0 86px; flex: 0 0 86px; text-align: right; } - li.folder > .folder-header h3 { color: rgba(19, 18, 18, 0.95); } - /* ======================================== */ /* Sheet */ -.fvtt-malefices .window-app.sheet .window-content .sheet-header{ +.fvtt-malefices .window-app.sheet .window-content .sheet-header { color: rgba(19, 18, 18, 0.95); background: url("../images/ui/background_01_clear.webp"); /*background: #494e6b;*/ } - -input[type="text"], select[type="text"] { - background:white; +input[type="text"], +select[type="text"] { + background: white; color: #494e6b; } - select { - background:white; + background: white; color: #494e6b; } /* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/ /*color: rgba(168, 139, 139, 0.5);*/ -.window-app.sheet .window-content .sheet-header select[type="text"], .window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-body input[type="text"], .window-app.sheet .window-content .sheet-body input[type="number"], .window-app.sheet .window-content .sheet-body select[type="text"] { +.window-app.sheet .window-content .sheet-header select[type="text"], +.window-app.sheet .window-content .sheet-header input[type="text"], +.window-app.sheet .window-content .sheet-header input[type="number"], +.window-app.sheet .window-content .sheet-body input[type="text"], +.window-app.sheet .window-content .sheet-body input[type="number"], +.window-app.sheet .window-content .sheet-body select[type="text"] { color: rgba(19, 18, 18, 0.95); /*color: #494e6b;*/ } - -.window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] { +.window-app.sheet .window-content .sheet-header input[type="password"], +.window-app.sheet .window-content .sheet-header input[type="date"], +.window-app.sheet .window-content .sheet-header input[type="time"] { color: rgba(19, 18, 18, 0.95); background: url("../images/ui/background_01_clear.webp"); border: 1 none; margin-bottom: 0.25rem; margin-left: 2px; } - -.window-app.sheet .window-content .sheet-body input[type="password"], .window-app.sheet .window-content .sheet-body input[type="date"], .window-app.sheet .window-content .sheet-body input[type="time"] { +.window-app.sheet .window-content .sheet-body input[type="password"], +.window-app.sheet .window-content .sheet-body input[type="date"], +.window-app.sheet .window-content .sheet-body input[type="time"] { color: rgba(19, 18, 18, 0.95); background: url("../images/ui/background_01_clear.webp"); border: 1 none; margin-bottom: 0.25rem; margin-left: 2px; } - -.window-app.sheet .window-content .sheet-body select, .window-app.sheet .window-content .sheet-header select { +.window-app.sheet .window-content .sheet-body select, +.window-app.sheet .window-content .sheet-header select { color: rgba(19, 18, 18, 0.95); background: #fff; border: 1 none; margin-bottom: 0.25rem; margin-left: 2px; } - -.fvtt-malefices .window-app .window-content, .fvtt-malefices .window-app.sheet .window-content .sheet-body{ +.fvtt-malefices .window-app .window-content, +.fvtt-malefices .window-app.sheet .window-content .sheet-body { font-size: 0.8rem; /*background: url("../images/ui/pc_sheet_bg.webp") repeat left top;*/ background: url("../images/ui/background_01_clear.webp"); color: rgba(19, 18, 18, 0.95); } - /* background: rgba(245,245,240,0.6) url("../images/ui/sheet_background.webp") left top;*/ - -section.sheet-body{padding: 0.25rem 0.5rem;} - +section.sheet-body { + padding: 0.25rem 0.5rem; +} .sheet header.sheet-header .profile-img { object-fit: cover; object-position: 50% 0; - margin: 0.5rem 0 0.5rem 0.5rem; + margin: 0.5rem 0 0.5rem 0.5rem; padding: 0; } - nav.sheet-tabs { font-size: 1.2rem; font-weight: bold; @@ -477,10 +440,9 @@ nav.sheet-tabs { line-height: 1.5rem; border-top: 0 none; border-bottom: 0 none; - background-color:#252525; - color:beige; + background-color: #252525; + color: beige; } - /* Dice tray specific overrides */ .dice-tray button svg * { fill: #6d5923 !important; @@ -491,15 +453,13 @@ nav.sheet-tabs { .dice-tray button { color: #6d5923 !important; } - nav.sheet-tabs .item { position: relative; padding: 0 0.25rem; - color:beige; + color: beige; margin-top: 4px; margin-bottom: 4px; } - nav.sheet-tabs .item:after { content: ""; position: absolute; @@ -509,84 +469,79 @@ nav.sheet-tabs .item:after { width: 1px; /*border-right: 1px dashed rgba(52, 52, 52, 0.25);*/ } - .sheet .tab[data-tab] { padding: 0; } - section.sheet-body:after { content: ""; display: block; clear: both; } - -.sheet header.sheet-header .flex-compteurs {text-align: right;} -.sheet header.sheet-header .resource-content {width: 2rem;} - +.sheet header.sheet-header .flex-compteurs { + text-align: right; +} +.sheet header.sheet-header .resource-content { + width: 2rem; +} .select-diff { display: inline-block; text-align: left; width: 50px; } - .window-app.sheet .window-content .tooltip:hover .tooltiptext { top: 2rem; left: 2rem; margin: 0; padding: 0.25rem; } - -.window-app.sheet .window-content .carac-value, .window-app.sheet .window-content .competence-xp { +.window-app.sheet .window-content .carac-value, +.window-app.sheet .window-content .competence-xp { margin: 0.05rem; flex-basis: 3rem; text-align: center; } - /* ======================================== */ /* Global UI elements */ - /* ======================================== */ - -h1, h2, h3, h4 { +h1, +h2, +h3, +h4 { font-weight: bold; } - -ul, ol { - margin: 0; - padding: 0; +ul, +ol { + margin: 0; + padding: 0; } -ul, li { +ul, +li { list-style-type: none; } - .sheet li { - margin: 0.010rem; + margin: 0.01rem; padding: 0.25rem; } .header-fields li { margin: 0; padding: 0; } - .alterne-list > .list-item:hover { background: rgba(100, 100, 50, 0.25); } .alterne-list > .list-item:nth-child(even) { - background: rgba(80, 60, 0, 0.10); + background: rgba(80, 60, 0, 0.1); } .alterne-list > .list-item:nth-child(odd) { - background: rgb(160, 130, 100, 0.05); + background: #a08264; } - .specialisation-label { font-size: 0.8rem; } - .carac-label, .attr-label { font-weight: bold; } - .list-item { margin: 0.125rem; /*box-shadow: inset 0px 0px 1px #00000096; @@ -597,13 +552,13 @@ ul, li { color: rgba(19, 18, 18, 0.95); } .list-item-shadow { - background:rgba(87, 60, 32, 0.35); + background: rgba(87, 60, 32, 0.35); flex-grow: 0; flex-wrap: nowrap; justify-content: flex-start; } .list-item-shadow2 { - background:rgba(87, 60, 32, 0.25); + background: rgba(87, 60, 32, 0.25); flex-grow: 0; flex-wrap: nowrap; justify-content: flex-start; @@ -629,7 +584,6 @@ ul, li { .list-item-margin4 { margin-left: 4rem; } - .sheet-competence-img { width: 24px; max-width: 24px; @@ -651,7 +605,6 @@ ul, li { font-weight: bold; flex-grow: 0; } - .description-label { flex-grow: 2; margin-left: 4px; @@ -669,20 +622,16 @@ ul, li { .keyword-label { font-size: 0.85rem; } - .item-sheet-label { flex-grow: 1; } - .item-text-long-line { flex-grow: 3; } - .score-label { flex-grow: 2; align-content: center; } - .attribut-value, .carac-value { flex-grow: 0; @@ -713,7 +662,7 @@ ul, li { margin-left: 8px; } .stack-left { - align-items:center; + align-items: center; flex-shrink: 1; flex-grow: 0; } @@ -721,7 +670,6 @@ ul, li { white-space: nowrap; flex-grow: 0; } - .input-numeric-short { width: 40px; max-width: 40px; @@ -731,15 +679,13 @@ ul, li { margin-right: 0.25rem; margin-left: 0.25rem; } - .abilities-table { align-content: flex-start; } - /* ======================================== */ .tokenhudext { - display: flex; - flex: 0 !important; + display: flex; + flex: 0 !important; font-weight: 600; } .tokenhudext.left { @@ -768,13 +714,12 @@ ul, li { .control-icon.tokenhudicon.right { margin-left: 8px; } -#token-hud .status-effects.active{ +#token-hud .status-effects.active { z-index: 2; } .token-sheet .window-content .flexcol .sheet-tabs { font-size: 0.8rem; } - /* ======================================== */ .item-checkbox { height: 25px; @@ -790,7 +735,6 @@ ul, li { left: 0px; text-align: center; } - .skill-label { font-size: 0.7rem; } @@ -798,49 +742,43 @@ ul, li { max-height: 10px; max-width: 10px; } - -.flex-actions-bar { +.flex-actions-bar { flex-grow: 2; } - /* ======================================== */ /* Sidebar CSS */ #sidebar { font-size: 1rem; /*background-position: 100%;*/ - background-color:#f5f5f5; + background-color: #f5f5f5; background-position: 0px 35px; background-repeat: no-repeat; background-image: url("../images/ui/background_01_clear.webp"); color: rgba(19, 18, 18, 0.95); } - #sidebar .scene { color: rgba(237, 240, 199, 0.95); } /* background: rgb(105,85,65) url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat right bottom;*/ - #sidebar.collapsed { height: 470px !important; } - -#sidebar-tabs > .collapsed, #chat-controls .chat-control-icon { +#sidebar-tabs > .collapsed, +#chat-controls .chat-control-icon { color: rgba(19, 18, 18, 0.95); - text-shadow: 1px 1px 0 rgba(0,0,0,0.75); + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75); } - .sidebar-tab .directory-list .entity { - border-top: 1px dashed rgba(0,0,0,0.25); - border-bottom: 0 none; - padding: 0.25rem 0; + border-top: 1px dashed rgba(0, 0, 0, 0.25); + border-bottom: 0 none; + padding: 0.25rem 0; } - .sidebar-tab .directory-list .entity:hover { - background: rgba(0,0,0,0.05); + background: rgba(0, 0, 0, 0.05); cursor: pointer; } .chat-message-header { - background: rgba(220,220,210,0.5); + background: rgba(220, 220, 210, 0.5); font-size: 1.1rem; height: 48px; text-align: center; @@ -848,8 +786,8 @@ ul, li { display: flex; align-items: center; } - -.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to { +.chat-message .message-header .flavor-text, +.chat-message .message-header .whisper-to { font-size: 0.9rem; } .chat-result-text, @@ -860,72 +798,62 @@ ul, li { padding: 4px; } .chat-result-success { - color:darkgreen; + color: darkgreen; } .chat-result-failure { - color:darkred; + color: darkred; } .chat-img { width: 64px; height: 64px; } - .roll-dialog-header { height: 52px; } - .actor-icon { float: left; width: 48px; height: 48px; padding: 2px 6px 2px 2px; } - .padding-dice { - padding-top: .2rem; - padding-bottom: .2rem; + padding-top: 0.2rem; + padding-bottom: 0.2rem; } - .dice-image { box-sizing: border-box; border: none; border-radius: 0; max-width: 100%; } - .dice-image-reroll { - background-color:rgba(115, 224, 115, 0.25); + background-color: rgba(115, 224, 115, 0.25); border-color: #011d33; box-sizing: border-box; border: 1px; border-radius: 0%; max-width: 100%; } - .chat-dice { width: 15%; height: 15%; font-size: 15px; padding: 10px; padding-bottom: 20px; - padding-top: .2rem; - padding-bottom: .2rem; + padding-top: 0.2rem; + padding-bottom: 0.2rem; } - .div-center { align-self: center; } - .chat-message { - background: rgba(220,220,210,0.5); + background: rgba(220, 220, 210, 0.5); font-size: 0.9rem; } - .chat-message.whisper { - background: rgba(220,220,210,0.75); + background: rgba(220, 220, 210, 0.75); border: 2px solid #545469; } - .chat-message .chat-icon { border: 0; padding: 2px 6px 2px 2px; @@ -933,82 +861,76 @@ ul, li { width: 64px; height: 64px; } - .ability-icon { border: 0; padding: 2px 2px 2px 2px; - max-width:32px; - max-height:32px; + max-width: 32px; + max-height: 32px; width: auto; height: auto; } .small-ability-icon { border: 0; padding: 2px 2px 2px 2px; - max-width:16px; - max-height:16px; + max-width: 16px; + max-height: 16px; width: auto; height: auto; } .combat-icon { border: 0; padding: 2px 2px 2px 2px; - max-width:24px; - max-height:24px; + max-width: 24px; + max-height: 24px; width: auto; height: auto; } - #sidebar-tabs { flex: 0 0 32px; box-sizing: border-box; margin: 0 0 5px; - border-bottom: 1px solid rgba(0,0,0,0); - box-shadow: inset 0 0 2rem rgba(0,0,0,0.5); + border-bottom: 1px solid rgba(0, 0, 0, 0); + box-shadow: inset 0 0 2rem rgba(0, 0, 0, 0.5); } - #sidebar-tabs > .item.active { - border: 1px solid rgba(114,98,72,1); + border: 1px solid #726248; background: rgba(30, 25, 20, 0.75); - box-shadow: 0 0 6px inset rgba(114,98,72,1); + box-shadow: 0 0 6px inset #726248; } - -#sidebar #sidebar-tabs i{ +#sidebar #sidebar-tabs i { display: inline-block; - background-position:center; - background-size:cover; - text-shadow: 1px 1px 0 rgba(0,0,0,0.75); - + background-position: center; + background-size: cover; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75); } - /*--------------------------------------------------------------------------*/ /* Control, Tool, hotbar & navigation */ - -#controls .scene-control, #controls .control-tool { +#controls .scene-control, +#controls .control-tool { box-shadow: 0 0 3px #000; margin: 0 0 8px; border-radius: 0; - background: rgba(30, 25, 20, 1); + background: #1e1914; background-origin: padding-box; border-image: url(img/ui/footer-button.png) 10 repeat; border-image-width: 4px; border-image-outset: 0px; } - -#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover { - background: rgba(72, 46, 28, 1); +#controls .scene-control.active, +#controls .control-tool.active, +#controls .scene-control:hover, +#controls .control-tool:hover { + background: #482e1c; background-origin: padding-box; border-image: url(img/ui/footer-button.png) 10 repeat; border-image-width: 4px; border-image-outset: 0px; box-shadow: 0 0 3px #ff6400; } - #hotbar #action-bar #macro-list { - border: 1px solid rgba(72, 46, 28, 1); + border: 1px solid #482e1c; box-shadow: 2px 2px 5px #000000; } - #hotbar #action-bar .macro { border-image: url(img/ui/bg_control.jpg) 21 repeat; border-image-slice: 6 6 6 6 fill; @@ -1016,55 +938,48 @@ ul, li { border-image-outset: 0px 0px 0px 0px; border-radius: 0px; } - #hotbar .bar-controls { - background: rgba(30, 25, 20, 1); - border: 1px solid rgba(72, 46, 28, 1); + background: #1e1914; + border: 1px solid #482e1c; } - #players { border-image: url(img/ui/footer-button.png) 10 repeat; border-image-width: 4px; border-image-outset: 0px; - background: rgba(30, 25, 20, 1); + background: #1e1914; } - #navigation #scene-list .scene.nav-item.active { - background: rgba(72, 46, 28, 1); + background: #482e1c; } - #navigation #scene-list .scene.nav-item { - background: rgba(30, 25, 20, 1); + background: #1e1914; background-origin: padding-box; border-image: url(img/ui/footer-button.png) 10 repeat; border-image-width: 4px; border-image-outset: 0px; } - -#navigation #scene-list .scene.view, #navigation #scene-list .scene.context { - background: rgba(72, 46, 28, 1); +#navigation #scene-list .scene.view, +#navigation #scene-list .scene.context { + background: #482e1c; background-origin: padding-box; border-image: url(img/ui/footer-button.png) 10 repeat; border-image-width: 4px; border-image-outset: 0px; box-shadow: 0 0 3px #ff6400; } - #navigation #nav-toggle { - background: rgba(30, 25, 20, 1); + background: #1e1914; background-origin: padding-box; border-image: url(img/ui/footer-button.png) 10 repeat; border-image-width: 4px; border-image-outset: 0px; } - /* Tooltip container */ .tooltip { position: relative; display: inline-block; /*border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ } - /* Tooltip text */ .tooltip .tooltiptext { text-align: left; @@ -1072,29 +987,24 @@ ul, li { width: 150px; padding: 3px 0; font-size: 0.9rem; - /* Position the tooltip text */ top: 1px; position: absolute; z-index: 1; - /* Fade in tooltip */ visibility: hidden; opacity: 0; transition: opacity 0.3s; } - - .tooltip-nobottom { - border-bottom: unset; /* If you want dots under the hoverable text */ + border-bottom: unset; + /* If you want dots under the hoverable text */ } - /* Show the tooltip text when you mouse over the tooltip container */ .tooltip:hover .tooltiptext { visibility: visible; opacity: 1; } - .chat-card-button { box-shadow: inset 0px 1px 0px 0px #a6827e; background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); @@ -1109,18 +1019,16 @@ ul, li { text-decoration: none; text-shadow: 0px 1px 0px #4d3534; position: relative; - margin:2px; + margin: 2px; } - .chat-card-button:hover { background: linear-gradient(to bottom, #800000 5%, #3e0101 100%); background-color: red; } .chat-card-button:active { - position:relative; - top:1px; + position: relative; + top: 1px; } - .plus-minus-button { box-shadow: inset 0px 1px 0px 0px #a6827e; background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); @@ -1135,39 +1043,31 @@ ul, li { text-decoration: none; text-shadow: 0px 1px 0px #4d3534; position: relative; - margin:0px; + margin: 0px; } - .plus-minus-button:hover, .chat-card-button:hover { background: linear-gradient(to bottom, #800000 5%, #3e0101 100%); background-color: red; } - .plus-minus-button:active, .chat-card-button:active { - position:relative; - top:1px; + position: relative; + top: 1px; } - .plus-minus { font-size: 0.9rem; font-weight: bold; } - .ul-level1 { padding-left: 2rem; } - - /*************************************************************/ -#pause -{ +#pause { font-size: 2rem; } -#pause > h3 -{ - color: #CCC +#pause > h3 { + color: #CCC; } #pause > img { content: url(../images/ui/logo_pause.webp); @@ -1176,26 +1076,22 @@ ul, li { top: -100px; left: calc(50% - 132px); } - #logo { - content : url(../images/ui/logo_pause.webp); + content: url(../images/ui/logo_pause.webp); width: 100px; height: 60px; } - .dice-cell { padding-left: 12px; padding-right: 12px; width: 60px; text-align: center; } - .dice-formula, .dice-total { height: 54px; - position:relative; + position: relative; } - .status-small-label { font-size: 0.65rem; } @@ -1214,13 +1110,12 @@ ul, li { .items-title-bg { margin-top: 6px; color: rgba(19, 18, 18, 0.95); - } .items-title-text { margin-left: 4px; } .lock-icon { - width:16px; + width: 16px; height: 16px; } .item-sheet-img { @@ -1229,75 +1124,75 @@ ul, li { border: 0; } .item-name-img { - flex-grow:1; + flex-grow: 1; max-width: 2rem; min-width: 2rem; } .item-name-label-header { - flex-grow:2; + flex-grow: 2; max-width: 12rem; min-width: 12rem; } .item-name-label-header-long { - flex-grow:2; + flex-grow: 2; max-width: 14rem; min-width: 14rem; } .item-name-label-header-long2 { - flex-grow:2; + flex-grow: 2; max-width: 24rem; min-width: 24rem; } .item-name-label { - flex-grow:2; + flex-grow: 2; max-width: 10rem; min-width: 10rem; } .item-name-label-long { margin-top: 4px; - flex-grow:2; + flex-grow: 2; max-width: 10rem; min-width: 10rem; } .item-name-label-short { - flex-grow:1; + flex-grow: 1; max-width: 4rem; min-width: 4rem; } .item-name-label-medium { margin-top: 4px; - flex-grow:2; + flex-grow: 2; max-width: 6rem; min-width: 6rem; } .item-name-label-long2 { margin-top: 4px; - flex-grow:2; + flex-grow: 2; max-width: 22rem; min-width: 22rem; } .item-name-label-level2 { - flex-grow:2; + flex-grow: 2; max-width: 9rem; min-width: 9rem; } .item-field-label-short { - flex-grow:1; + flex-grow: 1; max-width: 4rem; min-width: 4rem; } .item-field-label-medium { - flex-grow:1; + flex-grow: 1; max-width: 6rem; min-width: 6rem; } .item-field-skill { - flex-grow:1; + flex-grow: 1; max-width: 6.8rem; min-width: 6.8rem; } .item-field-label-long { - flex-grow:1; + flex-grow: 1; max-width: 10rem; min-width: 10rem; } @@ -1313,7 +1208,7 @@ ul, li { flex-shrink: 7; } .item-controls-fixed { - min-width:2rem; + min-width: 2rem; max-width: 2rem; } .attribute-label { @@ -1340,3 +1235,1039 @@ ul, li { .character-summary-rollable { text-decoration: underline; } +/* =================================================================== + AppV2 Dialogs — Style Belle Époque (France, ~1900) + Palette : bordeaux, or antique, sépia, fond parchemin clair + =================================================================== */ +.malefices-roll-dialog .window-content { + padding: 0; + background: url("../images/ui/background_01_clear.webp"); + color: #3d2b1f; + font-size: 0.85rem; +} +.malefices-roll-dialog .skill-roll-dialog { + display: flex; + flex-direction: column; +} +.malefices-roll-dialog .skill-roll-dialog header.roll-dialog-header { + display: flex; + flex-direction: row; + align-items: center; + gap: 0.75rem; + padding: 0.6rem 0.75rem 0.5rem; + background: linear-gradient(to bottom, rgba(90, 10, 20, 0.12), rgba(90, 10, 20, 0.04)); + border-bottom: 2px solid rgba(139, 105, 20, 0.45); +} +.malefices-roll-dialog .skill-roll-dialog .actor-icon { + width: 52px; + height: 52px; + object-fit: cover; + border: 2px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); + flex-shrink: 0; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-roll-title { + color: #5a0a14; + font-family: Rivanna, serif; + font-size: 2rem; + font-weight: bold; + flex: 1; + line-height: 1.1; + text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.6); +} +.malefices-roll-dialog .skill-roll-dialog .dialog-separator { + width: 100%; + height: 18px; + background: url("../images/ui/separator_01.webp") center / auto 100% no-repeat; + opacity: 0.7; + margin: 0.1rem 0; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-body { + display: flex; + flex-direction: column; + gap: 0.4rem; + padding: 0.5rem 0.75rem 0.75rem; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-attribute-row { + display: flex; + flex-direction: row; + align-items: baseline; + gap: 0.5rem; + padding: 0.3rem 0.5rem; + background: #c8a84b; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-attribute-row .dialog-attr-label { + font-family: Rivanna, serif; + font-size: 1.1rem; + color: #5a0a14; + font-weight: bold; + flex: 1; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-attribute-row .dialog-attr-value { + font-family: Rivanna, serif; + font-size: 1.3rem; + font-weight: bold; + color: #3d2b1f; + min-width: 2rem; + text-align: right; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-section-title { + font-family: Rivanna, serif; + font-size: 0.95rem; + color: #8b6914; + text-transform: uppercase; + letter-spacing: 0.05em; + border-bottom: 1px solid rgba(139, 105, 20, 0.45); + padding-bottom: 0.15rem; + margin-top: 0.25rem; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-bio-list { + list-style: none; + margin: 0 0 0.25rem 0; + padding: 0 0 0 0.5rem; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-bio-list li { + color: #3d2b1f; + font-size: 0.8rem; + padding: 0.1rem 0; + border-bottom: 1px dashed rgba(139, 105, 20, 0.2); +} +.malefices-roll-dialog .skill-roll-dialog .dialog-bio-list li:last-child { + border-bottom: none; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-bio-list li::before { + content: "✦ "; + color: #8b6914; + font-size: 0.65rem; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-modifiers { + display: flex; + flex-direction: column; + gap: 0.3rem; + margin-top: 0.2rem; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-modifier-row { + display: flex; + flex-direction: row; + align-items: center; + gap: 0.5rem; + padding: 0.25rem 0.5rem; + border-bottom: 1px solid rgba(139, 105, 20, 0.18); +} +.malefices-roll-dialog .skill-roll-dialog .dialog-modifier-row:hover { + background: rgba(61, 43, 31, 0.06); +} +.malefices-roll-dialog .skill-roll-dialog .dialog-modifier-row .dialog-modifier-label { + flex: 1; + color: #3d2b1f; + font-size: 0.82rem; + font-weight: 600; + cursor: default; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-modifier-row select { + flex: 0 0 140px; + width: 140px; + border: 1px solid rgba(139, 105, 20, 0.45); + background: rgba(255, 252, 245, 0.85); + color: #3d2b1f; + font-size: 0.82rem; + padding: 1px 4px; + border-radius: 2px; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-modifier-row select:hover { + border-color: #8b6914; + border-width: 2px; +} +.malefices-roll-dialog .skill-roll-dialog .dialog-modifier-row select:focus { + outline: none; + border-color: #5a0a14; + box-shadow: 0 0 3px rgba(90, 10, 20, 0.3); +} +.malefices-roll-dialog footer.form-footer { + display: flex; + gap: 0.5rem; + padding: 0.5rem 0.75rem; + background: linear-gradient(to bottom, rgba(139, 105, 20, 0.08), rgba(139, 105, 20, 0.16)); + border-top: 1px solid rgba(139, 105, 20, 0.45); +} +.malefices-roll-dialog footer.form-footer button { + flex: 1; + padding: 0.4rem 0.75rem; + font-size: 0.9rem; + font-weight: 600; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + background: linear-gradient(to bottom, rgba(255, 252, 240, 0.9), rgba(240, 230, 200, 0.9)); + color: #3d2b1f; + cursor: pointer; + transition: all 0.15s ease; +} +.malefices-roll-dialog footer.form-footer button:hover { + background: linear-gradient(to bottom, rgba(240, 220, 170, 0.95), rgba(220, 195, 140, 0.95)); + border-color: #8b6914; + color: #5a0a14; +} +.malefices-roll-dialog footer.form-footer button[data-action="roll"], +.malefices-roll-dialog footer.form-footer button[type="submit"] { + background: linear-gradient(to bottom, #5a0a14, #35060c); + color: rgba(255, 245, 220, 0.95); + border-color: #2c050a; + font-size: 0.95rem; +} +.malefices-roll-dialog footer.form-footer button[data-action="roll"]:hover, +.malefices-roll-dialog footer.form-footer button[type="submit"]:hover { + background: linear-gradient(to bottom, #710d19, #5a0a14); + border-color: #5a0a14; + color: #fff; +} +/* =================================================================== + Dialogs AppV2 partagés (class: MaleficesDialog) + — utilisé par Tirage Tarot et Résumé des Personnages + =================================================================== */ +.MaleficesDialog .window-content { + background: url("../images/ui/background_01_clear.webp"); + padding: 0; + overflow-y: auto; + overflow-x: hidden; +} +.MaleficesDialog .character-summary-container { + padding: 0.5rem 0.75rem; + color: #3d2b1f; +} +.MaleficesDialog .character-summary-container .items-list { + list-style: none; + margin: 0; + padding: 0; +} +.MaleficesDialog .character-summary-container .items-list .item { + display: flex; + align-items: center; + padding: 0.2rem 0.4rem; + border-bottom: 1px solid rgba(139, 105, 20, 0.4); +} +.MaleficesDialog .character-summary-container .items-list .item:last-child { + border-bottom: none; +} +.MaleficesDialog .character-summary-container .items-list .item.item-header { + background: linear-gradient(135deg, rgba(90, 10, 20, 0.1), rgba(139, 105, 20, 0.1)); + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + margin-bottom: 0.25rem; + font-family: "Cinzel Decorative", "Cinzel", serif; + font-size: 0.65rem; + font-weight: 700; + letter-spacing: 0.04em; + color: #5a0a14; + text-transform: uppercase; +} +.MaleficesDialog .character-summary-container .items-list .item.item-header:not(:first-child) { + margin-top: 0.5rem; +} +.MaleficesDialog .character-summary-container .items-list .item:hover:not(.item-header) { + background: rgba(139, 105, 20, 0.08); +} +.MaleficesDialog .character-summary-container .items-list .item-field { + flex: 1; + text-align: center; + font-size: 0.85rem; +} +.MaleficesDialog .character-summary-container .items-list .item-field.item-name { + flex: 3; + text-align: left; + font-weight: 600; +} +.MaleficesDialog .character-summary-container .items-list .item-field.item-name-label-long { + flex: 3; + text-align: left; +} +.MaleficesDialog .character-summary-container .items-list .item-field.item-name-label-short { + flex: 1; + text-align: center; +} +.MaleficesDialog .character-summary-container .items-list .item-field.right { + text-align: right; +} +.MaleficesDialog .character-summary-container .items-list a.summary-roll, +.MaleficesDialog .character-summary-container .items-list a.actor-open { + cursor: pointer; + color: #3d2b1f; +} +.MaleficesDialog .character-summary-container .items-list a.summary-roll:hover, +.MaleficesDialog .character-summary-container .items-list a.actor-open:hover { + color: #5a0a14; + text-decoration: underline; +} +.MaleficesDialog .character-summary-container .items-list .actor-delete { + color: rgba(61, 43, 31, 0.5); + font-size: 0.75rem; + cursor: pointer; +} +.MaleficesDialog .character-summary-container .items-list .actor-delete:hover { + color: #5a0a14; +} +.MaleficesDialog .tirage-tarot-dialog { + display: block; + padding: 0.6rem 0.75rem; + color: #3d2b1f; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-select-row { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.4rem 0.6rem; + margin-bottom: 0.5rem; + background: linear-gradient(135deg, rgba(90, 10, 20, 0.08), rgba(139, 105, 20, 0.08)); + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-select-row .tirage-select-label { + flex: 1; + font-size: 0.85rem; + font-weight: 600; + color: #3d2b1f; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-select-row .tirage-select { + flex: 0 0 180px; + width: 180px; + border: 1px solid rgba(139, 105, 20, 0.45); + background: rgba(255, 252, 240, 0.85); + color: #3d2b1f; + font-size: 0.85rem; + padding: 2px 4px; + border-radius: 2px; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-select-row .tirage-select:focus { + outline: none; + border-color: #5a0a14; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-attribute-row { + background: linear-gradient(135deg, rgba(20, 80, 20, 0.08), rgba(30, 100, 30, 0.05)); + border-color: rgba(30, 100, 30, 0.35); +} +.MaleficesDialog .tirage-tarot-dialog .tirage-section { + display: block; + margin-bottom: 0.5rem; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-section .tirage-section-title { + display: block; + font-family: Rivanna, serif, serif; + font-size: 1rem; + color: #5a0a14; + border-bottom: 1px solid rgba(139, 105, 20, 0.45); + padding-bottom: 0.2rem; + margin-bottom: 0.4rem; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); +} +.MaleficesDialog .tirage-tarot-dialog .tirage-section .tirage-section-title i { + margin-right: 0.35rem; + font-size: 0.85em; + opacity: 0.7; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-section .tirage-section-title .tirage-player-name { + font-size: 0.85rem; + font-style: italic; + color: #3d2b1f; + opacity: 0.8; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-section .tirage-secret-title { + color: rgba(61, 43, 31, 0.7); +} +.MaleficesDialog .tirage-tarot-dialog .tirage-cards-row { + display: flex; + flex-wrap: wrap; + gap: 0.6rem; + margin-bottom: 0.5rem; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card { + display: inline-flex; + flex-direction: column; + align-items: center; + gap: 0.2rem; + width: 100px; + vertical-align: top; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card:hover { + position: relative; + z-index: 100; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card:hover .tirage-card-img { + transform: scale(2.2); + transform-origin: center top; + box-shadow: 3px 3px 12px rgba(0, 0, 0, 0.4); +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-img { + width: 100px; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); + transition: transform 0.2s ease, box-shadow 0.2s ease; + transform-origin: center center; + cursor: zoom-in; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-name { + font-family: Rivanna, serif, serif; + font-size: 0.75rem; + color: #5a0a14; + text-align: center; + line-height: 1.2; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-side { + font-size: 0.7rem; + font-weight: 600; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-side.tirage-positif { + color: #1a5c1a; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-side.tirage-negatif { + color: #5a0a14; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card.tirage-card-secret { + opacity: 0.85; +} +.MaleficesDialog .tirage-tarot-dialog .tirage-card.tirage-card-secret .tirage-card-name { + color: rgba(61, 43, 31, 0.7); +} +.MaleficesDialog .tirage-tarot-dialog .tirage-separator { + display: block; + height: 18px; + background: url("../images/ui/separator_01.webp") center / auto 100% no-repeat; + opacity: 0.5; + margin: 0.25rem 0; +} +.MaleficesDialog .tirage-footer { + display: flex; + justify-content: flex-end; + padding: 0.4rem 0.75rem; + border-top: 1px solid rgba(139, 105, 20, 0.45); + background: linear-gradient(to bottom, rgba(139, 105, 20, 0.08), rgba(139, 105, 20, 0.16)); +} +.MaleficesDialog .tirage-footer .tirage-close-btn { + padding: 0.3rem 1rem; + font-size: 0.85rem; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + background: linear-gradient(to bottom, rgba(255, 252, 240, 0.9), rgba(240, 230, 200, 0.9)); + color: #3d2b1f; + cursor: pointer; +} +.MaleficesDialog .tirage-footer .tirage-close-btn:hover { + background: linear-gradient(to bottom, rgba(240, 220, 170, 0.95), rgba(220, 195, 140, 0.95)); + border-color: #8b6914; + color: #5a0a14; +} +.malefices-chat-card { + font-size: 0.85rem; + color: #3d2b1f; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 3px; + overflow: hidden; + background: #dadad0; +} +.malefices-chat-card .chat-card-header { + display: flex; + align-items: center; + gap: 0.4rem; + padding: 0.2rem 0.4rem; + background: linear-gradient(135deg, rgba(90, 10, 20, 0.12), rgba(139, 105, 20, 0.12)); + border-bottom: 1px solid rgba(139, 105, 20, 0.45); +} +.malefices-chat-card .chat-card-header .chat-actor-img { + width: 32px; + height: 32px; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + object-fit: cover; + flex-shrink: 0; +} +.malefices-chat-card .chat-card-header .chat-actor-name { + font-family: Rivanna, serif, serif; + font-size: 1.1rem; + font-weight: normal; + color: #5a0a14; + line-height: 1.1; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + flex: 1; +} +.malefices-chat-card .chat-card-header .chat-header-roll { + display: flex; + align-items: center; + gap: 0.3rem; + padding-left: 0.4rem; + border-left: 1px solid rgba(139, 105, 20, 0.45); +} +.malefices-chat-card .chat-card-header .chat-header-roll .chat-roll-icon { + width: 24px; + height: 24px; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + object-fit: cover; + flex-shrink: 0; +} +.malefices-chat-card .chat-card-header .chat-header-roll .chat-roll-name { + font-size: 0.75rem; + color: rgba(61, 43, 31, 0.8); + font-style: italic; + max-width: 80px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.malefices-chat-card .chat-card-separator { + height: 14px; + margin: 0.15rem 0.4rem 0; + background: url("../images/ui/separator_01.webp") center / auto 100% no-repeat; + opacity: 0.55; +} +.malefices-chat-card .chat-roll-details { + margin: 0; + padding: 0 0.4rem 0.15rem; +} +.malefices-chat-card .chat-roll-details .chat-detail-row { + display: flex; + justify-content: space-between; + align-items: baseline; + padding: 0.05rem 0; + border-bottom: 1px dotted rgba(139, 105, 20, 0.2); +} +.malefices-chat-card .chat-roll-details .chat-detail-row:last-child { + border-bottom: none; +} +.malefices-chat-card .chat-roll-details .chat-detail-row dt { + color: rgba(61, 43, 31, 0.75); + font-weight: normal; + font-size: 0.8rem; +} +.malefices-chat-card .chat-roll-details .chat-detail-row dd { + font-weight: 600; + color: #3d2b1f; + font-size: 0.85rem; + margin-left: 0.5rem; +} +.malefices-chat-card .chat-roll-details .chat-detail-target dd, +.malefices-chat-card .chat-roll-details .chat-detail-roll dd { + font-size: 1rem; + color: #5a0a14; +} +.malefices-chat-card .chat-card-result { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.1rem; + margin: 0.2rem 0.4rem 0.25rem; + padding: 0.25rem 0.5rem; + border-radius: 2px; + font-family: Rivanna, serif, serif; + font-size: 1.15rem; + text-align: center; + border: 1px solid transparent; +} +.malefices-chat-card .chat-card-result.result-success { + background: linear-gradient(135deg, rgba(20, 80, 20, 0.12), rgba(40, 100, 40, 0.08)); + border-color: rgba(30, 100, 30, 0.35); + color: #1a5c1a; +} +.malefices-chat-card .chat-card-result.result-failure { + background: linear-gradient(135deg, rgba(90, 10, 20, 0.12), rgba(120, 20, 20, 0.08)); + border-color: rgba(90, 10, 20, 0.35); + color: #5a0a14; +} +.malefices-chat-card .chat-card-result i { + margin-right: 0.3rem; +} +.malefices-chat-card .chat-card-result .chat-result-damage { + font-family: sans-serif; + font-size: 0.85rem; + opacity: 0.85; + font-style: normal; +} +.malefices-chat-card .chat-card-actions { + padding: 0.15rem 0.4rem 0.25rem; + display: flex; + justify-content: center; +} +.malefices-chat-card .chat-card-actions .chat-card-button { + padding: 0.3rem 1rem; + font-size: 0.82rem; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + background: linear-gradient(to bottom, rgba(255, 252, 240, 0.9), rgba(240, 230, 200, 0.9)); + color: #3d2b1f; + cursor: pointer; + transition: all 0.15s ease; +} +.malefices-chat-card .chat-card-actions .chat-card-button:hover { + background: linear-gradient(to bottom, rgba(240, 220, 170, 0.95), rgba(220, 195, 140, 0.95)); + border-color: #8b6914; + color: #5a0a14; +} +.malefices-chat-card .tarot-card-display { + display: flex; + gap: 0.6rem; + align-items: flex-start; + padding: 0.3rem 0.5rem 0.4rem; + position: relative; +} +.malefices-chat-card .tarot-card-display:hover { + z-index: 100; +} +.malefices-chat-card .tarot-card-display:hover .tarot-card-img { + transform: scale(2.5); + box-shadow: 3px 3px 12px rgba(0, 0, 0, 0.4); +} +.malefices-chat-card .tarot-card-display .tarot-card-img { + width: 126px; + flex-shrink: 0; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); + transition: transform 0.2s ease, box-shadow 0.2s ease; + transform-origin: left center; + cursor: zoom-in; +} +.malefices-chat-card .tarot-card-display .tarot-card-info { + display: flex; + flex-direction: column; + gap: 0.25rem; + padding-top: 0.2rem; +} +.malefices-chat-card .tarot-card-display .tarot-card-info .tarot-card-name { + font-family: Rivanna, serif, serif; + font-size: 1rem; + color: #5a0a14; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); +} +.malefices-chat-card .tarot-card-display .tarot-card-info .tarot-card-side { + font-size: 0.8rem; + font-weight: 600; +} +.malefices-chat-card .tarot-card-display .tarot-card-info .tarot-card-side.tarot-positif { + color: #1a5c1a; +} +.malefices-chat-card .tarot-card-display .tarot-card-info .tarot-card-side.tarot-negatif { + color: #5a0a14; +} +.malefices-chat-card .tarot-card-display .tarot-card-info .tarot-card-value { + font-size: 0.82rem; + color: #3d2b1f; +} +.malefices-chat-card .tarot-card-display .tarot-card-info .tarot-card-value strong { + color: #5a0a14; + font-size: 1rem; +} +.malefices-chat-card.malefices-chat-item .item-type-label { + font-family: "Cinzel Decorative", "Cinzel", serif; + font-size: 0.65rem; + font-weight: 600; + letter-spacing: 0.08em; + text-transform: uppercase; + color: #5a0a14; + opacity: 0.8; + margin-left: auto; + align-self: center; +} +.malefices-chat-card.malefices-chat-item .item-damage { + font-weight: 700; + color: #5a0a14; + font-size: 1rem; +} +.malefices-chat-card.malefices-chat-item .item-damage.item-damage-crit { + color: #8b0000; +} +.malefices-chat-card.malefices-chat-item .chat-item-description { + margin: 0.4rem 0.5rem 0.3rem; + font-size: 0.82rem; + color: #3d2b1f; + line-height: 1.5; + border-top: 1px solid rgba(139, 105, 20, 0.5); + padding-top: 0.4rem; +} +.malefices-chat-card.malefices-chat-item .chat-item-description p { + margin: 0 0 0.3rem; +} +.malefices-chat-card.malefices-chat-item .chat-item-description p:last-child { + margin: 0; +} +.malefices-chat-card.malefices-chat-item .chat-item-description em { + color: #5a0a14; + font-style: italic; +} +.malefices-chat-card.malefices-chat-item .chat-item-description strong { + color: #3d2b1f; +} +.malefices-chat-card.malefices-welcome .welcome-body { + padding: 0.3rem 0.6rem 0.4rem; + font-size: 0.82rem; + color: #3d2b1f; + line-height: 1.4; +} +.malefices-chat-card.malefices-welcome .welcome-body p { + margin: 0.2rem 0; +} +.malefices-chat-card.malefices-welcome .welcome-body .welcome-title { + font-family: Rivanna, serif, serif; + font-size: 0.95rem; + color: #5a0a14; + font-weight: normal; + margin-bottom: 0.35rem; +} +.malefices-chat-card.malefices-welcome .welcome-body a { + color: #8b6914; +} +.malefices-chat-card.malefices-welcome .welcome-body a:hover { + color: #5a0a14; +} +.malefices-chat-card.malefices-welcome .welcome-commands { + margin-top: 0.4rem; + border-top: 1px solid rgba(139, 105, 20, 0.45); + padding-top: 0.3rem; +} +.malefices-chat-card.malefices-welcome .welcome-commands .welcome-commands-title { + font-weight: 700; + font-size: 0.8rem; + color: #3d2b1f; + margin-bottom: 0.2rem; + text-transform: uppercase; + letter-spacing: 0.04em; +} +.malefices-chat-card.malefices-welcome .welcome-commands .welcome-command-row { + font-size: 0.8rem; + color: #3d2b1f; + margin: 0.1rem 0; +} +.malefices-chat-card.malefices-welcome .welcome-commands .welcome-command-row code { + background: rgba(139, 105, 20, 0.12); + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + padding: 0 3px; + font-size: 0.78rem; + color: #5a0a14; +} +/* =================================================================== + AppV2 Item Sheets + Selectors use .fvtt-malefices.item (both classes on the same root + element, no space) to target only AppV2 item sheet windows. + =================================================================== */ +.fvtt-malefices.item { + /* window-content: background and remove padding. + Foundry AppV2 already sets: display:flex flex-flow:column overflow:hidden */ + /* All sections inside item fill their flex container */ + /* Fixed header bar */ + /* sheet-body: scroll container */ + /* Override legacy height: 100% on tab divs; hide all tabs, show only the active one */ + /* Header layout override for item sheets (smaller than actor sheet header) */ + /* Tab navigation: AppV2 uses nav.tabs (not nav.sheet-tabs) */ +} +.fvtt-malefices.item .window-content { + padding: 0; + background: url("../images/ui/background_01_clear.webp"); + color: rgba(19, 18, 18, 0.95); + font-size: 0.8rem; +} +.fvtt-malefices.item section { + height: 100%; + display: flex; + flex-direction: column; + flex: 1; + min-height: 0; + overflow: hidden; +} +.fvtt-malefices.item .header { + flex: 0 0 auto; + border-bottom: 1px solid #999; +} +.fvtt-malefices.item section.sheet-body { + overflow-y: auto; + overflow-x: hidden; + padding: 0.25rem 0.5rem; +} +.fvtt-malefices.item .tab[data-tab] { + height: auto; + display: none; +} +.fvtt-malefices.item .tab[data-tab].active { + display: block; +} +.fvtt-malefices.item .sheet-header { + flex: 0 0 auto; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + gap: 0.5rem; + padding: 0.5rem; + margin-bottom: 0; +} +.fvtt-malefices.item .item-sheet-img { + flex: 0 0 64px; + width: 64px; + height: 64px; + object-fit: cover; + border: 1px solid #999; + cursor: pointer; +} +.fvtt-malefices.item .item-sheet-title { + flex: 1; +} +.fvtt-malefices.item .item-sheet-title h1 { + margin: 0; + padding: 0; + border-bottom: none; +} +.fvtt-malefices.item .item-sheet-title h1 input { + background: transparent; + border: none; + font-family: Rivanna, serif; + font-size: 1.8rem; + width: 100%; + height: auto; +} +.fvtt-malefices.item .header-actions { + flex: 0 0 auto; + display: flex; + gap: 0.25rem; + align-items: center; +} +.fvtt-malefices.item nav.tabs { + display: flex; + flex: 0 0 auto; + font-family: Rivanna, serif; + font-size: 1.2rem; + font-weight: bold; + height: 3rem; + margin: 0; + padding: 0 0 0 0.25rem; + text-align: center; + text-transform: uppercase; + line-height: 3rem; + border-top: 0 none; + border-bottom: 0 none; + background-color: #252525; + color: beige; + gap: 0.25rem; +} +.fvtt-malefices.item nav.tabs a.item { + position: relative; + padding: 0 0.5rem; + color: beige; + font-family: Rivanna, serif; + font-size: 1.2rem; + text-decoration: none; + line-height: 3rem; +} +.fvtt-malefices.item nav.tabs a.item:hover { + text-shadow: 1px 0px 0px #ff6600; +} +.fvtt-malefices.item nav.tabs a.item.active { + text-shadow: 1px 0px 0px #ff6600; + text-decoration: underline; +} +/* =================================================================== + AppV2 Actor Sheets + =================================================================== */ +/* NOTE: DocumentSheetV2 uses tag:"form" — the APPLICATION ROOT is the . + The DOM is: form.application > section.window-content > section.editable > ... + There is NO child inside window-content. */ +.fvtt-malefices.actor { + /* window-content: background and remove Foundry's default padding. + Foundry AppV2 already sets: display:flex flex-flow:column overflow:hidden */ + /* All sections inside actor fill their flex container and form a flex column. + This covers: section.editable (template root) and section.sheet-body. */ + /* sheet-body: scroll container instead of clipping */ + /* Override legacy fixed 210px height — shrink to fit content */ + /* Override legacy "height: 100%" on .tab divs so their content + can overflow sheet-body and trigger the scrollbar; + hide all tabs, show only the active one */ + /* Tab navigation */ + /* Force dark text on section titles and labels inside actor sheet body + (overrides Foundry core heading/label colors from the default dark theme) */ + /* ── Belle Époque aesthetic improvements ─────────────────────────── */ +} +.fvtt-malefices.actor .window-content { + padding: 0; + background: url("../images/ui/background_01_clear.webp"); + color: rgba(19, 18, 18, 0.95); + font-size: 0.8rem; +} +.fvtt-malefices.actor section { + height: 100%; + display: flex; + flex-direction: column; + flex: 1; + min-height: 0; + overflow: hidden; +} +.fvtt-malefices.actor section.sheet-body { + overflow-y: auto; + overflow-x: hidden; + padding: 0.25rem 0.5rem; +} +.fvtt-malefices.actor .sheet-header { + flex: 0 0 auto; + overflow: visible; +} +.fvtt-malefices.actor .tab[data-tab] { + height: auto; + display: none; +} +.fvtt-malefices.actor .tab[data-tab].active { + display: block; +} +.fvtt-malefices.actor nav.tabs { + display: flex; + flex: 0 0 auto; + font-family: Rivanna, serif; + font-size: 1.2rem; + font-weight: bold; + height: 3rem; + margin: 0; + padding: 0 0 0 0.25rem; + text-align: center; + text-transform: uppercase; + line-height: 3rem; + border-top: 0 none; + border-bottom: 0 none; + background-color: #252525; + color: beige; + gap: 0.25rem; +} +.fvtt-malefices.actor nav.tabs a.item { + position: relative; + padding: 0 0.5rem; + color: beige; + font-family: Rivanna, serif; + font-size: 1.2rem; + text-decoration: none; + line-height: 3rem; +} +.fvtt-malefices.actor nav.tabs a.item:hover { + text-shadow: 1px 0px 0px #ff6600; +} +.fvtt-malefices.actor nav.tabs a.item.active { + text-shadow: 1px 0px 0px #ff6600; + text-decoration: underline; +} +.fvtt-malefices.actor section.sheet-body h1, +.fvtt-malefices.actor section.sheet-body h2, +.fvtt-malefices.actor section.sheet-body h3, +.fvtt-malefices.actor section.sheet-body h4, +.fvtt-malefices.actor section.sheet-body label, +.fvtt-malefices.actor section.sheet-body span, +.fvtt-malefices.actor section.sheet-body a { + color: rgba(19, 18, 18, 0.95); +} +.fvtt-malefices.actor .sheet-header .profile-img { + border: 2px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.25); +} +.fvtt-malefices.actor .sheet-header h1.charname input { + font-family: Rivanna, serif, serif; + font-size: 1.3rem; + color: #5a0a14; + border-bottom: 1px solid rgba(139, 105, 20, 0.45); + border-top: none; + border-left: none; + border-right: none; + background: transparent; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); +} +.fvtt-malefices.actor .sheet-header input[type="text"] { + border-bottom: 1px solid rgba(139, 105, 20, 0.45); + border-top: none; + border-left: none; + border-right: none; + background: transparent; +} +.fvtt-malefices.actor .sheet-header input[type="text"]:focus { + outline: none; + border-bottom-color: #5a0a14; + box-shadow: none; +} +.fvtt-malefices.actor .items-title-bg { + background: linear-gradient(to right, rgba(90, 10, 20, 0.15), rgba(139, 105, 20, 0.1)) !important; + border-bottom: 1px solid rgba(139, 105, 20, 0.45); + border-top: 1px solid rgba(139, 105, 20, 0.45); + margin-top: 6px; +} +.fvtt-malefices.actor .items-title-bg .items-title-text { + font-family: Rivanna, serif, serif; + font-size: 0.9rem; + color: #5a0a14 !important; + letter-spacing: 0.03em; +} +.fvtt-malefices.actor a.roll-attribut, +.fvtt-malefices.actor a.roll-arme { + color: #3d2b1f !important; + font-weight: 600; + transition: color 0.12s; +} +.fvtt-malefices.actor a.roll-attribut i, +.fvtt-malefices.actor a.roll-arme i { + color: rgba(139, 105, 20, 0.8); + margin-left: 0.2rem; + font-size: 0.75em; +} +.fvtt-malefices.actor a.roll-attribut:hover, +.fvtt-malefices.actor a.roll-arme:hover { + color: #5a0a14 !important; + text-decoration: none; +} +.fvtt-malefices.actor a.roll-attribut:hover i, +.fvtt-malefices.actor a.roll-arme:hover i { + color: #5a0a14; +} +.fvtt-malefices.actor input.item-field-label-short, +.fvtt-malefices.actor input.item-field-label-medium { + text-align: center; + font-weight: 700; + font-size: 0.9rem; + color: #5a0a14; + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 2px; + background: rgba(255, 252, 240, 0.6); +} +.fvtt-malefices.actor input.item-field-label-short:focus, +.fvtt-malefices.actor input.item-field-label-medium:focus { + outline: none; + border-color: #5a0a14; + box-shadow: 0 0 3px rgba(90, 10, 20, 0.2); +} +.fvtt-malefices.actor .alternate-list .list-item:nth-child(even) { + background: rgba(139, 105, 20, 0.07); +} +.fvtt-malefices.actor .alternate-list .list-item:nth-child(odd) { + background: rgba(61, 43, 31, 0.04); +} +.fvtt-malefices.actor .alternate-list .list-item:hover { + background: rgba(139, 105, 20, 0.15) !important; +} +.fvtt-malefices.actor .sheet-competence-img { + border: 1px solid rgba(139, 105, 20, 0.45); + border-radius: 1px; +} +.fvtt-malefices.actor .item-controls a.item-control { + color: rgba(61, 43, 31, 0.6); +} +.fvtt-malefices.actor .item-controls a.item-control:hover { + color: #5a0a14; +} +.fvtt-malefices.actor .tab.biodata input[type="text"] { + border-bottom: 1px solid rgba(139, 105, 20, 0.45); + border-top: none; + border-left: none; + border-right: none; + background: transparent; + color: #3d2b1f; +} +.fvtt-malefices.actor .tab.biodata input[type="text"]:focus { + outline: none; + border-bottom-color: #5a0a14; +} +.fvtt-malefices.actor .tab.biodata label.item-name-label-medium { + font-weight: 600; + color: #3d2b1f !important; +} +/*# sourceMappingURL=malefices.css.map */ +/*# sourceMappingURL=simple.css.map */ diff --git a/styles/simple.css.map b/styles/simple.css.map new file mode 100644 index 0000000..d857e70 --- /dev/null +++ b/styles/simple.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../base.less","../legacy-sheets.less","../variables.less","../components.less","../ui.less","../dialogs.less","../chat.less","../item-sheet.less","../actor-sheet.less"],"names":[],"mappings":"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","file":"simple.css","sourcesContent":[]} \ No newline at end of file diff --git a/system.json b/system.json index ce44845..9ab67e1 100644 --- a/system.json +++ b/system.json @@ -84,5 +84,54 @@ "url": "https://www.uberwald.me/gitea/public/fvtt-malefices", "version": "13.0.1", "download": "https://www.uberwald.me/gitea/public/fvtt-malefices/archive/fvtt-malefices-v13.0.1.zip", - "background": "systems/fvtt-malefices/images/ui/malefice_welcome_page.webp" -} \ No newline at end of file + "background": "systems/fvtt-malefices/images/ui/malefices-background-01.jpg", + "documentTypes": { + "Actor": { + "personnage": { + "htmlFields": [ + "biodata.description", + "biodata.notes", + "biodata.gmnotes", + "equipementlibre" + ] + }, + "pnj": { + "htmlFields": [ + "description" + ] + } + }, + "Item": { + "arme": { + "htmlFields": [ + "description" + ] + }, + "equipement": { + "htmlFields": [ + "description" + ] + }, + "archetype": { + "htmlFields": [ + "description" + ] + }, + "tarot": { + "htmlFields": [ + "description" + ] + }, + "sortilege": { + "htmlFields": [ + "description" + ] + }, + "elementbio": { + "htmlFields": [ + "description" + ] + } + } + } +} diff --git a/templates/actors/actor-sheet.hbs b/templates/actors/actor-sheet.hbs index 34390ec..c5e2a26 100644 --- a/templates/actors/actor-sheet.hbs +++ b/templates/actors/actor-sheet.hbs @@ -1,4 +1,4 @@ - +
{{!-- Sheet Header --}}
@@ -6,11 +6,11 @@
- +
-

+

    @@ -33,7 +33,7 @@
{{!-- Sheet Tab Navigation --}} -
+ -
\ No newline at end of file + + \ No newline at end of file diff --git a/templates/actors/npc-sheet.hbs b/templates/actors/npc-sheet.hbs new file mode 100644 index 0000000..0450d9a --- /dev/null +++ b/templates/actors/npc-sheet.hbs @@ -0,0 +1,22 @@ +
+ +
+
+ +
+
+

+
+ + +
+
+
+ +
+
+ {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
+
+ +
diff --git a/templates/chat/chat-confrontation-result.hbs b/templates/chat/chat-confrontation-result.hbs index effbe57..fb5aebf 100644 --- a/templates/chat/chat-confrontation-result.hbs +++ b/templates/chat/chat-confrontation-result.hbs @@ -1,37 +1,55 @@ -
- {{#if actorImg}} - {{alias}} - {{/if}} -

{{alias}}

+
+ +
+ {{#if actorImg}} + {{alias}} + {{/if}} +
{{alias}}
+ {{#if img}} +
+ Confrontation + Confrontation +
+ {{/if}} +
+ +
+ +
+
+
{{attr.label}}
+
{{attr.value}}
+
+ {{#if confrontationDegre}} +
+
Degré de confrontation
+
{{confrontationDegre}}
+
+ {{/if}} + {{#if confrontationModif}} +
+
Ajustement
+
{{confrontationModif}}
+
+ {{/if}} +
+
Seuil final
+
{{target}}
+
+
+
Valeur de la carte
+
{{total}}
+
+
+ +
+ {{#if isSuccess}} + Réussite ! +
{{attr.label}} augmente de {{gainAttr}} points
+ {{else}} + Échec ! +
{{attr.label}} diminue de {{gainAttr}} points
+ {{/if}} +
+
- -
- - {{#if img}} -
- {{name}} -
- {{/if}} - -
-
- -
- -
- -
diff --git a/templates/chat/chat-generic-result.hbs b/templates/chat/chat-generic-result.hbs index 8997207..133b313 100644 --- a/templates/chat/chat-generic-result.hbs +++ b/templates/chat/chat-generic-result.hbs @@ -1,76 +1,91 @@ -
- {{#if actorImg}} - {{alias}} - {{/if}} -

{{alias}}

-
+
-
- - {{#if img}} -
- {{name}} -
- {{/if}} +
+ {{#if actorImg}} + {{alias}} + {{/if}} +
{{alias}}
+ {{#if img}} +
+ {{name}} + {{name}} +
+ {{/if}} +
-
+
+ +
+ {{#if attr}} +
+
{{attr.label}}
+
{{attr.value}}
+
+ {{/if}} + {{#if bonusMalusPerso}} +
+
Bonus/Malus biographique
+
{{bonusMalusPerso}}
+
+ {{/if}} + {{#if bonusMalusSituation}} +
+
Bonus/Malus de situation
+
{{bonusMalusSituation}}
+
+ {{/if}} +
+
Seuil final
+
{{target}}
+
+
Résultat du dé
+
{{roll.total}}
+
+
-
-
    - {{#if attr}} -
  • {{attr.label}} : {{attr.value}} -
  • - {{/if}} - -
  • Bonus/Malus perso: {{bonusMalusPerso}}
  • -
  • Bonus/Malus situation: {{bonusMalusSituation}}
  • -
  • Seuil final: {{target}}
  • -
  • Resultat {{roll.total}}
  • - - {{#if isSuccess}} - {{#if isCritical}} -
  • - {{#if arme}} - {{#if arme.system.dommagecritiquemort}} -
  • - {{else}} - {{#if arme.system.dommagecritiqueko}} -
  • - {{/if}} -
  • - {{/if}} - {{/if}} - {{else}} - {{#if isPart}} -
  • - {{#if arme}} -
  • - {{/if}} - - {{else}} -
  • - {{#if arme}} -
  • - {{/if}} - {{/if}} - {{/if}} - {{else}} - {{#if isFumble}} -
  • +
    + {{#if isSuccess}} + {{#if isCritical}} + Réussite Critique ! + {{#if arme}} + {{#if arme.system.dommagecritiquemort}} +
    La victime est morte !
    {{else}} -
  • + {{#if arme.system.dommagecritiqueko}} +
    La victime est KO !
    + {{/if}} +
    {{arme.system.dommagecritique}} dommages
    {{/if}} {{/if}} - - {{#if isReroll}} - {{else}} - {{#if (gt destin 0)}} - - {{/if}} + {{else if isPart}} + Réussite Particulière ! + {{#if arme}} +
    {{arme.system.dommagepart}} dommages
    {{/if}} - -
-
- + {{else}} + Succès ! + {{#if arme}} +
{{arme.system.dommagenormale}} dommages
+ {{/if}} + {{/if}} + {{else}} + {{#if isFumble}} + Échec Critique ! + {{else}} + Échec ! + {{/if}} + {{/if}}
+ + {{#unless isReroll}} + {{#if (gt destin 0)}} +
+ +
+ {{/if}} + {{/unless}} + +
diff --git a/templates/chat/display-tarot-card.hbs b/templates/chat/display-tarot-card.hbs index b01e5ab..44472e0 100644 --- a/templates/chat/display-tarot-card.hbs +++ b/templates/chat/display-tarot-card.hbs @@ -1,12 +1,24 @@ - -
- - {{name}} - {{#if system.isdualside}} - {{#if system.ispositif}}Positif{{else}}Négatif{{/if}} - {{/if}} - {{#if value}} - Valeur : {{value}} - {{/if}} +
+ +
+
🃏 Carte Tirée
+
+ +
+ +
+ {{name}} +
+
{{name}}
+ {{#if system.isdualside}} +
+ {{#if system.ispositif}}⬆ Positif{{else}}⬇ Négatif{{/if}} +
+ {{/if}} + {{#if value}} +
Valeur : {{value}}
+ {{/if}}
+ +
diff --git a/templates/chat/request-tarot-card.hbs b/templates/chat/request-tarot-card.hbs index 3e260f0..5c8ede4 100644 --- a/templates/chat/request-tarot-card.hbs +++ b/templates/chat/request-tarot-card.hbs @@ -1,4 +1,16 @@ -
- +
+ +
+
Demande de tirage
+
+ +
+ +
+ +
+ diff --git a/templates/chat/welcome-message.hbs b/templates/chat/welcome-message.hbs new file mode 100644 index 0000000..cc3e461 --- /dev/null +++ b/templates/chat/welcome-message.hbs @@ -0,0 +1,27 @@ +
+ +
+ Maléfices +
Maléfices v4
+
+ +
+ +
+

Bienvenue dans Maléfices, le JDR qui sent le soufre !

+

Le Livre de Base de Maléfices v4 est nécessaire pour jouer : + arkhane-asylum.fr +

+

Maléfices est un jeu de rôle publié par Arkhane Asylum Publishing, tous les droits leur appartiennent.

+

Système développé par LeRatierBretonnien avec l'aide de la Dame du Lac et Malik, support sur le + Discord FR de Foundry. +

+
+
Commandes disponibles
+
/tirage — tirage complet des tarots
+
/carte — tirer une simple carte
+
/resume — résumé des PJs (MJ seulement)
+
+
+ +
diff --git a/templates/dialogs/character-summary.hbs b/templates/dialogs/character-summary.hbs index 8dd88c7..fb80105 100644 --- a/templates/dialogs/character-summary.hbs +++ b/templates/dialogs/character-summary.hbs @@ -1,86 +1,73 @@ -
+
  1. Nom
    {{#each config.attributs as |attr key|}} -
    {{attr}}
    +
    {{attr}}
    {{/each}}
    Destin
    Fluide
    MPMB
    MPMN
    -
+
{{#each pcs as |pc key|}}
  • - - {{#each pc.system.attributs as |attr key|}} - - {{/each}} - - - - -
  • - - {{/each}} - -
  • -
    PNJs
    - {{#each config.attributs as |attr key|}} -
    attr
    - {{/each}} -
    Destin
    -
    Fluide
    -
    MPMB
    -
    MPMN
    + -
  • - - {{#each npcs as |pc key|}} -
  • - - {{#each pc.system.attributs as |attr key|}} - - {{/each}} - - - - -
  • -
    - -
    - + {{#each pc.system.attributs as |attr key|}} +
    + {{attr.value}} +
    + {{/each}} +
    + {{pc.system.pointdestin}} +
    +
    + {{pc.system.fluide}} +
    +
    + {{pc.system.mpmb}} +
    +
    + {{pc.system.mpmn}} +
    +
    + {{/each}} - + + {{#each extras as |pc key|}} +
  • +
    + {{pc.name}} +
    + {{#each pc.system.attributs as |attr key|}} +
    + {{attr.value}} +
    + {{/each}} +
    + {{pc.system.pointdestin}} +
    +
    + {{pc.system.fluide}} +
    +
    + {{pc.system.mpmb}} +
    +
    + {{pc.system.mpmn}} +
    +
    + +
    +
  • + {{/each}} + - \ No newline at end of file + \ No newline at end of file diff --git a/templates/dialogs/confrontation-dialog.hbs b/templates/dialogs/confrontation-dialog.hbs index 6aec826..8267d4c 100644 --- a/templates/dialogs/confrontation-dialog.hbs +++ b/templates/dialogs/confrontation-dialog.hbs @@ -1,34 +1,37 @@ -
    +
    +
    {{#if img}} - + {{/if}} -

    {{title}}

    +
    {{title}}
    -
    - -
    - {{attr.label}} : - - {{attr.value}} - -
    - -
    - Degré de la confrontation : +
    + +
    + +
    + {{attr.label}} + {{attr.value}} +
    + +
    +
    + +
    -
    - Modificateur de confrontation : +
    + +
    +
    - \ No newline at end of file +
    \ No newline at end of file diff --git a/templates/dialogs/roll-dialog-generic.hbs b/templates/dialogs/roll-dialog-generic.hbs index 436f6bd..c39d711 100644 --- a/templates/dialogs/roll-dialog-generic.hbs +++ b/templates/dialogs/roll-dialog-generic.hbs @@ -1,68 +1,67 @@ -
    +
    +
    {{#if img}} - + {{/if}} -

    {{title}}

    +
    {{title}}
    -
    +
    - {{#if attr}} -
    - {{attr.label}} : - +
    + + {{#if attr}} +
    + {{attr.label}} + {{attr.value}} - {{#if (eq attr.abbrev "physique")}} - {{#if phyMalus}} - ({{phyMalus}}) - {{/if}} - {{/if}} + {{#if (eq attr.abbrev "physique")}}{{#if phyMalus}} ({{phyMalus}}){{/if}}{{/if}}
    - {{/if}} + {{/if}} -
    - Rappel des élements biographiques : -
      - {{#each elementsbio as |elem key|}} -
    • - {{elem.name}} -
    • - {{/each}} -
    -
    + {{#if elementsbio.length}} +
    Éléments biographiques
    +
      + {{#each elementsbio as |elem|}} +
    • {{elem.name}}
    • + {{/each}} +
    + {{/if}} -
    - Bonus/Malus biographique : +
    +
    +
    -
    - Bonus/Malus de situation : +
    +
    {{#if arme}} -
    - Défense : - -
    +
    + + +
    -
    - Portée : - -
    +
    + + +
    {{/if}} +
    - \ No newline at end of file +
    \ No newline at end of file diff --git a/templates/dialogs/tirage-tarot-dialog.hbs b/templates/dialogs/tirage-tarot-dialog.hbs index ce7473c..4f1664c 100644 --- a/templates/dialogs/tirage-tarot-dialog.hbs +++ b/templates/dialogs/tirage-tarot-dialog.hbs @@ -1,72 +1,77 @@ -
    -
    -

    Joueur : {{user.name}}

    -
    +
    -
    + {{!-- Sélection joueur ou attribution acteur --}} + {{#if (eq state "select-player")}} +
    + + +
    + {{/if}} - {{#if (eq state "select-player")}} -
    - Sélectionnez le joueur pour faire le tirage - -
    - {{/if}} + {{#if (eq state "attribute-to-actor")}} +
    + + +
    + {{/if}} - {{#if (eq state "attribute-to-actor")}} -
    - Sélectionnez l'acteur pour lui attribuer les tarots - -
    - {{/if}} - -
    -

    Main du joueur :

    -
    - {{#each cards as |card index|}} -
    -
    - - {{card.name}} - {{#if card.system.isdualside}} - {{#if card.system.ispositif}}Positif{{else}}Négatif{{/if}} - {{/if}} -
    + {{!-- Main du joueur --}} +
    +
    + Main du joueur + {{#if user}}— {{user.name}}{{/if}} +
    +
    + {{#each cards as |card|}} +
    + {{card.name}} +
    {{card.name}}
    + {{#if card.system.isdualside}} +
    + {{#if card.system.ispositif}}⬆ Positif{{else}}⬇ Négatif{{/if}}
    - {{/each}} -
    - -
    -

    Main secrête :

    -
    - {{#each secretCards as |card index|}} -
    -
    - - {{card.name}} - {{#if card.system.isdualside}} - {{#if card.system.ispositif}}Positif{{else}}Négatif{{/if}} - {{/if}} -
    -
    - {{/each}} -
    - -
    - + {{/if}} +
    + {{/each}} +
    - \ No newline at end of file +
    + + {{!-- Main secrète --}} +
    +
    + Main secrète +
    +
    + {{#each secretCards as |card|}} +
    + {{card.name}} +
    {{card.name}}
    + {{#if card.system.isdualside}} +
    + {{#if card.system.ispositif}}⬆ Positif{{else}}⬇ Négatif{{/if}} +
    + {{/if}} +
    + {{/each}} +
    +
    + +
    + +
    + +
    \ No newline at end of file diff --git a/templates/items/item-archetype-sheet.hbs b/templates/items/item-archetype-sheet.hbs index 8ad0d7d..dd346b9 100644 --- a/templates/items/item-archetype-sheet.hbs +++ b/templates/items/item-archetype-sheet.hbs @@ -1,33 +1,26 @@ -
    -
    - -
    -

    -
    -
    - - {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs}} +
    + {{> systems/fvtt-malefices/templates/items/partial-item-header.hbs this}} + + {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs this}} - {{!-- Sheet Body --}}
    - {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs}} - -
    + {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs this}} -
    +
    +
    • - {{selectOptions tarots selected=system.lametutelaire nameAttr="_id" labelAttr="name"}} - +
    • -
    +
    -
    - + +
    diff --git a/templates/items/item-arme-sheet.hbs b/templates/items/item-arme-sheet.hbs index 445ebb9..a35a645 100644 --- a/templates/items/item-arme-sheet.hbs +++ b/templates/items/item-arme-sheet.hbs @@ -1,69 +1,57 @@ -
    -
    - -
    -

    -
    -
    - - {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs}} +
    + {{> systems/fvtt-malefices/templates/items/partial-item-header.hbs this}} + + {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs this}} - {{!-- Sheet Body --}}
    - {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs}} - -
    + {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs this}} -
    +
    +
    • - {{selectOptions config.armeTypes selected=system.armetype}} - +
    • - - + +
    • - - + +
    • - +
    • - +
    • -
    • - +
    • - -
    • - - - - - - - -
    • -
    • - +
    • +
    • + + + + +
    +
    -
    - + +
    diff --git a/templates/items/item-elementbio-sheet.hbs b/templates/items/item-elementbio-sheet.hbs index 297553d..d7b9ad9 100644 --- a/templates/items/item-elementbio-sheet.hbs +++ b/templates/items/item-elementbio-sheet.hbs @@ -1,27 +1,11 @@ -
    -
    - -
    -

    -
    -
    - - {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs}} +
    + {{> systems/fvtt-malefices/templates/items/partial-item-header.hbs this}} + + {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs this}} - {{!-- Sheet Body --}}
    - - {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs}} - -
    - -
    -
      - -
    -
    -
    - + {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs this}}
    - + +
    diff --git a/templates/items/item-equipement-sheet.hbs b/templates/items/item-equipement-sheet.hbs index 297553d..d7b9ad9 100644 --- a/templates/items/item-equipement-sheet.hbs +++ b/templates/items/item-equipement-sheet.hbs @@ -1,27 +1,11 @@ -
    -
    - -
    -

    -
    -
    - - {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs}} +
    + {{> systems/fvtt-malefices/templates/items/partial-item-header.hbs this}} + + {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs this}} - {{!-- Sheet Body --}}
    - - {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs}} - -
    - -
    -
      - -
    -
    -
    - + {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs this}}
    - + +
    diff --git a/templates/items/item-sortilege-sheet.hbs b/templates/items/item-sortilege-sheet.hbs index b3dda0b..5b2fd51 100644 --- a/templates/items/item-sortilege-sheet.hbs +++ b/templates/items/item-sortilege-sheet.hbs @@ -1,30 +1,24 @@ -
    -
    - -
    -

    -
    -
    - - {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs}} +
    + {{> systems/fvtt-malefices/templates/items/partial-item-header.hbs this}} + + {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs this}} - {{!-- Sheet Body --}}
    - {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs}} - -
    + {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs this}} -
    +
    +
    • - +
    +
    -
    - + +
    diff --git a/templates/items/item-tarot-sheet.hbs b/templates/items/item-tarot-sheet.hbs index 25008e9..50e11da 100644 --- a/templates/items/item-tarot-sheet.hbs +++ b/templates/items/item-tarot-sheet.hbs @@ -1,64 +1,62 @@ -
    -
    -
    -

    -
    -
    - - {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs}} +
    + {{> systems/fvtt-malefices/templates/items/partial-item-header.hbs this}} + + {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs this}} - {{!-- Sheet Body --}}
    -
    -
    - -
    -
    - {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs}} - -
    - -
    -
      - -
    • - - -
    • - - {{#if isGM}} -
    • - - -
    • -
    • - - -
    • -
    • - - -
    • - {{#if system.isdualside}} -
    • - - -
    • - {{/if}} -
    • - - -
    • - {{/if}} - -
    +
    +
    +
    + +
    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
    -
    - +
    +
    +
      + +
    • + + +
    • + + {{#if isGM}} +
    • + + +
    • +
    • + + +
    • +
    • + + +
    • + {{#if system.isdualside}} +
    • + + +
    • + {{/if}} +
    • + + +
    • + {{/if}} + +
    +
    +
    + +
    + + diff --git a/templates/items/partial-item-description.hbs b/templates/items/partial-item-description.hbs index fafd2b5..6b0179b 100644 --- a/templates/items/partial-item-description.hbs +++ b/templates/items/partial-item-description.hbs @@ -1,3 +1,3 @@
    - {{editor description target="system.description" button=true owner=owner editable=editable}} + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
    diff --git a/templates/items/partial-item-header.hbs b/templates/items/partial-item-header.hbs new file mode 100644 index 0000000..80e049b --- /dev/null +++ b/templates/items/partial-item-header.hbs @@ -0,0 +1,30 @@ +
    +
    + +
    +

    + +

    +
    +
    + +
    +
    +
    diff --git a/templates/items/partial-item-nav.hbs b/templates/items/partial-item-nav.hbs index 95b52cd..cd6830a 100644 --- a/templates/items/partial-item-nav.hbs +++ b/templates/items/partial-item-nav.hbs @@ -1,5 +1,13 @@ {{!-- Sheet Tab Navigation --}} -